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 --with-adiabatic-index. 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.

Ideal Gas
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} }\)
Isothermal Gas
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 density-entropy scheme or the internal enegy in a density-energy SPH formulation) written to the snapshots is meaningless. The pressure, however, is always correct in all scheme.

Planetary EoS

See Planetary Equations of State.

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.