37 struct GridStatistics;
48 GridStatistics(
int __numberOfLocalUnrefinedCells,
int __numberOfRemoteUnrefinedCells,
int __numberOfLocalRefinedCells,
int __numberOfRemoteRefinedCells,
int __numberOfRefiningVertices,
int __numberOfErasingVertices,
int __numberOfRefinementTriggeredVertices,
int __numberOfEraseTriggeredVertices,
bool __eraseCommandHasBeenVetoed,
bool __removedEmptySubtree,
tarch::la::Vector<Dimensions,double> __minH);
84 [[clang::map_mpi_datatype]]
87 [[clang::map_mpi_datatype]]
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]]
148 static void send(
const peano4::grid::GridStatistics& buffer,
int destination,
int tag, std::function<
void()> startCommunicationFunctor, std::function<
void()> waitFunctor, MPI_Comm communicator );
149 static void receive(
peano4::grid::GridStatistics& buffer,
int source,
int tag, std::function<
void()> startCommunicationFunctor, std::function<
void()> waitFunctor, MPI_Comm communicator );
188 #if !defined(__MPI_ATTRIBUTES_LANGUAGE_EXTENSION__)
static Rank & getInstance()
This operation returns the singleton instance.
int _numberOfRefiningVertices
int _numberOfEraseTriggeredVertices
void setNumberOfLocalRefinedCells(int value)
static void receive(peano4::grid::GridStatistics &buffer, int source, int tag, MPI_Comm communicator)
bool _eraseCommandHasBeenVetoed
static MPI_Datatype getJoinDatatype()
static void receiveAndPollDanglingMessages(peano4::grid::GridStatistics &message, int source, int tag, MPI_Comm communicator=tarch::mpi::Rank::getInstance().getCommunicator())
void setNumberOfErasingVertices(int value)
tarch::la::Vector< Dimensions, double > _minH
int getNumberOfLocalRefinedCells() const
void setNumberOfRemoteUnrefinedCells(int value)
void setMinH(const tarch::la::Vector< Dimensions, double > &value)
static void initDatatype()
Wrapper around getDatatype() to trigger lazy evaluation if we use the lazy initialisation.
int _numberOfRemoteUnrefinedCells
int getNumberOfLocalUnrefinedCells() const
static MPI_Datatype getBoundaryExchangeDatatype()
int getNumberOfErasingVertices() const
void setNumberOfEraseTriggeredVertices(int value)
int getNumberOfRefiningVertices() const
std::string toString() const
int _numberOfLocalUnrefinedCells
static MPI_Datatype getGlobalCommunciationDatatype()
double getMinH(int index) const
GridStatistics(int __numberOfLocalUnrefinedCells, int __numberOfRemoteUnrefinedCells, int __numberOfLocalRefinedCells, int __numberOfRemoteRefinedCells, int __numberOfRefiningVertices, int __numberOfErasingVertices, int __numberOfRefinementTriggeredVertices, int __numberOfEraseTriggeredVertices, bool __eraseCommandHasBeenVetoed, bool __removedEmptySubtree, tarch::la::Vector< Dimensions, double > __minH)
void setNumberOfRefiningVertices(int value)
static void receive(peano4::grid::GridStatistics &buffer, int source, int tag, std::function< void()> startCommunicationFunctor, std::function< void()> waitFunctor, MPI_Comm communicator)
GridStatistics(const GridStatistics ©)=default
static MPI_Datatype Datatype
Whenever we use LLVM's MPI extension (DaStGe), we rely on lazy initialisation of the datatype.
static void freeBoundaryExchangeDatatype()
static void freeForkDatatype()
static void freeGlobalCommunciationDatatype()
void setMinH(int index, double value)
bool getEraseCommandHasBeenVetoed() const
int getNumberOfEraseTriggeredVertices() const
static void send(const peano4::grid::GridStatistics &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 ...
bool getRemovedEmptySubtree() const
void setNumberOfLocalUnrefinedCells(int value)
static void send(const peano4::grid::GridStatistics &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.
int _numberOfRefinementTriggeredVertices
int _numberOfErasingVertices
int _senderDestinationRank
void setNumberOfRefinementTriggeredVertices(int value)
void setNumberOfRemoteRefinedCells(int value)
int getNumberOfRemoteRefinedCells() const
int _numberOfRemoteRefinedCells
void setEraseCommandHasBeenVetoed(bool value)
static MPI_Datatype getForkDatatype()
Hands out MPI datatype if we work without the LLVM MPI extension.
static MPI_Datatype getMultiscaleDataExchangeDatatype()
GridStatistics(ObjectConstruction)
int getNumberOfRemoteUnrefinedCells() const
static void shutdownDatatype()
Free the underlying MPI datatype.
static void sendAndPollDanglingMessages(const peano4::grid::GridStatistics &message, int destination, int tag, MPI_Comm communicator=tarch::mpi::Rank::getInstance().getCommunicator())
tarch::la::Vector< Dimensions, double > getMinH() const
static void freeMultiscaleDataExchangeDatatype()
bool _removedEmptySubtree
int _numberOfLocalRefinedCells
int getNumberOfRefinementTriggeredVertices() const
int getSenderRank() const
static void freeJoinDatatype()
void setRemovedEmptySubtree(bool value)