Peano 4
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, 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, double > getX () 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, double > getH () 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)
 
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
 
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 208 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,
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 36 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 212 of file GridTraversalEvent.h.

Member Function Documentation

◆ flipHasBeenRefined()

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

Definition at line 196 of file GridTraversalEvent.cpp.

◆ flipIsAdjacentCellLocal()

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

Definition at line 448 of file GridTraversalEvent.cpp.

◆ flipIsFaceAdjacentToParallelDomainBoundary()

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

Definition at line 419 of file GridTraversalEvent.cpp.

◆ flipIsFaceLocal()

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

Definition at line 341 of file GridTraversalEvent.cpp.

◆ flipIsParentVertexLocal()

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

Definition at line 283 of file GridTraversalEvent.cpp.

◆ flipIsVertexAdjacentToParallelDomainBoundary()

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

Definition at line 390 of file GridTraversalEvent.cpp.

◆ flipIsVertexLocal()

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

Definition at line 254 of file GridTraversalEvent.cpp.

◆ flipIsVertexParentOfSubtree()

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

Definition at line 312 of file GridTraversalEvent.cpp.

◆ flipWillBeRefined()

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

Definition at line 225 of file GridTraversalEvent.cpp.

◆ freeBoundaryExchangeDatatype()

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

Definition at line 660 of file GridTraversalEvent.cpp.

◆ freeForkDatatype()

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

Definition at line 633 of file GridTraversalEvent.cpp.

◆ freeGlobalCommunciationDatatype()

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

Definition at line 642 of file GridTraversalEvent.cpp.

◆ freeJoinDatatype()

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

Definition at line 651 of file GridTraversalEvent.cpp.

◆ freeMultiscaleDataExchangeDatatype()

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

Definition at line 669 of file GridTraversalEvent.cpp.

◆ getBoundaryExchangeDatatype()

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

Definition at line 621 of file GridTraversalEvent.cpp.

◆ getCellData()

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

Definition at line 533 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 493 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 503 of file GridTraversalEvent.cpp.

◆ getFaceDataTo() [1/2]

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

Definition at line 513 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 523 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 603 of file GridTraversalEvent.cpp.

◆ getGlobalCommunciationDatatype()

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

Definition at line 609 of file GridTraversalEvent.cpp.

◆ getH() [1/2]

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

Definition at line 144 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 162 of file GridTraversalEvent.cpp.

◆ getHasBeenRefined() [1/2]

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

Definition at line 172 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 186 of file GridTraversalEvent.cpp.

◆ getInvokingSpacetree()

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

Definition at line 571 of file GridTraversalEvent.cpp.

◆ getInvokingSpacetreeIsNotInvolvedInAnyDynamicLoadBalancing()

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

Definition at line 581 of file GridTraversalEvent.cpp.

◆ getIsAdjacentCellLocal() [1/2]

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

Definition at line 424 of file GridTraversalEvent.cpp.

References ThreePowerD.

◆ getIsAdjacentCellLocal() [2/2]

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

Definition at line 438 of file GridTraversalEvent.cpp.

◆ getIsCellLocal()

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

Definition at line 346 of file GridTraversalEvent.cpp.

◆ getIsFaceAdjacentToParallelDomainBoundary() [1/2]

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

Definition at line 395 of file GridTraversalEvent.cpp.

References TwoTimesD.

◆ getIsFaceAdjacentToParallelDomainBoundary() [2/2]

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

Definition at line 409 of file GridTraversalEvent.cpp.

◆ getIsFaceLocal() [1/2]

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

Definition at line 317 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 331 of file GridTraversalEvent.cpp.

◆ getIsParentCellLocal()

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

Definition at line 356 of file GridTraversalEvent.cpp.

◆ getIsParentVertexLocal() [1/2]

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

Definition at line 259 of file GridTraversalEvent.cpp.

References TwoPowerD.

◆ getIsParentVertexLocal() [2/2]

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

Definition at line 273 of file GridTraversalEvent.cpp.

◆ getIsVertexAdjacentToParallelDomainBoundary() [1/2]

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

Definition at line 366 of file GridTraversalEvent.cpp.

References TwoPowerD.

◆ getIsVertexAdjacentToParallelDomainBoundary() [2/2]

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

Definition at line 380 of file GridTraversalEvent.cpp.

◆ getIsVertexLocal() [1/2]

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

Definition at line 230 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 244 of file GridTraversalEvent.cpp.

◆ getIsVertexParentOfSubtree() [1/2]

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

Definition at line 288 of file GridTraversalEvent.cpp.

References TwoPowerD.

◆ getIsVertexParentOfSubtree() [2/2]

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

Definition at line 302 of file GridTraversalEvent.cpp.

◆ getJoinDatatype()

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

Definition at line 615 of file GridTraversalEvent.cpp.

◆ getMultiscaleDataExchangeDatatype()

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

Definition at line 627 of file GridTraversalEvent.cpp.

◆ getRelativePositionToFather() [1/2]

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

Definition at line 543 of file GridTraversalEvent.cpp.

◆ getRelativePositionToFather() [2/2]

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

Definition at line 561 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 677 of file GridTraversalEvent.cpp.

◆ getVertexDataFrom() [1/2]

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

Definition at line 453 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 463 of file GridTraversalEvent.cpp.

◆ getVertexDataTo() [1/2]

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

Definition at line 473 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 483 of file GridTraversalEvent.cpp.

◆ getWillBeRefined() [1/2]

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

Definition at line 201 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 215 of file GridTraversalEvent.cpp.

◆ getX() [1/2]

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

Definition at line 116 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 134 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 683 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 876 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 903 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 871 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 883 of file GridTraversalEvent.cpp.

◆ sendAndPollDanglingMessages()

◆ setCellData()

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

Definition at line 538 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 498 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 508 of file GridTraversalEvent.cpp.

◆ setFaceDataTo() [1/2]

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

Definition at line 518 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 528 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 167 of file GridTraversalEvent.cpp.

◆ setHasBeenRefined() [1/2]

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

Definition at line 180 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 191 of file GridTraversalEvent.cpp.

◆ setInvokingSpacetree()

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

Definition at line 576 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 586 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 432 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 443 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 403 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 414 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 336 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 267 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 278 of file GridTraversalEvent.cpp.

◆ setIsVertexAdjacentToParallelDomainBoundary() [1/2]

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

Definition at line 374 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 385 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 249 of file GridTraversalEvent.cpp.

◆ setIsVertexParentOfSubtree() [1/2]

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

Definition at line 296 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 307 of file GridTraversalEvent.cpp.

◆ setRelativePositionToFather() [1/2]

◆ setRelativePositionToFather() [2/2]

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

Definition at line 566 of file GridTraversalEvent.cpp.

◆ setVertexDataFrom() [1/2]

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

Definition at line 458 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 468 of file GridTraversalEvent.cpp.

◆ setVertexDataTo() [1/2]

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

Definition at line 478 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 488 of file GridTraversalEvent.cpp.

◆ setWillBeRefined() [1/2]

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

Definition at line 209 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 220 of file GridTraversalEvent.cpp.

◆ setX() [1/2]

◆ setX() [2/2]

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

Definition at line 139 of file GridTraversalEvent.cpp.

◆ shutdownDatatype()

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

Free the underlying MPI datatype.

Definition at line 857 of file GridTraversalEvent.cpp.

◆ toString()

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

Field Documentation

◆ _cellData

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

Definition at line 296 of file GridTraversalEvent.h.

◆ _faceDataFrom

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

Definition at line 294 of file GridTraversalEvent.h.

◆ _faceDataTo

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

Definition at line 295 of file GridTraversalEvent.h.

◆ _h

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

Definition at line 234 of file GridTraversalEvent.h.

◆ _hasBeenRefined

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

Definition at line 240 of file GridTraversalEvent.h.

◆ _invokingSpacetree

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

Definition at line 303 of file GridTraversalEvent.h.

◆ _invokingSpacetreeIsNotInvolvedInAnyDynamicLoadBalancing

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

Definition at line 304 of file GridTraversalEvent.h.

◆ _isAdjacentCellLocal

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

Definition at line 290 of file GridTraversalEvent.h.

◆ _isCellLocal

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

Definition at line 272 of file GridTraversalEvent.h.

◆ _isFaceAdjacentToParallelDomainBoundary

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

Definition at line 284 of file GridTraversalEvent.h.

◆ _isFaceLocal

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

Definition at line 270 of file GridTraversalEvent.h.

◆ _isParentCellLocal

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

Definition at line 273 of file GridTraversalEvent.h.

◆ _isParentVertexLocal

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

Definition at line 258 of file GridTraversalEvent.h.

◆ _isVertexAdjacentToParallelDomainBoundary

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

Definition at line 278 of file GridTraversalEvent.h.

◆ _isVertexLocal

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

Definition at line 252 of file GridTraversalEvent.h.

◆ _isVertexParentOfSubtree

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

Definition at line 264 of file GridTraversalEvent.h.

◆ _relativePositionToFather

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

Definition at line 301 of file GridTraversalEvent.h.

◆ _senderDestinationRank

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

Definition at line 310 of file GridTraversalEvent.h.

Referenced by receive(), and receive().

◆ _vertexDataFrom

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

Definition at line 292 of file GridTraversalEvent.h.

◆ _vertexDataTo

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

Definition at line 293 of file GridTraversalEvent.h.

◆ _willBeRefined

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

Definition at line 246 of file GridTraversalEvent.h.

◆ _x

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

Definition at line 228 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 319 of file GridTraversalEvent.h.


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