dune-fem 2.8.0
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
Dune::Fem::DifferentiableGalerkinOperator< Integrands, JacobianOperator > Class Template Referenceabstract

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

Inheritance diagram for Dune::Fem::DifferentiableGalerkinOperator< Integrands, JacobianOperator >:
Inheritance graph

Public Types

typedef JacobianOperator JacobianOperatorType
 
typedef BaseType::DomainFunctionType DomainFunctionType
 
typedef BaseType::RangeFunctionType RangeFunctionType
 
typedef DomainFunctionType::DiscreteFunctionSpaceType DomainDiscreteFunctionSpaceType
 
typedef RangeFunctionType::DiscreteFunctionSpaceType RangeDiscreteFunctionSpaceType
 
typedef BaseType::GridPartType GridPartType
 
typedef Impl::GalerkinOperator< Integrands > GalerkinOperatorImplType
 
typedef ThreadIterator< GridPartTypeThreadIteratorType
 
typedef Integrands ModelType
 
typedef Integrands DirichletModelType
 
typedef DomainFunction::RangeFieldType DomainFieldType
 field type of the operator's domain
 
typedef RangeFunction::RangeFieldType RangeFieldType
 field type of the operator's range
 
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>
 DifferentiableGalerkinOperator (const DomainDiscreteFunctionSpaceType &dSpace, const RangeDiscreteFunctionSpaceType &rSpace, Args &&... args)
 
virtual void jacobian (const DomainFunctionType &u, JacobianOperatorType &jOp) const final override
 obtain linearization
 
template<class GridFunction >
void jacobian (const GridFunction &u, JacobianOperatorType &jOp) const
 
const DomainDiscreteFunctionSpaceTypedomainSpace () const
 
const RangeDiscreteFunctionSpaceTyperangeSpace () const
 
const GalerkinOperatorImplTypeimpl () const
 
void setCommunicate (const bool communicate)
 
void setQuadratureOrders (unsigned int interior, unsigned int surface)
 
virtual void operator() (const DomainFunctionType &u, RangeFunctionType &w) const final override
 application operator
 
void operator() (const GridFunction &u, RangeFunctionType &w) const
 
virtual void operator() (const DomainFunctionType &u, RangeFunctionType &w) const =0
 application operator
 
const GridPartTypegridPart () const
 
ModelTypemodel () const
 
std::size_t gridSizeInterior () const
 
virtual void finalize ()
 finalization of operator
 
virtual void operator() (const DomainFunctionType &u, RangeFunctionType &w) const=0
 application operator
 
virtual void finalize ()
 finalization of operator
 

Protected Member Functions

void prepare (JacobianOperatorType &jOp) const
 
template<class GridFunction >
void assemble (const GridFunction &u, JacobianOperatorType &jOp) const
 
std::size_t gatherGridSizeInterior () const
 
void evaluate (const GridFunction &u, RangeFunctionType &w) const
 

Protected Attributes

const DomainDiscreteFunctionSpaceTypedSpace_
 
const RangeDiscreteFunctionSpaceTyperSpace_
 
DiagonalAndNeighborStencil< DomainDiscreteFunctionSpaceType, RangeDiscreteFunctionSpaceTypestencilDAN_
 
DiagonalStencil< DomainDiscreteFunctionSpaceType, RangeDiscreteFunctionSpaceTypestencilD_
 
int domainSpaceSequence_
 
int rangeSpaceSequence_
 
ThreadIteratorType iterators_
 
std::size_t gridSizeInterior_
 
ThreadSafeValue< GalerkinOperatorImplTypeimpl_
 
bool communicate_
 

Member Typedef Documentation

◆ DirichletModelType

typedef Integrands Dune::Fem::GalerkinOperator< Integrands, JacobianOperator::DomainFunctionType , JacobianOperator::RangeFunctionType >::DirichletModelType
inherited

◆ DomainDiscreteFunctionSpaceType

template<class Integrands , class JacobianOperator >
typedef DomainFunctionType::DiscreteFunctionSpaceType Dune::Fem::DifferentiableGalerkinOperator< Integrands, JacobianOperator >::DomainDiscreteFunctionSpaceType

◆ 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]

template<class DomainFunction , class RangeFunction = DomainFunction>
typedef DomainFunction::RangeFieldType Dune::Fem::Operator< DomainFunction, RangeFunction >::DomainFieldType
inherited

field type of the operator's domain

◆ DomainFunctionType

template<class Integrands , class JacobianOperator >
typedef BaseType::DomainFunctionType Dune::Fem::DifferentiableGalerkinOperator< Integrands, JacobianOperator >::DomainFunctionType

◆ GalerkinOperatorImplType

typedef Impl::GalerkinOperator< Integrands > Dune::Fem::GalerkinOperator< Integrands, JacobianOperator::DomainFunctionType , JacobianOperator::RangeFunctionType >::GalerkinOperatorImplType
inherited

◆ GridPartType

template<class Integrands , class JacobianOperator >
typedef BaseType::GridPartType Dune::Fem::DifferentiableGalerkinOperator< Integrands, JacobianOperator >::GridPartType

◆ JacobianOperatorType

template<class Integrands , class JacobianOperator >
typedef JacobianOperator Dune::Fem::DifferentiableGalerkinOperator< Integrands, JacobianOperator >::JacobianOperatorType

◆ ModelType

typedef Integrands Dune::Fem::GalerkinOperator< Integrands, JacobianOperator::DomainFunctionType , JacobianOperator::RangeFunctionType >::ModelType
inherited

◆ RangeDiscreteFunctionSpaceType

template<class Integrands , class JacobianOperator >
typedef RangeFunctionType::DiscreteFunctionSpaceType Dune::Fem::DifferentiableGalerkinOperator< Integrands, JacobianOperator >::RangeDiscreteFunctionSpaceType

◆ RangeFieldType [1/2]

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

field type of the operator's range

◆ RangeFieldType [2/2]

template<class DomainFunction , class RangeFunction = DomainFunction>
typedef RangeFunction::RangeFieldType Dune::Fem::Operator< DomainFunction, RangeFunction >::RangeFieldType
inherited

field type of the operator's range

◆ RangeFunctionType

template<class Integrands , class JacobianOperator >
typedef BaseType::RangeFunctionType Dune::Fem::DifferentiableGalerkinOperator< Integrands, JacobianOperator >::RangeFunctionType

◆ ThreadIteratorType

typedef ThreadIterator< GridPartType > Dune::Fem::GalerkinOperator< Integrands, JacobianOperator::DomainFunctionType , JacobianOperator::RangeFunctionType >::ThreadIteratorType
inherited

Constructor & Destructor Documentation

◆ DifferentiableGalerkinOperator()

template<class Integrands , class JacobianOperator >
template<class... Args>
Dune::Fem::DifferentiableGalerkinOperator< Integrands, JacobianOperator >::DifferentiableGalerkinOperator ( const DomainDiscreteFunctionSpaceType dSpace,
const RangeDiscreteFunctionSpaceType rSpace,
Args &&...  args 
)
inlineexplicit

Member Function Documentation

◆ assemble()

template<class Integrands , class JacobianOperator >
template<class GridFunction >
void Dune::Fem::DifferentiableGalerkinOperator< Integrands, JacobianOperator >::assemble ( const GridFunction &  u,
JacobianOperatorType jOp 
) const
inlineprotected

◆ domainSpace()

template<class Integrands , class JacobianOperator >
const DomainDiscreteFunctionSpaceType & Dune::Fem::DifferentiableGalerkinOperator< Integrands, JacobianOperator >::domainSpace ( ) const
inline

◆ evaluate()

void Dune::Fem::GalerkinOperator< Integrands, JacobianOperator::DomainFunctionType , JacobianOperator::RangeFunctionType >::evaluate ( const GridFunction &  u,
RangeFunctionType w 
) const
inlineprotectedinherited

◆ finalize() [1/2]

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

finalization of operator

Note
The default implementation is empty.

◆ finalize() [2/2]

template<class DomainFunction , class RangeFunction = DomainFunction>
virtual void Dune::Fem::Operator< DomainFunction, RangeFunction >::finalize ( )
inlinevirtualinherited

finalization of operator

Note
The default implementation is empty.

Reimplemented in Dune::Fem::SparseRowLinearOperator< DomainFunction, RangeFunction, Matrix >.

◆ gatherGridSizeInterior()

template<class Integrands , class JacobianOperator >
std::size_t Dune::Fem::GalerkinOperator< Integrands, DomainFunction, RangeFunction >::gatherGridSizeInterior ( ) const
inlineprotected

◆ gridPart()

const GridPartType & Dune::Fem::GalerkinOperator< Integrands, JacobianOperator::DomainFunctionType , JacobianOperator::RangeFunctionType >::gridPart ( ) const
inlineinherited

◆ gridSizeInterior()

std::size_t Dune::Fem::GalerkinOperator< Integrands, JacobianOperator::DomainFunctionType , JacobianOperator::RangeFunctionType >::gridSizeInterior ( ) const
inlineinherited

◆ impl()

template<class Integrands , class JacobianOperator >
const GalerkinOperatorImplType & Dune::Fem::GalerkinOperator< Integrands, DomainFunction, RangeFunction >::impl ( ) const
inline

◆ jacobian() [1/2]

template<class Integrands , class JacobianOperator >
virtual void Dune::Fem::DifferentiableGalerkinOperator< Integrands, JacobianOperator >::jacobian ( const DomainFunctionType u,
JacobianOperatorType jOp 
) const
inlinefinaloverridevirtual

obtain linearization

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

Implements Dune::Fem::DifferentiableOperator< JacobianOperator >.

◆ jacobian() [2/2]

template<class Integrands , class JacobianOperator >
template<class GridFunction >
void Dune::Fem::DifferentiableGalerkinOperator< Integrands, JacobianOperator >::jacobian ( const GridFunction &  u,
JacobianOperatorType jOp 
) const
inline

◆ model()

ModelType & Dune::Fem::GalerkinOperator< Integrands, JacobianOperator::DomainFunctionType , JacobianOperator::RangeFunctionType >::model ( ) const
inlineinherited

◆ operator()() [1/4]

template<class DomainFunction , class RangeFunction = DomainFunction>
virtual void Dune::Fem::Operator< DomainFunction, RangeFunction >::operator() ( const DomainFunctionType u,
RangeFunctionType w 
) const
pure virtualinherited

◆ operator()() [2/4]

virtual void Dune::Fem::GalerkinOperator< Integrands, JacobianOperator::DomainFunctionType , JacobianOperator::RangeFunctionType >::operator() ( const DomainFunctionType u,
RangeFunctionType w 
) const
inlinefinaloverridevirtualinherited

application operator

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

◆ operator()() [3/4]

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()() [4/4]

void Dune::Fem::GalerkinOperator< Integrands, JacobianOperator::DomainFunctionType , JacobianOperator::RangeFunctionType >::operator() ( const GridFunction &  u,
RangeFunctionType w 
) const
inlineinherited

◆ prepare()

template<class Integrands , class JacobianOperator >
void Dune::Fem::DifferentiableGalerkinOperator< Integrands, JacobianOperator >::prepare ( JacobianOperatorType jOp) const
inlineprotected

◆ rangeSpace()

template<class Integrands , class JacobianOperator >
const RangeDiscreteFunctionSpaceType & Dune::Fem::DifferentiableGalerkinOperator< Integrands, JacobianOperator >::rangeSpace ( ) const
inline

◆ setCommunicate()

void Dune::Fem::GalerkinOperator< Integrands, JacobianOperator::DomainFunctionType , JacobianOperator::RangeFunctionType >::setCommunicate ( const bool  communicate)
inlineinherited

◆ setQuadratureOrders()

void Dune::Fem::GalerkinOperator< Integrands, JacobianOperator::DomainFunctionType , JacobianOperator::RangeFunctionType >::setQuadratureOrders ( unsigned int  interior,
unsigned int  surface 
)
inlineinherited

Member Data Documentation

◆ communicate_

bool Dune::Fem::GalerkinOperator< Integrands, JacobianOperator::DomainFunctionType , JacobianOperator::RangeFunctionType >::communicate_
protectedinherited

◆ domainSpaceSequence_

template<class Integrands , class JacobianOperator >
int Dune::Fem::DifferentiableGalerkinOperator< Integrands, JacobianOperator >::domainSpaceSequence_
mutableprotected

◆ dSpace_

template<class Integrands , class JacobianOperator >
const DomainDiscreteFunctionSpaceType& Dune::Fem::DifferentiableGalerkinOperator< Integrands, JacobianOperator >::dSpace_
protected

◆ gridSizeInterior_

template<class Integrands , class JacobianOperator >
std::size_t Dune::Fem::GalerkinOperator< Integrands, DomainFunction, RangeFunction >::gridSizeInterior_
mutableprotected

◆ impl_

ThreadSafeValue< GalerkinOperatorImplType > Dune::Fem::GalerkinOperator< Integrands, JacobianOperator::DomainFunctionType , JacobianOperator::RangeFunctionType >::impl_
protectedinherited

◆ iterators_

template<class Integrands , class JacobianOperator >
ThreadIteratorType Dune::Fem::GalerkinOperator< Integrands, DomainFunction, RangeFunction >::iterators_
mutableprotected

◆ rangeSpaceSequence_

template<class Integrands , class JacobianOperator >
int Dune::Fem::DifferentiableGalerkinOperator< Integrands, JacobianOperator >::rangeSpaceSequence_
protected

◆ rSpace_

template<class Integrands , class JacobianOperator >
const RangeDiscreteFunctionSpaceType& Dune::Fem::DifferentiableGalerkinOperator< Integrands, JacobianOperator >::rSpace_
protected

◆ stencilD_

template<class Integrands , class JacobianOperator >
DiagonalStencil< DomainDiscreteFunctionSpaceType, RangeDiscreteFunctionSpaceType > Dune::Fem::DifferentiableGalerkinOperator< Integrands, JacobianOperator >::stencilD_
mutableprotected

◆ stencilDAN_

template<class Integrands , class JacobianOperator >
DiagonalAndNeighborStencil< DomainDiscreteFunctionSpaceType, RangeDiscreteFunctionSpaceType > Dune::Fem::DifferentiableGalerkinOperator< Integrands, JacobianOperator >::stencilDAN_
mutableprotected

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