return new SauvWriter;
}
+std::size_t SauvWriter::getHeapMemorySizeWithoutChildren() const
+{
+ return 0;
+}
+
+std::vector<const BigMemoryObject *> SauvWriter::getDirectChildren() const
+{
+ return std::vector<const BigMemoryObject *>();
+}
+
//================================================================================
/*!
* \brief Fills own DS by MEDFileData
vector< vector<TypeOfField> > typesF;
vector< vector<string> > pfls, locs;
fields[i]->getFieldSplitedByType( iters[0].first, iters[0].second,
- _fileMesh->getName(), types, typesF, pfls, locs);
+ _fileMesh->getName().c_str(), types, typesF, pfls, locs);
int dimRelExt;
for ( size_t iType = 0; iType < types.size(); ++iType )
{
vector< vector<TypeOfField> > typesF;
vector< vector<string> > pfls, locs;
_cellFields[i]->getFieldSplitedByType( iters[0].first, iters[0].second,
- _fileMesh->getName(), types, typesF, pfls, locs);
+ _fileMesh->getName().c_str(), types, typesF, pfls, locs);
nb += 2 * types.size(); // x 2 - a type can be on nodes and on cells at the same time
}
vector<const DataArrayInt *> idsPerType( 1, profile );
MEDCouplingAutoRefCountObjectPtr<DataArrayInt>
resIDs = uMesh->checkTypeConsistencyAndContig( code, idsPerType );
- ids.assign( resIDs->begin(), resIDs->end() );
+ if (( const DataArrayInt *) resIDs )
+ {
+ ids.assign( resIDs->begin(), resIDs->end() );
+ }
+ else // mesh includes only one type
+ {
+ int nbE = code[1];
+ for ( ids.resize( nbE ); nbE; --nbE )
+ ids[ nbE-1 ] = nbE-1;
+ }
}
}
vector< vector<TypeOfField> > typesF;
vector< vector<string> > pfls, locs;
vector< vector< std::pair<int,int> > > valsVec;
- valsVec=_nodeFields[iF]->getFieldSplitedByType( it.first, it.second, _fileMesh->getName(),
+ valsVec=_nodeFields[iF]->getFieldSplitedByType( it.first, it.second, _fileMesh->getName().c_str(),
types, typesF, pfls, locs);
// believe that there can be only one type in a nodal field,
// so do not use a loop on types
vector< vector<TypeOfField> > typesF;
vector< vector<string> > pfls, locs;
vector< vector< std::pair<int,int> > > valsVec;
- valsVec = _nodeFields[iF]->getFieldSplitedByType( it.first, it.second, _fileMesh->getName(),
+ valsVec = _nodeFields[iF]->getFieldSplitedByType( it.first, it.second, _fileMesh->getName().c_str(),
types, typesF, pfls, locs);
// believe that there can be only one type in a nodal field,
// so do not perform a loop on types
vector< vector<TypeOfField> > typesF;
vector< vector<string> > pfls, locs;
vector< vector< std::pair<int,int> > > valsVec;
- valsVec = _cellFields[iF]->getFieldSplitedByType( it.first, it.second, _fileMesh->getName(),
+ valsVec = _cellFields[iF]->getFieldSplitedByType( it.first, it.second, _fileMesh->getName().c_str(),
types, typesF, pfls, locs);
for ( size_t i = 0; i < valsVec.size(); ++i )
nbSub += valsVec[i].size();
vector<INTERP_KERNEL::NormalizedCellType> types;
vector< vector<TypeOfField> > typesF;
vector< vector<string> > pfls, locs;
- _cellFields[iF]->getFieldSplitedByType( it.first, it.second, _fileMesh->getName(),
+ _cellFields[iF]->getFieldSplitedByType( it.first, it.second, _fileMesh->getName().c_str(),
types, typesF, pfls, locs);
for ( size_t iType = 0; iType < pfls.size(); ++iType )
for ( size_t iP = 0; iP < pfls[iType].size(); ++iP )
vector< vector<TypeOfField> > typesF;
vector< vector<string> > pfls, locs;
vector< vector< std::pair<int,int> > > valsVec;
- valsVec = _cellFields[iF]->getFieldSplitedByType( iter, order, _fileMesh->getName(),
+ valsVec = _cellFields[iF]->getFieldSplitedByType( iter, order, _fileMesh->getName().c_str(),
types, typesF, pfls, locs);
for ( size_t iType = 0; iType < pfls.size(); ++iType )
for ( size_t iP = 0; iP < pfls[iType].size(); ++iP )