29 struct GridStatistics;
36 GridStatistics(
int __numberOfLocalUnrefinedCells,
int __numberOfRemoteUnrefinedCells,
int __numberOfLocalRefinedCells,
int __numberOfRemoteRefinedCells,
int __stationarySweeps,
bool __coarseningHasBeenVetoed,
bool __removedEmptySubtree,
tarch::la::Vector<Dimensions,double> __minH);
65 [[clang::map_mpi_datatype]]
68 [[clang::map_mpi_datatype]]
71 [[clang::map_mpi_datatype]]
74 [[clang::map_mpi_datatype]]
77 [[clang::map_mpi_datatype]]
80 [[clang::map_mpi_datatype]]
83 [[clang::map_mpi_datatype]]
86 [[clang::map_mpi_datatype]]
89 [[clang::map_mpi_datatype]]
92 [[clang::map_mpi_datatype]]
129 static void send(
const peano4::grid::GridStatistics& buffer,
int destination,
int tag, std::function<
void()> startCommunicationFunctor, std::function<
void()> waitFunctor, MPI_Comm communicator );
130 static void receive(
peano4::grid::GridStatistics& buffer,
int source,
int tag, std::function<
void()> startCommunicationFunctor, std::function<
void()> waitFunctor, MPI_Comm communicator );
163 #if !defined(__MPI_ATTRIBUTES_LANGUAGE_EXTENSION__)
static Rank & getInstance()
This operation returns the singleton instance.
void setNumberOfLocalRefinedCells(int value)
static void receive(peano4::grid::GridStatistics &buffer, int source, int tag, MPI_Comm communicator)
static MPI_Datatype getJoinDatatype()
static void receiveAndPollDanglingMessages(peano4::grid::GridStatistics &message, int source, int tag, MPI_Comm communicator=tarch::mpi::Rank::getInstance().getCommunicator())
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()
std::string toString() const
int _numberOfLocalUnrefinedCells
static MPI_Datatype getGlobalCommunciationDatatype()
void setCoarseningHasBeenVetoed(bool value)
void setStationarySweeps(int value)
int getStationarySweeps() const
double getMinH(int index) const
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()
bool _coarseningHasBeenVetoed
void setMinH(int index, double value)
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 _senderDestinationRank
void setNumberOfRemoteRefinedCells(int value)
int getNumberOfRemoteRefinedCells() const
int _numberOfRemoteRefinedCells
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.
bool getCoarseningHasBeenVetoed() const
static void sendAndPollDanglingMessages(const peano4::grid::GridStatistics &message, int destination, int tag, MPI_Comm communicator=tarch::mpi::Rank::getInstance().getCommunicator())
GridStatistics(int __numberOfLocalUnrefinedCells, int __numberOfRemoteUnrefinedCells, int __numberOfLocalRefinedCells, int __numberOfRemoteRefinedCells, int __stationarySweeps, bool __coarseningHasBeenVetoed, bool __removedEmptySubtree, tarch::la::Vector< Dimensions, double > __minH)
tarch::la::Vector< Dimensions, double > getMinH() const
static void freeMultiscaleDataExchangeDatatype()
bool _removedEmptySubtree
int _numberOfLocalRefinedCells
int getSenderRank() const
static void freeJoinDatatype()
void setRemovedEmptySubtree(bool value)