dune-fem 2.8.0
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Protected Types | Protected Member Functions | Static Protected Attributes | List of all members
DifferentiableDGEllipticOperator< JacobianOperator, Model, Penalty > Struct Template Referenceabstract

#include <dune/fem/schemes/dgelliptic.hh>

Inheritance diagram for DifferentiableDGEllipticOperator< JacobianOperator, Model, Penalty >:
Inheritance graph

Public Types

typedef DGEllipticOperator< typename JacobianOperator::DomainFunctionType, Model, Penalty > BaseType
 
typedef JacobianOperator JacobianOperatorType
 
typedef BaseType::DiscreteFunctionType DiscreteFunctionType
 
typedef BaseType::ModelType ModelType
 
typedef BaseType::DomainDiscreteFunctionType DomainDiscreteFunctionType
 
typedef BaseType::RangeDiscreteFunctionType RangeDiscreteFunctionType
 
typedef DiscreteFunction DomainFunctionType
 type of discrete function in the operator's domain
 
typedef DiscreteFunction RangeFunctionType
 type of discrete function in the operator's range
 
typedef DomainFunction::RangeFieldType DomainFieldType
 field type of the operator's domain
 
typedef BaseType::DomainFunctionType DomainFunctionType
 type of discrete function in the operator's domain
 
typedef BaseType::RangeFunctionType RangeFunctionType
 type of discrete function in the operator's range
 
typedef DomainFunctionType::RangeFieldType DomainFieldType
 field type of the operator's domain
 

Public Member Functions

 DifferentiableDGEllipticOperator (const DiscreteFunctionSpaceType &space, const ModelType &model, const Dune::Fem::ParameterReader &parameter=Dune::Fem::Parameter::container())
 constructor
 
 DifferentiableDGEllipticOperator (const DiscreteFunctionSpaceType &dSpace, const DiscreteFunctionSpaceType &rSpace, const ModelType &model, const Dune::Fem::ParameterReader &parameter=Dune::Fem::Parameter::container())
 
void jacobian (const DomainDiscreteFunctionType &u, JacobianOperatorType &jOp) const
 method to setup the jacobian of the operator for storage in a matrix
 
template<class GridFunctionType >
void apply (const GridFunctionType &u, JacobianOperatorType &jOp) const
 
template<class GF >
void apply (const GF &u, JacobianOperator &jOp) const
 
template<class GF >
void apply (const GF &u, RangeDiscreteFunctionType &w) const
 
virtual void operator() (const DomainDiscreteFunctionType &u, RangeDiscreteFunctionType &w) const
 application operator
 
virtual void finalize ()
 finalization of operator
 
virtual void jacobian (const DomainFunctionType &u, JacobianOperatorType &jOp) const =0
 obtain linearization
 
virtual void operator() (const DomainFunctionType &u, RangeFunctionType &w) const=0
 application operator
 
virtual void finalize ()
 finalization of operator
 

Protected Types

typedef DomainDiscreteFunctionType::DiscreteFunctionSpaceType DomainDiscreteFunctionSpaceType
 
typedef DomainDiscreteFunctionType::LocalFunctionType DomainLocalFunctionType
 
typedef DomainLocalFunctionType::RangeType DomainRangeType
 
typedef DomainLocalFunctionType::JacobianRangeType DomainJacobianRangeType
 
typedef RangeDiscreteFunctionType::DiscreteFunctionSpaceType RangeDiscreteFunctionSpaceType
 
typedef RangeDiscreteFunctionType::LocalFunctionType RangeLocalFunctionType
 
typedef RangeLocalFunctionType::RangeType RangeRangeType
 
typedef RangeLocalFunctionType::JacobianRangeType RangeJacobianRangeType
 
typedef DiscreteFunctionType::DiscreteFunctionSpaceType DiscreteFunctionSpaceType
 
typedef DiscreteFunctionType::LocalFunctionType LocalFunctionType
 
typedef LocalFunctionType::RangeType RangeType
 
typedef LocalFunctionType::RangeFieldType RangeFieldType
 
typedef LocalFunctionType::JacobianRangeType JacobianRangeType
 
typedef DiscreteFunctionSpaceType::IteratorType IteratorType
 
typedef IteratorType::Entity EntityType
 
typedef EntityType::Geometry GeometryType
 
typedef DiscreteFunctionSpaceType::DomainType DomainType
 
typedef DiscreteFunctionSpaceType::GridPartType GridPartType
 
typedef GridPartType::IntersectionIteratorType IntersectionIteratorType
 
typedef IntersectionIteratorType::Intersection IntersectionType
 
typedef IntersectionType::Geometry IntersectionGeometryType
 
typedef Dune::Fem::ElementQuadrature< GridPartType, 1 > FaceQuadratureType
 
typedef Dune::Fem::CachingQuadrature< GridPartType, 0 > QuadratureType
 

Protected Member Functions

const ModelTypemodel () const
 
Penalty penalty () const
 

Static Protected Attributes

static const int dimDomain = LocalFunctionType::dimDomain
 
static const int dimRange = LocalFunctionType::dimRange
 

Member Typedef Documentation

◆ BaseType

template<class JacobianOperator , class Model , class Penalty = DefaultPenalty<typename JacobianOperator::DomainFunctionType::DiscreteFunctionSpaceType >>
typedef DGEllipticOperator< typename JacobianOperator::DomainFunctionType, Model, Penalty > DifferentiableDGEllipticOperator< JacobianOperator, Model, Penalty >::BaseType

◆ DiscreteFunctionSpaceType

template<class JacobianOperator , class Model , class Penalty = DefaultPenalty<typename JacobianOperator::DomainFunctionType::DiscreteFunctionSpaceType >>
typedef DiscreteFunctionType::DiscreteFunctionSpaceType DifferentiableDGEllipticOperator< JacobianOperator, Model, Penalty >::DiscreteFunctionSpaceType
protected

◆ DiscreteFunctionType

template<class JacobianOperator , class Model , class Penalty = DefaultPenalty<typename JacobianOperator::DomainFunctionType::DiscreteFunctionSpaceType >>
typedef BaseType::DiscreteFunctionType DifferentiableDGEllipticOperator< JacobianOperator, Model, Penalty >::DiscreteFunctionType

◆ DomainDiscreteFunctionSpaceType

template<class JacobianOperator , class Model , class Penalty = DefaultPenalty<typename JacobianOperator::DomainFunctionType::DiscreteFunctionSpaceType >>
typedef DomainDiscreteFunctionType::DiscreteFunctionSpaceType DifferentiableDGEllipticOperator< JacobianOperator, Model, Penalty >::DomainDiscreteFunctionSpaceType
protected

◆ DomainDiscreteFunctionType

template<class JacobianOperator , class Model , class Penalty = DefaultPenalty<typename JacobianOperator::DomainFunctionType::DiscreteFunctionSpaceType >>
typedef BaseType::DomainDiscreteFunctionType DifferentiableDGEllipticOperator< JacobianOperator, Model, Penalty >::DomainDiscreteFunctionType

◆ DomainFieldType [1/2]

template<class JacobianOperator >
typedef DomainFunctionType::RangeFieldType Dune::Fem::DifferentiableOperator< JacobianOperator >::DomainFieldType
inherited

field type of the operator's domain

◆ DomainFieldType [2/2]

typedef DomainFunction::RangeFieldType Dune::Fem::Operator< DiscreteFunction , DiscreteFunction >::DomainFieldType
inherited

field type of the operator's domain

◆ DomainFunctionType [1/2]

template<class JacobianOperator >
typedef BaseType::DomainFunctionType Dune::Fem::DifferentiableOperator< JacobianOperator >::DomainFunctionType
inherited

type of discrete function in the operator's domain

◆ DomainFunctionType [2/2]

typedef DiscreteFunction Dune::Fem::Operator< DiscreteFunction , DiscreteFunction >::DomainFunctionType
inherited

type of discrete function in the operator's domain

◆ DomainJacobianRangeType

template<class JacobianOperator , class Model , class Penalty = DefaultPenalty<typename JacobianOperator::DomainFunctionType::DiscreteFunctionSpaceType >>
typedef DomainLocalFunctionType::JacobianRangeType DifferentiableDGEllipticOperator< JacobianOperator, Model, Penalty >::DomainJacobianRangeType
protected

◆ DomainLocalFunctionType

template<class JacobianOperator , class Model , class Penalty = DefaultPenalty<typename JacobianOperator::DomainFunctionType::DiscreteFunctionSpaceType >>
typedef DomainDiscreteFunctionType::LocalFunctionType DifferentiableDGEllipticOperator< JacobianOperator, Model, Penalty >::DomainLocalFunctionType
protected

◆ DomainRangeType

template<class JacobianOperator , class Model , class Penalty = DefaultPenalty<typename JacobianOperator::DomainFunctionType::DiscreteFunctionSpaceType >>
typedef DomainLocalFunctionType::RangeType DifferentiableDGEllipticOperator< JacobianOperator, Model, Penalty >::DomainRangeType
protected

◆ DomainType

template<class JacobianOperator , class Model , class Penalty = DefaultPenalty<typename JacobianOperator::DomainFunctionType::DiscreteFunctionSpaceType >>
typedef DiscreteFunctionSpaceType::DomainType DifferentiableDGEllipticOperator< JacobianOperator, Model, Penalty >::DomainType
protected

◆ EntityType

template<class JacobianOperator , class Model , class Penalty = DefaultPenalty<typename JacobianOperator::DomainFunctionType::DiscreteFunctionSpaceType >>
typedef IteratorType::Entity DifferentiableDGEllipticOperator< JacobianOperator, Model, Penalty >::EntityType
protected

◆ FaceQuadratureType

template<class JacobianOperator , class Model , class Penalty = DefaultPenalty<typename JacobianOperator::DomainFunctionType::DiscreteFunctionSpaceType >>
typedef Dune::Fem::ElementQuadrature< GridPartType, 1 > DifferentiableDGEllipticOperator< JacobianOperator, Model, Penalty >::FaceQuadratureType
protected

◆ GeometryType

template<class JacobianOperator , class Model , class Penalty = DefaultPenalty<typename JacobianOperator::DomainFunctionType::DiscreteFunctionSpaceType >>
typedef EntityType::Geometry DifferentiableDGEllipticOperator< JacobianOperator, Model, Penalty >::GeometryType
protected

◆ GridPartType

template<class JacobianOperator , class Model , class Penalty = DefaultPenalty<typename JacobianOperator::DomainFunctionType::DiscreteFunctionSpaceType >>
typedef DiscreteFunctionSpaceType::GridPartType DifferentiableDGEllipticOperator< JacobianOperator, Model, Penalty >::GridPartType
protected

◆ IntersectionGeometryType

template<class JacobianOperator , class Model , class Penalty = DefaultPenalty<typename JacobianOperator::DomainFunctionType::DiscreteFunctionSpaceType >>
typedef IntersectionType::Geometry DifferentiableDGEllipticOperator< JacobianOperator, Model, Penalty >::IntersectionGeometryType
protected

◆ IntersectionIteratorType

template<class JacobianOperator , class Model , class Penalty = DefaultPenalty<typename JacobianOperator::DomainFunctionType::DiscreteFunctionSpaceType >>
typedef GridPartType::IntersectionIteratorType DifferentiableDGEllipticOperator< JacobianOperator, Model, Penalty >::IntersectionIteratorType
protected

◆ IntersectionType

template<class JacobianOperator , class Model , class Penalty = DefaultPenalty<typename JacobianOperator::DomainFunctionType::DiscreteFunctionSpaceType >>
typedef IntersectionIteratorType::Intersection DifferentiableDGEllipticOperator< JacobianOperator, Model, Penalty >::IntersectionType
protected

◆ IteratorType

template<class JacobianOperator , class Model , class Penalty = DefaultPenalty<typename JacobianOperator::DomainFunctionType::DiscreteFunctionSpaceType >>
typedef DiscreteFunctionSpaceType::IteratorType DifferentiableDGEllipticOperator< JacobianOperator, Model, Penalty >::IteratorType
protected

◆ JacobianOperatorType

template<class JacobianOperator , class Model , class Penalty = DefaultPenalty<typename JacobianOperator::DomainFunctionType::DiscreteFunctionSpaceType >>
typedef JacobianOperator DifferentiableDGEllipticOperator< JacobianOperator, Model, Penalty >::JacobianOperatorType

◆ JacobianRangeType

template<class JacobianOperator , class Model , class Penalty = DefaultPenalty<typename JacobianOperator::DomainFunctionType::DiscreteFunctionSpaceType >>
typedef LocalFunctionType::JacobianRangeType DifferentiableDGEllipticOperator< JacobianOperator, Model, Penalty >::JacobianRangeType
protected

◆ LocalFunctionType

template<class JacobianOperator , class Model , class Penalty = DefaultPenalty<typename JacobianOperator::DomainFunctionType::DiscreteFunctionSpaceType >>
typedef DiscreteFunctionType::LocalFunctionType DifferentiableDGEllipticOperator< JacobianOperator, Model, Penalty >::LocalFunctionType
protected

◆ ModelType

template<class JacobianOperator , class Model , class Penalty = DefaultPenalty<typename JacobianOperator::DomainFunctionType::DiscreteFunctionSpaceType >>
typedef BaseType::ModelType DifferentiableDGEllipticOperator< JacobianOperator, Model, Penalty >::ModelType

◆ QuadratureType

template<class JacobianOperator , class Model , class Penalty = DefaultPenalty<typename JacobianOperator::DomainFunctionType::DiscreteFunctionSpaceType >>
typedef Dune::Fem::CachingQuadrature< GridPartType, 0 > DifferentiableDGEllipticOperator< JacobianOperator, Model, Penalty >::QuadratureType
protected

◆ RangeDiscreteFunctionSpaceType

template<class JacobianOperator , class Model , class Penalty = DefaultPenalty<typename JacobianOperator::DomainFunctionType::DiscreteFunctionSpaceType >>
typedef RangeDiscreteFunctionType::DiscreteFunctionSpaceType DifferentiableDGEllipticOperator< JacobianOperator, Model, Penalty >::RangeDiscreteFunctionSpaceType
protected

◆ RangeDiscreteFunctionType

template<class JacobianOperator , class Model , class Penalty = DefaultPenalty<typename JacobianOperator::DomainFunctionType::DiscreteFunctionSpaceType >>
typedef BaseType::RangeDiscreteFunctionType DifferentiableDGEllipticOperator< JacobianOperator, Model, Penalty >::RangeDiscreteFunctionType

◆ RangeFieldType

template<class JacobianOperator , class Model , class Penalty = DefaultPenalty<typename JacobianOperator::DomainFunctionType::DiscreteFunctionSpaceType >>
typedef LocalFunctionType::RangeFieldType DifferentiableDGEllipticOperator< JacobianOperator, Model, Penalty >::RangeFieldType
protected

◆ RangeFunctionType [1/2]

template<class JacobianOperator >
typedef BaseType::RangeFunctionType Dune::Fem::DifferentiableOperator< JacobianOperator >::RangeFunctionType
inherited

type of discrete function in the operator's range

◆ RangeFunctionType [2/2]

typedef DiscreteFunction Dune::Fem::Operator< DiscreteFunction , DiscreteFunction >::RangeFunctionType
inherited

type of discrete function in the operator's range

◆ RangeJacobianRangeType

template<class JacobianOperator , class Model , class Penalty = DefaultPenalty<typename JacobianOperator::DomainFunctionType::DiscreteFunctionSpaceType >>
typedef RangeLocalFunctionType::JacobianRangeType DifferentiableDGEllipticOperator< JacobianOperator, Model, Penalty >::RangeJacobianRangeType
protected

◆ RangeLocalFunctionType

template<class JacobianOperator , class Model , class Penalty = DefaultPenalty<typename JacobianOperator::DomainFunctionType::DiscreteFunctionSpaceType >>
typedef RangeDiscreteFunctionType::LocalFunctionType DifferentiableDGEllipticOperator< JacobianOperator, Model, Penalty >::RangeLocalFunctionType
protected

◆ RangeRangeType

template<class JacobianOperator , class Model , class Penalty = DefaultPenalty<typename JacobianOperator::DomainFunctionType::DiscreteFunctionSpaceType >>
typedef RangeLocalFunctionType::RangeType DifferentiableDGEllipticOperator< JacobianOperator, Model, Penalty >::RangeRangeType
protected

◆ RangeType

template<class JacobianOperator , class Model , class Penalty = DefaultPenalty<typename JacobianOperator::DomainFunctionType::DiscreteFunctionSpaceType >>
typedef LocalFunctionType::RangeType DifferentiableDGEllipticOperator< JacobianOperator, Model, Penalty >::RangeType
protected

Constructor & Destructor Documentation

◆ DifferentiableDGEllipticOperator() [1/2]

template<class JacobianOperator , class Model , class Penalty = DefaultPenalty<typename JacobianOperator::DomainFunctionType::DiscreteFunctionSpaceType >>
DifferentiableDGEllipticOperator< JacobianOperator, Model, Penalty >::DifferentiableDGEllipticOperator ( const DiscreteFunctionSpaceType space,
const ModelType model,
const Dune::Fem::ParameterReader parameter = Dune::Fem::Parameter::container() 
)
inline

constructor

◆ DifferentiableDGEllipticOperator() [2/2]

template<class JacobianOperator , class Model , class Penalty = DefaultPenalty<typename JacobianOperator::DomainFunctionType::DiscreteFunctionSpaceType >>
DifferentiableDGEllipticOperator< JacobianOperator, Model, Penalty >::DifferentiableDGEllipticOperator ( const DiscreteFunctionSpaceType dSpace,
const DiscreteFunctionSpaceType rSpace,
const ModelType model,
const Dune::Fem::ParameterReader parameter = Dune::Fem::Parameter::container() 
)
inline

Member Function Documentation

◆ apply() [1/3]

template<class JacobianOperator , class Model , class Penalty = DefaultPenalty<typename JacobianOperator::DomainFunctionType::DiscreteFunctionSpaceType >>
template<class GF >
void DifferentiableDGEllipticOperator< JacobianOperator, Model, Penalty >::apply ( const GF &  u,
JacobianOperator &  jOp 
) const

[Assemble skeleton terms: get contributions on off diagonal block]

[Assemble skeleton terms: get contributions on off diagonal block]

[Assemble skeleton terms: obtain values om quadrature point]

[Assemble skeleton terms: obtain values om quadrature point]

[Assemble skeleton terms: compute factors for axpy method]

[Assemble skeleton terms: compute factors for axpy method]

◆ apply() [2/3]

template<class JacobianOperator , class Model , class Penalty = DefaultPenalty<typename JacobianOperator::DomainFunctionType::DiscreteFunctionSpaceType >>
template<class GF >
void DGEllipticOperator< RangeDiscreteFunction, Model, Penalty >::apply ( const GF &  u,
RangeDiscreteFunctionType w 
) const

[Compute skeleton terms: iterate over intersections]

[Compute skeleton terms: iterate over intersections]

[Compute skeleton terms: obtain required values on the intersection]

[Compute skeleton terms: obtain required values on the intersection]

[Compute skeleton terms: compute factors for axpy method]

[Compute skeleton terms: compute factors for axpy method]

◆ apply() [3/3]

template<class JacobianOperator , class Model , class Penalty = DefaultPenalty<typename JacobianOperator::DomainFunctionType::DiscreteFunctionSpaceType >>
template<class GridFunctionType >
void DifferentiableDGEllipticOperator< JacobianOperator, Model, Penalty >::apply ( const GridFunctionType &  u,
JacobianOperatorType jOp 
) const

◆ finalize() [1/2]

virtual void Dune::Fem::Operator< DiscreteFunction , DiscreteFunction >::finalize ( )
inlinevirtualinherited

finalization of operator

Note
The default implementation is empty.

◆ finalize() [2/2]

virtual void Dune::Fem::Operator< JacobianOperator::DomainFunctionType , JacobianOperator::RangeFunctionType >::finalize ( )
inlinevirtualinherited

finalization of operator

Note
The default implementation is empty.

◆ jacobian() [1/2]

template<class JacobianOperator , class Model , class Penalty = DefaultPenalty<typename JacobianOperator::DomainFunctionType::DiscreteFunctionSpaceType >>
void DifferentiableDGEllipticOperator< JacobianOperator, Model, Penalty >::jacobian ( const DomainDiscreteFunctionType u,
JacobianOperatorType jOp 
) const
inline

method to setup the jacobian of the operator for storage in a matrix

◆ jacobian() [2/2]

template<class JacobianOperator >
virtual void Dune::Fem::DifferentiableOperator< JacobianOperator >::jacobian ( const DomainFunctionType u,
JacobianOperatorType jOp 
) const
pure virtualinherited

obtain linearization

Parameters
[in]uargument discrete function
[out]jOpdestination Jacobian operator
Note
This method has to be implemented by all derived classes.

Implemented in Dune::Fem::DifferentiableGalerkinOperator< Integrands, JacobianOperator >, and Dune::Fem::MOLDifferentiableGalerkinOperator< Integrands, JacobianOperator >.

◆ model()

template<class JacobianOperator , class Model , class Penalty = DefaultPenalty<typename JacobianOperator::DomainFunctionType::DiscreteFunctionSpaceType >>
const ModelType & DGEllipticOperator< DiscreteFunction, Model, Penalty >::model ( ) const
inlineprotected

◆ operator()() [1/2]

template<class DiscreteFunction , class Model , class Penalty = DefaultPenalty<typename DiscreteFunction::DiscreteFunctionSpaceType >>
virtual void DGEllipticOperator< DiscreteFunction, Model, Penalty >::operator() ( const DomainDiscreteFunctionType u,
RangeDiscreteFunctionType w 
) const
inlinevirtualinherited

application operator

Implements Dune::Fem::Operator< DiscreteFunction >.

◆ operator()() [2/2]

virtual void Dune::Fem::Operator< JacobianOperator::DomainFunctionType , JacobianOperator::RangeFunctionType >::operator() ( const DomainFunctionType u,
RangeFunctionType w 
) const
pure virtualinherited

application operator

Parameters
[in]uargument discrete function
[out]wdestination discrete function
Note
This method has to be implemented by all derived classes.

◆ penalty()

template<class JacobianOperator , class Model , class Penalty = DefaultPenalty<typename JacobianOperator::DomainFunctionType::DiscreteFunctionSpaceType >>
Penalty DGEllipticOperator< DiscreteFunction, Model, Penalty >::penalty ( ) const
inlineprotected

Member Data Documentation

◆ dimDomain

template<class JacobianOperator , class Model , class Penalty = DefaultPenalty<typename JacobianOperator::DomainFunctionType::DiscreteFunctionSpaceType >>
const int DifferentiableDGEllipticOperator< JacobianOperator, Model, Penalty >::dimDomain = LocalFunctionType::dimDomain
staticprotected

◆ dimRange

template<class JacobianOperator , class Model , class Penalty = DefaultPenalty<typename JacobianOperator::DomainFunctionType::DiscreteFunctionSpaceType >>
const int DifferentiableDGEllipticOperator< JacobianOperator, Model, Penalty >::dimRange = LocalFunctionType::dimRange
staticprotected

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