Standard grid operator implementation.
More...
#include <dune/pdelab/gridoperator/gridoperator.hh>
|
typedef DefaultAssembler< GFSU, GFSV, CU, CV, static_cast< bool >nonoverlapping_mode)> | Assembler |
| The global assembler type. More...
|
|
using | Domain = Dune::PDELab::Backend::Vector< GFSU, DF > |
| The type of the domain (solution). More...
|
|
using | Range = Dune::PDELab::Backend::Vector< GFSV, RF > |
| The type of the range (residual). More...
|
|
using | Jacobian = Dune::PDELab::Backend::Matrix< MB, Domain, Range, JF > |
| The type of the jacobian. More...
|
|
typedef MB::template Pattern< Jacobian, GFSV, GFSU > | Pattern |
| The sparsity pattern container for the jacobian matrix. More...
|
|
typedef DefaultLocalAssembler< GridOperator, LOP, GFSU::Traits::EntitySet::Partitions::partitionIterator()==InteriorBorder_Partition > | LocalAssembler |
| The local assembler type. More...
|
|
typedef std::conditional< GFSU::Traits::EntitySet::Partitions::partitionIterator()==InteriorBorder_Partition, NonOverlappingBorderDOFExchanger< GridOperator >, OverlappingBorderDOFExchanger< GridOperator > >::type | BorderDOFExchanger |
|
typedef Dune::PDELab::GridOperatorTraits< GFSU, GFSV, MB, DF, RF, JF, CU, CV, Assembler, LocalAssembler > | Traits |
| The grid operator traits. More...
|
|
|
| GridOperator (const GFSU &gfsu_, const CU &cu_, const GFSV &gfsv_, const CV &cv_, LOP &lop_, const MB &mb_=MB()) |
| Constructor for non trivial constraints. More...
|
|
| GridOperator (const GFSU &gfsu_, const GFSV &gfsv_, LOP &lop_, const MB &mb_=MB()) |
| Constructor for empty constraints. More...
|
|
const GFSU & | trialGridFunctionSpace () const |
| Get the trial grid function space. More...
|
|
const GFSV & | testGridFunctionSpace () const |
| Get the test grid function space. More...
|
|
GFSU::Traits::SizeType | globalSizeU () const |
| Get dimension of space u. More...
|
|
GFSV::Traits::SizeType | globalSizeV () const |
| Get dimension of space v. More...
|
|
Assembler & | assembler () |
|
const Assembler & | assembler () const |
|
LocalAssembler & | localAssembler () const |
|
template<typename F , typename X > |
void | interpolate (const X &xold, F &f, X &x) const |
| Interpolate the constrained dofs from given function. More...
|
|
void | fill_pattern (Pattern &p) const |
| Fill pattern of jacobian matrix. More...
|
|
void | residual (const Domain &x, Range &r) const |
| Assemble residual. More...
|
|
void | jacobian (const Domain &x, Jacobian &a) const |
| Assembler jacobian. More...
|
|
void | jacobian_apply (const Domain &z, Range &r) const |
| Apply jacobian matrix without explicitly assembling it. More...
|
|
void | nonlinear_jacobian_apply (const Domain &x, const Domain &z, Range &r) const |
| Apply jacobian matrix without explicitly assembling it. More...
|
|
void | make_consistent (Jacobian &a) const |
|
void | update () |
|
const Traits::MatrixBackend & | matrixBackend () const |
| Get the matrix backend for this grid operator. More...
|
|
|
template<typename GridOperatorTuple > |
static void | setupGridOperators (GridOperatorTuple tuple) |
|
template<typename GFSU, typename GFSV, typename LOP, typename MB, typename DF, typename RF, typename JF, typename CU = Dune::PDELab::EmptyTransformation, typename CV = Dune::PDELab::EmptyTransformation, int nonoverlapping_mode = -1>
class Dune::PDELab::GridOperator< GFSU, GFSV, LOP, MB, DF, RF, JF, CU, CV, nonoverlapping_mode >
Standard grid operator implementation.
- Template Parameters
-
GFSU | GridFunctionSpace for ansatz functions |
GFSV | GridFunctionSpace for test functions |
MB | The matrix backend to be used for representation of the jacobian |
DF | The domain field type of the operator |
RF | The range field type of the operator |
JF | The jacobian field type |
CU | Constraints maps for the individual dofs (trial space) |
CV | Constraints maps for the individual dofs (test space) |
§ Assembler
template<typename GFSU, typename GFSV, typename LOP, typename MB, typename DF, typename RF, typename JF, typename CU = Dune::PDELab::EmptyTransformation, typename CV = Dune::PDELab::EmptyTransformation, int nonoverlapping_mode = -1>
typedef DefaultAssembler<GFSU,GFSV,CU,CV,static_cast<bool>nonoverlapping_mode)> Dune::PDELab::GridOperator< GFSU, GFSV, LOP, MB, DF, RF, JF, CU, CV, nonoverlapping_mode >::Assembler |
The global assembler type.
§ BorderDOFExchanger
template<typename GFSU, typename GFSV, typename LOP, typename MB, typename DF, typename RF, typename JF, typename CU = Dune::PDELab::EmptyTransformation, typename CV = Dune::PDELab::EmptyTransformation, int nonoverlapping_mode = -1>
typedef std::conditional< GFSU::Traits::EntitySet::Partitions::partitionIterator() == InteriorBorder_Partition, NonOverlappingBorderDOFExchanger<GridOperator>, OverlappingBorderDOFExchanger<GridOperator> >::type Dune::PDELab::GridOperator< GFSU, GFSV, LOP, MB, DF, RF, JF, CU, CV, nonoverlapping_mode >::BorderDOFExchanger |
§ Domain
template<typename GFSU, typename GFSV, typename LOP, typename MB, typename DF, typename RF, typename JF, typename CU = Dune::PDELab::EmptyTransformation, typename CV = Dune::PDELab::EmptyTransformation, int nonoverlapping_mode = -1>
using Dune::PDELab::GridOperator< GFSU, GFSV, LOP, MB, DF, RF, JF, CU, CV, nonoverlapping_mode >::Domain = Dune::PDELab::Backend::Vector<GFSU,DF> |
The type of the domain (solution).
§ Jacobian
template<typename GFSU, typename GFSV, typename LOP, typename MB, typename DF, typename RF, typename JF, typename CU = Dune::PDELab::EmptyTransformation, typename CV = Dune::PDELab::EmptyTransformation, int nonoverlapping_mode = -1>
using Dune::PDELab::GridOperator< GFSU, GFSV, LOP, MB, DF, RF, JF, CU, CV, nonoverlapping_mode >::Jacobian = Dune::PDELab::Backend::Matrix<MB,Domain,Range,JF> |
The type of the jacobian.
§ LocalAssembler
template<typename GFSU, typename GFSV, typename LOP, typename MB, typename DF, typename RF, typename JF, typename CU = Dune::PDELab::EmptyTransformation, typename CV = Dune::PDELab::EmptyTransformation, int nonoverlapping_mode = -1>
typedef DefaultLocalAssembler< GridOperator, LOP, GFSU::Traits::EntitySet::Partitions::partitionIterator() == InteriorBorder_Partition > Dune::PDELab::GridOperator< GFSU, GFSV, LOP, MB, DF, RF, JF, CU, CV, nonoverlapping_mode >::LocalAssembler |
The local assembler type.
§ Pattern
template<typename GFSU, typename GFSV, typename LOP, typename MB, typename DF, typename RF, typename JF, typename CU = Dune::PDELab::EmptyTransformation, typename CV = Dune::PDELab::EmptyTransformation, int nonoverlapping_mode = -1>
typedef MB::template Pattern<Jacobian,GFSV,GFSU> Dune::PDELab::GridOperator< GFSU, GFSV, LOP, MB, DF, RF, JF, CU, CV, nonoverlapping_mode >::Pattern |
The sparsity pattern container for the jacobian matrix.
§ Range
template<typename GFSU, typename GFSV, typename LOP, typename MB, typename DF, typename RF, typename JF, typename CU = Dune::PDELab::EmptyTransformation, typename CV = Dune::PDELab::EmptyTransformation, int nonoverlapping_mode = -1>
using Dune::PDELab::GridOperator< GFSU, GFSV, LOP, MB, DF, RF, JF, CU, CV, nonoverlapping_mode >::Range = Dune::PDELab::Backend::Vector<GFSV,RF> |
The type of the range (residual).
§ Traits
template<typename GFSU, typename GFSV, typename LOP, typename MB, typename DF, typename RF, typename JF, typename CU = Dune::PDELab::EmptyTransformation, typename CV = Dune::PDELab::EmptyTransformation, int nonoverlapping_mode = -1>
typedef Dune::PDELab::GridOperatorTraits<GFSU,GFSV,MB,DF,RF,JF,CU,CV,Assembler,LocalAssembler> Dune::PDELab::GridOperator< GFSU, GFSV, LOP, MB, DF, RF, JF, CU, CV, nonoverlapping_mode >::Traits |
The grid operator traits.
§ GridOperator() [1/2]
template<typename GFSU, typename GFSV, typename LOP, typename MB, typename DF, typename RF, typename JF, typename CU = Dune::PDELab::EmptyTransformation, typename CV = Dune::PDELab::EmptyTransformation, int nonoverlapping_mode = -1>
Dune::PDELab::GridOperator< GFSU, GFSV, LOP, MB, DF, RF, JF, CU, CV, nonoverlapping_mode >::GridOperator |
( |
const GFSU & |
gfsu_, |
|
|
const CU & |
cu_, |
|
|
const GFSV & |
gfsv_, |
|
|
const CV & |
cv_, |
|
|
LOP & |
lop_, |
|
|
const MB & |
mb_ = MB() |
|
) |
| |
|
inline |
Constructor for non trivial constraints.
§ GridOperator() [2/2]
template<typename GFSU, typename GFSV, typename LOP, typename MB, typename DF, typename RF, typename JF, typename CU = Dune::PDELab::EmptyTransformation, typename CV = Dune::PDELab::EmptyTransformation, int nonoverlapping_mode = -1>
Dune::PDELab::GridOperator< GFSU, GFSV, LOP, MB, DF, RF, JF, CU, CV, nonoverlapping_mode >::GridOperator |
( |
const GFSU & |
gfsu_, |
|
|
const GFSV & |
gfsv_, |
|
|
LOP & |
lop_, |
|
|
const MB & |
mb_ = MB() |
|
) |
| |
|
inline |
Constructor for empty constraints.
§ assembler() [1/2]
template<typename GFSU, typename GFSV, typename LOP, typename MB, typename DF, typename RF, typename JF, typename CU = Dune::PDELab::EmptyTransformation, typename CV = Dune::PDELab::EmptyTransformation, int nonoverlapping_mode = -1>
§ assembler() [2/2]
template<typename GFSU, typename GFSV, typename LOP, typename MB, typename DF, typename RF, typename JF, typename CU = Dune::PDELab::EmptyTransformation, typename CV = Dune::PDELab::EmptyTransformation, int nonoverlapping_mode = -1>
§ fill_pattern()
template<typename GFSU, typename GFSV, typename LOP, typename MB, typename DF, typename RF, typename JF, typename CU = Dune::PDELab::EmptyTransformation, typename CV = Dune::PDELab::EmptyTransformation, int nonoverlapping_mode = -1>
Fill pattern of jacobian matrix.
§ globalSizeU()
template<typename GFSU, typename GFSV, typename LOP, typename MB, typename DF, typename RF, typename JF, typename CU = Dune::PDELab::EmptyTransformation, typename CV = Dune::PDELab::EmptyTransformation, int nonoverlapping_mode = -1>
GFSU::Traits::SizeType Dune::PDELab::GridOperator< GFSU, GFSV, LOP, MB, DF, RF, JF, CU, CV, nonoverlapping_mode >::globalSizeU |
( |
| ) |
const |
|
inline |
Get dimension of space u.
§ globalSizeV()
template<typename GFSU, typename GFSV, typename LOP, typename MB, typename DF, typename RF, typename JF, typename CU = Dune::PDELab::EmptyTransformation, typename CV = Dune::PDELab::EmptyTransformation, int nonoverlapping_mode = -1>
GFSV::Traits::SizeType Dune::PDELab::GridOperator< GFSU, GFSV, LOP, MB, DF, RF, JF, CU, CV, nonoverlapping_mode >::globalSizeV |
( |
| ) |
const |
|
inline |
Get dimension of space v.
§ interpolate()
template<typename GFSU, typename GFSV, typename LOP, typename MB, typename DF, typename RF, typename JF, typename CU = Dune::PDELab::EmptyTransformation, typename CV = Dune::PDELab::EmptyTransformation, int nonoverlapping_mode = -1>
template<typename F , typename X >
void Dune::PDELab::GridOperator< GFSU, GFSV, LOP, MB, DF, RF, JF, CU, CV, nonoverlapping_mode >::interpolate |
( |
const X & |
xold, |
|
|
F & |
f, |
|
|
X & |
x |
|
) |
| const |
|
inline |
Interpolate the constrained dofs from given function.
§ jacobian()
template<typename GFSU, typename GFSV, typename LOP, typename MB, typename DF, typename RF, typename JF, typename CU = Dune::PDELab::EmptyTransformation, typename CV = Dune::PDELab::EmptyTransformation, int nonoverlapping_mode = -1>
void Dune::PDELab::GridOperator< GFSU, GFSV, LOP, MB, DF, RF, JF, CU, CV, nonoverlapping_mode >::jacobian |
( |
const Domain & |
x, |
|
|
Jacobian & |
a |
|
) |
| const |
|
inline |
§ jacobian_apply()
template<typename GFSU, typename GFSV, typename LOP, typename MB, typename DF, typename RF, typename JF, typename CU = Dune::PDELab::EmptyTransformation, typename CV = Dune::PDELab::EmptyTransformation, int nonoverlapping_mode = -1>
void Dune::PDELab::GridOperator< GFSU, GFSV, LOP, MB, DF, RF, JF, CU, CV, nonoverlapping_mode >::jacobian_apply |
( |
const Domain & |
z, |
|
|
Range & |
r |
|
) |
| const |
|
inline |
Apply jacobian matrix without explicitly assembling it.
§ localAssembler()
template<typename GFSU, typename GFSV, typename LOP, typename MB, typename DF, typename RF, typename JF, typename CU = Dune::PDELab::EmptyTransformation, typename CV = Dune::PDELab::EmptyTransformation, int nonoverlapping_mode = -1>
§ make_consistent()
template<typename GFSU, typename GFSV, typename LOP, typename MB, typename DF, typename RF, typename JF, typename CU = Dune::PDELab::EmptyTransformation, typename CV = Dune::PDELab::EmptyTransformation, int nonoverlapping_mode = -1>
§ matrixBackend()
template<typename GFSU, typename GFSV, typename LOP, typename MB, typename DF, typename RF, typename JF, typename CU = Dune::PDELab::EmptyTransformation, typename CV = Dune::PDELab::EmptyTransformation, int nonoverlapping_mode = -1>
Get the matrix backend for this grid operator.
§ nonlinear_jacobian_apply()
template<typename GFSU, typename GFSV, typename LOP, typename MB, typename DF, typename RF, typename JF, typename CU = Dune::PDELab::EmptyTransformation, typename CV = Dune::PDELab::EmptyTransformation, int nonoverlapping_mode = -1>
void Dune::PDELab::GridOperator< GFSU, GFSV, LOP, MB, DF, RF, JF, CU, CV, nonoverlapping_mode >::nonlinear_jacobian_apply |
( |
const Domain & |
x, |
|
|
const Domain & |
z, |
|
|
Range & |
r |
|
) |
| const |
|
inline |
Apply jacobian matrix without explicitly assembling it.
§ residual()
template<typename GFSU, typename GFSV, typename LOP, typename MB, typename DF, typename RF, typename JF, typename CU = Dune::PDELab::EmptyTransformation, typename CV = Dune::PDELab::EmptyTransformation, int nonoverlapping_mode = -1>
void Dune::PDELab::GridOperator< GFSU, GFSV, LOP, MB, DF, RF, JF, CU, CV, nonoverlapping_mode >::residual |
( |
const Domain & |
x, |
|
|
Range & |
r |
|
) |
| const |
|
inline |
§ setupGridOperators()
template<typename GFSU, typename GFSV, typename LOP, typename MB, typename DF, typename RF, typename JF, typename CU = Dune::PDELab::EmptyTransformation, typename CV = Dune::PDELab::EmptyTransformation, int nonoverlapping_mode = -1>
template<typename GridOperatorTuple >
static void Dune::PDELab::GridOperator< GFSU, GFSV, LOP, MB, DF, RF, JF, CU, CV, nonoverlapping_mode >::setupGridOperators |
( |
GridOperatorTuple |
tuple | ) |
|
|
inlinestatic |
Method to set up a number of grid operators which are used in a joint assembling. It is assumed that all operators are specializations of the same template type
§ testGridFunctionSpace()
template<typename GFSU, typename GFSV, typename LOP, typename MB, typename DF, typename RF, typename JF, typename CU = Dune::PDELab::EmptyTransformation, typename CV = Dune::PDELab::EmptyTransformation, int nonoverlapping_mode = -1>
const GFSV& Dune::PDELab::GridOperator< GFSU, GFSV, LOP, MB, DF, RF, JF, CU, CV, nonoverlapping_mode >::testGridFunctionSpace |
( |
| ) |
const |
|
inline |
Get the test grid function space.
§ trialGridFunctionSpace()
template<typename GFSU, typename GFSV, typename LOP, typename MB, typename DF, typename RF, typename JF, typename CU = Dune::PDELab::EmptyTransformation, typename CV = Dune::PDELab::EmptyTransformation, int nonoverlapping_mode = -1>
const GFSU& Dune::PDELab::GridOperator< GFSU, GFSV, LOP, MB, DF, RF, JF, CU, CV, nonoverlapping_mode >::trialGridFunctionSpace |
( |
| ) |
const |
|
inline |
Get the trial grid function space.
§ update()
template<typename GFSU, typename GFSV, typename LOP, typename MB, typename DF, typename RF, typename JF, typename CU = Dune::PDELab::EmptyTransformation, typename CV = Dune::PDELab::EmptyTransformation, int nonoverlapping_mode = -1>
The documentation for this class was generated from the following file: