changa  3.5
 All Classes Files Functions Variables Typedefs Enumerations Friends Macros Groups Pages
PETreeMerger.h
1 #ifndef PE_TREE_MERGER_H
2 #define PE_TREE_MERGER_H
3 
4 #include "ParallelGravity.h"
5 
8 
13 class PETreeMerger : public CBase_PETreeMerger {
14 
15  CkVec<GenericTreeNode*> submittedRoots;
16  CkVec<TreePiece*> submittedTreePieces;
17 
18  NonEmptyTreePieceCounter submittingTreePieceCounter;
19 
20  public:
21  PETreeMerger() {}
22  PETreeMerger(CkMigrateMessage *m) : CBase_PETreeMerger(m) {}
23  void pup(PUP::er &p) { CBase_PETreeMerger::pup(p); }
24 
25  void mergeNonLocalRequests(GenericTreeNode *root, TreePiece *treePiece);
26  void freeTree();
27 
28  private:
29 
30  void mergeWalk(CkVec<GenericTreeNode*> &mergeList, CkVec<TreePiece*> &treePieceList);
31  void requestNonLocalMoments(GenericTreeNode *pickedNode, TreePiece *pickedTreePiece);
32 
33 };
35 #endif
Used to count non-empty treepieces on the local processor.
Definition: ParallelGravity.h:2104
void mergeNonLocalRequests(GenericTreeNode *root, TreePiece *treePiece)
Obtain each TreePiece on this processor, and perform mergeWalk().
Definition: PETreeMerger.cpp:8
Base class for tree nodes.
Definition: GenericTreeNode.h:59
Group to coordinate requests for remote moments during the tree build.
Definition: PETreeMerger.h:13
Fundamental structure that holds particle and tree data.
Definition: ParallelGravity.h:730