X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FMEDLoader%2FSwig%2FMEDLoaderCommon.i;h=d53d6d623fa5ae57a2da8d282c891bfc26cd0231;hb=e95ee11e7df126315ffd11c2518b648a6915ad51;hp=457fefbdafad975a59dd26f0adb80db10e210b61;hpb=b219559763498c4bd10c730cd3d2c62b1eed45db;p=tools%2Fmedcoupling.git diff --git a/src/MEDLoader/Swig/MEDLoaderCommon.i b/src/MEDLoader/Swig/MEDLoaderCommon.i index 457fefbda..d53d6d623 100644 --- a/src/MEDLoader/Swig/MEDLoaderCommon.i +++ b/src/MEDLoader/Swig/MEDLoaderCommon.i @@ -1,4 +1,4 @@ -// Copyright (C) 2017-2019 CEA/DEN, EDF R&D +// Copyright (C) 2017-2021 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 @@ -38,9 +38,12 @@ #include "MEDFileEntities.hxx" #include "MEDFileMeshReadSelector.hxx" #include "MEDFileFieldOverView.hxx" +#include "MEDCouplingTypemaps.i" #include "MEDLoaderTypemaps.i" #include "SauvReader.hxx" #include "SauvWriter.hxx" +#include "MeshFormatReader.hxx" +#include "MeshFormatWriter.hxx" using namespace MEDCoupling; %} @@ -119,6 +122,7 @@ using namespace MEDCoupling; %newobject MEDCoupling::MEDFileUMesh::getDirectUndergroundSingleGeoTypeMesh; %newobject MEDCoupling::MEDFileUMesh::extractFamilyFieldOnGeoType; %newobject MEDCoupling::MEDFileUMesh::extractNumberFieldOnGeoType; +%newobject MEDCoupling::MEDFileUMesh::computeFetchedNodeIds; %newobject MEDCoupling::MEDFileUMesh::zipCoords; %newobject MEDCoupling::MEDFileUMesh::deduceNodeSubPartFromCellSubPart; %newobject MEDCoupling::MEDFileUMesh::extractPart; @@ -181,16 +185,27 @@ using namespace MEDCoupling; %newobject MEDCoupling::MEDFileFieldMultiTS::getFieldAtLevelOld; %newobject MEDCoupling::MEDFileFieldMultiTS::getUndergroundDataArray; %newobject MEDCoupling::MEDFileFieldMultiTS::convertToInt; - -%newobject MEDCoupling::MEDFileIntFieldMultiTS::New; -%newobject MEDCoupling::MEDFileIntFieldMultiTS::field; -%newobject MEDCoupling::MEDFileIntFieldMultiTS::LoadSpecificEntities; -%newobject MEDCoupling::MEDFileIntFieldMultiTS::getUndergroundDataArray; -%newobject MEDCoupling::MEDFileIntFieldMultiTS::convertToDouble; -%newobject MEDCoupling::MEDFileIntFieldMultiTS::getFieldAtLevel; -%newobject MEDCoupling::MEDFileIntFieldMultiTS::getFieldAtTopLevel; -%newobject MEDCoupling::MEDFileIntFieldMultiTS::getFieldOnMeshAtLevel; -%newobject MEDCoupling::MEDFileIntFieldMultiTS::getFieldAtLevelOld; +%newobject MEDCoupling::MEDFileFieldMultiTS::Aggregate; + +%newobject MEDCoupling::MEDFileInt32FieldMultiTS::New; +%newobject MEDCoupling::MEDFileInt32FieldMultiTS::field; +%newobject MEDCoupling::MEDFileInt32FieldMultiTS::LoadSpecificEntities; +%newobject MEDCoupling::MEDFileInt32FieldMultiTS::getUndergroundDataArray; +%newobject MEDCoupling::MEDFileInt32FieldMultiTS::convertToDouble; +%newobject MEDCoupling::MEDFileInt32FieldMultiTS::getFieldAtLevel; +%newobject MEDCoupling::MEDFileInt32FieldMultiTS::getFieldAtTopLevel; +%newobject MEDCoupling::MEDFileInt32FieldMultiTS::getFieldOnMeshAtLevel; +%newobject MEDCoupling::MEDFileInt32FieldMultiTS::getFieldAtLevelOld; + +%newobject MEDCoupling::MEDFileInt64FieldMultiTS::New; +%newobject MEDCoupling::MEDFileInt64FieldMultiTS::field; +%newobject MEDCoupling::MEDFileInt64FieldMultiTS::LoadSpecificEntities; +%newobject MEDCoupling::MEDFileInt64FieldMultiTS::getUndergroundDataArray; +%newobject MEDCoupling::MEDFileInt64FieldMultiTS::convertToDouble; +%newobject MEDCoupling::MEDFileInt64FieldMultiTS::getFieldAtLevel; +%newobject MEDCoupling::MEDFileInt64FieldMultiTS::getFieldAtTopLevel; +%newobject MEDCoupling::MEDFileInt64FieldMultiTS::getFieldOnMeshAtLevel; +%newobject MEDCoupling::MEDFileInt64FieldMultiTS::getFieldAtLevelOld; %newobject MEDCoupling::MEDFileFloatFieldMultiTS::New; %newobject MEDCoupling::MEDFileFloatFieldMultiTS::field; @@ -216,14 +231,23 @@ using namespace MEDCoupling; %newobject MEDCoupling::MEDFileField1TS::getUndergroundDataArray; %newobject MEDCoupling::MEDFileField1TS::convertToInt; -%newobject MEDCoupling::MEDFileIntField1TS::New; -%newobject MEDCoupling::MEDFileIntField1TS::field; -%newobject MEDCoupling::MEDFileIntField1TS::getFieldAtLevel; -%newobject MEDCoupling::MEDFileIntField1TS::getFieldAtTopLevel; -%newobject MEDCoupling::MEDFileIntField1TS::getFieldOnMeshAtLevel; -%newobject MEDCoupling::MEDFileIntField1TS::getFieldAtLevelOld; -%newobject MEDCoupling::MEDFileIntField1TS::getUndergroundDataArray; -%newobject MEDCoupling::MEDFileIntField1TS::convertToDouble; +%newobject MEDCoupling::MEDFileInt32Field1TS::New; +%newobject MEDCoupling::MEDFileInt32Field1TS::field; +%newobject MEDCoupling::MEDFileInt32Field1TS::getFieldAtLevel; +%newobject MEDCoupling::MEDFileInt32Field1TS::getFieldAtTopLevel; +%newobject MEDCoupling::MEDFileInt32Field1TS::getFieldOnMeshAtLevel; +%newobject MEDCoupling::MEDFileInt32Field1TS::getFieldAtLevelOld; +%newobject MEDCoupling::MEDFileInt32Field1TS::getUndergroundDataArray; +%newobject MEDCoupling::MEDFileInt32Field1TS::convertToDouble; + +%newobject MEDCoupling::MEDFileInt64Field1TS::New; +%newobject MEDCoupling::MEDFileInt64Field1TS::field; +%newobject MEDCoupling::MEDFileInt64Field1TS::getFieldAtLevel; +%newobject MEDCoupling::MEDFileInt64Field1TS::getFieldAtTopLevel; +%newobject MEDCoupling::MEDFileInt64Field1TS::getFieldOnMeshAtLevel; +%newobject MEDCoupling::MEDFileInt64Field1TS::getFieldAtLevelOld; +%newobject MEDCoupling::MEDFileInt64Field1TS::getUndergroundDataArray; +%newobject MEDCoupling::MEDFileInt64Field1TS::convertToDouble; %newobject MEDCoupling::MEDFileFloatField1TS::New; %newobject MEDCoupling::MEDFileFloatField1TS::field; @@ -288,6 +312,7 @@ using namespace MEDCoupling; %newobject MEDCoupling::SauvReader::New; %newobject MEDCoupling::SauvReader::loadInMEDFileDS; + %newobject MEDCoupling::MEDFileMeshStruct::New; %newobject MEDCoupling::MEDMeshMultiLev::prepare; %newobject MEDCoupling::MEDMeshMultiLev::buildDataArray; @@ -295,6 +320,10 @@ using namespace MEDCoupling; %newobject MEDCoupling::MEDFileFastCellSupportComparator::New; %newobject MEDCoupling::MEDFileFastCellSupportComparator::buildFromScratchDataSetSupport; +%newobject MEDCoupling::MeshFormatReader::loadInMEDFileDS; +%newobject MEDCoupling::MeshFormatReader::MeshFormatReader; +%newobject MEDCoupling::MeshFormatWriter::MeshFormatWriter; + %feature("unref") MEDFileMesh "$this->decrRef();" %feature("unref") MEDFileUMesh "$this->decrRef();" %feature("unref") MEDFileCMesh "$this->decrRef();" @@ -303,11 +332,13 @@ using namespace MEDCoupling; %feature("unref") MEDFileFieldLoc "$this->decrRef();" %feature("unref") MEDFileAnyTypeField1TS "$this->decrRef();" %feature("unref") MEDFileField1TS "$this->decrRef();" -%feature("unref") MEDFileIntField1TS "$this->decrRef();" +%feature("unref") MEDFileInt32Field1TS "$this->decrRef();" +%feature("unref") MEDFileInt64Field1TS "$this->decrRef();" %feature("unref") MEDFileFloatField1TS "$this->decrRef();" %feature("unref") MEDFileAnyTypeFieldMultiTS "$this->decrRef();" %feature("unref") MEDFileFieldMultiTS "$this->decrRef();" -%feature("unref") MEDFileIntFieldMultiTS "$this->decrRef();" +%feature("unref") MEDFileInt32FieldMultiTS "$this->decrRef();" +%feature("unref") MEDFileInt64FieldMultiTS "$this->decrRef();" %feature("unref") MEDFileFloatFieldMultiTS "$this->decrRef();" %feature("unref") MEDFileMeshSupports "$this->decrRef();" %feature("unref") MEDFileStructureElements "$this->decrRef();" @@ -391,6 +422,7 @@ namespace MEDCoupling %rename (ReadUMeshFromGroups) ReadUMeshFromGroupsSwig; %rename (ReadUMeshFromFamilies) ReadUMeshFromFamiliesSwig; %rename (ReadField) ReadFieldSwig; +%rename (GetFamiliesGroupsInfo) GetFamiliesGroupsInfoSwig; %inline { @@ -405,6 +437,23 @@ namespace MEDCoupling return ret; } + int MEDFileSizeOfMedInt() + { + return 8*sizeof(med_int); + } + + PyObject *GetFamiliesGroupsInfoSwig(const std::string& fileName, const std::string& meshName) + { + std::map families; + std::map> groupsOnFam; + MEDCoupling::GetFamiliesGroupsInfo(fileName,meshName,families,groupsOnFam); + AutoPyPtr a(convertMapStringInt(families)),b(convertMapStringVectString(groupsOnFam)); + AutoPyPtr ret(PyTuple_New(2)); + PyTuple_SetItem(ret,0,a.retn()); + PyTuple_SetItem(ret,1,b.retn()); + return ret.retn(); + } + MEDCoupling::MEDCouplingField *ReadFieldSwig(const std::string& fileName) { MCAuto ret(MEDCoupling::ReadField(fileName)); @@ -605,6 +654,7 @@ namespace MEDCoupling public: void write(const std::string& fileName, int mode) const; void write33(const std::string& fileName, int mode) const; + void write30(const std::string& fileName, int mode) const; %extend { DataArrayByte *serialize() const @@ -630,6 +680,8 @@ namespace MEDCoupling public: MEDFileMeshReadSelector(); MEDFileMeshReadSelector(unsigned int code); + mcIdType getNumberOfCoordsLoadSessions(); + void setNumberOfCoordsLoadSessions(mcIdType newNbOfCoordsLoadSessions); unsigned int getCode() const; void setCode(unsigned int newCode); bool isCellFamilyFieldReading() const; @@ -1182,6 +1234,12 @@ namespace MEDCoupling return self->getMeshAtLevel(meshDimRelToMaxExt,false); } + static INTERP_KERNEL::NormalizedCellType ConvertFromMEDFileGeoType(int geoType) + { + med_geometry_type geoType2((med_geometry_type) geoType); + return MEDFileMesh::ConvertFromMEDFileGeoType(geoType2); + } + PyObject *getTime() { int tmp1,tmp2; @@ -1381,6 +1439,7 @@ namespace MEDCoupling MEDCouplingUMesh *getLevelM2Mesh(bool renum=false) const; MEDCouplingUMesh *getLevelM3Mesh(bool renum=false) const; void forceComputationOfParts() const; + void computeRevNum() const; // void setFamilyNameAttachedOnId(int id, const std::string& newFamName); void setCoords(DataArrayDouble *coords); @@ -1390,6 +1449,7 @@ namespace MEDCoupling void setMeshAtLevel(int meshDimRelToMax, MEDCoupling1GTUMesh *m); void setMeshAtLevel(int meshDimRelToMax, MEDCouplingUMesh *m, bool newOrOld=false); void optimizeFamilies(); + DataArrayIdType *computeFetchedNodeIds() const; DataArrayIdType *zipCoords(); DataArrayIdType *extractFamilyFieldOnGeoType(INTERP_KERNEL::NormalizedCellType gt) const; DataArrayIdType *extractNumberFieldOnGeoType(INTERP_KERNEL::NormalizedCellType gt) const; @@ -1435,6 +1495,22 @@ namespace MEDCoupling return MEDFileUMesh::LoadPartOf(fileName,mName,typesCpp2,slicPerTyp,dt,it,mrs); } + static PyObject *LoadPartCoords(const std::string& fileName, const std::string& mName, int dt, int it, const std::vector& infosOnComp, mcIdType startNodeId, mcIdType stopNodeId) + { + MCAuto coords; + MCAuto partCoords; + MCAuto famCoords,numCoords; + MCAuto nameCoord; + MEDFileUMesh::LoadPartCoords(fileName,mName,dt,it,infosOnComp,startNodeId,stopNodeId,coords,partCoords,famCoords,numCoords,nameCoord); + PyObject *ret(PyTuple_New(5)); + PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(coords.retn()),SWIGTYPE_p_MEDCoupling__DataArrayDouble, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,1,convertPartDefinition(partCoords.retn(),SWIG_POINTER_OWN | 0)); + PyTuple_SetItem(ret,2,SWIG_NewPointerObj(SWIG_as_voidptr(famCoords.retn()),SWIGTITraits::TI, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,3,SWIG_NewPointerObj(SWIG_as_voidptr(numCoords.retn()),SWIGTITraits::TI, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,4,SWIG_NewPointerObj(SWIG_as_voidptr(nameCoord.retn()),SWIGTYPE_p_MEDCoupling__DataArrayAsciiChar, SWIG_POINTER_OWN | 0 )); + return ret; + } + PyObject *__getstate__() { std::vector a0; @@ -1713,6 +1789,8 @@ namespace MEDCoupling static MEDFileCurveLinearMesh *New(const std::string& fileName, MEDFileMeshReadSelector *mrs=0); static MEDFileCurveLinearMesh *New(const std::string& fileName, const std::string& mName, int dt=-1, int it=-1, MEDFileMeshReadSelector *mrs=0); void setMesh(MEDCouplingCurveLinearMesh *m); + int getSpaceDimension() const; + int getMeshDimension() const; %extend { MEDFileCurveLinearMesh() @@ -2225,7 +2303,7 @@ namespace MEDCoupling static MEDFileField1TS *New(const std::string& fileName, bool loadAll=true); static MEDFileField1TS *New(DataArrayByte *db); static MEDFileField1TS *New(); - MEDCoupling::MEDFileIntField1TS *convertToInt(bool isDeepCpyGlobs=true) const; + MEDCoupling::MEDFileInt32Field1TS *convertToInt(bool isDeepCpyGlobs=true) const; void copyTimeInfoFrom(MEDCouplingFieldDouble *mcf); MEDCouplingFieldDouble *field(const MEDFileMesh *mesh) const; MEDCouplingFieldDouble *getFieldAtLevel(TypeOfField type, int meshDimRelToMax, int renumPol=0) const; @@ -2333,51 +2411,51 @@ namespace MEDCoupling } }; - class MEDFileIntField1TS : public MEDFileAnyTypeField1TS + class MEDFileInt32Field1TS : public MEDFileAnyTypeField1TS { public: - static MEDFileIntField1TS *New(); - static MEDFileIntField1TS *New(const std::string& fileName, bool loadAll=true); - static MEDFileIntField1TS *New(DataArrayByte *db); - static MEDFileIntField1TS *New(const std::string& fileName, const std::string& fieldName, bool loadAll=true); - static MEDFileIntField1TS *New(const std::string& fileName, const std::string& fieldName, int iteration, int order, bool loadAll=true); + static MEDFileInt32Field1TS *New(); + static MEDFileInt32Field1TS *New(const std::string& fileName, bool loadAll=true); + static MEDFileInt32Field1TS *New(DataArrayByte *db); + static MEDFileInt32Field1TS *New(const std::string& fileName, const std::string& fieldName, bool loadAll=true); + static MEDFileInt32Field1TS *New(const std::string& fileName, const std::string& fieldName, int iteration, int order, bool loadAll=true); MEDCoupling::MEDFileField1TS *convertToDouble(bool isDeepCpyGlobs=true) const; // - void setFieldNoProfileSBT(const MEDCouplingFieldInt *field); - void setFieldProfile(const MEDCouplingFieldInt *field, const MEDFileMesh *mesh, int meshDimRelToMax, const DataArrayIdType *profile); - void setFieldProfileFlatly(const MEDCouplingFieldInt *field, const MEDFileMesh *mesh, int meshDimRelToMax, const DataArrayIdType *profile); - void copyTimeInfoFrom(MEDCouplingFieldInt *mcf); - MEDCouplingFieldInt *field(const MEDFileMesh *mesh) const; - MEDCouplingFieldInt *getFieldAtLevel(TypeOfField type, int meshDimRelToMax, int renumPol=0) const; - MEDCouplingFieldInt *getFieldAtTopLevel(TypeOfField type, int renumPol=0) const; - MEDCouplingFieldInt *getFieldOnMeshAtLevel(TypeOfField type, int meshDimRelToMax, const MEDFileMesh *mesh, int renumPol=0) const; - MEDCouplingFieldInt *getFieldOnMeshAtLevel(TypeOfField type, const MEDCouplingMesh *mesh, int renumPol=0) const; - MEDCouplingFieldInt *getFieldAtLevelOld(TypeOfField type, const std::string& mname, int meshDimRelToMax, int renumPol=0) const; + void setFieldNoProfileSBT(const MEDCouplingFieldInt32 *field); + void setFieldProfile(const MEDCouplingFieldInt32 *field, const MEDFileMesh *mesh, int meshDimRelToMax, const DataArrayIdType *profile); + void setFieldProfileFlatly(const MEDCouplingFieldInt32 *field, const MEDFileMesh *mesh, int meshDimRelToMax, const DataArrayIdType *profile); + void copyTimeInfoFrom(MEDCouplingFieldInt32 *mcf); + MEDCouplingFieldInt32 *field(const MEDFileMesh *mesh) const; + MEDCouplingFieldInt32 *getFieldAtLevel(TypeOfField type, int meshDimRelToMax, int renumPol=0) const; + MEDCouplingFieldInt32 *getFieldAtTopLevel(TypeOfField type, int renumPol=0) const; + MEDCouplingFieldInt32 *getFieldOnMeshAtLevel(TypeOfField type, int meshDimRelToMax, const MEDFileMesh *mesh, int renumPol=0) const; + MEDCouplingFieldInt32 *getFieldOnMeshAtLevel(TypeOfField type, const MEDCouplingMesh *mesh, int renumPol=0) const; + MEDCouplingFieldInt32 *getFieldAtLevelOld(TypeOfField type, const std::string& mname, int meshDimRelToMax, int renumPol=0) const; %extend { - MEDFileIntField1TS() + MEDFileInt32Field1TS() { - return MEDFileIntField1TS::New(); + return MEDFileInt32Field1TS::New(); } - MEDFileIntField1TS(const std::string& fileName, bool loadAll=true) + MEDFileInt32Field1TS(const std::string& fileName, bool loadAll=true) { - return MEDFileIntField1TS::New(fileName,loadAll); + return MEDFileInt32Field1TS::New(fileName,loadAll); } - MEDFileIntField1TS(const std::string& fileName, const std::string& fieldName, bool loadAll=true) + MEDFileInt32Field1TS(const std::string& fileName, const std::string& fieldName, bool loadAll=true) { - return MEDFileIntField1TS::New(fileName,fieldName,loadAll); + return MEDFileInt32Field1TS::New(fileName,fieldName,loadAll); } - MEDFileIntField1TS(const std::string& fileName, const std::string& fieldName, int iteration, int order, bool loadAll=true) + MEDFileInt32Field1TS(const std::string& fileName, const std::string& fieldName, int iteration, int order, bool loadAll=true) { - return MEDFileIntField1TS::New(fileName,fieldName,iteration,order,loadAll); + return MEDFileInt32Field1TS::New(fileName,fieldName,iteration,order,loadAll); } - MEDFileIntField1TS(DataArrayByte *db) + MEDFileInt32Field1TS(DataArrayByte *db) { - return MEDFileIntField1TS::New(db); + return MEDFileInt32Field1TS::New(db); } std::string __str__() const @@ -2387,7 +2465,7 @@ namespace MEDCoupling PyObject *getFieldWithProfile(TypeOfField type, int meshDimRelToMax, const MEDFileMesh *mesh) const { - return MEDFileField1TS_getFieldWithProfile(self,type,meshDimRelToMax,mesh); + return MEDFileField1TS_getFieldWithProfile(self,type,meshDimRelToMax,mesh); } DataArrayInt32 *getUndergroundDataArray() const @@ -2400,7 +2478,79 @@ namespace MEDCoupling PyObject *getUndergroundDataArrayExt() const { - return MEDFileField1TS_getUndergroundDataArrayExt(self); + return MEDFileField1TS_getUndergroundDataArrayExt(self); + } + } + }; + + class MEDFileInt64Field1TS : public MEDFileAnyTypeField1TS + { + public: + static MEDFileInt64Field1TS *New(); + static MEDFileInt64Field1TS *New(const std::string& fileName, bool loadAll=true); + static MEDFileInt64Field1TS *New(DataArrayByte *db); + static MEDFileInt64Field1TS *New(const std::string& fileName, const std::string& fieldName, bool loadAll=true); + static MEDFileInt64Field1TS *New(const std::string& fileName, const std::string& fieldName, int iteration, int order, bool loadAll=true); + MEDCoupling::MEDFileField1TS *convertToDouble(bool isDeepCpyGlobs=true) const; + // + void setFieldNoProfileSBT(const MEDCouplingFieldInt64 *field); + void setFieldProfile(const MEDCouplingFieldInt64 *field, const MEDFileMesh *mesh, int meshDimRelToMax, const DataArrayIdType *profile); + void setFieldProfileFlatly(const MEDCouplingFieldInt64 *field, const MEDFileMesh *mesh, int meshDimRelToMax, const DataArrayIdType *profile); + void copyTimeInfoFrom(MEDCouplingFieldInt64 *mcf); + MEDCouplingFieldInt64 *field(const MEDFileMesh *mesh) const; + MEDCouplingFieldInt64 *getFieldAtLevel(TypeOfField type, int meshDimRelToMax, int renumPol=0) const; + MEDCouplingFieldInt64 *getFieldAtTopLevel(TypeOfField type, int renumPol=0) const; + MEDCouplingFieldInt64 *getFieldOnMeshAtLevel(TypeOfField type, int meshDimRelToMax, const MEDFileMesh *mesh, int renumPol=0) const; + MEDCouplingFieldInt64 *getFieldOnMeshAtLevel(TypeOfField type, const MEDCouplingMesh *mesh, int renumPol=0) const; + MEDCouplingFieldInt64 *getFieldAtLevelOld(TypeOfField type, const std::string& mname, int meshDimRelToMax, int renumPol=0) const; + %extend + { + MEDFileInt64Field1TS() + { + return MEDFileInt64Field1TS::New(); + } + + MEDFileInt64Field1TS(const std::string& fileName, bool loadAll=true) + { + return MEDFileInt64Field1TS::New(fileName,loadAll); + } + + MEDFileInt64Field1TS(const std::string& fileName, const std::string& fieldName, bool loadAll=true) + { + return MEDFileInt64Field1TS::New(fileName,fieldName,loadAll); + } + + MEDFileInt64Field1TS(const std::string& fileName, const std::string& fieldName, int iteration, int order, bool loadAll=true) + { + return MEDFileInt64Field1TS::New(fileName,fieldName,iteration,order,loadAll); + } + + MEDFileInt64Field1TS(DataArrayByte *db) + { + return MEDFileInt64Field1TS::New(db); + } + + std::string __str__() const + { + return self->simpleRepr(); + } + + PyObject *getFieldWithProfile(TypeOfField type, int meshDimRelToMax, const MEDFileMesh *mesh) const + { + return MEDFileField1TS_getFieldWithProfile(self,type,meshDimRelToMax,mesh); + } + + DataArrayInt64 *getUndergroundDataArray() const + { + DataArrayInt64 *ret=self->getUndergroundDataArray(); + if(ret) + ret->incrRef(); + return ret; + } + + PyObject *getUndergroundDataArrayExt() const + { + return MEDFileField1TS_getUndergroundDataArrayExt(self); } } }; @@ -2865,7 +3015,8 @@ namespace MEDCoupling } }; - class MEDFileIntFieldMultiTS; + class MEDFileInt32FieldMultiTS; + class MEDFileInt64FieldMultiTS; class MEDFileFieldMultiTS : public MEDFileAnyTypeFieldMultiTS { @@ -2884,9 +3035,20 @@ namespace MEDCoupling // void appendFieldNoProfileSBT(const MEDCouplingFieldDouble *field); void appendFieldProfile(const MEDCouplingFieldDouble *field, const MEDFileMesh *mesh, int meshDimRelToMax, const DataArrayIdType *profile); - MEDFileIntFieldMultiTS *convertToInt(bool isDeepCpyGlobs=true) const; + MEDFileInt32FieldMultiTS *convertToInt(bool isDeepCpyGlobs=true) const; %extend { + static MEDFileAnyTypeFieldMultiTS *Aggregate(PyObject *fmtssPy, PyObject *dtsPy) + { + std::vector fmtss; + convertFromPyObjVectorOfObj(fmtssPy,SWIGTYPE_p_MEDCoupling__MEDFileAnyTypeFieldMultiTS,"MEDFileAnyTypeFieldMultiTS",fmtss); + std::vector< std::vector< std::pair > > dts2; + convertPyToVectorVectorPairInt(dtsPy,dts2); + std::vector< std::vector< std::pair > > dts(MEDVectorVectorMIIterator(0,dts2),MEDVectorVectorMIIterator(dts2.size(),dts2)); + MCAuto ret = MEDFileFieldMultiTS::Aggregate(fmtss,dts); + return ret.retn(); + } + MEDFileFieldMultiTS() { return MEDFileFieldMultiTS::New(); @@ -3024,50 +3186,50 @@ namespace MEDCoupling } }; - class MEDFileIntFieldMultiTS : public MEDFileAnyTypeFieldMultiTS + class MEDFileInt32FieldMultiTS : public MEDFileAnyTypeFieldMultiTS { public: - static MEDFileIntFieldMultiTS *New(); - static MEDFileIntFieldMultiTS *New(const std::string& fileName, bool loadAll=true); - static MEDFileIntFieldMultiTS *New(const std::string& fileName, const std::string& fieldName, bool loadAll=true); - static MEDFileIntFieldMultiTS *New(DataArrayByte *db); + static MEDFileInt32FieldMultiTS *New(); + static MEDFileInt32FieldMultiTS *New(const std::string& fileName, bool loadAll=true); + static MEDFileInt32FieldMultiTS *New(const std::string& fileName, const std::string& fieldName, bool loadAll=true); + static MEDFileInt32FieldMultiTS *New(DataArrayByte *db); // - void appendFieldNoProfileSBT(const MEDCouplingFieldInt *field); - void appendFieldProfile(const MEDCouplingFieldInt *field, const MEDFileMesh *mesh, int meshDimRelToMax, const DataArrayIdType *profile); + void appendFieldNoProfileSBT(const MEDCouplingFieldInt32 *field); + void appendFieldProfile(const MEDCouplingFieldInt32 *field, const MEDFileMesh *mesh, int meshDimRelToMax, const DataArrayIdType *profile); MEDCoupling::MEDFileFieldMultiTS *convertToDouble(bool isDeepCpyGlobs=true) const; - MEDCouplingFieldInt *field(int iteration, int order, const MEDFileMesh *mesh) const; - MEDCouplingFieldInt *getFieldAtLevel(TypeOfField type, int iteration, int order, int meshDimRelToMax, int renumPol=0) const; - MEDCouplingFieldInt *getFieldAtTopLevel(TypeOfField type, int iteration, int order, int renumPol=0) const; - MEDCouplingFieldInt *getFieldOnMeshAtLevel(TypeOfField type, int iteration, int order, int meshDimRelToMax, const MEDFileMesh *mesh, int renumPol=0) const; - MEDCouplingFieldInt *getFieldOnMeshAtLevel(TypeOfField type, int iteration, int order, const MEDCouplingMesh *mesh, int renumPol=0) const; - MEDCouplingFieldInt *getFieldAtLevelOld(TypeOfField type, int iteration, int order, const std::string& mname, int meshDimRelToMax, int renumPol=0) const; + MEDCouplingFieldInt32 *field(int iteration, int order, const MEDFileMesh *mesh) const; + MEDCouplingFieldInt32 *getFieldAtLevel(TypeOfField type, int iteration, int order, int meshDimRelToMax, int renumPol=0) const; + MEDCouplingFieldInt32 *getFieldAtTopLevel(TypeOfField type, int iteration, int order, int renumPol=0) const; + MEDCouplingFieldInt32 *getFieldOnMeshAtLevel(TypeOfField type, int iteration, int order, int meshDimRelToMax, const MEDFileMesh *mesh, int renumPol=0) const; + MEDCouplingFieldInt32 *getFieldOnMeshAtLevel(TypeOfField type, int iteration, int order, const MEDCouplingMesh *mesh, int renumPol=0) const; + MEDCouplingFieldInt32 *getFieldAtLevelOld(TypeOfField type, int iteration, int order, const std::string& mname, int meshDimRelToMax, int renumPol=0) const; %extend { - MEDFileIntFieldMultiTS() + MEDFileInt32FieldMultiTS() { - return MEDFileIntFieldMultiTS::New(); + return MEDFileInt32FieldMultiTS::New(); } - MEDFileIntFieldMultiTS(const std::string& fileName, bool loadAll=true) + MEDFileInt32FieldMultiTS(const std::string& fileName, bool loadAll=true) { - return MEDFileIntFieldMultiTS::New(fileName,loadAll); + return MEDFileInt32FieldMultiTS::New(fileName,loadAll); } - MEDFileIntFieldMultiTS(const std::string& fileName, const std::string& fieldName, bool loadAll=true) + MEDFileInt32FieldMultiTS(const std::string& fileName, const std::string& fieldName, bool loadAll=true) { - return MEDFileIntFieldMultiTS::New(fileName,fieldName,loadAll); + return MEDFileInt32FieldMultiTS::New(fileName,fieldName,loadAll); } - MEDFileIntFieldMultiTS(DataArrayByte *db) + MEDFileInt32FieldMultiTS(DataArrayByte *db) { - return MEDFileIntFieldMultiTS::New(db); + return MEDFileInt32FieldMultiTS::New(db); } - static MEDFileIntFieldMultiTS *LoadSpecificEntities(const std::string& fileName, const std::string& fieldName, PyObject *entities, bool loadAll=true) + static MEDFileInt32FieldMultiTS *LoadSpecificEntities(const std::string& fileName, const std::string& fieldName, PyObject *entities, bool loadAll=true) { std::vector > tmp(convertTimePairIdsFromPy(entities)); std::vector< std::pair > entitiesCpp(convertVecPairIntToVecPairTOFCT(tmp)); - return MEDFileIntFieldMultiTS::LoadSpecificEntities(fileName,fieldName,entitiesCpp,loadAll); + return MEDFileInt32FieldMultiTS::LoadSpecificEntities(fileName,fieldName,entitiesCpp,loadAll); } std::string __str__() const @@ -3080,7 +3242,7 @@ namespace MEDCoupling DataArrayIdType *ret1=0; DataArrayInt32 *ret0=self->getFieldWithProfile(type,iteration,order,meshDimRelToMax,mesh,ret1); PyObject *ret=PyTuple_New(2); - PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(ret0),SWIGTITraits::TI, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(ret0),SWIGTITraits::TI, SWIG_POINTER_OWN | 0 )); PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(ret1),SWIGTITraits::TI, SWIG_POINTER_OWN | 0 )); return ret; } @@ -3095,6 +3257,77 @@ namespace MEDCoupling } }; + class MEDFileInt64FieldMultiTS : public MEDFileAnyTypeFieldMultiTS + { + public: + static MEDFileInt64FieldMultiTS *New(); + static MEDFileInt64FieldMultiTS *New(const std::string& fileName, bool loadAll=true); + static MEDFileInt64FieldMultiTS *New(const std::string& fileName, const std::string& fieldName, bool loadAll=true); + static MEDFileInt64FieldMultiTS *New(DataArrayByte *db); + // + void appendFieldNoProfileSBT(const MEDCouplingFieldInt64 *field); + void appendFieldProfile(const MEDCouplingFieldInt64 *field, const MEDFileMesh *mesh, int meshDimRelToMax, const DataArrayIdType *profile); + MEDCoupling::MEDFileFieldMultiTS *convertToDouble(bool isDeepCpyGlobs=true) const; + MEDCouplingFieldInt64 *field(int iteration, int order, const MEDFileMesh *mesh) const; + MEDCouplingFieldInt64 *getFieldAtLevel(TypeOfField type, int iteration, int order, int meshDimRelToMax, int renumPol=0) const; + MEDCouplingFieldInt64 *getFieldAtTopLevel(TypeOfField type, int iteration, int order, int renumPol=0) const; + MEDCouplingFieldInt64 *getFieldOnMeshAtLevel(TypeOfField type, int iteration, int order, int meshDimRelToMax, const MEDFileMesh *mesh, int renumPol=0) const; + MEDCouplingFieldInt64 *getFieldOnMeshAtLevel(TypeOfField type, int iteration, int order, const MEDCouplingMesh *mesh, int renumPol=0) const; + MEDCouplingFieldInt64 *getFieldAtLevelOld(TypeOfField type, int iteration, int order, const std::string& mname, int meshDimRelToMax, int renumPol=0) const; + %extend + { + MEDFileInt64FieldMultiTS() + { + return MEDFileInt64FieldMultiTS::New(); + } + + MEDFileInt64FieldMultiTS(const std::string& fileName, bool loadAll=true) + { + return MEDFileInt64FieldMultiTS::New(fileName,loadAll); + } + + MEDFileInt64FieldMultiTS(const std::string& fileName, const std::string& fieldName, bool loadAll=true) + { + return MEDFileInt64FieldMultiTS::New(fileName,fieldName,loadAll); + } + + MEDFileInt64FieldMultiTS(DataArrayByte *db) + { + return MEDFileInt64FieldMultiTS::New(db); + } + + static MEDFileInt64FieldMultiTS *LoadSpecificEntities(const std::string& fileName, const std::string& fieldName, PyObject *entities, bool loadAll=true) + { + std::vector > tmp(convertTimePairIdsFromPy(entities)); + std::vector< std::pair > entitiesCpp(convertVecPairIntToVecPairTOFCT(tmp)); + return MEDFileInt64FieldMultiTS::LoadSpecificEntities(fileName,fieldName,entitiesCpp,loadAll); + } + + std::string __str__() const + { + return self->simpleRepr(); + } + + PyObject *getFieldWithProfile(TypeOfField type, int iteration, int order, int meshDimRelToMax, const MEDFileMesh *mesh) const + { + DataArrayIdType *ret1=0; + DataArrayInt64 *ret0=self->getFieldWithProfile(type,iteration,order,meshDimRelToMax,mesh,ret1); + PyObject *ret=PyTuple_New(2); + PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(ret0),SWIGTITraits::TI, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(ret1),SWIGTITraits::TI, SWIG_POINTER_OWN | 0 )); + return ret; + } + + DataArrayInt64 *getUndergroundDataArray(int iteration, int order) const + { + DataArrayInt64 *ret=self->getUndergroundDataArray(iteration,order); + if(ret) + ret->incrRef(); + return ret; + } + } + }; + class MEDFileFloatFieldMultiTS : public MEDFileAnyTypeFieldMultiTS { public: @@ -4114,6 +4347,32 @@ namespace MEDCoupling } } }; + + class MeshFormatReader + { + public: + MeshFormatReader(const std::string& meshFileName, const std::vector& fieldFileName); + MeshFormatReader(); + MEDFileData* loadInMedFileDS(); + void setMeshName(const std::string& theMeshName); + std::string getMeshName() const; + void setFile(const std::string& theFileName); + void setFieldFileNames(const std::vector& theFieldFileNames); + std::vector getFieldFileNames() const; + }; + class MeshFormatWriter + { + public: + MeshFormatWriter(const std::string& meshFileName, const std::vector& fieldFileNames); + MeshFormatWriter(); + void setMeshFileName(const std::string& meshFileName); + std::string getMeshFileName() const; + void setFieldFileNames(const std::vector& fieldFileNames); + std::vector getFieldFileNames() const; + void setMEDFileDS(MEDCoupling::MEDFileData* mfd); + void write(); + }; + } %pythoncode %{ @@ -4125,4 +4384,12 @@ def exit1TS(self, exctype, exc, tb): pass MEDFileAnyTypeField1TS.__enter__=enter1TS MEDFileAnyTypeField1TS.__exit__=exit1TS +MEDFileIntField1TS = MEDFileInt32Field1TS +MEDFileIntFieldMultiTS = MEDFileInt32FieldMultiTS +if MEDCouplingUse64BitIDs(): + MEDFileIDField1TS = MEDFileInt64Field1TS + MEDFileIDFieldMultiTS = MEDFileInt64FieldMultiTS +else: + MEDFileIDField1TS = MEDFileInt32Field1TS + MEDFileIDFieldMultiTS = MEDFileInt32FieldMultiTS %}