# 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.

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 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¶

## 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.