|
dune-fem 2.12-git
|
H-div Projection for discontinuous discrete functions. The projection is described in detail in: More...
#include <dune/fem/operator/projection/hdivprojection.hh>

Public Types | |
| typedef DiscreteFunctionType | DestinationType |
| type of argument and destination | |
| typedef DiscreteFunctionSpaceType | SpaceType |
| convenience typedef for space type | |
| typedef BaseType::RangeFunctionType | RangeFunctionType |
| typedef BaseType::DomainFunctionType | DomainFunctionType |
| typedef Dune::FieldTraits< RangeFieldType >::real_type | RealType |
| typedef BaseType::JacobianOperatorType | JacobianOperatorType |
| typedef RangeFunctionType::DiscreteFunctionSpaceType | RangeSpaceType |
| typedef DomainFunctionType::DiscreteFunctionSpaceType | DomainSpaceType |
Public Member Functions | |
| HdivProjection (const DiscreteFunctionSpaceType &space) | |
| constructor taking space | |
| HdivProjection (const HdivProjection &org) | |
| const DiscreteFunctionSpaceType & | space () const |
| return reference to space | |
| void | setTime (double) |
| set time for operators | |
| double | timeStepEstimate () const |
| estimate maximum time step | |
| virtual void | operator() (const DiscreteFunctionType &arg, DiscreteFunctionType &dest) const |
| application operator projection arg to H-div space | |
| 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 const DestinationType * | destination () const |
| return reference to pass's local memory | |
| virtual void | jacobian (const DomainFunctionType &u, JacobianOperatorType &jOp) const |
| virtual void | jacobian (const DomainFunctionType &u, JacobianOperatorType &jOp) const =0 |
| obtain linearization | |
| virtual void | operator() (const DomainFunctionType &u, RangeFunctionType &w) const=0 |
| application operator | |
| virtual void | finalize () |
| finalization of operator | |
| virtual bool | nonlinear () const |
Static Public Member Functions | |
| static double | normalJump (const DiscreteFunctionType &discFunc, const int polyOrder=-1) |
| return sum of jumps of discrete function normal to intersection | |
| template<class AdaptationType > | |
| static void | estimator (const DiscreteFunctionType &velo, AdaptationType &adaptation) |
Protected Attributes | |
| std::unique_ptr< DestinationType > | uTmp_ |
Detailed Description
class Dune::Fem::HdivProjection< DiscreteFunctionType >
H-div Projection for discontinuous discrete functions. The projection is described in detail in:
P. Bastian and B. Riviere. Superconvergence and H(div)-projection for discontinuous Galerkin methods. Int. J. Numer. Meth. Fluids., 42:1043-1057, 2003.
(see homepage of Peter Bastian: http://hal.iwr.uni-heidelberg.de/~peter/Papers/BDMpaper.pdf )
Note:
This projection only works for polynomial order 1 and the following spaces:
- SimplexGrids + DiscontinuousGalerkinSpace
- CubeGrids + LegendreDiscontinuousGalerkinSpace
Member Typedef Documentation
◆ DestinationType
|
inherited |
type of argument and destination
◆ DomainFunctionType
|
inherited |
◆ DomainSpaceType
|
inherited |
◆ JacobianOperatorType
|
inherited |
◆ RangeFunctionType
|
inherited |
◆ RangeSpaceType
|
inherited |
◆ RealType
|
inherited |
◆ SpaceType
|
inherited |
convenience typedef for space type
Constructor & Destructor Documentation
◆ HdivProjection() [1/2]
|
inline |
constructor taking space
◆ HdivProjection() [2/2]
|
inline |
Member Function Documentation
◆ applyLimiter()
|
inlinevirtualinherited |
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)
◆ destination()
|
inlinevirtualinherited |
return reference to pass's local memory
◆ estimator()
|
inlinestatic |
◆ finalize()
|
inlinevirtualinherited |
finalization of operator
- Note
- The default implementation is empty.
◆ hasLimiter()
|
inlinevirtualinherited |
return true if limit method is implemented
- Returns
- true if limit is implemented
◆ initializeTimeStepSize()
|
inlinevirtualinherited |
call operator once to calculate initial time step size
- Parameters
-
U0 initial data to compute initial time step size
◆ jacobian() [1/2]
|
inlinevirtualinherited |
◆ jacobian() [2/2]
|
pure virtualinherited |
obtain linearization
- Parameters
-
[in] u argument discrete function [out] jOp destination Jacobian operator
- Note
- This method has to be implemented by all derived classes.
Implemented in Dune::Fem::DifferentiableGalerkinOperator< Integrands, JacobianOperator >, Dune::Fem::MassLumpingDifferentiableOperator< Integrands, MassIntegrands, JacobianOperator >, and Dune::Fem::MOLDifferentiableGalerkinOperator< Integrands, JacobianOperator >.
◆ limit()
|
inlinevirtualinherited |
limiter application operator
- Parameters
-
arg argument, u dest destination, Limiter(u)
- Note
- : Default implementation is to copy arg into dest.
◆ nonlinear()
|
inlinevirtualinherited |
Return true if the Operator is nonlinear and false otherwise (default is true).
Reimplemented in DirichletWrapperOperator< Operator, Constraints >, Dune::Fem::DifferentiableGalerkinOperator< Integrands, JacobianOperator >, and Dune::Fem::DifferentiableGalerkinOperator< ModelIntegrands, LinearOperator >.
◆ normalJump()
|
inlinestatic |
return sum of jumps of discrete function normal to intersection
◆ operator()() [1/2]
|
inlinevirtual |
application operator projection arg to H-div space
◆ operator()() [2/2]
|
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.
◆ setTime()
|
inlinevirtual |
set time for operators
- Parameters
-
time current time of evaluation
Reimplemented from Dune::Fem::SpaceOperatorInterface< DiscreteFunctionType >.
◆ size()
|
inlinevirtualinherited |
return size of discrete function space, i.e. number of unknowns
◆ space()
|
inlinevirtual |
return reference to space
Implements Dune::Fem::SpaceOperatorInterface< DiscreteFunctionType >.
◆ 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 from Dune::Fem::SpaceOperatorInterface< DiscreteFunctionType >.
Member Data Documentation
◆ uTmp_
|
mutableprotectedinherited |
The documentation for this class was generated from the following file:
Legal Statements / Impressum | Hosted by TU Dresden & Uni Heidelberg | Generated by
1.9.8