AMDiS 2.11-git
The Adaptive Multi-Dimensional Simulation Toolbox
 
Loading...
Searching...
No Matches
VariadicGridFunctionLocalOperator< Imp, LF > Class Template Reference

A LocalOperator parametrized by multiple LocalFunctions. More...

#include <VariadicGridFunctionOperator.hpp>

Public Member Functions

template<class... LocalFct, class Impl >
 VariadicGridFunctionLocalOperator (Impl &&impl, int derivDeg, int localFctOrder, LocalFct &&... localFct)
 Constructor. Stores a copy of localFct and impl.
 
template<class Element >
void bind (Element const &element)
 Binds operator to element.
 
void unbind ()
 Unbinds operator from element.
 
template<class CG , class RN , class CN , class Mat >
void assemble (CG const &contextGeo, RN const &rowNode, CN const &colNode, Mat &elementMatrix) const
 Assemble a local element matrix on the element that is bound.
 
template<class CG , class Node , class Vec >
void assemble (CG const &contextGeo, Node const &node, Vec &elementVector) const
 Assemble a local element vector on the element that is bound.
 
Implementation & impl ()
 
Implementation const & impl () const
 

Protected Member Functions

int localFctOrder () const
 
template<class LFF >
constexpr int getOrder (LFF const &lf) const
 

Detailed Description

template<class Imp, class... LF>
class AMDiS::VariadicGridFunctionLocalOperator< Imp, LF >

A LocalOperator parametrized by multiple LocalFunctions.

A LocalOperator that takes multiple LocalFunctions as coefficient. Provides quadrature rules and passes the LocalFunctions, bound to an element, to the assemble method of an implementation class.

The class implements the interface of a LocalOperator.

Template Parameters
LFThe class types of the LocalFunctions
ImpClass providing the local assembling method

Requirements:

  • Each LF models the Concepts::LocalFunction

Constructor & Destructor Documentation

◆ VariadicGridFunctionLocalOperator()

template<class Imp , class... LF>
template<class... LocalFct, class Impl >
VariadicGridFunctionLocalOperator ( Impl &&  impl,
int  derivDeg,
int  localFctOrder,
LocalFct &&...  localFct 
)
inline

Constructor. Stores a copy of localFct and impl.

A VariadicGridFunctionLocalOperator takes multiple LocalFunctions, an implementation class, the differentiation order of the operator and a user-provided polynomial degree, used as the degree of the LocalFunction to calculate the quadrature degree of the operator. Usually this should be the maximum of the degrees of the localFcts. If localFctOrder is -1, we try to detect the maximum polynomial degree from the local function implementations.

Member Function Documentation

◆ assemble() [1/2]

template<class Imp , class... LF>
template<class CG , class Node , class Vec >
void assemble ( CG const &  contextGeo,
Node const &  node,
Vec &  elementVector 
) const
inline

Assemble a local element vector on the element that is bound.

This function calls the assemble method from the impl_ class and additionally passes a quadrature rule and the localFct_ to that method.

◆ assemble() [2/2]

template<class Imp , class... LF>
template<class CG , class RN , class CN , class Mat >
void assemble ( CG const &  contextGeo,
RN const &  rowNode,
CN const &  colNode,
Mat &  elementMatrix 
) const
inline

Assemble a local element matrix on the element that is bound.

This function calls the assemble method from the impl_ class and additionally passes a quadrature rule and the localFct_ to that method.

◆ bind()

template<class Imp , class... LF>
template<class Element >
void bind ( Element const &  element)
inline

Binds operator to element.

Binds all local functions in localFct_ to the element.


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