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 |
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.
| LF | The class types of the LocalFunctions |
| Imp | Class providing the local assembling method |
Requirements:
LF models the Concepts::LocalFunction
|
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.
|
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.
|
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.
|
inline |
Binds operator to element.
Binds all local functions in localFct_ to the element.