ASPECT
|
Public Member Functions | |
MaterialModelOutputs (const unsigned int n_points, const unsigned int n_comp) | |
MaterialModelOutputs (const MaterialModelOutputs &source) | |
MaterialModelOutputs (MaterialModelOutputs &&) noexcept=default | |
MaterialModelOutputs & | operator= (const MaterialModelOutputs &source)=delete |
MaterialModelOutputs & | operator= (MaterialModelOutputs &&) noexcept=default |
unsigned int | n_evaluation_points () const |
template<class AdditionalOutputType > | |
AdditionalOutputType * | get_additional_output () |
template<class AdditionalOutputType > | |
const AdditionalOutputType * | get_additional_output () const |
void | move_additional_outputs_from (MaterialModelOutputs< dim > &other) |
Public Attributes | |
std::vector< double > | viscosities |
std::vector< double > | densities |
std::vector< double > | thermal_expansion_coefficients |
std::vector< double > | specific_heat |
std::vector< double > | thermal_conductivities |
std::vector< double > | compressibilities |
std::vector< double > | entropy_derivative_pressure |
std::vector< double > | entropy_derivative_temperature |
std::vector< std::vector< double > > | reaction_terms |
std::vector< std::unique_ptr< AdditionalMaterialOutputs< dim > > > | additional_outputs |
A data structure with the output field of the MaterialModel::Interface::evaluate() function. The vectors are the values at the different positions given by MaterialModelInputs::position.
Definition at line 480 of file interface.h.
aspect::MaterialModel::MaterialModelOutputs< dim >::MaterialModelOutputs | ( | const unsigned int | n_points, |
const unsigned int | n_comp | ||
) |
Constructor. Initialize the various arrays of this structure with the given number of quadrature points and (finite element) components.
n_points | The number of quadrature points for which input quantities will be provided. |
n_comp | The number of vector quantities (in the order in which the Introspection class reports them) for which input will be provided. |
aspect::MaterialModel::MaterialModelOutputs< dim >::MaterialModelOutputs | ( | const MaterialModelOutputs< dim > & | source | ) |
Copy constructor. This constructor copies all data members of the source object except for the additional output data (of type AdditionalMaterialOutputs) pointers, stored in the source.additional_outputs
member variable.
This is because these pointers can not be copied (they are unique to the source
object). Since they can also not be recreated without the original code that created these objects in the first place, this constructor throws an exception if the source
object had any additional output data objects associated with it.
|
defaultnoexcept |
Move constructor. This constructor simply moves all members.
|
delete |
Copy operator. Copying these objects is expensive, and consequently prohibited.
|
defaultnoexcept |
Move operator.
unsigned int aspect::MaterialModel::MaterialModelOutputs< dim >::n_evaluation_points | ( | ) | const |
Function that returns the number of points at which the material model is to be evaluated.
AdditionalOutputType * aspect::MaterialModel::MaterialModelOutputs< dim >::get_additional_output | ( | ) |
Given an additional material model output class as explicitly specified template argument, returns a pointer to this additional material model output object if it is used in the current simulation. The output can then be filled in the MaterialModels::Interface::evaluate() function. If the output does not exist, a null pointer is returned.
Definition at line 1487 of file interface.h.
References aspect::MaterialModel::MaterialProperties::additional_outputs.
const AdditionalOutputType * aspect::MaterialModel::MaterialModelOutputs< dim >::get_additional_output | ( | ) | const |
Constant version of get_additional_output() returning a const pointer.
Definition at line 1501 of file interface.h.
References aspect::MaterialModel::MaterialProperties::additional_outputs.
void aspect::MaterialModel::MaterialModelOutputs< dim >::move_additional_outputs_from | ( | MaterialModelOutputs< dim > & | other | ) |
Steal the additional outputs from other
. The destination (this
), is expected to currently have no additional outputs.
Definition at line 1514 of file interface.h.
References aspect::MaterialModel::MaterialProperties::additional_outputs, and aspect::MaterialModel::MaterialModelOutputs< dim >::additional_outputs.
std::vector<double> aspect::MaterialModel::MaterialModelOutputs< dim >::viscosities |
Viscosity \(\eta\) values at the given positions.
Definition at line 536 of file interface.h.
std::vector<double> aspect::MaterialModel::MaterialModelOutputs< dim >::densities |
Density values at the given positions.
Definition at line 541 of file interface.h.
std::vector<double> aspect::MaterialModel::MaterialModelOutputs< dim >::thermal_expansion_coefficients |
Thermal expansion coefficients at the given positions. It is defined as \(\alpha = - \frac{1}{\rho} \frac{\partial\rho}{\partial T}\)
Definition at line 547 of file interface.h.
std::vector<double> aspect::MaterialModel::MaterialModelOutputs< dim >::specific_heat |
Specific heat at the given positions.
Definition at line 552 of file interface.h.
std::vector<double> aspect::MaterialModel::MaterialModelOutputs< dim >::thermal_conductivities |
Thermal conductivity at the given positions.
Definition at line 557 of file interface.h.
std::vector<double> aspect::MaterialModel::MaterialModelOutputs< dim >::compressibilities |
Compressibility at the given positions. The compressibility is defined as \(\kappa = \frac{1}{\rho} \frac{\partial\rho}{\partial p}\).
Definition at line 563 of file interface.h.
std::vector<double> aspect::MaterialModel::MaterialModelOutputs< dim >::entropy_derivative_pressure |
The product of the change of entropy \(\Delta S\) at a phase transition and the derivative of the phase function \(X=X(p,T,\mathfrak c,\mathbf x)\) with regard to pressure at the given positions.
Definition at line 570 of file interface.h.
std::vector<double> aspect::MaterialModel::MaterialModelOutputs< dim >::entropy_derivative_temperature |
The product of (minus) the change of entropy \(-\Delta S\) at a phase transition and the derivative of the phase function \(X=X(p,T,\mathfrak c,\mathbf x)\) with regard to temperature at the given positions.
Definition at line 578 of file interface.h.
std::vector<std::vector<double> > aspect::MaterialModel::MaterialModelOutputs< dim >::reaction_terms |
Change in composition due to chemical reactions at the given positions. The term reaction_terms[i][c] is the change in compositional field c at point i.
The mental model behind prescribing actual changes in composition rather than reaction rates is that we assume that there is always an equilibrium between the compositional fields (because the time scale of reactions is normally much shorter than that of convection), so the quantity returned by this function is an actual change in the amount of material, which is added to or subtracted from the current value of the compositional field, and NOT a reaction rate. The idea is, that in dependence of temperature, pressure, position and the compositional fields themselves an equilibrium can be calculated, and the difference between the current value and the equilibrium can be added to the respective compositional field.
For mass conservation it should ALWAYS be checked that what is subtracted from one field is added to another field (and the other way round) and that one never subtracts more than the actual value of a field (so it does not get negative).
This function has a default implementation that sets the reaction term to zero (assuming no reactions).
Definition at line 616 of file interface.h.
std::vector<std::unique_ptr<AdditionalMaterialOutputs<dim> > > aspect::MaterialModel::MaterialModelOutputs< dim >::additional_outputs |
Vector of shared pointers to additional material model output objects that can then be added to MaterialModelOutputs. By default, no outputs are added.
Definition at line 623 of file interface.h.
Referenced by aspect::MaterialModel::MaterialModelOutputs< dim >::move_additional_outputs_from().