ASPECT
|
Static Public Member Functions | |
static void | declare_parameters (ParameterHandler &prm) |
Static Public Member Functions inherited from aspect::SimulatorAccess< dim > | |
static void | get_composition_values_at_q_point (const std::vector< std::vector< double >> &composition_values, const unsigned int q, std::vector< double > &composition_values_at_q_point) |
Public Attributes | |
std::vector< double > | reference_densities |
Private Attributes | |
std::vector< double > | reference_temperatures |
std::vector< double > | reference_isothermal_compressibilities |
std::vector< double > | isothermal_bulk_modulus_pressure_derivatives |
std::vector< double > | reference_thermal_expansivities |
std::vector< double > | isochoric_specific_heats |
A compressible equation of state that is intended for use with multiple compositional fields. For each material property, the user supplies a comma delimited list of length N+1, where N is the number of compositional fields used in the computation. The first entry corresponds to the "background" (which is also why there are N+1 entries).
If a single value is given, then all the compositional fields are given that value. Other lengths of lists are not allowed. The material parameters for each compositional field are calculated self-consistently, assuming a constant pressure derivative of the isothermal bulk modulus ( \(K_T'\)) at the reference temperature (i.e. a Murnaghan equation of state), a constant ratio of the thermal expansivity ( \(\alpha\)) and isothermal compressibility ( \(\beta_T\)), and a constant isochoric specific heat \(C_v\). This leads to the following expressions for the material properties of each material:
\(\rho(p,T) = \rho_0 f^{1/K_T'}\) \(C_p(p,T) = C_v + (\alpha T \frac{\alpha}{\beta} f^{-1-(1/K_T')} / \rho_0)\) \(\alpha(p, T) = \alpha_0/f\) \(\beta_T(p, T) = \beta_0/f\) \(f = (1 + (p - \frac{\alpha}{\beta}(T-T_0)) K_T' \beta)\).
where \(\rho\) is the density and \(C_p\) is the isobaric heat capacity. \(f\) is a scaling factor for \(\alpha\) and \(\beta_T\).
Definition at line 63 of file multicomponent_compressible.h.
void aspect::MaterialModel::EquationOfState::MulticomponentCompressible< dim >::evaluate | ( | const MaterialModel::MaterialModelInputs< dim > & | in, |
const unsigned int | q, | ||
MaterialModel::EquationOfStateOutputs< dim > & | out | ||
) | const |
A function that computes the output of the equation of state out
for all compositions, given the inputs in in
and an index q that determines which entry of the vector of inputs is used.
bool aspect::MaterialModel::EquationOfState::MulticomponentCompressible< dim >::is_compressible | ( | ) | const |
Return whether the model is compressible or not. Incompressibility does not necessarily imply that the density is constant; rather, it may still depend on temperature or pressure. In the current context, compressibility means whether we should solve the continuity equation as \(\nabla \cdot (\rho \mathbf u)=0\) (compressible Stokes) or as \(\nabla \cdot \mathbf{u}=0\) (incompressible Stokes). This model is compressible.
|
static |
Declare the parameters this class takes through input files. The optional parameter n_compositions
determines the maximum number of compositions the equation of state is set up with, in other words, how many compositional fields influence the density.
void aspect::MaterialModel::EquationOfState::MulticomponentCompressible< dim >::parse_parameters | ( | ParameterHandler & | prm | ) |
Read the parameters this class declares from the parameter file. The optional parameter n_compositions
determines the maximum number of compositions the equation of state is set up with, and should have the same value as the parameter with the same name in the declare_parameters() function.
std::vector<double> aspect::MaterialModel::EquationOfState::MulticomponentCompressible< dim >::reference_densities |
Vector for reference_densities, read from parameter file .
Definition at line 110 of file multicomponent_compressible.h.
|
private |
Vector for reference temperatures, read from parameter file .
Definition at line 116 of file multicomponent_compressible.h.
|
private |
Vector for reference compressibilities, read from parameter file.
Definition at line 121 of file multicomponent_compressible.h.
|
private |
Vector for isothermal bulk modulus pressure derivatives, read from parameter file.
Definition at line 126 of file multicomponent_compressible.h.
|
private |
Vector for reference thermal expansivities, read from parameter file.
Definition at line 131 of file multicomponent_compressible.h.
|
private |
Vector for isochoric specific heats, read from parameter file.
Definition at line 136 of file multicomponent_compressible.h.