-// 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 "MEDFileJoint.hxx"
-#include "MEDFileUtilities.hxx"
#include "MEDLoader.hxx"
#include "MEDLoaderBase.hxx"
#include "MEDFileSafeCaller.txx"
if ( getNumberOfCorrespondences() != other->getNumberOfCorrespondences() )
return false;
- std::vector<int> found( getNumberOfCorrespondences(), false );
+ std::vector<bool> found( getNumberOfCorrespondences(), false );
for(int i=0; i<getNumberOfCorrespondences(); i++)
{
int j;
}
return oss.str();
}
+
INTERP_KERNEL::NormalizedCellType MEDFileJointOneStep::convertGeometryType(med_geometry_type geotype)
{
INTERP_KERNEL::NormalizedCellType result=INTERP_KERNEL::NORM_ERROR;
}
return result;
}
+
std::size_t MEDFileJoint::getHeapMemorySizeWithoutChildren() const
{
return _joint.capacity()*sizeof(MCAuto<MEDFileJointOneStep>);
}
}
-/*!
- * Writes \a this joint into a MED file specified by its name.
- * \param [in] fileName - the MED file name.
- * \param [in] mode - the writing mode. For more on \a mode, see \ref AdvMEDLoaderBasics.
- * - 2 - erase; an existing file is removed.
- * - 1 - append; same data should not be present in an existing file.
- * - 0 - overwrite; same data present in an existing file is overwritten.
- * \throw If the mesh name is not set.
- * \throw If \a mode == 1 and the same data is present in an existing file.
- */
-void MEDFileJoint::write(const std::string& fileName, int mode) const
-{
- med_access_mode medmod=MEDFileUtilities::TraduceWriteMode(mode);
- MEDFileUtilities::AutoFid fid=MEDfileOpen(fileName.c_str(),medmod);
- std::ostringstream oss; oss << "MEDFileJoint : error on attempt to write in file : \"" << fileName << "\"";
- MEDFileUtilities::CheckMEDCode(fid,fid,oss.str());
- write(fid);
-}
-
-void MEDFileJoint::write(med_idt fid) const
+void MEDFileJoint::writeLL(med_idt fid) const
{
// if ( _loc_mesh_name.empty() )
// throw INTERP_KERNEL::Exception("MEDFileJoint::write : name of a local mesh not defined!");
MEDFILESAFECALLERWR0(MEDsubdomainJointCr,(fid,getLocalMeshName().c_str(),getJointName().c_str(),getDescription().c_str(),getDomainNumber(),getRemoteMeshName().c_str()));
- for(std::vector< MCAuto<MEDFileJointOneStep> >::const_iterator it=_joint.begin();it!=_joint.end();it++) {
+ for(std::vector< MCAuto<MEDFileJointOneStep> >::const_iterator it=_joint.begin();it!=_joint.end();it++)
(*it)->writeLL(fid, getLocalMeshName(),getJointName());
- }
}
void MEDFileJoint::pushStep(MEDFileJointOneStep* step)
return false;
if(_domain_number!=other->_domain_number)
return false;
- std::vector<int> found( getNumberOfSteps(), false );
- for(int i=0; i<getNumberOfSteps(); i++)
+ int nbTS(getNumberOfSteps());
+ if(nbTS!=other->getNumberOfSteps())
+ return false;
+ std::vector<bool> found(nbTS,false);
+ for(int i=0;i<nbTS;i++)
{
int j;
- for(j=0; j<getNumberOfSteps(); j++)
+ for(j=0;j<nbTS;j++)
{
- if ( !found[ j ] &&
- getStepAtPos(i)->isEqual(other->getStepAtPos(j)))
+ if(!found[j] && getStepAtPos(i)->isEqual(other->getStepAtPos(j)))
{
- found[ j ] = true;
+ found[j]=true;
break;
}
}
- if ( j == getNumberOfSteps() )
+ if(j==nbTS)
return false;
}
return true;
return new MEDFileJoints( fid, meshName );
}
-void MEDFileJoints::write(med_idt fid) const
+void MEDFileJoints::writeLL(med_idt fid) const
{
for(std::vector< MCAuto<MEDFileJoint> >::const_iterator it=_joints.begin();it!=_joints.end();it++)
- {
- (*it)->write(fid);
- }
-}
-
-void MEDFileJoints::write(const std::string& fileName, int mode) const
-{
- med_access_mode medmod=MEDFileUtilities::TraduceWriteMode(mode);
- MEDFileUtilities::AutoFid fid=MEDfileOpen(fileName.c_str(),medmod);
- std::ostringstream oss; oss << "MEDFileJoints : error on attempt to write in file : \"" << fileName << "\"";
- MEDFileUtilities::CheckMEDCode(fid,fid,oss.str());
- write(fid);
+ (*it)->writeLL(fid);
}
std::string MEDFileJoints::getMeshName() const