https://github.com/N-BodyShop/changa
Revision 681d06a26fdcdc6df5f5d4d0307fb16289dd5eaa authored by Tom Quinn on 30 June 2012, 03:38:54 UTC, committed by Tom Quinn on 02 September 2016, 04:47:24 UTC
Change-Id: I015dbaa04d68b44e8c9bbc04c99ea0fd7fe72ccb
1 parent 8be9a92
Raw File
Tip revision: 681d06a26fdcdc6df5f5d4d0307fb16289dd5eaa authored by Tom Quinn on 30 June 2012, 03:38:54 UTC
Move cosmoType into separate header for inclusion into C files.
Tip revision: 681d06a
PETreeMerger.h
#ifndef PE_TREE_MERGER_H
#define PE_TREE_MERGER_H

#include "ParallelGravity.h"

/// @addtogroup TreeBuild
/// @{

/// @brief Group to coordinate requests for remote moments during the
/// tree build
///
/// This group is used if MERGE_REMOTE_REQUESTS is defined.
class PETreeMerger : public CBase_PETreeMerger {

  CkVec<GenericTreeNode*> submittedRoots;
  CkVec<TreePiece*> submittedTreePieces;

  NonEmptyTreePieceCounter submittingTreePieceCounter;

  public:
  PETreeMerger() {}
  PETreeMerger(CkMigrateMessage *m) : CBase_PETreeMerger(m) {}
  void pup(PUP::er &p) { CBase_PETreeMerger::pup(p); }

  void mergeNonLocalRequests(GenericTreeNode *root, TreePiece *treePiece);
  void freeTree();

  private:

  void mergeWalk(CkVec<GenericTreeNode*> &mergeList, CkVec<TreePiece*> &treePieceList);
  void requestNonLocalMoments(GenericTreeNode *pickedNode, TreePiece *pickedTreePiece);

};
/// @}
#endif
back to top