Standard grid operator implementation.
More...
#include <dune/pdelab/gridoperator/gridoperator.hh>
|
typedef DefaultAssembler< GFSU, GFSV, CU, CV, 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, nonoverlapping_mode > | LocalAssembler |
| The local assembler type. More...
|
|
typedef conditional< nonoverlapping_mode, 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 &x, 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, bool nonoverlapping_mode = false>
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) |
nonoverlapping_mode | Switch for nonoverlapping grids |
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, bool nonoverlapping_mode = false>
typedef DefaultAssembler<GFSU,GFSV,CU,CV,nonoverlapping_mode> Dune::PDELab::GridOperator< GFSU, GFSV, LOP, MB, DF, RF, JF, CU, CV, nonoverlapping_mode >::Assembler |
The global assembler type.
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, bool nonoverlapping_mode = false>
typedef conditional< nonoverlapping_mode, NonOverlappingBorderDOFExchanger<GridOperator>, OverlappingBorderDOFExchanger<GridOperator> >::type Dune::PDELab::GridOperator< GFSU, GFSV, LOP, MB, DF, RF, JF, CU, CV, nonoverlapping_mode >::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, bool nonoverlapping_mode = false>
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).
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, bool nonoverlapping_mode = false>
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.
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, bool nonoverlapping_mode = false>
typedef DefaultLocalAssembler<GridOperator,LOP,nonoverlapping_mode> Dune::PDELab::GridOperator< GFSU, GFSV, LOP, MB, DF, RF, JF, CU, CV, nonoverlapping_mode >::LocalAssembler |
The local assembler type.
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, bool nonoverlapping_mode = false>
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.
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, bool nonoverlapping_mode = false>
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).
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, bool nonoverlapping_mode = false>
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.
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, bool nonoverlapping_mode = false>
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.
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, bool nonoverlapping_mode = false>
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.
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, bool nonoverlapping_mode = false>
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, bool nonoverlapping_mode = false>
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, bool nonoverlapping_mode = false>
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, bool nonoverlapping_mode = false>
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.
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, bool nonoverlapping_mode = false>
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.
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, bool nonoverlapping_mode = false>
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.
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, bool nonoverlapping_mode = false>
void Dune::PDELab::GridOperator< GFSU, GFSV, LOP, MB, DF, RF, JF, CU, CV, nonoverlapping_mode >::jacobian |
( |
const Domain & |
x, |
|
|
Jacobian & |
a |
|
) |
| const |
|
inline |
Assembler jacobian.
Referenced by Dune::PDELab::ISTLBackend_OVLP_AMG_4_DG< DGGO, DGCC, CGGFS, CGCC, TransferLOP, DGPrec, Solver, s >::ISTLBackend_OVLP_AMG_4_DG(), and Dune::PDELab::ISTLBackend_SEQ_AMG_4_DG< DGGO, CGGFS, TransferLOP, DGPrec, Solver >::ISTLBackend_SEQ_AMG_4_DG().
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, bool nonoverlapping_mode = false>
void Dune::PDELab::GridOperator< GFSU, GFSV, LOP, MB, DF, RF, JF, CU, CV, nonoverlapping_mode >::jacobian_apply |
( |
const Domain & |
x, |
|
|
Range & |
r |
|
) |
| const |
|
inline |
Apply jacobian matrix without explicitly assembling it.
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, bool nonoverlapping_mode = false>
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, bool nonoverlapping_mode = false>
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, bool nonoverlapping_mode = false>
Get the matrix backend for this grid operator.
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, bool nonoverlapping_mode = false>
void Dune::PDELab::GridOperator< GFSU, GFSV, LOP, MB, DF, RF, JF, CU, CV, nonoverlapping_mode >::residual |
( |
const Domain & |
x, |
|
|
Range & |
r |
|
) |
| const |
|
inline |
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, bool nonoverlapping_mode = false>
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
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, bool nonoverlapping_mode = false>
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.
Referenced by Dune::PDELab::NonOverlappingBorderDOFExchanger< GridOperator >::accumulateBorderEntries(), Dune::PDELab::ISTLMatrixBackend::buildPattern(), Dune::PDELab::istl::BCRSMatrixBackend< EntriesPerRow >::buildPattern(), and Dune::PDELab::GridOperator< CGGFS, GFS, CGTODGLOP, MBE, field_type, field_type, field_type, CC, CC >::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, bool nonoverlapping_mode = false>
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.
Referenced by Dune::PDELab::NonOverlappingBorderDOFExchanger< GridOperator >::accumulateBorderEntries(), Dune::PDELab::ISTLMatrixBackend::buildPattern(), Dune::PDELab::istl::BCRSMatrixBackend< EntriesPerRow >::buildPattern(), and Dune::PDELab::GridOperator< CGGFS, GFS, CGTODGLOP, MBE, field_type, field_type, field_type, CC, CC >::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, bool nonoverlapping_mode = false>
The documentation for this class was generated from the following file: