dune-pdelab  2.5-dev
Classes | Public Types | Public Member Functions | Static Public Member Functions | List of all members
Dune::PDELab::GridOperator< GFSU, GFSV, LOP, MB, DF, RF, JF, CU, CV > Class Template Reference

Standard grid operator implementation. More...

#include <dune/pdelab/gridoperator/gridoperator.hh>

Inheritance diagram for Dune::PDELab::GridOperator< GFSU, GFSV, LOP, MB, DF, RF, JF, CU, CV >:
Inheritance graph

Classes

struct  MatrixContainer
 
struct  SetupGridOperator
 

Public Types

typedef DefaultAssembler< GFSU, GFSV, CU, CV > 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, LocalAssemblerTraits
 The grid operator traits. More...
 

Public Member Functions

 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...
 
Assemblerassembler ()
 
const Assemblerassembler () const
 
LocalAssemblerlocalAssembler () 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::MatrixBackendmatrixBackend () const
 Get the matrix backend for this grid operator. More...
 

Static Public Member Functions

template<typename GridOperatorTuple >
static void setupGridOperators (GridOperatorTuple tuple)
 

Detailed Description

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>
class Dune::PDELab::GridOperator< GFSU, GFSV, LOP, MB, DF, RF, JF, CU, CV >

Standard grid operator implementation.

Template Parameters
GFSUGridFunctionSpace for ansatz functions
GFSVGridFunctionSpace for test functions
MBThe matrix backend to be used for representation of the jacobian
DFThe domain field type of the operator
RFThe range field type of the operator
JFThe jacobian field type
CUConstraints maps for the individual dofs (trial space)
CVConstraints maps for the individual dofs (test space)

Member Typedef Documentation

◆ 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>
typedef DefaultAssembler<GFSU,GFSV,CU,CV> Dune::PDELab::GridOperator< GFSU, GFSV, LOP, MB, DF, RF, JF, CU, CV >::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>
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 >::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>
using Dune::PDELab::GridOperator< GFSU, GFSV, LOP, MB, DF, RF, JF, CU, CV >::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>
using Dune::PDELab::GridOperator< GFSU, GFSV, LOP, MB, DF, RF, JF, CU, CV >::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>
typedef DefaultLocalAssembler< GridOperator, LOP, GFSU::Traits::EntitySet::Partitions::partitionIterator() == InteriorBorder_Partition > Dune::PDELab::GridOperator< GFSU, GFSV, LOP, MB, DF, RF, JF, CU, CV >::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>
typedef MB::template Pattern<Jacobian,GFSV,GFSU> Dune::PDELab::GridOperator< GFSU, GFSV, LOP, MB, DF, RF, JF, CU, CV >::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>
using Dune::PDELab::GridOperator< GFSU, GFSV, LOP, MB, DF, RF, JF, CU, CV >::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>
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 >::Traits

The grid operator traits.

Constructor & Destructor Documentation

◆ 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>
Dune::PDELab::GridOperator< GFSU, GFSV, LOP, MB, DF, RF, JF, CU, CV >::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>
Dune::PDELab::GridOperator< GFSU, GFSV, LOP, MB, DF, RF, JF, CU, CV >::GridOperator ( const GFSU &  gfsu_,
const GFSV &  gfsv_,
LOP &  lop_,
const MB &  mb_ = MB() 
)
inline

Constructor for empty constraints.

Member Function Documentation

◆ 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>
Assembler& Dune::PDELab::GridOperator< GFSU, GFSV, LOP, MB, DF, RF, JF, CU, CV >::assembler ( )
inline

◆ 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>
const Assembler& Dune::PDELab::GridOperator< GFSU, GFSV, LOP, MB, DF, RF, JF, CU, CV >::assembler ( ) const
inline

◆ 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>
void Dune::PDELab::GridOperator< GFSU, GFSV, LOP, MB, DF, RF, JF, CU, CV >::fill_pattern ( Pattern p) const
inline

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>
GFSU::Traits::SizeType Dune::PDELab::GridOperator< GFSU, GFSV, LOP, MB, DF, RF, JF, CU, CV >::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>
GFSV::Traits::SizeType Dune::PDELab::GridOperator< GFSU, GFSV, LOP, MB, DF, RF, JF, CU, CV >::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>
template<typename F , typename X >
void Dune::PDELab::GridOperator< GFSU, GFSV, LOP, MB, DF, RF, JF, CU, CV >::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>
void Dune::PDELab::GridOperator< GFSU, GFSV, LOP, MB, DF, RF, JF, CU, CV >::jacobian ( const Domain x,
Jacobian a 
) const
inline

Assembler jacobian.

◆ 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>
void Dune::PDELab::GridOperator< GFSU, GFSV, LOP, MB, DF, RF, JF, CU, CV >::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>
LocalAssembler& Dune::PDELab::GridOperator< GFSU, GFSV, LOP, MB, DF, RF, JF, CU, CV >::localAssembler ( ) const
inline

◆ 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>
void Dune::PDELab::GridOperator< GFSU, GFSV, LOP, MB, DF, RF, JF, CU, CV >::make_consistent ( Jacobian a) const
inline

◆ 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>
const Traits::MatrixBackend& Dune::PDELab::GridOperator< GFSU, GFSV, LOP, MB, DF, RF, JF, CU, CV >::matrixBackend ( ) const
inline

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>
void Dune::PDELab::GridOperator< GFSU, GFSV, LOP, MB, DF, RF, JF, CU, CV >::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>
void Dune::PDELab::GridOperator< GFSU, GFSV, LOP, MB, DF, RF, JF, CU, CV >::residual ( const Domain x,
Range r 
) const
inline

Assemble residual.

◆ 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>
template<typename GridOperatorTuple >
static void Dune::PDELab::GridOperator< GFSU, GFSV, LOP, MB, DF, RF, JF, CU, CV >::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>
const GFSV& Dune::PDELab::GridOperator< GFSU, GFSV, LOP, MB, DF, RF, JF, CU, CV >::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>
const GFSU& Dune::PDELab::GridOperator< GFSU, GFSV, LOP, MB, DF, RF, JF, CU, CV >::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>
void Dune::PDELab::GridOperator< GFSU, GFSV, LOP, MB, DF, RF, JF, CU, CV >::update ( )
inline

The documentation for this class was generated from the following file: