dune-fem  2.4.1-rc
Classes | Public Types | Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | List of all members
Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp > Class Template Referenceabstract

#include </local/tomalk/somewhere/tmp/dune-fem/dune/fem/pass/localdg/pass.hh>

Inheritance diagram for Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >:
Inheritance graph

Classes

struct  DefaultNBChecker
 

Public Types

enum  { dimRange = DiscreteFunctionSpaceType::dimRange }
 
typedef LocalPass< DiscreteModelImp, PreviousPassImp, passIdImp > BaseType
 Base class. More...
 
typedef BaseType::PassIds PassIds
 pass ids up to here (tuple of integral constants) More...
 
typedef DiscreteModelImp DiscreteModelType
 Repetition of template arguments. More...
 
typedef PreviousPassImp PreviousPassType
 Repetition of template arguments. More...
 
typedef BaseType::Entity EntityType
 
typedef BaseType::ArgumentType ArgumentType
 
typedef DiscreteModelType::Traits::DestinationType DestinationType
 
typedef DiscreteModelType::Traits::VolumeQuadratureType VolumeQuadratureType
 
typedef DiscreteModelType::Traits::FaceQuadratureType FaceQuadratureType
 
typedef DiscreteModelType::Traits::DiscreteFunctionSpaceType DiscreteFunctionSpaceType
 
typedef DiscreteFunctionSpaceType::IteratorType IteratorType
 Iterator over the space. More...
 
typedef DiscreteFunctionSpaceType::GridType GridType
 
typedef DiscreteFunctionSpaceType::GridPartType GridPartType
 
typedef DiscreteFunctionSpaceType::DomainType DomainType
 
typedef DiscreteFunctionSpaceType::RangeType RangeType
 
typedef DiscreteFunctionSpaceType::JacobianRangeType JacobianRangeType
 
typedef DiscreteFunctionSpaceType::BasisFunctionSetType BasisFunctionSetType
 
typedef GridPartType::IntersectionIteratorType IntersectionIteratorType
 
typedef IntersectionIteratorType::Intersection IntersectionType
 
typedef GridType::template Codim< 0 >::Geometry Geometry
 
typedef DestinationType::LocalFunctionType LocalFunctionType
 
typedef DGDiscreteModelCaller< DiscreteModelType, ArgumentType, PassIdsDiscreteModelCallerType
 
typedef GridPartType::IndexSetType IndexSetType
 
typedef TemporaryLocalFunction< DiscreteFunctionSpaceTypeTemporaryLocalFunctionType
 
typedef LocalMassMatrix< DiscreteFunctionSpaceType, VolumeQuadratureTypeLocalMassMatrixType
 type of local mass matrix More...
 
typedef EntityType Entity
 
typedef DeleteHandler< DestinationTypeDeleteHandlerType
 type of mem handler, which deletes destination More...
 
typedef DestinationType::DiscreteFunctionSpaceType::CommunicationManagerType::NonBlockingCommunicationType NonBlockingCommunicationType
 
typedef PreviousPassType::GlobalArgumentType GlobalArgumentType
 
typedef PreviousPassType::NextArgumentType LocalArgumentType
 Tuple containing destination types of all preceding passes. More...
 
typedef PushFrontTuple< LocalArgumentType, const GlobalArgumentType * >::type TotalArgumentType
 
typedef PushBackTuple< LocalArgumentType, DestinationType * >::type NextArgumentType
 Tuple containing destination types of all passes up to this one. More...
 
typedef PreviousPassImp::GlobalArgumentType DomainFunctionType
 type of discrete function in the operator's domain More...
 
typedef DiscreteModelImp::Traits::DestinationType RangeFunctionType
 type of discrete function in the operator's range More...
 
typedef PreviousPassImp::GlobalArgumentType::RangeFieldType DomainFieldType
 field type of the operator's domain More...
 
typedef DiscreteModelImp::Traits::DestinationType::RangeFieldType RangeFieldType
 field type of the operator's range More...
 

Public Member Functions

 LocalDGPass (DiscreteModelType &problem, PreviousPassType &pass, const DiscreteFunctionSpaceType &spc, const int volumeQuadOrd=-1, const int faceQuadOrd=-1, const bool notThreadParallel=true)
 
virtual ~LocalDGPass ()
 Destructor. More...
 
void printTexInfo (std::ostream &out) const
 print tex info More...
 
double timeStepEstimateImpl () const
 Estimate for the timestep size. More...
 
virtual void prepare (const ArgumentType &arg, DestinationType &dest) const
 
virtual void finalize (const ArgumentType &arg, DestinationType &dest) const
 Some timestep size management. More...
 
size_t numberOfElements () const
 return number of elements visited during operator computation More...
 
void applyLocal (const EntityType &en) const
 
void applyLocalMass (const EntityType &en) const
 
template<class NeighborChecker >
void applyLocal (const EntityType &en, const NeighborChecker &nbChecker) const
 local integration More...
 
virtual void allocateLocalMemory ()
 build up local memory More...
 
const DiscreteFunctionSpaceTypespace () const
 return reference to space More...
 
virtual double computeTime () const
 return accumulated time needed by pass's operator () this method also resets the compute time to zero More...
 
bool active () const
 return true if pass is active More...
 
void enable () const
 set pass status to active More...
 
void disable () const
 set pass status to inactive More...
 
void compute (const ArgumentType &arg, DestinationType &dest) const
 
int passNumber () const
 
void operator() (const GlobalArgumentType &arg, DestinationType &dest) const
 Application operator. The application operator is called by the client directly. It makes only sense to call this operator directly on the last pass. More...
 
virtual void operator() (const DomainFunctionType &u, RangeFunctionType &w) const =0
 application operator More...
 
void setTime (const double t)
 Set time provider (which gives you access to the global time). More...
 
double timeStepEstimate () const
 return time step estimate for explicit Runge Kutta solver, calls recursively the method timeStepEstimateImpl of all previous passes. Make sure to overload the method timeStepEstimateImpl in your implementation if this method really does something. More...
 
double time () const
 return current time of calculation More...
 
const DestinationTypedestination () const
 return reference to internal discrete function More...
 
void pass (const GlobalArgumentType &arg) const
 
NextArgumentType localArgument () const
 Returns a compilation of the results of the preceding passes. More...
 
void finalizeCommunication (const GlobalArgumentType &arg) const
 finalizeCommunication collects possbily initiated non-blocking communications for all passes including the global argument this method will be called from the next pass More...
 
void receiveCommunication (const GlobalArgumentType &arg) const
 finalizeCommunication collects possbily initiated non-blocking communications for all passes including the global argument this method will be called from the next pass More...
 
virtual bool requireCommunication () const
 requireCommunication returns true if the pass needs communication at all More...
 

Static Public Attributes

static const int passNum = PreviousPassType::passNum + 1
 position in pass tree More...
 
static const int passId = passIdImp
 

Protected Member Functions

template<class NeighborChecker >
void applyLocal (const EntityType &en, TemporaryLocalFunctionType &updEn, const NeighborChecker &nbChecker) const
 local integration More...
 
template<class LocalFunctionImp >
void initLocalFunction (const EntityType &en, LocalFunctionImp &update) const
 
template<class LocalFunctionImp >
void updateFunction (const EntityType &en, LocalFunctionImp &update) const
 add update to destination More...
 
template<class LocalFunctionImp >
void updateFunctionAndApplyMass (const EntityType &en, LocalFunctionImp &update) const
 add update to destination More...
 
template<class LocalFunctionImp >
void evalVolumetricPartFlux (const EntityType &en, const Geometry &geo, const VolumeQuadratureType &volQuad, LocalFunctionImp &updEn) const
 
template<class LocalFunctionImp >
void evalVolumetricPartBoth (const EntityType &en, const Geometry &geo, const VolumeQuadratureType &volQuad, LocalFunctionImp &updEn) const
 
template<bool conforming, class LocalFunctionImp >
double applyLocalNeighbor (const IntersectionType &intersection, const EntityType &en, const EntityType &nb, LocalFunctionImp &updEn, LocalFunctionImp &updNb, double &wspeedS, const bool canUpdateNeighbor) const
 
DiscreteModelCallerTypecaller () const
 
virtual void prepare (const ArgumentType &arg, DestinationType &dest) const =0
 
virtual void finalize (const ArgumentType &arg, DestinationType &dest) const =0
 
void finalizeCommunication (const TotalArgumentType &totalArg) const
 finalizeCommunication collects possbily initiated non-blocking communications for all passes More...
 
void receiveCommunication (const TotalArgumentType &totalArg) const
 receiveCommunication collects possbily initiated non-blocking communications for all passes More...
 
virtual void initComm () const
 initializeCommunication of this pass, this will initialize the communication of destination_ and has to be overloaded in the implementation More...
 
virtual void finalizeComm () const
 finalizeCommunication of this pass, this will collect the communication of destination_ and has to be overloaded in the implementation More...
 
virtual void receiveComm () const
 receiveCommunication of this pass, which will reset changes the communication did to the destination_ and has to be overloaded in the implementation More...
 

Protected Attributes

DiscreteModelCallerTypecaller_
 
DiscreteModelTypeproblem_
 
ArgumentTypearg_
 
DestinationTypedest_
 
const DiscreteFunctionSpaceTypespc_
 
const GridPartTypegridPart_
 
const IndexSetTypeindexSet_
 
MutableArray< bool > visited_
 
TemporaryLocalFunctionType updEn_
 
TemporaryLocalFunctionType updNb_
 
MutableArray< JacobianRangeTypefMatVec_
 Some helper variables. More...
 
MutableArray< RangeTypevalEnVec_
 
MutableArray< RangeTypevalNbVec_
 
double dtMin_
 
const double minLimit_
 
const int volumeQuadOrd_
 
const int faceQuadOrd_
 
LocalMassMatrixType localMassMatrix_
 
const bool notThreadParallel_
 
const std::string passName_
 
double computeTime_
 
size_t numberOfElements_
 
bool passIsActive_
 
DestinationTypedestination_
 destination (might be set from outside) More...
 
DeleteHandlerTypedeleteHandler_
 object to delete destination_ More...
 
PreviousPassTypepreviousPass_
 
double time_
 
bool finalizeCommunication_
 

Detailed Description

template<class DiscreteModelImp, class PreviousPassImp, int passIdImp = -1>
class Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >

Concrete implementation of Pass for first hyperbolic systems using LDG

Member Typedef Documentation

template<class DiscreteModelImp, class PreviousPassImp, int passIdImp = -1>
typedef BaseType::ArgumentType Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::ArgumentType
template<class DiscreteModelImp, class PreviousPassImp, int passIdImp = -1>
typedef LocalPass< DiscreteModelImp , PreviousPassImp , passIdImp > Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::BaseType

Base class.

template<class DiscreteModelImp, class PreviousPassImp, int passIdImp = -1>
typedef DiscreteFunctionSpaceType::BasisFunctionSetType Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::BasisFunctionSetType
template<class DiscreteModelImp, class PreviousPassImp, int passIdImp>
typedef DeleteHandler<DestinationType> Dune::Fem::Pass< DiscreteModelImp, PreviousPassImp, passIdImp >::DeleteHandlerType
inherited

type of mem handler, which deletes destination

template<class DiscreteModelImp, class PreviousPassImp, int passIdImp = -1>
typedef DiscreteModelType::Traits::DestinationType Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::DestinationType
template<class DiscreteModelImp, class PreviousPassImp, int passIdImp = -1>
typedef DiscreteModelType::Traits::DiscreteFunctionSpaceType Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::DiscreteFunctionSpaceType
template<class DiscreteModelImp, class PreviousPassImp, int passIdImp = -1>
typedef DGDiscreteModelCaller< DiscreteModelType, ArgumentType, PassIds > Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::DiscreteModelCallerType
template<class DiscreteModelImp, class PreviousPassImp, int passIdImp = -1>
typedef DiscreteModelImp Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::DiscreteModelType

Repetition of template arguments.

typedef PreviousPassImp::GlobalArgumentType ::RangeFieldType Dune::Fem::Operator< PreviousPassImp::GlobalArgumentType , DiscreteModelImp::Traits::DestinationType >::DomainFieldType
inherited

field type of the operator's domain

typedef PreviousPassImp::GlobalArgumentType Dune::Fem::Operator< PreviousPassImp::GlobalArgumentType , DiscreteModelImp::Traits::DestinationType >::DomainFunctionType
inherited

type of discrete function in the operator's domain

template<class DiscreteModelImp, class PreviousPassImp, int passIdImp = -1>
typedef DiscreteFunctionSpaceType::DomainType Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::DomainType
template<class DiscreteModelImp, class PreviousPassImp, int passIdImp>
typedef EntityType Dune::Fem::LocalPass< DiscreteModelImp, PreviousPassImp, passIdImp >::Entity
inherited
template<class DiscreteModelImp, class PreviousPassImp, int passIdImp = -1>
typedef BaseType::Entity Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::EntityType
template<class DiscreteModelImp, class PreviousPassImp, int passIdImp = -1>
typedef DiscreteModelType::Traits::FaceQuadratureType Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::FaceQuadratureType
template<class DiscreteModelImp, class PreviousPassImp, int passIdImp = -1>
typedef GridType::template Codim<0>::Geometry Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::Geometry
template<class DiscreteModelImp, class PreviousPassImp, int passIdImp>
typedef PreviousPassType::GlobalArgumentType Dune::Fem::Pass< DiscreteModelImp, PreviousPassImp, passIdImp >::GlobalArgumentType
inherited

Type of the discrete function which is passed to the overall operator by the user

template<class DiscreteModelImp, class PreviousPassImp, int passIdImp = -1>
typedef DiscreteFunctionSpaceType::GridPartType Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::GridPartType
template<class DiscreteModelImp, class PreviousPassImp, int passIdImp = -1>
typedef DiscreteFunctionSpaceType::GridType Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::GridType
template<class DiscreteModelImp, class PreviousPassImp, int passIdImp = -1>
typedef GridPartType::IndexSetType Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::IndexSetType
template<class DiscreteModelImp, class PreviousPassImp, int passIdImp = -1>
typedef GridPartType::IntersectionIteratorType Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::IntersectionIteratorType
template<class DiscreteModelImp, class PreviousPassImp, int passIdImp = -1>
typedef IntersectionIteratorType::Intersection Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::IntersectionType
template<class DiscreteModelImp, class PreviousPassImp, int passIdImp = -1>
typedef DiscreteFunctionSpaceType::IteratorType Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::IteratorType

Iterator over the space.

template<class DiscreteModelImp, class PreviousPassImp, int passIdImp = -1>
typedef DiscreteFunctionSpaceType::JacobianRangeType Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::JacobianRangeType
template<class DiscreteModelImp, class PreviousPassImp, int passIdImp>
typedef PreviousPassType::NextArgumentType Dune::Fem::Pass< DiscreteModelImp, PreviousPassImp, passIdImp >::LocalArgumentType
inherited

Tuple containing destination types of all preceding passes.

template<class DiscreteModelImp, class PreviousPassImp, int passIdImp = -1>
typedef DestinationType::LocalFunctionType Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::LocalFunctionType
template<class DiscreteModelImp, class PreviousPassImp, int passIdImp = -1>
typedef LocalMassMatrix< DiscreteFunctionSpaceType, VolumeQuadratureType > Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::LocalMassMatrixType

type of local mass matrix

template<class DiscreteModelImp, class PreviousPassImp, int passIdImp>
typedef PushBackTuple< LocalArgumentType, DestinationType* >::type Dune::Fem::Pass< DiscreteModelImp, PreviousPassImp, passIdImp >::NextArgumentType
inherited

Tuple containing destination types of all passes up to this one.

template<class DiscreteModelImp, class PreviousPassImp, int passIdImp>
typedef DestinationType :: DiscreteFunctionSpaceType :: CommunicationManagerType :: NonBlockingCommunicationType Dune::Fem::Pass< DiscreteModelImp, PreviousPassImp, passIdImp >::NonBlockingCommunicationType
inherited
template<class DiscreteModelImp, class PreviousPassImp, int passIdImp = -1>
typedef BaseType::PassIds Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::PassIds

pass ids up to here (tuple of integral constants)

template<class DiscreteModelImp, class PreviousPassImp, int passIdImp = -1>
typedef PreviousPassImp Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::PreviousPassType

Repetition of template arguments.

typedef DiscreteModelImp::Traits::DestinationType ::RangeFieldType Dune::Fem::Operator< PreviousPassImp::GlobalArgumentType , DiscreteModelImp::Traits::DestinationType >::RangeFieldType
inherited

field type of the operator's range

typedef DiscreteModelImp::Traits::DestinationType Dune::Fem::Operator< PreviousPassImp::GlobalArgumentType , DiscreteModelImp::Traits::DestinationType >::RangeFunctionType
inherited

type of discrete function in the operator's range

template<class DiscreteModelImp, class PreviousPassImp, int passIdImp = -1>
typedef DiscreteFunctionSpaceType::RangeType Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::RangeType
template<class DiscreteModelImp, class PreviousPassImp, int passIdImp = -1>
typedef TemporaryLocalFunction< DiscreteFunctionSpaceType > Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::TemporaryLocalFunctionType
template<class DiscreteModelImp, class PreviousPassImp, int passIdImp>
typedef PushFrontTuple< LocalArgumentType, const GlobalArgumentType* >::type Dune::Fem::Pass< DiscreteModelImp, PreviousPassImp, passIdImp >::TotalArgumentType
inherited

Tuple containing destination types of all preceding passes plus the global argument. This serves as the argument for this pass' computations

template<class DiscreteModelImp, class PreviousPassImp, int passIdImp = -1>
typedef DiscreteModelType::Traits::VolumeQuadratureType Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::VolumeQuadratureType

Member Enumeration Documentation

template<class DiscreteModelImp, class PreviousPassImp, int passIdImp = -1>
anonymous enum
Enumerator
dimRange 

Constructor & Destructor Documentation

template<class DiscreteModelImp, class PreviousPassImp, int passIdImp = -1>
Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::LocalDGPass ( DiscreteModelType problem,
PreviousPassType pass,
const DiscreteFunctionSpaceType spc,
const int  volumeQuadOrd = -1,
const int  faceQuadOrd = -1,
const bool  notThreadParallel = true 
)
inline

Constructor

Parameters
problemActual problem definition (see problem.hh)
passPrevious pass
spcSpace belonging to the discrete function local to this pass
volumeQuadOrddefines the order of the volume quadrature which is by default 2* space polynomial order
faceQuadOrddefines the order of the face quadrature which is by default 2* space polynomial order
notThreadParalleltrue if pass is used in single thread mode
template<class DiscreteModelImp, class PreviousPassImp, int passIdImp = -1>
virtual Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::~LocalDGPass ( )
inlinevirtual

Destructor.

Member Function Documentation

template<class DiscreteModelImp, class PreviousPassImp, int passIdImp>
bool Dune::Fem::LocalPass< DiscreteModelImp, PreviousPassImp, passIdImp >::active ( ) const
inlineinherited
template<class DiscreteModelImp, class PreviousPassImp, int passIdImp>
virtual void Dune::Fem::LocalPass< DiscreteModelImp, PreviousPassImp, passIdImp >::allocateLocalMemory ( )
inlinevirtualinherited
template<class DiscreteModelImp, class PreviousPassImp, int passIdImp = -1>
void Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::applyLocal ( const EntityType en) const
inlinevirtual

Actions to be taken on every element. To be overridden in a derived class.

Implements Dune::Fem::LocalPass< DiscreteModelImp, PreviousPassImp, passIdImp >.

Referenced by Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp >::applyLocal().

template<class DiscreteModelImp, class PreviousPassImp, int passIdImp = -1>
template<class NeighborChecker >
void Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::applyLocal ( const EntityType en,
const NeighborChecker &  nbChecker 
) const
inline

local integration

template<class DiscreteModelImp, class PreviousPassImp, int passIdImp = -1>
template<class NeighborChecker >
void Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::applyLocal ( const EntityType en,
TemporaryLocalFunctionType updEn,
const NeighborChecker &  nbChecker 
) const
inlineprotected

local integration

template<class DiscreteModelImp, class PreviousPassImp, int passIdImp = -1>
void Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::applyLocalMass ( const EntityType en) const
inline
template<class DiscreteModelImp, class PreviousPassImp, int passIdImp = -1>
template<bool conforming, class LocalFunctionImp >
double Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::applyLocalNeighbor ( const IntersectionType intersection,
const EntityType en,
const EntityType nb,
LocalFunctionImp &  updEn,
LocalFunctionImp &  updNb,
double &  wspeedS,
const bool  canUpdateNeighbor 
) const
inlineprotected
template<class DiscreteModelImp, class PreviousPassImp, int passIdImp = -1>
DiscreteModelCallerType& Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::caller ( ) const
inlineprotected
template<class DiscreteModelImp, class PreviousPassImp, int passIdImp>
void Dune::Fem::LocalPass< DiscreteModelImp, PreviousPassImp, passIdImp >::compute ( const ArgumentType arg,
DestinationType dest 
) const
inlinevirtualinherited

The actual computations are performed as follows. First, prepare the grid walkthrough, then call applyLocal on each entity and then call finalize.

Implements Dune::Fem::Pass< DiscreteModelImp, PreviousPassImp, passIdImp >.

template<class DiscreteModelImp, class PreviousPassImp, int passIdImp>
virtual double Dune::Fem::LocalPass< DiscreteModelImp, PreviousPassImp, passIdImp >::computeTime ( ) const
inlinevirtualinherited

return accumulated time needed by pass's operator () this method also resets the compute time to zero

template<class DiscreteModelImp, class PreviousPassImp, int passIdImp>
const DestinationType& Dune::Fem::Pass< DiscreteModelImp, PreviousPassImp, passIdImp >::destination ( ) const
inlineinherited

return reference to internal discrete function

template<class DiscreteModelImp, class PreviousPassImp, int passIdImp>
void Dune::Fem::LocalPass< DiscreteModelImp, PreviousPassImp, passIdImp >::disable ( ) const
inlineinherited

set pass status to inactive

template<class DiscreteModelImp, class PreviousPassImp, int passIdImp>
void Dune::Fem::LocalPass< DiscreteModelImp, PreviousPassImp, passIdImp >::enable ( ) const
inlineinherited

set pass status to active

template<class DiscreteModelImp, class PreviousPassImp, int passIdImp = -1>
template<class LocalFunctionImp >
void Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::evalVolumetricPartBoth ( const EntityType en,
const Geometry geo,
const VolumeQuadratureType volQuad,
LocalFunctionImp &  updEn 
) const
inlineprotected
template<class DiscreteModelImp, class PreviousPassImp, int passIdImp = -1>
template<class LocalFunctionImp >
void Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::evalVolumetricPartFlux ( const EntityType en,
const Geometry geo,
const VolumeQuadratureType volQuad,
LocalFunctionImp &  updEn 
) const
inlineprotected
template<class DiscreteModelImp, class PreviousPassImp, int passIdImp>
virtual void Dune::Fem::LocalPass< DiscreteModelImp, PreviousPassImp, passIdImp >::finalize ( const ArgumentType arg,
DestinationType dest 
) const
protectedpure virtualinherited
template<class DiscreteModelImp, class PreviousPassImp, int passIdImp = -1>
virtual void Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::finalize ( const ArgumentType arg,
DestinationType dest 
) const
inlinevirtual

Some timestep size management.

template<class DiscreteModelImp, class PreviousPassImp, int passIdImp>
virtual void Dune::Fem::Pass< DiscreteModelImp, PreviousPassImp, passIdImp >::finalizeComm ( ) const
inlineprotectedvirtualinherited

finalizeCommunication of this pass, this will collect the communication of destination_ and has to be overloaded in the implementation

template<class DiscreteModelImp, class PreviousPassImp, int passIdImp>
void Dune::Fem::Pass< DiscreteModelImp, PreviousPassImp, passIdImp >::finalizeCommunication ( const GlobalArgumentType arg) const
inlineinherited

finalizeCommunication collects possbily initiated non-blocking communications for all passes including the global argument this method will be called from the next pass

template<class DiscreteModelImp, class PreviousPassImp, int passIdImp>
void Dune::Fem::Pass< DiscreteModelImp, PreviousPassImp, passIdImp >::finalizeCommunication ( const TotalArgumentType totalArg) const
inlineprotectedinherited

finalizeCommunication collects possbily initiated non-blocking communications for all passes

template<class DiscreteModelImp, class PreviousPassImp, int passIdImp>
virtual void Dune::Fem::Pass< DiscreteModelImp, PreviousPassImp, passIdImp >::initComm ( ) const
inlineprotectedvirtualinherited

initializeCommunication of this pass, this will initialize the communication of destination_ and has to be overloaded in the implementation

template<class DiscreteModelImp, class PreviousPassImp, int passIdImp = -1>
template<class LocalFunctionImp >
void Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::initLocalFunction ( const EntityType en,
LocalFunctionImp &  update 
) const
inlineprotected
template<class DiscreteModelImp, class PreviousPassImp, int passIdImp>
NextArgumentType Dune::Fem::Pass< DiscreteModelImp, PreviousPassImp, passIdImp >::localArgument ( ) const
inlineinherited

Returns a compilation of the results of the preceding passes.

template<class DiscreteModelImp, class PreviousPassImp, int passIdImp = -1>
size_t Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::numberOfElements ( ) const
inlinevirtual

return number of elements visited during operator computation

Reimplemented from Dune::Fem::LocalPass< DiscreteModelImp, PreviousPassImp, passIdImp >.

virtual void Dune::Fem::Operator< PreviousPassImp::GlobalArgumentType , DiscreteModelImp::Traits::DestinationType >::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.
template<class DiscreteModelImp, class PreviousPassImp, int passIdImp>
void Dune::Fem::Pass< DiscreteModelImp, PreviousPassImp, passIdImp >::operator() ( const GlobalArgumentType arg,
DestinationType dest 
) const
inlineinherited

Application operator. The application operator is called by the client directly. It makes only sense to call this operator directly on the last pass.

template<class DiscreteModelImp, class PreviousPassImp, int passIdImp>
void Dune::Fem::Pass< DiscreteModelImp, PreviousPassImp, passIdImp >::pass ( const GlobalArgumentType arg) const
inlineinherited

Same as application operator, but uses own memory instead of the discrete function provided by the client. This method is called on all passes except the last one.

template<class DiscreteModelImp, class PreviousPassImp, int passIdImp>
int Dune::Fem::Pass< DiscreteModelImp, PreviousPassImp, passIdImp >::passNumber ( ) const
inlineinherited
template<class DiscreteModelImp, class PreviousPassImp, int passIdImp>
virtual void Dune::Fem::LocalPass< DiscreteModelImp, PreviousPassImp, passIdImp >::prepare ( const ArgumentType arg,
DestinationType dest 
) const
protectedpure virtualinherited
template<class DiscreteModelImp, class PreviousPassImp, int passIdImp = -1>
virtual void Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::prepare ( const ArgumentType arg,
DestinationType dest 
) const
inlinevirtual

In the preparations, store pointers to the actual arguments and destinations. Filter out the "right" arguments for this pass.

template<class DiscreteModelImp, class PreviousPassImp, int passIdImp = -1>
void Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::printTexInfo ( std::ostream &  out) const
inline

print tex info

template<class DiscreteModelImp, class PreviousPassImp, int passIdImp>
virtual void Dune::Fem::Pass< DiscreteModelImp, PreviousPassImp, passIdImp >::receiveComm ( ) const
inlineprotectedvirtualinherited

receiveCommunication of this pass, which will reset changes the communication did to the destination_ and has to be overloaded in the implementation

template<class DiscreteModelImp, class PreviousPassImp, int passIdImp>
void Dune::Fem::Pass< DiscreteModelImp, PreviousPassImp, passIdImp >::receiveCommunication ( const GlobalArgumentType arg) const
inlineinherited

finalizeCommunication collects possbily initiated non-blocking communications for all passes including the global argument this method will be called from the next pass

template<class DiscreteModelImp, class PreviousPassImp, int passIdImp>
void Dune::Fem::Pass< DiscreteModelImp, PreviousPassImp, passIdImp >::receiveCommunication ( const TotalArgumentType totalArg) const
inlineprotectedinherited

receiveCommunication collects possbily initiated non-blocking communications for all passes

template<class DiscreteModelImp, class PreviousPassImp, int passIdImp>
virtual bool Dune::Fem::Pass< DiscreteModelImp, PreviousPassImp, passIdImp >::requireCommunication ( ) const
inlinevirtualinherited

requireCommunication returns true if the pass needs communication at all

Note
The default implementation returns true

Reimplemented in Dune::Fem::DGInverseMassPass< functionalId, PreviousPass, id >.

template<class DiscreteModelImp, class PreviousPassImp, int passIdImp>
void Dune::Fem::Pass< DiscreteModelImp, PreviousPassImp, passIdImp >::setTime ( const double  t)
inlineinherited

Set time provider (which gives you access to the global time).

template<class DiscreteModelImp, class PreviousPassImp, int passIdImp>
const DiscreteFunctionSpaceType& Dune::Fem::LocalPass< DiscreteModelImp, PreviousPassImp, passIdImp >::space ( ) const
inlineinherited

return reference to space

template<class DiscreteModelImp, class PreviousPassImp, int passIdImp>
double Dune::Fem::Pass< DiscreteModelImp, PreviousPassImp, passIdImp >::time ( ) const
inlineinherited

return current time of calculation

Referenced by Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp >::prepare().

template<class DiscreteModelImp, class PreviousPassImp, int passIdImp>
double Dune::Fem::Pass< DiscreteModelImp, PreviousPassImp, passIdImp >::timeStepEstimate ( ) const
inlineinherited

return time step estimate for explicit Runge Kutta solver, calls recursively the method timeStepEstimateImpl of all previous passes. Make sure to overload the method timeStepEstimateImpl in your implementation if this method really does something.

template<class DiscreteModelImp, class PreviousPassImp, int passIdImp = -1>
double Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::timeStepEstimateImpl ( ) const
inlinevirtual

Estimate for the timestep size.

Reimplemented from Dune::Fem::Pass< DiscreteModelImp, PreviousPassImp, passIdImp >.

template<class DiscreteModelImp, class PreviousPassImp, int passIdImp = -1>
template<class LocalFunctionImp >
void Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::updateFunction ( const EntityType en,
LocalFunctionImp &  update 
) const
inlineprotected
template<class DiscreteModelImp, class PreviousPassImp, int passIdImp = -1>
template<class LocalFunctionImp >
void Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::updateFunctionAndApplyMass ( const EntityType en,
LocalFunctionImp &  update 
) const
inlineprotected

Member Data Documentation

template<class DiscreteModelImp, class PreviousPassImp, int passIdImp = -1>
ArgumentType* Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::arg_
mutableprotected
template<class DiscreteModelImp, class PreviousPassImp, int passIdImp = -1>
DiscreteModelCallerType* Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::caller_
mutableprotected
template<class DiscreteModelImp, class PreviousPassImp, int passIdImp>
double Dune::Fem::LocalPass< DiscreteModelImp, PreviousPassImp, passIdImp >::computeTime_
mutableprotectedinherited
template<class DiscreteModelImp, class PreviousPassImp, int passIdImp>
DeleteHandlerType* Dune::Fem::Pass< DiscreteModelImp, PreviousPassImp, passIdImp >::deleteHandler_
protectedinherited
template<class DiscreteModelImp, class PreviousPassImp, int passIdImp = -1>
DestinationType* Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::dest_
mutableprotected
template<class DiscreteModelImp, class PreviousPassImp, int passIdImp>
DestinationType* Dune::Fem::Pass< DiscreteModelImp, PreviousPassImp, passIdImp >::destination_
protectedinherited
template<class DiscreteModelImp, class PreviousPassImp, int passIdImp = -1>
double Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::dtMin_
mutableprotected
template<class DiscreteModelImp, class PreviousPassImp, int passIdImp = -1>
const int Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::faceQuadOrd_
protected
template<class DiscreteModelImp, class PreviousPassImp, int passIdImp>
bool Dune::Fem::Pass< DiscreteModelImp, PreviousPassImp, passIdImp >::finalizeCommunication_
mutableprotectedinherited
template<class DiscreteModelImp, class PreviousPassImp, int passIdImp = -1>
MutableArray< JacobianRangeType > Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::fMatVec_
mutableprotected
template<class DiscreteModelImp, class PreviousPassImp, int passIdImp = -1>
const GridPartType& Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::gridPart_
protected
template<class DiscreteModelImp, class PreviousPassImp, int passIdImp = -1>
const IndexSetType& Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::indexSet_
protected
template<class DiscreteModelImp, class PreviousPassImp, int passIdImp = -1>
LocalMassMatrixType Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::localMassMatrix_
protected
template<class DiscreteModelImp, class PreviousPassImp, int passIdImp = -1>
const double Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::minLimit_
protected
template<class DiscreteModelImp, class PreviousPassImp, int passIdImp = -1>
const bool Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::notThreadParallel_
protected
template<class DiscreteModelImp, class PreviousPassImp, int passIdImp>
size_t Dune::Fem::LocalPass< DiscreteModelImp, PreviousPassImp, passIdImp >::numberOfElements_
mutableprotectedinherited
template<class DiscreteModelImp, class PreviousPassImp, int passIdImp>
const int Dune::Fem::Pass< DiscreteModelImp, PreviousPassImp, passIdImp >::passId = passIdImp
staticinherited
template<class DiscreteModelImp, class PreviousPassImp, int passIdImp>
bool Dune::Fem::LocalPass< DiscreteModelImp, PreviousPassImp, passIdImp >::passIsActive_
mutableprotectedinherited
template<class DiscreteModelImp, class PreviousPassImp, int passIdImp>
const std::string Dune::Fem::LocalPass< DiscreteModelImp, PreviousPassImp, passIdImp >::passName_
protectedinherited
template<class DiscreteModelImp, class PreviousPassImp, int passIdImp>
const int Dune::Fem::Pass< DiscreteModelImp, PreviousPassImp, passIdImp >::passNum = PreviousPassType::passNum + 1
staticinherited

position in pass tree

template<class DiscreteModelImp, class PreviousPassImp, int passIdImp>
PreviousPassType& Dune::Fem::Pass< DiscreteModelImp, PreviousPassImp, passIdImp >::previousPass_
protectedinherited
template<class DiscreteModelImp, class PreviousPassImp, int passIdImp = -1>
DiscreteModelType& Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::problem_
protected
template<class DiscreteModelImp, class PreviousPassImp, int passIdImp = -1>
const DiscreteFunctionSpaceType& Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::spc_
protected
template<class DiscreteModelImp, class PreviousPassImp, int passIdImp>
double Dune::Fem::Pass< DiscreteModelImp, PreviousPassImp, passIdImp >::time_
protectedinherited
template<class DiscreteModelImp, class PreviousPassImp, int passIdImp = -1>
TemporaryLocalFunctionType Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::updEn_
mutableprotected
template<class DiscreteModelImp, class PreviousPassImp, int passIdImp = -1>
TemporaryLocalFunctionType Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::updNb_
mutableprotected
template<class DiscreteModelImp, class PreviousPassImp, int passIdImp = -1>
MutableArray< RangeType > Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::valEnVec_
mutableprotected
template<class DiscreteModelImp, class PreviousPassImp, int passIdImp = -1>
MutableArray< RangeType > Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::valNbVec_
mutableprotected
template<class DiscreteModelImp, class PreviousPassImp, int passIdImp = -1>
MutableArray<bool> Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::visited_
mutableprotected
template<class DiscreteModelImp, class PreviousPassImp, int passIdImp = -1>
const int Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::volumeQuadOrd_
protected

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