Salome HOME
Merge 'agy/br810_2' branch.
[tools/medcoupling.git] / src / MEDPartitioner / MEDPARTITIONER_ParallelTopology.hxx
index 72eaeab73b56d0550738302f5cae15134a248387..ce4805e0ab2481239bfae869ea03f214e4c7eba2 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2007-2012  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2016  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -20,8 +20,8 @@
 #ifndef __MEDPARTITIONER_PARALLELTOPOLOGY_HXX__
 #define __MEDPARTITIONER_PARALLELTOPOLOGY_HXX__
 
+#include "MEDPARTITIONER.hxx"
 #include "MEDPARTITIONER_Topology.hxx"
-#include "MEDPARTITIONER_ParaDomainSelector.hxx"
 
 #include "InterpKernelHashMap.hxx"
 
@@ -32,16 +32,16 @@ namespace MEDPARTITIONER
 {
   class Graph;
   class MeshCollection;
-  class MEDPARTITIONER_FaceModel;
+  class ParaDomainSelector;
 
-  class ParallelTopology : public Topology
+  class MEDPARTITIONER_EXPORT ParallelTopology : public Topology
   {
 
   public:
 
     ParallelTopology();
-    ParallelTopology(const std::vector<ParaMEDMEM::MEDCouplingUMesh*>&);
-    ParallelTopology(const std::vector<ParaMEDMEM::MEDCouplingUMesh*>&,
+    ParallelTopology(const std::vector<MEDCoupling::MEDCouplingUMesh*>&);
+    ParallelTopology(const std::vector<MEDCoupling::MEDCouplingUMesh*>&,
                      const std::vector<MEDPARTITIONER::ConnectZone*>&,
                      std::vector<int*>&,
                      std::vector<int*>&,
@@ -145,6 +145,8 @@ namespace MEDPARTITIONER
 
     int convertGlobalNode(int iglobal, int idomain);
     
+    std::vector<MEDPARTITIONER::ConnectZone*>& getCZ();
+
     //adding a face to the topology
     void appendFace(int idomain, int ilocal, int iglobal);
 
@@ -159,10 +161,10 @@ namespace MEDPARTITIONER
     typedef INTERP_KERNEL::HashMultiMap<int,std::pair<int,int> > TGlob2DomainLoc;
 
     TGlob2DomainLoc _glob_to_loc;
-    std::vector<std::vector<int> >  _loc_to_glob;
-    INTERP_KERNEL::HashMultiMap<int,std::pair<int,int> > _node_glob_to_loc;
+    TGlob2DomainLoc _node_glob_to_loc;
 
     //mapping local -> global
+    std::vector<std::vector<int> >  _loc_to_glob;
     std::vector<std::vector <int> > _node_loc_to_glob;
 
     // global numbers in parallel mode
@@ -183,6 +185,10 @@ namespace MEDPARTITIONER
     int _nb_total_faces;
     int _nb_domain;
     int _mesh_dimension;
+
+    //links to connectzones
+    std::vector<MEDPARTITIONER::ConnectZone*> _connect_zones;
+
   };
 }
 #endif