# idealGasComputeVariables¶

This source allows the user to compute specific internal energy ($$\epsilon$$), pressure ($$P$$), density ($$\rho$$), and temperature ($$T$$) from the ideal gas law,

\notag \begin{align} \rho\epsilon = P/(\Gamma-1) = \rho k_B T / m_i (\Gamma-1). \end{align}

Here $$\Gamma$$ is the adiabatic gas index, $$m_i$$ is the species mass and $$k_B$$ is the Boltzmann constant.

In this updater, the sound speed squared is computed from a formula for the generalized sound speed:

\notag \begin{align} c_s^2 = \frac{\partial P}{\partial \epsilon} \frac{P}{\rho^2} + \frac{\partial P}{\partial \rho} \\ \end{align}

This updater is intended for usage as an example. As many equation updaters in USim assume an ideal gas equation of state use of this updater is redundant and largely unnecessary. Rather, this is updater is used to provide examples of EOS usage when EOS tables are not available.

## Parameters¶

gasGamma (float, required)
Specifies the adiabatic index (ratio of specific heats), $$\Gamma$$.
speciesMass (float, required)
Specifies the species mass in $$kg$$.
kboltz (float, optional)
Specifies the Boltzmann constant. Defaults to $$1.3806 \times 10^{-23}$$ ($$J/K$$).
delta (float, optional)
A finite difference operation is applied to evaluate partial derivatives. This factor determines the relative width of the stencil. The default is $$10^{-6}$$.
soundSpeedSquaredFloor (float, optional)
Sets a minimum value for the output sound speed squared. The default is 0.
useParticleDensity (int, optional)
Whether to use the particle (true) or mass (false) density. Default is false.
densityConversionCoefficient (float, optional)
Custom density unit conversion factor. Conversion to MKS mass density ($$kg m^{-3}$$) is the default. The default conversion factor is divided by the custom conversion factor. Thus if using alternative units, set the unit conversion factor to to the MKS value that corresponds to unity in the alternative units.
temperatureConversionCoefficient (float, optional)
Custom temperature unit conversion factor. Conversion to MKS temperature ($$K$$) is the default. The default conversion factor is divided by the custom conversion factor. Thus if using alternative units, set the unit conversion factor to to the MKS value that corresponds to unity in the alternative units.
conversionCoefficients (float vector, optional)
Custom unit conversion factors for EOS values. Conversion to MKS units is the default. The default conversion factor is divided by the custom conversion factor. Thus if using alternative units, set the unit conversion factor to to the MKS value that corresponds to unity in the alternative units.
outputPeRhoInv (int, optional)
Boolean that determines if the partial derivative of the pressure with respect to specific energy divided by the density, $$\rho^{-1} \partial P / \partial \epsilon$$, is output. This output is required to compute the EOS system eigenvectors. The default is false.

## Parent Updater Data¶

in (string vector, required)

input variables (nodalArray, 1-component each, 2 required)

The input variables (exactly 2) must be the density and the internal energy, in that order. Inputs are of type nodalArray with one component each.

out (string vector, required)

output variables (nodalArray, 1-component each, 2 required and 3rd optional)

The output variables are the pressure and the sound speed squared, in that order. If outputPeRhoInv is true, a third output variable that is the partial derivative of the pressure with respect to specific energy divided by the density $$\rho^{-1} \partial P / \partial \epsilon$$. This output is required to compute the EOS system eigenvectors. Outputs are of type nodalArray with one component each.

## Example¶

<Updater computePressureAndSoundSpeedSquared>
kind=equation2d
onGrid=domain
in=[rho, intEnergy]
out=[pressure, soundSqr]
<Equation thisGas>
kind=idealGasComputeVariables
delta=1.e-5
speciesMass=MI
gasGamma=1.667
</Equation>
</Updater>