9#include "repositories/DataRepository.h"
13{%
for item in NAMESPACE -%}
14 namespace {{ item }} {
18{%
for item in NAMESPACE -%}
29 const int _spacetreeId;
39 static constexpr int SpacetreePrototype = -1;
46 {{CLASSNAME}}(
int spacetreeId = SpacetreePrototype);
48 virtual void loadCell(
52 virtual void enterCell(
56 virtual void leaveCell(
60 virtual void storeCell(
64 virtual bool canSkipFullyRemoteCells()
const override {
return true; }
66 virtual TraversalObserver* clone(
int spacetreeId)
override;
68 virtual std::vector< peano4::grid::GridControlEvent > createGridControlEventsForNextTraversal()
const override;
92 static void prepareTraversal();
97 static void unprepareTraversal();
99 virtual void beginTraversal(
104 virtual void endTraversal(
109 virtual void exchangeAllVerticalDataExchangeStacks(
int masterId )
override;
110 virtual void exchangeAllHorizontalDataExchangeStacks(
bool symmetricDataCardinality )
override;
111 virtual void exchangeAllPeriodicBoundaryDataStacks()
override;
113 virtual void streamDataFromSplittingTreeToNewTree(
int newWorker )
override;
114 virtual void streamDataFromJoiningTreeToMasterTree(
int masterId )
override;
116 virtual void finishAllOutstandingSendsAndReceives()
override;
126 virtual void deleteAllStacks()
override;
SendReceiveContext
There are three different scenarios when we merge data: