DUNE-FEM (unstable)
interface for time evolution operators More...
#include <dune/fem/operator/common/spaceoperatorif.hh>
Public Types | |
typedef DiscreteFunction | DestinationType |
type of argument and destination | |
typedef DestinationType::DiscreteFunctionSpaceType | DiscreteFunctionSpaceType |
type of discrete function space | |
typedef DiscreteFunctionSpaceType | SpaceType |
convenience typedef for space type | |
Public Member Functions | |
virtual | ~SpaceOperatorInterface () |
destructor | |
virtual const DiscreteFunctionSpaceType & | space () const =0 |
return reference to space (needed by ode solvers) | |
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 | setTime (const double time) |
set time for operators More... | |
virtual double | timeStepEstimate () const |
estimate maximum time step 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 const DestinationType * | destination () const |
return reference to pass's local memory | |
virtual void | jacobian (const DomainFunctionType &u, JacobianOperatorType &jOp) const |
virtual void | operator() (const DomainFunctionType &u, RangeFunctionType &w) const=0 |
application operator More... | |
virtual void | finalize () |
finalization of operator More... | |
Detailed Description
template<class DiscreteFunction, class JacobianOperator = Fem::AutomaticDifferenceOperator< DiscreteFunction >>
class Dune::Fem::SpaceOperatorInterface< DiscreteFunction, JacobianOperator >
interface for time evolution operators
The SpaceOperatorInterface defines an interface for operators \(L: X \longrightarrow X\) from a discrete function space \(X\) into itself. This interface is used to implement operators working with the ODE solvers.
- Template Parameters
-
DiscreteFunction type of discretefunction modelling the elements of \(X\).
Member Function Documentation
◆ applyLimiter()
|
inlinevirtual |
limiter application operator
- Parameters
-
[in,out] U argument and destination to apply Limiter(u), needs internal copying
- Note
- : Default implementation is to do nothing (hasLimiter == false)
References Dune::Fem::SpaceOperatorInterface< DiscreteFunction, JacobianOperator >::hasLimiter(), Dune::Fem::SpaceOperatorInterface< DiscreteFunction, JacobianOperator >::limit(), and Dune::Fem::SpaceOperatorInterface< DiscreteFunction, JacobianOperator >::space().
◆ finalize()
|
inlinevirtualinherited |
finalization of operator
- Note
- The default implementation is empty.
◆ hasLimiter()
|
inlinevirtual |
return true if limit method is implemented
- Returns
- true if limit is implemented
Referenced by Dune::Fem::SpaceOperatorInterface< DiscreteFunction, JacobianOperator >::applyLimiter(), and Dune::Fem::SpaceOperatorInterface< DiscreteFunction, JacobianOperator >::limit().
◆ initializeTimeStepSize()
|
inlinevirtual |
call operator once to calculate initial time step size
- Parameters
-
U0 initial data to compute initial time step size
◆ limit()
|
inlinevirtual |
limiter application operator
- Parameters
-
arg argument, u dest destination, Limiter(u)
- Note
- : Default implementation is to copy arg into dest.
References Dune::Fem::SpaceOperatorInterface< DiscreteFunction, JacobianOperator >::hasLimiter().
Referenced by Dune::Fem::SpaceOperatorInterface< DiscreteFunction, JacobianOperator >::applyLimiter().
◆ operator()()
|
pure virtualinherited |
application operator
- Parameters
-
[in] u argument discrete function [out] w destination discrete function
- Note
- This method has to be implemented by all derived classes.
Implemented in EllipticOperator< JacobianOperator::DomainFunctionType, JacobianOperator::RangeFunctionType, Model >.
◆ setTime()
|
inlinevirtual |
set time for operators
- Parameters
-
time current time of evaluation
Reimplemented in Dune::Fem::HdivProjection< DiscreteFunctionType >, and Dune::Fem::SpaceOperatorPtr< OperatorType >.
◆ timeStepEstimate()
|
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 in Dune::Fem::HdivProjection< DiscreteFunctionType >, and Dune::Fem::SpaceOperatorPtr< OperatorType >.
References Dune::Hybrid::max.
The documentation for this class was generated from the following file:
- dune/fem/operator/common/spaceoperatorif.hh