Una buena diferencia finita para la ecuación de continuidad.


22

Cuál sería una buena discretización de diferencia finita para la siguiente ecuación:

ρt+(ρu)=0 ?

Podemos tomar el caso 1D:

ρt+ddx(ρu)=0

Por alguna razón, todos los esquemas que puedo encontrar son para la formulación en coordenadas lagrangianas. Se me ocurrió este esquema por el momento (sin tener en cuenta el índice j ):

ρi,jn+1ρi,jnτ+1hx(ρi+1,jn+1+ρi,jn+12uxi+1/2,jnρi,jn+1+ρi1,jn+12uxi1/2n)=0

Pero parece ser realmente inestable o tener una condición de estabilidad horrible. ¿Es eso así?

La velocidad se calcula realmente a través de la ley de darcy . Además tenemos la ecuación de estado. El sistema completo también consiste en una ecuación de energía y la ecuación de estado para el gas ideal. Las velocidades pueden volverse negativas .u=kμp


En el caso 1D, el problema es esencialmente un pde hiperbólico de primer orden. ¿Has intentado utilizar un esquema de diferencia finita de primer orden?
Paul

Hasta ahora estoy corriendo con lo que he escrito en la pregunta. Sin embargo, mi caso es en realidad 2d. Pero como esta es una ecuación tan clásica, pensé que también habría alguna discretización clásica disponible.
tiam

¿Podría mostrar cómo se vería esto con un esquema de viento arriba? Estoy familiarizado con el concepto del método de volumen finito cuando lo usa en el término convectivo, pero ya no tiene un derivado espacial de un producto.
tiam

¿Se da el campo de velocidad o también satisface una ecuación de evolución?
David Ketcheson

La velocidad se calcula realmente a través de la ley de darcy . El sistema completo también consiste en una ecuación de energía y la ecuación de estado para el gas ideal. Las velocidades pueden volverse negativas. u=kμp
tiam

Respuestas:


21

Estás viendo la ecuación de conservación de masas:

dmdt=0

Al considerar la evolución de masa por unidad de volumen, esto se reduce a la ecuación de advección de densidad en forma de flujo:

ρt=(ρu)

Lo bueno de esto es que es solo la ecuación de advección de un campo escalar arbitrario (en nuestro caso, es la densidad ) y es (relativamente) fácil de resolver, siempre que haya esquemas adecuados de diferencia de tiempo y espacio, y condiciones de frontera.ρ

Al diseñar un esquema de diferenciación finita, nos preocupa la convergencia, la estabilidad y la precisión. Un esquema es convergente si cuandoΔt0. La estabilidad de los esquemas asegura que la cantidadApermanezca finita cuandot. La precisión formal del esquema indica dónde se encuentra el error de truncamiento en la serie de expansión de Taylor de la derivada parcial. Consulte un libro de texto de CFD para obtener más detalles sobre estas propiedades fundamentales de un esquema de diferenciación.ΔAΔtAtΔt0At

Ahora, el enfoque más simple es ir directamente a la diferenciación ascendente de primer orden. Este esquema es positivo-definido, conservador y computacionalmente eficiente. Las dos primeras propiedades son especialmente importantes cuando modelamos la evolución de una cantidad que siempre es positiva (es decir, masa o densidad).

Para simplificar, veamos el caso 1-D:

ρt=(ρu)x

Ahora es conveniente definir el flujo , de modo que:Φ=ρu

(ρu)x=ΦxΔΦΔxΦi+1/2Φi1/2Δx

Aquí hay un esquema de lo que estamos simulando:

            u           u
|          -->         -->          |
|    rho    |    rho    |    rho    |
x-----o-----x-----o-----x-----o-----x
     i-1  i-1/2   i   i+1/2  i+1

Estamos evaluando la evolución de en la celda i . La ganancia o pérdida neta proviene de la diferencia de lo que viene en, Φ i - 1 / 2 y lo que sale, Φ i + 1 / 2ρiΦi1/2Φi+1/2. Aquí es donde comenzamos a divergir de la respuesta de Paul. En la verdadera diferenciación conservadora aguas arriba, la cantidad en el centro de la celda se transporta por la velocidad en el borde de la celda, en la dirección de su movimiento. En otras palabras, si te imaginas que eres la cantidad advectada y estás sentado en el centro de la celda, la velocidad en el borde de la celda te está llevando a la celda frente a ti. Evaluar el flujo en el borde de la celda como un producto de densidad y velocidad, ambos en el borde de la celda, no es correcto y no conserva la cantidad advectada.

Los flujos entrantes y salientes se evalúan como:

Φi+1/2=ui+1/2+|ui+1/2|2ρi+ui+1/2|ui+1/2|2ρi+1

Φi1/2=ui1/2+|ui1/2|2ρi1+ui1/2|ui1/2|2ρi

El tratamiento anterior de la diferencia de flujo asegura la definición aguas arriba. En otras palabras, ajusta la dirección de diferenciación según el signo de la velocidad.

El criterio de estabilidad de Courant-Friedrichs-Lewy (CFL), cuando se hace diferencia de tiempo con primer orden simple, la diferenciación de Euler se da como:

μ=uΔtΔx1

Tenga en cuenta que en 2 dimensiones, el criterio de estabilidad CFL es más estricto:

μ=cΔtΔx12

donde es la magnitud de la velocidad, c .u2+v2

Algunas cosas a tener en cuenta. Este esquema puede o no ser apropiado para su aplicación dependiendo del tipo de proceso que esté simulando. Este esquema es altamente difusivo y es apropiado para flujos muy suaves sin gradientes agudos. También es más difusivo para pasos de tiempo más cortos. En el caso 1-D, obtendrá una solución casi exacta si los gradientes son muy pequeños y si . En el caso de 2-D, esto no es posible, y la difusión es anisotrópica.μ=1

Si su sistema físico considera ondas de choque o gradientes altos de otro tipo, debe considerar la diferencia ascendente de orden superior (por ejemplo, 3er o 5to orden). Además, puede valer la pena analizar la familia de esquemas de Flux Corrected Transport (Zalesak, 1979, JCP); corrección antidifusión para el esquema anterior por Smolarkiewicz (1984, JCP); Familia de esquemas MPDATA de Smolarkiewicz (1998, JCP).

Para la diferencia de tiempo, la diferencia de Euler de primer orden puede ser satisfactoria para sus necesidades. De lo contrario, busque métodos de orden superior como Runge-Kutta (iterativo) o Adams-Bashforth y Adams-Moulton (multinivel).

Valdría la pena buscar en un libro de texto de nivel de posgrado de CFD un resumen de los esquemas mencionados anteriormente y muchos más.


u

1
Δt=Δxmax(u)Δt

u=Cρ

tuρ

tuρtu=-doρρt=do[(ρ)2+ρ2ρ]

13

(ddx)

ρik+1ρikΔt+ρikUikρi1kUi1kΔx=0.

If the velocities are positive, then this backward scheme is stable. If they are negative, then a forward difference will work. Regardless, there is always a constraint on your choice of Δx and Δt (courant number) to make the scheme stable.


Would evaluating ρ at k+1 instead remove the Δt constraint?
tiam

I'm not entirely sure... I think you would have to check the truncation error to make sure that it approximates the PDE correctly. You may want to consider the other implict schemes on this website: web.mit.edu/dongs/www/publications/projects/…
Paul
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.