X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FMEDPartitioner%2FMEDPARTITIONER_ParallelTopology.hxx;h=fb453c9af0bb437ba0aff1233655e546f18bceb5;hb=b219559763498c4bd10c730cd3d2c62b1eed45db;hp=ce4805e0ab2481239bfae869ea03f214e4c7eba2;hpb=5da72d398d0eb1820c3ce6dd90b8579b6b14edf5;p=tools%2Fmedcoupling.git diff --git a/src/MEDPartitioner/MEDPARTITIONER_ParallelTopology.hxx b/src/MEDPartitioner/MEDPARTITIONER_ParallelTopology.hxx index ce4805e0a..fb453c9af 100644 --- a/src/MEDPartitioner/MEDPARTITIONER_ParallelTopology.hxx +++ b/src/MEDPartitioner/MEDPARTITIONER_ParallelTopology.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2016 CEA/DEN, EDF R&D +// Copyright (C) 2007-2019 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 @@ -43,9 +43,9 @@ namespace MEDPARTITIONER ParallelTopology(const std::vector&); ParallelTopology(const std::vector&, const std::vector&, - std::vector&, - std::vector&, - std::vector&); + std::vector&, + std::vector&, + std::vector&); ParallelTopology(Graph* graph, Topology* oldTopology, int nbdomain, int mesh_dimension); ~ParallelTopology(); @@ -54,135 +54,135 @@ namespace MEDPARTITIONER /*! converts a list of global cell numbers * to a distributed array with local cell numbers */ - void convertGlobalNodeList(const int*, int,int*,int*); - void convertGlobalNodeList(const int*, int,int*,int); - void convertGlobalNodeListWithTwins(const int* face_list, int nbnode, int*& local, int*& ip, int*& full_array, int& size); + void convertGlobalNodeList(const mcIdType*, mcIdType,mcIdType*,int*); + void convertGlobalNodeList(const mcIdType*, mcIdType,mcIdType*,int); + void convertGlobalNodeListWithTwins(const mcIdType* face_list, mcIdType nbnode, mcIdType*& local, int*& ip, mcIdType*& full_array, mcIdType& size); /*! converts a list of global node numbers * to a distributed array with local cell numbers */ - void convertGlobalCellList(const int*, int , int*, int *); + void convertGlobalCellList(const mcIdType*, mcIdType , mcIdType*, int *); /*! converts a list of global face numbers * to a distributed array with local face numbers */ - void convertGlobalFaceList(const int*, int , int*, int *); - void convertGlobalFaceList(const int*, int , int*, int); - void convertGlobalFaceListWithTwins(const int* face_list, int nbface, int*& local, int*& ip, int*& full_array,int& size); + void convertGlobalFaceList(const mcIdType*, mcIdType , mcIdType*, int *); + void convertGlobalFaceList(const mcIdType*, mcIdType , mcIdType*, int); + void convertGlobalFaceListWithTwins(const mcIdType* face_list, mcIdType nbface, mcIdType*& local, int*& ip, mcIdType*& full_array,mcIdType& size); /*! converting node global numberings to local numberings */ - void convertToLocal2ndVersion(int* nodes, int nbnodes, int idomain); + void convertToLocal2ndVersion(mcIdType* nodes, mcIdType nbnodes, int idomain); /*! converting node local numbering to global */ - int convertNodeToGlobal(int ip, int icell) const { return _node_loc_to_glob[ip][icell]; } + mcIdType convertNodeToGlobal(int ip, mcIdType icell) const { return _node_loc_to_glob[ip][icell]; } /*! converting face local numbering to global */ - int convertFaceToGlobal(int ip, int iface) const { return _face_loc_to_glob[ip][iface]; } + mcIdType convertFaceToGlobal(int ip, mcIdType iface) const { return _face_loc_to_glob[ip][iface]; } /*! converting cell global numbering to local */ - int convertCellToGlobal(int ip, int icell) const { return _loc_to_glob[ip][icell]; } + mcIdType convertCellToGlobal(int ip, mcIdType icell) const { return _loc_to_glob[ip][icell]; } - void convertNodeToGlobal(int ip, const int* local, int n, int *global) const + void convertNodeToGlobal(int ip, const mcIdType* local, mcIdType n, mcIdType *global) const { - for (int i=0; i & getFusedCellNumbers(int idomain) { return _cell_loc_to_glob_fuse[idomain]; } + std::vector & getFusedCellNumbers(int idomain) { return _cell_loc_to_glob_fuse[idomain]; } - const std::vector& getFusedCellNumbers(int idomain) const { return _cell_loc_to_glob_fuse[idomain]; } + const std::vector& getFusedCellNumbers(int idomain) const { return _cell_loc_to_glob_fuse[idomain]; } /*! retrieving face numbers after merging in parallel mode */ - std::vector & getFusedFaceNumbers(int idomain) { return _face_loc_to_glob_fuse[idomain]; } + std::vector & getFusedFaceNumbers(int idomain) { return _face_loc_to_glob_fuse[idomain]; } - const std::vector& getFusedFaceNumbers(int idomain) const { return _face_loc_to_glob_fuse[idomain]; } + const std::vector& getFusedFaceNumbers(int idomain) const { return _face_loc_to_glob_fuse[idomain]; } /*! retrieving number of nodes */ - int getCellNumber(int idomain) const { return _nb_cells[idomain]; } + mcIdType getCellNumber(int idomain) const { return _nb_cells[idomain]; } - int getCellDomainNumber(int global) const { return (_glob_to_loc.find(global)->second).first; } + mcIdType getCellDomainNumber(int global) const { return (_glob_to_loc.find(global)->second).first; } - void getCellList(int idomain, int* list) const; + void getCellList(int idomain, mcIdType* list) const; - int getFaceNumber(int idomain) const { return _nb_faces[idomain]; } + mcIdType getFaceNumber(int idomain) const { return _nb_faces[idomain]; } - int getFaceNumber() const; + mcIdType getFaceNumber() const; - void getFaceList(int idomain, int* list) const; + void getFaceList(int idomain, mcIdType* list) const; /*! converting a global cell number to a local representation (domain + local number) */ - std::pair convertGlobalCell(int iglobal) const { return _glob_to_loc.find(iglobal)->second; } + std::pair convertGlobalCell(mcIdType iglobal) const { return _glob_to_loc.find(iglobal)->second; } - int convertGlobalFace(int iglobal, int idomain); + mcIdType convertGlobalFace(mcIdType iglobal, int idomain); - int convertGlobalNode(int iglobal, int idomain); + mcIdType convertGlobalNode(mcIdType iglobal, int idomain); std::vector& getCZ(); //adding a face to the topology - void appendFace(int idomain, int ilocal, int iglobal); + void appendFace(int idomain, mcIdType ilocal, mcIdType iglobal); //return max global face number - int getMaxGlobalFace() const; + mcIdType getMaxGlobalFace() const; private: - bool hasCellWithNodes( const MeshCollection&, int dom, const std::set& nodes ); + bool hasCellWithNodes( const MeshCollection&, int dom, const std::set& nodes ); private: //mapping global -> local - typedef INTERP_KERNEL::HashMultiMap > TGlob2DomainLoc; + typedef INTERP_KERNEL::HashMultiMap > TGlob2DomainLoc; TGlob2DomainLoc _glob_to_loc; TGlob2DomainLoc _node_glob_to_loc; //mapping local -> global - std::vector > _loc_to_glob; - std::vector > _node_loc_to_glob; + std::vector > _loc_to_glob; + std::vector > _node_loc_to_glob; // global numbers in parallel mode - std::vector > _cell_loc_to_glob_fuse; // glob nums after merging - std::vector > _face_loc_to_glob_fuse; // glob nums after merging + std::vector > _cell_loc_to_glob_fuse; // glob nums after merging + std::vector > _face_loc_to_glob_fuse; // glob nums after merging //mapping global -> local - typedef INTERP_KERNEL::HashMultiMap > TGlob2LocsMap; + typedef INTERP_KERNEL::HashMultiMap > TGlob2LocsMap; TGlob2LocsMap _face_glob_to_loc; //mapping local -> global - std::vector > _face_loc_to_glob; - std::vector _nb_cells; - std::vector _nb_nodes; - std::vector _nb_faces; - int _nb_total_cells; - int _nb_total_nodes; - int _nb_total_faces; + std::vector > _face_loc_to_glob; + std::vector _nb_cells; + std::vector _nb_nodes; + std::vector _nb_faces; + mcIdType _nb_total_cells; + mcIdType _nb_total_nodes; + mcIdType _nb_total_faces; int _nb_domain; int _mesh_dimension;