Arbitrary EOS update

I have successfully moved nearly all references to gamma to the EOS module - and all uses of pressure get the pressure from the press functions which can be modified to handle arbitrary EOS.

Now I just need to modify the Riemann solvers to handle an arbitrary EOS - or build a new one.

  • For hydrodynamics, the riemann problem has three waves
    • left shock/rarefaction
    • entropy/contact
    • right shock/rarefaction
  • Neither the pressure nor velocity changes across the entropy/contact wave, so we can define a p* and u* that connects to the left state across a shock/rarefaction and to the right state across a shock/rarefaction. We can calculate dP*/du* so that newton rhapson iteration can be used.

For arbitrary EOS, there are now two difficulties.

  • First, since the density can change across the contact, we know have two more unknowns gamma*L and gamma*R and two more equations which must go into the solution.
  • And we no longer can easily calculate dP*/du* so we must resort to the secant method.

The two new equations are

where

Unfortunately the above solution is designed around the exact Riemann solver - which does not work with MHD. What about approximate Riemann solvers like the HLL?

The HLL method does not require the solution for the pressure in the star region - but just uses the conservation law and the assumption of a constant uniform state between the left and right waves.

Then integrating around the entire volume we have

And then integrating around the right half we have

Or the left half

which we can solve F*

so the only modification would be in estimating the wave speeds - but this can be done using the sound speed (or fast speed) in the left and right states - so only modification would be to calculation of sound speed. Seems very straight forward.

What about the HLLC? Once we have U* from the HLL we can estimate the speed of the contact

and then the jump conditions can be solved for p* from either the right or left as:

which then give everything else - from jump conditions. No EOS assumed

What about HLLD? Same basic principle - everything derives from jump conditions… Should be trivial to modify all of these HLL type solvers to work with arbitrary EOS.

Attachments (3)

Download all attachments as: .zip

Comments

No comments.