|
| | BarotropicClosure (EOST equation_of_state, const double enthalpy_power) |
| | Construct a barotropic closure equation.
|
| |
| | BarotropicClosure (EOST equation_of_state) |
| | Construct a barotropic closure equation for a polytropic equation of state.
|
| |
| PointLinearization< Operands > | evaluate (const EquationPoint< Operands > &point) const |
| | Evaluate the barotropic closure equation point-wise integrand and its partial derivatives.
|
| |
| template<typename OperandT> |
| int | additional_order (OperandT, int) const |
| | Return the additional quadrature order required for the barotropic closure equation.
|
| |
template<eos::models::BarotropicClosureEOS EOST>
class serif::equations::BarotropicClosure< EOST >
- Template Parameters
-
| EOST | The equation of state type, this must satisfy the BarotropicClosureEOS concept. The requires section below lays out what the BarotriopicClosureEOS concept requires. |
| Requirements |
-
The equation of state type must publish a valid Relation catalog
-
The equation of state type must implement all relations required by the catalog it publishes
-
The equation of state type must support the relation density from specific enthalpy
-
The equation of state type must support the partial deriviative density from specific enthalpy with respect to specific enthalpy
|
In a barotropic model surfaces of constant pressure coincide with surfaces of constant density and constant specific enthalpy. The barotropic closure equation enforces that the density of the model argrees with the density of the the equation of state given the model specific enthalpy. Put another way, for a barotropic model, this equation is what enforces that the ethalpy and density must be consistent with each other and with the equation of state. The residual is given by \( \rho - \rho_{\text{EOS}}(h) \), where \( \rho \) is the model density, \( h \) is the model specific enthalpy.
The partial derivatives implemented are
- \( \frac{\partial r}{\partial \rho} = 1 \)
- \( \frac{\partial \rho}{\partial h} = -\frac{\partial \rho_{\text{EOS}}(h)}{\partial h} \)
- Note
- The eos derivative is implemented by the eos::partial_derivative function and is up to the eos model to implement correctly.
template<eos::models::BarotropicClosureEOS EOST>
template<typename OperandT>
Return the additional quadrature order required for the barotropic closure equation.
The additional order is calculated as \( \text{order} = \text{density order} + 2 \times \text{position order} \), where the density order is the order of the functional space of the model density, and the position order is the order of the position functional space.
- Template Parameters
-
| OperandT | The operand type for which to calculate the additional order. This is only used to determine if the operand is the enthalpy or not. If not enthalpy then the additional order is returned as 0. |
- Parameters
-
| operand | The operand type for which to calculate the additional order. This is only used to determine if the operand is the enthalpy or not. If not enthalpy then the additional order is returned as 0. |
| position_order | The order of the position functional space. |
- Returns
- The additional quadrature order required for the barotropic closure equation.
- Exceptions
-
| std::invalid_argument | If the extra order exceeds the supported range of int. |