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, 2018 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, 2018 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, 2018 at 6:03

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.