Defines operators to be assembled in the matrix/vector. More...
Typedefs | |
using | GridView = typename Traits::GridView |
Functions | |
template<class GridFct , class Impl > | |
GridFunctionOperator (GridFct const &gridFct, Impl const &impl, int, int) -> GridFunctionOperator< GridFct, Impl > | |
template<class LocalFct , class Impl > | |
GridFunctionLocalOperator (LocalFct const &localFct, Impl const &impl, int, int) -> GridFunctionLocalOperator< LocalFct, Impl > | |
template<class Tag , class Expr > | |
auto | makeOperator (Tag const &tag, Expr &&expr, int gridFctDeg=-1) |
template<class Tag , class Expr > | |
auto | operatorTerm (Tag const &tag, Expr &&expr, int gridFctDeg=-1) |
template<class Impl , Dune::disableCopyMove< Operator, Impl > = 0> | |
Operator (Impl &&impl) | |
Constructor. Pass any type supporting the OperatorInterface. | |
Operator ()=default | |
Default Constructor. | |
void | update (GridView const &gv) |
Update the operator data on a GridView. | |
template<class LocalContext , class Op , class GV > | |
auto | makeOperator (Op op, GV const &gridView) |
template<class Context , class... T, class GridView > | |
auto | makeOperator (ConvectionDiffusionOperatorTerm< T... > const &pre, GridView const &gridView) |
template<bool conserving = true, class PreGridFctA , class PreGridFctB , class PreGridFctC , class PreGridFctF > | |
auto | convectionDiffusion (PreGridFctA const &gridFctA, PreGridFctB const &gridFctB, PreGridFctC const &gridFctC, PreGridFctF const &gridFctF, int quadOrder=-1, bool_t< conserving >={}) |
Generator function for constructing a Convection-Diffusion Operator. | |
template<class Expr > | |
auto | fot (Expr &&expr, tag::grad_test, int quadOrder=-1) |
Create a first-order term with derivative on trial-function. | |
template<class Expr > | |
auto | fot (Expr &&expr, tag::partial_test t, int quadOrder=-1) |
Create a first-order term with derivative on trial-function. | |
template<class Expr > | |
auto | fot (Expr &&expr, tag::grad_trial, int quadOrder=-1) |
Create a first-order term with derivative on test-function. | |
template<class Expr > | |
auto | fot (Expr &&expr, tag::partial_trial t, int quadOrder=-1) |
Create a first-order term with derivative on trial-function. | |
template<class Expr > | |
Create a second order term auto | sot (Expr &&expr, int quadOrder=-1) |
template<class Expr > | |
auto | sot_ij (Expr &&expr, std::size_t comp_test, std::size_t comp_trial, int quadOrder=-1) |
Create a second-order term of partial derivatives. | |
template<class Expr > | |
auto | zot (Expr &&expr, int quadOrder=-1) |
Create a zero-order term. | |
Friends | |
LocalOperator< Traits, Nodes... > | localOperator (Operator const &op) |
Transform an operator into a local-operator. | |
Defines operators to be assembled in the matrix/vector.
An Operator
is a class providing methods necessary for assembling:
bind(Element, Geometry)
and unbind()
for binding an unbinding the element to (from) an GridView entity of codim 0. Additionally the Geometry object of the element is provided.getQuadratureRule(Nodes...)
factory for the quadrature rules used in assembling the operator on the element. Nodes...
is either {RowNode, ColNode}
for Matrix-Operators or {Node}
for a Vector-Operator.calculateElementVector(ContextGeometry, QuadratureRule, ElementVector, Node)
where the ContextGeometry
provides a reference to the ElementGeometry and geometry of the LocalContext (that can be different), orcalculateElementMatrix(ContextGeometry, QuadratureRule, ElementMatrix, RowNode, ColNode, Flags...)
Same as for calculateElementVector
but additionally two optimization flags are provided as bool_t<...>
type:sameFE
: the FiniteElementSpace of RowNode
and ColNode
are the same.sameNode
: the nodes are the same in the GlobalBasis-tree. auto makeOperator | ( | Tag const & | tag, |
Expr && | expr, | ||
int | gridFctDeg = -1 |
||
) |
Store tag and expression into a OperatorTerm to create a GridFunctionOperator
Referenced by AMDiS::fot(), AMDiS::sot_ij(), and AMDiS::zot().