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

Finite-Element Parametric Evaluator CRTP base-class template. More...

#include <parametric_evaluator.hpp>

Inheritance diagram for FEAT::Space::ParametricEvaluator< SpaceEvaluator_, TrafoEvaluator_, SpaceEvalTraits_, ref_caps_ >:
FEAT::Space::EvaluatorBase< SpaceEvaluator_, TrafoEvaluator_, SpaceEvalTraits_ > FEAT::Space::Lagrange2::Evaluator< Shape::Hypercube< shape_dim_ >, DataType_ > FEAT::Space::Lagrange2::Evaluator< Space_, TrafoEvaluator_, SpaceEvalTraits_, Shape_ >

Classes

struct  ConfigTraits
 Space configuration traits class template. More...
 

Public Types

typedef EvaluatorBase< SpaceEvaluator_, TrafoEvaluator_, SpaceEvalTraits_ > BaseClass
 base class typedef More...
 
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...
 
template<SpaceTags space_cfg_>
void reference_eval (EvalData< SpaceEvalTraits, space_cfg_ > &space_ref_data, const typename SpaceEvalTraits::DomainPointType &dom_point) const
 Space reference evaluation function. More...
 

Static Public Attributes

static constexpr int domain_dim = SpaceEvalTraits::domain_dim
 domain dimension More...
 
static constexpr SpaceTags eval_caps
 our evaluation capabilities More...
 
static constexpr int image_dim = SpaceEvalTraits::image_dim
 image dimension More...
 
static constexpr int max_local_dofs = SpaceEvalTraits::max_local_dofs
 maximum number of local dofs More...
 
static constexpr TrafoTags trafo_caps = TrafoEvaluator::eval_caps
 the capabilities of the trafo evaluator More...
 

Detailed Description

template<typename SpaceEvaluator_, typename TrafoEvaluator_, typename SpaceEvalTraits_, SpaceTags ref_caps_>
class FEAT::Space::ParametricEvaluator< SpaceEvaluator_, TrafoEvaluator_, SpaceEvalTraits_, ref_caps_ >

Finite-Element Parametric Evaluator CRTP base-class template.

This class is a CRTP base-class for parametric Finite-Element space evaluators.

Template Parameters
SpaceEvaluator_The space evaluator class which derives from this class template.
TrafoEvaluator_The trafo evaluator class to be used by the space evaluator.
SpaceEvalTraits_The space evaluator traits of the space evaluator.
ref_caps_A tag class containing the capabilities of the space evaluator for reference value computation.
Author
Peter Zajac

Definition at line 48 of file parametric_evaluator.hpp.

Member Typedef Documentation

◆ BaseClass

template<typename SpaceEvaluator_ , typename TrafoEvaluator_ , typename SpaceEvalTraits_ , SpaceTags ref_caps_>
typedef EvaluatorBase<SpaceEvaluator_, TrafoEvaluator_, SpaceEvalTraits_> FEAT::Space::ParametricEvaluator< SpaceEvaluator_, TrafoEvaluator_, SpaceEvalTraits_, ref_caps_ >::BaseClass

base class typedef

Definition at line 53 of file parametric_evaluator.hpp.

◆ SpaceEvalTraits

template<typename SpaceEvaluator_ , typename TrafoEvaluator_ , typename SpaceEvalTraits_ , SpaceTags ref_caps_>
typedef SpaceEvalTraits_ FEAT::Space::ParametricEvaluator< SpaceEvaluator_, TrafoEvaluator_, SpaceEvalTraits_, ref_caps_ >::SpaceEvalTraits

space evaluator traits

Definition at line 62 of file parametric_evaluator.hpp.

◆ SpaceEvaluator

template<typename SpaceEvaluator_ , typename TrafoEvaluator_ , typename SpaceEvalTraits_ , SpaceTags ref_caps_>
typedef SpaceEvaluator_ FEAT::Space::ParametricEvaluator< SpaceEvaluator_, TrafoEvaluator_, SpaceEvalTraits_, ref_caps_ >::SpaceEvaluator

space evaluator type

Definition at line 56 of file parametric_evaluator.hpp.

◆ TrafoEvalTraits

template<typename SpaceEvaluator_ , typename TrafoEvaluator_ , typename SpaceEvalTraits_ , SpaceTags ref_caps_>
typedef TrafoEvaluator::EvalTraits FEAT::Space::ParametricEvaluator< SpaceEvaluator_, TrafoEvaluator_, SpaceEvalTraits_, ref_caps_ >::TrafoEvalTraits

trafo evaluator traits

Definition at line 65 of file parametric_evaluator.hpp.

◆ TrafoEvaluator

template<typename SpaceEvaluator_ , typename TrafoEvaluator_ , typename SpaceEvalTraits_ , SpaceTags ref_caps_>
typedef TrafoEvaluator_ FEAT::Space::ParametricEvaluator< SpaceEvaluator_, TrafoEvaluator_, SpaceEvalTraits_, ref_caps_ >::TrafoEvaluator

trafo evaluator type

Definition at line 59 of file parametric_evaluator.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
inlineinherited

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
inlineinherited

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
inlineinherited

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 ( )
inlineinherited

Releases the evaluator from the current cell.

Definition at line 113 of file evaluator_base.hpp.

◆ operator()()

template<typename SpaceEvaluator_ , typename TrafoEvaluator_ , typename SpaceEvalTraits_ , SpaceTags ref_caps_>
template<SpaceTags space_cfg_, TrafoTags trafo_cfg_>
void FEAT::Space::ParametricEvaluator< SpaceEvaluator_, TrafoEvaluator_, SpaceEvalTraits_, ref_caps_ >::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 166 of file parametric_evaluator.hpp.

References FEAT::Trafo::EvalData< EvalTraits_, cfg_tags_ >::dom_point, 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)
inlineinherited

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.

◆ reference_eval()

template<typename SpaceEvaluator_ , typename TrafoEvaluator_ , typename SpaceEvalTraits_ , SpaceTags ref_caps_>
template<SpaceTags space_cfg_>
void FEAT::Space::ParametricEvaluator< SpaceEvaluator_, TrafoEvaluator_, SpaceEvalTraits_, ref_caps_ >::reference_eval ( EvalData< SpaceEvalTraits, space_cfg_ > &  space_ref_data,
const typename SpaceEvalTraits::DomainPointType &  dom_point 
) const
inline

Space reference evaluation function.

This function evaluates the basis functions in a point on the reference cell.

Parameters
[out]space_ref_dataA transient reference to the space reference data that is to be computed.
[in]dom_pointA transient reference to the domain point in which the evaluation shall take place.

Definition at line 152 of file parametric_evaluator.hpp.

References FEAT::dom_point, FEAT::ref_grad, FEAT::ref_hess, and FEAT::ref_value.

Member Data Documentation

◆ domain_dim

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

domain dimension

Definition at line 91 of file parametric_evaluator.hpp.

◆ eval_caps

template<typename SpaceEvaluator_ , typename TrafoEvaluator_ , typename SpaceEvalTraits_ , SpaceTags ref_caps_>
constexpr SpaceTags FEAT::Space::ParametricEvaluator< SpaceEvaluator_, TrafoEvaluator_, SpaceEvalTraits_, ref_caps_ >::eval_caps
staticconstexpr
Initial value:
=
SpaceTags::value : SpaceTags::none) |
SpaceTags::grad : SpaceTags::none) |
SpaceTags::hess : SpaceTags::none)
static constexpr TrafoTags trafo_caps
the capabilities of the trafo evaluator
@ value
specifies whether the space should supply basis function values
@ hess
specifies whether the space should supply basis function hessians
@ ref_value
specifies whether the space should supply reference basis function values
@ ref_hess
specifies whether the space should supply reference basis function hessians
@ ref_grad
specifies whether the space should supply reference basis function gradients
@ grad
specifies whether the space should supply basis function gradients
@ hess_inv
specifies whether the trafo should supply inverse hessian tensors
@ dom_point
specifies whether the trafo should supply domain point coordinates
@ jac_inv
specifies whether the trafo should supply inverse jacobian matrices

our evaluation capabilities

Definition at line 71 of file parametric_evaluator.hpp.

◆ image_dim

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

image dimension

Definition at line 93 of file parametric_evaluator.hpp.

◆ max_local_dofs

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

maximum number of local dofs

Definition at line 95 of file parametric_evaluator.hpp.

◆ trafo_caps

template<typename SpaceEvaluator_ , typename TrafoEvaluator_ , typename SpaceEvalTraits_ , SpaceTags ref_caps_>
constexpr TrafoTags FEAT::Space::ParametricEvaluator< SpaceEvaluator_, TrafoEvaluator_, SpaceEvalTraits_, ref_caps_ >::trafo_caps = TrafoEvaluator::eval_caps
staticconstexpr

the capabilities of the trafo evaluator

Definition at line 68 of file parametric_evaluator.hpp.


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