dune-fem 2.12-git
Loading...
Searching...
No Matches
Dune::Fem::MassLumpingDifferentiableOperator< Integrands, MassIntegrands, JacobianOperator > Class Template Referenceabstract

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

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

Public Types

typedef BaseType::LocalGalerkinOperatorImplType LocalGalerkinOperatorImplType
 
typedef BaseType::MassOperatorImplType MassOperatorImplType
 
typedef JacobianOperator JacobianOperatorType
 
typedef BaseType::DomainFunctionType DomainFunctionType
 
typedef BaseType::RangeFunctionType RangeFunctionType
 
typedef DomainFunctionType::DiscreteFunctionSpaceType DomainDiscreteFunctionSpaceType
 
typedef RangeFunctionType::DiscreteFunctionSpaceType RangeDiscreteFunctionSpaceType
 
typedef DiagonalAndNeighborStencil< DomainDiscreteFunctionSpaceType, RangeDiscreteFunctionSpaceTypeDiagonalAndNeighborStencilType
 
typedef DiagonalStencil< DomainDiscreteFunctionSpaceType, RangeDiscreteFunctionSpaceTypeDiagonalStencilType
 
typedef BaseType::GridPartType GridPartType
 
typedef ThreadIterator< GridPartTypeThreadIteratorType
 
typedef Impl::GalerkinOperator< GridPartTypeGalerkinOperatorImplType
 
typedef RangeFunctionType::DiscreteFunctionSpaceType DiscreteFunctionSpaceType
 
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>
 MassLumpingDifferentiableOperator (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 RangeDiscreteFunctionSpaceTypespace () const
 
const GridPartTypegridPart () const
 
const LocalGalerkinOperatorImplTypelocalOperator () const
 return local operator holding instance of integrands
 
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
 
ModelTypemodel () const
 
const LocalGalerkinOperatorImplTypeimpl () const
 
std::size_t gridSizeInterior () const
 
virtual void finalize ()
 finalization of operator
 
virtual bool nonlinear () const
 
virtual void operator() (const DomainFunctionType &u, RangeFunctionType &w) const=0
 application operator
 
virtual void finalize ()
 finalization of operator
 
virtual bool nonlinear () const
 

Protected Member Functions

bool hasSkeleton () const
 
void prepare (JacobianOperatorType &jOp) const
 
template<class GridFunction >
void assemble (const GridFunction &u, JacobianOperatorType &jOp) const
 
const GalerkinOperatorImplTypeop () const
 
const MassOperatorImplTypemass () const
 
void evaluate (const GridFunction &u, RangeFunctionType &w) const
 

Protected Attributes

const DomainDiscreteFunctionSpaceTypedSpace_
 
const RangeDiscreteFunctionSpaceTyperSpace_
 
int domainSpaceSequence_
 
int rangeSpaceSequence_
 
std::unique_ptr< DiagonalAndNeighborStencilTypestencilDAN_
 
std::unique_ptr< DiagonalStencilTypestencilD_
 
ThreadIteratorType iterators_
 
std::size_t gridSizeInterior_
 
ThreadSafeValue< GalerkinOperatorImplTypeopImpl_
 
ThreadSafeValue< LocalGalerkinOperatorImplTypelocalOp_
 
ThreadSafeValue< MassOperatorImplTypemass_
 
bool communicate_
 

Member Typedef Documentation

◆ DiagonalAndNeighborStencilType

template<class Integrands , class MassIntegrands , class JacobianOperator >
typedef DiagonalAndNeighborStencil< DomainDiscreteFunctionSpaceType, RangeDiscreteFunctionSpaceType > Dune::Fem::MassLumpingDifferentiableOperator< Integrands, MassIntegrands, JacobianOperator >::DiagonalAndNeighborStencilType

◆ DiagonalStencilType

template<class Integrands , class MassIntegrands , class JacobianOperator >
typedef DiagonalStencil< DomainDiscreteFunctionSpaceType, RangeDiscreteFunctionSpaceType > Dune::Fem::MassLumpingDifferentiableOperator< Integrands, MassIntegrands, JacobianOperator >::DiagonalStencilType

◆ DirichletModelType

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

◆ DiscreteFunctionSpaceType

typedef RangeFunctionType::DiscreteFunctionSpaceType Dune::Fem::MassLumpingOperator< Integrands, MassIntegrands, JacobianOperator::DomainFunctionType , JacobianOperator::RangeFunctionType >::DiscreteFunctionSpaceType
inherited

◆ DomainDiscreteFunctionSpaceType

template<class Integrands , class MassIntegrands , class JacobianOperator >
typedef DomainFunctionType::DiscreteFunctionSpaceType Dune::Fem::MassLumpingDifferentiableOperator< Integrands, MassIntegrands, 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 MassIntegrands , class JacobianOperator >
typedef BaseType::DomainFunctionType Dune::Fem::MassLumpingDifferentiableOperator< Integrands, MassIntegrands, JacobianOperator >::DomainFunctionType

◆ GalerkinOperatorImplType

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

◆ GridPartType

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

◆ JacobianOperatorType

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

◆ LocalGalerkinOperatorImplType

template<class Integrands , class MassIntegrands , class JacobianOperator >
typedef BaseType::LocalGalerkinOperatorImplType Dune::Fem::MassLumpingDifferentiableOperator< Integrands, MassIntegrands, JacobianOperator >::LocalGalerkinOperatorImplType

◆ MassOperatorImplType

template<class Integrands , class MassIntegrands , class JacobianOperator >
typedef BaseType::MassOperatorImplType Dune::Fem::MassLumpingDifferentiableOperator< Integrands, MassIntegrands, JacobianOperator >::MassOperatorImplType

◆ ModelType

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

◆ RangeDiscreteFunctionSpaceType

template<class Integrands , class MassIntegrands , class JacobianOperator >
typedef RangeFunctionType::DiscreteFunctionSpaceType Dune::Fem::MassLumpingDifferentiableOperator< Integrands, MassIntegrands, 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 MassIntegrands , class JacobianOperator >
typedef BaseType::RangeFunctionType Dune::Fem::MassLumpingDifferentiableOperator< Integrands, MassIntegrands, JacobianOperator >::RangeFunctionType

◆ ThreadIteratorType

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

Constructor & Destructor Documentation

◆ MassLumpingDifferentiableOperator()

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

Member Function Documentation

◆ assemble()

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

◆ domainSpace()

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

◆ evaluate()

void Dune::Fem::MassLumpingOperator< Integrands, MassIntegrands, 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 >.

◆ gridPart()

template<class Integrands , class MassIntegrands , class JacobianOperator >
const GridPartType & Dune::Fem::MassLumpingOperator< Integrands, MassIntegrands, DomainFunction, RangeFunction >::gridPart ( ) const
inline

◆ gridSizeInterior()

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

◆ hasSkeleton()

template<class Integrands , class MassIntegrands , class JacobianOperator >
bool Dune::Fem::MassLumpingDifferentiableOperator< Integrands, MassIntegrands, JacobianOperator >::hasSkeleton ( ) const
inlineprotected

◆ impl()

const LocalGalerkinOperatorImplType & Dune::Fem::MassLumpingOperator< Integrands, MassIntegrands, JacobianOperator::DomainFunctionType , JacobianOperator::RangeFunctionType >::impl ( ) const
inlineinherited

◆ jacobian() [1/2]

template<class Integrands , class MassIntegrands , class JacobianOperator >
virtual void Dune::Fem::MassLumpingDifferentiableOperator< Integrands, MassIntegrands, 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 MassIntegrands , class JacobianOperator >
template<class GridFunction >
void Dune::Fem::MassLumpingDifferentiableOperator< Integrands, MassIntegrands, JacobianOperator >::jacobian ( const GridFunction &  u,
JacobianOperatorType jOp 
) const
inline

◆ localOperator()

template<class Integrands , class MassIntegrands , class JacobianOperator >
const LocalGalerkinOperatorImplType & Dune::Fem::MassLumpingOperator< Integrands, MassIntegrands, DomainFunction, RangeFunction >::localOperator ( ) const
inline

return local operator holding instance of integrands

◆ mass()

template<class Integrands , class MassIntegrands , class JacobianOperator >
const MassOperatorImplType & Dune::Fem::MassLumpingOperator< Integrands, MassIntegrands, DomainFunction, RangeFunction >::mass ( ) const
inlineprotected

◆ model()

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

◆ nonlinear() [1/2]

virtual bool Dune::Fem::Operator< JacobianOperator::DomainFunctionType , JacobianOperator::RangeFunctionType >::nonlinear ( ) const
inlinevirtualinherited

◆ nonlinear() [2/2]

◆ op()

template<class Integrands , class MassIntegrands , class JacobianOperator >
const GalerkinOperatorImplType & Dune::Fem::MassLumpingOperator< Integrands, MassIntegrands, DomainFunction, RangeFunction >::op ( ) const
inlineprotected

◆ 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

application operator

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

Implemented in Dune::Fem::DiagonalPreconditionerBase< DFImp, OperatorImp, assembled >, Dune::Fem::DiagonalPreconditionerBase< DFImp, Operator, std::is_base_of< AssembledOperator< DFImp, DFImp >, Operator > ::value >, Dune::Fem::DiagonalPreconditionerBase< DFImp, OperatorImp, true >, Dune::Fem::FemPreconditioningBase< DFImp, OperatorImp, method, assembled >, Dune::Fem::FemPreconditioningBase< DFImp, Operator, method, std::is_base_of< AssembledOperator< DFImp, DFImp >, Operator > ::value >, Dune::Fem::FemPreconditioningBase< DFImp, OperatorImp, method, true >, DGEllipticOperator< DiscreteFunction, Model, Penalty >, Dune::Fem::NumpyLinearOperator< DomainFunction, RangeFunction >, Dune::Fem::SparseRowLinearOperator< DomainFunction, RangeFunction, Matrix >, Dune::Fem::DenseRowLinearOperator< DomainFunction, RangeFunction >, Dune::Fem::HierarchicalLinearOperator< DomainFunction, RangeFunction >, Dune::Fem::Solver::CGInverseOperator< DiscreteFunction >, Dune::Fem::PreconditionerFunctionWrapper< DomainFunction, RangeFunction >, Dune::Fem::BlockDiagonalLinearOperator< DiscreteFunctionSpace, LocalBlock >, EllipticOperator< DomainDiscreteFunction, RangeDiscreteFunction, Model >, Dune::Fem::GalerkinOperator< Integrands, DomainFunction, RangeFunction >, Dune::Fem::GalerkinOperator< Integrands, DomainFunction, RangeFunction >, Dune::Fem::MassLumpingOperator< Integrands, MassIntegrands, DomainFunction, RangeFunction >, Dune::Fem::MOLGalerkinOperator< Integrands, DomainFunction, RangeFunction >, Dune::Fem::MOLGalerkinOperator< Integrands, DomainFunction, RangeFunction >, and Dune::Fem::VtxProjection< DType, RType >.

◆ operator()() [2/4]

virtual void Dune::Fem::MassLumpingOperator< Integrands, MassIntegrands, 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::MassLumpingOperator< Integrands, MassIntegrands, JacobianOperator::DomainFunctionType , JacobianOperator::RangeFunctionType >::operator() ( const GridFunction &  u,
RangeFunctionType w 
) const
inlineinherited

◆ prepare()

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

◆ rangeSpace()

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

◆ setCommunicate()

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

◆ setQuadratureOrders()

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

◆ space()

template<class Integrands , class MassIntegrands , class JacobianOperator >
const RangeDiscreteFunctionSpaceType & Dune::Fem::MassLumpingDifferentiableOperator< Integrands, MassIntegrands, JacobianOperator >::space ( ) const
inline

Member Data Documentation

◆ communicate_

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

◆ domainSpaceSequence_

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

◆ dSpace_

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

◆ gridSizeInterior_

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

◆ iterators_

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

◆ localOp_

ThreadSafeValue< LocalGalerkinOperatorImplType > Dune::Fem::MassLumpingOperator< Integrands, MassIntegrands, JacobianOperator::DomainFunctionType , JacobianOperator::RangeFunctionType >::localOp_
protectedinherited

◆ mass_

ThreadSafeValue< MassOperatorImplType > Dune::Fem::MassLumpingOperator< Integrands, MassIntegrands, JacobianOperator::DomainFunctionType , JacobianOperator::RangeFunctionType >::mass_
protectedinherited

◆ opImpl_

ThreadSafeValue< GalerkinOperatorImplType > Dune::Fem::MassLumpingOperator< Integrands, MassIntegrands, JacobianOperator::DomainFunctionType , JacobianOperator::RangeFunctionType >::opImpl_
protectedinherited

◆ rangeSpaceSequence_

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

◆ rSpace_

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

◆ stencilD_

template<class Integrands , class MassIntegrands , class JacobianOperator >
std::unique_ptr< DiagonalStencilType > Dune::Fem::MassLumpingDifferentiableOperator< Integrands, MassIntegrands, JacobianOperator >::stencilD_
mutableprotected

◆ stencilDAN_

template<class Integrands , class MassIntegrands , class JacobianOperator >
std::unique_ptr< DiagonalAndNeighborStencilType > Dune::Fem::MassLumpingDifferentiableOperator< Integrands, MassIntegrands, JacobianOperator >::stencilDAN_
mutableprotected

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