X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FMEDPartitioner%2FMEDPARTITIONER_ConnectZone.cxx;h=5ebd4ba895670738155b04592c5f1171327612f8;hb=ffb8188e28b2b60ee207a8644286821bc4e8fcdc;hp=18f43a74ddf28e88426e3b6ed7e444c5a849bf30;hpb=5da72d398d0eb1820c3ce6dd90b8579b6b14edf5;p=tools%2Fmedcoupling.git diff --git a/src/MEDPartitioner/MEDPARTITIONER_ConnectZone.cxx b/src/MEDPartitioner/MEDPARTITIONER_ConnectZone.cxx index 18f43a74d..5ebd4ba89 100644 --- a/src/MEDPartitioner/MEDPARTITIONER_ConnectZone.cxx +++ b/src/MEDPartitioner/MEDPARTITIONER_ConnectZone.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2016 CEA/DEN, EDF R&D +// Copyright (C) 2007-2020 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 @@ -30,6 +30,8 @@ MEDPARTITIONER::ConnectZone::ConnectZone(): ,_description("") ,_local_domain_number(0) ,_distant_domain_number(0) + ,_local_mesh(0) + ,_distant_mesh(0) ,_node_corresp(0) ,_face_corresp(0) { @@ -37,11 +39,9 @@ MEDPARTITIONER::ConnectZone::ConnectZone(): MEDPARTITIONER::ConnectZone::~ConnectZone() { - delete _node_corresp; - delete _face_corresp; - for(std::map < std::pair ,MEDCouplingSkyLineArray * >::iterator iter=_entity_corresp.begin(); iter!=_entity_corresp.end();iter++) + for(std::map < std::pair ,MEDCouplingSkyLineArray * >::iterator iter=_entity_corresp.begin(); iter!=_entity_corresp.end();iter++) { - delete iter->second; + iter->second->decrRef(); } } @@ -50,6 +50,8 @@ MEDPARTITIONER::ConnectZone::ConnectZone(const ConnectZone & myConnectZone): ,_description(myConnectZone._description) ,_local_domain_number(myConnectZone._local_domain_number) ,_distant_domain_number(myConnectZone._distant_domain_number) + ,_local_mesh(0) + ,_distant_mesh(0) ,_node_corresp(myConnectZone._node_corresp) ,_face_corresp(myConnectZone._face_corresp) ,_entity_corresp(myConnectZone._entity_corresp) @@ -76,19 +78,19 @@ int MEDPARTITIONER::ConnectZone::getLocalDomainNumber() const return _local_domain_number; } -MEDCoupling::MEDCouplingUMesh *MEDPARTITIONER::ConnectZone::getLocalMesh() const +MEDCouplingUMesh *MEDPARTITIONER::ConnectZone::getLocalMesh() const { return _local_mesh; } -MEDCoupling::MEDCouplingUMesh *MEDPARTITIONER::ConnectZone::getDistantMesh() const +MEDCouplingUMesh *MEDPARTITIONER::ConnectZone::getDistantMesh() const { return _distant_mesh; } -bool MEDPARTITIONER::ConnectZone::isEntityCorrespPresent(int localEntity, int distantEntity) const +bool MEDPARTITIONER::ConnectZone::isEntityCorrespPresent(mcIdType localEntity, mcIdType distantEntity) const { - typedef std::map, MEDCouplingSkyLineArray*>::const_iterator map_iter; + typedef std::map, MEDCouplingSkyLineArray*>::const_iterator map_iter; for(map_iter iter=_entity_corresp.begin(); iter != _entity_corresp.end(); iter++) { if ((iter->first).first==localEntity && (iter->first).second==distantEntity) @@ -97,50 +99,50 @@ bool MEDPARTITIONER::ConnectZone::isEntityCorrespPresent(int localEntity, int di return false; } -const int *MEDPARTITIONER::ConnectZone::getNodeCorrespIndex() const +const mcIdType *MEDPARTITIONER::ConnectZone::getNodeCorrespIndex() const { return _node_corresp->getIndex(); } -const int *MEDPARTITIONER::ConnectZone::getNodeCorrespValue() const +const mcIdType *MEDPARTITIONER::ConnectZone::getNodeCorrespValue() const { - return _node_corresp->getValue(); + return _node_corresp->getValues(); } -int MEDPARTITIONER::ConnectZone::getNodeNumber() const +mcIdType MEDPARTITIONER::ConnectZone::getNodeNumber() const { return _node_corresp->getNumberOf(); } -const MEDCoupling::MEDCouplingSkyLineArray * MEDPARTITIONER::ConnectZone::getNodeCorresp() const +const MEDCouplingSkyLineArray * MEDPARTITIONER::ConnectZone::getNodeCorresp() const { - return _node_corresp; + return (const MEDCouplingSkyLineArray *)_node_corresp; } -const int *MEDPARTITIONER::ConnectZone::getFaceCorrespIndex() const +const mcIdType *MEDPARTITIONER::ConnectZone::getFaceCorrespIndex() const { return _face_corresp->getIndex(); } -const int *MEDPARTITIONER::ConnectZone::getFaceCorrespValue() const +const mcIdType *MEDPARTITIONER::ConnectZone::getFaceCorrespValue() const { - return _face_corresp->getValue(); + return _face_corresp->getValues(); } -int MEDPARTITIONER::ConnectZone::getFaceNumber() const +mcIdType MEDPARTITIONER::ConnectZone::getFaceNumber() const { return _face_corresp->getNumberOf(); } -const MEDCoupling::MEDCouplingSkyLineArray * MEDPARTITIONER::ConnectZone::getFaceCorresp() const +const MEDCouplingSkyLineArray * MEDPARTITIONER::ConnectZone::getFaceCorresp() const { return _face_corresp; } -const int *MEDPARTITIONER::ConnectZone::getEntityCorrespIndex(int localEntity, - int distantEntity) const +const mcIdType *MEDPARTITIONER::ConnectZone::getEntityCorrespIndex(mcIdType localEntity, + mcIdType distantEntity) const { - typedef std::map, MEDCouplingSkyLineArray*>::const_iterator map_iter; + typedef std::map, MEDCouplingSkyLineArray*>::const_iterator map_iter; for(map_iter iter=_entity_corresp.begin();iter!=_entity_corresp.end();iter++) { @@ -150,23 +152,23 @@ const int *MEDPARTITIONER::ConnectZone::getEntityCorrespIndex(int localEntity, return 0; } -const int *MEDPARTITIONER::ConnectZone::getEntityCorrespValue(int localEntity, - int distantEntity) const +const mcIdType *MEDPARTITIONER::ConnectZone::getEntityCorrespValue(mcIdType localEntity, + mcIdType distantEntity) const { - typedef std::map, MEDCouplingSkyLineArray*>::const_iterator map_iter; + typedef std::map, MEDCouplingSkyLineArray*>::const_iterator map_iter; for (map_iter iter=_entity_corresp.begin();iter!=_entity_corresp.end();iter++) { if ((iter->first).first==localEntity && (iter->first).second==distantEntity) - return iter->second->getValue(); + return iter->second->getValues(); } return 0; } -int MEDPARTITIONER::ConnectZone::getEntityCorrespNumber(int localEntity, - int distantEntity) const +mcIdType MEDPARTITIONER::ConnectZone::getEntityCorrespNumber(mcIdType localEntity, + mcIdType distantEntity) const { - typedef std::map, MEDCouplingSkyLineArray*>::const_iterator map_iter; + typedef std::map, MEDCouplingSkyLineArray*>::const_iterator map_iter; for(map_iter iter=_entity_corresp.begin();iter!=_entity_corresp.end();iter++) { @@ -176,10 +178,10 @@ int MEDPARTITIONER::ConnectZone::getEntityCorrespNumber(int localEntity, return 0; } -int MEDPARTITIONER::ConnectZone::getEntityCorrespLength(int localEntity, - int distantEntity) const +mcIdType MEDPARTITIONER::ConnectZone::getEntityCorrespLength(mcIdType localEntity, + mcIdType distantEntity) const { - typedef std::map, MEDCouplingSkyLineArray*>::const_iterator map_iter; + typedef std::map, MEDCouplingSkyLineArray*>::const_iterator map_iter; for (map_iter iter=_entity_corresp.begin(); iter != _entity_corresp.end(); iter++) { @@ -189,10 +191,10 @@ int MEDPARTITIONER::ConnectZone::getEntityCorrespLength(int localEntity, return 0; } -const MEDCoupling::MEDCouplingSkyLineArray * -MEDPARTITIONER::ConnectZone::getEntityCorresp(int localEntity, int distantEntity) const +const MEDCouplingSkyLineArray * +MEDPARTITIONER::ConnectZone::getEntityCorresp(mcIdType localEntity, mcIdType distantEntity) const { - typedef std::map, MEDCouplingSkyLineArray*>::const_iterator map_iter; + typedef std::map, MEDCouplingSkyLineArray*>::const_iterator map_iter; for (map_iter iter=_entity_corresp.begin(); iter != _entity_corresp.end(); iter++) { @@ -202,11 +204,11 @@ MEDPARTITIONER::ConnectZone::getEntityCorresp(int localEntity, int distantEntity return 0; } -std::vector< std::pair< int,int > > MEDPARTITIONER::ConnectZone::getEntities() const +std::vector< std::pair< mcIdType,mcIdType > > MEDPARTITIONER::ConnectZone::getEntities() const { - std::vector< std::pair< int,int > > types; + std::vector< std::pair< mcIdType,mcIdType > > types; - std::map, MEDCouplingSkyLineArray*>::const_iterator + std::map, MEDCouplingSkyLineArray*>::const_iterator iter = _entity_corresp.begin(); for ( ; iter != _entity_corresp.end(); iter++) { @@ -236,12 +238,12 @@ void MEDPARTITIONER::ConnectZone::setLocalDomainNumber(int localDomainNumber) _local_domain_number=localDomainNumber; } -void MEDPARTITIONER::ConnectZone::setLocalMesh(MEDCoupling::MEDCouplingUMesh * localMesh) +void MEDPARTITIONER::ConnectZone::setLocalMesh(MEDCouplingUMesh * localMesh) { _local_mesh=localMesh; } -void MEDPARTITIONER::ConnectZone::setDistantMesh(MEDCoupling::MEDCouplingUMesh * distantMesh) +void MEDPARTITIONER::ConnectZone::setDistantMesh(MEDCouplingUMesh * distantMesh) { _distant_mesh=distantMesh; } @@ -250,56 +252,56 @@ void MEDPARTITIONER::ConnectZone::setDistantMesh(MEDCoupling::MEDCouplingUMesh * * the node-node connections * to a MEDCouplingSkyLineArray */ -void MEDPARTITIONER::ConnectZone::setNodeCorresp(const int * nodeCorresp, int nbnode) +void MEDPARTITIONER::ConnectZone::setNodeCorresp(const mcIdType * nodeCorresp, mcIdType nbnode) { - MCAuto indexArr( DataArrayInt::New() ); - MCAuto valueArr( DataArrayInt::New() ); + MCAuto indexArr( DataArrayIdType::New() ); + MCAuto valueArr( DataArrayIdType::New() ); indexArr->alloc( nbnode+1 ); valueArr->alloc( 2*nbnode ); - int * index = indexArr->getPointer(); - int * value = valueArr->getPointer(); - for (int i=0; igetPointer(); + mcIdType * value = valueArr->getPointer(); + for (mcIdType i=0; i arr(array); + _node_corresp = arr; } /*! transforms an int array containing * the face-face connections * to a MEDCouplingSkyLineArray */ -void MEDPARTITIONER::ConnectZone::setFaceCorresp(const int * faceCorresp, int nbface) +void MEDPARTITIONER::ConnectZone::setFaceCorresp(const mcIdType * faceCorresp, mcIdType nbface) { - MCAuto indexArr( DataArrayInt::New() ); - MCAuto valueArr( DataArrayInt::New() ); + MCAuto indexArr( DataArrayIdType::New() ); + MCAuto valueArr( DataArrayIdType::New() ); indexArr->alloc( nbface+1 ); valueArr->alloc( 2*nbface ); - int * index = indexArr->getPointer(); - int * value = valueArr->getPointer(); - for (int i=0; igetPointer(); + mcIdType * value = valueArr->getPointer(); + for (mcIdType i=0; i arr (array); + _face_corresp = arr; } /*! transforms an int array containing @@ -308,32 +310,32 @@ void MEDPARTITIONER::ConnectZone::setFaceCorresp(MEDCouplingSkyLineArray* array) * * the resulting MEDCouplingSkyLineArray is put in the map */ -void MEDPARTITIONER::ConnectZone::setEntityCorresp(int localEntity, int distantEntity, - const int *entityCorresp, int nbentity) +void MEDPARTITIONER::ConnectZone::setEntityCorresp(mcIdType localEntity, mcIdType distantEntity, + const mcIdType *entityCorresp, mcIdType nbentity) { - MCAuto indexArr( DataArrayInt::New() ); - MCAuto valueArr( DataArrayInt::New() ); + MCAuto indexArr( DataArrayIdType::New() ); + MCAuto valueArr( DataArrayIdType::New() ); indexArr->alloc( nbentity+1 ); valueArr->alloc( 2*nbentity ); - int * index = indexArr->getPointer(); - int * value = valueArr->getPointer(); - for (int i=0; igetPointer(); + mcIdType * value = valueArr->getPointer(); + for (mcIdType i=0; i, MEDCoupling::MEDCouplingSkyLineArray * >::iterator it; + MEDCouplingSkyLineArray * nullArray = 0; + std::map < std::pair , MEDCouplingSkyLineArray * >::iterator it; it = _entity_corresp.insert ( std::make_pair( std::make_pair(localEntity,distantEntity), nullArray )).first; - if ( it->second != nullArray ) delete it->second; + if ( it->second != nullArray ) it->second->decrRef(); it->second = array; }