3 votos

Resumen del método Godunov

Estoy estudiando el método de Godunov y no tengo claros algunos detalles, parece que no hay muchos recursos disponibles respecto a este método (al menos que yo sepa).

Supongamos que tenemos: $$v_t + [f(v)]_x = 0$$ que estamos resolviendo en alguna cuadrícula. Denotamos la solución en esta malla como $u_j^n$ que representa la solución en $j\Delta x$ y en el momento $n\Delta t$ .

Antes incluso de entrar en el método de Godunov, estoy confundido sobre la aplicación de la cuadrícula sugerida por la mayoría de los textos, que afirman que es más natural considerar en su lugar $$U_j^n = \frac{1}{\Delta x}\int_{x_{j-1/2}}^{x_{j+1/2}} u_j^n$$ pero, ¿cómo se aplica esto en la práctica? Si la red es $x_j$ para $j = 0, 1, 2, \ldots, n$ ¿Cómo tratamos exactamente estos medios puntos?

Ahora, para el método de Godunov, tengo entendido que suponemos que tenemos una solución en el tiempo $n$ que llamamos $\tilde{u}^n(x, t_n)$ . Esta solución es constante a trozos en el tiempo $n$ ya que simplemente es el valor de nuestra solución numérica sobre cada celda particular $[x_{j-1/2}, x_{j+1/2})$ . Para obtener la solución en el tiempo $n+1$ utilizamos $\tilde{u}(x, t_n)$ como datos iniciales y resolver la secuencia resultante de problemas de Riemann.

Suponiendo que lo anterior sea correcto, me surgen dos preguntas. En primer lugar, ¿cómo resolvemos exactamente estos problemas de Riemann? Los textos que he visto afirman que esto es trivial ya que los flujos resultantes contienen integrales de constantes. En segundo lugar, en cada borde de celda tenemos dos soluciones, una a la derecha y otra a la izquierda. ¿Cuál utilizamos al resolver estos problemas de Riemann?

No puedo entender una forma "general" de hacerlo, por así decirlo. Parece que cualquier código que utilice el método Godunov dependerá en gran medida de la función de flujo $f$ .

2voto

Harry49 Puntos 312

Para un general esquema de volumen finito la definición de las medias de las celdas debe ser $$ U_j^n = \frac{1}{\Delta x} \int_{x_{j-1/2}}^{x_{j+1/2}} v(x,t_n)\, dx $$ donde $v(x,t)$ resuelve la EDP y los límites de las celdas se sitúan en $x_{j\pm 1/2} = (j\pm \frac12)\, \Delta x$ . De este modo, si definimos el flujo medio en el límite de la celda $x_{j+1/2}$ como sigue $$ F_{j + 1/2} = \frac{1}{\Delta t} \int_{t_n}^{t_{n+1}} f\big(v(x_{j+ 1/2},t)\big)\, dt \, , $$ entonces la ley de conservación implica $$ U_{j}^{n+1} = U_j^n - \frac{\Delta t}{\Delta x} \left(F_{j + 1/2} - F_{j - 1/2}\right) . $$ El Método Godunov equivale a una aproximación específica de $F_{j \pm 1/2}$ pero son posibles otras opciones (véase, por ejemplo, el Lax-Friedrichs método).

Su descripción del método de Godunov me parece correcta. En algunos textos, llamamos a esta formulación el esquema reconstruir-evolucionar-promedio (REA) (1). Así, definimos la reconstrucción constante a trozos $\tilde u^n$ de $v(\cdot ,t_n)$ tal que $\tilde u^n(x,t_n)$ es igual a $U_j^n$ sobre cada celda $[x_{j-1/2}, x_{j+1/2})$ . Para evolucionar la solución de $t_n$ a $t_{n+1}$ de forma exacta, necesitamos resolver los problemas de Riemann en las interfaces de las celdas $x=x_{j + 1/2}$ con datos $U_{j}^n$ a la izquierda y $U_{j+1}^n$ a la derecha. Por invariancia bajo traslación espacial, podemos reescribir este problema de Riemann sobre $x=0$ . Si $f$ no tiene ningún punto de inflexión (por ejemplo $f$ es una función convexa), entonces la Solución de Riemann es una onda de choque o una onda de rarefacción. En ambos casos, el valor a lo largo de la interfaz de la célula es constante a lo largo de los tiempos $t > t_n$ y tenemos $$ \tilde u^n(x_{j+1/2}, t_{n+1}) = \begin{cases} U_j^n , & \text{if}\quad f'(U_j^n), f'(U_{j+1}^n) \geq 0, \\ &\text{or if}\quad f'(U_j^n) \geq 0 \geq f'(U_{j+1}^n), \quad s>0 , \\ U_{j+1}^n , & \text{if}\quad f'(U_j^n), f'(U_{j+1}^n) \leq 0, \\ &\text{or if}\quad f'(U_j^n) \geq 0 \geq f'(U_{j+1}^n), \quad s<0 , \\ (f')^{-1}(0), & \text{if}\quad f'(U_j^n) < 0 < f'(U_{j+1}^n) , \end{cases} $$ donde $s \, (U_{j+1}^n - U_j^n) = f(U_{j+1}^n) - f(U_{j}^n)$ define la velocidad de la onda de choque $s$ según la condición Rankine-Hugoniot. Por lo tanto, el cálculo del flujo numérico $F_{j+1/2}$ equivale a promediar una función constante en un paso de tiempo. En otras palabras, tenemos $$F_{j+1/2} = f\big(\tilde u^n(x_{j+1/2},t_{n+1})\big) \, .$$


(1) R. J. LeVeque, Métodos numéricos para las leyes de conservación , Birkhäuser Verlag, 1992. doi:10.1007/978-3-0348-8629-1

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X