CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > General Forums > Main CFD Forum

On the Roe approximate Riemann solver in the preconditioned density based method

Register Blogs Community New Posts Updated Threads Search

Like Tree13Likes

 
 
LinkBack Thread Tools Search this Thread Display Modes
Prev Previous Post   Next Post Next
Old   June 20, 2021, 10:32
Default On the Roe approximate Riemann solver in the preconditioned density based method
  #1
Senior Member
 
sbaffini's Avatar
 
Paolo Lampitella
Join Date: Mar 2009
Location: Italy
Posts: 2,163
Blog Entries: 29
Rep Power: 39
sbaffini will become famous soon enoughsbaffini will become famous soon enough
Send a message via Skype™ to sbaffini
Dear all,

the Roe approximate Riemann solver is typically written for a general equation in the following form:

\frac{\partial \mathbf{Q}}{\partial t} + \frac{\partial \mathbf{F}\left(\mathbf{Q}\right)}{\partial x} = 0

which is then linearized around a state \widetilde{\mathbf{Q}} to produce:


\frac{\partial \mathbf{Q}}{\partial t} + \mathbf{A}\left(\widetilde{\mathbf{Q}}\right)\frac{\partial \mathbf{Q}}{\partial x} = 0

where:

\mathbf{A} = \frac{\partial \mathbf{F}}{\partial \mathbf{Q}}

is the Jacobian of the flux \mathbf{F} with respect to the conserved variables \mathbf{Q}. Besides some obvious properties that the state \widetilde{\mathbf{Q}} has to satisfy when used to evaluate the Jacobian, there is also the so called conservative property:

\mathbf{A}\left(\widetilde{\mathbf{Q}}\right) \left(\mathbf{Q}_R-\mathbf{Q}_L\right) = \mathbf{F}_R-\mathbf{F}_L.

Turns out that for the Euler equations written in conservative variables and the ideal gas EOS, the state \widetilde{\mathbf{Q}}\left(\mathbf{Q}_L,\mathbf{Q}_R\right) can be evaluated with the so called Roe averages:

\widetilde{\phi} = \frac{\sqrt{\rho_L} \phi_L + \sqrt{\rho_R} \phi_R}{\sqrt{\rho_L}+\sqrt{\rho_L}}

for the three velocity components and the enthalpy, and with:

\widetilde{\rho} = \sqrt{\rho_L \rho_R}

for the density. These are all the quantities needed in the Jacobian, which include the speed of sound. So far so good, one can easily follow the Roe derivation of such state under the given assumptions and no specific problem arises.

For non ideal gases the matter is more complicated because, roughly speaking, there are more unknowns now coming from the partial derivatives in the EOS (which can't be expressed anymore, in general, in terms of the remaining variables). Yet, the literature on possible solutions seems abundant. Again, so far so good.

My question here, however, concerns the situation when the above approach is applied to a preconditioned density based solver, and more specifically in the context of a cell-centered FV solver. Say, like the following ones:

Merkle, Sullivan, Buelow, Venkateswaran: Computation of Flows with Arbitrary Equations of State, AIAA Journal Vol. 36, No. 4, April 1998

Weiss, Maruszewski, Smith: Implicit Solution of Preconditioned Navier–Stokes Equations Using Algebraic Multigrid, AIAA Journal Vol. 37, No. 1, January 1999

In this case, one actually ends up having to solve the following problem instead:

\mathbf{\Gamma}\frac{\partial \mathbf{q}}{\partial t} + \mathbf{\Gamma}\left[\mathbf{\Gamma}^{-1} \left(\mathbf{AM}\right)\right]\frac{\partial \mathbf{q}}{\partial x} = 0

where \mathbf{q}=\left[p, u, v, w, T\right]^T are the primitive variables the method solves for, \mathbf{Q}=\left[\rho, \rho u, \rho v, \rho w, \rho E\right]^T are the conserved variables and

\mathbf{AM} = \frac{\partial \mathbf{F}}{\partial \mathbf{Q}} \frac{\partial \mathbf{Q}}{\partial \mathbf{q}}

is the Jacobian with respect to the primitive variables. The method also requires the following quantities from the EOS: \rho\left(p,T\right), H\left(p,T\right), \rho_p\left(p,T\right), \rho_T\left(p,T\right), H_p\left(p,T\right) and H_T\left(p,T\right).

The preconditioning comes from \mathbf{\Gamma}=\mathbf{M}^m, which is a modified version of \mathbf{M} where, in place of \rho_p a modified one is used:

\left(\frac{\partial \rho}{\partial p}\right)' = \frac{1}{V_r^2}-\frac{\rho_T \left(1-\rho H_p\right)}{\rho H_T}

where a properly defined V_r plays the role of an artificial speed of sound that keeps the system hyperbolic and well conditioned at all speeds. Now, the question is: where do I even start to try to satisfy the conservation property as per the original Roe scheme? In particular, how does the preconditioning affect it? Is still \mathbf{A} the relevant matrix? Or do I have to use \mathbf{AM}? (Not even considering the possibility of \mathbf{\Gamma}^{-1} \left(\mathbf{AM}\right)). Thus, for example, might it make sense to consider the conservation property in the following form?

\mathbf{AM}\left(\mathbf{q}_R-\mathbf{q}_L\right) = \mathbf{F}_R-\mathbf{F}_L.

Does this produce the same result of the original one? I think not.

Note that some codes, Fluent for example, simply use arithmetic averages of the R and L states and don't care at all of the Roe average. Until today, I tought I was actually using the Roe averages, that is: density, enthalpy and all the primitive variables were computed a la Roe, then those were used to compute the remaining derivatives. But then I realized that this might not be correct, not even for ideal gases (I already knew it isn't for general EOS). For example, consider the ideal gas EOS p=\rho R T and the resulting \rho_p derivative:

\frac{\partial \rho}{\partial p} = \frac{1}{RT} = \frac{\rho}{p}

This also holds for the case of the arithmetic average. Still, using the Roe averages for p and T turns out instead that:

\frac{1}{R\widetilde{T}} \neq \frac{\widetilde{\rho}}{\widetilde{p}}

So, in order to recover the correct Roe average for the ideal gas case requires, at least, a careful implementation of the thermodynamic derivatives, which I had not done. That is, the two versions being different, only one of the two can then reproduce the original Roe state.

Note that none of this ever affected any practical computation of the scheme, that I know of. In particular, my implementation also switches to the HLLE+ scheme for the cases where an entropy fix is needed, thus, in the end, is not a true Roe scheme in any case. Still, my lack of understanding on the matter has now scared me off enough to look for more answers.

Thanks to anyone who can point me to the relevant literature or provide his own interpretation of the matter. More specifically, how do I compute the Roe averages in the case the primitive variables are used and how do I compute the EOS derivatives in order to recover the original Roe ones for the ideal gas case? Are they even recoverable at all in my case?
aerosayan and aero_head like this.

Last edited by sbaffini; June 21, 2021 at 03:08.
sbaffini is offline   Reply With Quote

 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Pressure based and Density based Solver Xobile Main CFD Forum 39 August 19, 2020 06:04
Approximate Riemann solver and reconstruction TurbJet Main CFD Forum 2 June 14, 2020 09:02
Density and Pressure based solver Diger ANSYS 1 May 1, 2018 23:51
Density or Pressure based solver Achu FLUENT 1 April 27, 2018 04:34
Pressure based and Density based Solver taekyu8 FLUENT 0 January 28, 2013 11:05


All times are GMT -4. The time now is 06:45.