-// Copyright (C) 2007-2015 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
#include <cstdlib>
#include <iomanip>
-using namespace ParaMEDMEM;
+using namespace MEDCoupling;
using namespace SauvUtilities;
using namespace std;
//================================================================================
/*!
- * \brief Converts MED long names into SAUVE short ones, returnes a healed long name
+ * \brief Converts MED long names into SAUVE short ones, returns a healed long name
*/
//================================================================================
for ( size_t iDim = 0; iDim < dims.size(); ++iDim )
{
int dimRelExt = dims[ iDim ];
- MEDCouplingAutoRefCountObjectPtr< MEDCouplingMesh > mesh = _fileMesh->getGenMeshAtLevel(dimRelExt);
+ MCAuto< MEDCouplingMesh > mesh = _fileMesh->getMeshAtLevel(dimRelExt);
const DataArrayInt * famIds = _fileMesh->getFamilyFieldAtLevel(dimRelExt);
if ( !famIds ) continue;
++k;
}
}
+ if ( k == 0 )
+ continue;
// if a family exists but has no element, no submesh has been found for this family
// => we have to resize famSubMeshes with the number of submeshes stored
if (k != famNames.size())
- famSubMeshes.resize(k);
+ famSubMeshes.resize(k);
SubMesh* grpSubMesh = addSubMesh( groupName, famSubMeshes[0]->_dimRelExt );
- if(!_cpy_grp_if_on_single_family)
- grpSubMesh->_subs.swap( famSubMeshes );
+ if( ! _cpy_grp_if_on_single_family )
+ {
+ grpSubMesh->_subs.swap( famSubMeshes );
+ }
else
{
- /* If a group sub mesh consists of only one family, the group is written as
- * a copy of this family.
+ /* If a group sub mesh consists of only one family, the group is written as
+ * a copy of this family.
* A mesh composed of only one submesh may cause an issue with some Gibi operators.*/
if (famSubMeshes.size() == 1)
{
SubMesh* nilSm = (SubMesh*) 0;
for ( int isOnNodes = 0; isOnNodes < 2; ++isOnNodes )
{
- vector< MEDCouplingAutoRefCountObjectPtr< MEDFileFieldMultiTS > >
+ vector< MCAuto< MEDFileFieldMultiTS > >
fields = isOnNodes ? _nodeFields : _cellFields;
for ( size_t i = 0; i < fields.size(); ++i )
{
//================================================================================
/*!
- * \brief Transorm a profile into ids of mesh elements
+ * \brief Transform a profile into ids of mesh elements
*/
//================================================================================
INTERP_KERNEL::NormalizedCellType type,
const DataArrayInt* profile )
{
- MEDCouplingAutoRefCountObjectPtr< MEDCouplingMesh >
- mesh = _fileMesh->getGenMeshAtLevel(sm->_dimRelExt);
+ MCAuto< MEDCouplingMesh >
+ mesh = _fileMesh->getMeshAtLevel(sm->_dimRelExt);
const MEDCouplingUMesh* uMesh = dynamic_cast< const MEDCouplingUMesh* > ((const MEDCouplingMesh*) mesh );
if ( sm->_dimRelExt == 1 ) type = INTERP_KERNEL::NORM_POINT1;
code[2] = -1;
}
vector<const DataArrayInt *> idsPerType( 1, profile );
- MEDCouplingAutoRefCountObjectPtr<DataArrayInt>
+ MCAuto<DataArrayInt>
resIDs = uMesh->checkTypeConsistencyAndContig( code, idsPerType );
if (( const DataArrayInt *) resIDs )
{
void SauvWriter::writeFileHead()
{
- MEDCouplingAutoRefCountObjectPtr< MEDCouplingMesh > mesh = _fileMesh->getGenMeshAtLevel(0);
+ MCAuto< MEDCouplingMesh > mesh = _fileMesh->getMeshAtLevel(0);
*_sauvFile
<< " ENREGISTREMENT DE TYPE 4" << endl
writeNames( nameNbMap );
- TFieldCounter fcount( *_sauvFile, 10 ); // 10 intergers per line
+ TFieldCounter fcount( *_sauvFile, 10 ); // 10 integers per line
for ( size_t iSub = 0; iSub < _subs.size(); ++iSub )
{
else
{
// write each sub-type as a SAUV sub-mesh
- MEDCouplingAutoRefCountObjectPtr< MEDCouplingMesh >
- mesh = _fileMesh->getGenMeshAtLevel( sm._dimRelExt );
- MEDCouplingAutoRefCountObjectPtr< MEDCouplingUMesh>
+ MCAuto< MEDCouplingMesh >
+ mesh = _fileMesh->getMeshAtLevel( sm._dimRelExt );
+ MCAuto< MEDCouplingUMesh>
umesh = mesh->buildUnstructured();
for ( int iType=0; iType < sm.cellIDsByTypeSize(); ++iType )
<< zeroI8
<< zeroI8 << endl;
- TFieldCounter fcount( *_sauvFile, 10 ); // 10 intergers per line
+ TFieldCounter fcount( *_sauvFile, 10 ); // 10 integers per line
for ( size_t i = 0; i < subIDs.size(); ++i, fcount++ )
*_sauvFile << setw(8) << subIDs[i];
}
void SauvWriter::writeNodes()
{
- MEDCouplingAutoRefCountObjectPtr< MEDCouplingMesh > mesh = _fileMesh->getGenMeshAtLevel( 1 );
- MEDCouplingAutoRefCountObjectPtr< MEDCouplingUMesh > umesh = mesh->buildUnstructured();
+ MCAuto< MEDCouplingMesh > mesh = _fileMesh->getMeshAtLevel( 1 );
+ MCAuto< MEDCouplingUMesh > umesh = mesh->buildUnstructured();
- // write the index connecting nodes with their coodrinates
+ // write the index connecting nodes with their coordinates
const int nbNodes = umesh->getNumberOfNodes();
*_sauvFile << " ENREGISTREMENT DE TYPE 2" << endl
_sauvFile->precision(14);
_sauvFile->setf( ios_base::scientific, ios_base::floatfield );
_sauvFile->setf( ios_base::uppercase );
- MEDCouplingAutoRefCountObjectPtr< DataArrayDouble> coordArray = umesh->getCoordinatesAndOwner();
+ MCAuto< DataArrayDouble> coordArray = umesh->getCoordinatesAndOwner();
const double precision = 1.e-99; // PAL12077
for ( int i = 0; i < nbNodes; ++i)
{
void SauvWriter::writeFieldNames( const bool isNodal,
std::map<std::string,int>& fldNamePrefixMap)
{
- vector< MEDCouplingAutoRefCountObjectPtr< MEDFileFieldMultiTS > >&
+ vector< MCAuto< MEDFileFieldMultiTS > >&
flds = isNodal ? _nodeFields : _cellFields;
map<string,int> nameNbMap;
fcount.stop();
}
}
- } // loop on fiels
+ } // loop on files
}
//================================================================================