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::ModelDifferentiableGalerkinOperator< LinearOperator, ModelIntegrands > Struct Template Referenceabstract

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

Inheritance diagram for Dune::Fem::ModelDifferentiableGalerkinOperator< LinearOperator, ModelIntegrands >:
Inheritance graph

Public Types

typedef DifferentiableGalerkinOperator< ModelIntegrands, LinearOperatorBaseType
 
typedef ModelIntegrands::ModelType ModelType
 
typedef LinearOperator::DomainFunctionType RangeFunctionType
 
typedef LinearOperator::RangeSpaceType DiscreteFunctionSpaceType
 
typedef LinearOperator JacobianOperatorType
 
typedef BaseType::DomainFunctionType DomainFunctionType
 
typedef DomainFunctionType::DiscreteFunctionSpaceType DomainDiscreteFunctionSpaceType
 
typedef RangeFunctionType::DiscreteFunctionSpaceType RangeDiscreteFunctionSpaceType
 
typedef BaseType::GridPartType GridPartType
 
typedef Impl::GalerkinOperator< Integrands > GalerkinOperatorImplType
 
typedef ThreadIterator< GridPartTypeThreadIteratorType
 
typedef Integrands DirichletModelType
 
typedef DomainFunction::RangeFieldType DomainFieldType
 field type of the operator's domain
 
typedef DomainFunctionType::RangeFieldType DomainFieldType
 field type of the operator's domain
 
typedef RangeFunction::RangeFieldType RangeFieldType
 field type of the operator's range
 
typedef RangeFunctionType::RangeFieldType RangeFieldType
 field type of the operator's range
 

Public Member Functions

 ModelDifferentiableGalerkinOperator (ModelType &model, const DiscreteFunctionSpaceType &dfSpace)
 
template<class GridFunction >
void apply (const GridFunction &u, RangeFunctionType &w) const
 
template<class GridFunction >
void apply (const GridFunction &u, LinearOperator &jOp) const
 
virtual void jacobian (const DomainFunctionType &u, JacobianOperatorType &jOp) const final override
 obtain linearization
 
void jacobian (const GridFunction &u, JacobianOperatorType &jOp) const
 
virtual void jacobian (const DomainFunctionType &u, JacobianOperatorType &jOp) const =0
 obtain linearization
 
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
 
template<class GridFunction >
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 finalize ()
 finalization of operator
 

Protected Member Functions

void prepare (JacobianOperatorType &jOp) const
 
void assemble (const GridFunction &u, JacobianOperatorType &jOp) const
 
std::size_t gatherGridSizeInterior () const
 
template<class GridFunction >
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

◆ BaseType

template<class LinearOperator , class ModelIntegrands >
typedef DifferentiableGalerkinOperator< ModelIntegrands, LinearOperator > Dune::Fem::ModelDifferentiableGalerkinOperator< LinearOperator, ModelIntegrands >::BaseType

◆ DirichletModelType

template<class Integrands , class DomainFunction , class RangeFunction = DomainFunction>
typedef Integrands Dune::Fem::GalerkinOperator< Integrands, DomainFunction, RangeFunction >::DirichletModelType
inherited

◆ DiscreteFunctionSpaceType

template<class LinearOperator , class ModelIntegrands >
typedef LinearOperator::RangeSpaceType Dune::Fem::ModelDifferentiableGalerkinOperator< LinearOperator, ModelIntegrands >::DiscreteFunctionSpaceType

◆ DomainDiscreteFunctionSpaceType

typedef DomainFunctionType::DiscreteFunctionSpaceType Dune::Fem::DifferentiableGalerkinOperator< ModelIntegrands , LinearOperator >::DomainDiscreteFunctionSpaceType
inherited

◆ 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

typedef BaseType::DomainFunctionType Dune::Fem::DifferentiableGalerkinOperator< ModelIntegrands , LinearOperator >::DomainFunctionType
inherited

◆ GalerkinOperatorImplType

template<class Integrands , class DomainFunction , class RangeFunction = DomainFunction>
typedef Impl::GalerkinOperator< Integrands > Dune::Fem::GalerkinOperator< Integrands, DomainFunction, RangeFunction >::GalerkinOperatorImplType
inherited

◆ GridPartType

typedef BaseType::GridPartType Dune::Fem::DifferentiableGalerkinOperator< ModelIntegrands , LinearOperator >::GridPartType
inherited

◆ JacobianOperatorType

typedef LinearOperator Dune::Fem::DifferentiableGalerkinOperator< ModelIntegrands , LinearOperator >::JacobianOperatorType
inherited

◆ ModelType

template<class LinearOperator , class ModelIntegrands >
typedef ModelIntegrands::ModelType Dune::Fem::ModelDifferentiableGalerkinOperator< LinearOperator, ModelIntegrands >::ModelType

◆ RangeDiscreteFunctionSpaceType

typedef RangeFunctionType::DiscreteFunctionSpaceType Dune::Fem::DifferentiableGalerkinOperator< ModelIntegrands , LinearOperator >::RangeDiscreteFunctionSpaceType
inherited

◆ 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 LinearOperator , class ModelIntegrands >
typedef LinearOperator::DomainFunctionType Dune::Fem::ModelDifferentiableGalerkinOperator< LinearOperator, ModelIntegrands >::RangeFunctionType

◆ ThreadIteratorType

template<class Integrands , class DomainFunction , class RangeFunction = DomainFunction>
typedef ThreadIterator< GridPartType > Dune::Fem::GalerkinOperator< Integrands, DomainFunction, RangeFunction >::ThreadIteratorType
inherited

Constructor & Destructor Documentation

◆ ModelDifferentiableGalerkinOperator()

template<class LinearOperator , class ModelIntegrands >
Dune::Fem::ModelDifferentiableGalerkinOperator< LinearOperator, ModelIntegrands >::ModelDifferentiableGalerkinOperator ( ModelType model,
const DiscreteFunctionSpaceType dfSpace 
)
inline

Member Function Documentation

◆ apply() [1/2]

template<class LinearOperator , class ModelIntegrands >
template<class GridFunction >
void Dune::Fem::ModelDifferentiableGalerkinOperator< LinearOperator, ModelIntegrands >::apply ( const GridFunction &  u,
LinearOperator jOp 
) const
inline

◆ apply() [2/2]

template<class LinearOperator , class ModelIntegrands >
template<class GridFunction >
void Dune::Fem::ModelDifferentiableGalerkinOperator< LinearOperator, ModelIntegrands >::apply ( const GridFunction &  u,
RangeFunctionType w 
) const
inline

◆ assemble()

void Dune::Fem::DifferentiableGalerkinOperator< ModelIntegrands , LinearOperator >::assemble ( const GridFunction &  u,
JacobianOperatorType jOp 
) const
inlineprotectedinherited

◆ domainSpace()

const DomainDiscreteFunctionSpaceType & Dune::Fem::DifferentiableGalerkinOperator< ModelIntegrands , LinearOperator >::domainSpace ( ) const
inlineinherited

◆ evaluate()

template<class Integrands , class DomainFunction , class RangeFunction = DomainFunction>
template<class GridFunction >
void Dune::Fem::GalerkinOperator< Integrands, DomainFunction, RangeFunction >::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()

std::size_t Dune::Fem::GalerkinOperator< ModelIntegrands , DomainFunction, RangeFunction >::gatherGridSizeInterior ( ) const
inlineprotectedinherited

◆ gridPart()

template<class Integrands , class DomainFunction , class RangeFunction = DomainFunction>
const GridPartType & Dune::Fem::GalerkinOperator< Integrands, DomainFunction, RangeFunction >::gridPart ( ) const
inlineinherited

◆ gridSizeInterior()

template<class Integrands , class DomainFunction , class RangeFunction = DomainFunction>
std::size_t Dune::Fem::GalerkinOperator< Integrands, DomainFunction, RangeFunction >::gridSizeInterior ( ) const
inlineinherited

◆ impl()

const GalerkinOperatorImplType & Dune::Fem::GalerkinOperator< ModelIntegrands , DomainFunction, RangeFunction >::impl ( ) const
inlineinherited

◆ jacobian() [1/3]

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 >.

◆ jacobian() [2/3]

virtual void Dune::Fem::DifferentiableGalerkinOperator< ModelIntegrands , LinearOperator >::jacobian ( const DomainFunctionType u,
JacobianOperatorType jOp 
) const
inlinefinaloverridevirtualinherited

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]

void Dune::Fem::DifferentiableGalerkinOperator< ModelIntegrands , LinearOperator >::jacobian ( const GridFunction &  u,
JacobianOperatorType jOp 
) const
inlineinherited

◆ model()

template<class Integrands , class DomainFunction , class RangeFunction = DomainFunction>
ModelType & Dune::Fem::GalerkinOperator< Integrands, DomainFunction, RangeFunction >::model ( ) const
inlineinherited

◆ operator()() [1/3]

template<class Integrands , class DomainFunction , class RangeFunction = DomainFunction>
virtual void Dune::Fem::GalerkinOperator< Integrands, DomainFunction, RangeFunction >::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.

Implements Dune::Fem::Operator< DomainFunction, RangeFunction >.

◆ 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 Integrands , class DomainFunction , class RangeFunction = DomainFunction>
template<class GridFunction >
void Dune::Fem::GalerkinOperator< Integrands, DomainFunction, RangeFunction >::operator() ( const GridFunction &  u,
RangeFunctionType w 
) const
inlineinherited

◆ prepare()

void Dune::Fem::DifferentiableGalerkinOperator< ModelIntegrands , LinearOperator >::prepare ( JacobianOperatorType jOp) const
inlineprotectedinherited

◆ rangeSpace()

const RangeDiscreteFunctionSpaceType & Dune::Fem::DifferentiableGalerkinOperator< ModelIntegrands , LinearOperator >::rangeSpace ( ) const
inlineinherited

◆ setCommunicate()

template<class Integrands , class DomainFunction , class RangeFunction = DomainFunction>
void Dune::Fem::GalerkinOperator< Integrands, DomainFunction, RangeFunction >::setCommunicate ( const bool  communicate)
inlineinherited

◆ setQuadratureOrders()

template<class Integrands , class DomainFunction , class RangeFunction = DomainFunction>
void Dune::Fem::GalerkinOperator< Integrands, DomainFunction, RangeFunction >::setQuadratureOrders ( unsigned int  interior,
unsigned int  surface 
)
inlineinherited

Member Data Documentation

◆ communicate_

template<class Integrands , class DomainFunction , class RangeFunction = DomainFunction>
bool Dune::Fem::GalerkinOperator< Integrands, DomainFunction, RangeFunction >::communicate_
protectedinherited

◆ domainSpaceSequence_

int Dune::Fem::DifferentiableGalerkinOperator< ModelIntegrands , LinearOperator >::domainSpaceSequence_
mutableprotectedinherited

◆ dSpace_

const DomainDiscreteFunctionSpaceType& Dune::Fem::DifferentiableGalerkinOperator< ModelIntegrands , LinearOperator >::dSpace_
protectedinherited

◆ gridSizeInterior_

std::size_t Dune::Fem::GalerkinOperator< ModelIntegrands , DomainFunction, RangeFunction >::gridSizeInterior_
mutableprotectedinherited

◆ impl_

template<class Integrands , class DomainFunction , class RangeFunction = DomainFunction>
ThreadSafeValue< GalerkinOperatorImplType > Dune::Fem::GalerkinOperator< Integrands, DomainFunction, RangeFunction >::impl_
protectedinherited

◆ iterators_

ThreadIteratorType Dune::Fem::GalerkinOperator< ModelIntegrands , DomainFunction, RangeFunction >::iterators_
mutableprotectedinherited

◆ rangeSpaceSequence_

int Dune::Fem::DifferentiableGalerkinOperator< ModelIntegrands , LinearOperator >::rangeSpaceSequence_
protectedinherited

◆ rSpace_

const RangeDiscreteFunctionSpaceType& Dune::Fem::DifferentiableGalerkinOperator< ModelIntegrands , LinearOperator >::rSpace_
protectedinherited

◆ stencilD_

◆ stencilDAN_


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