Peano
Loading...
Searching...
No Matches
peano4::grid::GridTraversalEvent Struct Reference

#include <GridTraversalEvent.h>

Collaboration diagram for peano4::grid::GridTraversalEvent:

Public Types

enum  ObjectConstruction { NoData }
 

Public Member Functions

 GridTraversalEvent ()
 
 GridTraversalEvent (tarch::la::Vector< Dimensions, double > __x, tarch::la::Vector< Dimensions, double > __h, std::bitset< TwoPowerD > __hasBeenRefined, std::bitset< TwoPowerD > __willBeRefined, std::bitset< TwoPowerD > __isVertexLocal, std::bitset< TwoPowerD > __isParentVertexLocal, std::bitset< TwoPowerD > __isVertexParentOfSubtree, std::bitset< TwoTimesD > __isFaceLocal, bool __isCellLocal, bool __isParentCellLocal, std::bitset< TwoPowerD > __isVertexAdjacentToParallelDomainBoundary, std::bitset< TwoTimesD > __isFaceAdjacentToParallelDomainBoundary, tarch::la::Vector< TwoPowerD, int > __numberOfAdjacentTreesPerVertex, std::bitset< ThreePowerD > __isAdjacentCellLocal, tarch::la::Vector< TwoPowerD, int > __vertexDataFrom, tarch::la::Vector< TwoPowerD, int > __vertexDataTo, tarch::la::Vector< TwoTimesD, int > __faceDataFrom, tarch::la::Vector< TwoTimesD, int > __faceDataTo, int __cellData, tarch::la::Vector< Dimensions, int > __relativePositionToFather, int __invokingSpacetree, bool __invokingSpacetreeIsNotInvolvedInAnyDynamicLoadBalancing)
 
tarch::la::Vector< Dimensions, doublegetX () const
 
void setX (const tarch::la::Vector< Dimensions, double > &value)
 
double getX (int index) const
 
void setX (int index, double value)
 
tarch::la::Vector< Dimensions, doublegetH () const
 
void setH (const tarch::la::Vector< Dimensions, double > &value)
 
double getH (int index) const
 
void setH (int index, double value)
 
std::bitset< TwoPowerDgetHasBeenRefined () const
 
void setHasBeenRefined (const std::bitset< TwoPowerD > &value)
 
bool getHasBeenRefined (int index) const
 
void setHasBeenRefined (int index, bool value)
 
void flipHasBeenRefined (int index)
 
std::bitset< TwoPowerDgetWillBeRefined () const
 
void setWillBeRefined (const std::bitset< TwoPowerD > &value)
 
bool getWillBeRefined (int index) const
 
void setWillBeRefined (int index, bool value)
 
void flipWillBeRefined (int index)
 
std::bitset< TwoPowerDgetIsVertexLocal () const
 
void setIsVertexLocal (const std::bitset< TwoPowerD > &value)
 
bool getIsVertexLocal (int index) const
 
void setIsVertexLocal (int index, bool value)
 
void flipIsVertexLocal (int index)
 
std::bitset< TwoPowerDgetIsParentVertexLocal () const
 
void setIsParentVertexLocal (const std::bitset< TwoPowerD > &value)
 
bool getIsParentVertexLocal (int index) const
 
void setIsParentVertexLocal (int index, bool value)
 
void flipIsParentVertexLocal (int index)
 
std::bitset< TwoPowerDgetIsVertexParentOfSubtree () const
 
void setIsVertexParentOfSubtree (const std::bitset< TwoPowerD > &value)
 
bool getIsVertexParentOfSubtree (int index) const
 
void setIsVertexParentOfSubtree (int index, bool value)
 
void flipIsVertexParentOfSubtree (int index)
 
std::bitset< TwoTimesDgetIsFaceLocal () const
 
void setIsFaceLocal (const std::bitset< TwoTimesD > &value)
 
bool getIsFaceLocal (int index) const
 
void setIsFaceLocal (int index, bool value)
 
void flipIsFaceLocal (int index)
 
bool getIsCellLocal () const
 
void setIsCellLocal (bool value)
 
bool getIsParentCellLocal () const
 
void setIsParentCellLocal (bool value)
 
std::bitset< TwoPowerDgetIsVertexAdjacentToParallelDomainBoundary () const
 
void setIsVertexAdjacentToParallelDomainBoundary (const std::bitset< TwoPowerD > &value)
 
bool getIsVertexAdjacentToParallelDomainBoundary (int index) const
 
void setIsVertexAdjacentToParallelDomainBoundary (int index, bool value)
 
void flipIsVertexAdjacentToParallelDomainBoundary (int index)
 
std::bitset< TwoTimesDgetIsFaceAdjacentToParallelDomainBoundary () const
 
void setIsFaceAdjacentToParallelDomainBoundary (const std::bitset< TwoTimesD > &value)
 
bool getIsFaceAdjacentToParallelDomainBoundary (int index) const
 
void setIsFaceAdjacentToParallelDomainBoundary (int index, bool value)
 
void flipIsFaceAdjacentToParallelDomainBoundary (int index)
 
tarch::la::Vector< TwoPowerD, intgetNumberOfAdjacentTreesPerVertex () const
 
void setNumberOfAdjacentTreesPerVertex (const tarch::la::Vector< TwoPowerD, int > &value)
 
int getNumberOfAdjacentTreesPerVertex (int index) const
 
void setNumberOfAdjacentTreesPerVertex (int index, int value)
 
std::bitset< ThreePowerDgetIsAdjacentCellLocal () const
 
void setIsAdjacentCellLocal (const std::bitset< ThreePowerD > &value)
 
bool getIsAdjacentCellLocal (int index) const
 
void setIsAdjacentCellLocal (int index, bool value)
 
void flipIsAdjacentCellLocal (int index)
 
tarch::la::Vector< TwoPowerD, intgetVertexDataFrom () const
 
void setVertexDataFrom (const tarch::la::Vector< TwoPowerD, int > &value)
 
int getVertexDataFrom (int index) const
 
void setVertexDataFrom (int index, int value)
 
tarch::la::Vector< TwoPowerD, intgetVertexDataTo () const
 
void setVertexDataTo (const tarch::la::Vector< TwoPowerD, int > &value)
 
int getVertexDataTo (int index) const
 
void setVertexDataTo (int index, int value)
 
tarch::la::Vector< TwoTimesD, intgetFaceDataFrom () const
 
void setFaceDataFrom (const tarch::la::Vector< TwoTimesD, int > &value)
 
int getFaceDataFrom (int index) const
 
void setFaceDataFrom (int index, int value)
 
tarch::la::Vector< TwoTimesD, intgetFaceDataTo () const
 
void setFaceDataTo (const tarch::la::Vector< TwoTimesD, int > &value)
 
int getFaceDataTo (int index) const
 
void setFaceDataTo (int index, int value)
 
int getCellData () const
 
void setCellData (int value)
 
tarch::la::Vector< Dimensions, intgetRelativePositionToFather () const
 
void setRelativePositionToFather (const tarch::la::Vector< Dimensions, int > &value)
 
int getRelativePositionToFather (int index) const
 
void setRelativePositionToFather (int index, int value)
 
int getInvokingSpacetree () const
 
void setInvokingSpacetree (int value)
 
bool getInvokingSpacetreeIsNotInvolvedInAnyDynamicLoadBalancing () const
 
void setInvokingSpacetreeIsNotInvolvedInAnyDynamicLoadBalancing (bool value)
 
 GridTraversalEvent (const GridTraversalEvent &copy)
 
int getSenderRank () const
 
 GridTraversalEvent (ObjectConstruction)
 
std::string toString () const
 

Static Public Member Functions

static MPI_Datatype getForkDatatype ()
 Hands out MPI datatype if we work without the LLVM MPI extension.
 
static MPI_Datatype getJoinDatatype ()
 
static MPI_Datatype getBoundaryExchangeDatatype ()
 
static MPI_Datatype getMultiscaleDataExchangeDatatype ()
 
static MPI_Datatype getGlobalCommunciationDatatype ()
 
static void freeForkDatatype ()
 
static void freeJoinDatatype ()
 
static void freeBoundaryExchangeDatatype ()
 
static void freeMultiscaleDataExchangeDatatype ()
 
static void freeGlobalCommunciationDatatype ()
 
static void initDatatype ()
 Wrapper around getDatatype() to trigger lazy evaluation if we use the lazy initialisation.
 
static void shutdownDatatype ()
 Free the underlying MPI datatype.
 
static void send (const peano4::grid::GridTraversalEvent &buffer, int destination, int tag, MPI_Comm communicator)
 In DaStGen (the first version), I had a non-static version of the send as well as the receive.
 
static void receive (peano4::grid::GridTraversalEvent &buffer, int source, int tag, MPI_Comm communicator)
 
static void send (const peano4::grid::GridTraversalEvent &buffer, int destination, int tag, std::function< void()> startCommunicationFunctor, std::function< void()> waitFunctor, MPI_Comm communicator)
 Alternative to the other send() where I trigger a non-blocking send an then invoke the functor until the corresponding MPI_Test tells me that the message went through.
 
static void receive (peano4::grid::GridTraversalEvent &buffer, int source, int tag, std::function< void()> startCommunicationFunctor, std::function< void()> waitFunctor, MPI_Comm communicator)
 
static void sendAndPollDanglingMessages (const peano4::grid::GridTraversalEvent &message, int destination, int tag, MPI_Comm communicator=tarch::mpi::Rank::getInstance().getCommunicator())
 
static void receiveAndPollDanglingMessages (peano4::grid::GridTraversalEvent &message, int source, int tag, MPI_Comm communicator=tarch::mpi::Rank::getInstance().getCommunicator())
 

Private Attributes

tarch::la::Vector< Dimensions, double_x
 
tarch::la::Vector< Dimensions, double_h
 
std::bitset< TwoPowerD_hasBeenRefined
 
std::bitset< TwoPowerD_willBeRefined
 
std::bitset< TwoPowerD_isVertexLocal
 
std::bitset< TwoPowerD_isParentVertexLocal
 
std::bitset< TwoPowerD_isVertexParentOfSubtree
 
std::bitset< TwoTimesD_isFaceLocal
 
bool _isCellLocal
 
bool _isParentCellLocal
 
std::bitset< TwoPowerD_isVertexAdjacentToParallelDomainBoundary
 
std::bitset< TwoTimesD_isFaceAdjacentToParallelDomainBoundary
 
tarch::la::Vector< TwoPowerD, int_numberOfAdjacentTreesPerVertex
 
std::bitset< ThreePowerD_isAdjacentCellLocal
 
tarch::la::Vector< TwoPowerD, int_vertexDataFrom
 
tarch::la::Vector< TwoPowerD, int_vertexDataTo
 
tarch::la::Vector< TwoTimesD, int_faceDataFrom
 
tarch::la::Vector< TwoTimesD, int_faceDataTo
 
int _cellData
 
tarch::la::Vector< Dimensions, int_relativePositionToFather
 
int _invokingSpacetree
 
bool _invokingSpacetreeIsNotInvolvedInAnyDynamicLoadBalancing
 
int _senderDestinationRank
 

Static Private Attributes

static MPI_Datatype Datatype = MPI_DATATYPE_NULL
 Whenever we use LLVM's MPI extension (DaStGe), we rely on lazy initialisation of the datatype.
 

Detailed Description

Definition at line 39 of file GridTraversalEvent.h.

Member Enumeration Documentation

◆ ObjectConstruction

Enumerator
NoData 

Definition at line 212 of file GridTraversalEvent.h.

Constructor & Destructor Documentation

◆ GridTraversalEvent() [1/4]

peano4::grid::GridTraversalEvent::GridTraversalEvent ( )

Definition at line 43 of file GridTraversalEvent.h.

◆ GridTraversalEvent() [2/4]

peano4::grid::GridTraversalEvent::GridTraversalEvent ( tarch::la::Vector< Dimensions, double > __x,
tarch::la::Vector< Dimensions, double > __h,
std::bitset< TwoPowerD > __hasBeenRefined,
std::bitset< TwoPowerD > __willBeRefined,
std::bitset< TwoPowerD > __isVertexLocal,
std::bitset< TwoPowerD > __isParentVertexLocal,
std::bitset< TwoPowerD > __isVertexParentOfSubtree,
std::bitset< TwoTimesD > __isFaceLocal,
bool __isCellLocal,
bool __isParentCellLocal,
std::bitset< TwoPowerD > __isVertexAdjacentToParallelDomainBoundary,
std::bitset< TwoTimesD > __isFaceAdjacentToParallelDomainBoundary,
tarch::la::Vector< TwoPowerD, int > __numberOfAdjacentTreesPerVertex,
std::bitset< ThreePowerD > __isAdjacentCellLocal,
tarch::la::Vector< TwoPowerD, int > __vertexDataFrom,
tarch::la::Vector< TwoPowerD, int > __vertexDataTo,
tarch::la::Vector< TwoTimesD, int > __faceDataFrom,
tarch::la::Vector< TwoTimesD, int > __faceDataTo,
int __cellData,
tarch::la::Vector< Dimensions, int > __relativePositionToFather,
int __invokingSpacetree,
bool __invokingSpacetreeIsNotInvolvedInAnyDynamicLoadBalancing )

◆ GridTraversalEvent() [3/4]

peano4::grid::GridTraversalEvent::GridTraversalEvent ( const GridTraversalEvent & copy)

Definition at line 37 of file GridTraversalEvent.cpp.

References setH(), and setX().

Here is the call graph for this function:

◆ GridTraversalEvent() [4/4]

peano4::grid::GridTraversalEvent::GridTraversalEvent ( ObjectConstruction )

Definition at line 216 of file GridTraversalEvent.h.

Member Function Documentation

◆ flipHasBeenRefined()

void peano4::grid::GridTraversalEvent::flipHasBeenRefined ( int index)

Definition at line 200 of file GridTraversalEvent.cpp.

◆ flipIsAdjacentCellLocal()

void peano4::grid::GridTraversalEvent::flipIsAdjacentCellLocal ( int index)

Definition at line 472 of file GridTraversalEvent.cpp.

◆ flipIsFaceAdjacentToParallelDomainBoundary()

void peano4::grid::GridTraversalEvent::flipIsFaceAdjacentToParallelDomainBoundary ( int index)

Definition at line 423 of file GridTraversalEvent.cpp.

◆ flipIsFaceLocal()

void peano4::grid::GridTraversalEvent::flipIsFaceLocal ( int index)

Definition at line 345 of file GridTraversalEvent.cpp.

◆ flipIsParentVertexLocal()

void peano4::grid::GridTraversalEvent::flipIsParentVertexLocal ( int index)

Definition at line 287 of file GridTraversalEvent.cpp.

◆ flipIsVertexAdjacentToParallelDomainBoundary()

void peano4::grid::GridTraversalEvent::flipIsVertexAdjacentToParallelDomainBoundary ( int index)

Definition at line 394 of file GridTraversalEvent.cpp.

◆ flipIsVertexLocal()

void peano4::grid::GridTraversalEvent::flipIsVertexLocal ( int index)

Definition at line 258 of file GridTraversalEvent.cpp.

◆ flipIsVertexParentOfSubtree()

void peano4::grid::GridTraversalEvent::flipIsVertexParentOfSubtree ( int index)

Definition at line 316 of file GridTraversalEvent.cpp.

◆ flipWillBeRefined()

void peano4::grid::GridTraversalEvent::flipWillBeRefined ( int index)

Definition at line 229 of file GridTraversalEvent.cpp.

◆ freeBoundaryExchangeDatatype()

void peano4::grid::GridTraversalEvent::freeBoundaryExchangeDatatype ( )
static

Definition at line 684 of file GridTraversalEvent.cpp.

◆ freeForkDatatype()

void peano4::grid::GridTraversalEvent::freeForkDatatype ( )
static

Definition at line 657 of file GridTraversalEvent.cpp.

◆ freeGlobalCommunciationDatatype()

void peano4::grid::GridTraversalEvent::freeGlobalCommunciationDatatype ( )
static

Definition at line 666 of file GridTraversalEvent.cpp.

◆ freeJoinDatatype()

void peano4::grid::GridTraversalEvent::freeJoinDatatype ( )
static

Definition at line 675 of file GridTraversalEvent.cpp.

◆ freeMultiscaleDataExchangeDatatype()

void peano4::grid::GridTraversalEvent::freeMultiscaleDataExchangeDatatype ( )
static

Definition at line 693 of file GridTraversalEvent.cpp.

◆ getBoundaryExchangeDatatype()

MPI_Datatype peano4::grid::GridTraversalEvent::getBoundaryExchangeDatatype ( )
static

Definition at line 645 of file GridTraversalEvent.cpp.

◆ getCellData()

int peano4::grid::GridTraversalEvent::getCellData ( ) const

Definition at line 557 of file GridTraversalEvent.cpp.

Referenced by examples::regulargridupscaling::MyObserver::enterCell().

Here is the caller graph for this function:

◆ getFaceDataFrom() [1/2]

tarch::la::Vector< TwoTimesD, int > peano4::grid::GridTraversalEvent::getFaceDataFrom ( ) const

Definition at line 517 of file GridTraversalEvent.cpp.

Referenced by peano4::grid::Spacetree::receiveAndMergeUserData().

Here is the caller graph for this function:

◆ getFaceDataFrom() [2/2]

int peano4::grid::GridTraversalEvent::getFaceDataFrom ( int index) const

Definition at line 527 of file GridTraversalEvent.cpp.

◆ getFaceDataTo() [1/2]

tarch::la::Vector< TwoTimesD, int > peano4::grid::GridTraversalEvent::getFaceDataTo ( ) const

Definition at line 537 of file GridTraversalEvent.cpp.

Referenced by peano4::grid::Spacetree::receiveAndMergeUserData().

Here is the caller graph for this function:

◆ getFaceDataTo() [2/2]

int peano4::grid::GridTraversalEvent::getFaceDataTo ( int index) const

Definition at line 547 of file GridTraversalEvent.cpp.

◆ getForkDatatype()

MPI_Datatype peano4::grid::GridTraversalEvent::getForkDatatype ( )
static

Hands out MPI datatype if we work without the LLVM MPI extension.

If we work with this additional feature, this is the routine where the lazy initialisation is done and the datatype is also cached.

Definition at line 627 of file GridTraversalEvent.cpp.

◆ getGlobalCommunciationDatatype()

MPI_Datatype peano4::grid::GridTraversalEvent::getGlobalCommunciationDatatype ( )
static

Definition at line 633 of file GridTraversalEvent.cpp.

◆ getH() [1/2]

tarch::la::Vector< Dimensions, double > peano4::grid::GridTraversalEvent::getH ( ) const

Definition at line 148 of file GridTraversalEvent.cpp.

Referenced by examples::regulargridupscaling::MyObserver::enterCell(), and peano4::grid::TraversalVTKPlotter::plotCell().

Here is the caller graph for this function:

◆ getH() [2/2]

double peano4::grid::GridTraversalEvent::getH ( int index) const

Definition at line 166 of file GridTraversalEvent.cpp.

◆ getHasBeenRefined() [1/2]

std::bitset< TwoPowerD > peano4::grid::GridTraversalEvent::getHasBeenRefined ( ) const

Definition at line 176 of file GridTraversalEvent.cpp.

References TwoPowerD.

Referenced by peano4::datamanagement::FaceMarker::FaceMarker().

Here is the caller graph for this function:

◆ getHasBeenRefined() [2/2]

bool peano4::grid::GridTraversalEvent::getHasBeenRefined ( int index) const

Definition at line 190 of file GridTraversalEvent.cpp.

◆ getInvokingSpacetree()

int peano4::grid::GridTraversalEvent::getInvokingSpacetree ( ) const

Definition at line 595 of file GridTraversalEvent.cpp.

◆ getInvokingSpacetreeIsNotInvolvedInAnyDynamicLoadBalancing()

bool peano4::grid::GridTraversalEvent::getInvokingSpacetreeIsNotInvolvedInAnyDynamicLoadBalancing ( ) const

Definition at line 605 of file GridTraversalEvent.cpp.

◆ getIsAdjacentCellLocal() [1/2]

std::bitset< ThreePowerD > peano4::grid::GridTraversalEvent::getIsAdjacentCellLocal ( ) const

Definition at line 448 of file GridTraversalEvent.cpp.

References ThreePowerD.

◆ getIsAdjacentCellLocal() [2/2]

bool peano4::grid::GridTraversalEvent::getIsAdjacentCellLocal ( int index) const

Definition at line 462 of file GridTraversalEvent.cpp.

◆ getIsCellLocal()

bool peano4::grid::GridTraversalEvent::getIsCellLocal ( ) const

Definition at line 350 of file GridTraversalEvent.cpp.

◆ getIsFaceAdjacentToParallelDomainBoundary() [1/2]

std::bitset< TwoTimesD > peano4::grid::GridTraversalEvent::getIsFaceAdjacentToParallelDomainBoundary ( ) const

Definition at line 399 of file GridTraversalEvent.cpp.

References TwoTimesD.

◆ getIsFaceAdjacentToParallelDomainBoundary() [2/2]

bool peano4::grid::GridTraversalEvent::getIsFaceAdjacentToParallelDomainBoundary ( int index) const

Definition at line 413 of file GridTraversalEvent.cpp.

◆ getIsFaceLocal() [1/2]

std::bitset< TwoTimesD > peano4::grid::GridTraversalEvent::getIsFaceLocal ( ) const

Definition at line 321 of file GridTraversalEvent.cpp.

References TwoTimesD.

Referenced by peano4::grid::Spacetree::receiveAndMergeUserData().

Here is the caller graph for this function:

◆ getIsFaceLocal() [2/2]

bool peano4::grid::GridTraversalEvent::getIsFaceLocal ( int index) const

Definition at line 335 of file GridTraversalEvent.cpp.

◆ getIsParentCellLocal()

bool peano4::grid::GridTraversalEvent::getIsParentCellLocal ( ) const

Definition at line 360 of file GridTraversalEvent.cpp.

◆ getIsParentVertexLocal() [1/2]

std::bitset< TwoPowerD > peano4::grid::GridTraversalEvent::getIsParentVertexLocal ( ) const

Definition at line 263 of file GridTraversalEvent.cpp.

References TwoPowerD.

◆ getIsParentVertexLocal() [2/2]

bool peano4::grid::GridTraversalEvent::getIsParentVertexLocal ( int index) const

Definition at line 277 of file GridTraversalEvent.cpp.

◆ getIsVertexAdjacentToParallelDomainBoundary() [1/2]

std::bitset< TwoPowerD > peano4::grid::GridTraversalEvent::getIsVertexAdjacentToParallelDomainBoundary ( ) const

Definition at line 370 of file GridTraversalEvent.cpp.

References TwoPowerD.

◆ getIsVertexAdjacentToParallelDomainBoundary() [2/2]

bool peano4::grid::GridTraversalEvent::getIsVertexAdjacentToParallelDomainBoundary ( int index) const

Definition at line 384 of file GridTraversalEvent.cpp.

◆ getIsVertexLocal() [1/2]

std::bitset< TwoPowerD > peano4::grid::GridTraversalEvent::getIsVertexLocal ( ) const

Definition at line 234 of file GridTraversalEvent.cpp.

References TwoPowerD.

Referenced by peano4::grid::Spacetree::receiveAndMergeUserData().

Here is the caller graph for this function:

◆ getIsVertexLocal() [2/2]

bool peano4::grid::GridTraversalEvent::getIsVertexLocal ( int index) const

Definition at line 248 of file GridTraversalEvent.cpp.

◆ getIsVertexParentOfSubtree() [1/2]

std::bitset< TwoPowerD > peano4::grid::GridTraversalEvent::getIsVertexParentOfSubtree ( ) const

Definition at line 292 of file GridTraversalEvent.cpp.

References TwoPowerD.

◆ getIsVertexParentOfSubtree() [2/2]

bool peano4::grid::GridTraversalEvent::getIsVertexParentOfSubtree ( int index) const

Definition at line 306 of file GridTraversalEvent.cpp.

◆ getJoinDatatype()

MPI_Datatype peano4::grid::GridTraversalEvent::getJoinDatatype ( )
static

Definition at line 639 of file GridTraversalEvent.cpp.

◆ getMultiscaleDataExchangeDatatype()

MPI_Datatype peano4::grid::GridTraversalEvent::getMultiscaleDataExchangeDatatype ( )
static

Definition at line 651 of file GridTraversalEvent.cpp.

◆ getNumberOfAdjacentTreesPerVertex() [1/2]

tarch::la::Vector< TwoPowerD, int > peano4::grid::GridTraversalEvent::getNumberOfAdjacentTreesPerVertex ( ) const

Definition at line 428 of file GridTraversalEvent.cpp.

◆ getNumberOfAdjacentTreesPerVertex() [2/2]

int peano4::grid::GridTraversalEvent::getNumberOfAdjacentTreesPerVertex ( int index) const

Definition at line 438 of file GridTraversalEvent.cpp.

◆ getRelativePositionToFather() [1/2]

tarch::la::Vector< Dimensions, int > peano4::grid::GridTraversalEvent::getRelativePositionToFather ( ) const

Definition at line 567 of file GridTraversalEvent.cpp.

◆ getRelativePositionToFather() [2/2]

int peano4::grid::GridTraversalEvent::getRelativePositionToFather ( int index) const

Definition at line 585 of file GridTraversalEvent.cpp.

◆ getSenderRank()

int peano4::grid::GridTraversalEvent::getSenderRank ( ) const
Returns
The rank of the sender of an object. It only make ssense to call this routine after you've invoked receive with MPI_ANY_SOURCE.

Definition at line 701 of file GridTraversalEvent.cpp.

◆ getVertexDataFrom() [1/2]

tarch::la::Vector< TwoPowerD, int > peano4::grid::GridTraversalEvent::getVertexDataFrom ( ) const

Definition at line 477 of file GridTraversalEvent.cpp.

Referenced by peano4::grid::Spacetree::receiveAndMergeUserData().

Here is the caller graph for this function:

◆ getVertexDataFrom() [2/2]

int peano4::grid::GridTraversalEvent::getVertexDataFrom ( int index) const

Definition at line 487 of file GridTraversalEvent.cpp.

◆ getVertexDataTo() [1/2]

tarch::la::Vector< TwoPowerD, int > peano4::grid::GridTraversalEvent::getVertexDataTo ( ) const

Definition at line 497 of file GridTraversalEvent.cpp.

Referenced by peano4::grid::Spacetree::receiveAndMergeUserData().

Here is the caller graph for this function:

◆ getVertexDataTo() [2/2]

int peano4::grid::GridTraversalEvent::getVertexDataTo ( int index) const

Definition at line 507 of file GridTraversalEvent.cpp.

◆ getWillBeRefined() [1/2]

std::bitset< TwoPowerD > peano4::grid::GridTraversalEvent::getWillBeRefined ( ) const

Definition at line 205 of file GridTraversalEvent.cpp.

References TwoPowerD.

Referenced by peano4::datamanagement::FaceMarker::FaceMarker().

Here is the caller graph for this function:

◆ getWillBeRefined() [2/2]

bool peano4::grid::GridTraversalEvent::getWillBeRefined ( int index) const

Definition at line 219 of file GridTraversalEvent.cpp.

◆ getX() [1/2]

tarch::la::Vector< Dimensions, double > peano4::grid::GridTraversalEvent::getX ( ) const

Definition at line 120 of file GridTraversalEvent.cpp.

Referenced by examples::regulargridupscaling::MyObserver::enterCell(), and peano4::grid::TraversalVTKPlotter::plotCell().

Here is the caller graph for this function:

◆ getX() [2/2]

double peano4::grid::GridTraversalEvent::getX ( int index) const

Definition at line 138 of file GridTraversalEvent.cpp.

◆ initDatatype()

void peano4::grid::GridTraversalEvent::initDatatype ( )
static

Wrapper around getDatatype() to trigger lazy evaluation if we use the lazy initialisation.

Definition at line 707 of file GridTraversalEvent.cpp.

References TwoPowerD, and TwoTimesD.

◆ receive() [1/2]

void peano4::grid::GridTraversalEvent::receive ( peano4::grid::GridTraversalEvent & buffer,
int source,
int tag,
MPI_Comm communicator )
static

Definition at line 906 of file GridTraversalEvent.cpp.

References _senderDestinationRank.

Referenced by receiveAndPollDanglingMessages().

Here is the caller graph for this function:

◆ receive() [2/2]

void peano4::grid::GridTraversalEvent::receive ( peano4::grid::GridTraversalEvent & buffer,
int source,
int tag,
std::function< void()> startCommunicationFunctor,
std::function< void()> waitFunctor,
MPI_Comm communicator )
static

Definition at line 933 of file GridTraversalEvent.cpp.

References _senderDestinationRank.

◆ receiveAndPollDanglingMessages()

◆ send() [1/2]

void peano4::grid::GridTraversalEvent::send ( const peano4::grid::GridTraversalEvent & buffer,
int destination,
int tag,
MPI_Comm communicator )
static

In DaStGen (the first version), I had a non-static version of the send as well as the receive.

However, this did not work with newer C++11 versions, as a member function using this as pointer usually doesn't see the vtable while the init sees the object from outside, i.e. including a vtable. So this routine now is basically an alias for a blocking MPI_Send.

Definition at line 901 of file GridTraversalEvent.cpp.

Referenced by sendAndPollDanglingMessages().

Here is the caller graph for this function:

◆ send() [2/2]

void peano4::grid::GridTraversalEvent::send ( const peano4::grid::GridTraversalEvent & buffer,
int destination,
int tag,
std::function< void()> startCommunicationFunctor,
std::function< void()> waitFunctor,
MPI_Comm communicator )
static

Alternative to the other send() where I trigger a non-blocking send an then invoke the functor until the corresponding MPI_Test tells me that the message went through.

In systems with heavy MPI usage, this can help to avoid deadlocks.

Definition at line 913 of file GridTraversalEvent.cpp.

◆ sendAndPollDanglingMessages()

◆ setCellData()

void peano4::grid::GridTraversalEvent::setCellData ( int value)

Definition at line 562 of file GridTraversalEvent.cpp.

Referenced by GridTraversalEvent().

Here is the caller graph for this function:

◆ setFaceDataFrom() [1/2]

void peano4::grid::GridTraversalEvent::setFaceDataFrom ( const tarch::la::Vector< TwoTimesD, int > & value)

Definition at line 522 of file GridTraversalEvent.cpp.

Referenced by GridTraversalEvent().

Here is the caller graph for this function:

◆ setFaceDataFrom() [2/2]

void peano4::grid::GridTraversalEvent::setFaceDataFrom ( int index,
int value )

Definition at line 532 of file GridTraversalEvent.cpp.

◆ setFaceDataTo() [1/2]

void peano4::grid::GridTraversalEvent::setFaceDataTo ( const tarch::la::Vector< TwoTimesD, int > & value)

Definition at line 542 of file GridTraversalEvent.cpp.

Referenced by GridTraversalEvent().

Here is the caller graph for this function:

◆ setFaceDataTo() [2/2]

void peano4::grid::GridTraversalEvent::setFaceDataTo ( int index,
int value )

Definition at line 552 of file GridTraversalEvent.cpp.

◆ setH() [1/2]

void peano4::grid::GridTraversalEvent::setH ( const tarch::la::Vector< Dimensions, double > & value)

◆ setH() [2/2]

void peano4::grid::GridTraversalEvent::setH ( int index,
double value )

Definition at line 171 of file GridTraversalEvent.cpp.

◆ setHasBeenRefined() [1/2]

void peano4::grid::GridTraversalEvent::setHasBeenRefined ( const std::bitset< TwoPowerD > & value)

Definition at line 184 of file GridTraversalEvent.cpp.

References TwoPowerD.

Referenced by GridTraversalEvent().

Here is the caller graph for this function:

◆ setHasBeenRefined() [2/2]

void peano4::grid::GridTraversalEvent::setHasBeenRefined ( int index,
bool value )

Definition at line 195 of file GridTraversalEvent.cpp.

◆ setInvokingSpacetree()

void peano4::grid::GridTraversalEvent::setInvokingSpacetree ( int value)

Definition at line 600 of file GridTraversalEvent.cpp.

Referenced by GridTraversalEvent().

Here is the caller graph for this function:

◆ setInvokingSpacetreeIsNotInvolvedInAnyDynamicLoadBalancing()

void peano4::grid::GridTraversalEvent::setInvokingSpacetreeIsNotInvolvedInAnyDynamicLoadBalancing ( bool value)

Definition at line 610 of file GridTraversalEvent.cpp.

Referenced by GridTraversalEvent().

Here is the caller graph for this function:

◆ setIsAdjacentCellLocal() [1/2]

void peano4::grid::GridTraversalEvent::setIsAdjacentCellLocal ( const std::bitset< ThreePowerD > & value)

Definition at line 456 of file GridTraversalEvent.cpp.

References ThreePowerD.

Referenced by GridTraversalEvent().

Here is the caller graph for this function:

◆ setIsAdjacentCellLocal() [2/2]

void peano4::grid::GridTraversalEvent::setIsAdjacentCellLocal ( int index,
bool value )

Definition at line 467 of file GridTraversalEvent.cpp.

◆ setIsCellLocal()

void peano4::grid::GridTraversalEvent::setIsCellLocal ( bool value)

◆ setIsFaceAdjacentToParallelDomainBoundary() [1/2]

void peano4::grid::GridTraversalEvent::setIsFaceAdjacentToParallelDomainBoundary ( const std::bitset< TwoTimesD > & value)

Definition at line 407 of file GridTraversalEvent.cpp.

References TwoTimesD.

Referenced by GridTraversalEvent().

Here is the caller graph for this function:

◆ setIsFaceAdjacentToParallelDomainBoundary() [2/2]

void peano4::grid::GridTraversalEvent::setIsFaceAdjacentToParallelDomainBoundary ( int index,
bool value )

Definition at line 418 of file GridTraversalEvent.cpp.

◆ setIsFaceLocal() [1/2]

void peano4::grid::GridTraversalEvent::setIsFaceLocal ( const std::bitset< TwoTimesD > & value)

◆ setIsFaceLocal() [2/2]

void peano4::grid::GridTraversalEvent::setIsFaceLocal ( int index,
bool value )

Definition at line 340 of file GridTraversalEvent.cpp.

◆ setIsParentCellLocal()

void peano4::grid::GridTraversalEvent::setIsParentCellLocal ( bool value)

◆ setIsParentVertexLocal() [1/2]

void peano4::grid::GridTraversalEvent::setIsParentVertexLocal ( const std::bitset< TwoPowerD > & value)

Definition at line 271 of file GridTraversalEvent.cpp.

References TwoPowerD.

Referenced by GridTraversalEvent().

Here is the caller graph for this function:

◆ setIsParentVertexLocal() [2/2]

void peano4::grid::GridTraversalEvent::setIsParentVertexLocal ( int index,
bool value )

Definition at line 282 of file GridTraversalEvent.cpp.

◆ setIsVertexAdjacentToParallelDomainBoundary() [1/2]

void peano4::grid::GridTraversalEvent::setIsVertexAdjacentToParallelDomainBoundary ( const std::bitset< TwoPowerD > & value)

Definition at line 378 of file GridTraversalEvent.cpp.

References TwoPowerD.

Referenced by GridTraversalEvent().

Here is the caller graph for this function:

◆ setIsVertexAdjacentToParallelDomainBoundary() [2/2]

void peano4::grid::GridTraversalEvent::setIsVertexAdjacentToParallelDomainBoundary ( int index,
bool value )

Definition at line 389 of file GridTraversalEvent.cpp.

◆ setIsVertexLocal() [1/2]

void peano4::grid::GridTraversalEvent::setIsVertexLocal ( const std::bitset< TwoPowerD > & value)

◆ setIsVertexLocal() [2/2]

void peano4::grid::GridTraversalEvent::setIsVertexLocal ( int index,
bool value )

Definition at line 253 of file GridTraversalEvent.cpp.

◆ setIsVertexParentOfSubtree() [1/2]

void peano4::grid::GridTraversalEvent::setIsVertexParentOfSubtree ( const std::bitset< TwoPowerD > & value)

Definition at line 300 of file GridTraversalEvent.cpp.

References TwoPowerD.

Referenced by GridTraversalEvent().

Here is the caller graph for this function:

◆ setIsVertexParentOfSubtree() [2/2]

void peano4::grid::GridTraversalEvent::setIsVertexParentOfSubtree ( int index,
bool value )

Definition at line 311 of file GridTraversalEvent.cpp.

◆ setNumberOfAdjacentTreesPerVertex() [1/2]

void peano4::grid::GridTraversalEvent::setNumberOfAdjacentTreesPerVertex ( const tarch::la::Vector< TwoPowerD, int > & value)

Definition at line 433 of file GridTraversalEvent.cpp.

Referenced by GridTraversalEvent().

Here is the caller graph for this function:

◆ setNumberOfAdjacentTreesPerVertex() [2/2]

void peano4::grid::GridTraversalEvent::setNumberOfAdjacentTreesPerVertex ( int index,
int value )

Definition at line 443 of file GridTraversalEvent.cpp.

◆ setRelativePositionToFather() [1/2]

◆ setRelativePositionToFather() [2/2]

void peano4::grid::GridTraversalEvent::setRelativePositionToFather ( int index,
int value )

Definition at line 590 of file GridTraversalEvent.cpp.

◆ setVertexDataFrom() [1/2]

void peano4::grid::GridTraversalEvent::setVertexDataFrom ( const tarch::la::Vector< TwoPowerD, int > & value)

Definition at line 482 of file GridTraversalEvent.cpp.

Referenced by GridTraversalEvent().

Here is the caller graph for this function:

◆ setVertexDataFrom() [2/2]

void peano4::grid::GridTraversalEvent::setVertexDataFrom ( int index,
int value )

Definition at line 492 of file GridTraversalEvent.cpp.

◆ setVertexDataTo() [1/2]

void peano4::grid::GridTraversalEvent::setVertexDataTo ( const tarch::la::Vector< TwoPowerD, int > & value)

Definition at line 502 of file GridTraversalEvent.cpp.

Referenced by GridTraversalEvent().

Here is the caller graph for this function:

◆ setVertexDataTo() [2/2]

void peano4::grid::GridTraversalEvent::setVertexDataTo ( int index,
int value )

Definition at line 512 of file GridTraversalEvent.cpp.

◆ setWillBeRefined() [1/2]

void peano4::grid::GridTraversalEvent::setWillBeRefined ( const std::bitset< TwoPowerD > & value)

Definition at line 213 of file GridTraversalEvent.cpp.

References TwoPowerD.

Referenced by GridTraversalEvent().

Here is the caller graph for this function:

◆ setWillBeRefined() [2/2]

void peano4::grid::GridTraversalEvent::setWillBeRefined ( int index,
bool value )

Definition at line 224 of file GridTraversalEvent.cpp.

◆ setX() [1/2]

◆ setX() [2/2]

void peano4::grid::GridTraversalEvent::setX ( int index,
double value )

Definition at line 143 of file GridTraversalEvent.cpp.

◆ shutdownDatatype()

void peano4::grid::GridTraversalEvent::shutdownDatatype ( )
static

Free the underlying MPI datatype.

Definition at line 887 of file GridTraversalEvent.cpp.

◆ toString()

std::string peano4::grid::GridTraversalEvent::toString ( ) const

Field Documentation

◆ _cellData

int peano4::grid::GridTraversalEvent::_cellData
private

Definition at line 301 of file GridTraversalEvent.h.

◆ _faceDataFrom

tarch::la::Vector<TwoTimesD,int> peano4::grid::GridTraversalEvent::_faceDataFrom
private

Definition at line 299 of file GridTraversalEvent.h.

◆ _faceDataTo

tarch::la::Vector<TwoTimesD,int> peano4::grid::GridTraversalEvent::_faceDataTo
private

Definition at line 300 of file GridTraversalEvent.h.

◆ _h

tarch::la::Vector<Dimensions,double> peano4::grid::GridTraversalEvent::_h
private

Definition at line 238 of file GridTraversalEvent.h.

◆ _hasBeenRefined

std::bitset<TwoPowerD> peano4::grid::GridTraversalEvent::_hasBeenRefined
private

Definition at line 244 of file GridTraversalEvent.h.

◆ _invokingSpacetree

int peano4::grid::GridTraversalEvent::_invokingSpacetree
private

Definition at line 308 of file GridTraversalEvent.h.

◆ _invokingSpacetreeIsNotInvolvedInAnyDynamicLoadBalancing

bool peano4::grid::GridTraversalEvent::_invokingSpacetreeIsNotInvolvedInAnyDynamicLoadBalancing
private

Definition at line 309 of file GridTraversalEvent.h.

◆ _isAdjacentCellLocal

std::bitset<ThreePowerD> peano4::grid::GridTraversalEvent::_isAdjacentCellLocal
private

Definition at line 295 of file GridTraversalEvent.h.

◆ _isCellLocal

bool peano4::grid::GridTraversalEvent::_isCellLocal
private

Definition at line 276 of file GridTraversalEvent.h.

◆ _isFaceAdjacentToParallelDomainBoundary

std::bitset<TwoTimesD> peano4::grid::GridTraversalEvent::_isFaceAdjacentToParallelDomainBoundary
private

Definition at line 288 of file GridTraversalEvent.h.

◆ _isFaceLocal

std::bitset<TwoTimesD> peano4::grid::GridTraversalEvent::_isFaceLocal
private

Definition at line 274 of file GridTraversalEvent.h.

◆ _isParentCellLocal

bool peano4::grid::GridTraversalEvent::_isParentCellLocal
private

Definition at line 277 of file GridTraversalEvent.h.

◆ _isParentVertexLocal

std::bitset<TwoPowerD> peano4::grid::GridTraversalEvent::_isParentVertexLocal
private

Definition at line 262 of file GridTraversalEvent.h.

◆ _isVertexAdjacentToParallelDomainBoundary

std::bitset<TwoPowerD> peano4::grid::GridTraversalEvent::_isVertexAdjacentToParallelDomainBoundary
private

Definition at line 282 of file GridTraversalEvent.h.

◆ _isVertexLocal

std::bitset<TwoPowerD> peano4::grid::GridTraversalEvent::_isVertexLocal
private

Definition at line 256 of file GridTraversalEvent.h.

◆ _isVertexParentOfSubtree

std::bitset<TwoPowerD> peano4::grid::GridTraversalEvent::_isVertexParentOfSubtree
private

Definition at line 268 of file GridTraversalEvent.h.

◆ _numberOfAdjacentTreesPerVertex

tarch::la::Vector<TwoPowerD,int> peano4::grid::GridTraversalEvent::_numberOfAdjacentTreesPerVertex
private

Definition at line 290 of file GridTraversalEvent.h.

◆ _relativePositionToFather

tarch::la::Vector<Dimensions,int> peano4::grid::GridTraversalEvent::_relativePositionToFather
private

Definition at line 306 of file GridTraversalEvent.h.

◆ _senderDestinationRank

int peano4::grid::GridTraversalEvent::_senderDestinationRank
private

Definition at line 315 of file GridTraversalEvent.h.

Referenced by receive(), and receive().

◆ _vertexDataFrom

tarch::la::Vector<TwoPowerD,int> peano4::grid::GridTraversalEvent::_vertexDataFrom
private

Definition at line 297 of file GridTraversalEvent.h.

◆ _vertexDataTo

tarch::la::Vector<TwoPowerD,int> peano4::grid::GridTraversalEvent::_vertexDataTo
private

Definition at line 298 of file GridTraversalEvent.h.

◆ _willBeRefined

std::bitset<TwoPowerD> peano4::grid::GridTraversalEvent::_willBeRefined
private

Definition at line 250 of file GridTraversalEvent.h.

◆ _x

tarch::la::Vector<Dimensions,double> peano4::grid::GridTraversalEvent::_x
private

Definition at line 232 of file GridTraversalEvent.h.

◆ Datatype

MPI_Datatype peano4::grid::GridTraversalEvent::Datatype = MPI_DATATYPE_NULL
staticprivate

Whenever we use LLVM's MPI extension (DaStGe), we rely on lazy initialisation of the datatype.

However, Peano calls init explicitly in most cases. Without the LLVM extension which caches the MPI datatype once constructed, this field stores the type.

Definition at line 324 of file GridTraversalEvent.h.


The documentation for this struct was generated from the following files: