Defines operators to be assembled in the matrix/vector. More...
Classes | |
| class | GridFunctionLocalOperator< LF, Imp > |
| The main implementation of a local-operator depending on a local-function. More... | |
| class | GridFunctionOperator< GF, Imp > |
| The main implementation of an operator depending on a grid-function. More... | |
| struct | GridFunctionOperatorRegistry< Tag, LocalContext > |
| Registry to specify a tag for each implementation type. More... | |
| struct | OperatorTerm< Tag, Expr > |
| class | LocalOperator< Traits, Nodes > |
| The base class for a local operator to be used in a Assembler. More... | |
| class | Operator< Traits, Nodes > |
| The base class for an operator to be used in an Assembler. More... | |
| class | VariadicGridFunctionLocalOperator< Imp, LF > |
| A LocalOperator parametrized by multiple LocalFunctions. More... | |
| class | VariadicGridFunctionOperator< Imp, GF > |
| The main implementation of an operator depending on a variadic number of GridFunctions. More... | |
| struct | VariadicGridFunctionOperatorRegistry< Tag, LocalContext > |
| Registry to specify a tag for each implementation type. More... | |
| struct | VariadicOperatorTerm< Tag, Expr > |
| Intermediate representation for the operator. Essentially this just stores the tag and the GridFunctions as a key for a Factory. More... | |
| class | ConvectionDiffusion< conserving > |
| struct | VariadicGridFunctionOperatorRegistry< tag::convectionDiffusion< conserving >, LC > |
| class | FirstOrderDivTestVec |
| first-order operator \( \langle\nabla\cdot\Psi, c\rangle \) More... | |
| struct | GridFunctionOperatorRegistry< tag::divtestvec, LC > |
| struct | GridFunctionOperatorRegistry< tag::divtestvec_trial, LC > |
| first-order operator \( \langle\nabla\cdot\Psi, c\,\phi\rangle \) More... | |
| class | FirstOrderGradTest |
| first-order operator \( \langle\nabla\psi, b\rangle \) More... | |
| struct | GridFunctionOperatorRegistry< tag::gradtest, LC > |
| struct | GridFunctionOperatorRegistry< tag::gradtest_trial, LC > |
| first-order operator \( \langle\nabla\cdot\Psi, c\,\phi\rangle \) More... | |
| struct | GridFunctionOperatorRegistry< tag::gradtest_trialvec, LC > |
| first-order operator \( \langle\nabla\psi, c\,\Phi\rangle \) More... | |
| class | FirstOrderPartialTest |
| first-order operator \( \langle\partial_i\psi, c\rangle \) More... | |
| struct | GridFunctionOperatorRegistry< tag::partialtest, LC > |
| struct | GridFunctionOperatorRegistry< tag::partialtest_trial, LC > |
| first-order operator \( \langle\partial_i\psi, c\,\phi\rangle \) More... | |
| class | FirstOrderTestDivTrialvec |
| first-order operator \( \langle\psi, c\,\nabla\cdot\Phi\rangle \) More... | |
| struct | GridFunctionOperatorRegistry< tag::test_divtrialvec, LC > |
| class | FirstOrderTestGradTrial |
| first-order operator \( \langle\psi, \mathbf{b}\cdot\nabla\phi\rangle \) More... | |
| struct | GridFunctionOperatorRegistry< tag::test_gradtrial, LC > |
| class | FirstOrderTestPartialTrial |
| first-order operator \( \langle\psi, c\,\partial_i\phi\rangle \) More... | |
| struct | GridFunctionOperatorRegistry< tag::test_partialtrial, LC > |
| class | FirstOrderTestvecGradTrial |
| first-order operator \( \langle\Psi, c\,\nabla\phi\rangle \) More... | |
| struct | GridFunctionOperatorRegistry< tag::testvec_gradtrial, LC > |
| class | SecondOrderDivTestvecDivTrialvec |
| second-order operator \( \langle\nabla\cdot\Psi, c\,\nabla\cdot\Phi\rangle \) More... | |
| struct | GridFunctionOperatorRegistry< tag::divtestvec_divtrialvec, LC > |
| class | SecondOrderGradTestGradTrial |
| second-order operator \( \langle\nabla\psi, c\,\nabla\phi\rangle \), or More... | |
| struct | GridFunctionOperatorRegistry< tag::gradtest_gradtrial, LC > |
| class | SecondOrderPartialTestPartialTrial |
| second-order operator \( \langle\partial_i\psi, c\,\partial_j\phi\rangle \) More... | |
| struct | GridFunctionOperatorRegistry< tag::partialtest_partialtrial, LC > |
| class | StokesOperator |
| Stokes operator \( \langle\nabla\mathbf{v}, \nu \nabla\mathbf{u}\rangle + \langle\nabla\cdot\mathbf{v}, p\rangle + \langle q, \langle\nabla\cdot\mathbf{u}\rangle \). More... | |
| struct | GridFunctionOperatorRegistry< tag::stokes, LC > |
| class | ZeroOrderTest |
| zero-order vector-operator \( (c\, \psi) \) More... | |
| struct | GridFunctionOperatorRegistry< tag::test, LC > |
| class | ZeroOrderTestTrial |
| zero-order operator \( \langle\psi, c\,\phi\rangle \) More... | |
| struct | GridFunctionOperatorRegistry< tag::test_trial, LC > |
| class | ZeroOrderTestTrialvec |
| zero-order operator \( \langle\psi, \mathbf{b}\cdot\Phi\rangle \) More... | |
| struct | GridFunctionOperatorRegistry< tag::test_trialvec, LC > |
| class | ZeroOrderTestVec |
| zero-order vector-operator \( (\mathbf{b}\cdot\Psi) \) More... | |
| struct | GridFunctionOperatorRegistry< tag::testvec, LC > |
| struct | GridFunctionOperatorRegistry< tag::testvec_trial, LC > |
| zero-order operator \( \langle\Psi, \mathbf{b}\,\phi\rangle \) More... | |
| class | ZeroOrderTestvecTrialvec |
| zero-order operator \( \langle\Psi, c\,\Phi\rangle \), or \( \langle\Psi, A\,\Phi\rangle \) More... | |
| struct | GridFunctionOperatorRegistry< tag::testvec_trialvec, LC > |
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... GridFct, class Impl > | |
| VariadicGridFunctionOperator (Impl const &impl, int, int, GridFct const &... gridFct) -> VariadicGridFunctionOperator< Impl, GridFct... > | |
| template<class Impl , class... LocalFct> | |
| VariadicGridFunctionLocalOperator (Impl const &impl, int, int, LocalFct const &... localFct) -> VariadicGridFunctionLocalOperator< Impl, LocalFct... > | |
| template<class Tag , class... Expr> | |
| auto | makeOperator (Tag const &tag, int gridFctDeg, Expr const &... expr) -> std::enable_if_t< sizeof...(Expr) !=1, VariadicOperatorTerm< Tag, Expr... > > |
| Generator function for Operatorterms This is the user entry to the class. Any Local Operator implementation that has a corresponding specialization of the 'VariadicGridFunctionOperatorRegistry' can be piped through this factory pattern. | |
| 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 gridFctDegree=-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::fot(), AMDiS::fot(), AMDiS::fot(), AMDiS::sot_ij(), and AMDiS::zot().
| auto makeOperator | ( | Tag const & | tag, |
| int | gridFctDeg, | ||
| Expr const &... | expr | ||
| ) | -> std::enable_if_t<sizeof...(Expr) != 1, VariadicOperatorTerm<Tag, Expr...>> |
Generator function for Operatorterms This is the user entry to the class. Any Local Operator implementation that has a corresponding specialization of the 'VariadicGridFunctionOperatorRegistry' can be piped through this factory pattern.