dune-fem 2.8.0
Loading...
Searching...
No Matches
Public Types | Public Member Functions | List of all members
DirichletWrapperOperator< Operator, Constraints > Struct Template Referenceabstract

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

Inheritance diagram for DirichletWrapperOperator< Operator, Constraints >:
Inheritance graph

Public Types

typedef Operator::DomainFunctionType DomainFunctionType
 
typedef Operator::RangeFunctionType RangeFunctionType
 
typedef Operator::ModelType ModelType
 
typedef Operator::DirichletModelType DirichletModelType
 
typedef DomainFunctionType::DiscreteFunctionSpaceType DomainDiscreteFunctionSpaceType
 
typedef RangeFunctionType::DiscreteFunctionSpaceType RangeDiscreteFunctionSpaceType
 
typedef Operator::JacobianOperatorType JacobianOperatorType
 
typedef RangeDiscreteFunctionSpaceType::RangeType DomainRangeType
 
typedef Constraints ConstraintsType
 
typedef ConstraintsType::DirichletBlockVector DirichletBlockVector
 
typedef DomainFunctionType::RangeFieldType DomainFieldType
 field type of the operator's domain
 
typedef RangeFunctionType::RangeFieldType RangeFieldType
 field type of the operator's range
 

Public Member Functions

template<class... Args>
 DirichletWrapperOperator (Args &... args)
 
void setConstraints (DomainFunctionType &u) const
 
void setConstraints (const DomainRangeType &value, DomainFunctionType &u) const
 
template<class GF >
void setConstraints (const GF &u, RangeFunctionType &w) const
 
template<class GF >
void subConstraints (const GF &u, RangeFunctionType &w) const
 
const auto & dirichletBlocks () const
 
virtual void operator() (const DomainFunctionType &u, RangeFunctionType &w) const
 application operator
 
template<class GF >
auto operator() (const GF &u, RangeFunctionType &w) const -> Dune::void_t< decltype(std::declval< const Operator & >()(u, w))>
 
void jacobian (const DomainFunctionType &u, JacobianOperatorType &jOp) const
 
template<class GridFunctionType >
auto jacobian (const GridFunctionType &u, JacobianOperatorType &jOp) const -> Dune::void_t< decltype(std::declval< const Operator & >().jacobian(u, jOp))>
 
const DomainDiscreteFunctionSpaceTypedomainSpace () const
 
const RangeDiscreteFunctionSpaceTyperangeSpace () const
 
std::size_t gridSizeInterior () const
 
template<typename O = Operator>
auto setCommunicate (const bool commuicate) -> Dune::void_t< decltype(std::declval< O >().setCommunicate(true)) >
 
template<typename O = Operator>
auto setQuadratureOrders (unsigned int interior, unsigned int surface) -> Dune::void_t< decltype(std::declval< O >().setQuadratureOrders(0, 0)) >
 
ModelTypemodel () const
 
const ConstraintsTypeconstraints () const
 
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
 

Member Typedef Documentation

◆ ConstraintsType

template<class Operator , class Constraints = Dune::DirichletConstraints< typename Operator::ModelType, typename Operator::RangeDiscreteFunctionSpaceType >>
typedef Constraints DirichletWrapperOperator< Operator, Constraints >::ConstraintsType

◆ DirichletBlockVector

template<class Operator , class Constraints = Dune::DirichletConstraints< typename Operator::ModelType, typename Operator::RangeDiscreteFunctionSpaceType >>
typedef ConstraintsType::DirichletBlockVector DirichletWrapperOperator< Operator, Constraints >::DirichletBlockVector

◆ DirichletModelType

template<class Operator , class Constraints = Dune::DirichletConstraints< typename Operator::ModelType, typename Operator::RangeDiscreteFunctionSpaceType >>
typedef Operator::DirichletModelType DirichletWrapperOperator< Operator, Constraints >::DirichletModelType

◆ DomainDiscreteFunctionSpaceType

template<class Operator , class Constraints = Dune::DirichletConstraints< typename Operator::ModelType, typename Operator::RangeDiscreteFunctionSpaceType >>
typedef DomainFunctionType::DiscreteFunctionSpaceType DirichletWrapperOperator< Operator, Constraints >::DomainDiscreteFunctionSpaceType

◆ DomainFieldType

typedef DomainFunctionType::RangeFieldType Dune::Fem::DifferentiableOperator< Operator::JacobianOperatorType >::DomainFieldType
inherited

field type of the operator's domain

◆ DomainFunctionType

template<class Operator , class Constraints = Dune::DirichletConstraints< typename Operator::ModelType, typename Operator::RangeDiscreteFunctionSpaceType >>
typedef Operator::DomainFunctionType DirichletWrapperOperator< Operator, Constraints >::DomainFunctionType

◆ DomainRangeType

template<class Operator , class Constraints = Dune::DirichletConstraints< typename Operator::ModelType, typename Operator::RangeDiscreteFunctionSpaceType >>
typedef RangeDiscreteFunctionSpaceType::RangeType DirichletWrapperOperator< Operator, Constraints >::DomainRangeType

◆ JacobianOperatorType

template<class Operator , class Constraints = Dune::DirichletConstraints< typename Operator::ModelType, typename Operator::RangeDiscreteFunctionSpaceType >>
typedef Operator::JacobianOperatorType DirichletWrapperOperator< Operator, Constraints >::JacobianOperatorType

◆ ModelType

template<class Operator , class Constraints = Dune::DirichletConstraints< typename Operator::ModelType, typename Operator::RangeDiscreteFunctionSpaceType >>
typedef Operator::ModelType DirichletWrapperOperator< Operator, Constraints >::ModelType

◆ RangeDiscreteFunctionSpaceType

template<class Operator , class Constraints = Dune::DirichletConstraints< typename Operator::ModelType, typename Operator::RangeDiscreteFunctionSpaceType >>
typedef RangeFunctionType::DiscreteFunctionSpaceType DirichletWrapperOperator< Operator, Constraints >::RangeDiscreteFunctionSpaceType

◆ RangeFieldType

typedef RangeFunctionType::RangeFieldType Dune::Fem::DifferentiableOperator< Operator::JacobianOperatorType >::RangeFieldType
inherited

field type of the operator's range

◆ RangeFunctionType

template<class Operator , class Constraints = Dune::DirichletConstraints< typename Operator::ModelType, typename Operator::RangeDiscreteFunctionSpaceType >>
typedef Operator::RangeFunctionType DirichletWrapperOperator< Operator, Constraints >::RangeFunctionType

Constructor & Destructor Documentation

◆ DirichletWrapperOperator()

template<class Operator , class Constraints = Dune::DirichletConstraints< typename Operator::ModelType, typename Operator::RangeDiscreteFunctionSpaceType >>
template<class... Args>
DirichletWrapperOperator< Operator, Constraints >::DirichletWrapperOperator ( Args &...  args)
inline

Member Function Documentation

◆ constraints()

template<class Operator , class Constraints = Dune::DirichletConstraints< typename Operator::ModelType, typename Operator::RangeDiscreteFunctionSpaceType >>
const ConstraintsType & DirichletWrapperOperator< Operator, Constraints >::constraints ( ) const
inline

◆ dirichletBlocks()

template<class Operator , class Constraints = Dune::DirichletConstraints< typename Operator::ModelType, typename Operator::RangeDiscreteFunctionSpaceType >>
const auto & DirichletWrapperOperator< Operator, Constraints >::dirichletBlocks ( ) const
inline

◆ domainSpace()

template<class Operator , class Constraints = Dune::DirichletConstraints< typename Operator::ModelType, typename Operator::RangeDiscreteFunctionSpaceType >>
const DomainDiscreteFunctionSpaceType & DirichletWrapperOperator< Operator, Constraints >::domainSpace ( ) const
inline

◆ finalize()

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

finalization of operator

Note
The default implementation is empty.

◆ gridSizeInterior()

template<class Operator , class Constraints = Dune::DirichletConstraints< typename Operator::ModelType, typename Operator::RangeDiscreteFunctionSpaceType >>
std::size_t DirichletWrapperOperator< Operator, Constraints >::gridSizeInterior ( ) const
inline

◆ jacobian() [1/3]

template<class Operator , class Constraints = Dune::DirichletConstraints< typename Operator::ModelType, typename Operator::RangeDiscreteFunctionSpaceType >>
void DirichletWrapperOperator< Operator, Constraints >::jacobian ( const DomainFunctionType u,
JacobianOperatorType jOp 
) const
inline

◆ jacobian() [2/3]

virtual void Dune::Fem::DifferentiableOperator< Operator::JacobianOperatorType >::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.

◆ jacobian() [3/3]

template<class Operator , class Constraints = Dune::DirichletConstraints< typename Operator::ModelType, typename Operator::RangeDiscreteFunctionSpaceType >>
template<class GridFunctionType >
auto DirichletWrapperOperator< Operator, Constraints >::jacobian ( const GridFunctionType &  u,
JacobianOperatorType jOp 
) const -> Dune::void_t<decltype(std::declval<const Operator&>().jacobian(u,jOp))>
inline

◆ model()

template<class Operator , class Constraints = Dune::DirichletConstraints< typename Operator::ModelType, typename Operator::RangeDiscreteFunctionSpaceType >>
ModelType & DirichletWrapperOperator< Operator, Constraints >::model ( ) const
inline

◆ operator()() [1/3]

template<class Operator , class Constraints = Dune::DirichletConstraints< typename Operator::ModelType, typename Operator::RangeDiscreteFunctionSpaceType >>
virtual void DirichletWrapperOperator< Operator, Constraints >::operator() ( const DomainFunctionType u,
RangeFunctionType w 
) const
inlinevirtual

application operator

◆ operator()() [2/3]

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.

◆ operator()() [3/3]

template<class Operator , class Constraints = Dune::DirichletConstraints< typename Operator::ModelType, typename Operator::RangeDiscreteFunctionSpaceType >>
template<class GF >
auto DirichletWrapperOperator< Operator, Constraints >::operator() ( const GF &  u,
RangeFunctionType w 
) const -> Dune::void_t<decltype(std::declval<const Operator&>()(u,w))>
inline

◆ rangeSpace()

template<class Operator , class Constraints = Dune::DirichletConstraints< typename Operator::ModelType, typename Operator::RangeDiscreteFunctionSpaceType >>
const RangeDiscreteFunctionSpaceType & DirichletWrapperOperator< Operator, Constraints >::rangeSpace ( ) const
inline

◆ setCommunicate()

template<class Operator , class Constraints = Dune::DirichletConstraints< typename Operator::ModelType, typename Operator::RangeDiscreteFunctionSpaceType >>
template<typename O = Operator>
auto DirichletWrapperOperator< Operator, Constraints >::setCommunicate ( const bool  commuicate) -> Dune::void_t< decltype( std::declval< O >().setCommunicate(true) ) >
inline

◆ setConstraints() [1/3]

template<class Operator , class Constraints = Dune::DirichletConstraints< typename Operator::ModelType, typename Operator::RangeDiscreteFunctionSpaceType >>
void DirichletWrapperOperator< Operator, Constraints >::setConstraints ( const DomainRangeType value,
DomainFunctionType u 
) const
inline

◆ setConstraints() [2/3]

template<class Operator , class Constraints = Dune::DirichletConstraints< typename Operator::ModelType, typename Operator::RangeDiscreteFunctionSpaceType >>
template<class GF >
void DirichletWrapperOperator< Operator, Constraints >::setConstraints ( const GF &  u,
RangeFunctionType w 
) const
inline

◆ setConstraints() [3/3]

template<class Operator , class Constraints = Dune::DirichletConstraints< typename Operator::ModelType, typename Operator::RangeDiscreteFunctionSpaceType >>
void DirichletWrapperOperator< Operator, Constraints >::setConstraints ( DomainFunctionType u) const
inline

◆ setQuadratureOrders()

template<class Operator , class Constraints = Dune::DirichletConstraints< typename Operator::ModelType, typename Operator::RangeDiscreteFunctionSpaceType >>
template<typename O = Operator>
auto DirichletWrapperOperator< Operator, Constraints >::setQuadratureOrders ( unsigned int  interior,
unsigned int  surface 
) -> Dune::void_t< decltype( std::declval< O >().setQuadratureOrders(0,0) ) >
inline

◆ subConstraints()

template<class Operator , class Constraints = Dune::DirichletConstraints< typename Operator::ModelType, typename Operator::RangeDiscreteFunctionSpaceType >>
template<class GF >
void DirichletWrapperOperator< Operator, Constraints >::subConstraints ( const GF &  u,
RangeFunctionType w 
) const
inline

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