Public Member Functions | List of all members
aspect::internal::FunctorBase< dim > Class Template Referenceabstract

Public Member Functions

virtual bool need_material_properties () const
virtual void create_additional_material_model_outputs (const unsigned int n_points, MaterialModel::MaterialModelOutputs< dim > &outputs) const
virtual void setup (const unsigned int q_points)
virtual void operator() (const MaterialModel::MaterialModelInputs< dim > &in, const MaterialModel::MaterialModelOutputs< dim > &out, const FEValues< dim > &fe_values, const LinearAlgebra::BlockVector &solution, std::vector< double > &output)=0
virtual ~FunctorBase ()

Detailed Description

template<int dim>
class aspect::internal::FunctorBase< dim >

This is the base class for all the functors implemented. Each is used to compute one of the properties that will be laterally averaged. The point of the base class is to allow handing over a variable of type std::vector<std::unique_ptr<FunctorBase<dim>>> to the LateralAveraging::get_averages() function.

Definition at line 44 of file lateral_averaging.h.

Constructor & Destructor Documentation

§ ~FunctorBase()

template<int dim>
virtual aspect::internal::FunctorBase< dim >::~FunctorBase ( )

Provide an (empty) virtual destructor.

Member Function Documentation

§ need_material_properties()

template<int dim>
virtual bool aspect::internal::FunctorBase< dim >::need_material_properties ( ) const

operator() will have in and out filled out if true. By default returns false.

§ create_additional_material_model_outputs()

template<int dim>
virtual void aspect::internal::FunctorBase< dim >::create_additional_material_model_outputs ( const unsigned int  n_points,
MaterialModel::MaterialModelOutputs< dim > &  outputs 
) const

If this functor needs additional material model outputs create them in here. By default, this does nothing.

§ setup()

template<int dim>
virtual void aspect::internal::FunctorBase< dim >::setup ( const unsigned int  q_points)

Called once at the beginning of compute_lateral_averages() to setup internal data structures with the number of quadrature points.

§ operator()()

template<int dim>
virtual void aspect::internal::FunctorBase< dim >::operator() ( const MaterialModel::MaterialModelInputs< dim > &  in,
const MaterialModel::MaterialModelOutputs< dim > &  out,
const FEValues< dim > &  fe_values,
const LinearAlgebra::BlockVector solution,
std::vector< double > &  output 
pure virtual

This takes in material model inputs and out outputs (which are filled if need_material_properties() == true), an initialized FEValues object for a cell, and the current solution vector as inputs. Functions in derived classes should then evaluate the desired quantity and return the results in the output vector, which is q_points long.

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