AMDiS 2.11-git
The Adaptive Multi-Dimensional Simulation Toolbox
 
Loading...
Searching...
No Matches
Operator module

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.
 

Detailed Description

Defines operators to be assembled in the matrix/vector.

An Operator is a class providing methods necessary for assembling:

Function Documentation

◆ makeOperator() [1/2]

template<class Tag , class Expr >
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().

◆ makeOperator() [2/2]

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.

Note
compared to the single GridFunction 'makeOperator' here the order of arguments has changed!