1 votos

Solución de Riemann y método upwind para un sistema hiperbólico lineal

Supongamos que tenemos el sistema

$$ \begin{cases} u_t + av_x = 0 \\ v_t + b u_x =0 \end{cases} $$

donde $a,b \in \mathbb{R}$ .

Si escribimos esto de la forma ${\bf u}_t + A {\bf u}_x = 0$ donde ${\bf u} = (u,v)^T$ observamos que

$$ A = \begin{bmatrix} a & 0 \\ 0 & b \end{bmatrix}$$

lo que implica que el sistema ${\bf hyperbolic}$ cuando $ab \neq 0$ porque de lo contrario $A$ no es diagonalizable. Quiero derivar un esquema upwind para resolver tal sistema. Estoy pensando en este esquema

$$ {\bf u}_{k}^{n+1}= {\bf u}_k^{n} - \frac{\Delta t }{\Delta x } A ({\bf u}_{k}^{n} - {\bf u}_{k-1}^{n})$$

¿No es la condición de estabilidad la misma que si hiciéramos para $q_t + c q_x = 0$ ?

Ahora, aquí es donde no entiendo cómo resolver el problema. ¿Qué pasa si imponemos las condiciones iniciales

$$ \begin{cases} u(x,0) \\ v(x,0) \end{cases} = \begin{cases} \{ u_L, v_L \} & x<0 \\ \{ u_R, v_R\} & x>0\end{cases}$$

¿cómo encontrar las soluciones de Riemman del sistema?

1 votos

Si $A$ fueran diagonales, el sistema se desacoplaría. Para su sistema acoplado, $A=\pmatrix{0&a\\b&0}$ es antidiagonal.

3voto

Harry49 Puntos 312

Diagonalicemos la matriz $A$ tal que ${\bf u}_t + A {\bf u}_x = {\bf 0}$ como sigue: \begin{aligned} A &= \begin{pmatrix}0 & a\\ b & 0\end{pmatrix} \\ &= \begin{pmatrix}-\sqrt{a/b} & \sqrt{a/b}\\ 1 & 1\end{pmatrix} \begin{pmatrix}-\sqrt{a/b} & 0\\ 0 & \sqrt{a/b}\end{pmatrix} \frac12 \begin{pmatrix}-\sqrt{b/a} & 1\\ \sqrt{b/a} & 1\end{pmatrix} \\ &= R\Lambda R^{-1}\ {\} \fin si $a$ y $b$ tienen el mismo signo distinto de cero. Introduciendo ${\bf v} = R^{-1} {\bf u}$ tenemos ${\bf v}_t + \Lambda {\bf v}_x = {\bf 0}$ para el que se puede derivar un método upwind por componentes (hay que tener cuidado de que se utilice el upwind correcto: aquí los valores propios $\pm \sqrt{a/b}$ tienen signo contrario). Introduciendo las matrices $A^\pm = \tfrac12 (A\pm |A|)$ con $|A| = R |\Lambda| R^{-1}$ , y volviendo a las variables originales, el método upwind puede escribirse \begin{aligned} {\bf u}_i^{n+1} &= {\bf u}_i^{n} - \frac{\Delta t}{\Delta x} A^+ ({\bf u}_i^{n} - {\bf u}_{i-1}^{n}) - \frac{\Delta t}{\Delta x} A^- ({\bf u}_{i+1}^{n} - {\bf u}_{i}^{n}) \\ &= {\bf u}_i^{n} - \frac{\Delta t}{2\Delta x} A ({\bf u}_{i+1}^{n} - {\bf u}_{i-1}^{n}) + \frac{\Delta t}{2\Delta x} |A| ({\bf u}_{i+1}^{n} - 2{\bf u}_{i}^{n} + {\bf u}_{i-1}^{n}) . \end{aligned} Es estable en condiciones CFL $\sqrt{a/b}\; \Delta t/\Delta x \leq 1$ . La solución de Riemann también puede obtenerse a partir de la forma diagonalizada.

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