Skip to content

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