Math 2.0

Numerical analysis Time-dependent partial differential equations Proposition

Roe solver

Builds on Riemann solverHyperbolic conservation lawRiemann problemDiagonalisable matrixEigenvalueShock wave

Statement

Let Ω⊆ℝm\Omega \subseteq \R^m be open and let F ⁣:Ω→ℝmF \colon \Omega \to \R^m be the C1C^1 flux of a hyperbolic conservation law ut+F(u)x=0u_t + F(u)_x = 0. A Roe matrix is a map (ul,ur)↦A(ul,ur)(u_l, u_r) \mapsto A(u_l, u_r) from Ω×Ω\Omega \times \Omega to the real m×mm \times m matrices with three properties:

  1. F(ur)−F(ul)=A(ul,ur)(ur−ul)F(u_r) - F(u_l) = A(u_l, u_r)(u_r - u_l) for all ul,ur∈Ωu_l, u_r \in \Omega;
  2. A(ul,ur)A(u_l, u_r) is diagonalisable with real eigenvalues;
  3. A(u,u)=F′(u)A(u, u) = F'(u) for all u∈Ωu \in \Omega.

Write A=A(ul,ur)=RΛR−1A = A(u_l, u_r) = R \Lambda R^{-1} with Λ\Lambda diagonal, and ∣A∣=R∣Λ∣R−1\abs{A} = R \abs{\Lambda} R^{-1}. The Roe flux is H(ul,ur)=12(F(ul)+F(ur))−12∣A∣(ur−ul).H(u_l, u_r) = \tfrac{1}{2} \big( F(u_l) + F(u_r) \big) - \tfrac{1}{2} \abs{A} (u_r - u_l). Then:

  1. H(ul,ur)=F(ul)+A(w0−ul)=F(ur)−A(ur−w0)H(u_l, u_r) = F(u_l) + A (w_0 - u_l) = F(u_r) - A (u_r - w_0), and H(u,u)=F(u)H(u, u) = F(u). Here w0w_0 is the value on the line x=0x = 0 of the solution of the linear Riemann problem wt+Awx=0w_t + A w_x = 0 with data ul,uru_l, u_r. So HH is a consistent Riemann solver.
  2. Let ur≠ulu_r \ne u_l with F(ur)−F(ul)=s(ur−ul)F(u_r) - F(u_l) = s (u_r - u_l) for a number ss. Then ur−ulu_r - u_l is an eigenvector of AA for the eigenvalue ss. The linear Riemann problem is then solved by the single jump from ulu_l to uru_r with speed ss.

Remarks

Write ur−ul=∑kαkrku_r - u_l = \sum_k \alpha_k r_k in eigenvectors rkr_k of AA with eigenvalues λk\lambda_k. The linear Riemann problem moves each component αkrk\alpha_k r_k with speed λk\lambda_k, so w0=ul+∑λk<0αkrkw_0 = u_l + \sum_{\lambda_k < 0} \alpha_k r_k. Property 1 of the matrix gives 12(F(ul)+F(ur))=F(ul)+12∑kλkαkrk\tfrac12 (F(u_l) + F(u_r)) = F(u_l) + \tfrac12 \sum_k \lambda_k \alpha_k r_k, and subtracting 12∑k∣λk∣αkrk\tfrac12 \sum_k \abs{\lambda_k} \alpha_k r_k leaves F(ul)+∑λk<0λkαkrk=F(ul)+A(w0−ul)F(u_l) + \sum_{\lambda_k < 0} \lambda_k \alpha_k r_k = F(u_l) + A(w_0 - u_l). Claim 2 is property 1 of the matrix applied to the jump condition.

In the scalar case m=1m = 1 the Roe matrix is the number A=f(ur)−f(ul)ur−ulA = \dfrac{f(u_r) - f(u_l)}{u_r - u_l} for ur≠ulu_r \ne u_l, and A(u,u)=f′(u)A(u, u) = f'(u). For the Euler equations of gas dynamics, Roe found a Roe matrix in closed form. It is the flux Jacobian at averages weighted by ρl\sqrt{\rho_l} and ρr\sqrt{\rho_r}, such as v~=ρlvl+ρrvrρl+ρr\tilde v = \dfrac{\sqrt{\rho_l} v_l + \sqrt{\rho_r} v_r}{\sqrt{\rho_l} + \sqrt{\rho_r}} for the velocity.

The Roe solver can keep entropy-violating jumps at transonic rarefactions, where an eigenvalue changes sign. For f(u)=u2/2f(u) = u^2/2 with ul=−1u_l = -1 and ur=1u_r = 1 one gets A=0A = 0 and H=12H = \tfrac12, so the scheme keeps the initial jump although the entropy solution is a rarefaction fan. An entropy fix, such as the one of Harten, changes ∣λk∣\abs{\lambda_k} near zero to remove this defect.

Going deeper

For a student

The Roe flux is a building block of Godunov-type schemes and of MUSCL schemes, where it is evaluated at the reconstructed interface states. Its upwind part −12∣A∣(ur−ul)-\tfrac12 \abs{A}(u_r - u_l) acts as numerical viscosity: each wave family is damped in proportion to the size of its speed. This keeps stationary shocks and contact discontinuities sharp, but makes the fix near sonic points necessary. Other approximate solvers, such as HLL, trade sharpness for robustness and need only estimates of the wave speeds.

Reading path

To understand this page from the ground up, read these 9 pages in order. The foundations come first.

Show the path as a graph
Each page uses the pages above it. The colour of the bar on a box shows how strong the evidence is, and the box also gives it as text. The list has the same pages.
  • no evidence level
  1. Conservation law concept
  2. Diagonalisable matrix concept
  3. Eigenvalue concept
  4. Entropy solution concept
  5. Hyperbolic conservation law concept
  6. Riemann solver concept
  7. Shock wave concept
  8. Riemann problem problem
  9. Roe solver statement

Further reading

  1. Web https://en.wikipedia.org/wiki/Roe_solver
About this page
TagTNM5CFSZM6
URIm2://TNM5CFSZM6
Kindstatement, proposition
WritingW0 stub
MSC65M08, 35L65
StatusThis copy of the site has no build data. Run m2 status TNM5CFSZM6.
AboutRiemann solver
UsesRiemann solver, Hyperbolic conservation law, Riemann problem, Diagonalisable matrix, Eigenvalue, Shock wave

Markdown · JSON · Edit on GitHub

What this page needs for W1

  • an inventory row: the row of the inventory that the node accounts for (0 of 1)
  • a source with a locator (0 of 1)

The writing levels say how complete the text of a page is. They do not measure its truth.

What links here

No page links to this page yet.