44 bool __hasBeenAntecessorOfRefinedVertexInPreviousTreeSweep,
45 bool __isAntecessorOfRefinedVertexInCurrentTreeSweep,
46 bool __hasBeenParentOfSubtreeVertexInPreviousTreeSweep,
47 bool __isParentOfSubtreeVertexInCurrentTreeSweep,
48 int __numberOfAdjacentRefinedLocalCells,
76 double getX(
int index)
const;
77 void setX(
int index,
double value);
90 [[clang::map_mpi_datatype]]
93 [[clang::map_mpi_datatype]]
96 [[clang::map_mpi_datatype]]
99 [[clang::map_mpi_datatype]]
102 [[clang::map_mpi_datatype]]
105 [[clang::map_mpi_datatype]]
108 [[clang::map_mpi_datatype]]
111 [[clang::map_mpi_datatype]]
114 [[clang::map_mpi_datatype]]
117 [[clang::map_mpi_datatype]]
159 std::function<
void()> startCommunicationFunctor,
160 std::function<
void()> waitFunctor,
161 MPI_Comm communicator
167 std::function<
void()> startCommunicationFunctor,
168 std::function<
void()> waitFunctor,
169 MPI_Comm communicator
197#if defined(__PACKED_ATTRIBUTES_LANGUAGE_EXTENSION__)
200#if !defined(__PACKED_ATTRIBUTES_LANGUAGE_EXTENSION__)
210#if defined(__PACKED_ATTRIBUTES_LANGUAGE_EXTENSION__)
211 [[clang::truncate_mantissa(48)]]
double _x[Dimensions];
213#if !defined(__PACKED_ATTRIBUTES_LANGUAGE_EXTENSION__)
224#if !defined(__MPI_ATTRIBUTES_LANGUAGE_EXTENSION__)
static Rank & getInstance()
This operation returns the singleton instance.
bool getIsParentOfSubtreeVertexInCurrentTreeSweep() const
tarch::la::Vector< TwoPowerD, int > getAdjacentRanks() const
static MPI_Datatype getJoinDatatype()
tarch::la::Vector< TwoPowerD, int > _backupOfAdjacentRanks
int getSenderRank() const
int getNumberOfAdjacentRefinedLocalCells() const
static MPI_Datatype Datatype
Whenever we use LLVM's MPI extension (DaStGe), we rely on lazy initialisation of the datatype.
static void freeMultiscaleDataExchangeDatatype()
static void freeBoundaryExchangeDatatype()
void setBackupOfAdjacentRanks(const tarch::la::Vector< TwoPowerD, int > &value)
void setIsAntecessorOfRefinedVertexInCurrentTreeSweep(bool value)
static MPI_Datatype getForkDatatype()
Hands out MPI datatype if we work without the LLVM MPI extension.
static MPI_Datatype getBoundaryExchangeDatatype()
bool _hasBeenParentOfSubtreeVertexInPreviousTreeSweep
bool getHasBeenAntecessorOfRefinedVertexInPreviousTreeSweep() const
static void freeJoinDatatype()
static void freeForkDatatype()
static MPI_Datatype getMultiscaleDataExchangeDatatype()
GridVertex(ObjectConstruction)
static MPI_Datatype getGlobalCommunciationDatatype()
tarch::la::Vector< TwoPowerD, int > getBackupOfAdjacentRanks() const
static void receiveAndPollDanglingMessages(peano4::grid::GridVertex &message, int source, int tag, MPI_Comm communicator=tarch::mpi::Rank::getInstance().getCommunicator())
static void shutdownDatatype()
Free the underlying MPI datatype.
static void receive(peano4::grid::GridVertex &buffer, int source, int tag, MPI_Comm communicator)
static void sendAndPollDanglingMessages(const peano4::grid::GridVertex &message, int destination, int tag, MPI_Comm communicator=tarch::mpi::Rank::getInstance().getCommunicator())
bool _isParentOfSubtreeVertexInCurrentTreeSweep
bool _hasBeenAntecessorOfRefinedVertexInPreviousTreeSweep
bool _isAntecessorOfRefinedVertexInCurrentTreeSweep
void setNumberOfAdjacentRefinedLocalCells(int value)
void setIsParentOfSubtreeVertexInCurrentTreeSweep(bool value)
std::string toString() const
tarch::la::Vector< TwoPowerD, int > _adjacentRanks
static void send(const peano4::grid::GridVertex &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.
bool getIsAntecessorOfRefinedVertexInCurrentTreeSweep() const
int _senderDestinationRank
void setHasBeenParentOfSubtreeVertexInPreviousTreeSweep(bool value)
GridVertex & operator=(const GridVertex &other)
void setHasBeenAntecessorOfRefinedVertexInPreviousTreeSweep(bool value)
void setState(State value)
void setAdjacentRanks(const tarch::la::Vector< TwoPowerD, int > &value)
bool getHasBeenParentOfSubtreeVertexInPreviousTreeSweep() const
peano4::grid::GridVertex::State getState() const
int _numberOfAdjacentRefinedLocalCells
static void freeGlobalCommunciationDatatype()
static void initDatatype()
Wrapper around getDatatype() to trigger lazy evaluation if we use the lazy initialisation.