source: XIOS/dev/dev_ym/XIOS_COUPLING/extern/remap/src/parallel_tree.hpp @ 2269

Last change on this file since 2269 was 2269, checked in by ymipsl, 3 years ago
  • Solve memory leak from remapper.
  • shared_ptr add add for manage nodes.

YM

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