Public Member Functions | Static Public Member Functions | List of all members
aspect::MaterialModel::MeltFractionModel< dim > Class Template Referenceabstract
Inheritance diagram for aspect::MaterialModel::MeltFractionModel< dim >:
Inheritance graph

Public Member Functions

virtual ~MeltFractionModel ()=default
virtual void melt_fractions (const MaterialModel::MaterialModelInputs< dim > &in, std::vector< double > &melt_fractions) const =0

Static Public Member Functions

template<typename ModelType >
static bool is_melt_fraction_model (const ModelType &model_object)
template<typename ModelType >
static const MeltFractionModel< dim > & as_melt_fraction_model (const ModelType &model_object)

Detailed Description

template<int dim>
class aspect::MaterialModel::MeltFractionModel< dim >

Base class for material models that implement a melt fraction function. This is used to compute some statistics about the melt fraction.

This class is used as a "mix-in" class: Concrete material models will be derived from MaterialModel::Interface (and consequently have to implement the virtual functions of that class) and also from the current class (and consequently have to implement the virtual function of the current class). The inheritance from MaterialModel::Interface is typically via the MaterialModel::MeltInterface intermediate class.

Definition at line 141 of file melt.h.

Constructor & Destructor Documentation

§ ~MeltFractionModel()

template<int dim>
virtual aspect::MaterialModel::MeltFractionModel< dim >::~MeltFractionModel ( )

Destructor. Does nothing but is virtual so that derived classes destructors are also virtual.

Member Function Documentation

§ melt_fractions()

template<int dim>
virtual void aspect::MaterialModel::MeltFractionModel< dim >::melt_fractions ( const MaterialModel::MaterialModelInputs< dim > &  in,
std::vector< double > &  melt_fractions 
) const
pure virtual

Compute the equilibrium melt fractions for the given input conditions. in and melt_fractions need to have the same size.

inObject that contains the current conditions.
melt_fractionsVector of doubles that is filled with the equilibrium melt fraction for each given input conditions.

Implemented in aspect::MaterialModel::MeltBoukare< dim >, aspect::MaterialModel::ReactiveFluidTransport< dim >, aspect::MaterialModel::MeltSimple< dim >, aspect::MaterialModel::LatentHeatMelt< dim >, and aspect::MaterialModel::MeltGlobal< dim >.

§ is_melt_fraction_model()

template<int dim>
template<typename ModelType >
bool aspect::MaterialModel::MeltFractionModel< dim >::is_melt_fraction_model ( const ModelType &  model_object)

Return whether an object provided as argument is of a class that is derived from the current MeltFractionModel class. (Many of these models will be derived from MaterialModel::Interface and also be derived from MeltFractionModel; only the latter derivation is of interest to this function.

Definition at line 189 of file melt.h.

§ as_melt_fraction_model()

template<int dim>
template<typename ModelType >
const MeltFractionModel< dim > & aspect::MaterialModel::MeltFractionModel< dim >::as_melt_fraction_model ( const ModelType &  model_object)

Return a reference to the MeltFractionModel base class of the object. This function will throw an exception unless is_melt_fraction_model() returns true for the given argument.

Definition at line 200 of file melt.h.

The documentation for this class was generated from the following file: