14 class TraversalObserver;
16 struct GridControlEvent;
17 struct GridTraversalEvent;
19 namespace datamanagement {
virtual void deleteAllStacks()
virtual void receiveAndMergeVertex(int, int, SendReceiveContext, const GridTraversalEvent &)
virtual void finishAllOutstandingSendsAndReceives()
Wrap up all sends and receives, i.e.
virtual void receiveAndMergeCell(int, SendReceiveContext, const GridTraversalEvent &)
SendReceiveContext
There are three different scenarios when we merge data:
@ PeriodicBoundaryDataSwap
virtual void streamDataFromSplittingTreeToNewTree(int)
Stream data from current tree on which this routine is called to the new worker.
static constexpr int CreateOrDestroyHangingGridEntity
Implies that the data will then be local or had been local.
static constexpr int CreateOrDestroyPersistentGridEntity
Implies that the data will then be local or had been local.
virtual void loadCell(const GridTraversalEvent &event)=0
virtual TraversalObserver * clone(int spacetreeId)=0
virtual void exchangeAllHorizontalDataExchangeStacks(bool)
Exchange all the data along the domain boundaries.
virtual void storeCell(const GridTraversalEvent &event)=0
virtual void beginTraversal(const tarch::la::Vector< Dimensions, double > &x, const tarch::la::Vector< Dimensions, double > &h)=0
Begin the traversal.
virtual void endTraversal(const tarch::la::Vector< Dimensions, double > &x, const tarch::la::Vector< Dimensions, double > &h)=0
static constexpr int NoData
Can this grid entity hold data.
virtual ~TraversalObserver()
virtual void sendFace(int, int, SendReceiveContext, const GridTraversalEvent &)
virtual void sendCell(int, SendReceiveContext, const GridTraversalEvent &)
virtual void streamDataFromJoiningTreeToMasterTree(int)
static constexpr int NoRebalancing
virtual void exchangeAllPeriodicBoundaryDataStacks()
Exchange all periodic boundary data.
virtual std::vector< GridControlEvent > getGridControlEvents() const =0
virtual void sendVertex(int, int, SendReceiveContext, const GridTraversalEvent &)
virtual void leaveCell(const GridTraversalEvent &event)=0
virtual void enterCell(const GridTraversalEvent &event)=0
Event is invoked per cell.
virtual void exchangeAllVerticalDataExchangeStacks(int)
Send local data from top level of local mesh to master and receive its top-down information in return...
virtual void receiveAndMergeFace(int, int, SendReceiveContext, const GridTraversalEvent &)