Roe solver

From Wikipedia, the free encyclopedia

The Roe approximate Riemann solver uses the flux Jacobian to express the Euler equations, in this case the homogenous 1D Euler equation:


\frac{\partial Q}{\partial t} + A(Q)\frac{\partial Q}{\partial x} = 0

Where A(Q) is given as:


\frac{\partial E(Q)}{\partial Q}

The x-direction flux Jacobian is given as:


A= \left[ 
\begin{array}{c c c c c}
 0 & 1 & 0 & 0 & 0 \\ 
\hat{\gamma}H-\tilde{u}^2- \tilde{a}^2 & (3-\gamma)\tilde{u} & -\hat{\gamma}v & -\hat{\gamma}w & \hat{\gamma}  \\ 
\tilde{u} \tilde{v}& \tilde{v} & \tilde{u} & 0 & 0\\ 
\tilde{u}\tilde{w} & \tilde{w} & 0 & u & 0 \\ 
(\frac{1}{2}\tilde{u}[(\gamma-3)\tilde{H}-\tilde{a}^2]  & H-\hat{\gamma}\tilde{u}^2 &\hat{\gamma}\tilde{u}\tilde{v} & \hat{\gamma}\tilde{u}\tilde{w} & \gamma \tilde{u}
\end{array}
\right]

Where the tilde represents the Roe-averaged quantities. (todo: Roe averages)

The eigenvalues of the Jacobian are:


 \tilde{\lambda}_1 = \tilde{u}-\tilde{a}, \quad \tilde{\lambda}_2 = \tilde{\lambda}_3  = \tilde{\lambda}_4 =\tilde{u}, \quad \tilde{\lambda}_5=\tilde{u}+\tilde{a}

And the right eigenvectors:


P= \left[ 
\begin{array}{c c c c c}
 1 & 1 & 0 & 0 & 1 \\ 
\tilde{u} - \tilde{a} & \tilde{u} & 0 & 0 & \tilde{u}+\tilde{a}  \\ 
\tilde{v} & \tilde{v} & 1 & 0 & \tilde{v}\\ 
\tilde{w} & \tilde{w} & 0 & 1 & \tilde{w} \\ 
\tilde{H}-\tilde{u}\tilde{a}  & \frac{1}{2}\vec{\tilde{U}}^2 &\tilde{v} & \tilde{w} & \tilde{H}+\tilde{u}\tilde{a} 
\end{array}
\right]

[edit] Further Reading

  • Toro, E. F. (1999), Riemann Solvers and Numerical Methods for Fluid Dynamics, Springer-Verlag.