Del problema de Riemann al esquema de Godunov: la esencia del flujo numérico
Explorando el corazón de CFD, el problema de Riemann, y cómo los Riemann Solvers exactos y aproximados determinan el flujo numérico.
El problema de Riemann: El corazón de CFD#
En el Método de Volúmenes Finitos (FVM), la precisión y estabilidad de la solución dependen de cómo se calcule el flujo numérico (numerical flux) en los límites de las celdas. La clave para determinar este flujo numérico es el problema de Riemann.
¿Qué es el problema de Riemann?#
Es un problema de valor inicial donde las condiciones iniciales consisten en dos estados constantes separados por una única discontinuidad:
Para las ecuaciones de Euler en 1D, la solución analítica de este problema consta de tres ondas (waves):
- Onda hacia la izquierda (rarefacción o choque)
- Discontinuidad de contacto (contact discontinuity)
- Onda hacia la derecha (rarefacción o choque)
La idea de Godunov (1959)#
La visión fundamental de Godunov es simple pero poderosa:
Para obtener el flujo en el límite de una celda, se deben tomar los valores promedio de las dos celdas adyacentes como los estados izquierdo y derecho, y resolver el problema de Riemann.
Fórmula de actualización del Método de Volúmenes Finitos:
Donde es precisamente el flujo numérico determinado a partir de la solución del problema de Riemann.
Exact Riemann Solver (Solucionador exacto)#
El solucionador exacto de Riemann encuentra la presión en la región central (star region), , utilizando el método iterativo de Newton-Raphson. Se aplican las relaciones de Rankine-Hugoniot o las relaciones isentrópicas dependiendo del tipo de onda (choque/rarefacción).
Relación para la onda de choque (Shock wave) (, o ):
Donde , .
Relación para la onda de rarefacción (Rarefaction wave) ():
satisface la siguiente condición:
Approximate Riemann Solver: ¿Por qué es necesario?#
Los solucionadores exactos son costosos porque requieren cálculos iterativos. En la mayoría de los códigos CFD prácticos, se utilizan solucionadores de Riemann aproximados (approximate Riemann solvers).
Roe Solver (1981)#
Roe linealiza el problema de Riemann no lineal, convirtiéndolo en un problema de Riemann lineal para la matriz :
Se construye utilizando el promedio de Roe (Roe average):
Ventajas: Captura con precisión las discontinuidades de contacto. Desventajas: Puede violar las condiciones de entropía (requiere una corrección de entropía o "entropy fix").
HLLC Solver (Toro, 1994)#
HLLC es una mejora del solucionador HLL que restaura la discontinuidad de contacto (Contact). Estima tres velocidades de onda , , :
Flujo en la región central:
HLLC es sencillo de implementar y robusto, por lo que es el más utilizado en códigos de flujo multifásico compresible.
AUSM+ (Liou, 1996)#
La familia AUSM separa el flujo en términos convectivos (convective) y de presión (pressure):
Donde es el flujo másico en el límite de la celda y es la cantidad convectada. Es estable incluso en flujos de bajo Mach, lo que lo hace ideal para extenderlo a esquemas de todas las velocidades (all-speed schemes).
Extensión a flujos multifásicos#
En flujos multifásicos, dado que las EOS en ambos lados de la interfaz son diferentes, los solucionadores de Riemann deben generalizarse a versiones multi-material.
Enfoques representativos:
- Ghost Fluid Method: Construye celdas fantasma (ghost cells) del fluido del lado opuesto cerca de la interfaz y resuelve problemas de Riemann de un solo material independientes en cada fase.
- HLLC para multi-material: Determina , aplicando cada EOS a ambos lados de la región central.
En el próximo artículo, compararemos las técnicas de captura de interfaz (VOF, Level Set, Diffuse Interface).
Lleva la relación de presiones a 1000:1 para ver cómo ambas ondas se vuelven choques.
x–t 다이어그램에서 좌·우로 가는 파(shock 또는 rarefaction)와 가운데 접촉 불연속이 보인다. p_L > p_R이 충분히 크면 양쪽 모두 shock이 된다.
Comparte si te resultó útil.