1
$\begingroup$

I have working program for solving one-component 1D Euler equations with Roe's approximate Riemann solver constructed according to this pdf. My implementation of the algorithm is as follows ($\rho$ is density, $u$ is velocity, $h=\frac{e+p}{\rho}$ is total specific enthalpy, $c$ is speed of sound):

First, we compute Roe average values between the states:

$$ \rho = \sqrt{\rho_l\rho_r} \\ u = \frac{\sqrt{\rho_l}u_l + \sqrt{\rho_r}u_r}{\sqrt{\rho_l}+\sqrt{\rho_r}} \\ h = \frac{\sqrt{\rho_l}h_l + \sqrt{\rho_r}h_r}{\sqrt{\rho_l}+\sqrt{\rho_r}} \\ c = \sqrt{(\gamma-1)(h-u^2/2)} $$

Then the right eigenvectors of the Jacobian matrix:

$$ \left( \begin{matrix} r_0 & r_1 & r_2 \\ \end{matrix} \right) = \left( \begin{matrix} 1 & 1 & 1 \\ u-c & u & u+c \\ h-uc & u^2/2 & h+uc \end{matrix} \right) $$

Absolute values of wave speeds: $$ |\lambda_0| = |u-c|, \; |\lambda_1| = |u|, \; |\lambda_2| = |u+c| $$ and apply some entropy fix to them (not relevant here).

Wave amplitudes (coefficients of the jump between states decomposition by eigenvectors): $$ \alpha_0 = \frac{(p_r-p_l) - \rho c (u_r-u_l)}{2c^2} \\ \alpha_1 = (\rho_r - \rho_l) - \frac{(p_r-p_l)}{c^2} \\ \alpha_2 = \frac{(p_r-p_l) + \rho c (u_r-u_l)}{2c^2} \\ $$

Flux values of the states: $$ F_l = \left(\begin{array}{c} \rho_l u_l \\ p_l+\rho_l u_l^2 \\ (e_l+p_l)u_l \end{array}\right), \quad F_r = \left(\begin{array}{c} \rho_r u_r \\ p_r+\rho_r u_r^2 \\ (e_r+p_r)u_r \end{array}\right) $$

And finally flux values of the middle state: $$ F = \frac{1}{2}(F_l+F_r) - \frac{1}{2} \sum\limits_{p=0}^2 |\lambda_p| \alpha_p r_p $$

The problem is how to generalize this algorithm for equilibrium multi-component perfect gas mixture?

I'm already able to calculate the eigenvectors for this case, here is an example for 3 components, corresponding to $(u,u,u,u+a,u-a)$ eigenvalues: $$ \left( \begin{matrix} r_0 & r_1 & r_2 & r_3 & r_4 \\ \end{matrix} \right) = \left( \begin{matrix} 1 & 0 & 0 & \frac{\rho_0}{\rho} & \frac{\rho_0}{\rho} \\ 0 & 1 & 0 & \frac{\rho_1}{\rho} & \frac{\rho_1}{\rho} \\ 0 & 0 & 1 & \frac{\rho_2}{\rho} & \frac{\rho_2}{\rho} \\ u & u & u & u+c & u-c \\ u^2-\frac{1}{\gamma-1}\frac{\partial p}{\partial \rho_0} & u^2-\frac{1}{\gamma-1}\frac{\partial p}{\partial \rho_1} & u^2-\frac{1}{\gamma-1}\frac{\partial p}{\partial \rho_2} & h+uc & h-uc \end{matrix} \right) $$ where $$ \frac{\partial p}{\partial \rho_i} = \frac{R_0 T}{\mu_i} - (\gamma-1)(h_{0i}+c_{vi}T - u^2/2) $$ and $T$ is temperature, $R_0$ is universal gas constant, $\mu_i, h_{0i}, c_{vi}$ are molar mass, heat of formation and heat capacity of $i$-th gas component.

These formulas are derived from this paper by discarding of vibrational terms.

The questions are:

  1. How to correctly apply Roe averaging to gas mixture? I.e. how to calculate $\rho_i, u, \gamma, T, h, c$ for the matrix above?

  2. How to calculate $\alpha_i$ for this case?

$\endgroup$
3
  • 1
    $\begingroup$ I would suggest taking a look at Abgrall, R. & Karni, S. Computations of Compressible Multifluids. Journal of Computational Physics 169, 594–623 (2001). It has a good review of the literature up until then with a nice statement of what the issues are. $\endgroup$ Oct 22 '18 at 17:14
  • 1
    $\begingroup$ You definition of Roe average $h$ is not correct. It should be similar to Roe average $u$ value. $\endgroup$
    – cfdlab
    Oct 23 '18 at 14:23
  • $\begingroup$ @PraveenChandrashekar Thanks! The formula is correct for enthalpy $h = (e+p)$, which is used in my program. But in this context specific enthalpy ($\frac{e+p}{\rho}$) is used instead so that averaging should be $h = \frac{\sqrt{\rho_l}h_l + \sqrt{\rho_r}h_r}{\sqrt{\rho_l}+\sqrt{\rho_r}}$, as you said. $\endgroup$
    – omican
    Oct 24 '18 at 6:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.