source: XIOS/dev/branch_openmp/extern/remap/src/parallel_tree.hpp @ 1341

Last change on this file since 1341 was 1328, checked in by yushan, 7 years ago

dev_omp

File size: 1.1 KB
RevLine 
[688]1#ifndef  __PARALLEL_TREE_HPP__
2#define  __PARALLEL_TREE_HPP__
3
4#include "tree.hpp" // for local tree and routing tree
5//#include "sample_tree.hpp"
6#include "mpi_cascade.hpp"
[694]7#include "mpi.hpp"
[688]8namespace sphereRemap {
9
10class CParallelTree
11{
12public:
[1328]13  CParallelTree(ep_lib::MPI_Comm comm);
14  ~CParallelTree();
[688]15
[1328]16  void build(vector<Node>& node, vector<Node>& node2);
[688]17
[1328]18  void routeNodes(vector<int>& route, vector<Node>& nodes, int level = 0);
19  void routeIntersections(vector<vector<int> >& route, vector<Node>& nodes, int level = 0);
[688]20
[1328]21  int nbLocalElements;
22  Elt* localElements;
[688]23
[1328]24  CTree localTree;
[688]25
26private:
[1328]27  void updateCirclesForRouting(Coord rootCentre, double rootRadius, int level = 0);
28  void buildSampleTreeCascade(vector<Node>& sampleNodes, int level = 0);
29  void buildLocalTree(const vector<Node>& node, const vector<int>& route);
30  void buildRouteTree();
[688]31
[1328]32  //CSampleTree sampleTree;
33  vector<CSampleTree> treeCascade; // first for sample tree, then for routing tree
34  CMPICascade cascade;
35  ep_lib::MPI_Comm communicator ;
[688]36
37};
38
39void buildSampleTree(CSampleTree& tree, const vector<Node>& node, const CCascadeLevel& comm);
40
41}
42#endif
Note: See TracBrowser for help on using the repository browser.