Adds ESDG continued from @thomasgibson's previous work. (#573).
The main pieces are:
euler.py
Stand-alone entropy_stable_euler_operator
Options to use entropy-stable
inviscid.py
Entropy conserving flux routines:
entropy_conserving_flux_chandrashekar (single gas only, passive scalars ok)
entropy_conserving_flux_renac (supports mixtures)
Facial flux drivers:
entropy_stable_inviscid_facial_flux_rusanov ESDG Rusanov-type flux with dissipation
entropy_stable_inviscid_facial_flux. General ESDG flux, dissipation optional
navierstokes.py
Rearranged to use inviscid_fluid_operator = {None, euler_operator, entropy_stable_euler_operator} for inviscid terms (default is None, meaning - do inline inviscid terms)
Options to use entropy-stable for inviscid terms
gas_model.py
Utilities to convert from conservative to/from entropy variables CV <--> EV (move to EOS?)
Utilities to create CV from projected EV
Examples
Added ESDG option to all examples
Some work better than others - but we should have the option available so we can exercise/debug it
Review guide:
There is a lot of repeated code in the giant gob of examples. The review will go easier/quicker by looking at some representative examples, instead of giving them all detailed attention. Here are some representative examples:
Simple case: pulse-mpi.py
Complex case: thermally-coupled-mpi.py
Questions for the review:
[ ] Is the scope and purpose of the PR clear?
[ ] The PR should have a description.
[ ] The PR should have a guide if needed (e.g., an ordering).
[ ] Is every top-level method and class documented? Are things that should be documented actually so?
[ ] Is the interface understandable? (I.e. can someone figure out what stuff does?) Is it well-defined?
[ ] Does the implementation do what the docstring claims?
[ ] Is everything that is implemented covered by tests?
[ ] Do you see any immediate risks or performance disadvantages with the design? Example: what do interface normals attach to?
Adds ESDG continued from @thomasgibson's previous work. (#573).
The main pieces are:
euler.py
entropy_stable_euler_operator
inviscid.py
entropy_conserving_flux_chandrashekar
(single gas only, passive scalars ok)entropy_conserving_flux_renac
(supports mixtures)entropy_stable_inviscid_facial_flux_rusanov
ESDG Rusanov-type flux with dissipationentropy_stable_inviscid_facial_flux
. General ESDG flux, dissipation optionalnavierstokes.py
inviscid_fluid_operator
= {None,euler_operator
,entropy_stable_euler_operator
} for inviscid terms (default is None, meaning - do inline inviscid terms)gas_model.py
CV
<-->EV
(move to EOS?)CV
from projectedEV
Review guide:
pulse-mpi.py
thermally-coupled-mpi.py
Questions for the review: