Equations of State
Currently, SWIFT offers two different gas equations of state (EoS)
implemented: ideal
and isothermal
; as well as a variety of EoS for
“planetary” materials. The EoS describe the relations between our
main thermodynamical variables: the internal energy per unit mass
(\(u\)), the mass density (\(\rho\)), the entropy (\(A\)) and
the pressure (\(P\)).
Gas EoS
We write the adiabatic index as \(\gamma \) and \( c_s \) denotes
the speed of sound. The adiabatic index can be changed at configure
time by choosing one of the allowed values of the option
withadiabaticindex
. The default value is \(\gamma = 5/3 \).
The tables below give the expression for the thermodynamic quantities on each row entry as a function of the gas density and the thermodynamical quantity given in the header of each column.
Variable 
A 
u 
P 

A 
\( \left( \gamma  1 \right) u \rho^{1\gamma} \) 
\(P \rho^{\gamma} \) 

u 
\( A \frac{ \rho^{ \gamma  1 } }{\gamma  1 } \) 
\(\frac{1}{\gamma  1} \frac{P}{\rho}\) 

P 
\( A \rho^\gamma \) 
\( \left( \gamma  1\right) u \rho \) 

\(c_s\) 
\(\sqrt{ \gamma \rho^{\gamma  1} A}\) 
\(\sqrt{ u \gamma \left( \gamma  1 \right) } \) 
\(\sqrt{ \frac{\gamma P}{\rho} }\) 
Variable 
A 
u 
P 

A 
\(\left( \gamma  1 \right) u \rho^{1\gamma}\) 

u 
const 

P 
\(\left( \gamma  1\right) u \rho \) 

\( c_s\) 
\(\sqrt{ u \gamma \left( \gamma  1 \right) } \) 
Note that when running with an isothermal equation of state, the value of the tracked thermodynamic variable (e.g. the entropy in a densityentropy scheme or the internal enegy in a densityenergy SPH formulation) written to the snapshots is meaningless. The pressure, however, is always correct in all scheme.
Planetary EoS
How to Implement a New Equation of State
See General information for adding new schemes for a full list of required changes.
You will need to provide an equation_of_state.h
file containing: the
definition of eos_parameters
, IO functions and transformations between the
different variables: \(u(\rho, A)\), \(u(\rho, P)\), \(P(\rho,A)\),
\(P(\rho, u)\), \(A(\rho, P)\), \(A(\rho, u)\), \(c_s(\rho, A)\),
\(c_s(\rho, u)\) and \(c_s(\rho, P)\). See other equation of state files
to have implementation details.