X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FMEDCoupling_Swig%2FMEDCouplingCommon.i;h=b51868769477de20eba6c4cba9360d3723d94e8e;hb=a019ec6e72f540d3378f3e869c2b19bf4886459c;hp=10f11f7fb7f9e68637fd069ba299625cedfc2002;hpb=8763c12d01e33d6845dd53be65b001514d00bd42;p=tools%2Fmedcoupling.git diff --git a/src/MEDCoupling_Swig/MEDCouplingCommon.i b/src/MEDCoupling_Swig/MEDCouplingCommon.i index 10f11f7fb..cb4b2205c 100644 --- a/src/MEDCoupling_Swig/MEDCouplingCommon.i +++ b/src/MEDCoupling_Swig/MEDCouplingCommon.i @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2014 CEA/DEN, EDF R&D +// Copyright (C) 2017 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 @@ -16,9 +16,11 @@ // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// Author : Anthony Geay (CEA/DEN) +// Author : Anthony Geay (EDF R&D) -%module MEDCoupling +#ifdef WITH_DOCSTRINGS +%include MEDCoupling_doc.i +#endif %include std_vector.i %include std_string.i @@ -26,24 +28,33 @@ %{ #include "MEDCouplingMemArray.hxx" #include "MEDCouplingUMesh.hxx" -#include "MEDCouplingExtrudedMesh.hxx" +#include "MEDCouplingMappedExtrudedMesh.hxx" #include "MEDCouplingCMesh.hxx" +#include "MEDCouplingIMesh.hxx" #include "MEDCouplingCurveLinearMesh.hxx" #include "MEDCoupling1GTUMesh.hxx" #include "MEDCouplingField.hxx" #include "MEDCouplingFieldDouble.hxx" +#include "MEDCouplingFieldInt.hxx" +#include "MEDCouplingFieldFloat.hxx" #include "MEDCouplingFieldTemplate.hxx" #include "MEDCouplingGaussLocalization.hxx" -#include "MEDCouplingAutoRefCountObjectPtr.hxx" +#include "MCAuto.hxx" #include "MEDCouplingMultiFields.hxx" #include "MEDCouplingFieldOverTime.hxx" #include "MEDCouplingDefinitionTime.hxx" #include "MEDCouplingFieldDiscretization.hxx" +#include "MEDCouplingCartesianAMRMesh.hxx" +#include "MEDCouplingAMRAttribute.hxx" +#include "MEDCouplingMatrix.hxx" +#include "MEDCouplingPartDefinition.hxx" +#include "MEDCouplingSkyLineArray.hxx" #include "MEDCouplingTypemaps.i" #include "InterpKernelAutoPtr.hxx" +#include "BoxSplittingOptions.hxx" -using namespace ParaMEDMEM; +using namespace MEDCoupling; using namespace INTERP_KERNEL; %} @@ -53,7 +64,7 @@ using namespace INTERP_KERNEL; %template(svec) std::vector; //////////////////// -%typemap(out) ParaMEDMEM::MEDCouplingMesh* +%typemap(out) MEDCoupling::MEDCouplingMesh* { $result=convertMesh($1,$owner); } @@ -65,7 +76,7 @@ using namespace INTERP_KERNEL; //$$$$$$$$$$$$$$$$$$ //////////////////// -%typemap(out) ParaMEDMEM::MEDCouplingPointSet* +%typemap(out) MEDCoupling::MEDCouplingPointSet* { $result=convertMesh($1,$owner); } @@ -76,9 +87,29 @@ using namespace INTERP_KERNEL; } //$$$$$$$$$$$$$$$$$$ +//////////////////// +%typemap(out) MEDCouplingCartesianAMRPatchGen* +{ + $result=convertCartesianAMRPatch($1,$owner); +} +//$$$$$$$$$$$$$$$$$$ + +//////////////////// +%typemap(out) MEDCouplingCartesianAMRMeshGen* +{ + $result=convertCartesianAMRMesh($1,$owner); +} +//$$$$$$$$$$$$$$$$$$ + +//////////////////// +%typemap(out) MEDCouplingDataForGodFather* +{ + $result=convertDataForGodFather($1,$owner); +} +//$$$$$$$$$$$$$$$$$$ //////////////////// -%typemap(out) ParaMEDMEM::MEDCoupling1GTUMesh* +%typemap(out) MEDCoupling::MEDCoupling1GTUMesh* { $result=convertMesh($1,$owner); } @@ -90,7 +121,7 @@ using namespace INTERP_KERNEL; //$$$$$$$$$$$$$$$$$$ //////////////////// -%typemap(out) ParaMEDMEM::MEDCouplingStructuredMesh* +%typemap(out) MEDCoupling::MEDCouplingStructuredMesh* { $result=convertMesh($1,$owner); } @@ -102,7 +133,7 @@ using namespace INTERP_KERNEL; //$$$$$$$$$$$$$$$$$$ //////////////////// -%typemap(out) ParaMEDMEM::MEDCouplingFieldDiscretization* +%typemap(out) MEDCoupling::MEDCouplingFieldDiscretization* { $result=convertFieldDiscretization($1,$owner); } @@ -114,7 +145,19 @@ using namespace INTERP_KERNEL; //$$$$$$$$$$$$$$$$$$ //////////////////// -%typemap(out) ParaMEDMEM::MEDCouplingMultiFields* +%typemap(out) MEDCoupling::MEDCouplingField* +{ + $result=convertField($1,$owner); +} + +%typemap(out) MEDCouplingField* +{ + $result=convertField($1,$owner); +} +//$$$$$$$$$$$$$$$$$$ + +//////////////////// +%typemap(out) MEDCoupling::MEDCouplingMultiFields* { $result=convertMultiFields($1,$owner); } @@ -125,184 +168,279 @@ using namespace INTERP_KERNEL; } //$$$$$$$$$$$$$$$$$$ +//////////////////// +%typemap(out) MEDCoupling::PartDefinition* +{ + $result=convertPartDefinition($1,$owner); +} + +%typemap(out) PartDefinition* +{ + $result=convertPartDefinition($1,$owner); +} +//$$$$$$$$$$$$$$$$$$ + #ifdef WITH_NUMPY %init %{ import_array(); %} #endif +%init %{ initializeMe(); %} + %feature("autodoc", "1"); %feature("docstring"); -%newobject ParaMEDMEM::MEDCouplingField::buildMeasureField; -%newobject ParaMEDMEM::MEDCouplingField::getLocalizationOfDiscr; -%newobject ParaMEDMEM::MEDCouplingField::computeTupleIdsToSelectFromCellIds; -%newobject ParaMEDMEM::MEDCouplingFieldDouble::New; -%newobject ParaMEDMEM::MEDCouplingFieldDouble::getArray; -%newobject ParaMEDMEM::MEDCouplingFieldDouble::getEndArray; -%newobject ParaMEDMEM::MEDCouplingFieldDouble::MergeFields; -%newobject ParaMEDMEM::MEDCouplingFieldDouble::MeldFields; -%newobject ParaMEDMEM::MEDCouplingFieldDouble::doublyContractedProduct; -%newobject ParaMEDMEM::MEDCouplingFieldDouble::determinant; -%newobject ParaMEDMEM::MEDCouplingFieldDouble::eigenValues; -%newobject ParaMEDMEM::MEDCouplingFieldDouble::eigenVectors; -%newobject ParaMEDMEM::MEDCouplingFieldDouble::inverse; -%newobject ParaMEDMEM::MEDCouplingFieldDouble::trace; -%newobject ParaMEDMEM::MEDCouplingFieldDouble::deviator; -%newobject ParaMEDMEM::MEDCouplingFieldDouble::magnitude; -%newobject ParaMEDMEM::MEDCouplingFieldDouble::maxPerTuple; -%newobject ParaMEDMEM::MEDCouplingFieldDouble::keepSelectedComponents; -%newobject ParaMEDMEM::MEDCouplingFieldDouble::extractSlice3D; -%newobject ParaMEDMEM::MEDCouplingFieldDouble::DotFields; -%newobject ParaMEDMEM::MEDCouplingFieldDouble::dot; -%newobject ParaMEDMEM::MEDCouplingFieldDouble::CrossProductFields; -%newobject ParaMEDMEM::MEDCouplingFieldDouble::crossProduct; -%newobject ParaMEDMEM::MEDCouplingFieldDouble::MaxFields; -%newobject ParaMEDMEM::MEDCouplingFieldDouble::max; -%newobject ParaMEDMEM::MEDCouplingFieldDouble::MinFields; -%newobject ParaMEDMEM::MEDCouplingFieldDouble::AddFields; -%newobject ParaMEDMEM::MEDCouplingFieldDouble::SubstractFields; -%newobject ParaMEDMEM::MEDCouplingFieldDouble::MultiplyFields; -%newobject ParaMEDMEM::MEDCouplingFieldDouble::DivideFields; -%newobject ParaMEDMEM::MEDCouplingFieldDouble::min; -%newobject ParaMEDMEM::MEDCouplingFieldDouble::negate; -%newobject ParaMEDMEM::MEDCouplingFieldDouble::getIdsInRange; -%newobject ParaMEDMEM::MEDCouplingFieldDouble::buildSubPart; -%newobject ParaMEDMEM::MEDCouplingFieldDouble::buildSubPartRange; -%newobject ParaMEDMEM::MEDCouplingFieldDouble::__getitem__; -%newobject ParaMEDMEM::MEDCouplingFieldDouble::__neg__; -%newobject ParaMEDMEM::MEDCouplingFieldDouble::__add__; -%newobject ParaMEDMEM::MEDCouplingFieldDouble::__sub__; -%newobject ParaMEDMEM::MEDCouplingFieldDouble::__mul__; -%newobject ParaMEDMEM::MEDCouplingFieldDouble::__div__; -%newobject ParaMEDMEM::MEDCouplingFieldDouble::__pow__; -%newobject ParaMEDMEM::MEDCouplingFieldDouble::__radd__; -%newobject ParaMEDMEM::MEDCouplingFieldDouble::__rsub__; -%newobject ParaMEDMEM::MEDCouplingFieldDouble::__rmul__; -%newobject ParaMEDMEM::MEDCouplingFieldDouble::__rdiv__; -%newobject ParaMEDMEM::MEDCouplingFieldDouble::clone; -%newobject ParaMEDMEM::MEDCouplingFieldDouble::cloneWithMesh; -%newobject ParaMEDMEM::MEDCouplingFieldDouble::deepCpy; -%newobject ParaMEDMEM::MEDCouplingFieldDouble::buildNewTimeReprFromThis; -%newobject ParaMEDMEM::MEDCouplingFieldDouble::nodeToCellDiscretization; -%newobject ParaMEDMEM::MEDCouplingFieldDouble::cellToNodeDiscretization; -%newobject ParaMEDMEM::MEDCouplingFieldDouble::getValueOnMulti; -%newobject ParaMEDMEM::MEDCouplingFieldTemplate::New; -%newobject ParaMEDMEM::MEDCouplingMesh::deepCpy; -%newobject ParaMEDMEM::MEDCouplingMesh::checkDeepEquivalOnSameNodesWith; -%newobject ParaMEDMEM::MEDCouplingMesh::checkTypeConsistencyAndContig; -%newobject ParaMEDMEM::MEDCouplingMesh::computeNbOfNodesPerCell; -%newobject ParaMEDMEM::MEDCouplingMesh::computeNbOfFacesPerCell; -%newobject ParaMEDMEM::MEDCouplingMesh::computeEffectiveNbOfNodesPerCell; -%newobject ParaMEDMEM::MEDCouplingMesh::buildPartRange; -%newobject ParaMEDMEM::MEDCouplingMesh::giveCellsWithType; -%newobject ParaMEDMEM::MEDCouplingMesh::getCoordinatesAndOwner; -%newobject ParaMEDMEM::MEDCouplingMesh::getBarycenterAndOwner; -%newobject ParaMEDMEM::MEDCouplingMesh::computeIsoBarycenterOfNodesPerCell; -%newobject ParaMEDMEM::MEDCouplingMesh::buildOrthogonalField; -%newobject ParaMEDMEM::MEDCouplingMesh::getCellIdsFullyIncludedInNodeIds; -%newobject ParaMEDMEM::MEDCouplingMesh::mergeMyselfWith; -%newobject ParaMEDMEM::MEDCouplingMesh::fillFromAnalytic; -%newobject ParaMEDMEM::MEDCouplingMesh::fillFromAnalytic2; -%newobject ParaMEDMEM::MEDCouplingMesh::fillFromAnalytic3; -%newobject ParaMEDMEM::MEDCouplingMesh::getMeasureField; -%newobject ParaMEDMEM::MEDCouplingMesh::simplexize; -%newobject ParaMEDMEM::MEDCouplingMesh::buildUnstructured; -%newobject ParaMEDMEM::MEDCouplingMesh::MergeMeshes; -%newobject ParaMEDMEM::MEDCouplingPointSet::zipCoordsTraducer; -%newobject ParaMEDMEM::MEDCouplingPointSet::getCellsInBoundingBox; -%newobject ParaMEDMEM::MEDCouplingPointSet::findBoundaryNodes; -%newobject ParaMEDMEM::MEDCouplingPointSet::buildBoundaryMesh; -%newobject ParaMEDMEM::MEDCouplingPointSet::MergeNodesArray; -%newobject ParaMEDMEM::MEDCouplingPointSet::buildPartOfMySelf2; -%newobject ParaMEDMEM::MEDCouplingPointSet::BuildInstanceFromMeshType; -%newobject ParaMEDMEM::MEDCouplingPointSet::zipConnectivityTraducer; -%newobject ParaMEDMEM::MEDCouplingPointSet::mergeMyselfWithOnSameCoords; -%newobject ParaMEDMEM::MEDCouplingPointSet::fillCellIdsToKeepFromNodeIds; -%newobject ParaMEDMEM::MEDCouplingPointSet::getCellIdsLyingOnNodes; -%newobject ParaMEDMEM::MEDCouplingPointSet::deepCpyConnectivityOnly; -%newobject ParaMEDMEM::MEDCouplingPointSet::getBoundingBoxForBBTree; -%newobject ParaMEDMEM::MEDCouplingPointSet::ComputeNbOfInteractionsWithSrcCells; -%newobject ParaMEDMEM::MEDCouplingPointSet::__getitem__; -%newobject ParaMEDMEM::MEDCouplingUMesh::New; -%newobject ParaMEDMEM::MEDCouplingUMesh::getNodalConnectivity; -%newobject ParaMEDMEM::MEDCouplingUMesh::getNodalConnectivityIndex; -%newobject ParaMEDMEM::MEDCouplingUMesh::clone; -%newobject ParaMEDMEM::MEDCouplingUMesh::__iter__; -%newobject ParaMEDMEM::MEDCouplingUMesh::cellsByType; -%newobject ParaMEDMEM::MEDCouplingUMesh::buildDescendingConnectivity; -%newobject ParaMEDMEM::MEDCouplingUMesh::buildDescendingConnectivity2; -%newobject ParaMEDMEM::MEDCouplingUMesh::explode3DMeshTo1D; -%newobject ParaMEDMEM::MEDCouplingUMesh::buildExtrudedMesh; -%newobject ParaMEDMEM::MEDCouplingUMesh::buildSpreadZonesWithPoly; -%newobject ParaMEDMEM::MEDCouplingUMesh::MergeUMeshes; -%newobject ParaMEDMEM::MEDCouplingUMesh::MergeUMeshesOnSameCoords; -%newobject ParaMEDMEM::MEDCouplingUMesh::ComputeSpreadZoneGradually; -%newobject ParaMEDMEM::MEDCouplingUMesh::ComputeSpreadZoneGraduallyFromSeed; -%newobject ParaMEDMEM::MEDCouplingUMesh::buildNewNumberingFromCommNodesFrmt; -%newobject ParaMEDMEM::MEDCouplingUMesh::rearrange2ConsecutiveCellTypes; -%newobject ParaMEDMEM::MEDCouplingUMesh::sortCellsInMEDFileFrmt; -%newobject ParaMEDMEM::MEDCouplingUMesh::getRenumArrForMEDFileFrmt; -%newobject ParaMEDMEM::MEDCouplingUMesh::convertCellArrayPerGeoType; -%newobject ParaMEDMEM::MEDCouplingUMesh::computeFetchedNodeIds; -%newobject ParaMEDMEM::MEDCouplingUMesh::getRenumArrForConsecutiveCellTypesSpec; -%newobject ParaMEDMEM::MEDCouplingUMesh::buildDirectionVectorField; -%newobject ParaMEDMEM::MEDCouplingUMesh::convertLinearCellsToQuadratic; -%newobject ParaMEDMEM::MEDCouplingUMesh::getEdgeRatioField; -%newobject ParaMEDMEM::MEDCouplingUMesh::getAspectRatioField; -%newobject ParaMEDMEM::MEDCouplingUMesh::getWarpField; -%newobject ParaMEDMEM::MEDCouplingUMesh::getSkewField; -%newobject ParaMEDMEM::MEDCouplingUMesh::getPartBarycenterAndOwner; -%newobject ParaMEDMEM::MEDCouplingUMesh::computePlaneEquationOf3DFaces; -%newobject ParaMEDMEM::MEDCouplingUMesh::getPartMeasureField; -%newobject ParaMEDMEM::MEDCouplingUMesh::buildPartOrthogonalField; -%newobject ParaMEDMEM::MEDCouplingUMesh::keepCellIdsByType; -%newobject ParaMEDMEM::MEDCouplingUMesh::Build0DMeshFromCoords; -%newobject ParaMEDMEM::MEDCouplingUMesh::findAndCorrectBadOriented3DExtrudedCells; -%newobject ParaMEDMEM::MEDCouplingUMesh::findAndCorrectBadOriented3DCells; -%newobject ParaMEDMEM::MEDCouplingUMesh::convertIntoSingleGeoTypeMesh; -%newobject ParaMEDMEM::MEDCouplingUMesh::convertNodalConnectivityToStaticGeoTypeMesh; -%newobject ParaMEDMEM::MEDCouplingUMesh::findCellIdsOnBoundary; -%newobject ParaMEDMEM::MEDCouplingUMesh::computeSkin; -%newobject ParaMEDMEM::MEDCouplingUMesh::buildSetInstanceFromThis; -%newobject ParaMEDMEM::MEDCouplingUMesh::getCellIdsCrossingPlane; -%newobject ParaMEDMEM::MEDCouplingUMesh::convexEnvelop2D; -%newobject ParaMEDMEM::MEDCouplingUMesh::ComputeRangesFromTypeDistribution; -%newobject ParaMEDMEM::MEDCouplingUMesh::buildUnionOf2DMesh; -%newobject ParaMEDMEM::MEDCouplingUMesh::buildUnionOf3DMesh; -%newobject ParaMEDMEM::MEDCouplingUMesh::getBoundingBoxForBBTreeFast; -%newobject ParaMEDMEM::MEDCouplingUMesh::getBoundingBoxForBBTree2DQuadratic; -%newobject ParaMEDMEM::MEDCouplingUMesh::getBoundingBoxForBBTree1DQuadratic; -%newobject ParaMEDMEM::MEDCouplingUMeshCellByTypeEntry::__iter__; -%newobject ParaMEDMEM::MEDCouplingUMeshCellEntry::__iter__; -%newobject ParaMEDMEM::MEDCoupling1GTUMesh::New; -%newobject ParaMEDMEM::MEDCoupling1GTUMesh::getNodalConnectivity; -%newobject ParaMEDMEM::MEDCoupling1GTUMesh::AggregateOnSameCoordsToUMesh; -%newobject ParaMEDMEM::MEDCoupling1SGTUMesh::New; -%newobject ParaMEDMEM::MEDCoupling1SGTUMesh::buildSetInstanceFromThis; -%newobject ParaMEDMEM::MEDCoupling1SGTUMesh::computeDualMesh; -%newobject ParaMEDMEM::MEDCoupling1SGTUMesh::explodeEachHexa8To6Quad4; -%newobject ParaMEDMEM::MEDCoupling1SGTUMesh::sortHexa8EachOther; -%newobject ParaMEDMEM::MEDCoupling1SGTUMesh::Merge1SGTUMeshes; -%newobject ParaMEDMEM::MEDCoupling1SGTUMesh::Merge1SGTUMeshesOnSameCoords; -%newobject ParaMEDMEM::MEDCoupling1DGTUMesh::New; -%newobject ParaMEDMEM::MEDCoupling1DGTUMesh::getNodalConnectivityIndex; -%newobject ParaMEDMEM::MEDCoupling1DGTUMesh::buildSetInstanceFromThis; -%newobject ParaMEDMEM::MEDCoupling1DGTUMesh::Merge1DGTUMeshes; -%newobject ParaMEDMEM::MEDCoupling1DGTUMesh::Merge1DGTUMeshesOnSameCoords; -%newobject ParaMEDMEM::MEDCouplingExtrudedMesh::New; -%newobject ParaMEDMEM::MEDCouplingExtrudedMesh::build3DUnstructuredMesh; -%newobject ParaMEDMEM::MEDCouplingStructuredMesh::buildStructuredSubPart; -%newobject ParaMEDMEM::MEDCouplingStructuredMesh::build1SGTUnstructured; -%newobject ParaMEDMEM::MEDCouplingStructuredMesh::BuildExplicitIdsFrom; -%newobject ParaMEDMEM::MEDCouplingStructuredMesh::Build1GTNodalConnectivity; -%newobject ParaMEDMEM::MEDCouplingCMesh::New; -%newobject ParaMEDMEM::MEDCouplingCMesh::clone; -%newobject ParaMEDMEM::MEDCouplingCMesh::getCoordsAt; -%newobject ParaMEDMEM::MEDCouplingCurveLinearMesh::New; -%newobject ParaMEDMEM::MEDCouplingCurveLinearMesh::clone; -%newobject ParaMEDMEM::MEDCouplingCurveLinearMesh::getCoords; -%newobject ParaMEDMEM::MEDCouplingMultiFields::New; -%newobject ParaMEDMEM::MEDCouplingMultiFields::deepCpy; -%newobject ParaMEDMEM::MEDCouplingFieldOverTime::New; +%newobject MEDCoupling::MEDCouplingField::buildMeasureField; +%newobject MEDCoupling::MEDCouplingField::getLocalizationOfDiscr; +%newobject MEDCoupling::MEDCouplingField::computeTupleIdsToSelectFromCellIds; +%newobject MEDCoupling::MEDCouplingFieldDouble::New; +%newobject MEDCoupling::MEDCouplingFieldDouble::getArray; +%newobject MEDCoupling::MEDCouplingFieldDouble::getEndArray; +%newobject MEDCoupling::MEDCouplingFieldDouble::MergeFields; +%newobject MEDCoupling::MEDCouplingFieldDouble::MeldFields; +%newobject MEDCoupling::MEDCouplingFieldDouble::convertToIntField; +%newobject MEDCoupling::MEDCouplingFieldDouble::convertToFloatField; +%newobject MEDCoupling::MEDCouplingFieldDouble::doublyContractedProduct; +%newobject MEDCoupling::MEDCouplingFieldDouble::determinant; +%newobject MEDCoupling::MEDCouplingFieldDouble::eigenValues; +%newobject MEDCoupling::MEDCouplingFieldDouble::eigenVectors; +%newobject MEDCoupling::MEDCouplingFieldDouble::inverse; +%newobject MEDCoupling::MEDCouplingFieldDouble::trace; +%newobject MEDCoupling::MEDCouplingFieldDouble::deviator; +%newobject MEDCoupling::MEDCouplingFieldDouble::magnitude; +%newobject MEDCoupling::MEDCouplingFieldDouble::maxPerTuple; +%newobject MEDCoupling::MEDCouplingFieldDouble::keepSelectedComponents; +%newobject MEDCoupling::MEDCouplingFieldDouble::extractSlice3D; +%newobject MEDCoupling::MEDCouplingFieldDouble::DotFields; +%newobject MEDCoupling::MEDCouplingFieldDouble::dot; +%newobject MEDCoupling::MEDCouplingFieldDouble::CrossProductFields; +%newobject MEDCoupling::MEDCouplingFieldDouble::crossProduct; +%newobject MEDCoupling::MEDCouplingFieldDouble::MaxFields; +%newobject MEDCoupling::MEDCouplingFieldDouble::max; +%newobject MEDCoupling::MEDCouplingFieldDouble::MinFields; +%newobject MEDCoupling::MEDCouplingFieldDouble::AddFields; +%newobject MEDCoupling::MEDCouplingFieldDouble::SubstractFields; +%newobject MEDCoupling::MEDCouplingFieldDouble::MultiplyFields; +%newobject MEDCoupling::MEDCouplingFieldDouble::DivideFields; +%newobject MEDCoupling::MEDCouplingFieldDouble::min; +%newobject MEDCoupling::MEDCouplingFieldDouble::negate; +%newobject MEDCoupling::MEDCouplingFieldDouble::findIdsInRange; +%newobject MEDCoupling::MEDCouplingFieldDouble::buildSubPart; +%newobject MEDCoupling::MEDCouplingFieldDouble::buildSubPartRange; +%newobject MEDCoupling::MEDCouplingFieldDouble::voronoize; +%newobject MEDCoupling::MEDCouplingFieldDouble::convertQuadraticCellsToLinear; +%newobject MEDCoupling::MEDCouplingFieldDouble::__getitem__; +%newobject MEDCoupling::MEDCouplingFieldDouble::__neg__; +%newobject MEDCoupling::MEDCouplingFieldDouble::__add__; +%newobject MEDCoupling::MEDCouplingFieldDouble::__sub__; +%newobject MEDCoupling::MEDCouplingFieldDouble::__mul__; +%newobject MEDCoupling::MEDCouplingFieldDouble::__div__; +%newobject MEDCoupling::MEDCouplingFieldDouble::__pow__; +%newobject MEDCoupling::MEDCouplingFieldDouble::__radd__; +%newobject MEDCoupling::MEDCouplingFieldDouble::__rsub__; +%newobject MEDCoupling::MEDCouplingFieldDouble::__rmul__; +%newobject MEDCoupling::MEDCouplingFieldDouble::__rdiv__; +%newobject MEDCoupling::MEDCouplingFieldDouble::clone; +%newobject MEDCoupling::MEDCouplingFieldDouble::cloneWithMesh; +%newobject MEDCoupling::MEDCouplingFieldDouble::deepCopy; +%newobject MEDCoupling::MEDCouplingFieldDouble::buildNewTimeReprFromThis; +%newobject MEDCoupling::MEDCouplingFieldDouble::nodeToCellDiscretization; +%newobject MEDCoupling::MEDCouplingFieldDouble::cellToNodeDiscretization; +%newobject MEDCoupling::MEDCouplingFieldDouble::getValueOnMulti; +%newobject MEDCoupling::MEDCouplingFieldDouble::computeVectorFieldCyl; +%newobject MEDCoupling::MEDCouplingFieldInt::New; +%newobject MEDCoupling::MEDCouplingFieldInt::convertToDblField; +%newobject MEDCoupling::MEDCouplingFieldInt::getArray; +%newobject MEDCoupling::MEDCouplingFieldInt::deepCopy; +%newobject MEDCoupling::MEDCouplingFieldInt::clone; +%newobject MEDCoupling::MEDCouplingFieldInt::cloneWithMesh; +%newobject MEDCoupling::MEDCouplingFieldInt::buildSubPart; +%newobject MEDCoupling::MEDCouplingFieldInt::buildSubPartRange; +%newobject MEDCoupling::MEDCouplingFieldInt::__getitem__; +%newobject MEDCoupling::MEDCouplingFieldFloat::New; +%newobject MEDCoupling::MEDCouplingFieldFloat::convertToDblField; +%newobject MEDCoupling::MEDCouplingFieldFloat::getArray; +%newobject MEDCoupling::MEDCouplingFieldFloat::deepCopy; +%newobject MEDCoupling::MEDCouplingFieldFloat::clone; +%newobject MEDCoupling::MEDCouplingFieldFloat::cloneWithMesh; +%newobject MEDCoupling::MEDCouplingFieldFloat::buildSubPart; +%newobject MEDCoupling::MEDCouplingFieldFloat::buildSubPartRange; +%newobject MEDCoupling::MEDCouplingFieldFloat::__getitem__; +%newobject MEDCoupling::MEDCouplingFieldTemplate::New; +%newobject MEDCoupling::MEDCouplingMesh::deepCopy; +%newobject MEDCoupling::MEDCouplingMesh::clone; +%newobject MEDCoupling::MEDCouplingMesh::checkDeepEquivalOnSameNodesWith; +%newobject MEDCoupling::MEDCouplingMesh::checkTypeConsistencyAndContig; +%newobject MEDCoupling::MEDCouplingMesh::computeNbOfNodesPerCell; +%newobject MEDCoupling::MEDCouplingMesh::computeNbOfFacesPerCell; +%newobject MEDCoupling::MEDCouplingMesh::computeEffectiveNbOfNodesPerCell; +%newobject MEDCoupling::MEDCouplingMesh::buildPartRange; +%newobject MEDCoupling::MEDCouplingMesh::giveCellsWithType; +%newobject MEDCoupling::MEDCouplingMesh::getCoordinatesAndOwner; +%newobject MEDCoupling::MEDCouplingMesh::computeCellCenterOfMass; +%newobject MEDCoupling::MEDCouplingMesh::computeIsoBarycenterOfNodesPerCell; +%newobject MEDCoupling::MEDCouplingMesh::buildOrthogonalField; +%newobject MEDCoupling::MEDCouplingMesh::getCellIdsFullyIncludedInNodeIds; +%newobject MEDCoupling::MEDCouplingMesh::mergeMyselfWith; +%newobject MEDCoupling::MEDCouplingMesh::fillFromAnalytic; +%newobject MEDCoupling::MEDCouplingMesh::fillFromAnalyticCompo; +%newobject MEDCoupling::MEDCouplingMesh::fillFromAnalyticNamedCompo; +%newobject MEDCoupling::MEDCouplingMesh::getMeasureField; +%newobject MEDCoupling::MEDCouplingMesh::simplexize; +%newobject MEDCoupling::MEDCouplingMesh::buildUnstructured; +%newobject MEDCoupling::MEDCouplingMesh::MergeMeshes; +%newobject MEDCoupling::MEDCouplingMesh::getDirectAccessOfCoordsArrIfInStructure; +%newobject MEDCoupling::MEDCouplingPointSet::zipCoordsTraducer; +%newobject MEDCoupling::MEDCouplingPointSet::getCellsInBoundingBox; +%newobject MEDCoupling::MEDCouplingPointSet::findBoundaryNodes; +%newobject MEDCoupling::MEDCouplingPointSet::buildBoundaryMesh; +%newobject MEDCoupling::MEDCouplingPointSet::MergeNodesArray; +%newobject MEDCoupling::MEDCouplingPointSet::buildPartOfMySelfSlice; +%newobject MEDCoupling::MEDCouplingPointSet::BuildInstanceFromMeshType; +%newobject MEDCoupling::MEDCouplingPointSet::zipConnectivityTraducer; +%newobject MEDCoupling::MEDCouplingPointSet::mergeMyselfWithOnSameCoords; +%newobject MEDCoupling::MEDCouplingPointSet::fillCellIdsToKeepFromNodeIds; +%newobject MEDCoupling::MEDCouplingPointSet::getCellIdsLyingOnNodes; +%newobject MEDCoupling::MEDCouplingPointSet::deepCopyConnectivityOnly; +%newobject MEDCoupling::MEDCouplingPointSet::getBoundingBoxForBBTree; +%newobject MEDCoupling::MEDCouplingPointSet::computeFetchedNodeIds; +%newobject MEDCoupling::MEDCouplingPointSet::ComputeNbOfInteractionsWithSrcCells; +%newobject MEDCoupling::MEDCouplingPointSet::computeDiameterField; +%newobject MEDCoupling::MEDCouplingPointSet::__getitem__; +%newobject MEDCoupling::MEDCouplingUMesh::New; +%newobject MEDCoupling::MEDCouplingUMesh::getNodalConnectivity; +%newobject MEDCoupling::MEDCouplingUMesh::getNodalConnectivityIndex; +%newobject MEDCoupling::MEDCouplingUMesh::__iter__; +%newobject MEDCoupling::MEDCouplingUMesh::cellsByType; +%newobject MEDCoupling::MEDCouplingUMesh::buildDescendingConnectivity; +%newobject MEDCoupling::MEDCouplingUMesh::buildDescendingConnectivity2; +%newobject MEDCoupling::MEDCouplingUMesh::explode3DMeshTo1D; +%newobject MEDCoupling::MEDCouplingUMesh::explodeMeshIntoMicroEdges; +%newobject MEDCoupling::MEDCouplingUMesh::buildExtrudedMesh; +%newobject MEDCoupling::MEDCouplingUMesh::buildSpreadZonesWithPoly; +%newobject MEDCoupling::MEDCouplingUMesh::MergeUMeshes; +%newobject MEDCoupling::MEDCouplingUMesh::MergeUMeshesOnSameCoords; +%newobject MEDCoupling::MEDCouplingUMesh::ComputeSpreadZoneGradually; +%newobject MEDCoupling::MEDCouplingUMesh::ComputeSpreadZoneGraduallyFromSeed; +%newobject MEDCoupling::MEDCouplingUMesh::buildNewNumberingFromCommNodesFrmt; +%newobject MEDCoupling::MEDCouplingUMesh::conformize2D; +%newobject MEDCoupling::MEDCouplingUMesh::conformize3D; +%newobject MEDCoupling::MEDCouplingUMesh::colinearize2D; +%newobject MEDCoupling::MEDCouplingUMesh::rearrange2ConsecutiveCellTypes; +%newobject MEDCoupling::MEDCouplingUMesh::sortCellsInMEDFileFrmt; +%newobject MEDCoupling::MEDCouplingUMesh::getRenumArrForMEDFileFrmt; +%newobject MEDCoupling::MEDCouplingUMesh::convertCellArrayPerGeoType; +%newobject MEDCoupling::MEDCouplingUMesh::getRenumArrForConsecutiveCellTypesSpec; +%newobject MEDCoupling::MEDCouplingUMesh::buildDirectionVectorField; +%newobject MEDCoupling::MEDCouplingUMesh::convertLinearCellsToQuadratic; +%newobject MEDCoupling::MEDCouplingUMesh::getEdgeRatioField; +%newobject MEDCoupling::MEDCouplingUMesh::getAspectRatioField; +%newobject MEDCoupling::MEDCouplingUMesh::getWarpField; +%newobject MEDCoupling::MEDCouplingUMesh::getSkewField; +%newobject MEDCoupling::MEDCouplingUMesh::getPartBarycenterAndOwner; +%newobject MEDCoupling::MEDCouplingUMesh::computePlaneEquationOf3DFaces; +%newobject MEDCoupling::MEDCouplingUMesh::getPartMeasureField; +%newobject MEDCoupling::MEDCouplingUMesh::buildPartOrthogonalField; +%newobject MEDCoupling::MEDCouplingUMesh::keepCellIdsByType; +%newobject MEDCoupling::MEDCouplingUMesh::Build0DMeshFromCoords; +%newobject MEDCoupling::MEDCouplingUMesh::Build1DMeshFromCoords; +%newobject MEDCoupling::MEDCouplingUMesh::findAndCorrectBadOriented3DExtrudedCells; +%newobject MEDCoupling::MEDCouplingUMesh::findAndCorrectBadOriented3DCells; +%newobject MEDCoupling::MEDCouplingUMesh::convertIntoSingleGeoTypeMesh; +%newobject MEDCoupling::MEDCouplingUMesh::convertNodalConnectivityToStaticGeoTypeMesh; +%newobject MEDCoupling::MEDCouplingUMesh::findCellIdsOnBoundary; +%newobject MEDCoupling::MEDCouplingUMesh::computeSkin; +%newobject MEDCoupling::MEDCouplingUMesh::buildSetInstanceFromThis; +%newobject MEDCoupling::MEDCouplingUMesh::getCellIdsCrossingPlane; +%newobject MEDCoupling::MEDCouplingUMesh::convexEnvelop2D; +%newobject MEDCoupling::MEDCouplingUMesh::ComputeRangesFromTypeDistribution; +%newobject MEDCoupling::MEDCouplingUMesh::buildUnionOf2DMesh; +%newobject MEDCoupling::MEDCouplingUMesh::buildUnionOf3DMesh; +%newobject MEDCoupling::MEDCouplingUMesh::generateGraph; +%newobject MEDCoupling::MEDCouplingUMesh::orderConsecutiveCells1D; +%newobject MEDCoupling::MEDCouplingUMesh::clipSingle3DCellByPlane; +%newobject MEDCoupling::MEDCouplingUMesh::getBoundingBoxForBBTreeFast; +%newobject MEDCoupling::MEDCouplingUMesh::getBoundingBoxForBBTree2DQuadratic; +%newobject MEDCoupling::MEDCouplingUMesh::getBoundingBoxForBBTree1DQuadratic; +%newobject MEDCoupling::MEDCouplingUMeshCellByTypeEntry::__iter__; +%newobject MEDCoupling::MEDCouplingUMeshCellEntry::__iter__; +%newobject MEDCoupling::MEDCoupling1GTUMesh::New; +%newobject MEDCoupling::MEDCoupling1GTUMesh::getNodalConnectivity; +%newobject MEDCoupling::MEDCoupling1GTUMesh::AggregateOnSameCoordsToUMesh; +%newobject MEDCoupling::MEDCoupling1SGTUMesh::New; +%newobject MEDCoupling::MEDCoupling1SGTUMesh::buildSetInstanceFromThis; +%newobject MEDCoupling::MEDCoupling1SGTUMesh::computeDualMesh; +%newobject MEDCoupling::MEDCoupling1SGTUMesh::explodeEachHexa8To6Quad4; +%newobject MEDCoupling::MEDCoupling1SGTUMesh::sortHexa8EachOther; +%newobject MEDCoupling::MEDCoupling1SGTUMesh::Merge1SGTUMeshes; +%newobject MEDCoupling::MEDCoupling1SGTUMesh::Merge1SGTUMeshesOnSameCoords; +%newobject MEDCoupling::MEDCoupling1DGTUMesh::New; +%newobject MEDCoupling::MEDCoupling1DGTUMesh::getNodalConnectivityIndex; +%newobject MEDCoupling::MEDCoupling1DGTUMesh::buildSetInstanceFromThis; +%newobject MEDCoupling::MEDCoupling1DGTUMesh::Merge1DGTUMeshes; +%newobject MEDCoupling::MEDCoupling1DGTUMesh::Merge1DGTUMeshesOnSameCoords; +%newobject MEDCoupling::MEDCouplingMappedExtrudedMesh::New; +%newobject MEDCoupling::MEDCouplingMappedExtrudedMesh::build3DUnstructuredMesh; +%newobject MEDCoupling::MEDCouplingStructuredMesh::buildStructuredSubPart; +%newobject MEDCoupling::MEDCouplingStructuredMesh::build1SGTUnstructured; +%newobject MEDCoupling::MEDCouplingStructuredMesh::build1SGTSubLevelMesh; +%newobject MEDCoupling::MEDCouplingStructuredMesh::BuildExplicitIdsFrom; +%newobject MEDCoupling::MEDCouplingStructuredMesh::ExtractFieldOfDoubleFrom; +%newobject MEDCoupling::MEDCouplingStructuredMesh::Build1GTNodalConnectivity; +%newobject MEDCoupling::MEDCouplingStructuredMesh::Build1GTNodalConnectivityOfSubLevelMesh; +%newobject MEDCoupling::MEDCouplingStructuredMesh::ComputeCornersGhost; +%newobject MEDCoupling::MEDCouplingCMesh::New; +%newobject MEDCoupling::MEDCouplingCMesh::getCoordsAt; +%newobject MEDCoupling::MEDCouplingCMesh::buildCurveLinear; +%newobject MEDCoupling::MEDCouplingIMesh::New; +%newobject MEDCoupling::MEDCouplingIMesh::asSingleCell; +%newobject MEDCoupling::MEDCouplingIMesh::buildWithGhost; +%newobject MEDCoupling::MEDCouplingIMesh::convertToCartesian; +%newobject MEDCoupling::MEDCouplingCurveLinearMesh::New; +%newobject MEDCoupling::MEDCouplingCurveLinearMesh::getCoords; +%newobject MEDCoupling::MEDCouplingMultiFields::New; +%newobject MEDCoupling::MEDCouplingMultiFields::deepCopy; +%newobject MEDCoupling::MEDCouplingFieldOverTime::New; +%newobject MEDCoupling::MEDCouplingCartesianAMRPatchGen::getMesh; +%newobject MEDCoupling::MEDCouplingCartesianAMRPatchGen::__getitem__; +%newobject MEDCoupling::MEDCouplingCartesianAMRMeshGen::deepCopy; +%newobject MEDCoupling::MEDCouplingCartesianAMRMeshGen::buildUnstructured; +%newobject MEDCoupling::MEDCouplingCartesianAMRMeshGen::extractGhostFrom; +%newobject MEDCoupling::MEDCouplingCartesianAMRMeshGen::buildMeshFromPatchEnvelop; +%newobject MEDCoupling::MEDCouplingCartesianAMRMeshGen::buildMeshOfDirectChildrenOnly; +%newobject MEDCoupling::MEDCouplingCartesianAMRMeshGen::getImageMesh; +%newobject MEDCoupling::MEDCouplingCartesianAMRMeshGen::getGodFather; +%newobject MEDCoupling::MEDCouplingCartesianAMRMeshGen::getFather; +%newobject MEDCoupling::MEDCouplingCartesianAMRMeshGen::getPatch; +%newobject MEDCoupling::MEDCouplingCartesianAMRMeshGen::createCellFieldOnPatch; +%newobject MEDCoupling::MEDCouplingCartesianAMRMeshGen::findPatchesInTheNeighborhoodOf; +%newobject MEDCoupling::MEDCouplingCartesianAMRMeshGen::getPatchAtPosition; +%newobject MEDCoupling::MEDCouplingCartesianAMRMeshGen::getMeshAtPosition; +%newobject MEDCoupling::MEDCouplingCartesianAMRMeshGen::__getitem__; +%newobject MEDCoupling::MEDCouplingCartesianAMRMesh::New; +%newobject MEDCoupling::MEDCouplingDataForGodFather::getMyGodFather; +%newobject MEDCoupling::MEDCouplingAMRAttribute::New; +%newobject MEDCoupling::MEDCouplingAMRAttribute::deepCopy; +%newobject MEDCoupling::MEDCouplingAMRAttribute::deepCpyWithoutGodFather; +%newobject MEDCoupling::MEDCouplingAMRAttribute::getFieldOn; +%newobject MEDCoupling::MEDCouplingAMRAttribute::projectTo; +%newobject MEDCoupling::MEDCouplingAMRAttribute::buildCellFieldOnRecurseWithoutOverlapWithoutGhost; +%newobject MEDCoupling::MEDCouplingAMRAttribute::buildCellFieldOnWithGhost; +%newobject MEDCoupling::MEDCouplingAMRAttribute::buildCellFieldOnWithoutGhost; +%newobject MEDCoupling::DenseMatrix::New; +%newobject MEDCoupling::DenseMatrix::deepCopy; +%newobject MEDCoupling::DenseMatrix::shallowCpy; +%newobject MEDCoupling::DenseMatrix::getData; +%newobject MEDCoupling::DenseMatrix::matVecMult; +%newobject MEDCoupling::DenseMatrix::MatVecMult; +%newobject MEDCoupling::DenseMatrix::__add__; +%newobject MEDCoupling::DenseMatrix::__sub__; +%newobject MEDCoupling::DenseMatrix::__mul__; +%newobject MEDCoupling::MEDCouplingGaussLocalization::localizePtsInRefCooForEachCell; +%newobject MEDCoupling::MEDCouplingGaussLocalization::buildRefCell; +%newobject MEDCoupling::MEDCouplingSkyLineArray::BuildFromPolyhedronConn; +%newobject MEDCoupling::MEDCouplingSkyLineArray::getSuperIndexArray; +%newobject MEDCoupling::MEDCouplingSkyLineArray::getIndexArray; +%newobject MEDCoupling::MEDCouplingSkyLineArray::getValuesArray; %feature("unref") MEDCouplingPointSet "$this->decrRef();" %feature("unref") MEDCouplingMesh "$this->decrRef();" @@ -310,8 +448,10 @@ using namespace INTERP_KERNEL; %feature("unref") MEDCoupling1GTUMesh "$this->decrRef();" %feature("unref") MEDCoupling1SGTUMesh "$this->decrRef();" %feature("unref") MEDCoupling1DGTUMesh "$this->decrRef();" -%feature("unref") MEDCouplingExtrudedMesh "$this->decrRef();" +%feature("unref") MEDCouplingMappedExtrudedMesh "$this->decrRef();" %feature("unref") MEDCouplingCMesh "$this->decrRef();" +%feature("unref") MEDCouplingIMesh "$this->decrRef();" +%feature("unref") MEDCouplingCurveLinearMesh "$this->decrRef();" %feature("unref") MEDCouplingField "$this->decrRef();" %feature("unref") MEDCouplingFieldDiscretizationP0 "$this->decrRef();" %feature("unref") MEDCouplingFieldDiscretizationP1 "$this->decrRef();" @@ -319,15 +459,27 @@ using namespace INTERP_KERNEL; %feature("unref") MEDCouplingFieldDiscretizationGaussNE "$this->decrRef();" %feature("unref") MEDCouplingFieldDiscretizationKriging "$this->decrRef();" %feature("unref") MEDCouplingFieldDouble "$this->decrRef();" +%feature("unref") MEDCouplingFieldFloat "$this->decrRef();" +%feature("unref") MEDCouplingFieldInt "$this->decrRef();" %feature("unref") MEDCouplingMultiFields "$this->decrRef();" %feature("unref") MEDCouplingFieldTemplate "$this->decrRef();" %feature("unref") MEDCouplingMultiFields "$this->decrRef();" +%feature("unref") MEDCouplingCartesianAMRMeshGen "$this->decrRef();" +%feature("unref") MEDCouplingCartesianAMRMesh "$this->decrRef();" +%feature("unref") MEDCouplingCartesianAMRMeshSub "$this->decrRef();" +%feature("unref") MEDCouplingCartesianAMRPatchGen "$this->decrRef();" +%feature("unref") MEDCouplingCartesianAMRPatchGF "$this->decrRef();" +%feature("unref") MEDCouplingCartesianAMRPatch "$this->decrRef();" +%feature("unref") MEDCouplingDataForGodFather "$this->decrRef();" +%feature("unref") MEDCouplingAMRAttribute "$this->decrRef();" +%feature("unref") DenseMatrix "$this->decrRef();" +%feature("unref") MEDCouplingSkyLineArray "$this->decrRef();" %rename(assign) *::operator=; -%ignore ParaMEDMEM::MEDCouplingGaussLocalization::pushTinySerializationIntInfo; -%ignore ParaMEDMEM::MEDCouplingGaussLocalization::pushTinySerializationDblInfo; -%ignore ParaMEDMEM::MEDCouplingGaussLocalization::fillWithValues; -%ignore ParaMEDMEM::MEDCouplingGaussLocalization::buildNewInstanceFromTinyInfo; +%ignore MEDCoupling::MEDCouplingGaussLocalization::pushTinySerializationIntInfo; +%ignore MEDCoupling::MEDCouplingGaussLocalization::pushTinySerializationDblInfo; +%ignore MEDCoupling::MEDCouplingGaussLocalization::fillWithValues; +%ignore MEDCoupling::MEDCouplingGaussLocalization::buildNewInstanceFromTinyInfo; %nodefaultctor; @@ -336,7 +488,52 @@ using namespace INTERP_KERNEL; %include "MEDCouplingRefCountObject.i" %include "MEDCouplingMemArray.i" -namespace ParaMEDMEM +%{ + void initializeMe() + {// AGY : here initialization of C++ traits in MEDCouplingDataArrayTypemaps.i for code factorization. Awful, I know, but no other solutions. + SWIGTITraits::TI=SWIGTYPE_p_MEDCoupling__DataArrayDouble; + SWIGTITraits::TI=SWIGTYPE_p_MEDCoupling__DataArrayFloat; + SWIGTITraits::TI=SWIGTYPE_p_MEDCoupling__DataArrayInt; + SWIGTITraits::TI_TUPLE=SWIGTYPE_p_MEDCoupling__DataArrayDoubleTuple; + SWIGTITraits::TI_TUPLE=SWIGTYPE_p_MEDCoupling__DataArrayFloatTuple; + SWIGTITraits::TI_TUPLE=SWIGTYPE_p_MEDCoupling__DataArrayIntTuple; + } +%} + +namespace INTERP_KERNEL +{ + /*! + * \class BoxSplittingOptions + * Class defining the options for box splitting used for AMR algorithm like creation of patches following a criterion. + */ + class BoxSplittingOptions + { + public: + BoxSplittingOptions(); + void init() 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 + { + std::string __str__() const throw(INTERP_KERNEL::Exception) + { + return self->printOptions(); + } + } + }; +} + +namespace MEDCoupling { typedef enum { @@ -362,12 +559,14 @@ namespace ParaMEDMEM EXTRUDED = 8, CURVE_LINEAR = 9, SINGLE_STATIC_GEO_TYPE_UNSTRUCTURED = 10, - SINGLE_DYNAMIC_GEO_TYPE_UNSTRUCTURED = 11 + SINGLE_DYNAMIC_GEO_TYPE_UNSTRUCTURED = 11, + IMAGE_GRID = 12 } MEDCouplingMeshType; class DataArrayInt; class DataArrayDouble; class MEDCouplingUMesh; + class MEDCouplingCMesh; class MEDCouplingFieldDouble; %extend RefCountObject @@ -408,21 +607,21 @@ namespace ParaMEDMEM std::string getTimeUnit() const; virtual MEDCouplingMeshType getType() const throw(INTERP_KERNEL::Exception); bool isStructured() const throw(INTERP_KERNEL::Exception); - virtual MEDCouplingMesh *deepCpy() const; + virtual MEDCouplingMesh *deepCopy() const throw(INTERP_KERNEL::Exception); + virtual MEDCouplingMesh *clone(bool recDeepCpy) const throw(INTERP_KERNEL::Exception); virtual bool isEqual(const MEDCouplingMesh *other, double prec) const throw(INTERP_KERNEL::Exception); virtual bool isEqualWithoutConsideringStr(const MEDCouplingMesh *other, double prec) const throw(INTERP_KERNEL::Exception); virtual void checkFastEquivalWith(const MEDCouplingMesh *other, double prec) const throw(INTERP_KERNEL::Exception); virtual void copyTinyStringsFrom(const MEDCouplingMesh *other) throw(INTERP_KERNEL::Exception); virtual void copyTinyInfoFrom(const MEDCouplingMesh *other) throw(INTERP_KERNEL::Exception); - virtual void checkCoherency() const throw(INTERP_KERNEL::Exception); - virtual void checkCoherency1(double eps=1e-12) const throw(INTERP_KERNEL::Exception); - virtual void checkCoherency2(double eps=1e-12) const throw(INTERP_KERNEL::Exception); + virtual void checkConsistencyLight() const throw(INTERP_KERNEL::Exception); + virtual void checkConsistency(double eps=1e-12) const throw(INTERP_KERNEL::Exception); virtual int getNumberOfCells() const throw(INTERP_KERNEL::Exception); virtual int getNumberOfNodes() const throw(INTERP_KERNEL::Exception); virtual int getSpaceDimension() const throw(INTERP_KERNEL::Exception); virtual int getMeshDimension() const throw(INTERP_KERNEL::Exception); virtual DataArrayDouble *getCoordinatesAndOwner() const throw(INTERP_KERNEL::Exception); - virtual DataArrayDouble *getBarycenterAndOwner() const throw(INTERP_KERNEL::Exception); + virtual DataArrayDouble *computeCellCenterOfMass() const throw(INTERP_KERNEL::Exception); virtual DataArrayDouble *computeIsoBarycenterOfNodesPerCell() const throw(INTERP_KERNEL::Exception); virtual DataArrayInt *giveCellsWithType(INTERP_KERNEL::NormalizedCellType type) const throw(INTERP_KERNEL::Exception); virtual DataArrayInt *computeNbOfNodesPerCell() const throw(INTERP_KERNEL::Exception); @@ -433,18 +632,21 @@ 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); virtual MEDCouplingFieldDouble *fillFromAnalytic(TypeOfField t, int nbOfComp, const std::string& func) const throw(INTERP_KERNEL::Exception); - virtual MEDCouplingFieldDouble *fillFromAnalytic2(TypeOfField t, int nbOfComp, const std::string& func) const throw(INTERP_KERNEL::Exception); - virtual MEDCouplingFieldDouble *fillFromAnalytic3(TypeOfField t, int nbOfComp, const std::vector& varsOrder, const std::string& func) const throw(INTERP_KERNEL::Exception); + virtual MEDCouplingFieldDouble *fillFromAnalyticCompo(TypeOfField t, int nbOfComp, const std::string& func) const throw(INTERP_KERNEL::Exception); + virtual MEDCouplingFieldDouble *fillFromAnalyticNamedCompo(TypeOfField t, int nbOfComp, const std::vector& varsOrder, const std::string& func) const throw(INTERP_KERNEL::Exception); virtual MEDCouplingFieldDouble *buildOrthogonalField() const throw(INTERP_KERNEL::Exception); virtual MEDCouplingUMesh *buildUnstructured() const throw(INTERP_KERNEL::Exception); virtual MEDCouplingMesh *mergeMyselfWith(const MEDCouplingMesh *other) const throw(INTERP_KERNEL::Exception); virtual bool areCompatibleForMerge(const MEDCouplingMesh *other) const throw(INTERP_KERNEL::Exception); virtual DataArrayInt *simplexize(int policy) throw(INTERP_KERNEL::Exception); + virtual void unserialization(const std::vector& tinyInfoD, const std::vector& tinyInfo, const DataArrayInt *a1, DataArrayDouble *a2, const std::vector& littleStrings) throw(INTERP_KERNEL::Exception); static MEDCouplingMesh *MergeMeshes(const MEDCouplingMesh *mesh1, const MEDCouplingMesh *mesh2) throw(INTERP_KERNEL::Exception); static bool IsStaticGeometricType(INTERP_KERNEL::NormalizedCellType type) throw(INTERP_KERNEL::Exception); static bool IsLinearGeometricType(INTERP_KERNEL::NormalizedCellType type) throw(INTERP_KERNEL::Exception); @@ -470,6 +672,15 @@ namespace ParaMEDMEM return res; } + DataArrayDouble *getDirectAccessOfCoordsArrIfInStructure() const throw(INTERP_KERNEL::Exception) + { + const DataArrayDouble *ret(self->getDirectAccessOfCoordsArrIfInStructure()); + DataArrayDouble *ret2(const_cast(ret)); + if(ret2) + ret2->incrRef(); + return ret2; + } + int getCellContainingPoint(PyObject *p, double eps) const throw(INTERP_KERNEL::Exception) { double val; @@ -493,20 +704,20 @@ namespace ParaMEDMEM int spaceDim=self->getSpaceDimension(); const char msg[]="Python wrap of MEDCouplingMesh::getCellsContainingPoint : "; const double *pos=convertObjToPossibleCpp5_Safe(p,sw,val,a,aa,bb,msg,nbOfPoints,spaceDim,true); - MEDCouplingAutoRefCountObjectPtr elts,eltsIndex; + MCAuto elts,eltsIndex; self->getCellsContainingPoints(pos,nbOfPoints,eps,elts,eltsIndex); PyObject *ret=PyTuple_New(2); - PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(elts.retn()),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); - PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(eltsIndex.retn()),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(elts.retn()),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(eltsIndex.retn()),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); return ret; } PyObject *getCellsContainingPoints(PyObject *p, double eps) const throw(INTERP_KERNEL::Exception) { - MEDCouplingAutoRefCountObjectPtr elts,eltsIndex; + MCAuto elts,eltsIndex; int spaceDim=self->getSpaceDimension(); void *da=0; - int res1=SWIG_ConvertPtr(p,&da,SWIGTYPE_p_ParaMEDMEM__DataArrayDouble, 0 | 0 ); + int res1=SWIG_ConvertPtr(p,&da,SWIGTYPE_p_MEDCoupling__DataArrayDouble, 0 | 0 ); if (!SWIG_IsOK(res1)) { int size; @@ -533,8 +744,8 @@ namespace ParaMEDMEM self->getCellsContainingPoints(da2->getConstPointer(),size,eps,elts,eltsIndex); } PyObject *ret=PyTuple_New(2); - PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(elts.retn()),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); - PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(eltsIndex.retn()),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(elts.retn()),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(eltsIndex.retn()),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); return ret; } @@ -553,17 +764,17 @@ namespace ParaMEDMEM DataArrayInt *ret=DataArrayInt::New(); ret->alloc((int)elts.size(),1); std::copy(elts.begin(),elts.end(),ret->getPointer()); - return SWIG_NewPointerObj(SWIG_as_voidptr(ret),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 ); + return SWIG_NewPointerObj(SWIG_as_voidptr(ret),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ); } virtual PyObject *getReverseNodalConnectivity() const throw(INTERP_KERNEL::Exception) { - MEDCouplingAutoRefCountObjectPtr d0=DataArrayInt::New(); - MEDCouplingAutoRefCountObjectPtr d1=DataArrayInt::New(); + MCAuto d0=DataArrayInt::New(); + MCAuto d1=DataArrayInt::New(); self->getReverseNodalConnectivity(d0,d1); PyObject *ret=PyTuple_New(2); - PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(d0.retn()),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); - PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(d1.retn()),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(d0.retn()),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(d1.retn()),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); return ret; } @@ -571,7 +782,7 @@ namespace ParaMEDMEM { int sw,sz(-1); int v0; std::vector v1; - const int *ids(convertObjToPossibleCpp1_Safe(li,sw,sz,v0,v1)); + const int *ids(convertIntStarLikePyObjToCppIntStar(li,sw,sz,v0,v1)); self->renumberCells(ids,check); } @@ -580,8 +791,8 @@ namespace ParaMEDMEM DataArrayInt *cellCor, *nodeCor; self->checkGeoEquivalWith(other,levOfCheck,prec,cellCor,nodeCor); PyObject *res = PyList_New(2); - PyList_SetItem(res,0,SWIG_NewPointerObj(SWIG_as_voidptr(cellCor),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, cellCor?SWIG_POINTER_OWN | 0:0 )); - PyList_SetItem(res,1,SWIG_NewPointerObj(SWIG_as_voidptr(nodeCor),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, nodeCor?SWIG_POINTER_OWN | 0:0 )); + PyList_SetItem(res,0,SWIG_NewPointerObj(SWIG_as_voidptr(cellCor),SWIGTYPE_p_MEDCoupling__DataArrayInt, cellCor?SWIG_POINTER_OWN | 0:0 )); + PyList_SetItem(res,1,SWIG_NewPointerObj(SWIG_as_voidptr(nodeCor),SWIGTYPE_p_MEDCoupling__DataArrayInt, nodeCor?SWIG_POINTER_OWN | 0:0 )); return res; } @@ -590,8 +801,8 @@ namespace ParaMEDMEM DataArrayInt *cellCor=0,*nodeCor=0; self->checkDeepEquivalWith(other,cellCompPol,prec,cellCor,nodeCor); PyObject *res = PyList_New(2); - PyList_SetItem(res,0,SWIG_NewPointerObj(SWIG_as_voidptr(cellCor),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, cellCor?SWIG_POINTER_OWN | 0:0 )); - PyList_SetItem(res,1,SWIG_NewPointerObj(SWIG_as_voidptr(nodeCor),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, nodeCor?SWIG_POINTER_OWN | 0:0 )); + PyList_SetItem(res,0,SWIG_NewPointerObj(SWIG_as_voidptr(cellCor),SWIGTYPE_p_MEDCoupling__DataArrayInt, cellCor?SWIG_POINTER_OWN | 0:0 )); + PyList_SetItem(res,1,SWIG_NewPointerObj(SWIG_as_voidptr(nodeCor),SWIGTYPE_p_MEDCoupling__DataArrayInt, nodeCor?SWIG_POINTER_OWN | 0:0 )); return res; } @@ -605,7 +816,7 @@ namespace ParaMEDMEM DataArrayInt *getCellIdsFullyIncludedInNodeIds(PyObject *li) const throw(INTERP_KERNEL::Exception) { void *da=0; - int res1=SWIG_ConvertPtr(li,&da,SWIGTYPE_p_ParaMEDMEM__DataArrayInt, 0 | 0 ); + int res1=SWIG_ConvertPtr(li,&da,SWIGTYPE_p_MEDCoupling__DataArrayInt, 0 | 0 ); if (!SWIG_IsOK(res1)) { int size; @@ -653,7 +864,7 @@ namespace ParaMEDMEM int spaceDim=self->getSpaceDimension(); INTERP_KERNEL::AutoPtr tmp=new double[2*spaceDim]; self->getBoundingBox(tmp); - PyObject *ret=convertDblArrToPyListOfTuple(tmp,2,spaceDim); + PyObject *ret=convertDblArrToPyListOfTuple(tmp,2,spaceDim); return ret; } @@ -673,12 +884,12 @@ namespace ParaMEDMEM { int szArr,sw,iTypppArr; std::vector stdvecTyyppArr; - const int *tmp=convertObjToPossibleCpp1_Safe(li,sw,szArr,iTypppArr,stdvecTyyppArr); + const int *tmp=convertIntStarLikePyObjToCppIntStar(li,sw,szArr,iTypppArr,stdvecTyyppArr); MEDCouplingMesh *ret=self->buildPart(tmp,tmp+szArr); if(sw==3)//DataArrayInt { - void *argp; SWIG_ConvertPtr(li,&argp,SWIGTYPE_p_ParaMEDMEM__DataArrayInt,0|0); - DataArrayInt *argpt=reinterpret_cast< ParaMEDMEM::DataArrayInt * >(argp); + void *argp; SWIG_ConvertPtr(li,&argp,SWIGTYPE_p_MEDCoupling__DataArrayInt,0|0); + DataArrayInt *argpt=reinterpret_cast< MEDCoupling::DataArrayInt * >(argp); std::string name=argpt->getName(); if(!name.empty()) ret->setName(name.c_str()); @@ -691,12 +902,12 @@ namespace ParaMEDMEM int szArr,sw,iTypppArr; std::vector stdvecTyyppArr; DataArrayInt *arr=0; - const int *tmp=convertObjToPossibleCpp1_Safe(li,sw,szArr,iTypppArr,stdvecTyyppArr); + const int *tmp=convertIntStarLikePyObjToCppIntStar(li,sw,szArr,iTypppArr,stdvecTyyppArr); MEDCouplingMesh *ret=self->buildPartAndReduceNodes(tmp,tmp+szArr,arr); if(sw==3)//DataArrayInt { - void *argp; SWIG_ConvertPtr(li,&argp,SWIGTYPE_p_ParaMEDMEM__DataArrayInt,0|0); - DataArrayInt *argpt=reinterpret_cast< ParaMEDMEM::DataArrayInt * >(argp); + void *argp; SWIG_ConvertPtr(li,&argp,SWIGTYPE_p_MEDCoupling__DataArrayInt,0|0); + DataArrayInt *argpt=reinterpret_cast< MEDCoupling::DataArrayInt * >(argp); std::string name=argpt->getName(); if(!name.empty()) ret->setName(name.c_str()); @@ -704,7 +915,7 @@ namespace ParaMEDMEM // PyObject *res = PyList_New(2); PyObject *obj0=convertMesh(ret, SWIG_POINTER_OWN | 0 ); - PyObject *obj1=SWIG_NewPointerObj(SWIG_as_voidptr(arr),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 ); + PyObject *obj1=SWIG_NewPointerObj(SWIG_as_voidptr(arr),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ); PyList_SetItem(res,0,obj0); PyList_SetItem(res,1,obj1); return res; @@ -719,7 +930,7 @@ namespace ParaMEDMEM PyObject *obj0=convertMesh(ret, SWIG_POINTER_OWN | 0 ); PyObject *obj1=0; if(arr) - obj1=SWIG_NewPointerObj(SWIG_as_voidptr(arr),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 ); + obj1=SWIG_NewPointerObj(SWIG_as_voidptr(arr),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ); else obj1=PySlice_New(PyInt_FromLong(a),PyInt_FromLong(b),PyInt_FromLong(b)); PyTuple_SetItem(res,0,obj0); @@ -748,17 +959,17 @@ namespace ParaMEDMEM { std::vector code; std::vector idsPerType; - convertFromPyObjVectorOfObj(li2,SWIGTYPE_p_ParaMEDMEM__DataArrayInt,"DataArrayInt",idsPerType); + convertFromPyObjVectorOfObj(li2,SWIGTYPE_p_MEDCoupling__DataArrayInt,"DataArrayInt",idsPerType); convertPyToNewIntArr4(li,1,3,code); return self->checkTypeConsistencyAndContig(code,idsPerType); } - PyObject *splitProfilePerType(const DataArrayInt *profile) const throw(INTERP_KERNEL::Exception) + PyObject *splitProfilePerType(const DataArrayInt *profile, bool smartPflKiller=true) const throw(INTERP_KERNEL::Exception) { std::vector code; std::vector idsInPflPerType; std::vector idsPerType; - self->splitProfilePerType(profile,code,idsInPflPerType,idsPerType); + self->splitProfilePerType(profile,code,idsInPflPerType,idsPerType,smartPflKiller); PyObject *ret=PyTuple_New(3); // if(code.size()%3!=0) @@ -776,12 +987,12 @@ namespace ParaMEDMEM // PyObject *ret1=PyList_New(idsInPflPerType.size()); for(std::size_t j=0;j a0; + std::vector a1; + std::vector a2; + self->getTinySerializationInformation(a0,a1,a2); + PyObject *ret(PyTuple_New(3)); + PyTuple_SetItem(ret,0,convertDblArrToPyList2(a0)); + PyTuple_SetItem(ret,1,convertIntArrToPyList2(a1)); + int sz(a2.size()); + PyObject *ret2(PyList_New(sz)); + { + for(int i=0;iserialize(a0Tmp,a1Tmp); + PyObject *ret(PyTuple_New(2)); + PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(a0Tmp),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(a1Tmp),SWIGTYPE_p_MEDCoupling__DataArrayDouble, SWIG_POINTER_OWN | 0 )); + return ret; + } + + void resizeForUnserialization(const std::vector& tinyInfo, DataArrayInt *a1, DataArrayDouble *a2) const throw(INTERP_KERNEL::Exception) + { + std::vector littleStrings; + self->resizeForUnserialization(tinyInfo,a1,a2,littleStrings); + } + + PyObject *__getstate__() const throw(INTERP_KERNEL::Exception) + { + PyObject *ret0(MEDCoupling_MEDCouplingMesh_getTinySerializationInformation(self)); + PyObject *ret1(MEDCoupling_MEDCouplingMesh_serialize(self)); + PyObject *ret(PyTuple_New(2)); + PyTuple_SetItem(ret,0,ret0); + PyTuple_SetItem(ret,1,ret1); + return ret; + } + + void __setstate__(PyObject *inp) throw(INTERP_KERNEL::Exception) + { + static const char MSG[]="MEDCouplingMesh.__setstate__ : expected input is a tuple of size 2 !"; + if(!PyTuple_Check(inp)) + throw INTERP_KERNEL::Exception(MSG); + int sz(PyTuple_Size(inp)); + if(sz!=2) + throw INTERP_KERNEL::Exception(MSG); + PyObject *elt0(PyTuple_GetItem(inp,0)); + PyObject *elt1(PyTuple_GetItem(inp,1)); + std::vector a0; + std::vector a1; + std::vector a2; + DataArrayInt *b0(0); + DataArrayDouble *b1(0); + { + if(!PyTuple_Check(elt0) && PyTuple_Size(elt0)!=3) + throw INTERP_KERNEL::Exception(MSG); + PyObject *a0py(PyTuple_GetItem(elt0,0)),*a1py(PyTuple_GetItem(elt0,1)),*a2py(PyTuple_GetItem(elt0,2)); + int tmp(-1); + fillArrayWithPyListDbl3(a0py,tmp,a0); + convertPyToNewIntArr3(a1py,a1); + fillStringVector(a2py,a2); + } + { + if(!PyTuple_Check(elt1) && PyTuple_Size(elt1)!=2) + throw INTERP_KERNEL::Exception(MSG); + PyObject *b0py(PyTuple_GetItem(elt1,0)),*b1py(PyTuple_GetItem(elt1,1)); + void *argp(0); + int status(SWIG_ConvertPtr(b0py,&argp,SWIGTYPE_p_MEDCoupling__DataArrayInt,0|0)); + if(!SWIG_IsOK(status)) + throw INTERP_KERNEL::Exception(MSG); + b0=reinterpret_cast(argp); + status=SWIG_ConvertPtr(b1py,&argp,SWIGTYPE_p_MEDCoupling__DataArrayDouble,0|0); + if(!SWIG_IsOK(status)) + throw INTERP_KERNEL::Exception(MSG); + b1=reinterpret_cast(argp); + } + // useless here to call resizeForUnserialization because arrays are well resized. + self->unserialization(a0,a1,b0,b1,a2); + } static MEDCouplingMesh *MergeMeshes(PyObject *li) throw(INTERP_KERNEL::Exception) { - std::vector tmp; - convertFromPyObjVectorOfObj(li,SWIGTYPE_p_ParaMEDMEM__MEDCouplingMesh,"MEDCouplingMesh",tmp); + std::vector tmp; + convertFromPyObjVectorOfObj(li,SWIGTYPE_p_MEDCoupling__MEDCouplingMesh,"MEDCouplingMesh",tmp); return MEDCouplingMesh::MergeMeshes(tmp); } } @@ -851,7 +1150,7 @@ namespace ParaMEDMEM %include "NormalizedGeometricTypes" %include "MEDCouplingNatureOfFieldEnum" // -namespace ParaMEDMEM +namespace MEDCoupling { class MEDCouplingNatureOfField { @@ -865,7 +1164,7 @@ namespace ParaMEDMEM // the MEDCouplingTimeDiscretization classes are not swigged : in case the file can help // include "MEDCouplingTimeDiscretization.i" -namespace ParaMEDMEM +namespace MEDCoupling { class MEDCouplingGaussLocalization { @@ -879,7 +1178,7 @@ namespace ParaMEDMEM int getDimension() const throw(INTERP_KERNEL::Exception); int getNumberOfPtsInRefCell() const throw(INTERP_KERNEL::Exception); std::string getStringRepr() const throw(INTERP_KERNEL::Exception); - void checkCoherency() const throw(INTERP_KERNEL::Exception); + void checkConsistencyLight() const throw(INTERP_KERNEL::Exception); bool isEqual(const MEDCouplingGaussLocalization& other, double eps) const throw(INTERP_KERNEL::Exception); // const std::vector& getRefCoords() const throw(INTERP_KERNEL::Exception); @@ -896,6 +1195,148 @@ namespace ParaMEDMEM void setWeights(const std::vector& w) throw(INTERP_KERNEL::Exception); // static bool AreAlmostEqual(const std::vector& v1, const std::vector& v2, double eps); + // + %extend + { + DataArrayDouble *localizePtsInRefCooForEachCell(const DataArrayDouble *ptsInRefCoo, const MEDCouplingUMesh *mesh) const throw(INTERP_KERNEL::Exception) + { + MCAuto ret(self->localizePtsInRefCooForEachCell(ptsInRefCoo,mesh)); + return ret.retn(); + } + + MEDCouplingUMesh *buildRefCell() const throw(INTERP_KERNEL::Exception) + { + MCAuto ret(self->buildRefCell()); + return ret.retn(); + } + } + }; + + class MEDCouplingSkyLineArray + { + public: + static MEDCouplingSkyLineArray *BuildFromPolyhedronConn( const DataArrayInt* c, const DataArrayInt* cI ) throw(INTERP_KERNEL::Exception); + + void set( DataArrayInt* index, DataArrayInt* value ); + void set3( DataArrayInt* superIndex, DataArrayInt* index, DataArrayInt* value ); + + int getSuperNumberOf() const; + int getNumberOf() const; + int getLength() const; + + void deletePack(const int i, const int j) throw(INTERP_KERNEL::Exception); + + void deleteSimplePack(const int i) throw(INTERP_KERNEL::Exception); + void deleteSimplePacks(const DataArrayInt* idx) throw(INTERP_KERNEL::Exception); + + %extend + { + MEDCouplingSkyLineArray() throw(INTERP_KERNEL::Exception) + { + return MEDCouplingSkyLineArray::New(); + } + + MEDCouplingSkyLineArray( const std::vector& index, const std::vector& value) throw(INTERP_KERNEL::Exception) + { + return MEDCouplingSkyLineArray::New(index, value); + } + + MEDCouplingSkyLineArray( DataArrayInt* index, DataArrayInt* value ) throw(INTERP_KERNEL::Exception) + { + return MEDCouplingSkyLineArray::New(index, value); + } + + MEDCouplingSkyLineArray( const MEDCouplingSkyLineArray & other ) throw(INTERP_KERNEL::Exception) + { + return MEDCouplingSkyLineArray::New(other); + } + + std::string __str__() const throw(INTERP_KERNEL::Exception) + { + return self->simpleRepr(); + } + + DataArrayInt *getSuperIndexArray() const + { + DataArrayInt *ret(self->getSuperIndexArray()); + if(ret) + ret->incrRef(); + return ret; + } + + DataArrayInt *getIndexArray() const + { + DataArrayInt *ret(self->getIndexArray()); + if(ret) + ret->incrRef(); + return ret; + } + + DataArrayInt *getValuesArray() const + { + DataArrayInt *ret(self->getValuesArray()); + if(ret) + ret->incrRef(); + return ret; + } + + PyObject *getSimplePackSafe(int absolutePackId) const throw(INTERP_KERNEL::Exception) + { + std::vector ret; + self->getSimplePackSafe(absolutePackId,ret); + return convertIntArrToPyList2(ret); + } + + PyObject *findPackIds(PyObject *superPackIndices, PyObject *pack) const throw(INTERP_KERNEL::Exception) + { + std::vector vpack, vspIdx, out; + + convertPyToNewIntArr3(superPackIndices,vspIdx); + convertPyToNewIntArr3(pack,vpack); + + self->findPackIds(vspIdx, vpack.data(), vpack.data()+vpack.size(), out); + return convertIntArrToPyList2(out); + } + + void pushBackPack(const int i, PyObject *pack) throw(INTERP_KERNEL::Exception) + { + std::vector vpack; + convertPyToNewIntArr3(pack,vpack); + self->pushBackPack(i,vpack.data(), vpack.data()+vpack.size()); + } + + void replaceSimplePack(const int idx, PyObject *pack) throw(INTERP_KERNEL::Exception) + { + std::vector vpack; + convertPyToNewIntArr3(pack,vpack); + self->replaceSimplePack(idx, vpack.data(), vpack.data()+vpack.size()); + } + + void replaceSimplePacks(const DataArrayInt* idx, PyObject *listePacks) throw(INTERP_KERNEL::Exception) + { + std::vector packs; + convertFromPyObjVectorOfObj(listePacks,SWIGTYPE_p_MEDCoupling__DataArrayInt,"DataArrayInt",packs); + self->replaceSimplePacks(idx, packs); + } + + void replacePack(const int superIdx, const int idx, PyObject *pack) throw(INTERP_KERNEL::Exception) + { + std::vector vpack; + convertPyToNewIntArr3(pack,vpack); + self->replacePack(superIdx, idx, vpack.data(), vpack.data()+vpack.size()); + } + + PyObject *convertToPolyhedronConn() const throw(INTERP_KERNEL::Exception) + { + MCAuto d0=DataArrayInt::New(); + MCAuto d1=DataArrayInt::New(); + self->convertToPolyhedronConn(d0,d1); + PyObject *ret=PyTuple_New(2); + PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(d0.retn()),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(d1.retn()),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); + return ret; + } + } }; } @@ -903,9 +1344,9 @@ namespace ParaMEDMEM //== MEDCouplingPointSet -namespace ParaMEDMEM +namespace MEDCoupling { - class MEDCouplingPointSet : public ParaMEDMEM::MEDCouplingMesh + class MEDCouplingPointSet : public MEDCoupling::MEDCouplingMesh { public: void setCoords(const DataArrayDouble *coords) throw(INTERP_KERNEL::Exception); @@ -917,11 +1358,12 @@ namespace ParaMEDMEM void changeSpaceDimension(int newSpaceDim, double dftVal=0.) throw(INTERP_KERNEL::Exception); void tryToShareSameCoords(const MEDCouplingPointSet& other, double epsilon) throw(INTERP_KERNEL::Exception); virtual void shallowCopyConnectivityFrom(const MEDCouplingPointSet *other) throw(INTERP_KERNEL::Exception); - virtual MEDCouplingPointSet *buildPartOfMySelf2(int start, int end, int step) const throw(INTERP_KERNEL::Exception); + virtual MEDCouplingPointSet *buildPartOfMySelfSlice(int start, int end, int step) const throw(INTERP_KERNEL::Exception); virtual void tryToShareSameCoordsPermute(const MEDCouplingPointSet& other, double epsilon) throw(INTERP_KERNEL::Exception); static DataArrayDouble *MergeNodesArray(const MEDCouplingPointSet *m1, const MEDCouplingPointSet *m2) throw(INTERP_KERNEL::Exception); static MEDCouplingPointSet *BuildInstanceFromMeshType(MEDCouplingMeshType type) throw(INTERP_KERNEL::Exception); static DataArrayInt *ComputeNbOfInteractionsWithSrcCells(const MEDCouplingPointSet *srcMesh, const MEDCouplingPointSet *trgMesh, double eps) throw(INTERP_KERNEL::Exception); + virtual DataArrayInt *computeFetchedNodeIds() const throw(INTERP_KERNEL::Exception); virtual int getNumberOfNodesInCell(int cellId) const throw(INTERP_KERNEL::Exception); virtual MEDCouplingPointSet *buildBoundaryMesh(bool keepCoords) const throw(INTERP_KERNEL::Exception); virtual DataArrayInt *getCellsInBoundingBox(const INTERP_KERNEL::DirectedBoundingBox& bbox, double eps) throw(INTERP_KERNEL::Exception); @@ -931,8 +1373,12 @@ namespace ParaMEDMEM virtual MEDCouplingPointSet *mergeMyselfWithOnSameCoords(const MEDCouplingPointSet *other) const throw(INTERP_KERNEL::Exception); virtual void checkFullyDefined() const throw(INTERP_KERNEL::Exception); virtual bool isEmptyMesh(const std::vector& tinyInfo) const throw(INTERP_KERNEL::Exception); - virtual MEDCouplingPointSet *deepCpyConnectivityOnly() const throw(INTERP_KERNEL::Exception); + virtual MEDCouplingPointSet *deepCopyConnectivityOnly() const throw(INTERP_KERNEL::Exception); virtual DataArrayDouble *getBoundingBoxForBBTree(double arcDetEps=1e-12) const throw(INTERP_KERNEL::Exception); + virtual void renumberNodesWithOffsetInConn(int offset) throw(INTERP_KERNEL::Exception); + virtual bool areAllNodesFetched() const throw(INTERP_KERNEL::Exception); + virtual MEDCouplingFieldDouble *computeDiameterField() const throw(INTERP_KERNEL::Exception); + virtual void invertOrientationOfAllCells() throw(INTERP_KERNEL::Exception); %extend { std::string __str__() const throw(INTERP_KERNEL::Exception) @@ -945,7 +1391,7 @@ namespace ParaMEDMEM int newNbOfNodes; DataArrayInt *ret0=self->buildNewNumberingFromCommonNodesFormat(comm,commIndex,newNbOfNodes); PyObject *res = PyList_New(2); - PyList_SetItem(res,0,SWIG_NewPointerObj(SWIG_as_voidptr(ret0),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyList_SetItem(res,0,SWIG_NewPointerObj(SWIG_as_voidptr(ret0),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); PyList_SetItem(res,1,SWIG_From_int(newNbOfNodes)); return res; } @@ -955,8 +1401,8 @@ namespace ParaMEDMEM DataArrayInt *comm, *commIndex; self->findCommonNodes(prec,limitTupleId,comm,commIndex); PyObject *res = PyList_New(2); - PyList_SetItem(res,0,SWIG_NewPointerObj(SWIG_as_voidptr(comm),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); - PyList_SetItem(res,1,SWIG_NewPointerObj(SWIG_as_voidptr(commIndex),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyList_SetItem(res,0,SWIG_NewPointerObj(SWIG_as_voidptr(comm),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyList_SetItem(res,1,SWIG_NewPointerObj(SWIG_as_voidptr(commIndex),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); return res; } @@ -965,19 +1411,19 @@ namespace ParaMEDMEM DataArrayDouble *ret1=self->getCoords(); if (ret1) ret1->incrRef(); - return SWIG_NewPointerObj((void*)ret1,SWIGTYPE_p_ParaMEDMEM__DataArrayDouble,SWIG_POINTER_OWN | 0); + return SWIG_NewPointerObj((void*)ret1,SWIGTYPE_p_MEDCoupling__DataArrayDouble,SWIG_POINTER_OWN | 0); } PyObject *buildPartOfMySelf(PyObject *li, bool keepCoords=true) const throw(INTERP_KERNEL::Exception) { int szArr,sw,iTypppArr; std::vector stdvecTyyppArr; - const int *tmp=convertObjToPossibleCpp1_Safe(li,sw,szArr,iTypppArr,stdvecTyyppArr); + const int *tmp=convertIntStarLikePyObjToCppIntStar(li,sw,szArr,iTypppArr,stdvecTyyppArr); MEDCouplingPointSet *ret=self->buildPartOfMySelf(tmp,tmp+szArr,keepCoords); if(sw==3)//DataArrayInt { - void *argp; SWIG_ConvertPtr(li,&argp,SWIGTYPE_p_ParaMEDMEM__DataArrayInt,0|0); - DataArrayInt *argpt=reinterpret_cast< ParaMEDMEM::DataArrayInt * >(argp); + void *argp; SWIG_ConvertPtr(li,&argp,SWIGTYPE_p_MEDCoupling__DataArrayInt,0|0); + DataArrayInt *argpt=reinterpret_cast< MEDCoupling::DataArrayInt * >(argp); std::string name=argpt->getName(); if(!name.empty()) ret->setName(name.c_str()); @@ -989,12 +1435,12 @@ namespace ParaMEDMEM { int szArr,sw,iTypppArr; std::vector stdvecTyyppArr; - const int *tmp=convertObjToPossibleCpp1_Safe(li,sw,szArr,iTypppArr,stdvecTyyppArr); + const int *tmp=convertIntStarLikePyObjToCppIntStar(li,sw,szArr,iTypppArr,stdvecTyyppArr); MEDCouplingPointSet *ret=self->buildPartOfMySelfNode(tmp,tmp+szArr,fullyIn); if(sw==3)//DataArrayInt { - void *argp; SWIG_ConvertPtr(li,&argp,SWIGTYPE_p_ParaMEDMEM__DataArrayInt,0|0); - DataArrayInt *argpt=reinterpret_cast< ParaMEDMEM::DataArrayInt * >(argp); + void *argp; SWIG_ConvertPtr(li,&argp,SWIGTYPE_p_MEDCoupling__DataArrayInt,0|0); + DataArrayInt *argpt=reinterpret_cast< MEDCoupling::DataArrayInt * >(argp); std::string name=argpt->getName(); if(!name.empty()) ret->setName(name.c_str()); @@ -1006,12 +1452,12 @@ namespace ParaMEDMEM { int szArr,sw,iTypppArr; std::vector stdvecTyyppArr; - const int *tmp=convertObjToPossibleCpp1_Safe(li,sw,szArr,iTypppArr,stdvecTyyppArr); + const int *tmp=convertIntStarLikePyObjToCppIntStar(li,sw,szArr,iTypppArr,stdvecTyyppArr); MEDCouplingPointSet *ret=self->buildPartOfMySelfKeepCoords(tmp,tmp+szArr); if(sw==3)//DataArrayInt { - void *argp; SWIG_ConvertPtr(li,&argp,SWIGTYPE_p_ParaMEDMEM__DataArrayInt,0|0); - DataArrayInt *argpt=reinterpret_cast< ParaMEDMEM::DataArrayInt * >(argp); + void *argp; SWIG_ConvertPtr(li,&argp,SWIGTYPE_p_MEDCoupling__DataArrayInt,0|0); + DataArrayInt *argpt=reinterpret_cast< MEDCoupling::DataArrayInt * >(argp); std::string name=argpt->getName(); if(!name.empty()) ret->setName(name.c_str()); @@ -1019,9 +1465,9 @@ namespace ParaMEDMEM return convertMesh(ret, SWIG_POINTER_OWN | 0 ); } - virtual PyObject *buildPartOfMySelfKeepCoords2(int start, int end, int step) const throw(INTERP_KERNEL::Exception) + virtual PyObject *buildPartOfMySelfKeepCoordsSlice(int start, int end, int step) const throw(INTERP_KERNEL::Exception) { - MEDCouplingPointSet *ret=self->buildPartOfMySelfKeepCoords2(start,end,step); + MEDCouplingPointSet *ret=self->buildPartOfMySelfKeepCoordsSlice(start,end,step); return convertMesh(ret, SWIG_POINTER_OWN | 0 ); } @@ -1029,12 +1475,12 @@ namespace ParaMEDMEM { int szArr,sw,iTypppArr; std::vector stdvecTyyppArr; - const int *tmp=convertObjToPossibleCpp1_Safe(li,sw,szArr,iTypppArr,stdvecTyyppArr); + const int *tmp=convertIntStarLikePyObjToCppIntStar(li,sw,szArr,iTypppArr,stdvecTyyppArr); MEDCouplingPointSet *ret=self->buildFacePartOfMySelfNode(tmp,tmp+szArr,fullyIn); if(sw==3)//DataArrayInt { - void *argp; SWIG_ConvertPtr(li,&argp,SWIGTYPE_p_ParaMEDMEM__DataArrayInt,0|0); - DataArrayInt *argpt=reinterpret_cast< ParaMEDMEM::DataArrayInt * >(argp); + void *argp; SWIG_ConvertPtr(li,&argp,SWIGTYPE_p_MEDCoupling__DataArrayInt,0|0); + DataArrayInt *argpt=reinterpret_cast< MEDCoupling::DataArrayInt * >(argp); std::string name=argpt->getName(); if(!name.empty()) ret->setName(name.c_str()); @@ -1046,16 +1492,16 @@ namespace ParaMEDMEM { int szArr,sw,iTypppArr; std::vector stdvecTyyppArr; - const int *tmp=convertObjToPossibleCpp1_Safe(li,sw,szArr,iTypppArr,stdvecTyyppArr); + const int *tmp=convertIntStarLikePyObjToCppIntStar(li,sw,szArr,iTypppArr,stdvecTyyppArr); self->renumberNodes(tmp,newNbOfNodes); } - void renumberNodes2(PyObject *li, int newNbOfNodes) throw(INTERP_KERNEL::Exception) + void renumberNodesCenter(PyObject *li, int newNbOfNodes) throw(INTERP_KERNEL::Exception) { int szArr,sw,iTypppArr; std::vector stdvecTyyppArr; - const int *tmp=convertObjToPossibleCpp1_Safe(li,sw,szArr,iTypppArr,stdvecTyyppArr); - self->renumberNodes2(tmp,newNbOfNodes); + const int *tmp=convertIntStarLikePyObjToCppIntStar(li,sw,szArr,iTypppArr,stdvecTyyppArr); + self->renumberNodesCenter(tmp,newNbOfNodes); } PyObject *findNodesOnLine(PyObject *pt, PyObject *vec, double eps) const throw(INTERP_KERNEL::Exception) @@ -1066,8 +1512,8 @@ namespace ParaMEDMEM DataArrayDoubleTuple *aa,*aa2; std::vector bb,bb2; int sw; - const char msg[]="Python wrap of MEDCouplingPointSet::findNodesOnLine : 1st paramater for point."; - const char msg2[]="Python wrap of MEDCouplingPointSet::findNodesOnLine : 2nd paramater for vector."; + const char msg[]="Python wrap of MEDCouplingPointSet::findNodesOnLine : 1st parameter for point."; + const char msg2[]="Python wrap of MEDCouplingPointSet::findNodesOnLine : 2nd parameter for vector."; const double *p=convertObjToPossibleCpp5_Safe(pt,sw,val,a,aa,bb,msg,1,spaceDim,true); const double *v=convertObjToPossibleCpp5_Safe(vec,sw,val2,a2,aa2,bb2,msg2,1,spaceDim,true); std::vector nodes; @@ -1075,7 +1521,7 @@ namespace ParaMEDMEM DataArrayInt *ret=DataArrayInt::New(); ret->alloc((int)nodes.size(),1); std::copy(nodes.begin(),nodes.end(),ret->getPointer()); - return SWIG_NewPointerObj(SWIG_as_voidptr(ret),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 ); + return SWIG_NewPointerObj(SWIG_as_voidptr(ret),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ); } PyObject *findNodesOnPlane(PyObject *pt, PyObject *vec, double eps) const throw(INTERP_KERNEL::Exception) { @@ -1085,8 +1531,8 @@ namespace ParaMEDMEM DataArrayDoubleTuple *aa,*aa2; std::vector bb,bb2; int sw; - const char msg[]="Python wrap of MEDCouplingPointSet::findNodesOnPlane : 1st paramater for point."; - const char msg2[]="Python wrap of MEDCouplingPointSet::findNodesOnPlane : 2nd paramater for vector."; + const char msg[]="Python wrap of MEDCouplingPointSet::findNodesOnPlane : 1st parameter for point."; + const char msg2[]="Python wrap of MEDCouplingPointSet::findNodesOnPlane : 2nd parameter for vector."; const double *p=convertObjToPossibleCpp5_Safe(pt,sw,val,a,aa,bb,msg,1,spaceDim,true); const double *v=convertObjToPossibleCpp5_Safe(vec,sw,val2,a2,aa2,bb2,msg2,1,spaceDim,true); std::vector nodes; @@ -1094,7 +1540,7 @@ namespace ParaMEDMEM DataArrayInt *ret=DataArrayInt::New(); ret->alloc((int)nodes.size(),1); std::copy(nodes.begin(),nodes.end(),ret->getPointer()); - return SWIG_NewPointerObj(SWIG_as_voidptr(ret),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 ); + return SWIG_NewPointerObj(SWIG_as_voidptr(ret),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ); } PyObject *getNodeIdsNearPoint(PyObject *pt, double eps) const throw(INTERP_KERNEL::Exception) @@ -1108,7 +1554,7 @@ namespace ParaMEDMEM const char msg[]="Python wrap of MEDCouplingPointSet::getNodeIdsNearPoint : "; const double *pos=convertObjToPossibleCpp5_Safe(pt,sw,val,a,aa,bb,msg,1,spaceDim,true); DataArrayInt *ret=self->getNodeIdsNearPoint(pos,eps); - return SWIG_NewPointerObj(SWIG_as_voidptr(ret),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 ); + return SWIG_NewPointerObj(SWIG_as_voidptr(ret),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ); } PyObject *getNodeIdsNearPoints(PyObject *pt, int nbOfPoints, double eps) const throw(INTERP_KERNEL::Exception) @@ -1125,8 +1571,8 @@ namespace ParaMEDMEM const double *pos=convertObjToPossibleCpp5_Safe(pt,sw,val,a,aa,bb,msg,nbOfPoints,spaceDim,true); self->getNodeIdsNearPoints(pos,nbOfPoints,eps,c,cI); PyObject *ret=PyTuple_New(2); - PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(c),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); - PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(cI),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(c),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(cI),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); return ret; } @@ -1144,8 +1590,8 @@ namespace ParaMEDMEM self->getNodeIdsNearPoints(ptPtr,nbOfTuples,eps,c,cI); // PyObject *ret=PyTuple_New(2); - PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(c),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); - PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(cI),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(c),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(cI),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); return ret; } @@ -1161,7 +1607,7 @@ namespace ParaMEDMEM const double *tmp=convertObjToPossibleCpp5_Safe(bbox,sw,val,a,aa,bb,msg,spaceDim,2,true); // DataArrayInt *elems=self->getCellsInBoundingBox(tmp,eps); - return SWIG_NewPointerObj(SWIG_as_voidptr(elems),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 ); + return SWIG_NewPointerObj(SWIG_as_voidptr(elems),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ); } void duplicateNodesInCoords(PyObject *li) throw(INTERP_KERNEL::Exception) @@ -1170,8 +1616,8 @@ namespace ParaMEDMEM int singleVal; std::vector multiVal; std::pair > slic; - ParaMEDMEM::DataArrayInt *daIntTyypp=0; - convertObjToPossibleCpp2(li,self->getNumberOfNodes(),sw,singleVal,multiVal,slic,daIntTyypp); + MEDCoupling::DataArrayInt *daIntTyypp=0; + convertIntStarOrSliceLikePyObjToCpp(li,self->getNumberOfNodes(),sw,singleVal,multiVal,slic,daIntTyypp); switch(sw) { case 1: @@ -1190,8 +1636,8 @@ namespace ParaMEDMEM DataArrayInt *v0=0,*v1=0; self->findCommonCells(compType,startCellId,v0,v1); PyObject *res = PyList_New(2); - PyList_SetItem(res,0,SWIG_NewPointerObj(SWIG_as_voidptr(v0),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); - PyList_SetItem(res,1,SWIG_NewPointerObj(SWIG_as_voidptr(v1),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyList_SetItem(res,0,SWIG_NewPointerObj(SWIG_as_voidptr(v0),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyList_SetItem(res,1,SWIG_NewPointerObj(SWIG_as_voidptr(v1),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); return res; } @@ -1199,7 +1645,7 @@ namespace ParaMEDMEM virtual void renumberNodesInConn(PyObject *li) throw(INTERP_KERNEL::Exception) { void *da=0; - int res1=SWIG_ConvertPtr(li,&da,SWIGTYPE_p_ParaMEDMEM__DataArrayInt, 0 | 0 ); + int res1=SWIG_ConvertPtr(li,&da,SWIGTYPE_p_MEDCoupling__DataArrayInt, 0 | 0 ); if (!SWIG_IsOK(res1)) { int size; @@ -1221,7 +1667,7 @@ namespace ParaMEDMEM int ret1=-1; DataArrayInt *ret0=self->getNodeIdsInUse(ret1); PyObject *ret=PyTuple_New(2); - PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(ret0),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(ret0),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); PyTuple_SetItem(ret,1,PyInt_FromLong(ret1)); return ret; } @@ -1232,7 +1678,7 @@ namespace ParaMEDMEM // int szArr,sw,iTypppArr; std::vector stdvecTyyppArr; - const int *tmp=convertObjToPossibleCpp1_Safe(li,sw,szArr,iTypppArr,stdvecTyyppArr); + const int *tmp=convertIntStarLikePyObjToCppIntStar(li,sw,szArr,iTypppArr,stdvecTyyppArr); self->fillCellIdsToKeepFromNodeIds(tmp,tmp+szArr,fullyIn,ret); return ret; } @@ -1243,19 +1689,19 @@ namespace ParaMEDMEM int ret2; DataArrayInt *ret0=self->mergeNodes(precision,ret1,ret2); PyObject *res = PyList_New(3); - PyList_SetItem(res,0,SWIG_NewPointerObj(SWIG_as_voidptr(ret0),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyList_SetItem(res,0,SWIG_NewPointerObj(SWIG_as_voidptr(ret0),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); PyList_SetItem(res,1,SWIG_From_bool(ret1)); PyList_SetItem(res,2,SWIG_From_int(ret2)); return res; } - virtual PyObject *mergeNodes2(double precision) throw(INTERP_KERNEL::Exception) + virtual PyObject *mergeNodesCenter(double precision) throw(INTERP_KERNEL::Exception) { bool ret1; int ret2; - DataArrayInt *ret0=self->mergeNodes2(precision,ret1,ret2); + DataArrayInt *ret0=self->mergeNodesCenter(precision,ret1,ret2); PyObject *res = PyList_New(3); - PyList_SetItem(res,0,SWIG_NewPointerObj(SWIG_as_voidptr(ret0),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyList_SetItem(res,0,SWIG_NewPointerObj(SWIG_as_voidptr(ret0),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); PyList_SetItem(res,1,SWIG_From_bool(ret1)); PyList_SetItem(res,2,SWIG_From_int(ret2)); return res; @@ -1264,7 +1710,7 @@ namespace ParaMEDMEM DataArrayInt *getCellIdsLyingOnNodes(PyObject *li, bool fullyIn) const throw(INTERP_KERNEL::Exception) { void *da=0; - int res1=SWIG_ConvertPtr(li,&da,SWIGTYPE_p_ParaMEDMEM__DataArrayInt, 0 | 0 ); + int res1=SWIG_ConvertPtr(li,&da,SWIGTYPE_p_MEDCoupling__DataArrayInt, 0 | 0 ); if (!SWIG_IsOK(res1)) { int size; @@ -1287,9 +1733,9 @@ namespace ParaMEDMEM int singleVal; std::vector multiVal; std::pair > slic; - ParaMEDMEM::DataArrayInt *daIntTyypp=0; + MEDCoupling::DataArrayInt *daIntTyypp=0; int nbc=self->getNumberOfCells(); - convertObjToPossibleCpp2(listOrDataArrI,nbc,sw,singleVal,multiVal,slic,daIntTyypp); + convertIntStarOrSliceLikePyObjToCpp(listOrDataArrI,nbc,sw,singleVal,multiVal,slic,daIntTyypp); switch(sw) { case 1: @@ -1323,7 +1769,7 @@ namespace ParaMEDMEM } case 3: { - return self->buildPartOfMySelf2(slic.first,slic.second.first,slic.second.second,true); + return self->buildPartOfMySelfSlice(slic.first,slic.second.first,slic.second.second,true); } case 4: { @@ -1342,7 +1788,7 @@ namespace ParaMEDMEM int sz; INTERP_KERNEL::AutoCPtr c=convertPyToNewDblArr2(center,&sz); INTERP_KERNEL::AutoCPtr coo=convertPyToNewDblArr2(coords,&sz); - ParaMEDMEM::MEDCouplingPointSet::Rotate2DAlg(c,angle,nbNodes,coo); + MEDCoupling::DataArrayDouble::Rotate2DAlg(c,angle,nbNodes,coo,coo); for(int i=0;i c=convertPyToNewDblArr2(center,&sz); int sw,nbNodes=0; - double val0; ParaMEDMEM::DataArrayDouble *val1=0; ParaMEDMEM::DataArrayDoubleTuple *val2=0; + double val0; MEDCoupling::DataArrayDouble *val1=0; MEDCoupling::DataArrayDoubleTuple *val2=0; std::vector val3; const double *coo=convertObjToPossibleCpp5_Safe2(coords,sw,val0,val1,val2,val3, "Rotate2DAlg",2,true,nbNodes); if(sw!=2 && sw!=3) throw INTERP_KERNEL::Exception("Invalid call to MEDCouplingPointSet::Rotate2DAlg : try another overload method !"); - ParaMEDMEM::MEDCouplingPointSet::Rotate2DAlg(c,angle,nbNodes,const_cast(coo)); + MEDCoupling::DataArrayDouble::Rotate2DAlg(c,angle,nbNodes,coo,const_cast(coo)); } static void Rotate3DAlg(PyObject *center, PyObject *vect, double angle, int nbNodes, PyObject *coords) throw(INTERP_KERNEL::Exception) @@ -1367,7 +1813,7 @@ namespace ParaMEDMEM INTERP_KERNEL::AutoCPtr c=convertPyToNewDblArr2(center,&sz); INTERP_KERNEL::AutoCPtr coo=convertPyToNewDblArr2(coords,&sz); INTERP_KERNEL::AutoCPtr v=convertPyToNewDblArr2(vect,&sz2); - ParaMEDMEM::MEDCouplingPointSet::Rotate3DAlg(c,v,angle,nbNodes,coo); + MEDCoupling::DataArrayDouble::Rotate3DAlg(c,v,angle,nbNodes,coo,coo); for(int i=0;i c=convertPyToNewDblArr2(center,&sz); int sw,nbNodes=0; - double val0; ParaMEDMEM::DataArrayDouble *val1=0; ParaMEDMEM::DataArrayDoubleTuple *val2=0; + double val0; MEDCoupling::DataArrayDouble *val1=0; MEDCoupling::DataArrayDoubleTuple *val2=0; std::vector val3; const double *coo=convertObjToPossibleCpp5_Safe2(coords,sw,val0,val1,val2,val3, "Rotate3DAlg",3,true,nbNodes); if(sw!=2 && sw!=3) throw INTERP_KERNEL::Exception("Invalid call to MEDCouplingPointSet::Rotate3DAlg : try another overload method !"); INTERP_KERNEL::AutoCPtr v=convertPyToNewDblArr2(vect,&sz2); - ParaMEDMEM::MEDCouplingPointSet::Rotate3DAlg(c,v,angle,nbNodes,const_cast(coo)); + MEDCoupling::DataArrayDouble::Rotate3DAlg(c,v,angle,nbNodes,coo,const_cast(coo)); } } }; @@ -1423,7 +1869,7 @@ namespace ParaMEDMEM { MEDCouplingUMeshCell *ret=self->nextt(); if(ret) - return SWIG_NewPointerObj(SWIG_as_voidptr(ret),SWIGTYPE_p_ParaMEDMEM__MEDCouplingUMeshCell,0|0); + return SWIG_NewPointerObj(SWIG_as_voidptr(ret),SWIGTYPE_p_MEDCoupling__MEDCouplingUMeshCell,0|0); else { PyErr_SetString(PyExc_StopIteration,"No more data."); @@ -1443,7 +1889,7 @@ namespace ParaMEDMEM { MEDCouplingUMeshCellEntry *ret=self->nextt(); if(ret) - return SWIG_NewPointerObj(SWIG_as_voidptr(ret),SWIGTYPE_p_ParaMEDMEM__MEDCouplingUMeshCellEntry,SWIG_POINTER_OWN | 0); + return SWIG_NewPointerObj(SWIG_as_voidptr(ret),SWIGTYPE_p_MEDCoupling__MEDCouplingUMeshCellEntry,SWIG_POINTER_OWN | 0); else { PyErr_SetString(PyExc_StopIteration,"No more data."); @@ -1482,25 +1928,27 @@ namespace ParaMEDMEM //== MEDCouplingUMesh - class MEDCouplingUMesh : public ParaMEDMEM::MEDCouplingPointSet + class MEDCouplingUMesh : public MEDCoupling::MEDCouplingPointSet { public: static MEDCouplingUMesh *New() throw(INTERP_KERNEL::Exception); static MEDCouplingUMesh *New(const char *meshName, int meshDim) throw(INTERP_KERNEL::Exception); - MEDCouplingUMesh *clone(bool recDeepCpy) const; - void checkCoherency() const throw(INTERP_KERNEL::Exception); + void checkConsistencyLight() const throw(INTERP_KERNEL::Exception); void setMeshDimension(int meshDim) throw(INTERP_KERNEL::Exception); void allocateCells(int nbOfCells=0) throw(INTERP_KERNEL::Exception); void finishInsertingCells() throw(INTERP_KERNEL::Exception); MEDCouplingUMeshCellByTypeEntry *cellsByType() throw(INTERP_KERNEL::Exception); void setConnectivity(DataArrayInt *conn, DataArrayInt *connIndex, bool isComputingTypes=true) throw(INTERP_KERNEL::Exception); INTERP_KERNEL::NormalizedCellType getTypeOfCell(int cellId) const throw(INTERP_KERNEL::Exception); - void setPartOfMySelf2(int start, int end, int step, const MEDCouplingUMesh& otherOnSameCoordsThanThis) throw(INTERP_KERNEL::Exception); - int getMeshLength() const throw(INTERP_KERNEL::Exception); + void setPartOfMySelfSlice(int start, int end, int step, const MEDCouplingUMesh& otherOnSameCoordsThanThis) throw(INTERP_KERNEL::Exception); + int getNodalConnectivityArrayLen() const throw(INTERP_KERNEL::Exception); void computeTypes() throw(INTERP_KERNEL::Exception); std::string reprConnectivityOfThis() const throw(INTERP_KERNEL::Exception); MEDCouplingUMesh *buildSetInstanceFromThis(int spaceDim) const throw(INTERP_KERNEL::Exception); //tools + DataArrayInt *conformize2D(double eps) throw(INTERP_KERNEL::Exception); + DataArrayInt *conformize3D(double eps) throw(INTERP_KERNEL::Exception); + DataArrayInt *colinearize2D(double eps) throw(INTERP_KERNEL::Exception); void shiftNodeNumbersInConn(int delta) throw(INTERP_KERNEL::Exception); std::vector getQuadraticStatus() const throw(INTERP_KERNEL::Exception); DataArrayInt *findCellIdsOnBoundary() const throw(INTERP_KERNEL::Exception); @@ -1511,17 +1959,16 @@ namespace ParaMEDMEM DataArrayInt *sortCellsInMEDFileFrmt() throw(INTERP_KERNEL::Exception); DataArrayInt *getRenumArrForMEDFileFrmt() const throw(INTERP_KERNEL::Exception); DataArrayInt *convertCellArrayPerGeoType(const DataArrayInt *da) const throw(INTERP_KERNEL::Exception); - DataArrayInt *computeFetchedNodeIds() const throw(INTERP_KERNEL::Exception); MEDCouplingUMesh *buildDescendingConnectivity(DataArrayInt *desc, DataArrayInt *descIndx, DataArrayInt *revDesc, DataArrayInt *revDescIndx) const throw(INTERP_KERNEL::Exception); MEDCouplingUMesh *buildDescendingConnectivity2(DataArrayInt *desc, DataArrayInt *descIndx, DataArrayInt *revDesc, DataArrayInt *revDescIndx) const throw(INTERP_KERNEL::Exception); MEDCouplingUMesh *explode3DMeshTo1D(DataArrayInt *desc, DataArrayInt *descIndx, DataArrayInt *revDesc, DataArrayInt *revDescIndx) const throw(INTERP_KERNEL::Exception); + MEDCouplingUMesh *explodeMeshIntoMicroEdges(DataArrayInt *desc, DataArrayInt *descIndx, DataArrayInt *revDesc, DataArrayInt *revDescIndx) const throw(INTERP_KERNEL::Exception); void orientCorrectlyPolyhedrons() throw(INTERP_KERNEL::Exception); bool isPresenceOfQuadratic() const throw(INTERP_KERNEL::Exception); bool isFullyQuadratic() const throw(INTERP_KERNEL::Exception); MEDCouplingFieldDouble *buildDirectionVectorField() const throw(INTERP_KERNEL::Exception); bool isContiguous1D() const throw(INTERP_KERNEL::Exception); void tessellate2D(double eps) throw(INTERP_KERNEL::Exception); - void tessellate2DCurve(double eps) throw(INTERP_KERNEL::Exception); void convertQuadraticCellsToLinear() throw(INTERP_KERNEL::Exception); DataArrayInt *convertLinearCellsToQuadratic(int conversionType=0) throw(INTERP_KERNEL::Exception); void convertDegeneratedCells() throw(INTERP_KERNEL::Exception); @@ -1535,13 +1982,17 @@ namespace ParaMEDMEM std::string cppRepr() const throw(INTERP_KERNEL::Exception); DataArrayInt *findAndCorrectBadOriented3DExtrudedCells() throw(INTERP_KERNEL::Exception); DataArrayInt *findAndCorrectBadOriented3DCells() throw(INTERP_KERNEL::Exception); - ParaMEDMEM::MEDCoupling1GTUMesh *convertIntoSingleGeoTypeMesh() const throw(INTERP_KERNEL::Exception); + MEDCoupling::MEDCoupling1GTUMesh *convertIntoSingleGeoTypeMesh() const throw(INTERP_KERNEL::Exception); + MEDCouplingSkyLineArray *generateGraph() const throw(INTERP_KERNEL::Exception); DataArrayInt *convertNodalConnectivityToStaticGeoTypeMesh() const throw(INTERP_KERNEL::Exception); DataArrayInt *buildUnionOf2DMesh() const throw(INTERP_KERNEL::Exception); DataArrayInt *buildUnionOf3DMesh() const throw(INTERP_KERNEL::Exception); + DataArrayInt *orderConsecutiveCells1D() const throw(INTERP_KERNEL::Exception); DataArrayDouble *getBoundingBoxForBBTreeFast() const throw(INTERP_KERNEL::Exception); DataArrayDouble *getBoundingBoxForBBTree2DQuadratic(double arcDetEps=1e-12) const throw(INTERP_KERNEL::Exception); DataArrayDouble *getBoundingBoxForBBTree1DQuadratic(double arcDetEps=1e-12) const throw(INTERP_KERNEL::Exception); + void changeOrientationOfCells() throw(INTERP_KERNEL::Exception); + int split2DCells(const DataArrayInt *desc, const DataArrayInt *descI, const DataArrayInt *subNodesInSeg, const DataArrayInt *subNodesInSegI, const DataArrayInt *midOpt=0, const DataArrayInt *midOptI=0) throw(INTERP_KERNEL::Exception); static MEDCouplingUMesh *Build0DMeshFromCoords(DataArrayDouble *da) throw(INTERP_KERNEL::Exception); static MEDCouplingUMesh *MergeUMeshes(const MEDCouplingUMesh *mesh1, const MEDCouplingUMesh *mesh2) throw(INTERP_KERNEL::Exception); static MEDCouplingUMesh *MergeUMeshesOnSameCoords(const MEDCouplingUMesh *mesh1, const MEDCouplingUMesh *mesh2) throw(INTERP_KERNEL::Exception); @@ -1557,7 +2008,7 @@ namespace ParaMEDMEM { return MEDCouplingUMesh::New(meshName,meshDim); } - + std::string __str__() const throw(INTERP_KERNEL::Exception) { return self->simpleRepr(); @@ -1575,6 +2026,12 @@ namespace ParaMEDMEM return self->cellIterator(); } + static MEDCouplingUMesh *Build1DMeshFromCoords(DataArrayDouble *da) throw(INTERP_KERNEL::Exception) + { + MCAuto ret(MEDCouplingUMesh::Build1DMeshFromCoords(da)); + return ret.retn(); + } + PyObject *getAllGeoTypesSorted() const throw(INTERP_KERNEL::Exception) { std::vector result=self->getAllGeoTypesSorted(); @@ -1591,9 +2048,9 @@ namespace ParaMEDMEM int singleVal; std::vector multiVal; std::pair > slic; - ParaMEDMEM::DataArrayInt *daIntTyypp=0; + MEDCoupling::DataArrayInt *daIntTyypp=0; int nbc=self->getNumberOfCells(); - convertObjToPossibleCpp2(li,nbc,sw,singleVal,multiVal,slic,daIntTyypp); + convertIntStarOrSliceLikePyObjToCpp(li,nbc,sw,singleVal,multiVal,slic,daIntTyypp); switch(sw) { case 1: @@ -1649,9 +2106,9 @@ namespace ParaMEDMEM int singleVal; std::vector multiVal; std::pair > slic; - ParaMEDMEM::DataArrayInt *daIntTyypp=0; + MEDCoupling::DataArrayInt *daIntTyypp=0; int nbc=self->getNumberOfCells(); - convertObjToPossibleCpp2(li,nbc,sw,singleVal,multiVal,slic,daIntTyypp); + convertIntStarOrSliceLikePyObjToCpp(li,nbc,sw,singleVal,multiVal,slic,daIntTyypp); switch(sw) { case 1: @@ -1690,7 +2147,7 @@ namespace ParaMEDMEM } case 3: { - self->setPartOfMySelf2(slic.first,slic.second.first,slic.second.second,otherOnSameCoordsThanThis); + self->setPartOfMySelfSlice(slic.first,slic.second.first,slic.second.second,otherOnSameCoordsThanThis); break; } case 4: @@ -1710,7 +2167,7 @@ namespace ParaMEDMEM { int szArr,sw,iTypppArr; std::vector stdvecTyyppArr; - const int *tmp=convertObjToPossibleCpp1_Safe(li,sw,szArr,iTypppArr,stdvecTyyppArr); + const int *tmp=convertIntStarLikePyObjToCppIntStar(li,sw,szArr,iTypppArr,stdvecTyyppArr); if(size>szArr) { std::ostringstream oss; oss << "Wrap of MEDCouplingUMesh::insertNextCell : request of connectivity with length " << size << " whereas the length of input is " << szArr << " !"; @@ -1723,7 +2180,7 @@ namespace ParaMEDMEM { int szArr,sw,iTypppArr; std::vector stdvecTyyppArr; - const int *tmp=convertObjToPossibleCpp1_Safe(li,sw,szArr,iTypppArr,stdvecTyyppArr); + const int *tmp=convertIntStarLikePyObjToCppIntStar(li,sw,szArr,iTypppArr,stdvecTyyppArr); self->insertNextCell(type,szArr,tmp); } @@ -1746,11 +2203,11 @@ namespace ParaMEDMEM { int szArr,sw,iTypppArr; std::vector stdvecTyyppArr; - const int *seedPtr=convertObjToPossibleCpp1_Safe(seed,sw,szArr,iTypppArr,stdvecTyyppArr); + const int *seedPtr=convertIntStarLikePyObjToCppIntStar(seed,sw,szArr,iTypppArr,stdvecTyyppArr); int nbOfDepthPeelingPerformed=0; DataArrayInt *ret0=MEDCouplingUMesh::ComputeSpreadZoneGraduallyFromSeed(seedPtr,seedPtr+szArr,arrIn,arrIndxIn,nbOfDepthPeeling,nbOfDepthPeelingPerformed); PyObject *res=PyTuple_New(2); - PyTuple_SetItem(res,0,SWIG_NewPointerObj(SWIG_as_voidptr(ret0),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(res,0,SWIG_NewPointerObj(SWIG_as_voidptr(ret0),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); PyTuple_SetItem(res,1,PyInt_FromLong(nbOfDepthPeelingPerformed)); return res; } @@ -1760,8 +2217,8 @@ namespace ParaMEDMEM DataArrayInt *v0=0,*v1=0; MEDCouplingUMesh::FindCommonCellsAlg(compType,startCellId,nodal,nodalI,revNodal,revNodalI,v0,v1); PyObject *res = PyList_New(2); - PyList_SetItem(res,0,SWIG_NewPointerObj(SWIG_as_voidptr(v0),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); - PyList_SetItem(res,1,SWIG_NewPointerObj(SWIG_as_voidptr(v1),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyList_SetItem(res,0,SWIG_NewPointerObj(SWIG_as_voidptr(v0),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyList_SetItem(res,1,SWIG_NewPointerObj(SWIG_as_voidptr(v1),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); return res; } @@ -1788,8 +2245,8 @@ namespace ParaMEDMEM DataArrayInt *ret1=0; DataArrayDouble *ret0=self->distanceToPoints(pts,ret1); PyObject *ret=PyTuple_New(2); - PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(ret0),SWIGTYPE_p_ParaMEDMEM__DataArrayDouble, SWIG_POINTER_OWN | 0 )); - PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(ret1),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(ret0),SWIGTYPE_p_MEDCoupling__DataArrayDouble, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(ret1),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); return ret; } @@ -1799,8 +2256,8 @@ namespace ParaMEDMEM DataArrayInt *ret1(0); MEDCoupling1SGTUMesh *ret0(self->tetrahedrize(policy,ret1,ret2)); PyObject *ret=PyTuple_New(3); - PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(ret0),SWIGTYPE_p_ParaMEDMEM__MEDCoupling1SGTUMesh, SWIG_POINTER_OWN | 0 )); - PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(ret1),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(ret0),SWIGTYPE_p_MEDCoupling__MEDCoupling1SGTUMesh, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(ret1),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); PyTuple_SetItem(ret,2,PyInt_FromLong(ret2)); return ret; } @@ -1812,7 +2269,7 @@ namespace ParaMEDMEM DataArrayInt *ret=DataArrayInt::New(); ret->alloc((int)cells.size(),1); std::copy(cells.begin(),cells.end(),ret->getPointer()); - return SWIG_NewPointerObj(SWIG_as_voidptr(ret),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 ); + return SWIG_NewPointerObj(SWIG_as_voidptr(ret),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ); } PyObject *splitByType() const throw(INTERP_KERNEL::Exception) @@ -1821,7 +2278,7 @@ namespace ParaMEDMEM int sz=ms.size(); PyObject *ret = PyList_New(sz); for(int i=0;i retCpp(MEDCouplingUMesh::PartitionBySpreadZone(arrIn,arrIndxIn)); + int sz=retCpp.size(); + PyObject *ret=PyList_New(sz); + for(int i=0;i tmp=convertPyToNewIntArr2(ids,&size); MEDCouplingUMesh *ret=self->keepSpecifiedCells(type,tmp,tmp+size); - return SWIG_NewPointerObj(SWIG_as_voidptr(ret),SWIGTYPE_p_ParaMEDMEM__MEDCouplingUMesh, SWIG_POINTER_OWN | 0 ); + return SWIG_NewPointerObj(SWIG_as_voidptr(ret),SWIGTYPE_p_MEDCoupling__MEDCouplingUMesh, SWIG_POINTER_OWN | 0 ); } bool checkConsecutiveCellTypesAndOrder(PyObject *li) const throw(INTERP_KERNEL::Exception) @@ -1864,9 +2331,9 @@ namespace ParaMEDMEM DataArrayInt *tmp0=0,*tmp1=0,*tmp2=0; self->findNodesToDuplicate(otherDimM1OnSameCoords,tmp0,tmp1,tmp2); PyObject *ret=PyTuple_New(3); - PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(tmp0),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); - PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(tmp1),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); - PyTuple_SetItem(ret,2,SWIG_NewPointerObj(SWIG_as_voidptr(tmp2),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(tmp0),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(tmp1),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,2,SWIG_NewPointerObj(SWIG_as_voidptr(tmp2),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); return ret; } @@ -1875,8 +2342,8 @@ namespace ParaMEDMEM DataArrayInt *tmp0=0,*tmp1=0; self->findCellIdsLyingOn(otherDimM1OnSameCoords,tmp0,tmp1); PyObject *ret=PyTuple_New(2); - PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(tmp0),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); - PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(tmp1),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(tmp0),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(tmp1),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); return ret; } @@ -1886,8 +2353,8 @@ namespace ParaMEDMEM int singleVal; std::vector multiVal; std::pair > slic; - ParaMEDMEM::DataArrayInt *daIntTyypp=0; - convertObjToPossibleCpp2(li,self->getNumberOfNodes(),sw,singleVal,multiVal,slic,daIntTyypp); + MEDCoupling::DataArrayInt *daIntTyypp=0; + convertIntStarOrSliceLikePyObjToCpp(li,self->getNumberOfNodes(),sw,singleVal,multiVal,slic,daIntTyypp); switch(sw) { case 1: @@ -1907,8 +2374,8 @@ namespace ParaMEDMEM int singleVal; std::vector multiVal; std::pair > slic; - ParaMEDMEM::DataArrayInt *daIntTyypp=0; - convertObjToPossibleCpp2(li,self->getNumberOfNodes(),sw,singleVal,multiVal,slic,daIntTyypp); + MEDCoupling::DataArrayInt *daIntTyypp=0; + convertIntStarOrSliceLikePyObjToCpp(li,self->getNumberOfNodes(),sw,singleVal,multiVal,slic,daIntTyypp); switch(sw) { case 1: @@ -1922,6 +2389,14 @@ namespace ParaMEDMEM } } + void attractSeg3MidPtsAroundNodes(double ratio, PyObject *nodeIds) throw(INTERP_KERNEL::Exception) + { + int szArr,sw,iTypppArr; + std::vector stdvecTyyppArr; + const int *nodeIdsPtr(convertIntStarLikePyObjToCppIntStar(nodeIds,sw,szArr,iTypppArr,stdvecTyyppArr)); + self->attractSeg3MidPtsAroundNodes(ratio,nodeIdsPtr,nodeIdsPtr+szArr); + } + PyObject *getLevArrPerCellTypes(PyObject *li) const throw(INTERP_KERNEL::Exception) { int sz; @@ -1929,8 +2404,8 @@ namespace ParaMEDMEM DataArrayInt *tmp0,*tmp1=0; tmp0=self->getLevArrPerCellTypes(order,(INTERP_KERNEL::NormalizedCellType *)order+sz,tmp1); PyObject *ret=PyTuple_New(2); - PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(tmp0),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); - PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(tmp1),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(tmp0),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(tmp1),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); return ret; } @@ -1939,28 +2414,28 @@ namespace ParaMEDMEM DataArrayInt *ret0=0,*ret1=0; self->convertNodalConnectivityToDynamicGeoTypeMesh(ret0,ret1); PyObject *ret=PyTuple_New(2); - PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(ret0),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); - PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(ret1),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(ret0),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(ret1),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); return ret; } static PyObject *AggregateSortedByTypeMeshesOnSameCoords(PyObject *ms) throw(INTERP_KERNEL::Exception) { - std::vector meshes; - convertFromPyObjVectorOfObj(ms,SWIGTYPE_p_ParaMEDMEM__MEDCouplingUMesh,"MEDCouplingUMesh",meshes); + std::vector meshes; + convertFromPyObjVectorOfObj(ms,SWIGTYPE_p_MEDCoupling__MEDCouplingUMesh,"MEDCouplingUMesh",meshes); DataArrayInt *ret1=0,*ret2=0; MEDCouplingUMesh *ret0=MEDCouplingUMesh::AggregateSortedByTypeMeshesOnSameCoords(meshes,ret1,ret2); PyObject *ret=PyTuple_New(3); - PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(ret0),SWIGTYPE_p_ParaMEDMEM__MEDCouplingUMesh, SWIG_POINTER_OWN | 0 )); - PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(ret1),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); - PyTuple_SetItem(ret,2,SWIG_NewPointerObj(SWIG_as_voidptr(ret2),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(ret0),SWIGTYPE_p_MEDCoupling__MEDCouplingUMesh, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(ret1),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,2,SWIG_NewPointerObj(SWIG_as_voidptr(ret2),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); return ret; } static PyObject *MergeUMeshesOnSameCoords(PyObject *ms) throw(INTERP_KERNEL::Exception) { - std::vector meshes; - convertFromPyObjVectorOfObj(ms,SWIGTYPE_p_ParaMEDMEM__MEDCouplingUMesh,"MEDCouplingUMesh",meshes); + std::vector meshes; + convertFromPyObjVectorOfObj(ms,SWIGTYPE_p_MEDCoupling__MEDCouplingUMesh,"MEDCouplingUMesh",meshes); MEDCouplingUMesh *ret=MEDCouplingUMesh::MergeUMeshesOnSameCoords(meshes); return convertMesh(ret, SWIG_POINTER_OWN | 0 ); } @@ -1969,15 +2444,15 @@ namespace ParaMEDMEM { int sz; std::vector meshes; - convertFromPyObjVectorOfObj(ms,SWIGTYPE_p_ParaMEDMEM__MEDCouplingUMesh,"MEDCouplingUMesh",meshes); + convertFromPyObjVectorOfObj(ms,SWIGTYPE_p_MEDCoupling__MEDCouplingUMesh,"MEDCouplingUMesh",meshes); std::vector corr; MEDCouplingUMesh *um=MEDCouplingUMesh::FuseUMeshesOnSameCoords(meshes,compType,corr); sz=corr.size(); PyObject *ret1=PyList_New(sz); for(int i=0;i meshes; - convertFromPyObjVectorOfObj(ms,SWIGTYPE_p_ParaMEDMEM__MEDCouplingUMesh,"MEDCouplingUMesh",meshes); + convertFromPyObjVectorOfObj(ms,SWIGTYPE_p_MEDCoupling__MEDCouplingUMesh,"MEDCouplingUMesh",meshes); MEDCouplingUMesh::PutUMeshesOnSameAggregatedCoords(meshes); } static void MergeNodesOnUMeshesSharingSameCoords(PyObject *ms, double eps) throw(INTERP_KERNEL::Exception) { std::vector meshes; - convertFromPyObjVectorOfObj(ms,SWIGTYPE_p_ParaMEDMEM__MEDCouplingUMesh,"MEDCouplingUMesh",meshes); + convertFromPyObjVectorOfObj(ms,SWIGTYPE_p_MEDCoupling__MEDCouplingUMesh,"MEDCouplingUMesh",meshes); MEDCouplingUMesh::MergeNodesOnUMeshesSharingSameCoords(meshes,eps); } @@ -2002,10 +2477,10 @@ namespace ParaMEDMEM int singleVal; std::vector multiVal; std::pair > slic; - ParaMEDMEM::DataArrayInt *daIntTyypp=0; + MEDCoupling::DataArrayInt *daIntTyypp=0; if(!arrIndx) throw INTERP_KERNEL::Exception("MEDCouplingUMesh::RemoveIdsFromIndexedArrays : null pointer as arrIndex !"); - convertObjToPossibleCpp2(li,arrIndx->getNumberOfTuples()-1,sw,singleVal,multiVal,slic,daIntTyypp); + convertIntStarOrSliceLikePyObjToCpp(li,arrIndx->getNumberOfTuples()-1,sw,singleVal,multiVal,slic,daIntTyypp); switch(sw) { case 1: @@ -2026,10 +2501,10 @@ namespace ParaMEDMEM int singleVal; std::vector multiVal; std::pair > slic; - ParaMEDMEM::DataArrayInt *daIntTyypp=0; + MEDCoupling::DataArrayInt *daIntTyypp=0; if(!arrIndxIn) throw INTERP_KERNEL::Exception("MEDCouplingUMesh::ExtractFromIndexedArrays : null pointer as arrIndxIn !"); - convertObjToPossibleCpp2(li,arrIndxIn->getNumberOfTuples()-1,sw,singleVal,multiVal,slic,daIntTyypp); + convertIntStarOrSliceLikePyObjToCpp(li,arrIndxIn->getNumberOfTuples()-1,sw,singleVal,multiVal,slic,daIntTyypp); switch(sw) { case 1: @@ -2051,39 +2526,37 @@ namespace ParaMEDMEM throw INTERP_KERNEL::Exception("MEDCouplingUMesh::ExtractFromIndexedArrays : unrecognized type entered, expected list of int, tuple of int or DataArrayInt !"); } PyObject *ret=PyTuple_New(2); - PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(arrOut),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); - PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(arrIndexOut),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(arrOut),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(arrIndexOut),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); return ret; } - static PyObject *ExtractFromIndexedArrays2(int strt, int stp, int step, const DataArrayInt *arrIn, const DataArrayInt *arrIndxIn) throw(INTERP_KERNEL::Exception) + static PyObject *ExtractFromIndexedArraysSlice(int strt, int stp, int step, const DataArrayInt *arrIn, const DataArrayInt *arrIndxIn) throw(INTERP_KERNEL::Exception) { DataArrayInt *arrOut=0,*arrIndexOut=0; - MEDCouplingUMesh::ExtractFromIndexedArrays2(strt,stp,step,arrIn,arrIndxIn,arrOut,arrIndexOut); + MEDCouplingUMesh::ExtractFromIndexedArraysSlice(strt,stp,step,arrIn,arrIndxIn,arrOut,arrIndexOut); PyObject *ret=PyTuple_New(2); - PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(arrOut),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); - PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(arrIndexOut),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(arrOut),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(arrIndexOut),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); return ret; } - static PyObject *ExtractFromIndexedArrays2(PyObject *slic, const DataArrayInt *arrIn, const DataArrayInt *arrIndxIn) throw(INTERP_KERNEL::Exception) + static PyObject *ExtractFromIndexedArraysSlice(PyObject *slic, const DataArrayInt *arrIn, const DataArrayInt *arrIndxIn) throw(INTERP_KERNEL::Exception) { if(!PySlice_Check(slic)) - throw INTERP_KERNEL::Exception("ExtractFromIndexedArrays2 (wrap) : the first param is not a pyslice !"); + throw INTERP_KERNEL::Exception("ExtractFromIndexedArraysSlice (wrap) : the first param is not a pyslice !"); Py_ssize_t strt=2,stp=2,step=2; - PySliceObject *sliC=reinterpret_cast(slic); if(!arrIndxIn) - throw INTERP_KERNEL::Exception("ExtractFromIndexedArrays2 (wrap) : last array is null !"); + throw INTERP_KERNEL::Exception("ExtractFromIndexedArraysSlice (wrap) : last array is null !"); arrIndxIn->checkAllocated(); if(arrIndxIn->getNumberOfComponents()!=1) - throw INTERP_KERNEL::Exception("ExtractFromIndexedArrays2 (wrap) : number of components of last argument must be equal to one !"); - if(PySlice_GetIndices(sliC,arrIndxIn->getNumberOfTuples(),&strt,&stp,&step)!=0) - throw INTERP_KERNEL::Exception("ExtractFromIndexedArrays2 (wrap) : Invalid slice regarding nb of elements !"); + throw INTERP_KERNEL::Exception("ExtractFromIndexedArraysSlice (wrap) : number of components of last argument must be equal to one !"); + GetIndicesOfSlice(slic,arrIndxIn->getNumberOfTuples(),&strt,&stp,&step,"ExtractFromIndexedArraysSlice (wrap) : Invalid slice regarding nb of elements !"); DataArrayInt *arrOut=0,*arrIndexOut=0; - MEDCouplingUMesh::ExtractFromIndexedArrays2(strt,stp,step,arrIn,arrIndxIn,arrOut,arrIndexOut); + MEDCouplingUMesh::ExtractFromIndexedArraysSlice(strt,stp,step,arrIn,arrIndxIn,arrOut,arrIndexOut); PyObject *ret=PyTuple_New(2); - PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(arrOut),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); - PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(arrIndexOut),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(arrOut),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(arrIndexOut),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); return ret; } @@ -2096,10 +2569,10 @@ namespace ParaMEDMEM int singleVal; std::vector multiVal; std::pair > slic; - ParaMEDMEM::DataArrayInt *daIntTyypp=0; + MEDCoupling::DataArrayInt *daIntTyypp=0; if(!arrIndxIn) throw INTERP_KERNEL::Exception("MEDCouplingUMesh::SetPartOfIndexedArrays : null pointer as arrIndex !"); - convertObjToPossibleCpp2(li,arrIndxIn->getNumberOfTuples()-1,sw,singleVal,multiVal,slic,daIntTyypp); + convertIntStarOrSliceLikePyObjToCpp(li,arrIndxIn->getNumberOfTuples()-1,sw,singleVal,multiVal,slic,daIntTyypp); switch(sw) { case 1: @@ -2121,8 +2594,8 @@ namespace ParaMEDMEM throw INTERP_KERNEL::Exception("MEDCouplingUMesh::SetPartOfIndexedArrays : unrecognized type entered, expected list of int, tuple of int or DataArrayInt !"); } PyObject *ret=PyTuple_New(2); - PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(arrOut),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); - PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(arrIndexOut),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(arrOut),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(arrIndexOut),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); return ret; } @@ -2133,10 +2606,10 @@ namespace ParaMEDMEM int singleVal; std::vector multiVal; std::pair > slic; - ParaMEDMEM::DataArrayInt *daIntTyypp=0; + MEDCoupling::DataArrayInt *daIntTyypp=0; if(!arrIndxIn) throw INTERP_KERNEL::Exception("MEDCouplingUMesh::SetPartOfIndexedArraysSameIdx : null pointer as arrIndex !"); - convertObjToPossibleCpp2(li,arrIndxIn->getNumberOfTuples()-1,sw,singleVal,multiVal,slic,daIntTyypp); + convertIntStarOrSliceLikePyObjToCpp(li,arrIndxIn->getNumberOfTuples()-1,sw,singleVal,multiVal,slic,daIntTyypp); switch(sw) { case 1: @@ -2175,7 +2648,7 @@ namespace ParaMEDMEM DataArrayInt *ret=DataArrayInt::New(); ret->alloc((int)cells.size(),1); std::copy(cells.begin(),cells.end(),ret->getPointer()); - return SWIG_NewPointerObj(SWIG_as_voidptr(ret),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 ); + return SWIG_NewPointerObj(SWIG_as_voidptr(ret),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ); } void orientCorrectly2DCells(PyObject *vec, bool polyOnly) throw(INTERP_KERNEL::Exception) @@ -2198,7 +2671,7 @@ namespace ParaMEDMEM DataArrayInt *ret=DataArrayInt::New(); ret->alloc((int)cells.size(),1); std::copy(cells.begin(),cells.end(),ret->getPointer()); - return SWIG_NewPointerObj(SWIG_as_voidptr(ret),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 ); + return SWIG_NewPointerObj(SWIG_as_voidptr(ret),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ); } PyObject *getFastAveragePlaneOfThis() const throw(INTERP_KERNEL::Exception) @@ -2209,13 +2682,13 @@ namespace ParaMEDMEM double vals[6]; std::copy(vec,vec+3,vals); std::copy(pos,pos+3,vals+3); - return convertDblArrToPyListOfTuple(vals,3,2); + return convertDblArrToPyListOfTuple(vals,3,2); } static MEDCouplingUMesh *MergeUMeshes(PyObject *li) throw(INTERP_KERNEL::Exception) { - std::vector tmp; - convertFromPyObjVectorOfObj(li,SWIGTYPE_p_ParaMEDMEM__MEDCouplingUMesh,"MEDCouplingUMesh",tmp); + std::vector tmp; + convertFromPyObjVectorOfObj(li,SWIGTYPE_p_MEDCoupling__MEDCouplingUMesh,"MEDCouplingUMesh",tmp); return MEDCouplingUMesh::MergeUMeshes(tmp); } @@ -2227,67 +2700,96 @@ namespace ParaMEDMEM PyObject *ret0Py=ret0?Py_True:Py_False; Py_XINCREF(ret0Py); PyTuple_SetItem(ret,0,ret0Py); - PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(ret1),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(ret1),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); return ret; } - PyObject *areCellsIncludedIn2(const MEDCouplingUMesh *other) const throw(INTERP_KERNEL::Exception) + PyObject *areCellsIncludedInPolicy7(const MEDCouplingUMesh *other) const throw(INTERP_KERNEL::Exception) { DataArrayInt *ret1; - bool ret0=self->areCellsIncludedIn2(other,ret1); + bool ret0=self->areCellsIncludedInPolicy7(other,ret1); PyObject *ret=PyTuple_New(2); PyObject *ret0Py=ret0?Py_True:Py_False; Py_XINCREF(ret0Py); PyTuple_SetItem(ret,0,ret0Py); - PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(ret1),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(ret1),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); return ret; } PyObject *explode3DMeshTo1D() const throw(INTERP_KERNEL::Exception) { - MEDCouplingAutoRefCountObjectPtr d0=DataArrayInt::New(); - MEDCouplingAutoRefCountObjectPtr d1=DataArrayInt::New(); - MEDCouplingAutoRefCountObjectPtr d2=DataArrayInt::New(); - MEDCouplingAutoRefCountObjectPtr d3=DataArrayInt::New(); + MCAuto d0=DataArrayInt::New(); + MCAuto d1=DataArrayInt::New(); + MCAuto d2=DataArrayInt::New(); + MCAuto d3=DataArrayInt::New(); MEDCouplingUMesh *m=self->explode3DMeshTo1D(d0,d1,d2,d3); PyObject *ret=PyTuple_New(5); - PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(m),SWIGTYPE_p_ParaMEDMEM__MEDCouplingUMesh, SWIG_POINTER_OWN | 0 )); - PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(d0.retn()),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); - PyTuple_SetItem(ret,2,SWIG_NewPointerObj(SWIG_as_voidptr(d1.retn()),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); - PyTuple_SetItem(ret,3,SWIG_NewPointerObj(SWIG_as_voidptr(d2.retn()),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); - PyTuple_SetItem(ret,4,SWIG_NewPointerObj(SWIG_as_voidptr(d3.retn()),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(m),SWIGTYPE_p_MEDCoupling__MEDCouplingUMesh, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(d0.retn()),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,2,SWIG_NewPointerObj(SWIG_as_voidptr(d1.retn()),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,3,SWIG_NewPointerObj(SWIG_as_voidptr(d2.retn()),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,4,SWIG_NewPointerObj(SWIG_as_voidptr(d3.retn()),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); + return ret; + } + + PyObject *explodeIntoEdges() const throw(INTERP_KERNEL::Exception) + { + MCAuto desc,descIndex,revDesc,revDescIndx; + MCAuto m(self->explodeIntoEdges(desc,descIndex,revDesc,revDescIndx)); + PyObject *ret=PyTuple_New(5); + PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(m.retn()),SWIGTYPE_p_MEDCoupling__MEDCouplingUMesh, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(desc.retn()),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,2,SWIG_NewPointerObj(SWIG_as_voidptr(descIndex.retn()),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,3,SWIG_NewPointerObj(SWIG_as_voidptr(revDesc.retn()),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,4,SWIG_NewPointerObj(SWIG_as_voidptr(revDescIndx.retn()),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); + return ret; + } + + PyObject *explodeMeshIntoMicroEdges() const throw(INTERP_KERNEL::Exception) + { + MCAuto d0=DataArrayInt::New(); + MCAuto d1=DataArrayInt::New(); + MCAuto d2=DataArrayInt::New(); + MCAuto d3=DataArrayInt::New(); + MEDCouplingUMesh *m=self->explodeMeshIntoMicroEdges(d0,d1,d2,d3); + PyObject *ret=PyTuple_New(5); + PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(m),SWIGTYPE_p_MEDCoupling__MEDCouplingUMesh, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(d0.retn()),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,2,SWIG_NewPointerObj(SWIG_as_voidptr(d1.retn()),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,3,SWIG_NewPointerObj(SWIG_as_voidptr(d2.retn()),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,4,SWIG_NewPointerObj(SWIG_as_voidptr(d3.retn()),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); return ret; } PyObject *buildDescendingConnectivity() const throw(INTERP_KERNEL::Exception) { - MEDCouplingAutoRefCountObjectPtr d0=DataArrayInt::New(); - MEDCouplingAutoRefCountObjectPtr d1=DataArrayInt::New(); - MEDCouplingAutoRefCountObjectPtr d2=DataArrayInt::New(); - MEDCouplingAutoRefCountObjectPtr d3=DataArrayInt::New(); + MCAuto d0=DataArrayInt::New(); + MCAuto d1=DataArrayInt::New(); + MCAuto d2=DataArrayInt::New(); + MCAuto d3=DataArrayInt::New(); MEDCouplingUMesh *m=self->buildDescendingConnectivity(d0,d1,d2,d3); PyObject *ret=PyTuple_New(5); - PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(m),SWIGTYPE_p_ParaMEDMEM__MEDCouplingUMesh, SWIG_POINTER_OWN | 0 )); - PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(d0.retn()),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); - PyTuple_SetItem(ret,2,SWIG_NewPointerObj(SWIG_as_voidptr(d1.retn()),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); - PyTuple_SetItem(ret,3,SWIG_NewPointerObj(SWIG_as_voidptr(d2.retn()),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); - PyTuple_SetItem(ret,4,SWIG_NewPointerObj(SWIG_as_voidptr(d3.retn()),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(m),SWIGTYPE_p_MEDCoupling__MEDCouplingUMesh, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(d0.retn()),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,2,SWIG_NewPointerObj(SWIG_as_voidptr(d1.retn()),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,3,SWIG_NewPointerObj(SWIG_as_voidptr(d2.retn()),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,4,SWIG_NewPointerObj(SWIG_as_voidptr(d3.retn()),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); return ret; } PyObject *buildDescendingConnectivity2() const throw(INTERP_KERNEL::Exception) { - MEDCouplingAutoRefCountObjectPtr d0=DataArrayInt::New(); - MEDCouplingAutoRefCountObjectPtr d1=DataArrayInt::New(); - MEDCouplingAutoRefCountObjectPtr d2=DataArrayInt::New(); - MEDCouplingAutoRefCountObjectPtr d3=DataArrayInt::New(); + MCAuto d0=DataArrayInt::New(); + MCAuto d1=DataArrayInt::New(); + MCAuto d2=DataArrayInt::New(); + MCAuto d3=DataArrayInt::New(); MEDCouplingUMesh *m=self->buildDescendingConnectivity2(d0,d1,d2,d3); PyObject *ret=PyTuple_New(5); - PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(m),SWIGTYPE_p_ParaMEDMEM__MEDCouplingUMesh, SWIG_POINTER_OWN | 0 )); - PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(d0.retn()),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); - PyTuple_SetItem(ret,2,SWIG_NewPointerObj(SWIG_as_voidptr(d1.retn()),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); - PyTuple_SetItem(ret,3,SWIG_NewPointerObj(SWIG_as_voidptr(d2.retn()),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); - PyTuple_SetItem(ret,4,SWIG_NewPointerObj(SWIG_as_voidptr(d3.retn()),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(m),SWIGTYPE_p_MEDCoupling__MEDCouplingUMesh, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(d0.retn()),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,2,SWIG_NewPointerObj(SWIG_as_voidptr(d1.retn()),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,3,SWIG_NewPointerObj(SWIG_as_voidptr(d2.retn()),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,4,SWIG_NewPointerObj(SWIG_as_voidptr(d3.retn()),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); return ret; } @@ -2296,35 +2798,65 @@ namespace ParaMEDMEM DataArrayInt *neighbors=0,*neighborsIdx=0; self->computeNeighborsOfCells(neighbors,neighborsIdx); PyObject *ret=PyTuple_New(2); - PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(neighbors),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); - PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(neighborsIdx),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(neighbors),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(neighborsIdx),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); + return ret; + } + + PyObject *computeNeighborsOfNodes() const throw(INTERP_KERNEL::Exception) + { + DataArrayInt *neighbors=0,*neighborsIdx=0; + self->computeNeighborsOfNodes(neighbors,neighborsIdx); + PyObject *ret=PyTuple_New(2); + PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(neighbors),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(neighborsIdx),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); return ret; } + PyObject *computeEnlargedNeighborsOfNodes() const throw(INTERP_KERNEL::Exception) + { + MCAuto neighbors,neighborsIdx; + self->computeEnlargedNeighborsOfNodes(neighbors,neighborsIdx); + PyObject *ret=PyTuple_New(2); + PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(neighbors.retn()),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(neighborsIdx.retn()),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); + return ret; + } + + PyObject *computeCellNeighborhoodFromNodesOne(const DataArrayInt *nodeNeigh, const DataArrayInt *nodeNeighI) const throw(INTERP_KERNEL::Exception) + { + MCAuto cellNeigh,cellNeighIndex; + self->computeCellNeighborhoodFromNodesOne(nodeNeigh,nodeNeighI,cellNeigh,cellNeighIndex); + PyObject *ret=PyTuple_New(2); + PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(cellNeigh.retn()),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(cellNeighIndex.retn()),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); + return ret; + } + static PyObject *ComputeNeighborsOfCellsAdv(const DataArrayInt *desc, const DataArrayInt *descI, const DataArrayInt *revDesc, const DataArrayInt *revDescI) throw(INTERP_KERNEL::Exception) { DataArrayInt *neighbors=0,*neighborsIdx=0; MEDCouplingUMesh::ComputeNeighborsOfCellsAdv(desc,descI,revDesc,revDescI,neighbors,neighborsIdx); PyObject *ret=PyTuple_New(2); - PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(neighbors),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); - PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(neighborsIdx),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(neighbors),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(neighborsIdx),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); return ret; } PyObject *emulateMEDMEMBDC(const MEDCouplingUMesh *nM1LevMesh) { - MEDCouplingAutoRefCountObjectPtr d0=DataArrayInt::New(); - MEDCouplingAutoRefCountObjectPtr d1=DataArrayInt::New(); + MCAuto d0=DataArrayInt::New(); + MCAuto d1=DataArrayInt::New(); DataArrayInt *d2,*d3,*d4,*dd5; MEDCouplingUMesh *mOut=self->emulateMEDMEMBDC(nM1LevMesh,d0,d1,d2,d3,d4,dd5); PyObject *ret=PyTuple_New(7); - PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(mOut),SWIGTYPE_p_ParaMEDMEM__MEDCouplingUMesh, SWIG_POINTER_OWN | 0 )); - PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(d0.retn()),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); - PyTuple_SetItem(ret,2,SWIG_NewPointerObj(SWIG_as_voidptr(d1.retn()),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); - PyTuple_SetItem(ret,3,SWIG_NewPointerObj(SWIG_as_voidptr(d2),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); - PyTuple_SetItem(ret,4,SWIG_NewPointerObj(SWIG_as_voidptr(d3),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); - PyTuple_SetItem(ret,5,SWIG_NewPointerObj(SWIG_as_voidptr(d4),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); - PyTuple_SetItem(ret,6,SWIG_NewPointerObj(SWIG_as_voidptr(dd5),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(mOut),SWIGTYPE_p_MEDCoupling__MEDCouplingUMesh, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(d0.retn()),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,2,SWIG_NewPointerObj(SWIG_as_voidptr(d1.retn()),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,3,SWIG_NewPointerObj(SWIG_as_voidptr(d2),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,4,SWIG_NewPointerObj(SWIG_as_voidptr(d3),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,5,SWIG_NewPointerObj(SWIG_as_voidptr(d4),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,6,SWIG_NewPointerObj(SWIG_as_voidptr(dd5),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); return ret; } @@ -2380,9 +2912,22 @@ namespace ParaMEDMEM DataArrayInt *cellNb1=0,*cellNb2=0; MEDCouplingUMesh *mret=MEDCouplingUMesh::Intersect2DMeshes(m1,m2,eps,cellNb1,cellNb2); PyObject *ret=PyTuple_New(3); - PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(mret),SWIGTYPE_p_ParaMEDMEM__MEDCouplingUMesh, SWIG_POINTER_OWN | 0 )); - PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(cellNb1),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); - PyTuple_SetItem(ret,2,SWIG_NewPointerObj(SWIG_as_voidptr(cellNb2),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(mret),SWIGTYPE_p_MEDCoupling__MEDCouplingUMesh, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(cellNb1),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,2,SWIG_NewPointerObj(SWIG_as_voidptr(cellNb2),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); + return ret; + } + + static PyObject *Intersect2DMeshWith1DLine(const MEDCouplingUMesh *mesh2D, const MEDCouplingUMesh *mesh1D, double eps) throw(INTERP_KERNEL::Exception) + { + MEDCouplingUMesh *splitMesh2D(0),*splitMesh1D(0); + DataArrayInt *cellIdInMesh2D(0),*cellIdInMesh1D(0); + MEDCouplingUMesh::Intersect2DMeshWith1DLine(mesh2D,mesh1D,eps,splitMesh2D,splitMesh1D,cellIdInMesh2D,cellIdInMesh1D); + PyObject *ret(PyTuple_New(4)); + PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(splitMesh2D),SWIGTYPE_p_MEDCoupling__MEDCouplingUMesh, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(splitMesh1D),SWIGTYPE_p_MEDCoupling__MEDCouplingUMesh, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,2,SWIG_NewPointerObj(SWIG_as_voidptr(cellIdInMesh2D),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,3,SWIG_NewPointerObj(SWIG_as_voidptr(cellIdInMesh1D),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); return ret; } @@ -2396,16 +2941,16 @@ namespace ParaMEDMEM DataArrayDoubleTuple *aa,*aa2; std::vector bb,bb2; int sw; - const char msg[]="Python wrap of MEDCouplingUMesh::buildSlice3D : 1st paramater for origin."; - const char msg2[]="Python wrap of MEDCouplingUMesh::buildSlice3D : 2nd paramater for vector."; + const char msg[]="Python wrap of MEDCouplingUMesh::buildSlice3D : 1st parameter for origin."; + const char msg2[]="Python wrap of MEDCouplingUMesh::buildSlice3D : 2nd parameter for vector."; const double *orig=convertObjToPossibleCpp5_Safe(origin,sw,val,a,aa,bb,msg,1,spaceDim,true); const double *vect=convertObjToPossibleCpp5_Safe(vec,sw,val2,a2,aa2,bb2,msg2,1,spaceDim,true); // DataArrayInt *cellIds=0; MEDCouplingUMesh *ret0=self->buildSlice3D(orig,vect,eps,cellIds); PyObject *ret=PyTuple_New(2); - PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(ret0),SWIGTYPE_p_ParaMEDMEM__MEDCouplingUMesh, SWIG_POINTER_OWN | 0 )); - PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(cellIds),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(ret0),SWIGTYPE_p_MEDCoupling__MEDCouplingUMesh, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(cellIds),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); return ret; } @@ -2419,19 +2964,34 @@ namespace ParaMEDMEM DataArrayDoubleTuple *aa,*aa2; std::vector bb,bb2; int sw; - const char msg[]="Python wrap of MEDCouplingUMesh::buildSlice3DSurf : 1st paramater for origin."; - const char msg2[]="Python wrap of MEDCouplingUMesh::buildSlice3DSurf : 2nd paramater for vector."; + const char msg[]="Python wrap of MEDCouplingUMesh::buildSlice3DSurf : 1st parameter for origin."; + const char msg2[]="Python wrap of MEDCouplingUMesh::buildSlice3DSurf : 2nd parameter for vector."; const double *orig=convertObjToPossibleCpp5_Safe(origin,sw,val,a,aa,bb,msg,1,spaceDim,true); const double *vect=convertObjToPossibleCpp5_Safe(vec,sw,val2,a2,aa2,bb2,msg2,1,spaceDim,true); // DataArrayInt *cellIds=0; MEDCouplingUMesh *ret0=self->buildSlice3DSurf(orig,vect,eps,cellIds); PyObject *ret=PyTuple_New(2); - PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(ret0),SWIGTYPE_p_ParaMEDMEM__MEDCouplingUMesh, SWIG_POINTER_OWN | 0 )); - PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(cellIds),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(ret0),SWIGTYPE_p_MEDCoupling__MEDCouplingUMesh, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(cellIds),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); return ret; } + MEDCouplingUMesh *clipSingle3DCellByPlane(PyObject *origin, PyObject *vec, double eps) const throw(INTERP_KERNEL::Exception) + { + double val,val2; + DataArrayDouble *a,*a2; + DataArrayDoubleTuple *aa,*aa2; + std::vector bb,bb2; + int sw; + const char msg[]="Python wrap of MEDCouplingUMesh::clipSingle3DCellByPlane : 1st parameter for origin."; + const char msg2[]="Python wrap of MEDCouplingUMesh::clipSingle3DCellByPlane : 2nd parameter for vector."; + const double *orig=convertObjToPossibleCpp5_Safe(origin,sw,val,a,aa,bb,msg,1,3,true); + const double *vect=convertObjToPossibleCpp5_Safe(vec,sw,val2,a2,aa2,bb2,msg2,1,3,true); + MCAuto ret(self->clipSingle3DCellByPlane(orig,vect,eps)); + return ret.retn(); + } + DataArrayInt *getCellIdsCrossingPlane(PyObject *origin, PyObject *vec, double eps) const throw(INTERP_KERNEL::Exception) { int spaceDim=self->getSpaceDimension(); @@ -2442,8 +3002,8 @@ namespace ParaMEDMEM DataArrayDoubleTuple *aa,*aa2; std::vector bb,bb2; int sw; - const char msg[]="Python wrap of MEDCouplingUMesh::getCellIdsCrossingPlane : 1st paramater for origin."; - const char msg2[]="Python wrap of MEDCouplingUMesh::getCellIdsCrossingPlane : 2nd paramater for vector."; + const char msg[]="Python wrap of MEDCouplingUMesh::getCellIdsCrossingPlane : 1st parameter for origin."; + const char msg2[]="Python wrap of MEDCouplingUMesh::getCellIdsCrossingPlane : 2nd parameter for vector."; const double *orig=convertObjToPossibleCpp5_Safe(origin,sw,val,a,aa,bb,msg,1,spaceDim,true); const double *vect=convertObjToPossibleCpp5_Safe(vec,sw,val2,a2,aa2,bb2,msg2,1,spaceDim,true); return self->getCellIdsCrossingPlane(orig,vect,eps); @@ -2456,7 +3016,7 @@ namespace ParaMEDMEM std::vector pos2; DataArrayInt *pos3=0; DataArrayIntTuple *pos4=0; - convertObjToPossibleCpp1(li,sw,pos1,pos2,pos3,pos4); + convertIntStarLikePyObjToCpp(li,sw,pos1,pos2,pos3,pos4); switch(sw) { case 1: @@ -2479,7 +3039,7 @@ namespace ParaMEDMEM default: throw INTERP_KERNEL::Exception("MEDCouplingUMesh::convertToPolyTypes : unexpected input array type recognized !"); } - } + } } void convertAllToPoly(); void convertExtrudedPolyhedra() throw(INTERP_KERNEL::Exception); @@ -2491,17 +3051,29 @@ namespace ParaMEDMEM //== MEDCouplingUMesh End - //== MEDCouplingExtrudedMesh + //== MEDCouplingMappedExtrudedMesh - class MEDCouplingExtrudedMesh : public ParaMEDMEM::MEDCouplingMesh + class MEDCouplingMappedExtrudedMesh : public MEDCoupling::MEDCouplingMesh { public: - static MEDCouplingExtrudedMesh *New(const MEDCouplingUMesh *mesh3D, const MEDCouplingUMesh *mesh2D, int cell2DId) throw(INTERP_KERNEL::Exception); + static MEDCouplingMappedExtrudedMesh *New(const MEDCouplingUMesh *mesh3D, const MEDCouplingUMesh *mesh2D, int cell2DId) throw(INTERP_KERNEL::Exception); + static MEDCouplingMappedExtrudedMesh *New(const MEDCouplingCMesh *mesh3D) throw(INTERP_KERNEL::Exception); MEDCouplingUMesh *build3DUnstructuredMesh() const throw(INTERP_KERNEL::Exception); + int get2DCellIdForExtrusion() const; %extend { - MEDCouplingExtrudedMesh(const MEDCouplingUMesh *mesh3D, const MEDCouplingUMesh *mesh2D, int cell2DId) throw(INTERP_KERNEL::Exception) + MEDCouplingMappedExtrudedMesh(const MEDCouplingUMesh *mesh3D, const MEDCouplingUMesh *mesh2D, int cell2DId) throw(INTERP_KERNEL::Exception) + { + return MEDCouplingMappedExtrudedMesh::New(mesh3D,mesh2D,cell2DId); + } + + MEDCouplingMappedExtrudedMesh(const MEDCouplingCMesh *mesh3D) throw(INTERP_KERNEL::Exception) + { + return MEDCouplingMappedExtrudedMesh::New(mesh3D); + } + + MEDCouplingMappedExtrudedMesh() { - return MEDCouplingExtrudedMesh::New(mesh3D,mesh2D,cell2DId); + return MEDCouplingMappedExtrudedMesh::New(); } std::string __str__() const throw(INTERP_KERNEL::Exception) @@ -2535,14 +3107,14 @@ namespace ParaMEDMEM DataArrayInt *ret=self->getMesh3DIds(); if(ret) ret->incrRef(); - return SWIG_NewPointerObj(SWIG_as_voidptr(ret),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 ); + return SWIG_NewPointerObj(SWIG_as_voidptr(ret),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ); } } }; - //== MEDCouplingExtrudedMesh End + //== MEDCouplingMappedExtrudedMesh End - class MEDCoupling1GTUMesh : public ParaMEDMEM::MEDCouplingPointSet + class MEDCoupling1GTUMesh : public MEDCoupling::MEDCouplingPointSet { public: static MEDCoupling1GTUMesh *New(const std::string& name, INTERP_KERNEL::NormalizedCellType type) throw(INTERP_KERNEL::Exception); @@ -2550,14 +3122,14 @@ namespace ParaMEDMEM INTERP_KERNEL::NormalizedCellType getCellModelEnum() const throw(INTERP_KERNEL::Exception); int getNodalConnectivityLength() const throw(INTERP_KERNEL::Exception); virtual void allocateCells(int nbOfCells=0) throw(INTERP_KERNEL::Exception); - virtual void checkCoherencyOfConnectivity() const throw(INTERP_KERNEL::Exception); + virtual void checkConsistencyOfConnectivity() const throw(INTERP_KERNEL::Exception); %extend { virtual void insertNextCell(PyObject *li) throw(INTERP_KERNEL::Exception) { int szArr,sw,iTypppArr; std::vector stdvecTyyppArr; - const int *tmp=convertObjToPossibleCpp1_Safe(li,sw,szArr,iTypppArr,stdvecTyyppArr); + const int *tmp=convertIntStarLikePyObjToCppIntStar(li,sw,szArr,iTypppArr,stdvecTyyppArr); self->insertNextCell(tmp,tmp+szArr); } @@ -2571,7 +3143,7 @@ namespace ParaMEDMEM static MEDCouplingUMesh *AggregateOnSameCoordsToUMesh(PyObject *li) throw(INTERP_KERNEL::Exception) { std::vector< const MEDCoupling1GTUMesh *> parts; - convertFromPyObjVectorOfObj(li,SWIGTYPE_p_ParaMEDMEM__MEDCoupling1GTUMesh,"MEDCoupling1GTUMesh",parts); + convertFromPyObjVectorOfObj(li,SWIGTYPE_p_MEDCoupling__MEDCoupling1GTUMesh,"MEDCoupling1GTUMesh",parts); return MEDCoupling1GTUMesh::AggregateOnSameCoordsToUMesh(parts); } } @@ -2579,7 +3151,7 @@ namespace ParaMEDMEM //== MEDCoupling1SGTUMesh - class MEDCoupling1SGTUMesh : public ParaMEDMEM::MEDCoupling1GTUMesh + class MEDCoupling1SGTUMesh : public MEDCoupling::MEDCoupling1GTUMesh { public: static MEDCoupling1SGTUMesh *New(const std::string& name, INTERP_KERNEL::NormalizedCellType type) throw(INTERP_KERNEL::Exception); @@ -2593,6 +3165,11 @@ namespace ParaMEDMEM DataArrayInt *sortHexa8EachOther() throw(INTERP_KERNEL::Exception); %extend { + MEDCoupling1SGTUMesh() + { + return MEDCoupling1SGTUMesh::New(); + } + MEDCoupling1SGTUMesh(const std::string& name, INTERP_KERNEL::NormalizedCellType type) throw(INTERP_KERNEL::Exception) { return MEDCoupling1SGTUMesh::New(name,type); @@ -2615,17 +3192,28 @@ namespace ParaMEDMEM return oss.str(); } + PyObject *structurizeMe(double eps=1e-12) const throw(INTERP_KERNEL::Exception) + { + DataArrayInt *cellPerm(0),*nodePerm(0); + MEDCouplingCMesh *retCpp(self->structurizeMe(cellPerm,nodePerm,eps)); + PyObject *ret(PyTuple_New(3)); + PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(retCpp),SWIGTYPE_p_MEDCoupling__MEDCouplingCMesh, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(cellPerm),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,2,SWIG_NewPointerObj(SWIG_as_voidptr(nodePerm),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); + return ret; + } + static MEDCoupling1SGTUMesh *Merge1SGTUMeshes(PyObject *li) throw(INTERP_KERNEL::Exception) { - std::vector tmp; - convertFromPyObjVectorOfObj(li,SWIGTYPE_p_ParaMEDMEM__MEDCoupling1SGTUMesh,"MEDCoupling1SGTUMesh",tmp); + std::vector tmp; + convertFromPyObjVectorOfObj(li,SWIGTYPE_p_MEDCoupling__MEDCoupling1SGTUMesh,"MEDCoupling1SGTUMesh",tmp); return MEDCoupling1SGTUMesh::Merge1SGTUMeshes(tmp); } static MEDCoupling1SGTUMesh *Merge1SGTUMeshesOnSameCoords(PyObject *li) throw(INTERP_KERNEL::Exception) { - std::vector tmp; - convertFromPyObjVectorOfObj(li,SWIGTYPE_p_ParaMEDMEM__MEDCoupling1SGTUMesh,"MEDCoupling1SGTUMesh",tmp); + std::vector tmp; + convertFromPyObjVectorOfObj(li,SWIGTYPE_p_MEDCoupling__MEDCoupling1SGTUMesh,"MEDCoupling1SGTUMesh",tmp); return MEDCoupling1SGTUMesh::Merge1SGTUMeshesOnSameCoords(tmp); } } @@ -2635,7 +3223,7 @@ namespace ParaMEDMEM //== MEDCoupling1DGTUMesh - class MEDCoupling1DGTUMesh : public ParaMEDMEM::MEDCoupling1GTUMesh + class MEDCoupling1DGTUMesh : public MEDCoupling::MEDCoupling1GTUMesh { public: static MEDCoupling1DGTUMesh *New(const std::string& name, INTERP_KERNEL::NormalizedCellType type) throw(INTERP_KERNEL::Exception); @@ -2645,6 +3233,10 @@ namespace ParaMEDMEM bool isPacked() const throw(INTERP_KERNEL::Exception); %extend { + MEDCoupling1DGTUMesh() + { + return MEDCoupling1DGTUMesh::New(); + } MEDCoupling1DGTUMesh(const std::string& name, INTERP_KERNEL::NormalizedCellType type) throw(INTERP_KERNEL::Exception) { return MEDCoupling1DGTUMesh::New(name,type); @@ -2682,8 +3274,8 @@ namespace ParaMEDMEM Py_XINCREF(ret0Py); PyObject *ret=PyTuple_New(3); PyTuple_SetItem(ret,0,ret0Py); - PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(ret1),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); - PyTuple_SetItem(ret,2,SWIG_NewPointerObj(SWIG_as_voidptr(ret2),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(ret1),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,2,SWIG_NewPointerObj(SWIG_as_voidptr(ret2),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); return ret; } @@ -2693,29 +3285,29 @@ namespace ParaMEDMEM MEDCoupling1DGTUMesh *ret0=self->copyWithNodalConnectivityPacked(ret1); PyObject *ret=PyTuple_New(2); PyObject *ret1Py=ret1?Py_True:Py_False; Py_XINCREF(ret1Py); - PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(ret0),SWIGTYPE_p_ParaMEDMEM__MEDCoupling1DGTUMesh, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(ret0),SWIGTYPE_p_MEDCoupling__MEDCoupling1DGTUMesh, SWIG_POINTER_OWN | 0 )); PyTuple_SetItem(ret,1,ret1Py); return ret; } static MEDCoupling1DGTUMesh *Merge1DGTUMeshes(PyObject *li) throw(INTERP_KERNEL::Exception) { - std::vector tmp; - convertFromPyObjVectorOfObj(li,SWIGTYPE_p_ParaMEDMEM__MEDCoupling1DGTUMesh,"MEDCoupling1DGTUMesh",tmp); + std::vector tmp; + convertFromPyObjVectorOfObj(li,SWIGTYPE_p_MEDCoupling__MEDCoupling1DGTUMesh,"MEDCoupling1DGTUMesh",tmp); return MEDCoupling1DGTUMesh::Merge1DGTUMeshes(tmp); } static MEDCoupling1DGTUMesh *Merge1DGTUMeshesOnSameCoords(PyObject *li) throw(INTERP_KERNEL::Exception) { - std::vector tmp; - convertFromPyObjVectorOfObj(li,SWIGTYPE_p_ParaMEDMEM__MEDCoupling1DGTUMesh,"MEDCoupling1DGTUMesh",tmp); + std::vector tmp; + convertFromPyObjVectorOfObj(li,SWIGTYPE_p_MEDCoupling__MEDCoupling1DGTUMesh,"MEDCoupling1DGTUMesh",tmp); return MEDCoupling1DGTUMesh::Merge1DGTUMeshesOnSameCoords(tmp); } static DataArrayInt *AggregateNodalConnAndShiftNodeIds(PyObject *li, const std::vector& offsetInNodeIdsPerElt) throw(INTERP_KERNEL::Exception) { - std::vector tmp; - convertFromPyObjVectorOfObj(li,SWIGTYPE_p_ParaMEDMEM__DataArrayInt,"DataArrayInt",tmp); + std::vector tmp; + convertFromPyObjVectorOfObj(li,SWIGTYPE_p_MEDCoupling__DataArrayInt,"DataArrayInt",tmp); return MEDCoupling1DGTUMesh::AggregateNodalConnAndShiftNodeIds(tmp,offsetInNodeIdsPerElt); } } @@ -2723,15 +3315,24 @@ namespace ParaMEDMEM //== MEDCoupling1DGTUMeshEnd - class MEDCouplingStructuredMesh : public ParaMEDMEM::MEDCouplingMesh + class MEDCouplingStructuredMesh : public MEDCoupling::MEDCouplingMesh { public: int getCellIdFromPos(int i, int j, int k) const throw(INTERP_KERNEL::Exception); 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); + std::vector getLocationFromCellId(int cellId) const throw(INTERP_KERNEL::Exception); + std::vector getLocationFromNodeId(int cellId) 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 { virtual MEDCouplingStructuredMesh *buildStructuredSubPart(PyObject *cellPart) const throw(INTERP_KERNEL::Exception) @@ -2760,88 +3361,233 @@ namespace ParaMEDMEM static DataArrayInt *BuildExplicitIdsFrom(PyObject *st, PyObject *part) throw(INTERP_KERNEL::Exception) { - int tmpp1=-1,tmpp2=-1; - std::vector tmp=fillArrayWithPyListInt2(part,tmpp1,tmpp2); std::vector< std::pair > inp; - if(tmpp2==2) - { - inp.resize(tmpp1); - for(int i=0;i stdvecTyyppArr; - const int *tmp4=convertObjToPossibleCpp1_Safe(st,sw,szArr,iTypppArr,stdvecTyyppArr); + const int *tmp4=convertIntStarLikePyObjToCppIntStar(st,sw,szArr,iTypppArr,stdvecTyyppArr); std::vector tmp5(tmp4,tmp4+szArr); // return MEDCouplingStructuredMesh::BuildExplicitIdsFrom(tmp5,inp); } - static DataArrayInt *Build1GTNodalConnectivity(PyObject *li) throw(INTERP_KERNEL::Exception) + static void MultiplyPartOf(const std::vector& st, PyObject *part, double factor, DataArrayDouble *da) throw(INTERP_KERNEL::Exception) { - int szArr,sw,iTypppArr; - std::vector stdvecTyyppArr; - const int *tmp=convertObjToPossibleCpp1_Safe(li,sw,szArr,iTypppArr,stdvecTyyppArr); - return MEDCouplingStructuredMesh::Build1GTNodalConnectivity(tmp,tmp+szArr); + std::vector< std::pair > inp; + convertPyToVectorPairInt(part,inp); + MEDCouplingStructuredMesh::MultiplyPartOf(st,inp,factor,da); } - static PyObject *IsPartStructured(PyObject *li, PyObject *st) throw(INTERP_KERNEL::Exception) + static void MultiplyPartOfByGhost(const std::vector& st, PyObject *part, int ghostSize, double factor, DataArrayDouble *da) throw(INTERP_KERNEL::Exception) { - int szArr,sw,iTypppArr; - std::vector stdvecTyyppArr; - const int *tmp=convertObjToPossibleCpp1_Safe(li,sw,szArr,iTypppArr,stdvecTyyppArr); - int szArr2,sw2,iTypppArr2; - std::vector stdvecTyyppArr2; - const int *tmp2=convertObjToPossibleCpp1_Safe(st,sw2,szArr2,iTypppArr2,stdvecTyyppArr2); - std::vector tmp3(tmp2,tmp2+szArr2); - std::vector< std::pair > partCompactFormat; - bool ret0=MEDCouplingStructuredMesh::IsPartStructured(tmp,tmp+szArr,tmp3,partCompactFormat); - PyObject *ret=PyTuple_New(2); - PyObject *ret0Py=ret0?Py_True:Py_False; Py_XINCREF(ret0Py); - PyTuple_SetItem(ret,0,ret0Py); - PyObject *ret1Py=PyList_New(partCompactFormat.size()); - for(std::size_t i=0;i > 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; + convertPyToVectorPairInt(partCompactFormat,inp); + return MEDCouplingStructuredMesh::ExtractFieldOfDoubleFrom(st,fieldOfDbl,inp); + } + + static void AssignPartOfFieldOfDoubleUsing(const std::vector& st, DataArrayDouble *fieldOfDbl, PyObject *partCompactFormat, const DataArrayDouble *other) throw(INTERP_KERNEL::Exception) + { + std::vector< std::pair > inp; + convertPyToVectorPairInt(partCompactFormat,inp); + MEDCouplingStructuredMesh::AssignPartOfFieldOfDoubleUsing(st,fieldOfDbl,inp,other); + } + + static int DeduceNumberOfGivenRangeInCompactFrmt(PyObject *part) throw(INTERP_KERNEL::Exception) + { + std::vector< std::pair > inp; + convertPyToVectorPairInt(part,inp); + return MEDCouplingStructuredMesh::DeduceNumberOfGivenRangeInCompactFrmt(inp); + } + + static DataArrayInt *Build1GTNodalConnectivity(PyObject *li) throw(INTERP_KERNEL::Exception) + { + int szArr,sw,iTypppArr; + std::vector stdvecTyyppArr; + const int *tmp=convertIntStarLikePyObjToCppIntStar(li,sw,szArr,iTypppArr,stdvecTyyppArr); + return MEDCouplingStructuredMesh::Build1GTNodalConnectivity(tmp,tmp+szArr); + } + + static DataArrayInt *Build1GTNodalConnectivityOfSubLevelMesh(PyObject *li) throw(INTERP_KERNEL::Exception) + { + int szArr,sw,iTypppArr; + std::vector stdvecTyyppArr; + const int *tmp(convertIntStarLikePyObjToCppIntStar(li,sw,szArr,iTypppArr,stdvecTyyppArr)); + return MEDCouplingStructuredMesh::Build1GTNodalConnectivityOfSubLevelMesh(tmp,tmp+szArr); + } + + static std::vector GetDimensionsFromCompactFrmt(PyObject *partCompactFormat) throw(INTERP_KERNEL::Exception) + { + std::vector< std::pair > inp; + convertPyToVectorPairInt(partCompactFormat,inp); + return MEDCouplingStructuredMesh::GetDimensionsFromCompactFrmt(inp); + } + + static PyObject *GetCompactFrmtFromDimensions(const std::vector& dims) throw(INTERP_KERNEL::Exception) + { + std::vector< std::pair > ret(MEDCouplingStructuredMesh::GetCompactFrmtFromDimensions(dims)); + PyObject *retPy=PyList_New(ret.size()); + for(std::size_t i=0;i > r1Cpp,r2Cpp; + convertPyToVectorPairInt(r1,r1Cpp); + convertPyToVectorPairInt(r2,r2Cpp); + std::vector< std::pair > ret(MEDCouplingStructuredMesh::IntersectRanges(r1Cpp,r2Cpp)); + PyObject *retPy=PyList_New(ret.size()); + for(std::size_t i=0;i > r1Cpp,r2Cpp; + convertPyToVectorPairInt(r1,r1Cpp); + convertPyToVectorPairInt(r2,r2Cpp); + return MEDCouplingStructuredMesh::AreRangesIntersect(r1Cpp,r2Cpp); + } + + static PyObject *IsPartStructured(PyObject *li, PyObject *st) throw(INTERP_KERNEL::Exception) + { + int szArr,sw,iTypppArr; + std::vector stdvecTyyppArr; + const int *tmp=convertIntStarLikePyObjToCppIntStar(li,sw,szArr,iTypppArr,stdvecTyyppArr); + int szArr2,sw2,iTypppArr2; + std::vector stdvecTyyppArr2; + const int *tmp2=convertIntStarLikePyObjToCppIntStar(st,sw2,szArr2,iTypppArr2,stdvecTyyppArr2); + std::vector tmp3(tmp2,tmp2+szArr2); + std::vector< std::pair > partCompactFormat; + bool ret0=MEDCouplingStructuredMesh::IsPartStructured(tmp,tmp+szArr,tmp3,partCompactFormat); + PyObject *ret=PyTuple_New(2); + PyObject *ret0Py=ret0?Py_True:Py_False; Py_XINCREF(ret0Py); + PyTuple_SetItem(ret,0,ret0Py); + PyObject *ret1Py=PyList_New(partCompactFormat.size()); + for(std::size_t i=0;i > param0,param1,ret; + convertPyToVectorPairInt(bigInAbs,param0); + convertPyToVectorPairInt(partOfBigInAbs,param1); + MEDCouplingStructuredMesh::ChangeReferenceFromGlobalOfCompactFrmt(param0,param1,ret,check); + PyObject *retPy(PyList_New(ret.size())); + for(std::size_t i=0;i& translation) throw(INTERP_KERNEL::Exception) + { + std::vector< std::pair > param0; + convertPyToVectorPairInt(part,param0); + std::vector< std::pair > ret(MEDCouplingStructuredMesh::TranslateCompactFrmt(param0,translation)); + PyObject *retPy(PyList_New(ret.size())); + for(std::size_t i=0;i FindTranslationFrom(PyObject *startingFrom, PyObject *goingTo) throw(INTERP_KERNEL::Exception) + { + std::vector< std::pair > param0,param1; + convertPyToVectorPairInt(startingFrom,param0); + convertPyToVectorPairInt(goingTo,param1); + return MEDCouplingStructuredMesh::FindTranslationFrom(param0,param1); + } + + static PyObject *ChangeReferenceToGlobalOfCompactFrmt(PyObject *bigInAbs, PyObject *partOfBigRelativeToBig, bool check=true) throw(INTERP_KERNEL::Exception) + { + std::vector< std::pair > param0,param1,ret; + convertPyToVectorPairInt(bigInAbs,param0); + convertPyToVectorPairInt(partOfBigRelativeToBig,param1); + MEDCouplingStructuredMesh::ChangeReferenceToGlobalOfCompactFrmt(param0,param1,ret,check); + PyObject *retPy(PyList_New(ret.size())); + for(std::size_t i=0;i stdvecTyyppArr; - const int *tmp=convertObjToPossibleCpp1_Safe(gridStruct,sw,szArr,iTypppArr,stdvecTyyppArr); + const int *tmp=convertIntStarLikePyObjToCppIntStar(gridStruct,sw,szArr,iTypppArr,stdvecTyyppArr); self->setNodeGridStructure(tmp,tmp+szArr); } } }; //== MEDCouplingCurveLinearMesh End + + //== MEDCouplingIMesh + + class MEDCouplingIMesh : public MEDCoupling::MEDCouplingStructuredMesh + { + public: + static MEDCouplingIMesh *New() throw(INTERP_KERNEL::Exception); + // + void setSpaceDimension(int spaceDim) throw(INTERP_KERNEL::Exception); + std::vector getNodeStruct() const throw(INTERP_KERNEL::Exception); + std::vector getOrigin() const throw(INTERP_KERNEL::Exception); + std::vector getDXYZ() const throw(INTERP_KERNEL::Exception); + void setAxisUnit(const std::string& unitName) throw(INTERP_KERNEL::Exception); + std::string getAxisUnit() const throw(INTERP_KERNEL::Exception); + double getMeasureOfAnyCell() const throw(INTERP_KERNEL::Exception); + MEDCouplingCMesh *convertToCartesian() const throw(INTERP_KERNEL::Exception); + void refineWithFactor(const std::vector& factors) throw(INTERP_KERNEL::Exception); + MEDCouplingIMesh *asSingleCell() const throw(INTERP_KERNEL::Exception); + MEDCouplingIMesh *buildWithGhost(int ghostLev) const throw(INTERP_KERNEL::Exception); + %extend + { + MEDCouplingIMesh() + { + return MEDCouplingIMesh::New(); + } + static MEDCouplingIMesh *New(const std::string& meshName, int spaceDim, PyObject *nodeStrct, PyObject *origin, PyObject *dxyz) throw(INTERP_KERNEL::Exception) + { + static const char msg0[]="MEDCouplingIMesh::New : error on 'origin' parameter !"; + static const char msg1[]="MEDCouplingIMesh::New : error on 'dxyz' parameter !"; + const int *nodeStrctPtr(0); + const double *originPtr(0),*dxyzPtr(0); + int sw,sz,val0; + std::vector bb0; + nodeStrctPtr=convertIntStarLikePyObjToCppIntStar(nodeStrct,sw,sz,val0,bb0); + // + double val,val2; + std::vector bb,bb2; + int sz1,sz2; + originPtr=convertObjToPossibleCpp5_SingleCompo(origin,sw,val,bb,msg0,false,sz1); + dxyzPtr=convertObjToPossibleCpp5_SingleCompo(dxyz,sw,val2,bb2,msg1,false,sz2); + // + return MEDCouplingIMesh::New(meshName,spaceDim,nodeStrctPtr,nodeStrctPtr+sz,originPtr,originPtr+sz1,dxyzPtr,dxyzPtr+sz2); + } + + MEDCouplingIMesh(const std::string& meshName, int spaceDim, PyObject *nodeStrct, PyObject *origin, PyObject *dxyz) throw(INTERP_KERNEL::Exception) + { + return MEDCoupling_MEDCouplingIMesh_New__SWIG_1(meshName,spaceDim,nodeStrct,origin,dxyz); + } + + void setNodeStruct(PyObject *nodeStrct) throw(INTERP_KERNEL::Exception) + { + int sw,sz,val0; + std::vector bb0; + const int *nodeStrctPtr(convertIntStarLikePyObjToCppIntStar(nodeStrct,sw,sz,val0,bb0)); + self->setNodeStruct(nodeStrctPtr,nodeStrctPtr+sz); + } + + void setOrigin(PyObject *origin) throw(INTERP_KERNEL::Exception) + { + static const char msg[]="MEDCouplingIMesh::setOrigin : invalid input 'origin' parameter ! integer, float, list/tuple of float, DataArrayDouble or DataArrayDoubleTuple supported !"; + double val; + DataArrayDouble *a; + DataArrayDoubleTuple *aa; + std::vector bb; + int sw,nbTuples; + const double *originPtr(convertObjToPossibleCpp5_SingleCompo(origin,sw,val,bb,msg,false,nbTuples)); + self->setOrigin(originPtr,originPtr+nbTuples); + } + + void setDXYZ(PyObject *dxyz) throw(INTERP_KERNEL::Exception) + { + static const char msg[]="MEDCouplingIMesh::setDXYZ : invalid input 'dxyz' parameter ! integer, float, list/tuple of float, DataArrayDouble or DataArrayDoubleTuple supported !"; + double val; + DataArrayDouble *a; + DataArrayDoubleTuple *aa; + std::vector bb; + int sw,nbTuples; + const double *originPtr(convertObjToPossibleCpp5_SingleCompo(dxyz,sw,val,bb,msg,false,nbTuples)); + self->setDXYZ(originPtr,originPtr+nbTuples); + } + + static void CondenseFineToCoarse(const std::vector& coarseSt, const DataArrayDouble *fineDA, PyObject *fineLocInCoarse, const std::vector& facts, DataArrayDouble *coarseDA) throw(INTERP_KERNEL::Exception) + { + std::vector< std::pair > inp; + convertPyToVectorPairInt(fineLocInCoarse,inp); + MEDCouplingIMesh::CondenseFineToCoarse(coarseSt,fineDA,inp,facts,coarseDA); + } + + static void CondenseFineToCoarseGhost(const std::vector& coarseSt, const DataArrayDouble *fineDA, PyObject *fineLocInCoarse, const std::vector& facts, DataArrayDouble *coarseDA, int ghostSize) throw(INTERP_KERNEL::Exception) + { + std::vector< std::pair > inp; + convertPyToVectorPairInt(fineLocInCoarse,inp); + MEDCouplingIMesh::CondenseFineToCoarseGhost(coarseSt,fineDA,inp,facts,coarseDA,ghostSize); + } + + static void SpreadCoarseToFine(const DataArrayDouble *coarseDA, const std::vector& coarseSt, DataArrayDouble *fineDA, PyObject *fineLocInCoarse, const std::vector& facts) throw(INTERP_KERNEL::Exception) + { + std::vector< std::pair > inp; + convertPyToVectorPairInt(fineLocInCoarse,inp); + MEDCouplingIMesh::SpreadCoarseToFine(coarseDA,coarseSt,fineDA,inp,facts); + } + + static void SpreadCoarseToFineGhost(const DataArrayDouble *coarseDA, const std::vector& coarseSt, DataArrayDouble *fineDA, PyObject *fineLocInCoarse, const std::vector& facts, int ghostSize) throw(INTERP_KERNEL::Exception) + { + std::vector< std::pair > inp; + convertPyToVectorPairInt(fineLocInCoarse,inp); + MEDCouplingIMesh::SpreadCoarseToFineGhost(coarseDA,coarseSt,fineDA,inp,facts,ghostSize); + } + + static void SpreadCoarseToFineGhostZone(const DataArrayDouble *coarseDA, const std::vector& coarseSt, DataArrayDouble *fineDA, PyObject *fineLocInCoarse, const std::vector& facts, int ghostSize) throw(INTERP_KERNEL::Exception) + { + std::vector< std::pair > inp; + convertPyToVectorPairInt(fineLocInCoarse,inp); + MEDCouplingIMesh::SpreadCoarseToFineGhostZone(coarseDA,coarseSt,fineDA,inp,facts,ghostSize); + } + + std::string __str__() const throw(INTERP_KERNEL::Exception) + { + return self->simpleRepr(); + } + std::string __repr__() const throw(INTERP_KERNEL::Exception) + { + std::ostringstream oss; + self->reprQuickOverview(oss); + return oss.str(); + } + } + }; + + //== MEDCouplingIMesh End + } -namespace ParaMEDMEM +namespace MEDCoupling { - class MEDCouplingField : public ParaMEDMEM::RefCountObject, public ParaMEDMEM::TimeLabel + class MEDCouplingField : public MEDCoupling::RefCountObject, public MEDCoupling::TimeLabel { public: - virtual void checkCoherency() const throw(INTERP_KERNEL::Exception); + virtual void checkConsistencyLight() const throw(INTERP_KERNEL::Exception); virtual bool areCompatibleForMerge(const MEDCouplingField *other) const throw(INTERP_KERNEL::Exception); - virtual bool isEqual(const MEDCouplingField *other, double meshPrec, double valsPrec) const throw(INTERP_KERNEL::Exception); - virtual bool isEqualWithoutConsideringStr(const MEDCouplingField *other, double meshPrec, double valsPrec) const throw(INTERP_KERNEL::Exception); virtual void copyTinyStringsFrom(const MEDCouplingField *other) throw(INTERP_KERNEL::Exception); - void setMesh(const ParaMEDMEM::MEDCouplingMesh *mesh) throw(INTERP_KERNEL::Exception); + void setMesh(const MEDCoupling::MEDCouplingMesh *mesh) throw(INTERP_KERNEL::Exception); void setName(const char *name) throw(INTERP_KERNEL::Exception); std::string getDescription() const throw(INTERP_KERNEL::Exception); void setDescription(const char *desc) throw(INTERP_KERNEL::Exception); @@ -2969,24 +3843,12 @@ namespace ParaMEDMEM return convertIntArrToPyList3(ret); } - PyObject *isEqualIfNotWhy(const MEDCouplingField *other, double meshPrec, double valsPrec) const throw(INTERP_KERNEL::Exception) - { - std::string ret1; - bool ret0=self->isEqualIfNotWhy(other,meshPrec,valsPrec,ret1); - PyObject *ret=PyTuple_New(2); - PyObject *ret0Py=ret0?Py_True:Py_False; - Py_XINCREF(ret0Py); - PyTuple_SetItem(ret,0,ret0Py); - PyTuple_SetItem(ret,1,PyString_FromString(ret1.c_str())); - return ret; - } - PyObject *buildSubMeshData(PyObject *li) const throw(INTERP_KERNEL::Exception) { DataArrayInt *ret1=0; MEDCouplingMesh *ret0=0; void *da=0; - int res1=SWIG_ConvertPtr(li,&da,SWIGTYPE_p_ParaMEDMEM__DataArrayInt, 0 | 0 ); + int res1=SWIG_ConvertPtr(li,&da,SWIGTYPE_p_MEDCoupling__DataArrayInt, 0 | 0 ); if (!SWIG_IsOK(res1)) { int size; @@ -3003,7 +3865,7 @@ namespace ParaMEDMEM } PyObject *res = PyList_New(2); PyList_SetItem(res,0,convertMesh(ret0, SWIG_POINTER_OWN | 0 )); - PyList_SetItem(res,1,SWIG_NewPointerObj((void*)ret1,SWIGTYPE_p_ParaMEDMEM__DataArrayInt,SWIG_POINTER_OWN | 0)); + PyList_SetItem(res,1,SWIG_NewPointerObj((void*)ret1,SWIGTYPE_p_MEDCoupling__DataArrayInt,SWIG_POINTER_OWN | 0)); return res; } @@ -3015,7 +3877,7 @@ namespace ParaMEDMEM PyObject *res=PyTuple_New(2); PyTuple_SetItem(res,0,convertMesh(ret0, SWIG_POINTER_OWN | 0 )); if(ret1) - PyTuple_SetItem(res,1,SWIG_NewPointerObj((void*)ret1,SWIGTYPE_p_ParaMEDMEM__DataArrayInt,SWIG_POINTER_OWN | 0)); + PyTuple_SetItem(res,1,SWIG_NewPointerObj((void*)ret1,SWIGTYPE_p_MEDCoupling__DataArrayInt,SWIG_POINTER_OWN | 0)); else { PyObject *res1=PySlice_New(PyInt_FromLong(bb),PyInt_FromLong(ee),PyInt_FromLong(ss)); @@ -3028,7 +3890,7 @@ namespace ParaMEDMEM { int sw,sz(-1); int v0; std::vector v1; - const int *cellIdsBg(convertObjToPossibleCpp1_Safe(cellIds,sw,sz,v0,v1)); + const int *cellIdsBg(convertIntStarLikePyObjToCppIntStar(cellIds,sw,sz,v0,v1)); return self->computeTupleIdsToSelectFromCellIds(cellIdsBg,cellIdsBg+sz); } @@ -3036,7 +3898,7 @@ namespace ParaMEDMEM const std::vector& gsCoo, const std::vector& wg) throw(INTERP_KERNEL::Exception) { void *da=0; - int res1=SWIG_ConvertPtr(li,&da,SWIGTYPE_p_ParaMEDMEM__DataArrayInt, 0 | 0 ); + int res1=SWIG_ConvertPtr(li,&da,SWIGTYPE_p_MEDCoupling__DataArrayInt, 0 | 0 ); if (!SWIG_IsOK(res1)) { int size; @@ -3060,7 +3922,7 @@ namespace ParaMEDMEM DataArrayInt *ret=DataArrayInt::New(); ret->alloc((int)tmp.size(),1); std::copy(tmp.begin(),tmp.end(),ret->getPointer()); - return SWIG_NewPointerObj(SWIG_as_voidptr(ret),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 ); + return SWIG_NewPointerObj(SWIG_as_voidptr(ret),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ); } int getNumberOfTuplesExpectedRegardingCode(PyObject *code, PyObject *idsPerType) const throw(INTERP_KERNEL::Exception) @@ -3068,25 +3930,39 @@ namespace ParaMEDMEM std::vector inp0; convertPyToNewIntArr4(code,1,3,inp0); std::vector inp1; - convertFromPyObjVectorOfObj(idsPerType,SWIGTYPE_p_ParaMEDMEM__DataArrayInt,"DataArrayInt",inp1); + convertFromPyObjVectorOfObj(idsPerType,SWIGTYPE_p_MEDCoupling__DataArrayInt,"DataArrayInt",inp1); return self->getNumberOfTuplesExpectedRegardingCode(inp0,inp1); } } }; - class MEDCouplingFieldTemplate : public ParaMEDMEM::MEDCouplingField + class MEDCouplingFieldTemplate : public MEDCoupling::MEDCouplingField { public: static MEDCouplingFieldTemplate *New(const MEDCouplingFieldDouble& f) throw(INTERP_KERNEL::Exception); + static MEDCouplingFieldTemplate *New(const MEDCouplingFieldFloat& f) throw(INTERP_KERNEL::Exception); + static MEDCouplingFieldTemplate *New(const MEDCouplingFieldInt& f) throw(INTERP_KERNEL::Exception); static MEDCouplingFieldTemplate *New(TypeOfField type); std::string simpleRepr() const throw(INTERP_KERNEL::Exception); std::string advancedRepr() const throw(INTERP_KERNEL::Exception); + bool isEqual(const MEDCouplingFieldTemplate *other, double meshPrec) const throw(INTERP_KERNEL::Exception); + bool isEqualWithoutConsideringStr(const MEDCouplingFieldTemplate *other, double meshPrec) const throw(INTERP_KERNEL::Exception); %extend { MEDCouplingFieldTemplate(const MEDCouplingFieldDouble& f) throw(INTERP_KERNEL::Exception) { return MEDCouplingFieldTemplate::New(f); } + + MEDCouplingFieldTemplate(const MEDCouplingFieldFloat& f) throw(INTERP_KERNEL::Exception) + { + return MEDCouplingFieldTemplate::New(f); + } + + MEDCouplingFieldTemplate(const MEDCouplingFieldInt& f) throw(INTERP_KERNEL::Exception) + { + return MEDCouplingFieldTemplate::New(f); + } MEDCouplingFieldTemplate(TypeOfField type) throw(INTERP_KERNEL::Exception) { @@ -3104,14 +3980,45 @@ namespace ParaMEDMEM self->reprQuickOverview(oss); return oss.str(); } + + PyObject *isEqualIfNotWhy(const MEDCouplingFieldTemplate *other, double meshPrec) const throw(INTERP_KERNEL::Exception) + { + std::string ret1; + bool ret0=self->isEqualIfNotWhy(other,meshPrec,ret1); + PyObject *ret=PyTuple_New(2); + PyObject *ret0Py=ret0?Py_True:Py_False; + Py_XINCREF(ret0Py); + PyTuple_SetItem(ret,0,ret0Py); + PyTuple_SetItem(ret,1,PyString_FromString(ret1.c_str())); + return ret; + } } }; + + template + class MEDCouplingFieldT : public MEDCoupling::MEDCouplingField + { + public: + TypeOfTimeDiscretization getTimeDiscretization() const throw(INTERP_KERNEL::Exception); + protected: + MEDCouplingFieldT(); + ~MEDCouplingFieldT(); + }; + + %template(MEDCouplingFieldTdouble) MEDCoupling::MEDCouplingFieldT; + %template(MEDCouplingFieldTfloat) MEDCoupling::MEDCouplingFieldT; + %template(MEDCouplingFieldTint) MEDCoupling::MEDCouplingFieldT; + + class MEDCouplingFieldInt; + class MEDCouplingFieldFloat; - class MEDCouplingFieldDouble : public ParaMEDMEM::MEDCouplingField + class MEDCouplingFieldDouble : public MEDCouplingFieldT { public: static MEDCouplingFieldDouble *New(TypeOfField type, TypeOfTimeDiscretization td=ONE_TIME); static MEDCouplingFieldDouble *New(const MEDCouplingFieldTemplate& ft, TypeOfTimeDiscretization td=ONE_TIME); + bool isEqual(const MEDCouplingFieldDouble *other, double meshPrec, double valsPrec) const throw(INTERP_KERNEL::Exception); + bool isEqualWithoutConsideringStr(const MEDCouplingFieldDouble *other, double meshPrec, double valsPrec) const throw(INTERP_KERNEL::Exception); void setTimeUnit(const std::string& unit); std::string getTimeUnit() const; void synchronizeTimeWithSupport() throw(INTERP_KERNEL::Exception); @@ -3119,14 +4026,15 @@ 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); + MEDCouplingFieldInt *convertToIntField() const throw(INTERP_KERNEL::Exception); + MEDCouplingFieldFloat *convertToFloatField() const throw(INTERP_KERNEL::Exception); MEDCouplingFieldDouble *clone(bool recDeepCpy) const; MEDCouplingFieldDouble *cloneWithMesh(bool recDeepCpy) const; - MEDCouplingFieldDouble *deepCpy() const; - MEDCouplingFieldDouble *buildNewTimeReprFromThis(TypeOfTimeDiscretization td, bool deepCpy) const throw(INTERP_KERNEL::Exception); + MEDCouplingFieldDouble *deepCopy() const; + MEDCouplingFieldDouble *buildNewTimeReprFromThis(TypeOfTimeDiscretization td, bool deepCopy) const throw(INTERP_KERNEL::Exception); MEDCouplingFieldDouble *nodeToCellDiscretization() const throw(INTERP_KERNEL::Exception); MEDCouplingFieldDouble *cellToNodeDiscretization() const throw(INTERP_KERNEL::Exception); - TypeOfTimeDiscretization getTimeDiscretization() const throw(INTERP_KERNEL::Exception); double getIJ(int tupleId, int compoId) const throw(INTERP_KERNEL::Exception); double getIJK(int cellId, int nodeIdInCell, int compoId) const throw(INTERP_KERNEL::Exception); void synchronizeTimeWithMesh() throw(INTERP_KERNEL::Exception); @@ -3136,6 +4044,7 @@ namespace ParaMEDMEM void setStartTime(double val, int iteration, int order) throw(INTERP_KERNEL::Exception); void setEndTime(double val, int iteration, int order) throw(INTERP_KERNEL::Exception); void applyLin(double a, double b, int compoId) throw(INTERP_KERNEL::Exception); + void applyLin(double a, double b) throw(INTERP_KERNEL::Exception); int getNumberOfComponents() const throw(INTERP_KERNEL::Exception); int getNumberOfTuples() const throw(INTERP_KERNEL::Exception); int getNumberOfValues() const throw(INTERP_KERNEL::Exception); @@ -3150,7 +4059,7 @@ namespace ParaMEDMEM void changeUnderlyingMesh(const MEDCouplingMesh *other, int levOfCheck, double precOnMesh, double eps=1e-15) throw(INTERP_KERNEL::Exception); void substractInPlaceDM(const MEDCouplingFieldDouble *f, int levOfCheck, double precOnMesh, double eps=1e-15) throw(INTERP_KERNEL::Exception); bool mergeNodes(double eps, double epsOnVals=1e-15) throw(INTERP_KERNEL::Exception); - bool mergeNodes2(double eps, double epsOnVals=1e-15) throw(INTERP_KERNEL::Exception); + bool mergeNodesCenter(double eps, double epsOnVals=1e-15) throw(INTERP_KERNEL::Exception); bool zipCoords(double epsOnVals=1e-15) throw(INTERP_KERNEL::Exception); bool zipConnectivity(int compType,double epsOnVals=1e-15) throw(INTERP_KERNEL::Exception); bool simplexize(int policy) throw(INTERP_KERNEL::Exception); @@ -3167,11 +4076,11 @@ namespace ParaMEDMEM void sortPerTuple(bool asc) throw(INTERP_KERNEL::Exception); MEDCouplingFieldDouble &operator=(double value) throw(INTERP_KERNEL::Exception); void fillFromAnalytic(int nbOfComp, const std::string& func) throw(INTERP_KERNEL::Exception); - void fillFromAnalytic2(int nbOfComp, const std::string& func) throw(INTERP_KERNEL::Exception); - void fillFromAnalytic3(int nbOfComp, const std::vector& varsOrder, const std::string& func) throw(INTERP_KERNEL::Exception); + void fillFromAnalyticCompo(int nbOfComp, const std::string& func) throw(INTERP_KERNEL::Exception); + void fillFromAnalyticNamedCompo(int nbOfComp, const std::vector& varsOrder, const std::string& func) throw(INTERP_KERNEL::Exception); void applyFunc(int nbOfComp, const std::string& func) throw(INTERP_KERNEL::Exception); - void applyFunc2(int nbOfComp, const std::string& func) throw(INTERP_KERNEL::Exception); - void applyFunc3(int nbOfComp, const std::vector& varsOrder, const std::string& func) throw(INTERP_KERNEL::Exception); + void applyFuncCompo(int nbOfComp, const std::string& func) throw(INTERP_KERNEL::Exception); + void applyFuncNamedCompo(int nbOfComp, const std::vector& varsOrder, const std::string& func) throw(INTERP_KERNEL::Exception); void applyFunc(int nbOfComp, double val) throw(INTERP_KERNEL::Exception); void applyFunc(const std::string& func) throw(INTERP_KERNEL::Exception); void applyFuncFast32(const std::string& func) throw(INTERP_KERNEL::Exception); @@ -3187,7 +4096,7 @@ namespace ParaMEDMEM double integral(int compId, bool isWAbs) const throw(INTERP_KERNEL::Exception); double normL1(int compId) const throw(INTERP_KERNEL::Exception); double normL2(int compId) const throw(INTERP_KERNEL::Exception); - DataArrayInt *getIdsInRange(double vmin, double vmax) const throw(INTERP_KERNEL::Exception); + DataArrayInt *findIdsInRange(double vmin, double vmax) const throw(INTERP_KERNEL::Exception); MEDCouplingFieldDouble *buildSubPartRange(int begin, int end, int step) const throw(INTERP_KERNEL::Exception); static MEDCouplingFieldDouble *MergeFields(const MEDCouplingFieldDouble *f1, const MEDCouplingFieldDouble *f2) throw(INTERP_KERNEL::Exception); static MEDCouplingFieldDouble *MeldFields(const MEDCouplingFieldDouble *f1, const MEDCouplingFieldDouble *f2) throw(INTERP_KERNEL::Exception); @@ -3227,6 +4136,43 @@ namespace ParaMEDMEM return oss.str(); } + PyObject *isEqualIfNotWhy(const MEDCouplingFieldDouble *other, double meshPrec, double valsPrec) const throw(INTERP_KERNEL::Exception) + { + std::string ret1; + bool ret0=self->isEqualIfNotWhy(other,meshPrec,valsPrec,ret1); + PyObject *ret=PyTuple_New(2); + PyObject *ret0Py=ret0?Py_True:Py_False; + Py_XINCREF(ret0Py); + PyTuple_SetItem(ret,0,ret0Py); + PyTuple_SetItem(ret,1,PyString_FromString(ret1.c_str())); + return ret; + } + + MEDCouplingFieldDouble *voronoize(double eps) const throw(INTERP_KERNEL::Exception) + { + MCAuto ret(self->voronoize(eps)); + return ret.retn(); + } + + MEDCouplingFieldDouble *convertQuadraticCellsToLinear() const throw(INTERP_KERNEL::Exception) + { + MCAuto ret(self->convertQuadraticCellsToLinear()); + return ret.retn(); + } + + MEDCouplingFieldDouble *computeVectorFieldCyl(PyObject *center, PyObject *vector) const + { + const char msg[]="Python wrap of MEDCouplingFieldDouble::computeVectorFieldCyl : "; + double val,val2; + DataArrayDouble *a,*a2; + DataArrayDoubleTuple *aa,*aa2; + std::vector bb,bb2; + int sw; + const double *centerPtr=convertObjToPossibleCpp5_Safe(center,sw,val,a,aa,bb,msg,1,3,true); + const double *vectorPtr=convertObjToPossibleCpp5_Safe(vector,sw,val2,a2,aa2,bb2,msg,1,3,true); + return self->computeVectorFieldCyl(centerPtr,vectorPtr); + } + DataArrayDouble *getArray() throw(INTERP_KERNEL::Exception) { DataArrayDouble *ret=self->getArray(); @@ -3246,9 +4192,9 @@ namespace ParaMEDMEM for(int i=0;i tmp; - convertFromPyObjVectorOfObj(ls,SWIGTYPE_p_ParaMEDMEM__DataArrayDouble,"DataArrayDouble",tmp); + convertFromPyObjVectorOfObj(ls,SWIGTYPE_p_MEDCoupling__DataArrayDouble,"DataArrayDouble",tmp); int sz=tmp.size(); std::vector arrs(sz); for(int i=0;igetNumberOfComponents(); INTERP_KERNEL::AutoPtr res=new double[sz]; self->getValueOn(spaceLoc,res); - return convertDblArrToPyList(res,sz); + return convertDblArrToPyList(res,sz); } PyObject *getValueOnPos(int i, int j, int k) const throw(INTERP_KERNEL::Exception) @@ -3297,7 +4243,7 @@ namespace ParaMEDMEM int sz=self->getNumberOfComponents(); INTERP_KERNEL::AutoPtr res=new double[sz]; self->getValueOnPos(i,j,k,res); - return convertDblArrToPyList(res,sz); + return convertDblArrToPyList(res,sz); } DataArrayDouble *getValueOnMulti(PyObject *locs) const throw(INTERP_KERNEL::Exception) @@ -3307,7 +4253,7 @@ namespace ParaMEDMEM throw INTERP_KERNEL::Exception("Python wrap MEDCouplingFieldDouble::getValueOnMulti : lying on a null mesh !"); // int sw,nbPts; - double v0; ParaMEDMEM::DataArrayDouble *v1(0); ParaMEDMEM::DataArrayDoubleTuple *v2(0); std::vector v3; + double v0; MEDCoupling::DataArrayDouble *v1(0); MEDCoupling::DataArrayDoubleTuple *v2(0); std::vector v3; const double *inp=convertObjToPossibleCpp5_Safe2(locs,sw,v0,v1,v2,v3,"wrap of MEDCouplingFieldDouble::getValueOnMulti", mesh->getSpaceDimension(),true,nbPts); return self->getValueOnMulti(inp,nbPts); @@ -3331,17 +4277,17 @@ namespace ParaMEDMEM int sz=self->getNumberOfComponents(); INTERP_KERNEL::AutoPtr res=new double[sz]; self->getValueOn(spaceLoc,time,res); - return convertDblArrToPyList(res,sz); + return convertDblArrToPyList(res,sz); } void setValues(PyObject *li, PyObject *nbOfTuples=0, PyObject *nbOfComp=0) throw(INTERP_KERNEL::Exception) { if(self->getArray()!=0) - ParaMEDMEM_DataArrayDouble_setValues__SWIG_0(self->getArray(),li,nbOfTuples,nbOfComp); + MEDCoupling_DataArrayDouble_setValues__SWIG_0(self->getArray(),li,nbOfTuples,nbOfComp); else { - MEDCouplingAutoRefCountObjectPtr arr=DataArrayDouble::New(); - ParaMEDMEM_DataArrayDouble_setValues__SWIG_0(arr,li,nbOfTuples,nbOfComp); + MCAuto arr=DataArrayDouble::New(); + MEDCoupling_DataArrayDouble_setValues__SWIG_0(arr,li,nbOfTuples,nbOfComp); self->setArray(arr); } } @@ -3383,41 +4329,41 @@ namespace ParaMEDMEM int sz=self->getNumberOfComponents(); INTERP_KERNEL::AutoPtr tmp=new double[sz]; self->accumulate(tmp); - return convertDblArrToPyList(tmp,sz); + return convertDblArrToPyList(tmp,sz); } PyObject *integral(bool isWAbs) const throw(INTERP_KERNEL::Exception) { int sz=self->getNumberOfComponents(); INTERP_KERNEL::AutoPtr tmp=new double[sz]; self->integral(isWAbs,tmp); - return convertDblArrToPyList(tmp,sz); + return convertDblArrToPyList(tmp,sz); } PyObject *getWeightedAverageValue(bool isWAbs=true) const throw(INTERP_KERNEL::Exception) { int sz=self->getNumberOfComponents(); INTERP_KERNEL::AutoPtr tmp=new double[sz]; self->getWeightedAverageValue(tmp,isWAbs); - return convertDblArrToPyList(tmp,sz); + return convertDblArrToPyList(tmp,sz); } PyObject *normL1() const throw(INTERP_KERNEL::Exception) { int sz=self->getNumberOfComponents(); INTERP_KERNEL::AutoPtr tmp=new double[sz]; self->normL1(tmp); - return convertDblArrToPyList(tmp,sz); + return convertDblArrToPyList(tmp,sz); } PyObject *normL2() const throw(INTERP_KERNEL::Exception) { int sz=self->getNumberOfComponents(); INTERP_KERNEL::AutoPtr tmp=new double[sz]; self->normL2(tmp); - return convertDblArrToPyList(tmp,sz); + return convertDblArrToPyList(tmp,sz); } void renumberCells(PyObject *li, bool check=true) throw(INTERP_KERNEL::Exception) { int szArr,sw,iTypppArr; std::vector stdvecTyyppArr; - const int *tmp=convertObjToPossibleCpp1_Safe(li,sw,szArr,iTypppArr,stdvecTyyppArr); + const int *tmp=convertIntStarLikePyObjToCppIntStar(li,sw,szArr,iTypppArr,stdvecTyyppArr); self->renumberCells(tmp,check); } @@ -3425,7 +4371,7 @@ namespace ParaMEDMEM { int szArr,sw,iTypppArr; std::vector stdvecTyyppArr; - const int *tmp=convertObjToPossibleCpp1_Safe(li,sw,szArr,iTypppArr,stdvecTyyppArr); + const int *tmp=convertIntStarLikePyObjToCppIntStar(li,sw,szArr,iTypppArr,stdvecTyyppArr); self->renumberCellsWithoutMesh(tmp,check); } @@ -3433,7 +4379,7 @@ namespace ParaMEDMEM { int szArr,sw,iTypppArr; std::vector stdvecTyyppArr; - const int *tmp=convertObjToPossibleCpp1_Safe(li,sw,szArr,iTypppArr,stdvecTyyppArr); + const int *tmp=convertIntStarLikePyObjToCppIntStar(li,sw,szArr,iTypppArr,stdvecTyyppArr); self->renumberNodes(tmp,eps); } @@ -3441,125 +4387,18 @@ namespace ParaMEDMEM { int szArr,sw,iTypppArr; std::vector stdvecTyyppArr; - const int *tmp=convertObjToPossibleCpp1_Safe(li,sw,szArr,iTypppArr,stdvecTyyppArr); + const int *tmp=convertIntStarLikePyObjToCppIntStar(li,sw,szArr,iTypppArr,stdvecTyyppArr); self->renumberNodesWithoutMesh(tmp,newNbOfNodes,eps); } MEDCouplingFieldDouble *buildSubPart(PyObject *li) const throw(INTERP_KERNEL::Exception) { - int sw; - int singleVal; - std::vector multiVal; - std::pair > slic; - ParaMEDMEM::DataArrayInt *daIntTyypp=0; - const MEDCouplingMesh *mesh=self->getMesh(); - if(!mesh) - throw INTERP_KERNEL::Exception("MEDCouplingFieldDouble::buildSubPart : field lies on a null mesh !"); - int nbc=mesh->getNumberOfCells(); - convertObjToPossibleCpp2(li,nbc,sw,singleVal,multiVal,slic,daIntTyypp); - switch(sw) - { - case 1: - { - if(singleVal>=nbc) - { - std::ostringstream oss; - oss << "Requesting for cell id " << singleVal << " having only " << nbc << " cells !"; - throw INTERP_KERNEL::Exception(oss.str().c_str()); - } - if(singleVal>=0) - return self->buildSubPart(&singleVal,&singleVal+1); - else - { - if(nbc+singleVal>0) - { - int tmp=nbc+singleVal; - return self->buildSubPart(&tmp,&tmp+1); - } - else - { - std::ostringstream oss; - oss << "Requesting for cell id " << singleVal << " having only " << nbc << " cells !"; - throw INTERP_KERNEL::Exception(oss.str().c_str()); - } - } - } - case 2: - { - return self->buildSubPart(&multiVal[0],&multiVal[0]+multiVal.size()); - } - case 3: - { - return self->buildSubPartRange(slic.first,slic.second.first,slic.second.second); - } - case 4: - { - if(!daIntTyypp) - throw INTERP_KERNEL::Exception("MEDCouplingFieldDouble::buildSubPart : null instance has been given in input !"); - daIntTyypp->checkAllocated(); - return self->buildSubPart(daIntTyypp->begin(),daIntTyypp->end()); - } - default: - throw INTERP_KERNEL::Exception("MEDCouplingFieldDouble::buildSubPart : unrecognized type in input ! Possibilities are : int, list or tuple of int DataArrayInt instance !"); - } + return fieldT_buildSubPart(self,li); } MEDCouplingFieldDouble *__getitem__(PyObject *li) const throw(INTERP_KERNEL::Exception) { - const char msg[]="MEDCouplingFieldDouble::__getitem__ : invalid call Available API are : \n-myField[dataArrayInt]\n-myField[slice]\n-myField[pythonListOfCellIds]\n-myField[integer]\n-myField[dataArrayInt,1]\n-myField[slice,1]\n-myField[pythonListOfCellIds,1]\n-myField[integer,1]\n"; - if(PyTuple_Check(li)) - { - Py_ssize_t sz=PyTuple_Size(li); - if(sz!=2) - throw INTERP_KERNEL::Exception(msg); - PyObject *elt0=PyTuple_GetItem(li,0),*elt1=PyTuple_GetItem(li,1); - int sw; - int singleVal; - std::vector multiVal; - std::pair > slic; - ParaMEDMEM::DataArrayInt *daIntTyypp=0; - if(!self->getArray()) - throw INTERP_KERNEL::Exception("MEDCouplingFieldDouble::__getitem__ : no array set on field to deduce number of components !"); - try - { convertObjToPossibleCpp2(elt1,self->getArray()->getNumberOfComponents(),sw,singleVal,multiVal,slic,daIntTyypp); } - catch(INTERP_KERNEL::Exception& e) - { std::ostringstream oss; oss << "MEDCouplingFieldDouble::__getitem__ : invalid type in 2nd parameter (compo) !" << e.what(); throw INTERP_KERNEL::Exception(oss.str().c_str()); } - MEDCouplingAutoRefCountObjectPtr ret0=ParaMEDMEM_MEDCouplingFieldDouble_buildSubPart(self,elt0); - DataArrayDouble *ret0Arr=ret0->getArray(); - if(!ret0Arr) - throw INTERP_KERNEL::Exception("MEDCouplingFieldDouble::__getitem__ : no array exists to apply restriction on component on it !"); - switch(sw) - { - case 1: - { - std::vector v2(1,singleVal); - MEDCouplingAutoRefCountObjectPtr aarr=static_cast(ret0Arr->keepSelectedComponents(v2)); - ret0->setArray(aarr); - return ret0.retn(); - } - case 2: - { - MEDCouplingAutoRefCountObjectPtr aarr=static_cast(ret0Arr->keepSelectedComponents(multiVal)); - ret0->setArray(aarr); - return ret0.retn(); - } - case 3: - { - int nbOfComp=DataArray::GetNumberOfItemGivenBESRelative(slic.first,slic.second.first,slic.second.second,"MEDCouplingFieldDouble::__getitem__ : invalid range in 2nd parameter (components) !"); - std::vector v2(nbOfComp); - for(int i=0;i aarr=static_cast(ret0Arr->keepSelectedComponents(v2)); - ret0->setArray(aarr); - return ret0.retn(); - } - default: - throw INTERP_KERNEL::Exception(msg); - } - - } - else - return ParaMEDMEM_MEDCouplingFieldDouble_buildSubPart(self,li); + return fieldT__getitem__(self,li); } PyObject *getMaxValue2() const throw(INTERP_KERNEL::Exception) @@ -3568,7 +4407,7 @@ namespace ParaMEDMEM double r1=self->getMaxValue2(tmp); PyObject *ret=PyTuple_New(2); PyTuple_SetItem(ret,0,PyFloat_FromDouble(r1)); - PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(tmp),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(tmp),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); return ret; } @@ -3578,7 +4417,7 @@ namespace ParaMEDMEM double r1=self->getMinValue2(tmp); PyObject *ret=PyTuple_New(2); PyTuple_SetItem(ret,0,PyFloat_FromDouble(r1)); - PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(tmp),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(tmp),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 )); return ret; } @@ -3604,8 +4443,8 @@ namespace ParaMEDMEM std::vector bb,bb2; int sw; int spaceDim=3; - const char msg[]="Python wrap of MEDCouplingFieldDouble::extractSlice3D : 1st paramater for origin."; - const char msg2[]="Python wrap of MEDCouplingFieldDouble::extractSlice3D : 2nd paramater for vector."; + const char msg[]="Python wrap of MEDCouplingFieldDouble::extractSlice3D : 1st parameter for origin."; + const char msg2[]="Python wrap of MEDCouplingFieldDouble::extractSlice3D : 2nd parameter for vector."; const double *orig=convertObjToPossibleCpp5_Safe(origin,sw,val,a,aa,bb,msg,1,spaceDim,true); const double *vect=convertObjToPossibleCpp5_Safe(vec,sw,val2,a2,aa2,bb2,msg2,1,spaceDim,true); // @@ -3614,12 +4453,12 @@ namespace ParaMEDMEM MEDCouplingFieldDouble *__add__(PyObject *obj) throw(INTERP_KERNEL::Exception) { - return ParaMEDMEM_MEDCouplingFieldDouble___add__Impl(self,obj); + return MEDCoupling_MEDCouplingFieldDouble___add__Impl(self,obj); } MEDCouplingFieldDouble *__radd__(PyObject *obj) throw(INTERP_KERNEL::Exception) { - return ParaMEDMEM_MEDCouplingFieldDouble___radd__Impl(self,obj); + return MEDCoupling_MEDCouplingFieldDouble___radd__Impl(self,obj); } MEDCouplingFieldDouble *__sub__(PyObject *obj) throw(INTERP_KERNEL::Exception) @@ -3628,9 +4467,9 @@ namespace ParaMEDMEM const char msg2[]="in MEDCouplingFieldDouble.__sub__ : self field has no Array of values set !"; void *argp; // - if(SWIG_IsOK(SWIG_ConvertPtr(obj,&argp,SWIGTYPE_p_ParaMEDMEM__MEDCouplingFieldDouble,0|0))) + if(SWIG_IsOK(SWIG_ConvertPtr(obj,&argp,SWIGTYPE_p_MEDCoupling__MEDCouplingFieldDouble,0|0))) { - MEDCouplingFieldDouble *other=reinterpret_cast< ParaMEDMEM::MEDCouplingFieldDouble * >(argp); + MEDCouplingFieldDouble *other=reinterpret_cast< MEDCoupling::MEDCouplingFieldDouble * >(argp); if(other) return (*self)-(*other); else @@ -3642,16 +4481,16 @@ namespace ParaMEDMEM DataArrayDoubleTuple *aa; std::vector bb; int sw; - convertObjToPossibleCpp5(obj,sw,val,a,aa,bb); + convertDoubleStarLikePyObjToCpp_2(obj,sw,val,a,aa,bb); switch(sw) { case 1: { if(!self->getArray()) throw INTERP_KERNEL::Exception(msg2); - MEDCouplingAutoRefCountObjectPtr ret=self->getArray()->deepCpy(); + MCAuto ret=self->getArray()->deepCopy(); ret->applyLin(1.,-val); - MEDCouplingAutoRefCountObjectPtr ret2=self->clone(false); + MCAuto ret2=self->clone(false); ret2->setArray(ret); return ret2.retn(); } @@ -3659,8 +4498,8 @@ namespace ParaMEDMEM { if(!self->getArray()) throw INTERP_KERNEL::Exception(msg2); - MEDCouplingAutoRefCountObjectPtr ret=DataArrayDouble::Substract(self->getArray(),a); - MEDCouplingAutoRefCountObjectPtr ret2=self->clone(false); + MCAuto ret=DataArrayDouble::Substract(self->getArray(),a); + MCAuto ret2=self->clone(false); ret2->setArray(ret); return ret2.retn(); } @@ -3668,9 +4507,9 @@ namespace ParaMEDMEM { if(!self->getArray()) throw INTERP_KERNEL::Exception(msg2); - MEDCouplingAutoRefCountObjectPtr aaa=aa->buildDADouble(1,self->getNumberOfComponents()); - MEDCouplingAutoRefCountObjectPtr ret=DataArrayDouble::Substract(self->getArray(),aaa); - MEDCouplingAutoRefCountObjectPtr ret2=self->clone(false); + MCAuto aaa=aa->buildDADouble(1,self->getNumberOfComponents()); + MCAuto ret=DataArrayDouble::Substract(self->getArray(),aaa); + MCAuto ret2=self->clone(false); ret2->setArray(ret); return ret2.retn(); } @@ -3678,9 +4517,9 @@ namespace ParaMEDMEM { if(!self->getArray()) throw INTERP_KERNEL::Exception(msg2); - MEDCouplingAutoRefCountObjectPtr aaa=DataArrayDouble::New(); aaa->useArray(&bb[0],false,CPP_DEALLOC,1,(int)bb.size()); - MEDCouplingAutoRefCountObjectPtr ret=DataArrayDouble::Substract(self->getArray(),aaa); - MEDCouplingAutoRefCountObjectPtr ret2=self->clone(false); + MCAuto aaa=DataArrayDouble::New(); aaa->useArray(&bb[0],false,CPP_DEALLOC,1,(int)bb.size()); + MCAuto ret=DataArrayDouble::Substract(self->getArray(),aaa); + MCAuto ret2=self->clone(false); ret2->setArray(ret); return ret2.retn(); } @@ -3691,17 +4530,17 @@ namespace ParaMEDMEM MEDCouplingFieldDouble *__rsub__(PyObject *obj) throw(INTERP_KERNEL::Exception) { - return ParaMEDMEM_MEDCouplingFieldDouble___rsub__Impl(self,obj); + return MEDCoupling_MEDCouplingFieldDouble___rsub__Impl(self,obj); } MEDCouplingFieldDouble *__mul__(PyObject *obj) throw(INTERP_KERNEL::Exception) { - return ParaMEDMEM_MEDCouplingFieldDouble___mul__Impl(self,obj); + return MEDCoupling_MEDCouplingFieldDouble___mul__Impl(self,obj); } MEDCouplingFieldDouble *__rmul__(PyObject *obj) throw(INTERP_KERNEL::Exception) { - return ParaMEDMEM_MEDCouplingFieldDouble___rmul__Impl(self,obj); + return MEDCoupling_MEDCouplingFieldDouble___rmul__Impl(self,obj); } MEDCouplingFieldDouble *__div__(PyObject *obj) throw(INTERP_KERNEL::Exception) @@ -3710,9 +4549,9 @@ namespace ParaMEDMEM const char msg2[]="in MEDCouplingFieldDouble.__div__ : self field has no Array of values set !"; void *argp; // - if(SWIG_IsOK(SWIG_ConvertPtr(obj,&argp,SWIGTYPE_p_ParaMEDMEM__MEDCouplingFieldDouble,0|0))) + if(SWIG_IsOK(SWIG_ConvertPtr(obj,&argp,SWIGTYPE_p_MEDCoupling__MEDCouplingFieldDouble,0|0))) { - MEDCouplingFieldDouble *other=reinterpret_cast< ParaMEDMEM::MEDCouplingFieldDouble * >(argp); + MEDCouplingFieldDouble *other=reinterpret_cast< MEDCoupling::MEDCouplingFieldDouble * >(argp); if(other) return (*self)/(*other); else @@ -3724,7 +4563,7 @@ namespace ParaMEDMEM DataArrayDoubleTuple *aa; std::vector bb; int sw; - convertObjToPossibleCpp5(obj,sw,val,a,aa,bb); + convertDoubleStarLikePyObjToCpp_2(obj,sw,val,a,aa,bb); switch(sw) { case 1: @@ -3733,9 +4572,9 @@ namespace ParaMEDMEM throw INTERP_KERNEL::Exception("MEDCouplingFieldDouble.__div__ : trying to divide by zero !"); if(!self->getArray()) throw INTERP_KERNEL::Exception(msg2); - MEDCouplingAutoRefCountObjectPtr ret=self->getArray()->deepCpy(); + MCAuto ret=self->getArray()->deepCopy(); ret->applyLin(1./val,0); - MEDCouplingAutoRefCountObjectPtr ret2=self->clone(false); + MCAuto ret2=self->clone(false); ret2->setArray(ret); return ret2.retn(); } @@ -3743,8 +4582,8 @@ namespace ParaMEDMEM { if(!self->getArray()) throw INTERP_KERNEL::Exception(msg2); - MEDCouplingAutoRefCountObjectPtr ret=DataArrayDouble::Divide(self->getArray(),a); - MEDCouplingAutoRefCountObjectPtr ret2=self->clone(false); + MCAuto ret=DataArrayDouble::Divide(self->getArray(),a); + MCAuto ret2=self->clone(false); ret2->setArray(ret); return ret2.retn(); } @@ -3752,9 +4591,9 @@ namespace ParaMEDMEM { if(!self->getArray()) throw INTERP_KERNEL::Exception(msg2); - MEDCouplingAutoRefCountObjectPtr aaa=aa->buildDADouble(1,self->getNumberOfComponents()); - MEDCouplingAutoRefCountObjectPtr ret=DataArrayDouble::Divide(self->getArray(),aaa); - MEDCouplingAutoRefCountObjectPtr ret2=self->clone(false); + MCAuto aaa=aa->buildDADouble(1,self->getNumberOfComponents()); + MCAuto ret=DataArrayDouble::Divide(self->getArray(),aaa); + MCAuto ret2=self->clone(false); ret2->setArray(ret); return ret2.retn(); } @@ -3762,9 +4601,9 @@ namespace ParaMEDMEM { if(!self->getArray()) throw INTERP_KERNEL::Exception(msg2); - MEDCouplingAutoRefCountObjectPtr aaa=DataArrayDouble::New(); aaa->useArray(&bb[0],false,CPP_DEALLOC,1,(int)bb.size()); - MEDCouplingAutoRefCountObjectPtr ret=DataArrayDouble::Divide(self->getArray(),aaa); - MEDCouplingAutoRefCountObjectPtr ret2=self->clone(false); + MCAuto aaa=DataArrayDouble::New(); aaa->useArray(&bb[0],false,CPP_DEALLOC,1,(int)bb.size()); + MCAuto ret=DataArrayDouble::Divide(self->getArray(),aaa); + MCAuto ret2=self->clone(false); ret2->setArray(ret); return ret2.retn(); } @@ -3775,7 +4614,7 @@ namespace ParaMEDMEM MEDCouplingFieldDouble *__rdiv__(PyObject *obj) throw(INTERP_KERNEL::Exception) { - return ParaMEDMEM_MEDCouplingFieldDouble___rdiv__Impl(self,obj); + return MEDCoupling_MEDCouplingFieldDouble___rdiv__Impl(self,obj); } MEDCouplingFieldDouble *__pow__(PyObject *obj) throw(INTERP_KERNEL::Exception) @@ -3784,9 +4623,9 @@ namespace ParaMEDMEM const char msg2[]="in MEDCouplingFieldDouble.__pow__ : self field has no Array of values set !"; void *argp; // - if(SWIG_IsOK(SWIG_ConvertPtr(obj,&argp,SWIGTYPE_p_ParaMEDMEM__MEDCouplingFieldDouble,0|0))) + if(SWIG_IsOK(SWIG_ConvertPtr(obj,&argp,SWIGTYPE_p_MEDCoupling__MEDCouplingFieldDouble,0|0))) { - MEDCouplingFieldDouble *other=reinterpret_cast< ParaMEDMEM::MEDCouplingFieldDouble * >(argp); + MEDCouplingFieldDouble *other=reinterpret_cast< MEDCoupling::MEDCouplingFieldDouble * >(argp); if(other) return (*self)^(*other); else @@ -3798,16 +4637,16 @@ namespace ParaMEDMEM DataArrayDoubleTuple *aa; std::vector bb; int sw; - convertObjToPossibleCpp5(obj,sw,val,a,aa,bb); + convertDoubleStarLikePyObjToCpp_2(obj,sw,val,a,aa,bb); switch(sw) { case 1: { if(!self->getArray()) throw INTERP_KERNEL::Exception(msg2); - MEDCouplingAutoRefCountObjectPtr ret=self->getArray()->deepCpy(); + MCAuto ret=self->getArray()->deepCopy(); ret->applyPow(val); - MEDCouplingAutoRefCountObjectPtr ret2=self->clone(false); + MCAuto ret2=self->clone(false); ret2->setArray(ret); return ret2.retn(); } @@ -3815,8 +4654,8 @@ namespace ParaMEDMEM { if(!self->getArray()) throw INTERP_KERNEL::Exception(msg2); - MEDCouplingAutoRefCountObjectPtr ret=DataArrayDouble::Pow(self->getArray(),a); - MEDCouplingAutoRefCountObjectPtr ret2=self->clone(false); + MCAuto ret=DataArrayDouble::Pow(self->getArray(),a); + MCAuto ret2=self->clone(false); ret2->setArray(ret); return ret2.retn(); } @@ -3824,9 +4663,9 @@ namespace ParaMEDMEM { if(!self->getArray()) throw INTERP_KERNEL::Exception(msg2); - MEDCouplingAutoRefCountObjectPtr aaa=aa->buildDADouble(1,self->getNumberOfComponents()); - MEDCouplingAutoRefCountObjectPtr ret=DataArrayDouble::Pow(self->getArray(),aaa); - MEDCouplingAutoRefCountObjectPtr ret2=self->clone(false); + MCAuto aaa=aa->buildDADouble(1,self->getNumberOfComponents()); + MCAuto ret=DataArrayDouble::Pow(self->getArray(),aaa); + MCAuto ret2=self->clone(false); ret2->setArray(ret); return ret2.retn(); } @@ -3834,9 +4673,9 @@ namespace ParaMEDMEM { if(!self->getArray()) throw INTERP_KERNEL::Exception(msg2); - MEDCouplingAutoRefCountObjectPtr aaa=DataArrayDouble::New(); aaa->useArray(&bb[0],false,CPP_DEALLOC,1,(int)bb.size()); - MEDCouplingAutoRefCountObjectPtr ret=DataArrayDouble::Pow(self->getArray(),aaa); - MEDCouplingAutoRefCountObjectPtr ret2=self->clone(false); + MCAuto aaa=DataArrayDouble::New(); aaa->useArray(&bb[0],false,CPP_DEALLOC,1,(int)bb.size()); + MCAuto ret=DataArrayDouble::Pow(self->getArray(),aaa); + MCAuto ret2=self->clone(false); ret2->setArray(ret); return ret2.retn(); } @@ -3856,9 +4695,9 @@ namespace ParaMEDMEM const char msg2[]="in MEDCouplingFieldDouble.__iadd__ : self field has no Array of values set !"; void *argp; // - if(SWIG_IsOK(SWIG_ConvertPtr(obj,&argp,SWIGTYPE_p_ParaMEDMEM__MEDCouplingFieldDouble,0|0))) + if(SWIG_IsOK(SWIG_ConvertPtr(obj,&argp,SWIGTYPE_p_MEDCoupling__MEDCouplingFieldDouble,0|0))) { - MEDCouplingFieldDouble *other=reinterpret_cast< ParaMEDMEM::MEDCouplingFieldDouble * >(argp); + MEDCouplingFieldDouble *other=reinterpret_cast< MEDCoupling::MEDCouplingFieldDouble * >(argp); if(other) { *self+=*other; @@ -3874,7 +4713,7 @@ namespace ParaMEDMEM DataArrayDoubleTuple *aa; std::vector bb; int sw; - convertObjToPossibleCpp5(obj,sw,val,a,aa,bb); + convertDoubleStarLikePyObjToCpp_2(obj,sw,val,a,aa,bb); switch(sw) { case 1: @@ -3887,7 +4726,7 @@ namespace ParaMEDMEM } case 2: { - MEDCouplingAutoRefCountObjectPtr ret2=self->clone(false); + MCAuto ret2=self->clone(false); ret2->setArray(a); *self+=*ret2; Py_XINCREF(trueSelf); @@ -3895,8 +4734,8 @@ namespace ParaMEDMEM } case 3: { - MEDCouplingAutoRefCountObjectPtr aaa=aa->buildDADouble(1,self->getNumberOfComponents()); - MEDCouplingAutoRefCountObjectPtr ret2=self->clone(false); + MCAuto aaa=aa->buildDADouble(1,self->getNumberOfComponents()); + MCAuto ret2=self->clone(false); ret2->setArray(aaa); *self+=*ret2; Py_XINCREF(trueSelf); @@ -3906,7 +4745,7 @@ namespace ParaMEDMEM { if(!self->getArray()) throw INTERP_KERNEL::Exception(msg2); - MEDCouplingAutoRefCountObjectPtr aaa=DataArrayDouble::New(); aaa->useArray(&bb[0],false,CPP_DEALLOC,1,(int)bb.size()); + MCAuto aaa=DataArrayDouble::New(); aaa->useArray(&bb[0],false,CPP_DEALLOC,1,(int)bb.size()); self->getArray()->addEqual(aaa); Py_XINCREF(trueSelf); return trueSelf; @@ -3922,9 +4761,9 @@ namespace ParaMEDMEM const char msg2[]="in MEDCouplingFieldDouble.__isub__ : self field has no Array of values set !"; void *argp; // - if(SWIG_IsOK(SWIG_ConvertPtr(obj,&argp,SWIGTYPE_p_ParaMEDMEM__MEDCouplingFieldDouble,0|0))) + if(SWIG_IsOK(SWIG_ConvertPtr(obj,&argp,SWIGTYPE_p_MEDCoupling__MEDCouplingFieldDouble,0|0))) { - MEDCouplingFieldDouble *other=reinterpret_cast< ParaMEDMEM::MEDCouplingFieldDouble * >(argp); + MEDCouplingFieldDouble *other=reinterpret_cast< MEDCoupling::MEDCouplingFieldDouble * >(argp); if(other) { *self-=*other; @@ -3940,7 +4779,7 @@ namespace ParaMEDMEM DataArrayDoubleTuple *aa; std::vector bb; int sw; - convertObjToPossibleCpp5(obj,sw,val,a,aa,bb); + convertDoubleStarLikePyObjToCpp_2(obj,sw,val,a,aa,bb); switch(sw) { case 1: @@ -3953,7 +4792,7 @@ namespace ParaMEDMEM } case 2: { - MEDCouplingAutoRefCountObjectPtr ret2=self->clone(false); + MCAuto ret2=self->clone(false); ret2->setArray(a); *self-=*ret2; Py_XINCREF(trueSelf); @@ -3961,8 +4800,8 @@ namespace ParaMEDMEM } case 3: { - MEDCouplingAutoRefCountObjectPtr aaa=aa->buildDADouble(1,self->getNumberOfComponents()); - MEDCouplingAutoRefCountObjectPtr ret2=self->clone(false); + MCAuto aaa=aa->buildDADouble(1,self->getNumberOfComponents()); + MCAuto ret2=self->clone(false); ret2->setArray(aaa); *self-=*ret2; Py_XINCREF(trueSelf); @@ -3972,7 +4811,7 @@ namespace ParaMEDMEM { if(!self->getArray()) throw INTERP_KERNEL::Exception(msg2); - MEDCouplingAutoRefCountObjectPtr aaa=DataArrayDouble::New(); aaa->useArray(&bb[0],false,CPP_DEALLOC,1,(int)bb.size()); + MCAuto aaa=DataArrayDouble::New(); aaa->useArray(&bb[0],false,CPP_DEALLOC,1,(int)bb.size()); self->getArray()->substractEqual(aaa); Py_XINCREF(trueSelf); return trueSelf; @@ -3988,9 +4827,9 @@ namespace ParaMEDMEM const char msg2[]="in MEDCouplingFieldDouble.__imul__ : self field has no Array of values set !"; void *argp; // - if(SWIG_IsOK(SWIG_ConvertPtr(obj,&argp,SWIGTYPE_p_ParaMEDMEM__MEDCouplingFieldDouble,0|0))) + if(SWIG_IsOK(SWIG_ConvertPtr(obj,&argp,SWIGTYPE_p_MEDCoupling__MEDCouplingFieldDouble,0|0))) { - MEDCouplingFieldDouble *other=reinterpret_cast< ParaMEDMEM::MEDCouplingFieldDouble * >(argp); + MEDCouplingFieldDouble *other=reinterpret_cast< MEDCoupling::MEDCouplingFieldDouble * >(argp); if(other) { *self*=*other; @@ -4006,7 +4845,7 @@ namespace ParaMEDMEM DataArrayDoubleTuple *aa; std::vector bb; int sw; - convertObjToPossibleCpp5(obj,sw,val,a,aa,bb); + convertDoubleStarLikePyObjToCpp_2(obj,sw,val,a,aa,bb); switch(sw) { case 1: @@ -4019,7 +4858,7 @@ namespace ParaMEDMEM } case 2: { - MEDCouplingAutoRefCountObjectPtr ret2=self->clone(false); + MCAuto ret2=self->clone(false); ret2->setArray(a); *self*=*ret2; Py_XINCREF(trueSelf); @@ -4027,8 +4866,8 @@ namespace ParaMEDMEM } case 3: { - MEDCouplingAutoRefCountObjectPtr aaa=aa->buildDADouble(1,self->getNumberOfComponents()); - MEDCouplingAutoRefCountObjectPtr ret2=self->clone(false); + MCAuto aaa=aa->buildDADouble(1,self->getNumberOfComponents()); + MCAuto ret2=self->clone(false); ret2->setArray(aaa); *self*=*ret2; Py_XINCREF(trueSelf); @@ -4038,7 +4877,7 @@ namespace ParaMEDMEM { if(!self->getArray()) throw INTERP_KERNEL::Exception(msg2); - MEDCouplingAutoRefCountObjectPtr aaa=DataArrayDouble::New(); aaa->useArray(&bb[0],false,CPP_DEALLOC,1,(int)bb.size()); + MCAuto aaa=DataArrayDouble::New(); aaa->useArray(&bb[0],false,CPP_DEALLOC,1,(int)bb.size()); self->getArray()->multiplyEqual(aaa); Py_XINCREF(trueSelf); return trueSelf; @@ -4054,9 +4893,9 @@ namespace ParaMEDMEM const char msg2[]="in MEDCouplingFieldDouble.__idiv__ : self field has no Array of values set !"; void *argp; // - if(SWIG_IsOK(SWIG_ConvertPtr(obj,&argp,SWIGTYPE_p_ParaMEDMEM__MEDCouplingFieldDouble,0|0))) + if(SWIG_IsOK(SWIG_ConvertPtr(obj,&argp,SWIGTYPE_p_MEDCoupling__MEDCouplingFieldDouble,0|0))) { - MEDCouplingFieldDouble *other=reinterpret_cast< ParaMEDMEM::MEDCouplingFieldDouble * >(argp); + MEDCouplingFieldDouble *other=reinterpret_cast< MEDCoupling::MEDCouplingFieldDouble * >(argp); if(other) { *self/=*other; @@ -4072,7 +4911,7 @@ namespace ParaMEDMEM DataArrayDoubleTuple *aa; std::vector bb; int sw; - convertObjToPossibleCpp5(obj,sw,val,a,aa,bb); + convertDoubleStarLikePyObjToCpp_2(obj,sw,val,a,aa,bb); switch(sw) { case 1: @@ -4087,7 +4926,7 @@ namespace ParaMEDMEM } case 2: { - MEDCouplingAutoRefCountObjectPtr ret2=self->clone(false); + MCAuto ret2=self->clone(false); ret2->setArray(a); *self/=*ret2; Py_XINCREF(trueSelf); @@ -4095,8 +4934,8 @@ namespace ParaMEDMEM } case 3: { - MEDCouplingAutoRefCountObjectPtr aaa=aa->buildDADouble(1,self->getNumberOfComponents()); - MEDCouplingAutoRefCountObjectPtr ret2=self->clone(false); + MCAuto aaa=aa->buildDADouble(1,self->getNumberOfComponents()); + MCAuto ret2=self->clone(false); ret2->setArray(aaa); *self/=*ret2; Py_XINCREF(trueSelf); @@ -4106,7 +4945,7 @@ namespace ParaMEDMEM { if(!self->getArray()) throw INTERP_KERNEL::Exception(msg2); - MEDCouplingAutoRefCountObjectPtr aaa=DataArrayDouble::New(); aaa->useArray(&bb[0],false,CPP_DEALLOC,1,(int)bb.size()); + MCAuto aaa=DataArrayDouble::New(); aaa->useArray(&bb[0],false,CPP_DEALLOC,1,(int)bb.size()); self->getArray()->divideEqual(aaa); Py_XINCREF(trueSelf); return trueSelf; @@ -4122,9 +4961,9 @@ namespace ParaMEDMEM const char msg2[]="in MEDCouplingFieldDouble.__ipow__ : self field has no Array of values set !"; void *argp; // - if(SWIG_IsOK(SWIG_ConvertPtr(obj,&argp,SWIGTYPE_p_ParaMEDMEM__MEDCouplingFieldDouble,0|0))) + if(SWIG_IsOK(SWIG_ConvertPtr(obj,&argp,SWIGTYPE_p_MEDCoupling__MEDCouplingFieldDouble,0|0))) { - MEDCouplingFieldDouble *other=reinterpret_cast< ParaMEDMEM::MEDCouplingFieldDouble * >(argp); + MEDCouplingFieldDouble *other=reinterpret_cast< MEDCoupling::MEDCouplingFieldDouble * >(argp); if(other) { *self^=*other; @@ -4140,7 +4979,7 @@ namespace ParaMEDMEM DataArrayDoubleTuple *aa; std::vector bb; int sw; - convertObjToPossibleCpp5(obj,sw,val,a,aa,bb); + convertDoubleStarLikePyObjToCpp_2(obj,sw,val,a,aa,bb); switch(sw) { case 1: @@ -4153,7 +4992,7 @@ namespace ParaMEDMEM } case 2: { - MEDCouplingAutoRefCountObjectPtr ret2=self->clone(false); + MCAuto ret2=self->clone(false); ret2->setArray(a); *self^=*ret2; Py_XINCREF(trueSelf); @@ -4161,8 +5000,8 @@ namespace ParaMEDMEM } case 3: { - MEDCouplingAutoRefCountObjectPtr aaa=aa->buildDADouble(1,self->getNumberOfComponents()); - MEDCouplingAutoRefCountObjectPtr ret2=self->clone(false); + MCAuto aaa=aa->buildDADouble(1,self->getNumberOfComponents()); + MCAuto ret2=self->clone(false); ret2->setArray(aaa); *self^=*ret2; Py_XINCREF(trueSelf); @@ -4172,7 +5011,7 @@ namespace ParaMEDMEM { if(!self->getArray()) throw INTERP_KERNEL::Exception(msg2); - MEDCouplingAutoRefCountObjectPtr aaa=DataArrayDouble::New(); aaa->useArray(&bb[0],false,CPP_DEALLOC,1,(int)bb.size()); + MCAuto aaa=DataArrayDouble::New(); aaa->useArray(&bb[0],false,CPP_DEALLOC,1,(int)bb.size()); self->getArray()->powEqual(aaa); Py_XINCREF(trueSelf); return trueSelf; @@ -4185,15 +5024,35 @@ namespace ParaMEDMEM static MEDCouplingFieldDouble *MergeFields(PyObject *li) throw(INTERP_KERNEL::Exception) { std::vector tmp; - convertFromPyObjVectorOfObj(li,SWIGTYPE_p_ParaMEDMEM__MEDCouplingFieldDouble,"MEDCouplingFieldDouble",tmp); + convertFromPyObjVectorOfObj(li,SWIGTYPE_p_MEDCoupling__MEDCouplingFieldDouble,"MEDCouplingFieldDouble",tmp); 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); + convertFromPyObjVectorOfObj(li,SWIGTYPE_p_MEDCoupling__MEDCouplingFieldDouble,"MEDCouplingFieldDouble",tmp); + return MEDCouplingFieldDouble::WriteVTK(fileName,tmp,isBinary); + } + + PyObject *getTinySerializationInformation() const throw(INTERP_KERNEL::Exception) + { + return field_getTinySerializationInformation(self); + } + + PyObject *serialize() const throw(INTERP_KERNEL::Exception) + { + return field_serialize(self); + } + + PyObject *__getstate__() const throw(INTERP_KERNEL::Exception) + { + return field__getstate__(self,MEDCoupling_MEDCouplingFieldDouble_getTinySerializationInformation,MEDCoupling_MEDCouplingFieldDouble_serialize); + } + + void __setstate__(PyObject *inp) throw(INTERP_KERNEL::Exception) + { + field__setstate__(self,inp); } } }; @@ -4202,12 +5061,12 @@ namespace ParaMEDMEM { public: int getNumberOfFields() const; - MEDCouplingMultiFields *deepCpy() const; + MEDCouplingMultiFields *deepCopy() const; virtual std::string simpleRepr() const throw(INTERP_KERNEL::Exception); virtual std::string advancedRepr() const throw(INTERP_KERNEL::Exception); virtual bool isEqual(const MEDCouplingMultiFields *other, double meshPrec, double valsPrec) const; virtual bool isEqualWithoutConsideringStr(const MEDCouplingMultiFields *other, double meshPrec, double valsPrec) const; - virtual void checkCoherency() const throw(INTERP_KERNEL::Exception); + virtual void checkConsistencyLight() const throw(INTERP_KERNEL::Exception); %extend { std::string __str__() const throw(INTERP_KERNEL::Exception) @@ -4216,8 +5075,8 @@ namespace ParaMEDMEM } static MEDCouplingMultiFields *New(PyObject *li) throw(INTERP_KERNEL::Exception) { - std::vector tmp; - convertFromPyObjVectorOfObj(li,SWIGTYPE_p_ParaMEDMEM__MEDCouplingFieldDouble,"MEDCouplingFieldDouble",tmp); + std::vector tmp; + convertFromPyObjVectorOfObj(li,SWIGTYPE_p_MEDCoupling__MEDCouplingFieldDouble,"MEDCouplingFieldDouble",tmp); int sz=tmp.size(); std::vector fs(sz); for(int i=0;i tmp; - convertFromPyObjVectorOfObj(li,SWIGTYPE_p_ParaMEDMEM__MEDCouplingFieldDouble,"MEDCouplingFieldDouble",tmp); + std::vector tmp; + convertFromPyObjVectorOfObj(li,SWIGTYPE_p_MEDCoupling__MEDCouplingFieldDouble,"MEDCouplingFieldDouble",tmp); int sz=tmp.size(); std::vector fs(sz); for(int i=0;iincrRef(); - PyList_SetItem(res,i,SWIG_NewPointerObj(SWIG_as_voidptr(fields[i]),SWIGTYPE_p_ParaMEDMEM__MEDCouplingFieldDouble, SWIG_POINTER_OWN | 0 )); + PyList_SetItem(res,i,SWIG_NewPointerObj(SWIG_as_voidptr(fields[i]),SWIGTYPE_p_MEDCoupling__MEDCouplingFieldDouble, SWIG_POINTER_OWN | 0 )); } else { - PyList_SetItem(res,i,SWIG_NewPointerObj(SWIG_as_voidptr(0),SWIGTYPE_p_ParaMEDMEM__MEDCouplingFieldDouble, 0 )); + PyList_SetItem(res,i,SWIG_NewPointerObj(SWIG_as_voidptr(0),SWIGTYPE_p_MEDCoupling__MEDCouplingFieldDouble, 0 )); } } return res; @@ -4259,10 +5118,10 @@ namespace ParaMEDMEM if(ret) { ret->incrRef(); - return SWIG_NewPointerObj(SWIG_as_voidptr(ret),SWIGTYPE_p_ParaMEDMEM__MEDCouplingFieldDouble, SWIG_POINTER_OWN | 0 ); + return SWIG_NewPointerObj(SWIG_as_voidptr(ret),SWIGTYPE_p_MEDCoupling__MEDCouplingFieldDouble, SWIG_POINTER_OWN | 0 ); } else - return SWIG_NewPointerObj(SWIG_as_voidptr(0),SWIGTYPE_p_ParaMEDMEM__MEDCouplingFieldDouble, 0 ); + return SWIG_NewPointerObj(SWIG_as_voidptr(0),SWIGTYPE_p_MEDCoupling__MEDCouplingFieldDouble, 0 ); } PyObject *getMeshes() const throw(INTERP_KERNEL::Exception) { @@ -4278,7 +5137,7 @@ namespace ParaMEDMEM } else { - PyList_SetItem(res,i,SWIG_NewPointerObj(SWIG_as_voidptr(0),SWIGTYPE_p_ParaMEDMEM__MEDCouplingUMesh, 0 )); + PyList_SetItem(res,i,SWIG_NewPointerObj(SWIG_as_voidptr(0),SWIGTYPE_p_MEDCoupling__MEDCouplingUMesh, 0 )); } } return res; @@ -4298,7 +5157,7 @@ namespace ParaMEDMEM } else { - PyList_SetItem(res,i,SWIG_NewPointerObj(SWIG_as_voidptr(0),SWIGTYPE_p_ParaMEDMEM__MEDCouplingUMesh, 0 )); + PyList_SetItem(res,i,SWIG_NewPointerObj(SWIG_as_voidptr(0),SWIGTYPE_p_MEDCoupling__MEDCouplingUMesh, 0 )); } } // @@ -4317,11 +5176,11 @@ namespace ParaMEDMEM if(ms[i]) { ms[i]->incrRef(); - PyList_SetItem(res,i,SWIG_NewPointerObj(SWIG_as_voidptr(ms[i]),SWIGTYPE_p_ParaMEDMEM__DataArrayDouble, SWIG_POINTER_OWN | 0 )); + PyList_SetItem(res,i,SWIG_NewPointerObj(SWIG_as_voidptr(ms[i]),SWIGTYPE_p_MEDCoupling__DataArrayDouble, SWIG_POINTER_OWN | 0 )); } else { - PyList_SetItem(res,i,SWIG_NewPointerObj(SWIG_as_voidptr(0),SWIGTYPE_p_ParaMEDMEM__DataArrayDouble, 0 )); + PyList_SetItem(res,i,SWIG_NewPointerObj(SWIG_as_voidptr(0),SWIGTYPE_p_MEDCoupling__DataArrayDouble, 0 )); } } return res; @@ -4338,11 +5197,11 @@ namespace ParaMEDMEM if(ms[i]) { ms[i]->incrRef(); - PyList_SetItem(res,i,SWIG_NewPointerObj(SWIG_as_voidptr(ms[i]),SWIGTYPE_p_ParaMEDMEM__DataArrayDouble, SWIG_POINTER_OWN | 0 )); + PyList_SetItem(res,i,SWIG_NewPointerObj(SWIG_as_voidptr(ms[i]),SWIGTYPE_p_MEDCoupling__DataArrayDouble, SWIG_POINTER_OWN | 0 )); } else { - PyList_SetItem(res,i,SWIG_NewPointerObj(SWIG_as_voidptr(0),SWIGTYPE_p_ParaMEDMEM__DataArrayDouble, 0 )); + PyList_SetItem(res,i,SWIG_NewPointerObj(SWIG_as_voidptr(0),SWIGTYPE_p_MEDCoupling__DataArrayDouble, 0 )); } PyList_SetItem(res2,i,convertIntArrToPyList2(refs[i])); } @@ -4354,6 +5213,210 @@ namespace ParaMEDMEM } } }; + + class MEDCouplingFieldInt : public MEDCouplingFieldT + { + public: + static MEDCouplingFieldInt *New(TypeOfField type, TypeOfTimeDiscretization td=ONE_TIME); + static MEDCouplingFieldInt *New(const MEDCouplingFieldTemplate& ft, TypeOfTimeDiscretization td=ONE_TIME); + bool isEqual(const MEDCouplingFieldInt *other, double meshPrec, int valsPrec) const throw(INTERP_KERNEL::Exception); + bool isEqualWithoutConsideringStr(const MEDCouplingFieldInt *other, double meshPrec, int valsPrec) const throw(INTERP_KERNEL::Exception); + void setTimeUnit(const std::string& unit) throw(INTERP_KERNEL::Exception); + std::string getTimeUnit() const throw(INTERP_KERNEL::Exception); + void setTime(double val, int iteration, int order) throw(INTERP_KERNEL::Exception); + void setArray(DataArrayInt *array) throw(INTERP_KERNEL::Exception); + MEDCouplingFieldInt *deepCopy() const throw(INTERP_KERNEL::Exception); + MEDCouplingFieldInt *clone(bool recDeepCpy) const throw(INTERP_KERNEL::Exception); + MEDCouplingFieldInt *cloneWithMesh(bool recDeepCpy) const throw(INTERP_KERNEL::Exception); + MEDCouplingFieldDouble *convertToDblField() const throw(INTERP_KERNEL::Exception); + MEDCouplingFieldInt *buildSubPartRange(int begin, int end, int step) const throw(INTERP_KERNEL::Exception); + %extend { + MEDCouplingFieldInt(TypeOfField type, TypeOfTimeDiscretization td=ONE_TIME) + { + return MEDCouplingFieldInt::New(type,td); + } + + MEDCouplingFieldInt(const MEDCouplingFieldTemplate& ft, TypeOfTimeDiscretization td=ONE_TIME) + { + return MEDCouplingFieldInt::New(ft,td); + } + + PyObject *isEqualIfNotWhy(const MEDCouplingFieldInt *other, double meshPrec, int valsPrec) const throw(INTERP_KERNEL::Exception) + { + std::string ret1; + bool ret0=self->isEqualIfNotWhy(other,meshPrec,valsPrec,ret1); + PyObject *ret=PyTuple_New(2); + PyObject *ret0Py=ret0?Py_True:Py_False; + Py_XINCREF(ret0Py); + PyTuple_SetItem(ret,0,ret0Py); + PyTuple_SetItem(ret,1,PyString_FromString(ret1.c_str())); + return ret; + } + + std::string __str__() const throw(INTERP_KERNEL::Exception) + { + return self->simpleRepr(); + } + + std::string __repr__() const throw(INTERP_KERNEL::Exception) + { + std::ostringstream oss; + self->reprQuickOverview(oss); + return oss.str(); + } + + MEDCouplingFieldInt *buildSubPart(PyObject *li) const throw(INTERP_KERNEL::Exception) + { + return fieldT_buildSubPart(self,li); + } + + MEDCouplingFieldInt *__getitem__(PyObject *li) const throw(INTERP_KERNEL::Exception) + { + return fieldT__getitem__(self,li); + } + + DataArrayInt *getArray() throw(INTERP_KERNEL::Exception) + { + DataArrayInt *ret=self->getArray(); + if(ret) + ret->incrRef(); + return ret; + } + + PyObject *getTime() throw(INTERP_KERNEL::Exception) + { + int tmp1,tmp2; + double tmp0=self->getTime(tmp1,tmp2); + PyObject *res = PyList_New(3); + PyList_SetItem(res,0,SWIG_From_double(tmp0)); + PyList_SetItem(res,1,SWIG_From_int(tmp1)); + PyList_SetItem(res,2,SWIG_From_int(tmp2)); + return res; + } + + PyObject *getTinySerializationInformation() const throw(INTERP_KERNEL::Exception) + { + return field_getTinySerializationInformation(self); + } + + PyObject *serialize() const throw(INTERP_KERNEL::Exception) + { + return field_serialize(self); + } + + PyObject *__getstate__() const throw(INTERP_KERNEL::Exception) + { + return field__getstate__(self,MEDCoupling_MEDCouplingFieldInt_getTinySerializationInformation,MEDCoupling_MEDCouplingFieldInt_serialize); + } + + void __setstate__(PyObject *inp) throw(INTERP_KERNEL::Exception) + { + field__setstate__(self,inp); + } + } + }; + + class MEDCouplingFieldFloat : public MEDCouplingFieldT + { + public: + static MEDCouplingFieldFloat *New(TypeOfField type, TypeOfTimeDiscretization td=ONE_TIME); + static MEDCouplingFieldFloat *New(const MEDCouplingFieldTemplate& ft, TypeOfTimeDiscretization td=ONE_TIME); + bool isEqual(const MEDCouplingFieldFloat *other, double meshPrec, float valsPrec) const throw(INTERP_KERNEL::Exception); + bool isEqualWithoutConsideringStr(const MEDCouplingFieldFloat *other, double meshPrec, float valsPrec) const throw(INTERP_KERNEL::Exception); + void setTimeUnit(const std::string& unit) throw(INTERP_KERNEL::Exception); + std::string getTimeUnit() const throw(INTERP_KERNEL::Exception); + void setTime(double val, int iteration, int order) throw(INTERP_KERNEL::Exception); + void setArray(DataArrayFloat *array) throw(INTERP_KERNEL::Exception); + MEDCouplingFieldFloat *deepCopy() const throw(INTERP_KERNEL::Exception); + MEDCouplingFieldFloat *clone(bool recDeepCpy) const throw(INTERP_KERNEL::Exception); + MEDCouplingFieldFloat *cloneWithMesh(bool recDeepCpy) const throw(INTERP_KERNEL::Exception); + MEDCouplingFieldDouble *convertToDblField() const throw(INTERP_KERNEL::Exception); + MEDCouplingFieldFloat *buildSubPartRange(int begin, int end, int step) const throw(INTERP_KERNEL::Exception); + %extend { + MEDCouplingFieldFloat(TypeOfField type, TypeOfTimeDiscretization td=ONE_TIME) + { + return MEDCouplingFieldFloat::New(type,td); + } + + MEDCouplingFieldFloat(const MEDCouplingFieldTemplate& ft, TypeOfTimeDiscretization td=ONE_TIME) + { + return MEDCouplingFieldFloat::New(ft,td); + } + + PyObject *isEqualIfNotWhy(const MEDCouplingFieldFloat *other, double meshPrec, float valsPrec) const throw(INTERP_KERNEL::Exception) + { + std::string ret1; + bool ret0=self->isEqualIfNotWhy(other,meshPrec,valsPrec,ret1); + PyObject *ret=PyTuple_New(2); + PyObject *ret0Py=ret0?Py_True:Py_False; + Py_XINCREF(ret0Py); + PyTuple_SetItem(ret,0,ret0Py); + PyTuple_SetItem(ret,1,PyString_FromString(ret1.c_str())); + return ret; + } + + std::string __str__() const throw(INTERP_KERNEL::Exception) + { + return self->simpleRepr(); + } + + std::string __repr__() const throw(INTERP_KERNEL::Exception) + { + std::ostringstream oss; + self->reprQuickOverview(oss); + return oss.str(); + } + + MEDCouplingFieldFloat *buildSubPart(PyObject *li) const throw(INTERP_KERNEL::Exception) + { + return fieldT_buildSubPart(self,li); + } + + MEDCouplingFieldFloat *__getitem__(PyObject *li) const throw(INTERP_KERNEL::Exception) + { + return fieldT__getitem__(self,li); + } + + DataArrayFloat *getArray() throw(INTERP_KERNEL::Exception) + { + DataArrayFloat *ret=self->getArray(); + if(ret) + ret->incrRef(); + return ret; + } + + PyObject *getTime() throw(INTERP_KERNEL::Exception) + { + int tmp1,tmp2; + double tmp0=self->getTime(tmp1,tmp2); + PyObject *res = PyList_New(3); + PyList_SetItem(res,0,SWIG_From_double(tmp0)); + PyList_SetItem(res,1,SWIG_From_int(tmp1)); + PyList_SetItem(res,2,SWIG_From_int(tmp2)); + return res; + } + + PyObject *getTinySerializationInformation() const throw(INTERP_KERNEL::Exception) + { + return field_getTinySerializationInformation(self); + } + + PyObject *serialize() const throw(INTERP_KERNEL::Exception) + { + return field_serialize(self); + } + + PyObject *__getstate__() const throw(INTERP_KERNEL::Exception) + { + return field__getstate__(self,MEDCoupling_MEDCouplingFieldFloat_getTinySerializationInformation,MEDCoupling_MEDCouplingFieldFloat_serialize); + } + + void __setstate__(PyObject *inp) throw(INTERP_KERNEL::Exception) + { + field__setstate__(self,inp); + } + } + }; class MEDCouplingDefinitionTime { @@ -4408,8 +5471,8 @@ namespace ParaMEDMEM { MEDCouplingFieldOverTime(PyObject *li) throw(INTERP_KERNEL::Exception) { - std::vector tmp; - convertFromPyObjVectorOfObj(li,SWIGTYPE_p_ParaMEDMEM__MEDCouplingFieldDouble,"MEDCouplingFieldDouble",tmp); + std::vector tmp; + convertFromPyObjVectorOfObj(li,SWIGTYPE_p_MEDCoupling__MEDCouplingFieldDouble,"MEDCouplingFieldDouble",tmp); int sz=tmp.size(); std::vector fs(sz); for(int i=0;i tmp; - convertFromPyObjVectorOfObj(li,SWIGTYPE_p_ParaMEDMEM__MEDCouplingFieldDouble,"MEDCouplingFieldDouble",tmp); + std::vector tmp; + convertFromPyObjVectorOfObj(li,SWIGTYPE_p_MEDCoupling__MEDCouplingFieldDouble,"MEDCouplingFieldDouble",tmp); int sz=tmp.size(); std::vector fs(sz); for(int i=0;i(self->getMesh())); + if(ret) + ret->incrRef(); + return ret; + } + } + }; + + class MEDCouplingCartesianAMRPatch : public MEDCouplingCartesianAMRPatchGen + { + public: + int getNumberOfOverlapedCellsForFather() const throw(INTERP_KERNEL::Exception); + bool isInMyNeighborhood(const MEDCouplingCartesianAMRPatch *other, int ghostLev) const throw(INTERP_KERNEL::Exception); + std::vector computeCellGridSt() const throw(INTERP_KERNEL::Exception); + %extend + { + PyObject *getBLTRRange() const throw(INTERP_KERNEL::Exception) + { + const std::vector< std::pair >& ret(self->getBLTRRange()); + return convertFromVectorPairInt(ret); + } + + PyObject *getBLTRRangeRelativeToGF() const throw(INTERP_KERNEL::Exception) + { + std::vector< std::pair > ret(self->getBLTRRangeRelativeToGF()); + return convertFromVectorPairInt(ret); + } + + void addPatch(PyObject *bottomLeftTopRight, const std::vector& factors) throw(INTERP_KERNEL::Exception) + { + std::vector< std::pair > inp; + convertPyToVectorPairInt(bottomLeftTopRight,inp); + self->addPatch(inp,factors); + } + + MEDCouplingCartesianAMRPatch *__getitem__(int patchId) const throw(INTERP_KERNEL::Exception) + { + const MEDCouplingCartesianAMRMeshGen *mesh(self->getMesh()); + if(!mesh) + throw INTERP_KERNEL::Exception("wrap MEDCouplingCartesianAMRPatchGen.__getitem__ : no underlying mesh !"); + if(patchId==mesh->getNumberOfPatches()) + { + std::ostringstream oss; + oss << "Requesting for patchId " << patchId << " having only " << mesh->getNumberOfPatches() << " patches !"; + PyErr_SetString(PyExc_StopIteration,oss.str().c_str()); + return 0; + } + MEDCouplingCartesianAMRPatch *ret(const_cast(mesh->getPatch(patchId))); + if(ret) + ret->incrRef(); + return ret; + } + + void __delitem__(int patchId) throw(INTERP_KERNEL::Exception) + { + MEDCouplingCartesianAMRMeshGen *mesh(const_cast(self->getMesh())); + if(!mesh) + throw INTERP_KERNEL::Exception("wrap MEDCouplingCartesianAMRPatch.__delitem__ : no underlying mesh !"); + mesh->removePatch(patchId); + } + + int __len__() const throw(INTERP_KERNEL::Exception) + { + const MEDCouplingCartesianAMRMeshGen *mesh(self->getMesh()); + if(!mesh) + throw INTERP_KERNEL::Exception("wrap MEDCouplingCartesianAMRPatch.__len__ : no underlying mesh !"); + return mesh->getNumberOfPatches(); + } + } + }; + + class MEDCouplingCartesianAMRPatchGF : public MEDCouplingCartesianAMRPatchGen + { + }; + + class MEDCouplingCartesianAMRMeshGen : public RefCountObject, public TimeLabel + { + public: + 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); + int getMaxNumberOfLevelsRelativeToThis() const throw(INTERP_KERNEL::Exception); + int getNumberOfCellsAtCurrentLevel() const throw(INTERP_KERNEL::Exception); + int getNumberOfCellsAtCurrentLevelGhost(int ghostLev) const throw(INTERP_KERNEL::Exception); + 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); + MEDCouplingUMesh *buildUnstructured() const throw(INTERP_KERNEL::Exception); + DataArrayDouble *extractGhostFrom(int ghostSz, const DataArrayDouble *arr) const throw(INTERP_KERNEL::Exception); + std::vector getPatchIdsInTheNeighborhoodOf(int patchId, int ghostLev) const throw(INTERP_KERNEL::Exception); + MEDCoupling1SGTUMesh *buildMeshFromPatchEnvelop() const throw(INTERP_KERNEL::Exception); + MEDCoupling1SGTUMesh *buildMeshOfDirectChildrenOnly() const throw(INTERP_KERNEL::Exception); + void removeAllPatches() throw(INTERP_KERNEL::Exception); + void removePatch(int patchId) 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, 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, 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) + { + std::vector< std::pair > inp; + convertPyToVectorPairInt(bottomLeftTopRight,inp); + self->addPatch(inp,factors); + } + + PyObject *getPatches() const throw(INTERP_KERNEL::Exception) + { + std::vector< const MEDCouplingCartesianAMRPatch *> ps(self->getPatches()); + int sz(ps.size()); + PyObject *ret = PyList_New(sz); + for(int i=0;i(ps[i])); + if(elt) + elt->incrRef(); + PyList_SetItem(ret,i,convertCartesianAMRPatch(elt, SWIG_POINTER_OWN | 0 )); + } + return ret; + } + + // agy : don't know why typemap fails here ??? let it in the extend section + PyObject *deepCopy(MEDCouplingCartesianAMRMeshGen *father) const throw(INTERP_KERNEL::Exception) + { + return convertCartesianAMRMesh(self->deepCopy(father), SWIG_POINTER_OWN | 0 ); + } + + 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 *positionRelativeToGodFather() const throw(INTERP_KERNEL::Exception) + { + std::vector out1; + std::vector< std::pair > out0(self->positionRelativeToGodFather(out1)); + PyObject *ret(PyTuple_New(2)); + PyTuple_SetItem(ret,0,convertFromVectorPairInt(out0)); + PyTuple_SetItem(ret,1,convertIntArrToPyList2(out1)); + return ret; + } + + virtual PyObject *retrieveGridsAt(int absoluteLev) const throw(INTERP_KERNEL::Exception) + { + std::vector ps(self->retrieveGridsAt(absoluteLev)); + int sz(ps.size()); + PyObject *ret = PyList_New(sz); + for(int i=0;i inp; + convertFromPyObjVectorOfObj(recurseArrs,SWIGTYPE_p_MEDCoupling__DataArrayDouble,"DataArrayDouble",inp); + return self->buildCellFieldOnRecurseWithoutOverlapWithoutGhost(ghostSz,inp); + } + + virtual MEDCouplingCartesianAMRMeshGen *getFather() const throw(INTERP_KERNEL::Exception) + { + MEDCouplingCartesianAMRMeshGen *ret(const_cast(self->getFather())); + if(ret) + ret->incrRef(); + return ret; + } + + virtual MEDCouplingCartesianAMRMeshGen *getGodFather() const throw(INTERP_KERNEL::Exception) + { + MEDCouplingCartesianAMRMeshGen *ret(const_cast(self->getGodFather())); + if(ret) + ret->incrRef(); + return ret; + } + + MEDCouplingCartesianAMRPatch *getPatch(int patchId) const throw(INTERP_KERNEL::Exception) + { + MEDCouplingCartesianAMRPatch *ret(const_cast(self->getPatch(patchId))); + if(ret) + ret->incrRef(); + return ret; + } + + MEDCouplingIMesh *getImageMesh() const throw(INTERP_KERNEL::Exception) + { + const MEDCouplingIMesh *ret(self->getImageMesh()); + if(ret) + ret->incrRef(); + return const_cast(ret); + } + + MEDCouplingCartesianAMRPatch *__getitem__(int patchId) const throw(INTERP_KERNEL::Exception) + { + if(patchId==self->getNumberOfPatches()) + { + std::ostringstream oss; + oss << "Requesting for patchId " << patchId << " having only " << self->getNumberOfPatches() << " patches !"; + PyErr_SetString(PyExc_StopIteration,oss.str().c_str()); + return 0; + } + MEDCouplingCartesianAMRPatch *ret(const_cast(self->getPatch(patchId))); + if(ret) + ret->incrRef(); + return ret; + } + + 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_MEDCoupling__DataArrayDouble,"DataArrayDouble",arrsOnPatches2); + self->fillCellFieldOnPatchGhostAdv(patchId,cellFieldOnThis,ghostLev,arrsOnPatches2,isConservative); + } + + void fillCellFieldOnPatchOnlyGhostAdv(int patchId, int ghostLev, PyObject *arrsOnPatches) const + { + std::vector arrsOnPatches2; + convertFromPyObjVectorOfObj(arrsOnPatches,SWIGTYPE_p_MEDCoupling__DataArrayDouble,"DataArrayDouble",arrsOnPatches2); + self->fillCellFieldOnPatchOnlyGhostAdv(patchId,ghostLev,arrsOnPatches2); + } + + void __delitem__(int patchId) throw(INTERP_KERNEL::Exception) + { + self->removePatch(patchId); + } + + int __len__() const throw(INTERP_KERNEL::Exception) + { + return self->getNumberOfPatches(); + } + } + }; + + class MEDCouplingCartesianAMRMeshSub : public MEDCouplingCartesianAMRMeshGen + { + }; + + class MEDCouplingCartesianAMRMesh : public MEDCouplingCartesianAMRMeshGen + { + public: + static MEDCouplingCartesianAMRMesh *New(MEDCouplingIMesh *mesh) throw(INTERP_KERNEL::Exception); + %extend + { + static MEDCouplingCartesianAMRMesh *New(const std::string& meshName, int spaceDim, PyObject *nodeStrct, PyObject *origin, PyObject *dxyz) throw(INTERP_KERNEL::Exception) + { + static const char msg0[]="MEDCouplingCartesianAMRMesh::New : error on 'origin' parameter !"; + static const char msg1[]="MEDCouplingCartesianAMRMesh::New : error on 'dxyz' parameter !"; + const int *nodeStrctPtr(0); + const double *originPtr(0),*dxyzPtr(0); + int sw,sz,val0; + std::vector bb0; + nodeStrctPtr=convertIntStarLikePyObjToCppIntStar(nodeStrct,sw,sz,val0,bb0); + // + double val,val2; + std::vector bb,bb2; + int sz1,sz2; + originPtr=convertObjToPossibleCpp5_SingleCompo(origin,sw,val,bb,msg0,false,sz1); + dxyzPtr=convertObjToPossibleCpp5_SingleCompo(dxyz,sw,val2,bb2,msg1,false,sz2); + // + return MEDCouplingCartesianAMRMesh::New(meshName,spaceDim,nodeStrctPtr,nodeStrctPtr+sz,originPtr,originPtr+sz1,dxyzPtr,dxyzPtr+sz2); + } + + void createPatchesFromCriterionML(PyObject *bso, const DataArrayDouble *criterion, PyObject *factors, double eps) throw(INTERP_KERNEL::Exception) + { + 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); + } + + MEDCouplingCartesianAMRMesh(const std::string& meshName, int spaceDim, PyObject *nodeStrct, PyObject *origin, PyObject *dxyz) throw(INTERP_KERNEL::Exception) + { + return MEDCoupling_MEDCouplingCartesianAMRMesh_New__SWIG_1(meshName,spaceDim,nodeStrct,origin,dxyz); + } + + MEDCouplingCartesianAMRMesh(MEDCouplingIMesh *mesh) throw(INTERP_KERNEL::Exception) + { + return MEDCouplingCartesianAMRMesh::New(mesh); + } + } + }; + + 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) + { + MEDCouplingCartesianAMRMesh *ret(self->getMyGodFather()); + if(ret) + ret->incrRef(); + return ret; + } + } + }; + + class MEDCouplingAMRAttribute : public MEDCouplingDataForGodFather, public TimeLabel + { + public: + int getNumberOfLevels() const throw(INTERP_KERNEL::Exception); + MEDCouplingAMRAttribute *deepCopy() 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); + bool changeGodFather(MEDCouplingCartesianAMRMesh *gf) throw(INTERP_KERNEL::Exception); + MEDCouplingAMRAttribute *projectTo(MEDCouplingCartesianAMRMesh *targetGF) const throw(INTERP_KERNEL::Exception); + std::string writeVTHB(const std::string& fileName) const throw(INTERP_KERNEL::Exception); + %extend + { + static MEDCouplingAMRAttribute *New(MEDCouplingCartesianAMRMesh *gf, PyObject *fieldNames, int ghostLev) throw(INTERP_KERNEL::Exception) + { + std::vector< std::pair > fieldNamesCpp0; + std::vector< std::pair > > fieldNamesCpp1; + MEDCouplingAMRAttribute *ret(0); + try + { + convertPyToVectorPairStringInt(fieldNames,fieldNamesCpp0); + ret=MEDCouplingAMRAttribute::New(gf,fieldNamesCpp0,ghostLev); + } + catch(INTERP_KERNEL::Exception&) + { + convertPyToVectorPairStringVecString(fieldNames,fieldNamesCpp1); + ret=MEDCouplingAMRAttribute::New(gf,fieldNamesCpp1,ghostLev); + } + return ret; + } + + MEDCouplingAMRAttribute(MEDCouplingCartesianAMRMesh *gf, PyObject *fieldNames, int ghostLev) throw(INTERP_KERNEL::Exception) + { + return MEDCoupling_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)); + DataArrayDouble *ret2(const_cast(ret)); + if(ret2) + ret2->incrRef(); + return ret2; + } + + void spillInfoOnComponents(PyObject *compNames) throw(INTERP_KERNEL::Exception) + { + std::vector< std::vector > compNamesCpp; + 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) + { + std::vector ret(self->retrieveFieldsOn(mesh)); + int sz((int)ret.size()); + PyObject *retPy(PyList_New(sz)); + for(int i=0;iisEqualIfNotWhy(other,eps,ret1); + PyObject *ret=PyTuple_New(2); + PyObject *ret0Py=ret0?Py_True:Py_False; + Py_XINCREF(ret0Py); + PyTuple_SetItem(ret,0,ret0Py); + PyTuple_SetItem(ret,1,PyString_FromString(ret1.c_str())); + return ret; + } + + DataArrayDouble *getData() throw(INTERP_KERNEL::Exception) + { + DataArrayDouble *ret(self->getData()); + if(ret) + ret->incrRef(); + return ret; + } + + DenseMatrix *__add__(const DenseMatrix *other) throw(INTERP_KERNEL::Exception) + { + return MEDCoupling::DenseMatrix::Add(self,other); + } + + DenseMatrix *__sub__(const DenseMatrix *other) throw(INTERP_KERNEL::Exception) + { + return MEDCoupling::DenseMatrix::Substract(self,other); + } + + DenseMatrix *__mul__(const DenseMatrix *other) throw(INTERP_KERNEL::Exception) + { + return MEDCoupling::DenseMatrix::Multiply(self,other); + } + + DenseMatrix *__mul__(const DataArrayDouble *other) throw(INTERP_KERNEL::Exception) + { + return MEDCoupling::DenseMatrix::Multiply(self,other); + } + + PyObject *___iadd___(PyObject *trueSelf, const DenseMatrix *other) throw(INTERP_KERNEL::Exception) + { + self->addEqual(other); + Py_XINCREF(trueSelf); + return trueSelf; + } + + PyObject *___isub___(PyObject *trueSelf, const DenseMatrix *other) throw(INTERP_KERNEL::Exception) + { + self->substractEqual(other); + Py_XINCREF(trueSelf); + return trueSelf; + } +#ifdef WITH_NUMPY + PyObject *toNumPyMatrix() throw(INTERP_KERNEL::Exception) // not const. It is not a bug ! + { + PyObject *obj(ToNumPyArrayUnderground(self->getData(),NPY_DOUBLE,"DataArrayDouble",self->getNumberOfRows(),self->getNumberOfCols())); + return obj; + } +#endif + } + }; } +%pythoncode %{ +def MEDCouplingUMeshReduce(self): + return MEDCouplingStdReduceFunct,(MEDCouplingUMesh,((),(self.__getstate__()),)) +def MEDCouplingCMeshReduce(self): + return MEDCouplingStdReduceFunct,(MEDCouplingCMesh,((),(self.__getstate__()),)) +def MEDCouplingIMeshReduce(self): + return MEDCouplingStdReduceFunct,(MEDCouplingIMesh,((),(self.__getstate__()),)) +def MEDCouplingMappedExtrudedMeshReduce(self): + return MEDCouplingStdReduceFunct,(MEDCouplingMappedExtrudedMesh,((),(self.__getstate__()),)) +def MEDCouplingCurveLinearMeshReduce(self): + return MEDCouplingStdReduceFunct,(MEDCouplingCurveLinearMesh,((),(self.__getstate__()),)) +def MEDCoupling1SGTUMeshReduce(self): + return MEDCouplingStdReduceFunct,(MEDCoupling1SGTUMesh,((),(self.__getstate__()),)) +def MEDCoupling1DGTUMeshReduce(self): + return MEDCouplingStdReduceFunct,(MEDCoupling1DGTUMesh,((),(self.__getstate__()),)) +def MEDCouplingFieldDoubleReduce(self): + self.checkConsistencyLight() + d=(self.getTypeOfField(),self.getTimeDiscretization()) + return MEDCouplingStdReduceFunct,(MEDCouplingFieldDouble,(d,(self.__getstate__()),)) +def MEDCouplingFieldIntReduce(self): + self.checkConsistencyLight() + d=(self.getTypeOfField(),self.getTimeDiscretization()) + return MEDCouplingStdReduceFunct,(MEDCouplingFieldInt,(d,(self.__getstate__()),)) +def MEDCouplingFieldFloatReduce(self): + self.checkConsistencyLight() + d=(self.getTypeOfField(),self.getTimeDiscretization()) + return MEDCouplingStdReduceFunct,(MEDCouplingFieldFloat,(d,(self.__getstate__()),)) +%} + %pythoncode %{ import os __filename=os.environ.get('PYTHONSTARTUP') if __filename and os.path.isfile(__filename): - execfile(__filename) + exec(open(__filename).read()) pass %}