source: XIOS/dev/dev_trunk_omp/extern/remap/src/parallel_tree.hpp @ 1602

Last change on this file since 1602 was 1602, checked in by yushan, 5 years ago

branch_openmp merged with trunk r1597

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