FEAT 3
Finite Element Analysis Toolbox
Loading...
Searching...
No Matches
FEAT::Space::EvaluatorBase< SpaceEvaluator_, TrafoEvaluator_, SpaceEvalTraits_ > Class Template Reference

Basic Space Evaluator CRTP base-class template. More...

#include <evaluator_base.hpp>

Inheritance diagram for FEAT::Space::EvaluatorBase< SpaceEvaluator_, TrafoEvaluator_, SpaceEvalTraits_ >:
FEAT::Space::ParametricEvaluator< Evaluator< Space_, TrafoEvaluator_, SpaceEvalTraits_, Shape::Hypercube< 1 > >, TrafoEvaluator_, SpaceEvalTraits_, ref_caps > FEAT::Space::ParametricEvaluator< Evaluator< Space_, TrafoEvaluator_, SpaceEvalTraits_, Shape::Hypercube< 2 > >, TrafoEvaluator_, SpaceEvalTraits_, ref_caps > FEAT::Space::ParametricEvaluator< Evaluator< Space_, TrafoEvaluator_, SpaceEvalTraits_, Shape::Hypercube< 3 > >, TrafoEvaluator_, SpaceEvalTraits_, ref_caps > FEAT::Space::ParametricEvaluator< Evaluator< Space_, TrafoEvaluator_, SpaceEvalTraits_, Shape::Quadrilateral >, TrafoEvaluator_, SpaceEvalTraits_, ref_caps > FEAT::Space::ParametricEvaluator< Evaluator< Space_, TrafoEvaluator_, SpaceEvalTraits_, Shape::Simplex< 2 > >, TrafoEvaluator_, SpaceEvalTraits_, ref_caps > FEAT::Space::ParametricEvaluator< Evaluator< Space_, TrafoEvaluator_, SpaceEvalTraits_, Shape::Simplex< 3 > >, TrafoEvaluator_, SpaceEvalTraits_, ref_caps > FEAT::Space::ParametricEvaluator< Evaluator< Space_, TrafoEvaluator_, SpaceEvalTraits_, Variant::StdPolyP< 1 >, Shape::Simplex< shape_dim_ > >, TrafoEvaluator_, SpaceEvalTraits_, ref_caps_p1 > FEAT::Space::ParametricEvaluator< Evaluator< Space_, TrafoEvaluator_, SpaceEvalTraits_, typename Space_::ShapeType >, TrafoEvaluator_, SpaceEvalTraits_, ref_caps > FEAT::Space::ParametricEvaluator< Evaluator< Space_, TrafoEvaluator_, SpaceEvalTraits_, Shape::Simplex< 3 > >, TrafoEvaluator_, SpaceEvalTraits_, ref_caps_3d > FEAT::Space::ParametricEvaluator< Evaluator< Shape::Hypercube< shape_dim_ >, DataType_, SpaceEvalTraits_, typename Space_::ShapeType >, DataType_, SpaceEvalTraits_, ref_caps > FEAT::Space::ParametricEvaluator< SpaceEvaluator_, TrafoEvaluator_, SpaceEvalTraits_, ref_caps_ >

Classes

struct  ConfigTraits
 

Public Types

typedef SpaceEvalTraits_ SpaceEvalTraits
 space evaluator traits More...
 
typedef SpaceEvaluator_ SpaceEvaluator
 space evaluator type More...
 
typedef TrafoEvaluator::EvalTraits TrafoEvalTraits
 trafo evaluator traits More...
 
typedef TrafoEvaluator_ TrafoEvaluator
 trafo evaluator type More...
 

Public Member Functions

template<SpaceTags space_cfg_, TrafoTags trafo_cfg_>
void eval_gradients (EvalData< SpaceEvalTraits, space_cfg_ > &space_data, const Trafo::EvalData< TrafoEvalTraits, trafo_cfg_ > &trafo_data) const
 Evaluates the basis function gradients on the real cell. More...
 
template<SpaceTags space_cfg_, TrafoTags trafo_cfg_>
void eval_hessians (EvalData< SpaceEvalTraits, space_cfg_ > &space_data, const Trafo::EvalData< TrafoEvalTraits, trafo_cfg_ > &trafo_data) const
 Evaluates the basis function hessians on the real cell. More...
 
template<SpaceTags space_cfg_, TrafoTags trafo_cfg_>
void eval_values (EvalData< SpaceEvalTraits, space_cfg_ > &space_data, const Trafo::EvalData< TrafoEvalTraits, trafo_cfg_ > &trafo_data) const
 Evaluates the basis function values on the real cell. More...
 
void finish ()
 Releases the evaluator from the current cell. More...
 
template<SpaceTags space_cfg_, TrafoTags trafo_cfg_>
void operator() (EvalData< SpaceEvalTraits, space_cfg_ > &space_data, const Trafo::EvalData< TrafoEvalTraits, trafo_cfg_ > &trafo_data) const
 Space evaluation operator. More...
 
void prepare (const TrafoEvaluator &trafo_eval)
 Prepares the evaluator for a given cell. More...
 

Static Public Attributes

static constexpr int domain_dim = SpaceEvalTraits::domain_dim
 trafo domain dimension More...
 
static constexpr SpaceTags eval_caps = ...
 
static constexpr int image_dim = SpaceEvalTraits::image_dim
 trafo image dimension More...
 
static constexpr int max_local_dofs = SpaceEvalTraits::max_local_dofs
 maximum number of local DOFs More...
 

Detailed Description

template<typename SpaceEvaluator_, typename TrafoEvaluator_, typename SpaceEvalTraits_>
class FEAT::Space::EvaluatorBase< SpaceEvaluator_, TrafoEvaluator_, SpaceEvalTraits_ >

Basic Space Evaluator CRTP base-class template.

This class is a CRTP base-class used by various finite-element space evaluators to outsource common wrapper code which is independent of the actual finite-element in use.

Template Parameters
SpaceEvaluator_The space evaluator class that derives from this class template.
TrafoEvaluator_The trafo evaluator class to be used by this space evaluator.
SpaceEvalTraits_The evaluator traits of the space evaluator.
Author
Peter Zajac

Definition at line 45 of file evaluator_base.hpp.

Member Typedef Documentation

◆ SpaceEvalTraits

template<typename SpaceEvaluator_ , typename TrafoEvaluator_ , typename SpaceEvalTraits_ >
typedef SpaceEvalTraits_ FEAT::Space::EvaluatorBase< SpaceEvaluator_, TrafoEvaluator_, SpaceEvalTraits_ >::SpaceEvalTraits

space evaluator traits

Definition at line 55 of file evaluator_base.hpp.

◆ SpaceEvaluator

template<typename SpaceEvaluator_ , typename TrafoEvaluator_ , typename SpaceEvalTraits_ >
typedef SpaceEvaluator_ FEAT::Space::EvaluatorBase< SpaceEvaluator_, TrafoEvaluator_, SpaceEvalTraits_ >::SpaceEvaluator

space evaluator type

Definition at line 49 of file evaluator_base.hpp.

◆ TrafoEvalTraits

template<typename SpaceEvaluator_ , typename TrafoEvaluator_ , typename SpaceEvalTraits_ >
typedef TrafoEvaluator::EvalTraits FEAT::Space::EvaluatorBase< SpaceEvaluator_, TrafoEvaluator_, SpaceEvalTraits_ >::TrafoEvalTraits

trafo evaluator traits

Definition at line 58 of file evaluator_base.hpp.

◆ TrafoEvaluator

template<typename SpaceEvaluator_ , typename TrafoEvaluator_ , typename SpaceEvalTraits_ >
typedef TrafoEvaluator_ FEAT::Space::EvaluatorBase< SpaceEvaluator_, TrafoEvaluator_, SpaceEvalTraits_ >::TrafoEvaluator

trafo evaluator type

Definition at line 52 of file evaluator_base.hpp.

Member Function Documentation

◆ eval_gradients()

template<typename SpaceEvaluator_ , typename TrafoEvaluator_ , typename SpaceEvalTraits_ >
template<SpaceTags space_cfg_, TrafoTags trafo_cfg_>
void FEAT::Space::EvaluatorBase< SpaceEvaluator_, TrafoEvaluator_, SpaceEvalTraits_ >::eval_gradients ( EvalData< SpaceEvalTraits, space_cfg_ > &  space_data,
const Trafo::EvalData< TrafoEvalTraits, trafo_cfg_ > &  trafo_data 
) const
inline

Evaluates the basis function gradients on the real cell.

Template Parameters
space_cfg_,trafo_cfg_The space and trafo configuration tags. These are determined automatically by the compiler.
Parameters
[out]space_dataA transient reference to an evaluation data structure that shall receive the basis function gradients.
[in]trafo_dataThe transient trafo evaluation data containing information about the evaluation point.

Definition at line 193 of file evaluator_base.hpp.

References XABORTM.

Referenced by FEAT::Space::EvaluatorBase< SpaceEvaluator_, TrafoEvaluator_, SpaceEvalTraits_ >::operator()().

◆ eval_hessians()

template<typename SpaceEvaluator_ , typename TrafoEvaluator_ , typename SpaceEvalTraits_ >
template<SpaceTags space_cfg_, TrafoTags trafo_cfg_>
void FEAT::Space::EvaluatorBase< SpaceEvaluator_, TrafoEvaluator_, SpaceEvalTraits_ >::eval_hessians ( EvalData< SpaceEvalTraits, space_cfg_ > &  space_data,
const Trafo::EvalData< TrafoEvalTraits, trafo_cfg_ > &  trafo_data 
) const
inline

Evaluates the basis function hessians on the real cell.

Template Parameters
space_cfg_,trafo_cfg_The space and trafo configuration tags. These are determined automatically by the compiler.
Parameters
[out]space_dataA transient reference to an evaluation data structure that shall receive the basis function hessian matrices.
[in]trafo_dataThe transient trafo evaluation data containing information about the evaluation point.

Definition at line 213 of file evaluator_base.hpp.

References XABORTM.

Referenced by FEAT::Space::EvaluatorBase< SpaceEvaluator_, TrafoEvaluator_, SpaceEvalTraits_ >::operator()().

◆ eval_values()

template<typename SpaceEvaluator_ , typename TrafoEvaluator_ , typename SpaceEvalTraits_ >
template<SpaceTags space_cfg_, TrafoTags trafo_cfg_>
void FEAT::Space::EvaluatorBase< SpaceEvaluator_, TrafoEvaluator_, SpaceEvalTraits_ >::eval_values ( EvalData< SpaceEvalTraits, space_cfg_ > &  space_data,
const Trafo::EvalData< TrafoEvalTraits, trafo_cfg_ > &  trafo_data 
) const
inline

Evaluates the basis function values on the real cell.

Template Parameters
space_cfg_,trafo_cfg_The space and trafo configuration tags. These are determined automatically by the compiler.
Parameters
[out]space_dataA transient reference to an evaluation data structure that shall receive the basis function values.
[in]trafo_dataThe transient trafo evaluation data containing information about the evaluation point.

Definition at line 173 of file evaluator_base.hpp.

References XABORTM.

Referenced by FEAT::Space::EvaluatorBase< SpaceEvaluator_, TrafoEvaluator_, SpaceEvalTraits_ >::operator()().

◆ finish()

template<typename SpaceEvaluator_ , typename TrafoEvaluator_ , typename SpaceEvalTraits_ >
void FEAT::Space::EvaluatorBase< SpaceEvaluator_, TrafoEvaluator_, SpaceEvalTraits_ >::finish ( )
inline

Releases the evaluator from the current cell.

Definition at line 113 of file evaluator_base.hpp.

◆ operator()()

template<typename SpaceEvaluator_ , typename TrafoEvaluator_ , typename SpaceEvalTraits_ >
template<SpaceTags space_cfg_, TrafoTags trafo_cfg_>
void FEAT::Space::EvaluatorBase< SpaceEvaluator_, TrafoEvaluator_, SpaceEvalTraits_ >::operator() ( EvalData< SpaceEvalTraits, space_cfg_ > &  space_data,
const Trafo::EvalData< TrafoEvalTraits, trafo_cfg_ > &  trafo_data 
) const
inline

Space evaluation operator.

This operator evaluates the basis functions in a point on a mesh cell.

Parameters
[out]space_dataA transient reference to the space data that is to be computed.
[in]trafo_dataThe transient trafo evaluation data containing information about the evaluation point.

Definition at line 129 of file evaluator_base.hpp.

References FEAT::Space::EvaluatorBase< SpaceEvaluator_, TrafoEvaluator_, SpaceEvalTraits_ >::eval_gradients(), FEAT::Space::EvaluatorBase< SpaceEvaluator_, TrafoEvaluator_, SpaceEvalTraits_ >::eval_hessians(), FEAT::Space::EvaluatorBase< SpaceEvaluator_, TrafoEvaluator_, SpaceEvalTraits_ >::eval_values(), FEAT::grad, FEAT::hess, and FEAT::value.

◆ prepare()

template<typename SpaceEvaluator_ , typename TrafoEvaluator_ , typename SpaceEvalTraits_ >
void FEAT::Space::EvaluatorBase< SpaceEvaluator_, TrafoEvaluator_, SpaceEvalTraits_ >::prepare ( const TrafoEvaluator trafo_eval)
inline

Prepares the evaluator for a given cell.

Parameters
[in]trafo_evalA transient reference to the trafo evaluator containing the cell information.

Definition at line 106 of file evaluator_base.hpp.

Member Data Documentation

◆ domain_dim

template<typename SpaceEvaluator_ , typename TrafoEvaluator_ , typename SpaceEvalTraits_ >
constexpr int FEAT::Space::EvaluatorBase< SpaceEvaluator_, TrafoEvaluator_, SpaceEvalTraits_ >::domain_dim = SpaceEvalTraits::domain_dim
staticconstexpr

trafo domain dimension

Definition at line 61 of file evaluator_base.hpp.

◆ eval_caps

template<typename SpaceEvaluator_ , typename TrafoEvaluator_ , typename SpaceEvalTraits_ >
constexpr SpaceTags FEAT::Space::EvaluatorBase< SpaceEvaluator_, TrafoEvaluator_, SpaceEvalTraits_ >::eval_caps = ...
staticconstexpr

Definition at line 81 of file evaluator_base.hpp.

◆ image_dim

template<typename SpaceEvaluator_ , typename TrafoEvaluator_ , typename SpaceEvalTraits_ >
constexpr int FEAT::Space::EvaluatorBase< SpaceEvaluator_, TrafoEvaluator_, SpaceEvalTraits_ >::image_dim = SpaceEvalTraits::image_dim
staticconstexpr

trafo image dimension

Definition at line 63 of file evaluator_base.hpp.

◆ max_local_dofs

template<typename SpaceEvaluator_ , typename TrafoEvaluator_ , typename SpaceEvalTraits_ >
constexpr int FEAT::Space::EvaluatorBase< SpaceEvaluator_, TrafoEvaluator_, SpaceEvalTraits_ >::max_local_dofs = SpaceEvalTraits::max_local_dofs
staticconstexpr

maximum number of local DOFs

Definition at line 65 of file evaluator_base.hpp.


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