X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FMEDCoupling_Swig%2FMEDCouplingCommon.i;h=36d090f7002e870a3b0508b83f19eb3586fb79e4;hb=07c8e8ff8efab9224c53b20bf63872110dea6ab6;hp=1e8b7382952c998a3b7af06a65a70edf8a34003f;hpb=f91f8722f2850de4eb9b03961e86c634386fa328;p=tools%2Fmedcoupling.git diff --git a/src/MEDCoupling_Swig/MEDCouplingCommon.i b/src/MEDCoupling_Swig/MEDCouplingCommon.i index 1e8b73829..36d090f70 100644 --- a/src/MEDCoupling_Swig/MEDCouplingCommon.i +++ b/src/MEDCoupling_Swig/MEDCouplingCommon.i @@ -324,6 +324,7 @@ using namespace INTERP_KERNEL; %newobject ParaMEDMEM::MEDCouplingStructuredMesh::ExtractFieldOfDoubleFrom; %newobject ParaMEDMEM::MEDCouplingStructuredMesh::Build1GTNodalConnectivity; %newobject ParaMEDMEM::MEDCouplingStructuredMesh::Build1GTNodalConnectivityOfSubLevelMesh; +%newobject ParaMEDMEM::MEDCouplingStructuredMesh::ComputeCornersGhost; %newobject ParaMEDMEM::MEDCouplingCMesh::New; %newobject ParaMEDMEM::MEDCouplingCMesh::clone; %newobject ParaMEDMEM::MEDCouplingCMesh::getCoordsAt; @@ -339,6 +340,7 @@ using namespace INTERP_KERNEL; %newobject ParaMEDMEM::MEDCouplingFieldOverTime::New; %newobject ParaMEDMEM::MEDCouplingCartesianAMRPatchGen::getMesh; %newobject ParaMEDMEM::MEDCouplingCartesianAMRPatchGen::__getitem__; +%newobject ParaMEDMEM::MEDCouplingCartesianAMRMeshGen::deepCpy; %newobject ParaMEDMEM::MEDCouplingCartesianAMRMeshGen::buildUnstructured; %newobject ParaMEDMEM::MEDCouplingCartesianAMRMeshGen::extractGhostFrom; %newobject ParaMEDMEM::MEDCouplingCartesianAMRMeshGen::buildMeshFromPatchEnvelop; @@ -349,11 +351,14 @@ using namespace INTERP_KERNEL; %newobject ParaMEDMEM::MEDCouplingCartesianAMRMeshGen::getPatch; %newobject ParaMEDMEM::MEDCouplingCartesianAMRMeshGen::createCellFieldOnPatch; %newobject ParaMEDMEM::MEDCouplingCartesianAMRMeshGen::findPatchesInTheNeighborhoodOf; +%newobject ParaMEDMEM::MEDCouplingCartesianAMRMeshGen::getPatchAtPosition; +%newobject ParaMEDMEM::MEDCouplingCartesianAMRMeshGen::getMeshAtPosition; %newobject ParaMEDMEM::MEDCouplingCartesianAMRMeshGen::__getitem__; %newobject ParaMEDMEM::MEDCouplingCartesianAMRMesh::New; -%newobject ParaMEDMEM::MEDCouplingCartesianAMRMesh::getDataConst; -%newobject ParaMEDMEM::MEDCouplingCartesianAMRMesh::getData; +%newobject ParaMEDMEM::MEDCouplingDataForGodFather::getMyGodFather; %newobject ParaMEDMEM::MEDCouplingAMRAttribute::New; +%newobject ParaMEDMEM::MEDCouplingAMRAttribute::deepCpy; +%newobject ParaMEDMEM::MEDCouplingAMRAttribute::deepCpyWithoutGodFather; %newobject ParaMEDMEM::MEDCouplingAMRAttribute::getFieldOn; %newobject ParaMEDMEM::MEDCouplingAMRAttribute::buildCellFieldOnRecurseWithoutOverlapWithoutGhost; %newobject ParaMEDMEM::MEDCouplingAMRAttribute::buildCellFieldOnWithGhost; @@ -422,14 +427,16 @@ namespace INTERP_KERNEL public: BoxSplittingOptions(); void init() throw(INTERP_KERNEL::Exception); - double getEffeciency() const throw(INTERP_KERNEL::Exception); - void setEffeciency(double effeciency) throw(INTERP_KERNEL::Exception); - double getEffeciencySnd() const throw(INTERP_KERNEL::Exception); - void setEffeciencySnd(double effeciencySnd) throw(INTERP_KERNEL::Exception); - int getMinCellDirection() const throw(INTERP_KERNEL::Exception); - void setMinCellDirection(int minCellDirection) throw(INTERP_KERNEL::Exception); - int getMaxCells() const throw(INTERP_KERNEL::Exception); - void setMaxCells(int maxCells) throw(INTERP_KERNEL::Exception); + double getEfficiencyGoal() const throw(INTERP_KERNEL::Exception); + void setEfficiencyGoal(double efficiency) throw(INTERP_KERNEL::Exception); + double getEfficiencyThreshold() const throw(INTERP_KERNEL::Exception); + void setEfficiencyThreshold(double efficiencyThreshold) throw(INTERP_KERNEL::Exception); + int getMinimumPatchLength() const throw(INTERP_KERNEL::Exception); + void setMinimumPatchLength(int minPatchLength) throw(INTERP_KERNEL::Exception); + int getMaximumPatchLength() const throw(INTERP_KERNEL::Exception); + void setMaximumPatchLength(int maxPatchLength) throw(INTERP_KERNEL::Exception); + int getMaximumNbOfCellsInPatch() const throw(INTERP_KERNEL::Exception); + void setMaximumNbOfCellsInPatch(int maxNbCellsInPatch) throw(INTERP_KERNEL::Exception); void copyOptions(const BoxSplittingOptions & other) throw(INTERP_KERNEL::Exception); std::string printOptions() const throw(INTERP_KERNEL::Exception); %extend @@ -540,7 +547,9 @@ namespace ParaMEDMEM virtual INTERP_KERNEL::NormalizedCellType getTypeOfCell(int cellId) const throw(INTERP_KERNEL::Exception); virtual std::string simpleRepr() const throw(INTERP_KERNEL::Exception); virtual std::string advancedRepr() const throw(INTERP_KERNEL::Exception); - void writeVTK(const std::string& fileName, bool isBinary=true) const throw(INTERP_KERNEL::Exception); + std::string writeVTK(const std::string& fileName, bool isBinary=true) const throw(INTERP_KERNEL::Exception); + virtual std::string getVTKFileExtension() const; + std::string getVTKFileNameOf(const std::string& fileName) const; // tools virtual MEDCouplingFieldDouble *getMeasureField(bool isAbs) const throw(INTERP_KERNEL::Exception); virtual MEDCouplingFieldDouble *getMeasureFieldOnNode(bool isAbs) const throw(INTERP_KERNEL::Exception); @@ -2860,12 +2869,14 @@ namespace ParaMEDMEM int getNodeIdFromPos(int i, int j, int k) const throw(INTERP_KERNEL::Exception); int getNumberOfCellsOfSubLevelMesh() const throw(INTERP_KERNEL::Exception); int getSpaceDimensionOnNodeStruct() const throw(INTERP_KERNEL::Exception); + double computeSquareness() const throw(INTERP_KERNEL::Exception); virtual std::vector getNodeGridStructure() const throw(INTERP_KERNEL::Exception); std::vector getCellGridStructure() const throw(INTERP_KERNEL::Exception); MEDCoupling1SGTUMesh *build1SGTUnstructured() const throw(INTERP_KERNEL::Exception); static INTERP_KERNEL::NormalizedCellType GetGeoTypeGivenMeshDimension(int meshDim) throw(INTERP_KERNEL::Exception); MEDCoupling1SGTUMesh *build1SGTSubLevelMesh() const throw(INTERP_KERNEL::Exception); static int DeduceNumberOfGivenStructure(const std::vector& st) throw(INTERP_KERNEL::Exception); + static DataArrayInt *ComputeCornersGhost(const std::vector& st, int ghostLev) throw(INTERP_KERNEL::Exception); static std::vector GetSplitVectFromStruct(const std::vector& strct) throw(INTERP_KERNEL::Exception); %extend { @@ -2906,6 +2917,33 @@ namespace ParaMEDMEM return MEDCouplingStructuredMesh::BuildExplicitIdsFrom(tmp5,inp); } + static void MultiplyPartOf(const std::vector& st, PyObject *part, double factor, DataArrayDouble *da) throw(INTERP_KERNEL::Exception) + { + std::vector< std::pair > inp; + convertPyToVectorPairInt(part,inp); + MEDCouplingStructuredMesh::MultiplyPartOf(st,inp,factor,da); + } + + static void MultiplyPartOfByGhost(const std::vector& st, PyObject *part, int ghostSize, double factor, DataArrayDouble *da) throw(INTERP_KERNEL::Exception) + { + std::vector< std::pair > inp; + convertPyToVectorPairInt(part,inp); + MEDCouplingStructuredMesh::MultiplyPartOfByGhost(st,inp,ghostSize,factor,da); + } + + static PyObject *PutInGhostFormat(int ghostSize, const std::vector& st, PyObject *part) throw(INTERP_KERNEL::Exception) + { + std::vector< std::pair > inp; + convertPyToVectorPairInt(part,inp); + std::vector stWithGhost; + std::vector< std::pair > partWithGhost; + MEDCouplingStructuredMesh::PutInGhostFormat(ghostSize,st,inp,stWithGhost,partWithGhost); + PyObject *ret(PyTuple_New(2)); + PyTuple_SetItem(ret,0,convertIntArrToPyList2(stWithGhost)); + PyTuple_SetItem(ret,1,convertFromVectorPairInt(partWithGhost)); + return ret; + } + static DataArrayDouble *ExtractFieldOfDoubleFrom(const std::vector& st, const DataArrayDouble *fieldOfDbl, PyObject *partCompactFormat) throw(INTERP_KERNEL::Exception) { std::vector< std::pair > inp; @@ -3486,7 +3524,7 @@ namespace ParaMEDMEM void copyAllTinyAttrFrom(const MEDCouplingFieldDouble *other) throw(INTERP_KERNEL::Exception); std::string simpleRepr() const throw(INTERP_KERNEL::Exception); std::string advancedRepr() const throw(INTERP_KERNEL::Exception); - void writeVTK(const std::string& fileName, bool isBinary=true) const throw(INTERP_KERNEL::Exception); + std::string writeVTK(const std::string& fileName, bool isBinary=true) const throw(INTERP_KERNEL::Exception); MEDCouplingFieldDouble *clone(bool recDeepCpy) const; MEDCouplingFieldDouble *cloneWithMesh(bool recDeepCpy) const; MEDCouplingFieldDouble *deepCpy() const; @@ -4557,11 +4595,11 @@ namespace ParaMEDMEM return MEDCouplingFieldDouble::MergeFields(tmp); } - static void WriteVTK(const char *fileName, PyObject *li, bool isBinary=true) throw(INTERP_KERNEL::Exception) + static std::string WriteVTK(const char *fileName, PyObject *li, bool isBinary=true) throw(INTERP_KERNEL::Exception) { std::vector tmp; convertFromPyObjVectorOfObj(li,SWIGTYPE_p_ParaMEDMEM__MEDCouplingFieldDouble,"MEDCouplingFieldDouble",tmp); - MEDCouplingFieldDouble::WriteVTK(fileName,tmp,isBinary); + return MEDCouplingFieldDouble::WriteVTK(fileName,tmp,isBinary); } } }; @@ -4881,21 +4919,14 @@ namespace ParaMEDMEM class MEDCouplingCartesianAMRPatchGF : public MEDCouplingCartesianAMRPatchGen { }; - - class MEDCouplingDataForGodFather : public RefCountObject - { - public: - virtual void synchronizeFineToCoarse() throw(INTERP_KERNEL::Exception); - virtual void synchronizeCoarseToFine() throw(INTERP_KERNEL::Exception); - virtual void synchronizeAllGhostZones() throw(INTERP_KERNEL::Exception); - virtual void alloc() throw(INTERP_KERNEL::Exception); - virtual void dealloc() throw(INTERP_KERNEL::Exception); - }; class MEDCouplingCartesianAMRMeshGen : public RefCountObject, public TimeLabel { public: + virtual MEDCouplingCartesianAMRMeshGen *deepCpy(MEDCouplingCartesianAMRMeshGen *father) const throw(INTERP_KERNEL::Exception); int getAbsoluteLevel() const throw(INTERP_KERNEL::Exception); + int getAbsoluteLevelRelativeTo(const MEDCouplingCartesianAMRMeshGen *ref) const throw(INTERP_KERNEL::Exception); + std::vector getPositionRelativeTo(const MEDCouplingCartesianAMRMeshGen *ref) const throw(INTERP_KERNEL::Exception); int getSpaceDimension() const throw(INTERP_KERNEL::Exception); const std::vector& getFactors() const throw(INTERP_KERNEL::Exception); void setFactors(const std::vector& newFactors) throw(INTERP_KERNEL::Exception); @@ -4905,6 +4936,7 @@ namespace ParaMEDMEM int getNumberOfCellsRecursiveWithOverlap() const throw(INTERP_KERNEL::Exception); int getNumberOfCellsRecursiveWithoutOverlap() const throw(INTERP_KERNEL::Exception); bool isPatchInNeighborhoodOf(int patchId1, int patchId2, int ghostLev) const throw(INTERP_KERNEL::Exception); + virtual void detachFromFather() throw(INTERP_KERNEL::Exception); // int getNumberOfPatches() const throw(INTERP_KERNEL::Exception); int getPatchIdFromChildMesh(const MEDCouplingCartesianAMRMeshGen *mesh) const throw(INTERP_KERNEL::Exception); @@ -4915,17 +4947,17 @@ namespace ParaMEDMEM MEDCoupling1SGTUMesh *buildMeshOfDirectChildrenOnly() const throw(INTERP_KERNEL::Exception); void removeAllPatches() throw(INTERP_KERNEL::Exception); void removePatch(int patchId) throw(INTERP_KERNEL::Exception); - void detachFromFather() throw(INTERP_KERNEL::Exception); void createPatchesFromCriterion(const INTERP_KERNEL::BoxSplittingOptions& bso, const DataArrayByte *criterion, const std::vector& factors) throw(INTERP_KERNEL::Exception); void createPatchesFromCriterion(const INTERP_KERNEL::BoxSplittingOptions& bso, const DataArrayDouble *criterion, const std::vector& factors, double eps) throw(INTERP_KERNEL::Exception); DataArrayDouble *createCellFieldOnPatch(int patchId, const DataArrayDouble *cellFieldOnThis) const throw(INTERP_KERNEL::Exception); - void fillCellFieldOnPatch(int patchId, const DataArrayDouble *cellFieldOnThis, DataArrayDouble *cellFieldOnPatch) const throw(INTERP_KERNEL::Exception); - void fillCellFieldOnPatchGhost(int patchId, const DataArrayDouble *cellFieldOnThis, DataArrayDouble *cellFieldOnPatch, int ghostLev) const throw(INTERP_KERNEL::Exception); + void fillCellFieldOnPatch(int patchId, const DataArrayDouble *cellFieldOnThis, DataArrayDouble *cellFieldOnPatch, bool isConservative=true) const throw(INTERP_KERNEL::Exception); + void fillCellFieldOnPatchGhost(int patchId, const DataArrayDouble *cellFieldOnThis, DataArrayDouble *cellFieldOnPatch, int ghostLev, bool isConservative=true) const throw(INTERP_KERNEL::Exception); void fillCellFieldOnPatchOnlyOnGhostZone(int patchId, const DataArrayDouble *cellFieldOnThis, DataArrayDouble *cellFieldOnPatch, int ghostLev) const throw(INTERP_KERNEL::Exception); void fillCellFieldOnPatchOnlyOnGhostZoneWith(int ghostLev, const MEDCouplingCartesianAMRPatch *patchToBeModified, const MEDCouplingCartesianAMRPatch *neighborPatch, DataArrayDouble *cellFieldOnPatch, const DataArrayDouble *cellFieldNeighbor) const; - void fillCellFieldComingFromPatch(int patchId, const DataArrayDouble *cellFieldOnPatch, DataArrayDouble *cellFieldOnThis) const throw(INTERP_KERNEL::Exception); - void fillCellFieldComingFromPatchGhost(int patchId, const DataArrayDouble *cellFieldOnPatch, DataArrayDouble *cellFieldOnThis, int ghostLev) const throw(INTERP_KERNEL::Exception); + void fillCellFieldComingFromPatch(int patchId, const DataArrayDouble *cellFieldOnPatch, DataArrayDouble *cellFieldOnThis, bool isConservative=true) const throw(INTERP_KERNEL::Exception); + void fillCellFieldComingFromPatchGhost(int patchId, const DataArrayDouble *cellFieldOnPatch, DataArrayDouble *cellFieldOnThis, int ghostLev, bool isConservative=true) const throw(INTERP_KERNEL::Exception); DataArrayInt *findPatchesInTheNeighborhoodOf(int patchId, int ghostLev) const throw(INTERP_KERNEL::Exception); + std::string buildPythonDumpOfThis() const throw(INTERP_KERNEL::Exception); %extend { void addPatch(PyObject *bottomLeftTopRight, const std::vector& factors) throw(INTERP_KERNEL::Exception) @@ -4950,7 +4982,25 @@ namespace ParaMEDMEM return ret; } - PyObject *retrieveGridsAt(int absoluteLev) const throw(INTERP_KERNEL::Exception) + MEDCouplingCartesianAMRPatch *getPatchAtPosition(const std::vector& pos) const throw(INTERP_KERNEL::Exception) + { + const MEDCouplingCartesianAMRPatch *ret(self->getPatchAtPosition(pos)); + MEDCouplingCartesianAMRPatch *ret2(const_cast(ret)); + if(ret2) + ret2->incrRef(); + return ret2; + } + + MEDCouplingCartesianAMRMeshGen *getMeshAtPosition(const std::vector& pos) const throw(INTERP_KERNEL::Exception) + { + const MEDCouplingCartesianAMRMeshGen *ret(self->getMeshAtPosition(pos)); + MEDCouplingCartesianAMRMeshGen *ret2(const_cast(ret)); + if(ret2) + ret2->incrRef(); + return ret2; + } + + virtual PyObject *retrieveGridsAt(int absoluteLev) const throw(INTERP_KERNEL::Exception) { std::vector ps(self->retrieveGridsAt(absoluteLev)); int sz(ps.size()); @@ -4967,7 +5017,7 @@ namespace ParaMEDMEM return self->buildCellFieldOnRecurseWithoutOverlapWithoutGhost(ghostSz,inp); } - MEDCouplingCartesianAMRMeshGen *getFather() const throw(INTERP_KERNEL::Exception) + virtual MEDCouplingCartesianAMRMeshGen *getFather() const throw(INTERP_KERNEL::Exception) { MEDCouplingCartesianAMRMeshGen *ret(const_cast(self->getFather())); if(ret) @@ -4975,7 +5025,7 @@ namespace ParaMEDMEM return ret; } - MEDCouplingCartesianAMRMeshGen *getGodFather() const throw(INTERP_KERNEL::Exception) + virtual MEDCouplingCartesianAMRMeshGen *getGodFather() const throw(INTERP_KERNEL::Exception) { MEDCouplingCartesianAMRMeshGen *ret(const_cast(self->getGodFather())); if(ret) @@ -5014,11 +5064,11 @@ namespace ParaMEDMEM return ret; } - void fillCellFieldOnPatchGhostAdv(int patchId, const DataArrayDouble *cellFieldOnThis, int ghostLev, PyObject *arrsOnPatches) const throw(INTERP_KERNEL::Exception) + void fillCellFieldOnPatchGhostAdv(int patchId, const DataArrayDouble *cellFieldOnThis, int ghostLev, PyObject *arrsOnPatches, bool isConservative=true) const throw(INTERP_KERNEL::Exception) { std::vector arrsOnPatches2; convertFromPyObjVectorOfObj(arrsOnPatches,SWIGTYPE_p_ParaMEDMEM__DataArrayDouble,"DataArrayDouble",arrsOnPatches2); - self->fillCellFieldOnPatchGhostAdv(patchId,cellFieldOnThis,ghostLev,arrsOnPatches2); + self->fillCellFieldOnPatchGhostAdv(patchId,cellFieldOnThis,ghostLev,arrsOnPatches2,isConservative); } void fillCellFieldOnPatchOnlyGhostAdv(int patchId, int ghostLev, PyObject *arrsOnPatches) const @@ -5047,9 +5097,6 @@ namespace ParaMEDMEM class MEDCouplingCartesianAMRMesh : public MEDCouplingCartesianAMRMeshGen { public: - void setData(MEDCouplingDataForGodFather *data) throw(INTERP_KERNEL::Exception); - void allocData() const throw(INTERP_KERNEL::Exception); - void deallocData() const throw(INTERP_KERNEL::Exception); %extend { static MEDCouplingCartesianAMRMesh *New(const std::string& meshName, int spaceDim, PyObject *nodeStrct, PyObject *origin, PyObject *dxyz) throw(INTERP_KERNEL::Exception) @@ -5071,22 +5118,40 @@ namespace ParaMEDMEM return MEDCouplingCartesianAMRMesh::New(meshName,spaceDim,nodeStrctPtr,nodeStrctPtr+sz,originPtr,originPtr+sz1,dxyzPtr,dxyzPtr+sz2); } - MEDCouplingCartesianAMRMesh(const std::string& meshName, int spaceDim, PyObject *nodeStrct, PyObject *origin, PyObject *dxyz) throw(INTERP_KERNEL::Exception) + void createPatchesFromCriterionML(PyObject *bso, const DataArrayDouble *criterion, PyObject *factors, double eps) throw(INTERP_KERNEL::Exception) { - return ParaMEDMEM_MEDCouplingCartesianAMRMesh_New(meshName,spaceDim,nodeStrct,origin,dxyz); + std::vector inp0; + convertFromPyObjVectorOfObj(bso,SWIGTYPE_p_INTERP_KERNEL__BoxSplittingOptions,"BoxSplittingOptions",inp0); + std::vector< std::vector > inp2; + convertPyToVectorOfVectorOfInt(factors,inp2); + self->createPatchesFromCriterionML(inp0,criterion,inp2,eps); } - MEDCouplingDataForGodFather *getDataConst() const throw(INTERP_KERNEL::Exception) + MEDCouplingCartesianAMRMesh(const std::string& meshName, int spaceDim, PyObject *nodeStrct, PyObject *origin, PyObject *dxyz) throw(INTERP_KERNEL::Exception) { - const MEDCouplingDataForGodFather *ret(self->getDataConst()); - if(ret) - ret->incrRef(); - return const_cast(ret); + return ParaMEDMEM_MEDCouplingCartesianAMRMesh_New(meshName,spaceDim,nodeStrct,origin,dxyz); } + } + }; - MEDCouplingDataForGodFather *getData() throw(INTERP_KERNEL::Exception) + class MEDCouplingDataForGodFather : public RefCountObject + { + public: + virtual void synchronizeFineToCoarse() throw(INTERP_KERNEL::Exception); + virtual void synchronizeFineToCoarseBetween(int fromLev, int toLev) throw(INTERP_KERNEL::Exception); + virtual void synchronizeCoarseToFine() throw(INTERP_KERNEL::Exception); + virtual void synchronizeCoarseToFineBetween(int fromLev, int toLev) throw(INTERP_KERNEL::Exception); + virtual void synchronizeAllGhostZones() throw(INTERP_KERNEL::Exception); + virtual void synchronizeAllGhostZonesOfDirectChidrenOf(const MEDCouplingCartesianAMRMeshGen *mesh) throw(INTERP_KERNEL::Exception); + virtual void synchronizeAllGhostZonesAtASpecifiedLevel(int level) throw(INTERP_KERNEL::Exception); + virtual void synchronizeAllGhostZonesAtASpecifiedLevelUsingOnlyFather(int level) throw(INTERP_KERNEL::Exception); + virtual void alloc() throw(INTERP_KERNEL::Exception); + virtual void dealloc() throw(INTERP_KERNEL::Exception); + %extend + { + MEDCouplingCartesianAMRMesh *getMyGodFather() throw(INTERP_KERNEL::Exception) { - MEDCouplingDataForGodFather *ret(self->getData()); + MEDCouplingCartesianAMRMesh *ret(self->getMyGodFather()); if(ret) ret->incrRef(); return ret; @@ -5097,6 +5162,9 @@ namespace ParaMEDMEM class MEDCouplingAMRAttribute : public MEDCouplingDataForGodFather, public TimeLabel { public: + int getNumberOfLevels() const throw(INTERP_KERNEL::Exception); + MEDCouplingAMRAttribute *deepCpy() const throw(INTERP_KERNEL::Exception); + MEDCouplingAMRAttribute *deepCpyWithoutGodFather() const throw(INTERP_KERNEL::Exception); MEDCouplingFieldDouble *buildCellFieldOnRecurseWithoutOverlapWithoutGhost(MEDCouplingCartesianAMRMeshGen *mesh, const std::string& fieldName) const throw(INTERP_KERNEL::Exception); MEDCouplingFieldDouble *buildCellFieldOnWithGhost(MEDCouplingCartesianAMRMeshGen *mesh, const std::string& fieldName) const throw(INTERP_KERNEL::Exception); MEDCouplingFieldDouble *buildCellFieldOnWithoutGhost(MEDCouplingCartesianAMRMeshGen *mesh, const std::string& fieldName) const throw(INTERP_KERNEL::Exception); @@ -5125,7 +5193,7 @@ namespace ParaMEDMEM { return ParaMEDMEM_MEDCouplingAMRAttribute_New(gf,fieldNames,ghostLev); } - + DataArrayDouble *getFieldOn(MEDCouplingCartesianAMRMeshGen *mesh, const std::string& fieldName) const throw(INTERP_KERNEL::Exception) { const DataArrayDouble *ret(self->getFieldOn(mesh,fieldName)); @@ -5141,6 +5209,18 @@ namespace ParaMEDMEM convertPyToVectorOfVectorOfString(compNames,compNamesCpp); self->spillInfoOnComponents(compNamesCpp); } + + void spillNatures(PyObject *nfs) throw(INTERP_KERNEL::Exception) + { + std::vector inp0; + if(!fillIntVector(nfs,inp0)) + throw INTERP_KERNEL::Exception("wrap of MEDCouplingAMRAttribute::spillNatures : vector of NatureOfField enum expected !"); + std::size_t sz(inp0.size()); + std::vector inp00(sz); + for(std::size_t i=0;ispillNatures(inp00); + } PyObject *retrieveFieldsOn(MEDCouplingCartesianAMRMeshGen *mesh) const throw(INTERP_KERNEL::Exception) {