ASPECT
|
Public Types | |
using | MaterialModelInputs = MaterialModel::MaterialModelInputs< dim > |
using | MaterialModelOutputs = MaterialModel::MaterialModelOutputs< dim > |
Public Member Functions | |
virtual void | evaluate (const MaterialModel::MaterialModelInputs< dim > &in, MaterialModel::MaterialModelOutputs< dim > &out) const =0 |
virtual void | create_additional_named_outputs (MaterialModelOutputs &outputs) const |
virtual void | fill_additional_material_model_inputs (MaterialModel::MaterialModelInputs< dim > &input, const LinearAlgebra::BlockVector &solution, const FEValuesBase< dim > &fe_values, const Introspection< dim > &introspection) const |
Qualitative properties one can ask a material model | |
const NonlinearDependence::ModelDependence & | get_model_dependence () const |
virtual bool | is_compressible () const =0 |
Public Member Functions inherited from aspect::Plugins::InterfaceBase | |
virtual | ~InterfaceBase ()=default |
virtual void | initialize () |
virtual void | update () |
virtual void | parse_parameters (ParameterHandler &prm) |
Protected Attributes | |
NonlinearDependence::ModelDependence | model_dependence |
Additional Inherited Members | |
Static Public Member Functions inherited from aspect::Plugins::InterfaceBase | |
static void | declare_parameters (ParameterHandler &prm) |
A base class for parameterizations of material models. Classes derived from this class will need to implement functions that provide material parameters such as the viscosity, density, etc, typically as a function of position, temperature and pressure at that location.
Implementing a material model requires you to override evaluate() and fill the output argument struct instead of implementing the functions viscosity(), density(), etc.. In this case, all other functions are being ignored.
In all cases, model_dependence values, is_compressible() need to be implemented.
Definition at line 65 of file simulator_access.h.
using aspect::MaterialModel::Interface< dim >::MaterialModelInputs = MaterialModel::MaterialModelInputs<dim> |
A typedef to import the MaterialModelInputs name into the current class. This typedef primarily exists as a backward compatibility measure given that the referenced structure used to be a member of the current class.
Definition at line 1276 of file interface.h.
using aspect::MaterialModel::Interface< dim >::MaterialModelOutputs = MaterialModel::MaterialModelOutputs<dim> |
A typedef to import the MaterialModelOutputs name into the current class. This typedef primarily exists as a backward compatibility measure given that the referenced structure used to be a member of the current class.
Definition at line 1284 of file interface.h.
const NonlinearDependence::ModelDependence& aspect::MaterialModel::Interface< dim >::get_model_dependence | ( | ) | const |
Return a structure that describes how each of the model's output variables (such as viscosity, density, etc) depend on the input variables pressure, temperature, strain rate, and compositional fields.
|
pure virtual |
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).
Implemented in aspect::MaterialModel::ViscoPlastic< dim >, aspect::MaterialModel::Steinberger< dim >, aspect::MaterialModel::Viscoelastic< dim >, aspect::MaterialModel::Averaging< dim >, aspect::MaterialModel::GrainSize< dim >, aspect::MaterialModel::DruckerPrager< dim >, aspect::MaterialModel::Compositing< dim >, aspect::MaterialModel::DiffusionDislocation< dim >, aspect::MaterialModel::MulticomponentCompressible< dim >, aspect::MaterialModel::PrescribedViscosity< dim >, aspect::MaterialModel::MeltBoukare< dim >, aspect::MaterialModel::Multicomponent< dim >, aspect::MaterialModel::ReplaceLithosphereViscosity< dim >, aspect::MaterialModel::SimpleCompressible< dim >, aspect::MaterialModel::AsciiReferenceProfile< dim >, aspect::MaterialModel::PerpleXLookup< dim >, aspect::MaterialModel::LatentHeatMelt< dim >, aspect::MaterialModel::LatentHeat< dim >, aspect::MaterialModel::ModifiedTait< dim >, aspect::MaterialModel::EntropyModel< dim >, aspect::MaterialModel::MeltSimple< dim >, aspect::MaterialModel::CompositionReaction< dim >, aspect::MaterialModel::DepthDependent< dim >, aspect::MaterialModel::Nondimensional< dim >, aspect::MaterialModel::Simple< dim >, aspect::MaterialModel::MeltGlobal< dim >, aspect::MaterialModel::ReactiveFluidTransport< dim >, and aspect::MaterialModel::Simpler< dim >.
|
pure virtual |
Function to compute the material properties in out
given the inputs in in
.
Implemented in aspect::MaterialModel::ViscoPlastic< dim >, aspect::MaterialModel::Steinberger< dim >, aspect::MaterialModel::Viscoelastic< dim >, aspect::MaterialModel::DruckerPrager< dim >, aspect::MaterialModel::DiffusionDislocation< dim >, aspect::MaterialModel::EntropyModel< dim >, aspect::MaterialModel::PerpleXLookup< dim >, aspect::MaterialModel::MulticomponentCompressible< dim >, aspect::MaterialModel::Multicomponent< dim >, aspect::MaterialModel::AsciiReferenceProfile< dim >, aspect::MaterialModel::Nondimensional< dim >, aspect::MaterialModel::LatentHeatMelt< dim >, aspect::MaterialModel::Simpler< dim >, and aspect::MaterialModel::Simple< dim >.
|
virtual |
If this material model can produce additional named outputs that are derived from NamedAdditionalOutputs, create them in here. By default, this does nothing.
Reimplemented in aspect::MaterialModel::ViscoPlastic< dim >, aspect::MaterialModel::Steinberger< dim >, aspect::MaterialModel::Viscoelastic< dim >, aspect::MaterialModel::Averaging< dim >, aspect::MaterialModel::GrainSize< dim >, aspect::MaterialModel::MeltBoukare< dim >, aspect::MaterialModel::ReactiveFluidTransport< dim >, aspect::MaterialModel::MeltSimple< dim >, aspect::MaterialModel::EntropyModel< dim >, aspect::MaterialModel::MeltGlobal< dim >, aspect::MaterialModel::AsciiReferenceProfile< dim >, aspect::MaterialModel::CompositionReaction< dim >, aspect::MaterialModel::DepthDependent< dim >, aspect::MaterialModel::PrescribedViscosity< dim >, and aspect::MaterialModel::ReplaceLithosphereViscosity< dim >.
|
virtual |
Fill the additional material model inputs that have been attached by the individual heating or material models in the create_additional_material_model_inputs function. This is done by looping over all material model inputs that have been created and calling their respective member functions.
|
protected |
A structure that describes how each of the model's output variables (such as viscosity, density, etc) depend on the input variables pressure, temperature, strain rate, and compositional fields.
The constructor of this class calls the default constructor of this member variable which in turn initializes the object to invalid values. Derived classes then need to fill it either in their constructor (if they already know the correct dependencies at that time) or at the end of their parse_parameter() functions where they know the correct material parameters they will use.
Definition at line 1362 of file interface.h.