Equation Of State Unit
Kamayan uses singularity-eos to perform equation of state calls. The equation of state converts between a set of thermodynamic variables, namely density, internal energy, pressure and temperature for a given fluid component.
Note
Only the gamma law equation of state from singularity is currently supported
Each fluid component (single fluid, ions, electrons, etc)
registers an EOS_t
variant to the "Eos"
StateDescriptor
that
will be associated with an EosComponent
option enum.
The eos gets called with an indexer
that can index into the required variables for the EosComponent
.
The variables associated with a given component are
defined in a TypeList
EosVars<eos_component>::types
type trait
that is specialized for each option.
Finally the equation of state needs to be told what fields to treat as input, and what to fill as the output into the indexer.
Eos modes
mode | input | output |
---|---|---|
ener | EINT DENS |
PRES TEMP |
temp | TEMP DENS |
PRES EINT |
pres | PRES DENS |
EINT TEMP |
EosWrapped
Often there isn't a need to call the equation of state directly for a given cell,
rather one wishes to have the equation of state called over all cells
on the domain to make the state thermodynamically consistent. When this is the case
one can just depend on the EosWrapped
call to call the equation of state
on an entire MeshData
or MeshBlock
.
Parameters
Paramter | Type | Default | Allowed | Description |
---|---|---|---|---|
<eos> | ||||
mode_init | String | dens_pres | [ dens_pres, dens_ener, dens_temp, ] | eos mode to call after initializing the grid. |
model | String | single | [ single, tabulated, multitype, ] | Type of Eos to use, single, tabulated or multitype. |
<eos/gamma> | ||||
gamma | Real | 1.40000e+00 | adiabatic index used in ideal gas EoS | |
<eos/single> | ||||
Abar | Real | 1.00000e+00 | Mean molecular weight in g/mol |