DUNE-FEM (unstable)

Dune::Fem::SpaceOperatorPtr< OperatorType > Class Template Referenceabstract

only for keeping the pointer More...

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

Public Types

typedef DestinationType::DiscreteFunctionSpaceType DiscreteFunctionSpaceType
 type of discrete function space
 

Public Member Functions

 SpaceOperatorPtr (OperatorType *op)
 constructor storing pointer
 
 SpaceOperatorPtr (OperatorType *op, ObjPointerStorage *model)
 constructor storing pointer
 
virtual ~SpaceOperatorPtr ()
 destructor
 
virtual void operator() (const DestinationType &arg, DestinationType &dest) const
 application operator does nothing here
 
const SpaceType & space () const
 return reference to space
 
void setTime (const double time)
 set time for operators
More...
 
double timeStepEstimate () const
 estimate maximum time step More...
 
const DestinationType * destination () 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 More...
 
virtual bool hasLimiter () const
 return true if limit method is implemented More...
 
virtual void limit (const DestinationType &arg, DestinationType &dest) const
 limiter application operator More...
 
virtual void applyLimiter (DestinationType &U) const
 limiter application operator More...
 
virtual void jacobian (const DomainFunctionType &u, JacobianOperatorType &jOp) const=0
 obtain linearization More...
 
virtual void operator() (const DomainFunctionType &u, RangeFunctionType &w) const=0
 application operator More...
 
virtual void finalize ()
 finalization of operator More...
 

Detailed Description

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

only for keeping the 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)

◆ 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()

virtual void Dune::Fem::DifferentiableOperator< AutomaticDifferenceLinearOperator< DomainFunction, DomainFunction > >::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.

◆ 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()()

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.

Implemented in EllipticOperator< JacobianOperator::DomainFunctionType, JacobianOperator::RangeFunctionType, Model >.

◆ saveObjPointer()

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

Store new generated DiscreteOperator Pointer and the LocalOperator pointer

References Dune::Fem::ObjPointerStorage::saveObjPointer().

◆ setTime()

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

set time for operators

Parameters
timecurrent time of evaluation

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

References Dune::Fem::SpaceOperatorStorage< OperatorType >::pass().

◆ timeStepEstimate()

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

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

References Dune::Fem::SpaceOperatorStorage< OperatorType >::pass().


The documentation for this class was generated from the following file:
Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden  |  generated with Hugo v0.80.0 (May 15, 22:30, 2024)