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

apply wrapper More...

#include <dune/fem/operator/common/spaceoperatorif.hh>

Inheritance diagram for Dune::Fem::SpaceOperatorWrapper< OperatorType >:
Inheritance graph

Public Types

typedef OperatorType::DestinationType DestinationType
 type of Argument and Destination
 
typedef DestinationType::DiscreteFunctionSpaceType SpaceType
 type of discrete function space
 
typedef DestinationType::DiscreteFunctionSpaceType DiscreteFunctionSpaceType
 type of discrete function space
 
typedef BaseType::RangeFunctionType RangeFunctionType
 
typedef BaseType::DomainFunctionType DomainFunctionType
 
typedef BaseType::RangeFieldType RangeFieldType
 
typedef BaseType::DomainFieldType DomainFieldType
 
typedef Dune::FieldTraits< RangeFieldType >::real_type RealType
 
typedef BaseType::JacobianOperatorType JacobianOperatorType
 
typedef RangeFunctionType::DiscreteFunctionSpaceType RangeSpaceType
 
typedef DomainFunctionType::DiscreteFunctionSpaceType DomainSpaceType
 

Public Member Functions

 SpaceOperatorWrapper (OperatorType *op)
 constructor storing pointer
 
 SpaceOperatorWrapper (OperatorType *op, ObjPointerStorage *model)
 constructor storing pointer
 
void operator() (const DestinationType &arg, DestinationType &dest) const
 call application operator of internal operator
 
virtual void operator() (const DomainFunctionType &u, RangeFunctionType &w) const=0
 application operator
 
const SpaceTypespace () const
 return reference to space
 
void setTime (const double time)
 set time for operators

 
double timeStepEstimate () const
 estimate maximum time step
 
const DestinationTypedestination () const
 return reference to pass's local memory
 
OperatorType & pass () const
 return reference to pass
 
template<class DiscrOpType >
void saveObjPointer (DiscrOpType *discrOp)
 Store new generated DiscreteOperator Pointer.
 
template<class DiscrOpType , class LocalOpType >
void saveObjPointer (DiscrOpType *discrOp, LocalOpType *lop)
 
virtual int size () const
 return size of discrete function space, i.e. number of unknowns
 
virtual void initializeTimeStepSize (const DestinationType &U0) const
 call operator once to calculate initial time step size
 
virtual bool hasLimiter () const
 return true if limit method is implemented
 
virtual void limit (const DestinationType &arg, DestinationType &dest) const
 limiter application operator
 
virtual void applyLimiter (DestinationType &U) const
 limiter application operator
 
virtual void jacobian (const DomainFunctionType &u, JacobianOperatorType &jOp) const
 
virtual void jacobian (const DomainFunctionType &u, JacobianOperatorType &jOp) const =0
 obtain linearization
 
virtual void finalize ()
 finalization of operator
 

Protected Attributes

OperatorType * op_
 
ObjPointerStoragemodel_
 
std::unique_ptr< DestinationTypeuTmp_
 

Detailed Description

template<class OperatorType>
class Dune::Fem::SpaceOperatorWrapper< OperatorType >

apply wrapper

Member Typedef Documentation

◆ DestinationType

template<class OperatorType >
typedef OperatorType::DestinationType Dune::Fem::SpaceOperatorWrapper< OperatorType >::DestinationType

type of Argument and Destination

◆ DiscreteFunctionSpaceType

typedef DestinationType::DiscreteFunctionSpaceType Dune::Fem::SpaceOperatorInterface< OperatorType::DestinationType , Fem::AutomaticDifferenceOperator< OperatorType::DestinationType > >::DiscreteFunctionSpaceType
inherited

type of discrete function space

◆ DomainFieldType

template<class DomainFunction , class RangeFunction = DomainFunction, class LinearOperator = AutomaticDifferenceLinearOperator< DomainFunction, RangeFunction >>
typedef BaseType::DomainFieldType Dune::Fem::AutomaticDifferenceOperator< DomainFunction, RangeFunction, LinearOperator >::DomainFieldType
inherited

◆ DomainFunctionType

template<class DomainFunction , class RangeFunction = DomainFunction, class LinearOperator = AutomaticDifferenceLinearOperator< DomainFunction, RangeFunction >>
typedef BaseType::DomainFunctionType Dune::Fem::AutomaticDifferenceOperator< DomainFunction, RangeFunction, LinearOperator >::DomainFunctionType
inherited

◆ DomainSpaceType

template<class DomainFunction , class RangeFunction = DomainFunction, class LinearOperator = AutomaticDifferenceLinearOperator< DomainFunction, RangeFunction >>
typedef DomainFunctionType::DiscreteFunctionSpaceType Dune::Fem::AutomaticDifferenceOperator< DomainFunction, RangeFunction, LinearOperator >::DomainSpaceType
inherited

◆ JacobianOperatorType

template<class DomainFunction , class RangeFunction = DomainFunction, class LinearOperator = AutomaticDifferenceLinearOperator< DomainFunction, RangeFunction >>
typedef BaseType::JacobianOperatorType Dune::Fem::AutomaticDifferenceOperator< DomainFunction, RangeFunction, LinearOperator >::JacobianOperatorType
inherited

◆ RangeFieldType

template<class DomainFunction , class RangeFunction = DomainFunction, class LinearOperator = AutomaticDifferenceLinearOperator< DomainFunction, RangeFunction >>
typedef BaseType::RangeFieldType Dune::Fem::AutomaticDifferenceOperator< DomainFunction, RangeFunction, LinearOperator >::RangeFieldType
inherited

◆ RangeFunctionType

template<class DomainFunction , class RangeFunction = DomainFunction, class LinearOperator = AutomaticDifferenceLinearOperator< DomainFunction, RangeFunction >>
typedef BaseType::RangeFunctionType Dune::Fem::AutomaticDifferenceOperator< DomainFunction, RangeFunction, LinearOperator >::RangeFunctionType
inherited

◆ RangeSpaceType

template<class DomainFunction , class RangeFunction = DomainFunction, class LinearOperator = AutomaticDifferenceLinearOperator< DomainFunction, RangeFunction >>
typedef RangeFunctionType::DiscreteFunctionSpaceType Dune::Fem::AutomaticDifferenceOperator< DomainFunction, RangeFunction, LinearOperator >::RangeSpaceType
inherited

◆ RealType

template<class DomainFunction , class RangeFunction = DomainFunction, class LinearOperator = AutomaticDifferenceLinearOperator< DomainFunction, RangeFunction >>
typedef Dune::FieldTraits<RangeFieldType>::real_type Dune::Fem::AutomaticDifferenceOperator< DomainFunction, RangeFunction, LinearOperator >::RealType
inherited

◆ SpaceType

template<class OperatorType >
typedef DestinationType::DiscreteFunctionSpaceType Dune::Fem::SpaceOperatorWrapper< OperatorType >::SpaceType

type of discrete function space

Constructor & Destructor Documentation

◆ SpaceOperatorWrapper() [1/2]

template<class OperatorType >
Dune::Fem::SpaceOperatorWrapper< OperatorType >::SpaceOperatorWrapper ( OperatorType *  op)
inline

constructor storing pointer

◆ SpaceOperatorWrapper() [2/2]

template<class OperatorType >
Dune::Fem::SpaceOperatorWrapper< OperatorType >::SpaceOperatorWrapper ( OperatorType *  op,
ObjPointerStorage model 
)
inline

constructor storing pointer

Member Function Documentation

◆ applyLimiter()

virtual void Dune::Fem::SpaceOperatorInterface< OperatorType::DestinationType , Fem::AutomaticDifferenceOperator< OperatorType::DestinationType > >::applyLimiter ( DestinationType U) const
inlinevirtualinherited

limiter application operator

Parameters
[in,out]Uargument and destination to apply Limiter(u), needs internal copying
Note
: Default implementation is to do nothing (hasLimiter == false)

◆ destination()

template<class OperatorType >
const DestinationType * Dune::Fem::SpaceOperatorPtr< OperatorType >::destination ( ) const
inlinevirtualinherited

return reference to pass's local memory

Reimplemented from Dune::Fem::SpaceOperatorInterface< OperatorType::DestinationType >.

◆ finalize()

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

finalization of operator

Note
The default implementation is empty.

◆ hasLimiter()

virtual bool Dune::Fem::SpaceOperatorInterface< OperatorType::DestinationType , Fem::AutomaticDifferenceOperator< OperatorType::DestinationType > >::hasLimiter ( ) const
inlinevirtualinherited

return true if limit method is implemented

Returns
true if limit is implemented

◆ initializeTimeStepSize()

void Dune::Fem::SpaceOperatorInterface< OperatorType::DestinationType , Fem::AutomaticDifferenceOperator< OperatorType::DestinationType > >::initializeTimeStepSize ( const DestinationType U0) const
inlinevirtualinherited

call operator once to calculate initial time step size

Parameters
U0initial data to compute initial time step size

◆ jacobian() [1/2]

template<class DomainFunction , class RangeFunction = DomainFunction, class LinearOperator = AutomaticDifferenceLinearOperator< DomainFunction, RangeFunction >>
virtual void Dune::Fem::AutomaticDifferenceOperator< DomainFunction, RangeFunction, LinearOperator >::jacobian ( const DomainFunctionType u,
JacobianOperatorType jOp 
) const
inlinevirtualinherited

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

◆ limit()

virtual void Dune::Fem::SpaceOperatorInterface< OperatorType::DestinationType , Fem::AutomaticDifferenceOperator< OperatorType::DestinationType > >::limit ( const DestinationType arg,
DestinationType dest 
) const
inlinevirtualinherited

limiter application operator

Parameters
argargument, u
destdestination, Limiter(u)
Note
: Default implementation is to copy arg into dest.

◆ operator()() [1/2]

template<class OperatorType >
void Dune::Fem::SpaceOperatorWrapper< OperatorType >::operator() ( const DestinationType arg,
DestinationType dest 
) const
inlinevirtual

call application operator of internal operator

Reimplemented from Dune::Fem::SpaceOperatorPtr< OperatorType >.

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

◆ pass()

template<class OperatorType >
OperatorType & Dune::Fem::SpaceOperatorStorage< OperatorType >::pass ( ) const
inlineinherited

return reference to pass

◆ saveObjPointer() [1/2]

template<class DiscrOpType >
void Dune::Fem::ObjPointerStorage::saveObjPointer ( DiscrOpType *  discrOp)
inlineinherited

Store new generated DiscreteOperator Pointer.

◆ saveObjPointer() [2/2]

template<class DiscrOpType , class LocalOpType >
void Dune::Fem::ObjPointerStorage::saveObjPointer ( DiscrOpType *  discrOp,
LocalOpType *  lop 
)
inlineinherited

Store new generated DiscreteOperator Pointer and the LocalOperator pointer

◆ setTime()

template<class OperatorType >
void Dune::Fem::SpaceOperatorPtr< OperatorType >::setTime ( const double  time)
inlinevirtualinherited

set time for operators

Parameters
timecurrent time of evaluation

Reimplemented from Dune::Fem::SpaceOperatorInterface< OperatorType::DestinationType >.

◆ size()

virtual int Dune::Fem::SpaceOperatorInterface< OperatorType::DestinationType , Fem::AutomaticDifferenceOperator< OperatorType::DestinationType > >::size ( ) const
inlinevirtualinherited

return size of discrete function space, i.e. number of unknowns

◆ space()

template<class OperatorType >
const SpaceType & Dune::Fem::SpaceOperatorPtr< OperatorType >::space ( ) const
inlinevirtualinherited

◆ timeStepEstimate()

template<class OperatorType >
double Dune::Fem::SpaceOperatorPtr< OperatorType >::timeStepEstimate ( ) const
inlinevirtualinherited

estimate maximum time step

For an explicit time discretization, the time step has to be limited. An estimate for the maximum time step of an explicit Euler scheme is returned by this function. Maximum time steps for higher order Runge Kutta schemes can be derived from this value.

Reimplemented from Dune::Fem::SpaceOperatorInterface< OperatorType::DestinationType >.

Member Data Documentation

◆ model_

template<class OperatorType >
ObjPointerStorage* Dune::Fem::SpaceOperatorStorage< OperatorType >::model_
protectedinherited

◆ op_

template<class OperatorType >
OperatorType* Dune::Fem::SpaceOperatorStorage< OperatorType >::op_
mutableprotectedinherited

◆ uTmp_

std::unique_ptr< DestinationType > Dune::Fem::SpaceOperatorInterface< OperatorType::DestinationType , Fem::AutomaticDifferenceOperator< OperatorType::DestinationType > >::uTmp_
mutableprotectedinherited

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