dune-fem
2.4.1-rc
|
#include </local/tomalk/somewhere/tmp/dune-fem/dune/fem/pass/localdg/pass.hh>
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, PassIds > | DiscreteModelCallerType |
typedef GridPartType::IndexSetType | IndexSetType |
typedef TemporaryLocalFunction< DiscreteFunctionSpaceType > | TemporaryLocalFunctionType |
typedef LocalMassMatrix< DiscreteFunctionSpaceType, VolumeQuadratureType > | LocalMassMatrixType |
type of local mass matrix More... | |
typedef EntityType | Entity |
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 | |
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 DiscreteFunctionSpaceType & | space () 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 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 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 |
DiscreteModelCallerType & | caller () 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 | |
DiscreteModelCallerType * | caller_ |
DiscreteModelType & | problem_ |
ArgumentType * | arg_ |
DestinationType * | dest_ |
const DiscreteFunctionSpaceType & | spc_ |
const GridPartType & | gridPart_ |
const IndexSetType & | indexSet_ |
MutableArray< bool > | visited_ |
TemporaryLocalFunctionType | updEn_ |
TemporaryLocalFunctionType | updNb_ |
MutableArray< JacobianRangeType > | fMatVec_ |
Some helper variables. More... | |
MutableArray< RangeType > | valEnVec_ |
MutableArray< RangeType > | valNbVec_ |
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_ |
DestinationType * | destination_ |
destination (might be set from outside) More... | |
DeleteHandlerType * | deleteHandler_ |
object to delete destination_ More... | |
PreviousPassType & | previousPass_ |
double | time_ |
bool | finalizeCommunication_ |
Concrete implementation of Pass for first hyperbolic systems using LDG
typedef BaseType::ArgumentType Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::ArgumentType |
typedef LocalPass< DiscreteModelImp , PreviousPassImp , passIdImp > Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::BaseType |
Base class.
typedef DiscreteFunctionSpaceType::BasisFunctionSetType Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::BasisFunctionSetType |
|
inherited |
type of mem handler, which deletes destination
typedef DiscreteModelType::Traits::DestinationType Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::DestinationType |
typedef DiscreteModelType::Traits::DiscreteFunctionSpaceType Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::DiscreteFunctionSpaceType |
typedef DGDiscreteModelCaller< DiscreteModelType, ArgumentType, PassIds > Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::DiscreteModelCallerType |
typedef DiscreteModelImp Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::DiscreteModelType |
Repetition of template arguments.
|
inherited |
field type of the operator's domain
|
inherited |
type of discrete function in the operator's domain
typedef DiscreteFunctionSpaceType::DomainType Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::DomainType |
|
inherited |
typedef BaseType::Entity Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::EntityType |
typedef DiscreteModelType::Traits::FaceQuadratureType Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::FaceQuadratureType |
typedef GridType::template Codim<0>::Geometry Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::Geometry |
|
inherited |
Type of the discrete function which is passed to the overall operator by the user
typedef DiscreteFunctionSpaceType::GridPartType Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::GridPartType |
typedef DiscreteFunctionSpaceType::GridType Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::GridType |
typedef GridPartType::IndexSetType Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::IndexSetType |
typedef GridPartType::IntersectionIteratorType Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::IntersectionIteratorType |
typedef IntersectionIteratorType::Intersection Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::IntersectionType |
typedef DiscreteFunctionSpaceType::IteratorType Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::IteratorType |
Iterator over the space.
typedef DiscreteFunctionSpaceType::JacobianRangeType Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::JacobianRangeType |
|
inherited |
Tuple containing destination types of all preceding passes.
typedef DestinationType::LocalFunctionType Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::LocalFunctionType |
typedef LocalMassMatrix< DiscreteFunctionSpaceType, VolumeQuadratureType > Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::LocalMassMatrixType |
type of local mass matrix
|
inherited |
Tuple containing destination types of all passes up to this one.
|
inherited |
typedef BaseType::PassIds Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::PassIds |
pass ids up to here (tuple of integral constants)
typedef PreviousPassImp Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::PreviousPassType |
Repetition of template arguments.
|
inherited |
field type of the operator's range
|
inherited |
type of discrete function in the operator's range
typedef DiscreteFunctionSpaceType::RangeType Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::RangeType |
typedef TemporaryLocalFunction< DiscreteFunctionSpaceType > Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::TemporaryLocalFunctionType |
|
inherited |
Tuple containing destination types of all preceding passes plus the global argument. This serves as the argument for this pass' computations
typedef DiscreteModelType::Traits::VolumeQuadratureType Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp, passIdImp >::VolumeQuadratureType |
anonymous enum |
|
inline |
Constructor
problem | Actual problem definition (see problem.hh) |
pass | Previous pass |
spc | Space belonging to the discrete function local to this pass |
volumeQuadOrd | defines the order of the volume quadrature which is by default 2* space polynomial order |
faceQuadOrd | defines the order of the face quadrature which is by default 2* space polynomial order |
notThreadParallel | true if pass is used in single thread mode |
|
inlinevirtual |
Destructor.
|
inlineinherited |
return true if pass is active
Referenced by Dune::Fem::LocalPass< DGInverseMassPassDiscreteModel< functionalId, PreviousPass >, PreviousPass, id >::compute().
|
inlinevirtualinherited |
build up local memory
Implements Dune::Fem::Pass< DiscreteModelImp, PreviousPassImp, passIdImp >.
|
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().
|
inline |
local integration
|
inlineprotected |
local integration
|
inline |
|
inlineprotected |
|
inlineprotected |
Referenced by Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp >::applyLocal(), Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp >::applyLocalMass(), Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp >::applyLocalNeighbor(), Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp >::evalVolumetricPartBoth(), Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp >::evalVolumetricPartFlux(), and Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp >::updateFunctionAndApplyMass().
|
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 >.
|
inlinevirtualinherited |
return accumulated time needed by pass's operator () this method also resets the compute time to zero
|
inlineinherited |
return reference to internal discrete function
|
inlineinherited |
set pass status to inactive
|
inlineinherited |
set pass status to active
|
inlineprotected |
|
inlineprotected |
|
protectedpure virtualinherited |
Actions to be carried out after a global grid walkthrough. To be overridden in a derived class.
Implemented in Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp >.
Referenced by Dune::Fem::LocalPass< DGInverseMassPassDiscreteModel< functionalId, PreviousPass >, PreviousPass, id >::compute(), and Dune::Fem::LocalPass< DGInverseMassPassDiscreteModel< functionalId, PreviousPass >, PreviousPass, id >::disable().
|
inlinevirtual |
Some timestep size management.
|
inlineprotectedvirtualinherited |
finalizeCommunication of this pass, this will collect the communication of destination_ and has to be overloaded in the implementation
|
inlineinherited |
finalizeCommunication collects possbily initiated non-blocking communications for all passes including the global argument this method will be called from the next pass
|
inlineprotectedinherited |
finalizeCommunication collects possbily initiated non-blocking communications for all passes
|
inlineprotectedvirtualinherited |
initializeCommunication of this pass, this will initialize the communication of destination_ and has to be overloaded in the implementation
|
inlineprotected |
|
inlineinherited |
Returns a compilation of the results of the preceding passes.
|
inlinevirtual |
return number of elements visited during operator computation
Reimplemented from Dune::Fem::LocalPass< DiscreteModelImp, PreviousPassImp, passIdImp >.
|
pure virtualinherited |
application operator
[in] | u | argument discrete function |
[out] | w | destination discrete function |
|
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.
|
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.
|
inlineinherited |
|
protectedpure virtualinherited |
Actions to be carried out before a global grid walkthrough. To be overridden in a derived class.
Implemented in Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp >.
Referenced by Dune::Fem::LocalPass< DGInverseMassPassDiscreteModel< functionalId, PreviousPass >, PreviousPass, id >::compute(), and Dune::Fem::LocalPass< DGInverseMassPassDiscreteModel< functionalId, PreviousPass >, PreviousPass, id >::disable().
|
inlinevirtual |
In the preparations, store pointers to the actual arguments and destinations. Filter out the "right" arguments for this pass.
|
inline |
print tex info
|
inlineprotectedvirtualinherited |
receiveCommunication of this pass, which will reset changes the communication did to the destination_ and has to be overloaded in the implementation
|
inlineinherited |
finalizeCommunication collects possbily initiated non-blocking communications for all passes including the global argument this method will be called from the next pass
|
inlineprotectedinherited |
receiveCommunication collects possbily initiated non-blocking communications for all passes
|
inlinevirtualinherited |
requireCommunication returns true if the pass needs communication at all
Reimplemented in Dune::Fem::DGInverseMassPass< functionalId, PreviousPass, id >.
|
inlineinherited |
Set time provider (which gives you access to the global time).
|
inlineinherited |
return reference to space
|
inlineinherited |
return current time of calculation
Referenced by Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp >::prepare().
|
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.
|
inlinevirtual |
Estimate for the timestep size.
Reimplemented from Dune::Fem::Pass< DiscreteModelImp, PreviousPassImp, passIdImp >.
|
inlineprotected |
add update to destination
Referenced by Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp >::applyLocalNeighbor().
|
inlineprotected |
add update to destination
Referenced by Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp >::applyLocal().
|
mutableprotected |
|
mutableprotected |
|
mutableprotectedinherited |
|
protectedinherited |
object to delete destination_
Referenced by Dune::Fem::LocalPass< DGInverseMassPassDiscreteModel< functionalId, PreviousPass >, PreviousPass, id >::allocateLocalMemory().
|
mutableprotected |
Referenced by Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp >::applyLocalMass(), Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp >::prepare(), Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp >::updateFunction(), and Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp >::updateFunctionAndApplyMass().
|
protectedinherited |
destination (might be set from outside)
Referenced by Dune::Fem::LocalPass< DGInverseMassPassDiscreteModel< functionalId, PreviousPass >, PreviousPass, id >::allocateLocalMemory().
|
mutableprotected |
Referenced by Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp >::applyLocal(), Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp >::evalVolumetricPartBoth(), Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp >::prepare(), and Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp >::timeStepEstimateImpl().
|
protected |
|
mutableprotectedinherited |
|
mutableprotected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
mutableprotectedinherited |
|
staticinherited |
|
mutableprotectedinherited |
Referenced by Dune::Fem::LocalPass< DGInverseMassPassDiscreteModel< functionalId, PreviousPass >, PreviousPass, id >::active(), Dune::Fem::LocalPass< DGInverseMassPassDiscreteModel< functionalId, PreviousPass >, PreviousPass, id >::disable(), and Dune::Fem::LocalPass< DGInverseMassPassDiscreteModel< functionalId, PreviousPass >, PreviousPass, id >::enable().
|
protectedinherited |
|
staticinherited |
position in pass tree
|
protectedinherited |
|
protected |
|
protected |
|
protectedinherited |
|
mutableprotected |
|
mutableprotected |
|
mutableprotected |
Referenced by Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp >::applyLocal(), Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp >::applyLocalNeighbor(), Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp >::evalVolumetricPartBoth(), and Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp >::LocalDGPass().
|
mutableprotected |
|
mutableprotected |
|
protected |