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

Public Member Functions

virtual ~AdditionalMaterialOutputs ()=default
virtual void average (const MaterialAveraging::AveragingOperation, const FullMatrix< double > &, const FullMatrix< double > &)

Detailed Description

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

Some material models can compute more than just the basic material coefficients defined in the MaterialModel::MaterialModelOutputs class. These additions are either for more complicated physics than the basic flow model usually solved by ASPECT (for example to support the melt migration functionality), or other derived quantities that are not coefficients in any of the equations ASPECT solves but that may be of interest for visualization (for example seismic velocities).

Rather than litter the MaterialModelOutputs class with additional fields that are not universally used, we use a mechanism by which MaterialModelOutputs can store a set of pointers to "additional" output objects that store information such as mentioned above. These pointers are all to objects whose types are derived from the current class.

If an implementation of the MaterialModel::Interface::evaluate() in a class derived from MaterialModel::Interface encounters a MaterialModelOutputs object that has these pointers set (and if it recognizes the type of the object pointed to), it should fill this set of additional output quantities.

The format of the additional quantities defined in derived classes should be the same as for MaterialModel::MaterialModelOutputs.

Definition at line 470 of file interface.h.

Constructor & Destructor Documentation

§ ~AdditionalMaterialOutputs()

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

Destructor. Made virtual to enable storing pointers to this base class.

Member Function Documentation

§ average()

template<int dim>
virtual void aspect::MaterialModel::AdditionalMaterialOutputs< dim >::average ( const MaterialAveraging::AveragingOperation  ,
const FullMatrix< double > &  ,
const FullMatrix< double > &   

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