X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2FMEDLoader%2FSauvMedConvertor.cxx;h=30448af450cc69da2f8ba6d3ec18a4a29dde7148;hb=28f0438558e327db59b3a98b4eb11286410a5be2;hp=c2d09d7954ef3342819dcae86006d43b584096e1;hpb=22a4bd76f2e2c06917d391a07efa1aa293b35177;p=tools%2Fmedcoupling.git diff --git a/src/MEDLoader/SauvMedConvertor.cxx b/src/MEDLoader/SauvMedConvertor.cxx index c2d09d795..30448af45 100644 --- a/src/MEDLoader/SauvMedConvertor.cxx +++ b/src/MEDLoader/SauvMedConvertor.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 @@ -262,7 +262,7 @@ namespace // define default GAUSS points TInt GetNbRef() const { return myNbRef; } - TCoordSlice GetCoord(TInt theRefId) { return &myRefCoord[0] + theRefId * myDim; } + TCoordSlice GetCoord(std::size_t theRefId) { return &myRefCoord[0] + theRefId * myDim; } }; //--------------------------------------------------------------- /*! @@ -281,9 +281,9 @@ namespace // define default GAUSS points * \param geomType - element geometry (EGeometrieElement or med_geometrie_element) * \param nbPoints - nb gauss point * \param variant - [1-3] to choose the variant of definition - * + * * Throws in case of invalid parameters - * variant == 1 refers to "Fonctions de forme et points d'integration + * variant == 1 refers to "Fonctions de forme et points d'integration * des elements finis" v7.4 by J. PELLET, X. DESROCHES, 15/09/05 * variant == 2 refers to the same doc v6.4 by J.P. LEFEBVRE, X. DESROCHES, 03/07/03 * variant == 3 refers to the same doc v6.4, second variant for 2D elements @@ -291,7 +291,7 @@ namespace // define default GAUSS points TGaussDef(const int geomType, const int nbPoints, const int variant=1); int dim() const { return SauvUtilities::getDimension( NormalizedCellType( myType )); } - int nbPoints() const { return myWeights.capacity(); } + std::size_t nbPoints() const { return myWeights.capacity(); } private: void add(const double x, const double weight); @@ -669,8 +669,8 @@ namespace // define default GAUSS points THexa20a::THexa20a(TInt theDim, TInt theNbRef): TShapeFun(theDim,theNbRef) { - TInt aNbRef = myRefCoord.size(); - for(TInt aRefId = 0; aRefId < aNbRef; aRefId++){ + std::size_t aNbRef = myRefCoord.size(); + for(std::size_t aRefId = 0; aRefId < aNbRef; aRefId++){ TCoordSlice aCoord = GetCoord(aRefId); switch(aRefId){ case 0: aCoord[0] = -1.0; aCoord[1] = -1.0; aCoord[2] = -1.0; break; @@ -701,8 +701,8 @@ namespace // define default GAUSS points THexa27a::THexa27a(): THexa20a(3,27) { - TInt aNbRef = myRefCoord.size(); - for(TInt aRefId = 0; aRefId < aNbRef; aRefId++){ + std::size_t aNbRef = myRefCoord.size(); + for(std::size_t aRefId = 0; aRefId < aNbRef; aRefId++){ TCoordSlice aCoord = GetCoord(aRefId); switch(aRefId){ case 20: aCoord[0] = 0.0; aCoord[1] = 0.0; aCoord[2] = -1.0; break; @@ -738,8 +738,8 @@ namespace // define default GAUSS points THexa20b::THexa20b(TInt theDim, TInt theNbRef): TShapeFun(theDim,theNbRef) { - TInt aNbRef = myRefCoord.size(); - for(TInt aRefId = 0; aRefId < aNbRef; aRefId++){ + std::size_t aNbRef = myRefCoord.size(); + for(std::size_t aRefId = 0; aRefId < aNbRef; aRefId++){ TCoordSlice aCoord = GetCoord(aRefId); switch(aRefId){ case 0: aCoord[0] = -1.0; aCoord[1] = -1.0; aCoord[2] = -1.0; break; @@ -770,8 +770,8 @@ namespace // define default GAUSS points TPenta6a::TPenta6a(): TShapeFun(3,6) { - TInt aNbRef = myRefCoord.size(); - for(TInt aRefId = 0; aRefId < aNbRef; aRefId++){ + std::size_t aNbRef = myRefCoord.size(); + for(std::size_t aRefId = 0; aRefId < aNbRef; aRefId++){ TCoordSlice aCoord = GetCoord(aRefId); switch(aRefId){ case 0: aCoord[0] = -1.0; aCoord[1] = 1.0; aCoord[2] = 0.0; break; @@ -787,8 +787,8 @@ namespace // define default GAUSS points TPenta6b::TPenta6b(): TShapeFun(3,6) { - TInt aNbRef = myRefCoord.size(); - for(TInt aRefId = 0; aRefId < aNbRef; aRefId++){ + std::size_t aNbRef = myRefCoord.size(); + for(std::size_t aRefId = 0; aRefId < aNbRef; aRefId++){ TCoordSlice aCoord = GetCoord(aRefId); switch(aRefId){ case 0: aCoord[0] = -1.0; aCoord[1] = 1.0; aCoord[2] = 0.0; break; @@ -804,8 +804,8 @@ namespace // define default GAUSS points TPenta15a::TPenta15a(): TShapeFun(3,15) { - TInt aNbRef = myRefCoord.size(); - for(TInt aRefId = 0; aRefId < aNbRef; aRefId++){ + std::size_t aNbRef = myRefCoord.size(); + for(std::size_t aRefId = 0; aRefId < aNbRef; aRefId++){ TCoordSlice aCoord = GetCoord(aRefId); switch(aRefId){ case 0: aCoord[0] = -1.0; aCoord[1] = 1.0; aCoord[2] = 0.0; break; @@ -831,8 +831,8 @@ namespace // define default GAUSS points TPenta15b::TPenta15b(): TShapeFun(3,15) { - TInt aNbRef = myRefCoord.size(); - for(TInt aRefId = 0; aRefId < aNbRef; aRefId++){ + std::size_t aNbRef = myRefCoord.size(); + for(std::size_t aRefId = 0; aRefId < aNbRef; aRefId++){ TCoordSlice aCoord = GetCoord(aRefId); switch(aRefId){ case 0: aCoord[0] = -1.0; aCoord[1] = 1.0; aCoord[2] = 0.0; break; @@ -858,8 +858,8 @@ namespace // define default GAUSS points TPyra5a::TPyra5a(): TShapeFun(3,5) { - TInt aNbRef = myRefCoord.size(); - for(TInt aRefId = 0; aRefId < aNbRef; aRefId++){ + std::size_t aNbRef = myRefCoord.size(); + for(std::size_t aRefId = 0; aRefId < aNbRef; aRefId++){ TCoordSlice aCoord = GetCoord(aRefId); switch(aRefId){ case 0: aCoord[0] = 1.0; aCoord[1] = 0.0; aCoord[2] = 0.0; break; @@ -874,10 +874,10 @@ namespace // define default GAUSS points TPyra5b::TPyra5b(): TShapeFun(3,5) { - TInt aNbRef = myRefCoord.size(); - for(TInt aRefId = 0; aRefId < aNbRef; aRefId++){ + std::size_t aNbRef = myRefCoord.size(); + for(std::size_t aRefId = 0; aRefId < aNbRef; aRefId++){ TCoordSlice aCoord = GetCoord(aRefId); - switch(aRefId){ + switch(aRefId){ case 0: aCoord[0] = 1.0; aCoord[1] = 0.0; aCoord[2] = 0.0; break; case 3: aCoord[0] = 0.0; aCoord[1] = 1.0; aCoord[2] = 0.0; break; case 2: aCoord[0] = -1.0; aCoord[1] = 0.0; aCoord[2] = 0.0; break; @@ -890,8 +890,8 @@ namespace // define default GAUSS points TPyra13a::TPyra13a(): TShapeFun(3,13) { - TInt aNbRef = myRefCoord.size(); - for(TInt aRefId = 0; aRefId < aNbRef; aRefId++){ + std::size_t aNbRef = myRefCoord.size(); + for(std::size_t aRefId = 0; aRefId < aNbRef; aRefId++){ TCoordSlice aCoord = GetCoord(aRefId); switch(aRefId){ case 0: aCoord[0] = 1.0; aCoord[1] = 0.0; aCoord[2] = 0.0; break; @@ -915,8 +915,8 @@ namespace // define default GAUSS points TPyra13b::TPyra13b(): TShapeFun(3,13) { - TInt aNbRef = myRefCoord.size(); - for(TInt aRefId = 0; aRefId < aNbRef; aRefId++){ + std::size_t aNbRef = myRefCoord.size(); + for(std::size_t aRefId = 0; aRefId < aNbRef; aRefId++){ TCoordSlice aCoord = GetCoord(aRefId); switch(aRefId){ case 0: aCoord[0] = 1.0; aCoord[1] = 0.0; aCoord[2] = 0.0; break; @@ -966,7 +966,7 @@ namespace // define default GAUSS points const double P1 = 1./1.8; const double P2 = 1./1.125; add( -a, P1 ); - add( 0, P2 ); + add( 0, P2 ); add( a, P1 ); break; } case 4: { @@ -974,7 +974,7 @@ namespace // define default GAUSS points const double P1 = 0.652145154862546, P2 = 0.347854845137454 ; add( a, P1 ); add( -a, P1 ); - add( b, P2 ); + add( b, P2 ); add( -b, P2 ); break; } default: @@ -1006,11 +1006,11 @@ namespace // define default GAUSS points case 6: { // FPG6 const double P1 = 0.11169079483905, P2 = 0.0549758718227661; const double a = 0.445948490915965, b = 0.091576213509771; - add( b, b, P2 ); + add( b, b, P2 ); add( 1-2*b, b, P2 ); add( b, 1-2*b, P2 ); add( a, 1-2*a, P1 ); - add( a, a, P1 ); + add( a, a, P1 ); add( 1-2*a, a, P1 ); break; } case 7: { // FPG7 @@ -1018,11 +1018,11 @@ namespace // define default GAUSS points const double B = 0.101286507323456; const double P1 = 0.066197076394253; const double P2 = 0.062969590272413; - add( 1/3., 1/3., 9/80. ); - add( A, A, P1 ); + add( 1/3., 1/3., 9/80. ); + add( A, A, P1 ); add( 1-2*A, A, P1 ); add( A, 1-2*A, P1 ); - add( B, B, P2 ); + add( B, B, P2 ); add( 1-2*B, B, P2 ); add( B, 1-2*B, P2 ); break; } @@ -1034,10 +1034,10 @@ namespace // define default GAUSS points const double P1 = 0.025422453185103; const double P2 = 0.058393137863189; const double P3 = 0.041425537809187; - add( A, A, P1 ); + add( A, A, P1 ); add( 1-2*A, A, P1 ); add( A, 1-2*A, P1 ); - add( B, B, P2 ); + add( B, B, P2 ); add( 1-2*B, B, P2 ); add( B, 1-2*B, P2 ); add( C, D, P3 ); @@ -1067,11 +1067,11 @@ namespace // define default GAUSS points case 6: { const double P1 = 0.11169079483905, P2 = 0.0549758718227661; const double A = 0.445948490915965, B = 0.091576213509771; - add( 2*B-1, 1-4*B, 4*P2 ); + add( 2*B-1, 1-4*B, 4*P2 ); add( 2*B-1, 2*B-1, 4*P2 ); add( 1-4*B, 2*B-1, 4*P2 ); add( 1-4*A, 2*A-1, 4*P1 ); - add( 2*A-1, 1-4*A, 4*P1 ); + add( 2*A-1, 1-4*A, 4*P1 ); add( 2*A-1, 2*A-1, 4*P1 ); break; } default: @@ -1274,12 +1274,12 @@ namespace // define default GAUSS points add( 0., 0., h3, p3 ); break; } case 27: { // FPG27 - const double a1 = 0.788073483; - const double b6 = 0.499369002; - const double b1 = 0.848418011; - const double c8 = 0.478508449; - const double c1 = 0.652816472; - const double d12 = 0.032303742; + const double a1 = 0.788073483; + const double b6 = 0.499369002; + const double b1 = 0.848418011; + const double c8 = 0.478508449; + const double c1 = 0.652816472; + const double d12 = 0.032303742; const double d1 = 1.106412899; double z = 1/2., fz = b1/2*(1 - z); add( 0., 0., z, a1 ); // 1 @@ -1443,7 +1443,7 @@ namespace // define default GAUSS points THROW_IK_EXCEPTION("TGaussDef: Not all gauss points defined"); } } - + //================================================================================ /*! * \brief Return dimension for the given cell type @@ -1497,7 +1497,7 @@ Cell::Cell(const Cell& ma) { if ( ma._sortedNodeIDs ) { - _sortedNodeIDs = new int[ _nodes.size() ]; + _sortedNodeIDs = new TID[ _nodes.size() ]; std::copy( ma._sortedNodeIDs, ma._sortedNodeIDs + _nodes.size(), _sortedNodeIDs ); } } @@ -1510,7 +1510,7 @@ Cell::Cell(const Cell& ma) SauvUtilities::Link Cell::link(int i) const { - int i2 = ( i + 1 ) % _nodes.size(); + std::size_t i2 = ( i + 1 ) % _nodes.size(); if ( _reverse ) return std::make_pair( _nodes[i2]->_number, _nodes[i]->_number ); else @@ -1528,7 +1528,7 @@ const TID* Cell::getSortedNodes() const if ( !_sortedNodeIDs ) { size_t l=_nodes.size(); - _sortedNodeIDs = new int[ l ]; + _sortedNodeIDs = new TID[ l ]; for (size_t i=0; i!=l; ++i) _sortedNodeIDs[i]=_nodes[i]->_number; @@ -1548,9 +1548,9 @@ bool Cell::operator< (const Cell& ma) const if ( _nodes.size() == 1 ) return _nodes[0] < ma._nodes[0]; - const int* v1 = getSortedNodes(); - const int* v2 = ma.getSortedNodes(); - for ( const int* vEnd = v1 + _nodes.size(); v1 < vEnd; ++v1, ++v2 ) + const TID* v1 = getSortedNodes(); + const TID* v2 = ma.getSortedNodes(); + for ( const TID* vEnd = v1 + _nodes.size(); v1 < vEnd; ++v1, ++v2 ) if(*v1 != *v2) return *v1 < *v2; return false; @@ -1588,9 +1588,9 @@ std::ostream& SauvUtilities::operator<< (std::ostream& os, const SauvUtilities:: */ //================================================================================ -int Group::size() const +mcIdType Group::size() const { - int sizze = 0; + std::size_t sizze = 0; if ( !_relocTable.empty() ) sizze = _relocTable.size(); else if ( _medGroup ) @@ -1600,7 +1600,7 @@ int Group::size() const else for ( size_t i = 0; i < _groups.size(); ++i ) sizze += _groups[i]->size(); - return sizze; + return ToIdType( sizze ); } //================================================================================ @@ -1739,13 +1739,13 @@ bool ASCIIReader::getLine(char* & line) bool aResult = true; // Check the state of the buffer; // if there is too little left, read the next portion of data - int nBytesRest = _eptr - _ptr; + std::size_t nBytesRest = _eptr - _ptr; if (nBytesRest < GIBI_MaxOutputLen) { if (nBytesRest > 0) { // move the remaining portion to the buffer beginning - for ( int i = 0; i < nBytesRest; ++i ) + for ( std::size_t i = 0; i < nBytesRest; ++i ) _start[i] = _ptr[i]; //memcpy (_tmpBuf, _ptr, nBytesRest); //memcpy (_start, _tmpBuf, nBytesRest); @@ -1755,9 +1755,9 @@ bool ASCIIReader::getLine(char* & line) nBytesRest = 0; } _ptr = _start; - const int nBytesRead = ::read (_file, - &_start [nBytesRest], - GIBI_BufferSize - nBytesRest); + const std::size_t nBytesRead = ::read (_file, + &_start [nBytesRest], + GIBI_BufferSize - nBytesRest); nBytesRest += nBytesRead; _eptr = &_start [nBytesRest]; } @@ -1819,7 +1819,6 @@ void ASCIIReader::init( int nbToRead, int nbPosInLine, int width, int shift /*= { _curPos = 0; } - _curLocale.clear(); } //================================================================================ @@ -1852,11 +1851,7 @@ void ASCIIReader::initIntReading(int nbValues) void ASCIIReader::initDoubleReading(int nbValues) { - init( nbValues, 3, 22 ); - - // Correction 2 of getDouble(): set "C" numeric locale to read numbers - // with dot decimal point separator, as it is in SAUVE files - _curLocale = setlocale(LC_NUMERIC, "C"); + init( nbValues, 3, 22 ); } //================================================================================ @@ -1903,11 +1898,6 @@ void ASCIIReader::next() else { _curPos = 0; - if ( !_curLocale.empty() ) - { - setlocale(LC_NUMERIC, _curLocale.c_str()); - _curLocale.clear(); - } } } @@ -1942,7 +1932,7 @@ int ASCIIReader::getInt() const float ASCIIReader::getFloat() const { - return getDouble(); + return (float)getDouble(); } //================================================================================ @@ -2014,7 +2004,7 @@ XDRReader::XDRReader(const char* fileName) :FileReader(fileName), _xdrs_file(NUL XDRReader::~XDRReader() { -#ifdef HAS_XDR +#ifdef HAS_XDR if ( _xdrs_file ) { xdr_destroy((XDR*)_xdrs); @@ -2048,7 +2038,7 @@ bool XDRReader::open() #ifdef HAS_XDR #ifdef WIN32 if ((_xdrs_file = ::fopen(_fileName.c_str(), "rb"))) -#else +#else if ((_xdrs_file = ::fopen(_fileName.c_str(), "r"))) #endif { @@ -2327,7 +2317,7 @@ Group* IntermediateMED::addNewGroup(std::vector* groupsTo // correct pointers to sub-groups for ( size_t j = 0; j < _groups[i]._groups.size(); ++j ) { - int iG = _groups[i]._groups[j] - &_groups[0]; + std::size_t iG = _groups[i]._groups[j] - &_groups[0]; newGroups[i]._groups[j] = & newGroups[ iG ]; } } @@ -2337,7 +2327,7 @@ Group* IntermediateMED::addNewGroup(std::vector* groupsTo for ( size_t i = 0; i < groupsToFix->size(); ++i ) if ( (*groupsToFix)[i] ) { - int iG = (*groupsToFix)[i] - &_groups[0]; + std::size_t iG = (*groupsToFix)[i] - &_groups[0]; (*groupsToFix)[i] = & newGroups[ iG ]; } @@ -2351,12 +2341,12 @@ Group* IntermediateMED::addNewGroup(std::vector* groupsTo for ( size_t j = 0; j < fields[i]->_sub.size(); ++j ) if ( fields[i]->_sub[j]._support ) { - int iG = fields[i]->_sub[j]._support - &_groups[0]; + std::size_t iG = fields[i]->_sub[j]._support - &_groups[0]; fields[i]->_sub[j]._support = & newGroups[ iG ]; } if ( fields[i]->_group ) { - int iG = fields[i]->_group - &_groups[0]; + std::size_t iG = fields[i]->_group - &_groups[0]; fields[i]->_group = & newGroups[ iG ]; } } @@ -2557,8 +2547,8 @@ void IntermediateMED::setFieldLongNames(std::set< std::string >& usedNames) if (medName.find( fields[ifi]->_name + "." ) == 0 ) { std::vector& aSubDs = fields[ifi]->_sub; - int nbSub = aSubDs.size(); - for (int isu = 0; isu < nbSub; isu++) + std::size_t nbSub = aSubDs.size(); + for (std::size_t isu = 0; isu < nbSub; isu++) for (int ico = 0; ico < aSubDs[isu].nbComponents(); ico++) { if (aSubDs[isu].compName(ico) == gibiName) @@ -2741,7 +2731,7 @@ void IntermediateMED::orientElements2D() // if (( x = nodeCoords( elemIt->_nodes[ iNode ])[ 0 ]) < minX ) // minX = x, iLeft = iNode; - // // indeces of the nodes neighboring the most left one + // // indices of the nodes neighboring the most left one // int iPrev = ( iLeft - 1 < 0 ) ? nbNodes - 1 : iLeft - 1; // int iNext = ( iLeft + 1 == nbNodes ) ? 0 : iLeft + 1; // // find components of prev-left and left-next vectors @@ -2837,7 +2827,7 @@ void IntermediateMED::orientFaces3D() for ( size_t j = 0; j < grp._cells.size(); ++j ) if ( faces.insert( grp._cells[j] ).second ) { - for ( size_t k = 0; k < grp._cells[j]->_nodes.size(); ++k ) + for ( unsigned int k = 0; k < grp._cells[j]->_nodes.size(); ++k ) linkFacesMap[ grp._cells[j]->link( k ) ].push_back( grp._cells[j] ); fgm.insert( std::make_pair( grp._cells[j], &grp )); } @@ -3089,7 +3079,7 @@ void IntermediateMED::numberElements() // check if re-numeration is needed (to try to keep elem oreder as in sauve file ) bool ok = true, renumEntity = false; CellsByDimIterator cellsIt( *this, dim ); - int prevNbElems = 0; + mcIdType prevNbElems = 0; while ( const std::set * typeCells = cellsIt.nextType() ) { TID minNumber = std::numeric_limits::max(), maxNumber = 0; @@ -3098,7 +3088,7 @@ void IntermediateMED::numberElements() if ( elemIt->_number < minNumber ) minNumber = elemIt->_number; if ( elemIt->_number > maxNumber ) maxNumber = elemIt->_number; } - TID typeSize = typeCells->size(); + mcIdType typeSize = ToIdType( typeCells->size() ); if ( typeSize != maxNumber - minNumber + 1 ) ok = false; if ( prevNbElems+1 != (int)minNumber ) @@ -3112,12 +3102,12 @@ void IntermediateMED::numberElements() if ( ok && renumEntity ) // each geom type was numerated separately { cellsIt.init( dim ); - prevNbElems = cellsIt.nextType()->size(); // no need to renumber the first type + prevNbElems = ToIdType( cellsIt.nextType()->size()); // no need to renumber the first type while ( const std::set * typeCells = cellsIt.nextType() ) { for ( elemIt = typeCells->begin(), elemEnd = typeCells->end(); elemIt!=elemEnd; ++elemIt) elemIt->_number += prevNbElems; - prevNbElems += typeCells->size(); + prevNbElems += ToIdType( typeCells->size() ); } } if ( !ok ) @@ -3142,7 +3132,7 @@ MEDCoupling::DataArrayDouble * IntermediateMED::getCoords() DataArrayDouble* coordArray = DataArrayDouble::New(); coordArray->alloc( _nbNodes, _spaceDim ); double * coordPrt = coordArray->getPointer(); - for ( int i = 0, nb = _points.size(); i < nb; ++i ) + for ( unsigned int i = 0; i < _points.size(); ++i ) { Node* n = getNode( i+1 ); if ( n->isUsed() ) @@ -3175,9 +3165,9 @@ void IntermediateMED::setConnectivity( MEDCoupling::MEDFileUMesh* mesh, { CellsByDimIterator dimCells( *this, dim ); - int nbOfCells = 0; + mcIdType nbOfCells = 0; while ( const std::set * cells = dimCells.nextType() ) - nbOfCells += cells->size(); + nbOfCells += ToIdType( cells->size() ); if ( nbOfCells == 0 ) continue; @@ -3188,27 +3178,27 @@ void IntermediateMED::setConnectivity( MEDCoupling::MEDFileUMesh* mesh, dimMesh->setMeshDimension( dim ); dimMesh->allocateCells( nbOfCells ); - int prevNbCells = 0; + mcIdType prevNbCells = 0; dimCells.init( dim ); while ( const std::set * cells = dimCells.nextType() ) { // fill connectivity array to take into account order of elements in the sauv file - const int nbCellNodes = cells->begin()->_nodes.size(); + const mcIdType nbCellNodes = ToIdType( cells->begin()->_nodes.size() ); std::vector< TID > connectivity( cells->size() * nbCellNodes ); - int * nodalConnOfCell; + TID * nodalConnOfCell; for ( elemIt = cells->begin(), elemEnd = cells->end(); elemIt != elemEnd; ++elemIt ) { const Cell& cell = *elemIt; - const int index = cell._number - 1 - prevNbCells; + const TID index = cell._number - 1 - prevNbCells; nodalConnOfCell = &connectivity[ index * nbCellNodes ]; if ( cell._reverse ) - for ( int i = nbCellNodes-1; i >= 0; --i ) + for ( mcIdType i = nbCellNodes-1; i >= 0; --i ) *nodalConnOfCell++ = cell._nodes[i]->_number - 1; else - for ( int i = 0; i < nbCellNodes; ++i ) + for ( mcIdType i = 0; i < nbCellNodes; ++i ) *nodalConnOfCell++ = cell._nodes[i]->_number - 1; } - prevNbCells += cells->size(); + prevNbCells += ToIdType( cells->size() ); // fill dimMesh TCellType cellType = dimCells.type(); @@ -3237,8 +3227,8 @@ void IntermediateMED::setGroups( MEDCoupling::MEDFileUMesh* mesh ) { const int meshDimRelToMaxExt = ( dim == 0 ? 1 : dim - meshDim ); - std::vector medGroups; - std::vector > refGroups; + std::vector medGroups; + std::vector > refGroups; for ( size_t i = 0; i < _groups.size(); ++i ) { Group& grp = _groups[i]; @@ -3284,10 +3274,10 @@ void IntermediateMED::setGroups( MEDCoupling::MEDFileUMesh* mesh ) } } // create a med group - grp._medGroup = DataArrayInt::New(); + grp._medGroup = DataArrayIdType::New(); grp._medGroup->setName( grp._name.c_str() ); grp._medGroup->alloc( cell2order.size(), /*nbOfCompo=*/1 ); - int * idsPtr = grp._medGroup->getPointer(); + TID * idsPtr = grp._medGroup->getPointer(); TCellToOrderMap::iterator cell2orderIt, cell2orderEnd = cell2order.end(); for ( cell2orderIt = cell2order.begin(); cell2orderIt != cell2orderEnd; ++cell2orderIt ) *idsPtr++ = (*cell2orderIt).first->_number - 1; @@ -3336,7 +3326,7 @@ bool IntermediateMED::isOnAll( const Group* grp, int & dimRel ) const { int dim = getDim( grp ); - int nbElems = 0; + mcIdType nbElems = 0; if ( dim == 0 ) { nbElems = _nbNodes; @@ -3346,7 +3336,7 @@ bool IntermediateMED::isOnAll( const Group* grp, int & dimRel ) const { CellsByDimIterator dimCells( *this, dim ); while ( const std::set * cells = dimCells.nextType() ) - nbElems += cells->size(); + nbElems += ToIdType( cells->size() ); int meshDim = 3; for ( ; meshDim > 0; --meshDim ) @@ -3378,10 +3368,10 @@ MEDCoupling::MEDFileFields * IntermediateMED::makeMEDFileFields(MEDCoupling::MED MEDFileFields* fields = MEDFileFields::New(); - for ( size_t i = 0; i < _nodeFields.size(); ++i ) + for ( unsigned int i = 0; i < _nodeFields.size(); ++i ) setFields( _nodeFields[i], fields, mesh, i+1, usedFieldNames ); - for ( size_t i = 0; i < _cellFields.size(); ++i ) + for ( unsigned int i = 0; i < _cellFields.size(); ++i ) setFields( _cellFields[i], fields, mesh, i+1, usedFieldNames ); return fields; @@ -3415,7 +3405,7 @@ void IntermediateMED::setFields( SauvUtilities::DoubleField* fld, std::cout << "Castem field #" << castemID << " <" << fld->_name << "> is incompatible with MED format, so we split it into several fields:" << std::endl; - for ( size_t iSub = 0; iSub < fld->_sub.size(); ) + for ( unsigned int iSub = 0; iSub < fld->_sub.size(); ) { // set field name if ( !uniteSubs || fld->_name.empty() ) @@ -3429,8 +3419,8 @@ void IntermediateMED::setFields( SauvUtilities::DoubleField* fld, double * valPtr = values->getPointer(); if ( uniteSubs ) { - int nbElems = fld->_group->size(); - for ( int elemShift = 0; elemShift < nbElems && iSub < fld->_sub.size(); ) + mcIdType nbElems = fld->_group->size(); + for ( mcIdType elemShift = 0; elemShift < nbElems && iSub < fld->_sub.size(); ) elemShift += fld->setValues( valPtr, iSub++, elemShift ); setTS( fld, values, medFields, mesh ); } @@ -3439,7 +3429,7 @@ void IntermediateMED::setFields( SauvUtilities::DoubleField* fld, fld->setValues( valPtr, iSub ); setTS( fld, values, medFields, mesh, iSub++ ); - std::cout << fld->_name << " with compoments"; + std::cout << fld->_name << " with components"; for ( size_t i = 0; i < (size_t)fld->_sub[iSub-1].nbComponents(); ++i ) std::cout << " " << fld->_sub[iSub-1]._comp_names[ i ]; std::cout << std::endl; @@ -3660,7 +3650,7 @@ bool DoubleField::isMultiTimeStamps() const bool DoubleField::isMedCompatible(bool& sameNbGauss) const { - for ( size_t iSub = 0; iSub < _sub.size(); ++iSub ) + for ( unsigned int iSub = 0; iSub < _sub.size(); ++iSub ) { if ( !getSupport(iSub) || !getSupport(iSub)->_medGroup ) THROW_IK_EXCEPTION("SauvReader INTERNAL ERROR: NULL field support"); @@ -3741,9 +3731,9 @@ MEDCoupling::TypeOfTimeDiscretization DoubleField::getMedTimeDisc() const */ //================================================================================ -int DoubleField::getNbTuples( const int iSub ) const +mcIdType DoubleField::getNbTuples( const int iSub ) const { - int nb = 0; + mcIdType nb = 0; if ( hasCommonSupport() && !_group->_groups.empty() ) for ( size_t i = 0; i < _group->_groups.size(); ++i ) nb += _sub[i].nbGauss() * _sub[i]._support->size(); @@ -3758,7 +3748,7 @@ int DoubleField::getNbTuples( const int iSub ) const */ //================================================================================ -int DoubleField::setValues( double * valPtr, const int iSub, const int elemShift ) const +mcIdType DoubleField::setValues( double * valPtr, const int iSub, const mcIdType elemShift ) const { // find values for iSub int iComp = 0; @@ -3768,41 +3758,41 @@ int DoubleField::setValues( double * valPtr, const int iSub, const int elemShift // Set values - const std::vector< unsigned >& relocTable = getSupport( iSub )->_relocTable; + const std::vector< mcIdType >& relocTable = getSupport( iSub )->_relocTable; - const int nbElems = _sub[iSub]._support->size(); + const mcIdType nbElems = _sub[iSub]._support->size(); const int nbGauss = _sub[iSub].nbGauss(); const int nbComponents = _sub[iSub].nbComponents(); const int nbValsByElem = nbComponents * nbGauss; // check nb values - int nbVals = 0; + mcIdType nbVals = 0; for ( iComp = 0; iComp < nbComponents; ++iComp ) - nbVals += compValues[iComp].size(); + nbVals += ToIdType( compValues[iComp].size() ); const bool isConstField = ( nbVals == nbComponents ); // one value per component (issue 22321) if ( !isConstField && nbVals != nbElems * nbValsByElem ) THROW_IK_EXCEPTION("SauvMedConvertor.cxx: support size mismatches field size"); // compute nb values in previous subs - int valsShift = 0; - for ( int iS = iSub-1, shift = elemShift; shift > 0; --iS) + mcIdType valsShift = 0; + for ( mcIdType iS = iSub-1, shift = elemShift; shift > 0; --iS) { - int nbE = _sub[iS]._support->size(); + mcIdType nbE = _sub[iS]._support->size(); shift -= nbE; valsShift += nbE * _sub[iS].nbComponents() * _sub[iS].nbGauss(); } if ( isConstField ) - for ( int iE = 0; iE < nbElems; ++iE ) + for ( mcIdType iE = 0; iE < nbElems; ++iE ) { - int iMed = valsShift + nbValsByElem * ( relocTable.empty() ? iE : relocTable[iE+elemShift]-elemShift ); + mcIdType iMed = valsShift + nbValsByElem * ( relocTable.empty() ? iE : relocTable[iE+elemShift]-elemShift ); for ( iComp = 0; iComp < nbComponents; ++iComp ) valPtr[ iMed + iComp ] = compValues[iComp][ 0 ]; } else - for ( int iE = 0; iE < nbElems; ++iE ) + for ( mcIdType iE = 0; iE < nbElems; ++iE ) { - int iMed = valsShift + nbValsByElem * ( relocTable.empty() ? iE : relocTable[iE+elemShift]-elemShift ); + mcIdType iMed = valsShift + nbValsByElem * ( relocTable.empty() ? iE : relocTable[iE+elemShift]-elemShift ); for ( iComp = 0; iComp < nbComponents; ++iComp ) for ( int iG = 0; iG < nbGauss; ++iG ) valPtr[ iMed + iG * nbComponents + iComp ] = compValues[iComp][ iE * nbGauss + iG ]; @@ -3873,4 +3863,3 @@ int CellsByDimIterator::dim(const bool last) const return typp < myTypeEnd ? getDimension( TCellType( typp )) : 4; } // END CellsByDimIterator ======================================================== -