dune-fem
2.4.1-rc
|
Base class for specific pass implementations. More...
#include </local/tomalk/somewhere/tmp/dune-fem/dune/fem/pass/common/local.hh>
Classes | |
class | DeleteHandler |
Public Types | |
typedef PreviousPassImp | PreviousPassType |
Type of the preceding pass. More... | |
typedef Dune::PushBackTuple< typename PreviousPassType::PassIds, std::integral_constant< int, passIdImp > >::type | PassIds |
pass ids up to here (tuple of integral constants) More... | |
typedef DiscreteModelImp::Traits::DestinationType | DestinationType |
typedef DeleteHandler< DestinationType > | DeleteHandlerType |
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 | |
int | passNumber () const |
Pass (PreviousPassType &pass) | |
virtual | ~Pass () |
Destructor. More... | |
void | printTexInfo (std::ostream &out) const |
printTex info of operator More... | |
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 | allocateLocalMemory ()=0 |
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 DestinationType & | destination () 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 double | timeStepEstimateImpl () const |
virtual bool | requireCommunication () const |
requireCommunication returns true if the pass needs communication at all More... | |
virtual void | operator() (const DomainFunctionType &u, RangeFunctionType &w) const =0 |
application operator More... | |
Static Public Attributes | |
static const int | passNum = PreviousPassType::passNum + 1 |
position in pass tree More... | |
static const int | passId = passIdImp |
Protected Member Functions | |
virtual void | compute (const TotalArgumentType &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 | |
DestinationType * | destination_ |
destination (might be set from outside) More... | |
DeleteHandlerType * | deleteHandler_ |
object to delete destination_ More... | |
PreviousPassType & | previousPass_ |
double | time_ |
bool | finalizeCommunication_ |
Base class for specific pass implementations.
Pass not only provides the interface for the specialised implementations, but also organizes the calls to other passes and assembles the results of the preceding passes in a tuple of discrete functions which can be used in the computations of the pass. The computations must be implemented in the compute method of the derived classes.
typedef DeleteHandler<DestinationType> Dune::Fem::Pass< DiscreteModelImp, PreviousPassImp, passIdImp >::DeleteHandlerType |
type of mem handler, which deletes destination
typedef DiscreteModelImp::Traits::DestinationType Dune::Fem::Pass< DiscreteModelImp, PreviousPassImp, passIdImp >::DestinationType |
Type of the discrete function which stores the result of this pass' computations.
|
inherited |
field type of the operator's domain
|
inherited |
type of discrete function in the operator's domain
typedef PreviousPassType::GlobalArgumentType Dune::Fem::Pass< DiscreteModelImp, PreviousPassImp, passIdImp >::GlobalArgumentType |
Type of the discrete function which is passed to the overall operator by the user
typedef PreviousPassType::NextArgumentType Dune::Fem::Pass< DiscreteModelImp, PreviousPassImp, passIdImp >::LocalArgumentType |
Tuple containing destination types of all preceding passes.
typedef PushBackTuple< LocalArgumentType, DestinationType* >::type Dune::Fem::Pass< DiscreteModelImp, PreviousPassImp, passIdImp >::NextArgumentType |
Tuple containing destination types of all passes up to this one.
typedef DestinationType :: DiscreteFunctionSpaceType :: CommunicationManagerType :: NonBlockingCommunicationType Dune::Fem::Pass< DiscreteModelImp, PreviousPassImp, passIdImp >::NonBlockingCommunicationType |
typedef Dune::PushBackTuple< typename PreviousPassType::PassIds, std::integral_constant< int, passIdImp > >::type Dune::Fem::Pass< DiscreteModelImp, PreviousPassImp, passIdImp >::PassIds |
pass ids up to here (tuple of integral constants)
typedef PreviousPassImp Dune::Fem::Pass< DiscreteModelImp, PreviousPassImp, passIdImp >::PreviousPassType |
Type of the preceding pass.
|
inherited |
field type of the operator's range
|
inherited |
type of discrete function in the operator's range
typedef PushFrontTuple< LocalArgumentType, const GlobalArgumentType* >::type Dune::Fem::Pass< DiscreteModelImp, PreviousPassImp, passIdImp >::TotalArgumentType |
Tuple containing destination types of all preceding passes plus the global argument. This serves as the argument for this pass' computations
|
inline |
Constructor
pass | Previous pass |
|
inlinevirtual |
Destructor.
|
pure virtual |
Allocates the local memory of a pass, if needed. If memory is allocated, then deleteHandler must be set for removal of memory to avoid leaks
Implemented in Dune::Fem::InsertFunctionPass< DiscreteFunction, PreviousPass, passId >, Dune::Fem::InsertOperatorPass< Operator, PreviousPass, id >, Dune::Fem::LocalPass< DiscreteModelImp, PreviousPassImp, passIdImp >, Dune::Fem::LocalPass< DiscreteModelImp, PreviousPassImp,-1 >, and Dune::Fem::LocalPass< DGInverseMassPassDiscreteModel< functionalId, PreviousPass >, PreviousPass, id >.
|
protectedpure virtual |
Does the actual computations. Needs to be overridden in the derived clases
Implemented in Dune::Fem::InsertFunctionPass< DiscreteFunction, PreviousPass, passId >, Dune::Fem::LocalPass< DiscreteModelImp, PreviousPassImp, passIdImp >, Dune::Fem::LocalPass< DiscreteModelImp, PreviousPassImp,-1 >, and Dune::Fem::LocalPass< DGInverseMassPassDiscreteModel< functionalId, PreviousPass >, PreviousPass, id >.
|
inline |
return reference to internal discrete function
|
inlineprotectedvirtual |
finalizeCommunication of this pass, this will collect the communication of destination_ and has to be overloaded in the implementation
|
inline |
finalizeCommunication collects possbily initiated non-blocking communications for all passes including the global argument this method will be called from the next pass
|
inlineprotected |
finalizeCommunication collects possbily initiated non-blocking communications for all passes
|
inlineprotectedvirtual |
initializeCommunication of this pass, this will initialize the communication of destination_ and has to be overloaded in the implementation
|
inline |
Returns a compilation of the results of the preceding passes.
|
pure virtualinherited |
application operator
[in] | u | argument discrete function |
[out] | w | destination discrete function |
|
inline |
Application operator. The application operator is called by the client directly. It makes only sense to call this operator directly on the last pass.
|
inline |
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.
|
inline |
|
inline |
printTex info of operator
Referenced by Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp >::printTexInfo().
|
inlineprotectedvirtual |
receiveCommunication of this pass, which will reset changes the communication did to the destination_ and has to be overloaded in the implementation
|
inline |
finalizeCommunication collects possbily initiated non-blocking communications for all passes including the global argument this method will be called from the next pass
|
inlineprotected |
receiveCommunication collects possbily initiated non-blocking communications for all passes
|
inlinevirtual |
requireCommunication returns true if the pass needs communication at all
Reimplemented in Dune::Fem::DGInverseMassPass< functionalId, PreviousPass, id >.
|
inline |
Set time provider (which gives you access to the global time).
|
inline |
return current time of calculation
Referenced by Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp >::prepare().
|
inline |
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.
|
inlinevirtual |
derived passes have to implement this method returning the time step estimate
Reimplemented in Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >, and Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp >.
|
protected |
object to delete destination_
Referenced by Dune::Fem::LocalPass< DGInverseMassPassDiscreteModel< functionalId, PreviousPass >, PreviousPass, id >::allocateLocalMemory().
|
protected |
destination (might be set from outside)
Referenced by Dune::Fem::LocalPass< DGInverseMassPassDiscreteModel< functionalId, PreviousPass >, PreviousPass, id >::allocateLocalMemory().
|
mutableprotected |
|
static |
|
static |
position in pass tree
|
protected |
|
protected |