SET(SWIG_MODULE_MEDCoupling_EXTRA_FLAGS "${NUMPY_DEFINITIONS};${SCIPY_DEFINITIONS}")
SET (MEDCoupling_SWIG_DPYS_FILES
- MEDCouplingImpl.i
+ MEDCouplingCommon.i
MEDCouplingMemArray.i
MEDCouplingFieldDiscretization.i
MEDCouplingFinalize.i
SET (MC_Swig_interf
MEDCoupling.i
- MEDCouplingImpl.i
- MEDCouplingRemapperImpl.i
+ MEDCouplingCommon.i
+ MEDCouplingRemapperCommon.i
MEDCouplingRefCountObject.i
MEDCouplingMemArray.i
MEDCouplingFieldDiscretization.i
--- /dev/null
+// 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
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+// Author : Anthony Geay (EDF R&D)
+
+#ifdef WITH_DOCSTRINGS
+%include MEDCoupling_doc.i
+#endif
+
+%include std_vector.i
+%include std_string.i
+
+%{
+#include "MEDCouplingMemArray.hxx"
+#include "MEDCouplingUMesh.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 "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 MEDCoupling;
+using namespace INTERP_KERNEL;
+
+%}
+
+%template(ivec) std::vector<int>;
+%template(dvec) std::vector<double>;
+%template(svec) std::vector<std::string>;
+
+////////////////////
+%typemap(out) MEDCoupling::MEDCouplingMesh*
+{
+ $result=convertMesh($1,$owner);
+}
+
+%typemap(out) MEDCouplingMesh*
+{
+ $result=convertMesh($1,$owner);
+}
+//$$$$$$$$$$$$$$$$$$
+
+////////////////////
+%typemap(out) MEDCoupling::MEDCouplingPointSet*
+{
+ $result=convertMesh($1,$owner);
+}
+
+%typemap(out) MEDCouplingPointSet*
+{
+ $result=convertMesh($1,$owner);
+}
+//$$$$$$$$$$$$$$$$$$
+
+////////////////////
+%typemap(out) MEDCouplingCartesianAMRPatchGen*
+{
+ $result=convertCartesianAMRPatch($1,$owner);
+}
+//$$$$$$$$$$$$$$$$$$
+
+////////////////////
+%typemap(out) MEDCouplingCartesianAMRMeshGen*
+{
+ $result=convertCartesianAMRMesh($1,$owner);
+}
+//$$$$$$$$$$$$$$$$$$
+
+////////////////////
+%typemap(out) MEDCouplingDataForGodFather*
+{
+ $result=convertDataForGodFather($1,$owner);
+}
+//$$$$$$$$$$$$$$$$$$
+
+////////////////////
+%typemap(out) MEDCoupling::MEDCoupling1GTUMesh*
+{
+ $result=convertMesh($1,$owner);
+}
+
+%typemap(out) MEDCoupling1GTUMesh*
+{
+ $result=convertMesh($1,$owner);
+}
+//$$$$$$$$$$$$$$$$$$
+
+////////////////////
+%typemap(out) MEDCoupling::MEDCouplingStructuredMesh*
+{
+ $result=convertMesh($1,$owner);
+}
+
+%typemap(out) MEDCouplingStructuredMesh*
+{
+ $result=convertMesh($1,$owner);
+}
+//$$$$$$$$$$$$$$$$$$
+
+////////////////////
+%typemap(out) MEDCoupling::MEDCouplingFieldDiscretization*
+{
+ $result=convertFieldDiscretization($1,$owner);
+}
+
+%typemap(out) MEDCouplingFieldDiscretization*
+{
+ $result=convertFieldDiscretization($1,$owner);
+}
+//$$$$$$$$$$$$$$$$$$
+
+////////////////////
+%typemap(out) MEDCoupling::MEDCouplingField*
+{
+ $result=convertField($1,$owner);
+}
+
+%typemap(out) MEDCouplingField*
+{
+ $result=convertField($1,$owner);
+}
+//$$$$$$$$$$$$$$$$$$
+
+////////////////////
+%typemap(out) MEDCoupling::MEDCouplingMultiFields*
+{
+ $result=convertMultiFields($1,$owner);
+}
+
+%typemap(out) MEDCouplingMultiFields*
+{
+ $result=convertMultiFields($1,$owner);
+}
+//$$$$$$$$$$$$$$$$$$
+
+////////////////////
+%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 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();"
+%feature("unref") MEDCouplingUMesh "$this->decrRef();"
+%feature("unref") MEDCoupling1GTUMesh "$this->decrRef();"
+%feature("unref") MEDCoupling1SGTUMesh "$this->decrRef();"
+%feature("unref") MEDCoupling1DGTUMesh "$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();"
+%feature("unref") MEDCouplingFieldDiscretizationGauss "$this->decrRef();"
+%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 MEDCoupling::MEDCouplingGaussLocalization::pushTinySerializationIntInfo;
+%ignore MEDCoupling::MEDCouplingGaussLocalization::pushTinySerializationDblInfo;
+%ignore MEDCoupling::MEDCouplingGaussLocalization::fillWithValues;
+%ignore MEDCoupling::MEDCouplingGaussLocalization::buildNewInstanceFromTinyInfo;
+
+%nodefaultctor;
+
+%rename (InterpKernelException) INTERP_KERNEL::Exception;
+
+%include "MEDCouplingRefCountObject.i"
+%include "MEDCouplingMemArray.i"
+
+%{
+ void initializeMe()
+ {// AGY : here initialization of C++ traits in MEDCouplingDataArrayTypemaps.i for code factorization. Awful, I know, but no other solutions.
+ SWIGTITraits<double>::TI=SWIGTYPE_p_MEDCoupling__DataArrayDouble;
+ SWIGTITraits<float>::TI=SWIGTYPE_p_MEDCoupling__DataArrayFloat;
+ SWIGTITraits<int>::TI=SWIGTYPE_p_MEDCoupling__DataArrayInt;
+ SWIGTITraits<double>::TI_TUPLE=SWIGTYPE_p_MEDCoupling__DataArrayDoubleTuple;
+ SWIGTITraits<float>::TI_TUPLE=SWIGTYPE_p_MEDCoupling__DataArrayFloatTuple;
+ SWIGTITraits<int>::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
+ {
+ ON_CELLS = 0,
+ ON_NODES = 1,
+ ON_GAUSS_PT = 2,
+ ON_GAUSS_NE = 3,
+ ON_NODES_KR = 4
+ } TypeOfField;
+
+ typedef enum
+ {
+ NO_TIME = 4,
+ ONE_TIME = 5,
+ LINEAR_TIME = 6,
+ CONST_ON_TIME_INTERVAL = 7
+ } TypeOfTimeDiscretization;
+
+ typedef enum
+ {
+ UNSTRUCTURED = 5,
+ CARTESIAN = 7,
+ EXTRUDED = 8,
+ CURVE_LINEAR = 9,
+ SINGLE_STATIC_GEO_TYPE_UNSTRUCTURED = 10,
+ SINGLE_DYNAMIC_GEO_TYPE_UNSTRUCTURED = 11,
+ IMAGE_GRID = 12
+ } MEDCouplingMeshType;
+
+ class DataArrayInt;
+ class DataArrayDouble;
+ class MEDCouplingUMesh;
+ class MEDCouplingCMesh;
+ class MEDCouplingFieldDouble;
+
+ %extend RefCountObject
+ {
+ std::string getHiddenCppPointer() const
+ {
+ std::ostringstream oss; oss << "C++ Pointer address is : " << self;
+ return oss.str();
+ }
+ }
+
+ %extend MEDCouplingGaussLocalization
+ {
+ std::string __str__() const throw(INTERP_KERNEL::Exception)
+ {
+ return self->getStringRepr();
+ }
+
+ std::string __repr__() const throw(INTERP_KERNEL::Exception)
+ {
+ std::ostringstream oss; oss << "MEDCouplingGaussLocalization C++ instance at " << self << "." << std::endl;
+ oss << self->getStringRepr();
+ return oss.str();
+ }
+ }
+
+ //== MEDCouplingMesh
+
+ class MEDCouplingMesh : public RefCountObject, public TimeLabel
+ {
+ public:
+ void setName(const std::string& name);
+ std::string getName() const;
+ void setDescription(const std::string& descr);
+ std::string getDescription() const;
+ void setTime(double val, int iteration, int order);
+ void setTimeUnit(const std::string& unit);
+ std::string getTimeUnit() const;
+ virtual MEDCouplingMeshType getType() const throw(INTERP_KERNEL::Exception);
+ bool isStructured() const throw(INTERP_KERNEL::Exception);
+ 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 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 *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);
+ virtual DataArrayInt *computeNbOfFacesPerCell() const throw(INTERP_KERNEL::Exception);
+ virtual DataArrayInt *computeEffectiveNbOfNodesPerCell() const throw(INTERP_KERNEL::Exception);
+ virtual MEDCouplingMesh *buildPartRange(int beginCellIds, int endCellIds, int stepCellIds) const throw(INTERP_KERNEL::Exception);
+ virtual int getNumberOfCellsWithType(INTERP_KERNEL::NormalizedCellType type) const throw(INTERP_KERNEL::Exception);
+ 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);
+ 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 *fillFromAnalyticCompo(TypeOfField t, int nbOfComp, const std::string& func) const throw(INTERP_KERNEL::Exception);
+ virtual MEDCouplingFieldDouble *fillFromAnalyticNamedCompo(TypeOfField t, int nbOfComp, const std::vector<std::string>& 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<double>& tinyInfoD, const std::vector<int>& tinyInfo, const DataArrayInt *a1, DataArrayDouble *a2, const std::vector<std::string>& 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);
+ static INTERP_KERNEL::NormalizedCellType GetCorrespondingPolyType(INTERP_KERNEL::NormalizedCellType type) throw(INTERP_KERNEL::Exception);
+ static int GetNumberOfNodesOfGeometricType(INTERP_KERNEL::NormalizedCellType type) throw(INTERP_KERNEL::Exception);
+ static int GetDimensionOfGeometricType(INTERP_KERNEL::NormalizedCellType type) throw(INTERP_KERNEL::Exception);
+ static const char *GetReprOfGeometricType(INTERP_KERNEL::NormalizedCellType type) throw(INTERP_KERNEL::Exception);
+ %extend
+ {
+ std::string __str__() const throw(INTERP_KERNEL::Exception)
+ {
+ return self->simpleRepr();
+ }
+
+ 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;
+ }
+
+ DataArrayDouble *getDirectAccessOfCoordsArrIfInStructure() const throw(INTERP_KERNEL::Exception)
+ {
+ const DataArrayDouble *ret(self->getDirectAccessOfCoordsArrIfInStructure());
+ DataArrayDouble *ret2(const_cast<DataArrayDouble *>(ret));
+ if(ret2)
+ ret2->incrRef();
+ return ret2;
+ }
+
+ int getCellContainingPoint(PyObject *p, double eps) const throw(INTERP_KERNEL::Exception)
+ {
+ double val;
+ DataArrayDouble *a;
+ DataArrayDoubleTuple *aa;
+ std::vector<double> bb;
+ int sw;
+ int spaceDim=self->getSpaceDimension();
+ const char msg[]="Python wrap of MEDCouplingMesh::getCellContainingPoint : ";
+ const double *pos=convertObjToPossibleCpp5_Safe(p,sw,val,a,aa,bb,msg,1,spaceDim,true);
+ return self->getCellContainingPoint(pos,eps);
+ }
+
+ PyObject *getCellsContainingPoints(PyObject *p, int nbOfPoints, double eps) const throw(INTERP_KERNEL::Exception)
+ {
+ double val;
+ DataArrayDouble *a;
+ DataArrayDoubleTuple *aa;
+ std::vector<double> bb;
+ int sw;
+ 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);
+ MCAuto<DataArrayInt> 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_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)
+ {
+ MCAuto<DataArrayInt> elts,eltsIndex;
+ int spaceDim=self->getSpaceDimension();
+ void *da=0;
+ int res1=SWIG_ConvertPtr(p,&da,SWIGTYPE_p_MEDCoupling__DataArrayDouble, 0 | 0 );
+ if (!SWIG_IsOK(res1))
+ {
+ int size;
+ INTERP_KERNEL::AutoCPtr<double> tmp=convertPyToNewDblArr2(p,&size);
+ int nbOfPoints=size/spaceDim;
+ if(size%spaceDim!=0)
+ {
+ throw INTERP_KERNEL::Exception("MEDCouplingMesh::getCellsContainingPoints : Invalid list length ! Must be a multiple of self.getSpaceDimension() !");
+ }
+ self->getCellsContainingPoints(tmp,nbOfPoints,eps,elts,eltsIndex);
+ }
+ else
+ {
+ DataArrayDouble *da2=reinterpret_cast< DataArrayDouble * >(da);
+ if(!da2)
+ throw INTERP_KERNEL::Exception("MEDCouplingMesh::getCellsContainingPoints : Not null DataArrayDouble instance expected !");
+ da2->checkAllocated();
+ int size=da2->getNumberOfTuples();
+ int nbOfCompo=da2->getNumberOfComponents();
+ if(nbOfCompo!=spaceDim)
+ {
+ throw INTERP_KERNEL::Exception("MEDCouplingMesh::getCellsContainingPoints : Invalid DataArrayDouble nb of components ! Expected same as self.getSpaceDimension() !");
+ }
+ 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_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 *getCellsContainingPoint(PyObject *p, double eps) const throw(INTERP_KERNEL::Exception)
+ {
+ double val;
+ DataArrayDouble *a;
+ DataArrayDoubleTuple *aa;
+ std::vector<double> bb;
+ int sw;
+ int spaceDim=self->getSpaceDimension();
+ const char msg[]="Python wrap of MEDCouplingUMesh::getCellsContainingPoint : ";
+ const double *pos=convertObjToPossibleCpp5_Safe(p,sw,val,a,aa,bb,msg,1,spaceDim,true);
+ std::vector<int> elts;
+ self->getCellsContainingPoint(pos,eps,elts);
+ 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_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 );
+ }
+
+ virtual PyObject *getReverseNodalConnectivity() const throw(INTERP_KERNEL::Exception)
+ {
+ MCAuto<DataArrayInt> d0=DataArrayInt::New();
+ MCAuto<DataArrayInt> 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_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;
+ }
+
+ void renumberCells(PyObject *li, bool check=true) throw(INTERP_KERNEL::Exception)
+ {
+ int sw,sz(-1);
+ int v0; std::vector<int> v1;
+ const int *ids(convertIntStarLikePyObjToCppIntStar(li,sw,sz,v0,v1));
+ self->renumberCells(ids,check);
+ }
+
+ PyObject *checkGeoEquivalWith(const MEDCouplingMesh *other, int levOfCheck, double prec) const throw(INTERP_KERNEL::Exception)
+ {
+ 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_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;
+ }
+
+ PyObject *checkDeepEquivalWith(const MEDCouplingMesh *other, int cellCompPol, double prec) const throw(INTERP_KERNEL::Exception)
+ {
+ 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_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;
+ }
+
+ DataArrayInt *checkDeepEquivalOnSameNodesWith(const MEDCouplingMesh *other, int cellCompPol, double prec) const throw(INTERP_KERNEL::Exception)
+ {
+ DataArrayInt *cellCor=0;
+ self->checkDeepEquivalOnSameNodesWith(other,cellCompPol,prec,cellCor);
+ return cellCor;
+ }
+
+ DataArrayInt *getCellIdsFullyIncludedInNodeIds(PyObject *li) const throw(INTERP_KERNEL::Exception)
+ {
+ void *da=0;
+ int res1=SWIG_ConvertPtr(li,&da,SWIGTYPE_p_MEDCoupling__DataArrayInt, 0 | 0 );
+ if (!SWIG_IsOK(res1))
+ {
+ int size;
+ INTERP_KERNEL::AutoPtr<int> tmp=convertPyToNewIntArr2(li,&size);
+ return self->getCellIdsFullyIncludedInNodeIds(tmp,((const int *)tmp)+size);
+ }
+ else
+ {
+ DataArrayInt *da2=reinterpret_cast< DataArrayInt * >(da);
+ if(!da2)
+ throw INTERP_KERNEL::Exception("Not null DataArrayInt instance expected !");
+ da2->checkAllocated();
+ return self->getCellIdsFullyIncludedInNodeIds(da2->getConstPointer(),da2->getConstPointer()+da2->getNbOfElems());
+ }
+ }
+ PyObject *getNodeIdsOfCell(int cellId) const throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<int> conn;
+ self->getNodeIdsOfCell(cellId,conn);
+ return convertIntArrToPyList2(conn);
+ }
+
+ PyObject *getCoordinatesOfNode(int nodeId) const throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<double> coo;
+ self->getCoordinatesOfNode(nodeId,coo);
+ return convertDblArrToPyList2(coo);
+ }
+
+ void scale(PyObject *point, double factor) throw(INTERP_KERNEL::Exception)
+ {
+ double val;
+ DataArrayDouble *a;
+ DataArrayDoubleTuple *aa;
+ std::vector<double> bb;
+ int sw;
+ int spaceDim=self->getSpaceDimension();
+ const char msg[]="Python wrap of MEDCouplingPointSet::scale : ";
+ const double *pointPtr=convertObjToPossibleCpp5_Safe(point,sw,val,a,aa,bb,msg,1,spaceDim,true);
+ self->scale(pointPtr,factor);
+ }
+
+ PyObject *getBoundingBox() const throw(INTERP_KERNEL::Exception)
+ {
+ int spaceDim=self->getSpaceDimension();
+ INTERP_KERNEL::AutoPtr<double> tmp=new double[2*spaceDim];
+ self->getBoundingBox(tmp);
+ PyObject *ret=convertDblArrToPyListOfTuple<double>(tmp,2,spaceDim);
+ return ret;
+ }
+
+ PyObject *isEqualIfNotWhy(const MEDCouplingMesh *other, double prec) const throw(INTERP_KERNEL::Exception)
+ {
+ std::string ret1;
+ bool ret0=self->isEqualIfNotWhy(other,prec,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 *buildPart(PyObject *li) const throw(INTERP_KERNEL::Exception)
+ {
+ int szArr,sw,iTypppArr;
+ std::vector<int> 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_MEDCoupling__DataArrayInt,0|0);
+ DataArrayInt *argpt=reinterpret_cast< MEDCoupling::DataArrayInt * >(argp);
+ std::string name=argpt->getName();
+ if(!name.empty())
+ ret->setName(name.c_str());
+ }
+ return convertMesh(ret, SWIG_POINTER_OWN | 0 );
+ }
+
+ PyObject *buildPartAndReduceNodes(PyObject *li) const throw(INTERP_KERNEL::Exception)
+ {
+ int szArr,sw,iTypppArr;
+ std::vector<int> stdvecTyyppArr;
+ DataArrayInt *arr=0;
+ 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_MEDCoupling__DataArrayInt,0|0);
+ DataArrayInt *argpt=reinterpret_cast< MEDCoupling::DataArrayInt * >(argp);
+ std::string name=argpt->getName();
+ if(!name.empty())
+ ret->setName(name.c_str());
+ }
+ //
+ PyObject *res = PyList_New(2);
+ PyObject *obj0=convertMesh(ret, 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;
+ }
+
+ PyObject *buildPartRangeAndReduceNodes(int beginCellIds, int endCellIds, int stepCellIds) const throw(INTERP_KERNEL::Exception)
+ {
+ int a,b,c;
+ DataArrayInt *arr=0;
+ MEDCouplingMesh *ret=self->buildPartRangeAndReduceNodes(beginCellIds,endCellIds,stepCellIds,a,b,c,arr);
+ PyObject *res = PyTuple_New(2);
+ PyObject *obj0=convertMesh(ret, SWIG_POINTER_OWN | 0 );
+ PyObject *obj1=0;
+ if(arr)
+ 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);
+ PyTuple_SetItem(res,1,obj1);
+ return res;
+ }
+
+ PyObject *getDistributionOfTypes() const throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<int> vals=self->getDistributionOfTypes();
+ if(vals.size()%3!=0)
+ throw INTERP_KERNEL::Exception("Internal Error detected in wrap python ! code returned by MEDCouplingMesh::getDistributionOfTypes is not so that %3==0 !");
+ PyObject *ret=PyList_New((int)vals.size()/3);
+ for(int j=0;j<(int)vals.size()/3;j++)
+ {
+ PyObject *ret1=PyList_New(3);
+ PyList_SetItem(ret1,0,SWIG_From_int(vals[3*j]));
+ PyList_SetItem(ret1,1,SWIG_From_int(vals[3*j+1]));
+ PyList_SetItem(ret1,2,SWIG_From_int(vals[3*j+2]));
+ PyList_SetItem(ret,j,ret1);
+ }
+ return ret;
+ }
+
+ DataArrayInt *checkTypeConsistencyAndContig(PyObject *li, PyObject *li2) const throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<int> code;
+ std::vector<const DataArrayInt *> idsPerType;
+ convertFromPyObjVectorOfObj<const MEDCoupling::DataArrayInt *>(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)
+ {
+ std::vector<int> code;
+ std::vector<DataArrayInt *> idsInPflPerType;
+ std::vector<DataArrayInt *> idsPerType;
+ self->splitProfilePerType(profile,code,idsInPflPerType,idsPerType);
+ PyObject *ret=PyTuple_New(3);
+ //
+ if(code.size()%3!=0)
+ throw INTERP_KERNEL::Exception("Internal Error detected in wrap python ! code returned by MEDCouplingMesh::splitProfilePerType is not so that %3==0 !");
+ PyObject *ret0=PyList_New((int)code.size()/3);
+ for(int j=0;j<(int)code.size()/3;j++)
+ {
+ PyObject *ret00=PyList_New(3);
+ PyList_SetItem(ret00,0,SWIG_From_int(code[3*j]));
+ PyList_SetItem(ret00,1,SWIG_From_int(code[3*j+1]));
+ PyList_SetItem(ret00,2,SWIG_From_int(code[3*j+2]));
+ PyList_SetItem(ret0,j,ret00);
+ }
+ PyTuple_SetItem(ret,0,ret0);
+ //
+ PyObject *ret1=PyList_New(idsInPflPerType.size());
+ for(std::size_t j=0;j<idsInPflPerType.size();j++)
+ PyList_SetItem(ret1,j,SWIG_NewPointerObj(SWIG_as_voidptr(idsInPflPerType[j]),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ));
+ PyTuple_SetItem(ret,1,ret1);
+ int n=idsPerType.size();
+ PyObject *ret2=PyList_New(n);
+ for(int i=0;i<n;i++)
+ PyList_SetItem(ret2,i,SWIG_NewPointerObj(SWIG_as_voidptr(idsPerType[i]),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ));
+ PyTuple_SetItem(ret,2,ret2);
+ return ret;
+ }
+
+ void translate(PyObject *vector) throw(INTERP_KERNEL::Exception)
+ {
+ double val;
+ DataArrayDouble *a;
+ DataArrayDoubleTuple *aa;
+ std::vector<double> bb;
+ int sw;
+ int spaceDim=self->getSpaceDimension();
+ const char msg[]="Python wrap of MEDCouplingPointSet::translate : ";
+ const double *vectorPtr=convertObjToPossibleCpp5_Safe(vector,sw,val,a,aa,bb,msg,1,spaceDim,true);
+ self->translate(vectorPtr);
+ }
+
+ void rotate(PyObject *center, double alpha) throw(INTERP_KERNEL::Exception)
+ {
+ const char msg[]="Python wrap of MEDCouplingPointSet::rotate : ";
+ double val;
+ DataArrayDouble *a;
+ DataArrayDoubleTuple *aa;
+ std::vector<double> bb;
+ int sw;
+ int spaceDim=self->getSpaceDimension();
+ const double *centerPtr=convertObjToPossibleCpp5_Safe(center,sw,val,a,aa,bb,msg,1,spaceDim,true);
+ self->rotate(centerPtr,0,alpha);
+ }
+
+ void rotate(PyObject *center, PyObject *vector, double alpha) throw(INTERP_KERNEL::Exception)
+ {
+ const char msg[]="Python wrap of MEDCouplingPointSet::rotate : ";
+ double val,val2;
+ DataArrayDouble *a,*a2;
+ DataArrayDoubleTuple *aa,*aa2;
+ std::vector<double> bb,bb2;
+ int sw;
+ int spaceDim=self->getSpaceDimension();
+ const double *centerPtr=convertObjToPossibleCpp5_Safe(center,sw,val,a,aa,bb,msg,1,spaceDim,true);
+ const double *vectorPtr=convertObjToPossibleCpp5_Safe(vector,sw,val2,a2,aa2,bb2,msg,1,spaceDim,false);//vectorPtr can be null in case of space dim 2
+ self->rotate(centerPtr,vectorPtr,alpha);
+ }
+
+ PyObject *getAllGeoTypes() const throw(INTERP_KERNEL::Exception)
+ {
+ std::set<INTERP_KERNEL::NormalizedCellType> result=self->getAllGeoTypes();
+ std::set<INTERP_KERNEL::NormalizedCellType>::const_iterator iL=result.begin();
+ PyObject *res=PyList_New(result.size());
+ for(int i=0;iL!=result.end(); i++, iL++)
+ PyList_SetItem(res,i,PyInt_FromLong(*iL));
+ return res;
+ }
+
+ virtual PyObject *getTinySerializationInformation() const throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<double> a0;
+ std::vector<int> a1;
+ std::vector<std::string> 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;i<sz;i++)
+ PyList_SetItem(ret2,i,PyString_FromString(a2[i].c_str()));
+ }
+ PyTuple_SetItem(ret,2,ret2);
+ return ret;
+ }
+
+ virtual PyObject *serialize() const throw(INTERP_KERNEL::Exception)
+ {
+ DataArrayInt *a0Tmp(0);
+ DataArrayDouble *a1Tmp(0);
+ self->serialize(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<int>& tinyInfo, DataArrayInt *a1, DataArrayDouble *a2) const throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<std::string> 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<double> a0;
+ std::vector<int> a1;
+ std::vector<std::string> 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<DataArrayInt *>(argp);
+ status=SWIG_ConvertPtr(b1py,&argp,SWIGTYPE_p_MEDCoupling__DataArrayDouble,0|0);
+ if(!SWIG_IsOK(status))
+ throw INTERP_KERNEL::Exception(MSG);
+ b1=reinterpret_cast<DataArrayDouble *>(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<const MEDCoupling::MEDCouplingMesh *> tmp;
+ convertFromPyObjVectorOfObj<const MEDCoupling::MEDCouplingMesh *>(li,SWIGTYPE_p_MEDCoupling__MEDCouplingMesh,"MEDCouplingMesh",tmp);
+ return MEDCouplingMesh::MergeMeshes(tmp);
+ }
+ }
+ };
+}
+
+//== MEDCouplingMesh End
+
+%include "NormalizedGeometricTypes"
+%include "MEDCouplingNatureOfFieldEnum"
+//
+namespace MEDCoupling
+{
+ class MEDCouplingNatureOfField
+ {
+ public:
+ static const char *GetRepr(NatureOfField nat) throw(INTERP_KERNEL::Exception);
+ static std::string GetReprNoThrow(NatureOfField nat);
+ static std::string GetAllPossibilitiesStr();
+ };
+}
+
+// the MEDCouplingTimeDiscretization classes are not swigged : in case the file can help
+// include "MEDCouplingTimeDiscretization.i"
+
+namespace MEDCoupling
+{
+ class MEDCouplingGaussLocalization
+ {
+ public:
+ MEDCouplingGaussLocalization(INTERP_KERNEL::NormalizedCellType type, const std::vector<double>& refCoo,
+ const std::vector<double>& gsCoo, const std::vector<double>& w) throw(INTERP_KERNEL::Exception);
+ MEDCouplingGaussLocalization(INTERP_KERNEL::NormalizedCellType typ) throw(INTERP_KERNEL::Exception);
+ INTERP_KERNEL::NormalizedCellType getType() const throw(INTERP_KERNEL::Exception);
+ void setType(INTERP_KERNEL::NormalizedCellType typ) throw(INTERP_KERNEL::Exception);
+ int getNumberOfGaussPt() const throw(INTERP_KERNEL::Exception);
+ int getDimension() const throw(INTERP_KERNEL::Exception);
+ int getNumberOfPtsInRefCell() const throw(INTERP_KERNEL::Exception);
+ std::string getStringRepr() 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<double>& getRefCoords() const throw(INTERP_KERNEL::Exception);
+ double getRefCoord(int ptIdInCell, int comp) const throw(INTERP_KERNEL::Exception);
+ const std::vector<double>& getGaussCoords() const throw(INTERP_KERNEL::Exception);
+ double getGaussCoord(int gaussPtIdInCell, int comp) const throw(INTERP_KERNEL::Exception);
+ const std::vector<double>& getWeights() const throw(INTERP_KERNEL::Exception);
+ double getWeight(int gaussPtIdInCell, double newVal) const throw(INTERP_KERNEL::Exception);
+ void setRefCoord(int ptIdInCell, int comp, double newVal) throw(INTERP_KERNEL::Exception);
+ void setGaussCoord(int gaussPtIdInCell, int comp, double newVal) throw(INTERP_KERNEL::Exception);
+ void setWeight(int gaussPtIdInCell, double newVal) throw(INTERP_KERNEL::Exception);
+ void setRefCoords(const std::vector<double>& refCoo) throw(INTERP_KERNEL::Exception);
+ void setGaussCoords(const std::vector<double>& gsCoo) throw(INTERP_KERNEL::Exception);
+ void setWeights(const std::vector<double>& w) throw(INTERP_KERNEL::Exception);
+ //
+ static bool AreAlmostEqual(const std::vector<double>& v1, const std::vector<double>& v2, double eps);
+ //
+ %extend
+ {
+ DataArrayDouble *localizePtsInRefCooForEachCell(const DataArrayDouble *ptsInRefCoo, const MEDCouplingUMesh *mesh) const throw(INTERP_KERNEL::Exception)
+ {
+ MCAuto<DataArrayDouble> ret(self->localizePtsInRefCooForEachCell(ptsInRefCoo,mesh));
+ return ret.retn();
+ }
+
+ MEDCouplingUMesh *buildRefCell() const throw(INTERP_KERNEL::Exception)
+ {
+ MCAuto<MEDCouplingUMesh> 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<int>& index, const std::vector<int>& 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<int> ret;
+ self->getSimplePackSafe(absolutePackId,ret);
+ return convertIntArrToPyList2(ret);
+ }
+
+ PyObject *findPackIds(PyObject *superPackIndices, PyObject *pack) const throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<int> 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<int> 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<int> 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<const DataArrayInt*> packs;
+ convertFromPyObjVectorOfObj<const MEDCoupling::DataArrayInt*>(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<int> vpack;
+ convertPyToNewIntArr3(pack,vpack);
+ self->replacePack(superIdx, idx, vpack.data(), vpack.data()+vpack.size());
+ }
+
+ PyObject *convertToPolyhedronConn() const throw(INTERP_KERNEL::Exception)
+ {
+ MCAuto<DataArrayInt> d0=DataArrayInt::New();
+ MCAuto<DataArrayInt> 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;
+ }
+ }
+ };
+}
+
+%include "MEDCouplingFieldDiscretization.i"
+
+//== MEDCouplingPointSet
+
+namespace MEDCoupling
+{
+ class MEDCouplingPointSet : public MEDCoupling::MEDCouplingMesh
+ {
+ public:
+ void setCoords(const DataArrayDouble *coords) throw(INTERP_KERNEL::Exception);
+ DataArrayDouble *getCoordinatesAndOwner() const throw(INTERP_KERNEL::Exception);
+ bool areCoordsEqual(const MEDCouplingPointSet& other, double prec) const throw(INTERP_KERNEL::Exception);
+ void zipCoords() throw(INTERP_KERNEL::Exception);
+ double getCaracteristicDimension() const throw(INTERP_KERNEL::Exception);
+ void recenterForMaxPrecision(double eps) throw(INTERP_KERNEL::Exception);
+ 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 *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);
+ virtual DataArrayInt *zipCoordsTraducer() throw(INTERP_KERNEL::Exception);
+ virtual DataArrayInt *findBoundaryNodes() const;
+ virtual DataArrayInt *zipConnectivityTraducer(int compType, int startCellId=0) throw(INTERP_KERNEL::Exception);
+ 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<int>& tinyInfo) 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)
+ {
+ return self->simpleRepr();
+ }
+
+ PyObject *buildNewNumberingFromCommonNodesFormat(const DataArrayInt *comm, const DataArrayInt *commIndex) const throw(INTERP_KERNEL::Exception)
+ {
+ 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_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ));
+ PyList_SetItem(res,1,SWIG_From_int(newNbOfNodes));
+ return res;
+ }
+
+ PyObject *findCommonNodes(double prec, int limitTupleId=-1) const throw(INTERP_KERNEL::Exception)
+ {
+ 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_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;
+ }
+
+ PyObject *getCoords() throw(INTERP_KERNEL::Exception)
+ {
+ DataArrayDouble *ret1=self->getCoords();
+ if (ret1)
+ ret1->incrRef();
+ 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<int> 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_MEDCoupling__DataArrayInt,0|0);
+ DataArrayInt *argpt=reinterpret_cast< MEDCoupling::DataArrayInt * >(argp);
+ std::string name=argpt->getName();
+ if(!name.empty())
+ ret->setName(name.c_str());
+ }
+ return convertMesh(ret, SWIG_POINTER_OWN | 0 );
+ }
+
+ PyObject *buildPartOfMySelfNode(PyObject *li, bool fullyIn) const throw(INTERP_KERNEL::Exception)
+ {
+ int szArr,sw,iTypppArr;
+ std::vector<int> 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_MEDCoupling__DataArrayInt,0|0);
+ DataArrayInt *argpt=reinterpret_cast< MEDCoupling::DataArrayInt * >(argp);
+ std::string name=argpt->getName();
+ if(!name.empty())
+ ret->setName(name.c_str());
+ }
+ return convertMesh(ret, SWIG_POINTER_OWN | 0 );
+ }
+
+ virtual PyObject *buildPartOfMySelfKeepCoords(PyObject *li) const throw(INTERP_KERNEL::Exception)
+ {
+ int szArr,sw,iTypppArr;
+ std::vector<int> 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_MEDCoupling__DataArrayInt,0|0);
+ DataArrayInt *argpt=reinterpret_cast< MEDCoupling::DataArrayInt * >(argp);
+ std::string name=argpt->getName();
+ if(!name.empty())
+ ret->setName(name.c_str());
+ }
+ return convertMesh(ret, SWIG_POINTER_OWN | 0 );
+ }
+
+ virtual PyObject *buildPartOfMySelfKeepCoordsSlice(int start, int end, int step) const throw(INTERP_KERNEL::Exception)
+ {
+ MEDCouplingPointSet *ret=self->buildPartOfMySelfKeepCoordsSlice(start,end,step);
+ return convertMesh(ret, SWIG_POINTER_OWN | 0 );
+ }
+
+ PyObject *buildFacePartOfMySelfNode(PyObject *li, bool fullyIn) const throw(INTERP_KERNEL::Exception)
+ {
+ int szArr,sw,iTypppArr;
+ std::vector<int> 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_MEDCoupling__DataArrayInt,0|0);
+ DataArrayInt *argpt=reinterpret_cast< MEDCoupling::DataArrayInt * >(argp);
+ std::string name=argpt->getName();
+ if(!name.empty())
+ ret->setName(name.c_str());
+ }
+ return convertMesh(ret, SWIG_POINTER_OWN | 0 );
+ }
+
+ void renumberNodes(PyObject *li, int newNbOfNodes) throw(INTERP_KERNEL::Exception)
+ {
+ int szArr,sw,iTypppArr;
+ std::vector<int> stdvecTyyppArr;
+ const int *tmp=convertIntStarLikePyObjToCppIntStar(li,sw,szArr,iTypppArr,stdvecTyyppArr);
+ self->renumberNodes(tmp,newNbOfNodes);
+ }
+
+ void renumberNodesCenter(PyObject *li, int newNbOfNodes) throw(INTERP_KERNEL::Exception)
+ {
+ int szArr,sw,iTypppArr;
+ std::vector<int> stdvecTyyppArr;
+ 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)
+ {
+ int spaceDim=self->getSpaceDimension();
+ double val,val2;
+ DataArrayDouble *a,*a2;
+ DataArrayDoubleTuple *aa,*aa2;
+ std::vector<double> bb,bb2;
+ int sw;
+ 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<int> nodes;
+ self->findNodesOnLine(p,v,eps,nodes);
+ 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_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 );
+ }
+ PyObject *findNodesOnPlane(PyObject *pt, PyObject *vec, double eps) const throw(INTERP_KERNEL::Exception)
+ {
+ int spaceDim=self->getSpaceDimension();
+ double val,val2;
+ DataArrayDouble *a,*a2;
+ DataArrayDoubleTuple *aa,*aa2;
+ std::vector<double> bb,bb2;
+ int sw;
+ 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<int> nodes;
+ self->findNodesOnPlane(p,v,eps,nodes);
+ 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_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 );
+ }
+
+ PyObject *getNodeIdsNearPoint(PyObject *pt, double eps) const throw(INTERP_KERNEL::Exception)
+ {
+ double val;
+ DataArrayDouble *a;
+ DataArrayDoubleTuple *aa;
+ std::vector<double> bb;
+ int sw;
+ int spaceDim=self->getSpaceDimension();
+ 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_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 );
+ }
+
+ PyObject *getNodeIdsNearPoints(PyObject *pt, int nbOfPoints, double eps) const throw(INTERP_KERNEL::Exception)
+ {
+ DataArrayInt *c=0,*cI=0;
+ //
+ double val;
+ DataArrayDouble *a;
+ DataArrayDoubleTuple *aa;
+ std::vector<double> bb;
+ int sw;
+ int spaceDim=self->getSpaceDimension();
+ const char msg[]="Python wrap of MEDCouplingPointSet::getNodeIdsNearPoints : ";
+ 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_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;
+ }
+
+ PyObject *getNodeIdsNearPoints(PyObject *pt, double eps) const throw(INTERP_KERNEL::Exception)
+ {
+ DataArrayInt *c=0,*cI=0;
+ int spaceDim=self->getSpaceDimension();
+ double val;
+ DataArrayDouble *a;
+ DataArrayDoubleTuple *aa;
+ std::vector<double> bb;
+ int sw;
+ int nbOfTuples=-1;
+ const double *ptPtr=convertObjToPossibleCpp5_Safe2(pt,sw,val,a,aa,bb,"Python wrap of MEDCouplingUMesh::getNodeIdsNearPoints",spaceDim,true,nbOfTuples);
+ self->getNodeIdsNearPoints(ptPtr,nbOfTuples,eps,c,cI);
+ //
+ PyObject *ret=PyTuple_New(2);
+ 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;
+ }
+
+ PyObject *getCellsInBoundingBox(PyObject *bbox, double eps) const throw(INTERP_KERNEL::Exception)
+ {
+ double val;
+ DataArrayDouble *a;
+ DataArrayDoubleTuple *aa;
+ std::vector<double> bb;
+ int sw;
+ int spaceDim=self->getSpaceDimension();
+ const char msg[]="Python wrap of MEDCouplingPointSet::getCellsInBoundingBox : ";
+ 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_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 );
+ }
+
+ void duplicateNodesInCoords(PyObject *li) throw(INTERP_KERNEL::Exception)
+ {
+ int sw;
+ int singleVal;
+ std::vector<int> multiVal;
+ std::pair<int, std::pair<int,int> > slic;
+ MEDCoupling::DataArrayInt *daIntTyypp=0;
+ convertIntStarOrSliceLikePyObjToCpp(li,self->getNumberOfNodes(),sw,singleVal,multiVal,slic,daIntTyypp);
+ switch(sw)
+ {
+ case 1:
+ return self->duplicateNodesInCoords(&singleVal,&singleVal+1);
+ case 2:
+ return self->duplicateNodesInCoords(&multiVal[0],&multiVal[0]+multiVal.size());
+ case 4:
+ return self->duplicateNodesInCoords(daIntTyypp->begin(),daIntTyypp->end());
+ default:
+ throw INTERP_KERNEL::Exception("MEDCouplingPointSet::duplicateNodesInCoords : unrecognized type entered, expected list of int, tuple of int or DataArrayInt !");
+ }
+ }
+
+ virtual PyObject *findCommonCells(int compType, int startCellId=0) const throw(INTERP_KERNEL::Exception)
+ {
+ 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_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;
+ }
+
+
+ virtual void renumberNodesInConn(PyObject *li) throw(INTERP_KERNEL::Exception)
+ {
+ void *da=0;
+ int res1=SWIG_ConvertPtr(li,&da,SWIGTYPE_p_MEDCoupling__DataArrayInt, 0 | 0 );
+ if (!SWIG_IsOK(res1))
+ {
+ int size;
+ INTERP_KERNEL::AutoPtr<int> tmp=convertPyToNewIntArr2(li,&size);
+ self->renumberNodesInConn(tmp);
+ }
+ else
+ {
+ DataArrayInt *da2=reinterpret_cast< DataArrayInt * >(da);
+ if(!da2)
+ throw INTERP_KERNEL::Exception("Not null DataArrayInt instance expected !");
+ da2->checkAllocated();
+ self->renumberNodesInConn(da2->getConstPointer());
+ }
+ }
+
+ virtual PyObject *getNodeIdsInUse() const throw(INTERP_KERNEL::Exception)
+ {
+ 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_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ));
+ PyTuple_SetItem(ret,1,PyInt_FromLong(ret1));
+ return ret;
+ }
+
+ virtual DataArrayInt *fillCellIdsToKeepFromNodeIds(PyObject *li, bool fullyIn) const
+ {
+ DataArrayInt *ret=0;
+ //
+ int szArr,sw,iTypppArr;
+ std::vector<int> stdvecTyyppArr;
+ const int *tmp=convertIntStarLikePyObjToCppIntStar(li,sw,szArr,iTypppArr,stdvecTyyppArr);
+ self->fillCellIdsToKeepFromNodeIds(tmp,tmp+szArr,fullyIn,ret);
+ return ret;
+ }
+
+ virtual PyObject *mergeNodes(double precision) throw(INTERP_KERNEL::Exception)
+ {
+ bool ret1;
+ 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_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 *mergeNodesCenter(double precision) throw(INTERP_KERNEL::Exception)
+ {
+ bool ret1;
+ int 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_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ));
+ PyList_SetItem(res,1,SWIG_From_bool(ret1));
+ PyList_SetItem(res,2,SWIG_From_int(ret2));
+ return res;
+ }
+
+ DataArrayInt *getCellIdsLyingOnNodes(PyObject *li, bool fullyIn) const throw(INTERP_KERNEL::Exception)
+ {
+ void *da=0;
+ int res1=SWIG_ConvertPtr(li,&da,SWIGTYPE_p_MEDCoupling__DataArrayInt, 0 | 0 );
+ if (!SWIG_IsOK(res1))
+ {
+ int size;
+ INTERP_KERNEL::AutoPtr<int> tmp=convertPyToNewIntArr2(li,&size);
+ return self->getCellIdsLyingOnNodes(tmp,((const int *)tmp)+size,fullyIn);
+ }
+ else
+ {
+ DataArrayInt *da2=reinterpret_cast< DataArrayInt * >(da);
+ if(!da2)
+ throw INTERP_KERNEL::Exception("Not null DataArrayInt instance expected !");
+ da2->checkAllocated();
+ return self->getCellIdsLyingOnNodes(da2->getConstPointer(),da2->getConstPointer()+da2->getNbOfElems(),fullyIn);
+ }
+ }
+
+ MEDCouplingPointSet *__getitem__(PyObject *listOrDataArrI) throw(INTERP_KERNEL::Exception)
+ {
+ int sw;
+ int singleVal;
+ std::vector<int> multiVal;
+ std::pair<int, std::pair<int,int> > slic;
+ MEDCoupling::DataArrayInt *daIntTyypp=0;
+ int nbc=self->getNumberOfCells();
+ convertIntStarOrSliceLikePyObjToCpp(listOrDataArrI,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->buildPartOfMySelf(&singleVal,&singleVal+1,true);
+ else
+ {
+ if(nbc+singleVal>0)
+ {
+ int tmp=nbc+singleVal;
+ return self->buildPartOfMySelf(&tmp,&tmp+1,true);
+ }
+ 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 static_cast<MEDCouplingPointSet *>(self->buildPartOfMySelf(&multiVal[0],&multiVal[0]+multiVal.size(),true));
+ }
+ case 3:
+ {
+ return self->buildPartOfMySelfSlice(slic.first,slic.second.first,slic.second.second,true);
+ }
+ case 4:
+ {
+ if(!daIntTyypp)
+ throw INTERP_KERNEL::Exception("MEDCouplingUMesh::__getitem__ : null instance has been given in input !");
+ daIntTyypp->checkAllocated();
+ return self->buildPartOfMySelf(daIntTyypp->begin(),daIntTyypp->end(),true);
+ }
+ default:
+ throw INTERP_KERNEL::Exception("MEDCouplingUMesh::__getitem__ : unrecognized type in input ! Possibilities are : int, list or tuple of int DataArrayInt instance !");
+ }
+ }
+
+ static void Rotate2DAlg(PyObject *center, double angle, int nbNodes, PyObject *coords) throw(INTERP_KERNEL::Exception)
+ {
+ int sz;
+ INTERP_KERNEL::AutoCPtr<double> c=convertPyToNewDblArr2(center,&sz);
+ INTERP_KERNEL::AutoCPtr<double> coo=convertPyToNewDblArr2(coords,&sz);
+ MEDCoupling::DataArrayDouble::Rotate2DAlg(c,angle,nbNodes,coo,coo);
+ for(int i=0;i<sz;i++)
+ PyList_SetItem(coords,i,PyFloat_FromDouble(coo[i]));
+ }
+
+ static void Rotate2DAlg(PyObject *center, double angle, PyObject *coords) throw(INTERP_KERNEL::Exception)
+ {
+ int sz;
+ INTERP_KERNEL::AutoCPtr<double> c=convertPyToNewDblArr2(center,&sz);
+ int sw,nbNodes=0;
+ double val0; MEDCoupling::DataArrayDouble *val1=0; MEDCoupling::DataArrayDoubleTuple *val2=0;
+ std::vector<double> 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 !");
+ MEDCoupling::DataArrayDouble::Rotate2DAlg(c,angle,nbNodes,coo,const_cast<double *>(coo));
+ }
+
+ static void Rotate3DAlg(PyObject *center, PyObject *vect, double angle, int nbNodes, PyObject *coords) throw(INTERP_KERNEL::Exception)
+ {
+ int sz,sz2;
+ INTERP_KERNEL::AutoCPtr<double> c=convertPyToNewDblArr2(center,&sz);
+ INTERP_KERNEL::AutoCPtr<double> coo=convertPyToNewDblArr2(coords,&sz);
+ INTERP_KERNEL::AutoCPtr<double> v=convertPyToNewDblArr2(vect,&sz2);
+ MEDCoupling::DataArrayDouble::Rotate3DAlg(c,v,angle,nbNodes,coo,coo);
+ for(int i=0;i<sz;i++)
+ PyList_SetItem(coords,i,PyFloat_FromDouble(coo[i]));
+ }
+
+ static void Rotate3DAlg(PyObject *center, PyObject *vect, double angle, PyObject *coords) throw(INTERP_KERNEL::Exception)
+ {
+ int sz,sz2;
+ INTERP_KERNEL::AutoCPtr<double> c=convertPyToNewDblArr2(center,&sz);
+ int sw,nbNodes=0;
+ double val0; MEDCoupling::DataArrayDouble *val1=0; MEDCoupling::DataArrayDoubleTuple *val2=0;
+ std::vector<double> 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<double> v=convertPyToNewDblArr2(vect,&sz2);
+ MEDCoupling::DataArrayDouble::Rotate3DAlg(c,v,angle,nbNodes,coo,const_cast<double *>(coo));
+ }
+ }
+ };
+
+ //== MEDCouplingPointSet End
+
+ class MEDCouplingUMeshCell
+ {
+ public:
+ INTERP_KERNEL::NormalizedCellType getType() const;
+ %extend
+ {
+ std::string __str__() const throw(INTERP_KERNEL::Exception)
+ {
+ return self->repr();
+ }
+
+ PyObject *getAllConn() const throw(INTERP_KERNEL::Exception)
+ {
+ int ret2;
+ const int *r=self->getAllConn(ret2);
+ PyObject *ret=PyTuple_New(ret2);
+ for(int i=0;i<ret2;i++)
+ PyTuple_SetItem(ret,i,PyInt_FromLong(r[i]));
+ return ret;
+ }
+ }
+ };
+
+ class MEDCouplingUMeshCellIterator
+ {
+ public:
+ %extend
+ {
+ PyObject *next()
+ {
+ MEDCouplingUMeshCell *ret=self->nextt();
+ if(ret)
+ return SWIG_NewPointerObj(SWIG_as_voidptr(ret),SWIGTYPE_p_MEDCoupling__MEDCouplingUMeshCell,0|0);
+ else
+ {
+ PyErr_SetString(PyExc_StopIteration,"No more data.");
+ return 0;
+ }
+ }
+ }
+ };
+
+ class MEDCouplingUMeshCellByTypeIterator
+ {
+ public:
+ ~MEDCouplingUMeshCellByTypeIterator();
+ %extend
+ {
+ PyObject *next()
+ {
+ MEDCouplingUMeshCellEntry *ret=self->nextt();
+ if(ret)
+ return SWIG_NewPointerObj(SWIG_as_voidptr(ret),SWIGTYPE_p_MEDCoupling__MEDCouplingUMeshCellEntry,SWIG_POINTER_OWN | 0);
+ else
+ {
+ PyErr_SetString(PyExc_StopIteration,"No more data.");
+ return 0;
+ }
+ }
+ }
+ };
+
+ class MEDCouplingUMeshCellByTypeEntry
+ {
+ public:
+ ~MEDCouplingUMeshCellByTypeEntry();
+ %extend
+ {
+ MEDCouplingUMeshCellByTypeIterator *__iter__()
+ {
+ return self->iterator();
+ }
+ }
+ };
+
+ class MEDCouplingUMeshCellEntry
+ {
+ public:
+ INTERP_KERNEL::NormalizedCellType getType() const;
+ int getNumberOfElems() const;
+ %extend
+ {
+ MEDCouplingUMeshCellIterator *__iter__()
+ {
+ return self->iterator();
+ }
+ }
+ };
+
+ //== MEDCouplingUMesh
+
+ 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);
+ 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 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<bool> getQuadraticStatus() const throw(INTERP_KERNEL::Exception);
+ DataArrayInt *findCellIdsOnBoundary() const throw(INTERP_KERNEL::Exception);
+ MEDCouplingUMesh *computeSkin() const throw(INTERP_KERNEL::Exception);
+ bool checkConsecutiveCellTypes() const throw(INTERP_KERNEL::Exception);
+ bool checkConsecutiveCellTypesForMEDFileFrmt() const throw(INTERP_KERNEL::Exception);
+ DataArrayInt *rearrange2ConsecutiveCellTypes() throw(INTERP_KERNEL::Exception);
+ DataArrayInt *sortCellsInMEDFileFrmt() throw(INTERP_KERNEL::Exception);
+ DataArrayInt *getRenumArrForMEDFileFrmt() const throw(INTERP_KERNEL::Exception);
+ DataArrayInt *convertCellArrayPerGeoType(const DataArrayInt *da) 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 convertQuadraticCellsToLinear() throw(INTERP_KERNEL::Exception);
+ DataArrayInt *convertLinearCellsToQuadratic(int conversionType=0) throw(INTERP_KERNEL::Exception);
+ void convertDegeneratedCells() throw(INTERP_KERNEL::Exception);
+ bool areOnlySimplexCells() const throw(INTERP_KERNEL::Exception);
+ MEDCouplingFieldDouble *getEdgeRatioField() const throw(INTERP_KERNEL::Exception);
+ MEDCouplingFieldDouble *getAspectRatioField() const throw(INTERP_KERNEL::Exception);
+ MEDCouplingFieldDouble *getWarpField() const throw(INTERP_KERNEL::Exception);
+ MEDCouplingFieldDouble *getSkewField() const throw(INTERP_KERNEL::Exception);
+ DataArrayDouble *computePlaneEquationOf3DFaces() const throw(INTERP_KERNEL::Exception);
+ DataArrayInt *convexEnvelop2D() throw(INTERP_KERNEL::Exception);
+ std::string cppRepr() const throw(INTERP_KERNEL::Exception);
+ DataArrayInt *findAndCorrectBadOriented3DExtrudedCells() throw(INTERP_KERNEL::Exception);
+ DataArrayInt *findAndCorrectBadOriented3DCells() 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);
+ static DataArrayInt *ComputeSpreadZoneGradually(const DataArrayInt *arrIn, const DataArrayInt *arrIndxIn) throw(INTERP_KERNEL::Exception);
+ static DataArrayInt *ComputeRangesFromTypeDistribution(const std::vector<int>& code) throw(INTERP_KERNEL::Exception);
+ %extend {
+ MEDCouplingUMesh() throw(INTERP_KERNEL::Exception)
+ {
+ return MEDCouplingUMesh::New();
+ }
+
+ MEDCouplingUMesh(const char *meshName, int meshDim) throw(INTERP_KERNEL::Exception)
+ {
+ return MEDCouplingUMesh::New(meshName,meshDim);
+ }
+
+ 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();
+ }
+
+ MEDCouplingUMeshCellIterator *__iter__() throw(INTERP_KERNEL::Exception)
+ {
+ return self->cellIterator();
+ }
+
+ static MEDCouplingUMesh *Build1DMeshFromCoords(DataArrayDouble *da) throw(INTERP_KERNEL::Exception)
+ {
+ MCAuto<MEDCouplingUMesh> ret(MEDCouplingUMesh::Build1DMeshFromCoords(da));
+ return ret.retn();
+ }
+
+ PyObject *getAllGeoTypesSorted() const throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<INTERP_KERNEL::NormalizedCellType> result=self->getAllGeoTypesSorted();
+ std::vector<INTERP_KERNEL::NormalizedCellType>::const_iterator iL=result.begin();
+ PyObject *res=PyList_New(result.size());
+ for(int i=0;iL!=result.end(); i++, iL++)
+ PyList_SetItem(res,i,PyInt_FromLong(*iL));
+ return res;
+ }
+
+ void setPartOfMySelf(PyObject *li, const MEDCouplingUMesh& otherOnSameCoordsThanThis) throw(INTERP_KERNEL::Exception)
+ {
+ int sw;
+ int singleVal;
+ std::vector<int> multiVal;
+ std::pair<int, std::pair<int,int> > slic;
+ MEDCoupling::DataArrayInt *daIntTyypp=0;
+ int nbc=self->getNumberOfCells();
+ convertIntStarOrSliceLikePyObjToCpp(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)
+ {
+ self->setPartOfMySelf(&singleVal,&singleVal+1,otherOnSameCoordsThanThis);
+ break;
+ }
+ else
+ {
+ if(nbc+singleVal>0)
+ {
+ int tmp=nbc+singleVal;
+ self->setPartOfMySelf(&tmp,&tmp+1,otherOnSameCoordsThanThis);
+ break;
+ }
+ else
+ {
+ std::ostringstream oss;
+ oss << "Requesting for cell id " << singleVal << " having only " << nbc << " cells !";
+ throw INTERP_KERNEL::Exception(oss.str().c_str());
+ }
+ }
+ }
+ case 2:
+ {
+ self->setPartOfMySelf(&multiVal[0],&multiVal[0]+multiVal.size(),otherOnSameCoordsThanThis);
+ break;
+ }
+ case 4:
+ {
+ if(!daIntTyypp)
+ throw INTERP_KERNEL::Exception("MEDCouplingUMesh::setPartOfMySelf : null instance has been given in input !");
+ daIntTyypp->checkAllocated();
+ self->setPartOfMySelf(daIntTyypp->begin(),daIntTyypp->end(),otherOnSameCoordsThanThis);
+ break;
+ }
+ default:
+ throw INTERP_KERNEL::Exception("MEDCouplingUMesh::setPartOfMySelf : unrecognized type in input ! Possibilities are : int, list or tuple of int DataArrayInt instance !");
+ }
+ }
+
+ void __setitem__(PyObject *li, const MEDCouplingUMesh& otherOnSameCoordsThanThis) throw(INTERP_KERNEL::Exception)
+ {
+ int sw;
+ int singleVal;
+ std::vector<int> multiVal;
+ std::pair<int, std::pair<int,int> > slic;
+ MEDCoupling::DataArrayInt *daIntTyypp=0;
+ int nbc=self->getNumberOfCells();
+ convertIntStarOrSliceLikePyObjToCpp(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)
+ {
+ self->setPartOfMySelf(&singleVal,&singleVal+1,otherOnSameCoordsThanThis);
+ break;
+ }
+ else
+ {
+ if(nbc+singleVal>0)
+ {
+ int tmp=nbc+singleVal;
+ self->setPartOfMySelf(&tmp,&tmp+1,otherOnSameCoordsThanThis);
+ break;
+ }
+ else
+ {
+ std::ostringstream oss;
+ oss << "Requesting for cell id " << singleVal << " having only " << nbc << " cells !";
+ throw INTERP_KERNEL::Exception(oss.str().c_str());
+ }
+ }
+ }
+ case 2:
+ {
+ self->setPartOfMySelf(&multiVal[0],&multiVal[0]+multiVal.size(),otherOnSameCoordsThanThis);
+ break;
+ }
+ case 3:
+ {
+ self->setPartOfMySelfSlice(slic.first,slic.second.first,slic.second.second,otherOnSameCoordsThanThis);
+ break;
+ }
+ case 4:
+ {
+ if(!daIntTyypp)
+ throw INTERP_KERNEL::Exception("MEDCouplingUMesh::__setitem__ : null instance has been given in input !");
+ daIntTyypp->checkAllocated();
+ self->setPartOfMySelf(daIntTyypp->begin(),daIntTyypp->end(),otherOnSameCoordsThanThis);
+ break;
+ }
+ default:
+ throw INTERP_KERNEL::Exception("MEDCouplingUMesh::__setitem__ : unrecognized type in input ! Possibilities are : int, list or tuple of int, slice, DataArrayInt instance !");
+ }
+ }
+
+ void insertNextCell(INTERP_KERNEL::NormalizedCellType type, int size, PyObject *li) throw(INTERP_KERNEL::Exception)
+ {
+ int szArr,sw,iTypppArr;
+ std::vector<int> 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 << " !";
+ throw INTERP_KERNEL::Exception(oss.str().c_str());
+ }
+ self->insertNextCell(type,size,tmp);
+ }
+
+ void insertNextCell(INTERP_KERNEL::NormalizedCellType type, PyObject *li) throw(INTERP_KERNEL::Exception)
+ {
+ int szArr,sw,iTypppArr;
+ std::vector<int> stdvecTyyppArr;
+ const int *tmp=convertIntStarLikePyObjToCppIntStar(li,sw,szArr,iTypppArr,stdvecTyyppArr);
+ self->insertNextCell(type,szArr,tmp);
+ }
+
+ DataArrayInt *getNodalConnectivity() throw(INTERP_KERNEL::Exception)
+ {
+ DataArrayInt *ret=self->getNodalConnectivity();
+ if(ret)
+ ret->incrRef();
+ return ret;
+ }
+ DataArrayInt *getNodalConnectivityIndex() throw(INTERP_KERNEL::Exception)
+ {
+ DataArrayInt *ret=self->getNodalConnectivityIndex();
+ if(ret)
+ ret->incrRef();
+ return ret;
+ }
+
+ static PyObject *ComputeSpreadZoneGraduallyFromSeed(PyObject *seed, const DataArrayInt *arrIn, const DataArrayInt *arrIndxIn, int nbOfDepthPeeling=-1) throw(INTERP_KERNEL::Exception)
+ {
+ int szArr,sw,iTypppArr;
+ std::vector<int> 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_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ));
+ PyTuple_SetItem(res,1,PyInt_FromLong(nbOfDepthPeelingPerformed));
+ return res;
+ }
+
+ static PyObject *FindCommonCellsAlg(int compType, int startCellId, const DataArrayInt *nodal, const DataArrayInt *nodalI, const DataArrayInt *revNodal, const DataArrayInt *revNodalI) throw(INTERP_KERNEL::Exception)
+ {
+ 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_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;
+ }
+
+ PyObject *distanceToPoint(PyObject *point) const throw(INTERP_KERNEL::Exception)
+ {
+ double val;
+ DataArrayDouble *a;
+ DataArrayDoubleTuple *aa;
+ std::vector<double> bb;
+ int sw;
+ int nbOfCompo=self->getSpaceDimension();
+ const double *pt=convertObjToPossibleCpp5_Safe(point,sw,val,a,aa,bb,"Python wrap of MEDCouplingUMesh::distanceToPoint",1,nbOfCompo,true);
+ //
+ int cellId=-1;
+ double ret0=self->distanceToPoint(pt,pt+nbOfCompo,cellId);
+ PyObject *ret=PyTuple_New(2);
+ PyTuple_SetItem(ret,0,PyFloat_FromDouble(ret0));
+ PyTuple_SetItem(ret,1,PyInt_FromLong(cellId));
+ return ret;
+ }
+
+ PyObject *distanceToPoints(const DataArrayDouble *pts) const throw(INTERP_KERNEL::Exception)
+ {
+ 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_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;
+ }
+
+ PyObject *tetrahedrize(int policy) throw(INTERP_KERNEL::Exception)
+ {
+ int ret2(-1);
+ 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_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;
+ }
+
+ PyObject *checkButterflyCells(double eps=1e-12) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<int> cells;
+ self->checkButterflyCells(cells,eps);
+ 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_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 );
+ }
+
+ PyObject *splitByType() const throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<MEDCouplingUMesh *> ms=self->splitByType();
+ int sz=ms.size();
+ PyObject *ret = PyList_New(sz);
+ for(int i=0;i<sz;i++)
+ PyList_SetItem(ret,i,SWIG_NewPointerObj(SWIG_as_voidptr(ms[i]),SWIGTYPE_p_MEDCoupling__MEDCouplingUMesh, SWIG_POINTER_OWN | 0 ));
+ return ret;
+ }
+
+ PyObject *partitionBySpreadZone() const throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<DataArrayInt *> retCpp=self->partitionBySpreadZone();
+ int sz=retCpp.size();
+ PyObject *ret=PyList_New(sz);
+ for(int i=0;i<sz;i++)
+ PyList_SetItem(ret,i,SWIG_NewPointerObj(SWIG_as_voidptr(retCpp[i]),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ));
+ return ret;
+ }
+
+ static PyObject *PartitionBySpreadZone(const DataArrayInt *arrIn, const DataArrayInt *arrIndxIn) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<DataArrayInt *> retCpp(MEDCouplingUMesh::PartitionBySpreadZone(arrIn,arrIndxIn));
+ int sz=retCpp.size();
+ PyObject *ret=PyList_New(sz);
+ for(int i=0;i<sz;i++)
+ PyList_SetItem(ret,i,SWIG_NewPointerObj(SWIG_as_voidptr(retCpp[i]),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ));
+ return ret;
+ }
+
+ PyObject *keepSpecifiedCells(INTERP_KERNEL::NormalizedCellType type, PyObject *ids) const throw(INTERP_KERNEL::Exception)
+ {
+ int size;
+ INTERP_KERNEL::AutoPtr<int> tmp=convertPyToNewIntArr2(ids,&size);
+ MEDCouplingUMesh *ret=self->keepSpecifiedCells(type,tmp,tmp+size);
+ return SWIG_NewPointerObj(SWIG_as_voidptr(ret),SWIGTYPE_p_MEDCoupling__MEDCouplingUMesh, SWIG_POINTER_OWN | 0 );
+ }
+
+ bool checkConsecutiveCellTypesAndOrder(PyObject *li) const throw(INTERP_KERNEL::Exception)
+ {
+ int sz;
+ INTERP_KERNEL::AutoPtr<INTERP_KERNEL::NormalizedCellType> order=(INTERP_KERNEL::NormalizedCellType *)convertPyToNewIntArr2(li,&sz);
+ bool ret=self->checkConsecutiveCellTypesAndOrder(order,order+sz);
+ return ret;
+ }
+
+ DataArrayInt *getRenumArrForConsecutiveCellTypesSpec(PyObject *li) const throw(INTERP_KERNEL::Exception)
+ {
+ int sz;
+ INTERP_KERNEL::AutoPtr<INTERP_KERNEL::NormalizedCellType> order=(INTERP_KERNEL::NormalizedCellType *)convertPyToNewIntArr2(li,&sz);
+ DataArrayInt *ret=self->getRenumArrForConsecutiveCellTypesSpec(order,(INTERP_KERNEL::NormalizedCellType *)order+sz);
+ return ret;
+ }
+
+ PyObject *findNodesToDuplicate(const MEDCouplingUMesh& otherDimM1OnSameCoords) const throw(INTERP_KERNEL::Exception)
+ {
+ 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_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;
+ }
+
+ PyObject *findCellIdsLyingOn(const MEDCouplingUMesh& otherDimM1OnSameCoords) const throw(INTERP_KERNEL::Exception)
+ {
+ 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_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;
+ }
+
+ void duplicateNodes(PyObject *li) throw(INTERP_KERNEL::Exception)
+ {
+ int sw;
+ int singleVal;
+ std::vector<int> multiVal;
+ std::pair<int, std::pair<int,int> > slic;
+ MEDCoupling::DataArrayInt *daIntTyypp=0;
+ convertIntStarOrSliceLikePyObjToCpp(li,self->getNumberOfNodes(),sw,singleVal,multiVal,slic,daIntTyypp);
+ switch(sw)
+ {
+ case 1:
+ return self->duplicateNodes(&singleVal,&singleVal+1);
+ case 2:
+ return self->duplicateNodes(&multiVal[0],&multiVal[0]+multiVal.size());
+ case 4:
+ return self->duplicateNodes(daIntTyypp->begin(),daIntTyypp->end());
+ default:
+ throw INTERP_KERNEL::Exception("MEDCouplingUMesh::duplicateNodes : unrecognized type entered, expected list of int, tuple of int or DataArrayInt !");
+ }
+ }
+
+ void duplicateNodesInConn(PyObject *li, int offset) throw(INTERP_KERNEL::Exception)
+ {
+ int sw;
+ int singleVal;
+ std::vector<int> multiVal;
+ std::pair<int, std::pair<int,int> > slic;
+ MEDCoupling::DataArrayInt *daIntTyypp=0;
+ convertIntStarOrSliceLikePyObjToCpp(li,self->getNumberOfNodes(),sw,singleVal,multiVal,slic,daIntTyypp);
+ switch(sw)
+ {
+ case 1:
+ return self->duplicateNodesInConn(&singleVal,&singleVal+1,offset);
+ case 2:
+ return self->duplicateNodesInConn(&multiVal[0],&multiVal[0]+multiVal.size(),offset);
+ case 4:
+ return self->duplicateNodesInConn(daIntTyypp->begin(),daIntTyypp->end(),offset);
+ default:
+ throw INTERP_KERNEL::Exception("MEDCouplingUMesh::duplicateNodesInConn : unrecognized type entered, expected list of int, tuple of int or DataArrayInt !");
+ }
+ }
+
+ PyObject *getLevArrPerCellTypes(PyObject *li) const throw(INTERP_KERNEL::Exception)
+ {
+ int sz;
+ INTERP_KERNEL::AutoPtr<INTERP_KERNEL::NormalizedCellType> order=(INTERP_KERNEL::NormalizedCellType *)convertPyToNewIntArr2(li,&sz);
+ 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_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;
+ }
+
+ PyObject *convertNodalConnectivityToDynamicGeoTypeMesh() const throw(INTERP_KERNEL::Exception)
+ {
+ 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_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<const MEDCoupling::MEDCouplingUMesh *> meshes;
+ convertFromPyObjVectorOfObj<const MEDCoupling::MEDCouplingUMesh *>(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_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<const MEDCoupling::MEDCouplingUMesh *> meshes;
+ convertFromPyObjVectorOfObj<const MEDCoupling::MEDCouplingUMesh *>(ms,SWIGTYPE_p_MEDCoupling__MEDCouplingUMesh,"MEDCouplingUMesh",meshes);
+ MEDCouplingUMesh *ret=MEDCouplingUMesh::MergeUMeshesOnSameCoords(meshes);
+ return convertMesh(ret, SWIG_POINTER_OWN | 0 );
+ }
+
+ static PyObject *FuseUMeshesOnSameCoords(PyObject *ms, int compType) throw(INTERP_KERNEL::Exception)
+ {
+ int sz;
+ std::vector<const MEDCouplingUMesh *> meshes;
+ convertFromPyObjVectorOfObj<const MEDCoupling::MEDCouplingUMesh *>(ms,SWIGTYPE_p_MEDCoupling__MEDCouplingUMesh,"MEDCouplingUMesh",meshes);
+ std::vector<DataArrayInt *> corr;
+ MEDCouplingUMesh *um=MEDCouplingUMesh::FuseUMeshesOnSameCoords(meshes,compType,corr);
+ sz=corr.size();
+ PyObject *ret1=PyList_New(sz);
+ for(int i=0;i<sz;i++)
+ PyList_SetItem(ret1,i,SWIG_NewPointerObj(SWIG_as_voidptr(corr[i]),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ));
+ PyObject *ret=PyList_New(2);
+ PyList_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(um),SWIGTYPE_p_MEDCoupling__MEDCouplingUMesh, SWIG_POINTER_OWN | 0 ));
+ PyList_SetItem(ret,1,ret1);
+ return ret;
+ }
+
+ static void PutUMeshesOnSameAggregatedCoords(PyObject *ms) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<MEDCouplingUMesh *> meshes;
+ convertFromPyObjVectorOfObj<MEDCoupling::MEDCouplingUMesh *>(ms,SWIGTYPE_p_MEDCoupling__MEDCouplingUMesh,"MEDCouplingUMesh",meshes);
+ MEDCouplingUMesh::PutUMeshesOnSameAggregatedCoords(meshes);
+ }
+
+ static void MergeNodesOnUMeshesSharingSameCoords(PyObject *ms, double eps) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<MEDCouplingUMesh *> meshes;
+ convertFromPyObjVectorOfObj<MEDCoupling::MEDCouplingUMesh *>(ms,SWIGTYPE_p_MEDCoupling__MEDCouplingUMesh,"MEDCouplingUMesh",meshes);
+ MEDCouplingUMesh::MergeNodesOnUMeshesSharingSameCoords(meshes,eps);
+ }
+
+ static bool RemoveIdsFromIndexedArrays(PyObject *li, DataArrayInt *arr, DataArrayInt *arrIndx, int offsetForRemoval=0) throw(INTERP_KERNEL::Exception)
+ {
+ int sw;
+ int singleVal;
+ std::vector<int> multiVal;
+ std::pair<int, std::pair<int,int> > slic;
+ MEDCoupling::DataArrayInt *daIntTyypp=0;
+ if(!arrIndx)
+ throw INTERP_KERNEL::Exception("MEDCouplingUMesh::RemoveIdsFromIndexedArrays : null pointer as arrIndex !");
+ convertIntStarOrSliceLikePyObjToCpp(li,arrIndx->getNumberOfTuples()-1,sw,singleVal,multiVal,slic,daIntTyypp);
+ switch(sw)
+ {
+ case 1:
+ return MEDCouplingUMesh::RemoveIdsFromIndexedArrays(&singleVal,&singleVal+1,arr,arrIndx,offsetForRemoval);
+ case 2:
+ return MEDCouplingUMesh::RemoveIdsFromIndexedArrays(&multiVal[0],&multiVal[0]+multiVal.size(),arr,arrIndx,offsetForRemoval);
+ case 4:
+ return MEDCouplingUMesh::RemoveIdsFromIndexedArrays(daIntTyypp->begin(),daIntTyypp->end(),arr,arrIndx,offsetForRemoval);
+ default:
+ throw INTERP_KERNEL::Exception("MEDCouplingUMesh::RemoveIdsFromIndexedArrays : unrecognized type entered, expected list of int, tuple of int or DataArrayInt !");
+ }
+ }
+
+ static PyObject *ExtractFromIndexedArrays(PyObject *li, const DataArrayInt *arrIn, const DataArrayInt *arrIndxIn) throw(INTERP_KERNEL::Exception)
+ {
+ DataArrayInt *arrOut=0,*arrIndexOut=0;
+ int sw;
+ int singleVal;
+ std::vector<int> multiVal;
+ std::pair<int, std::pair<int,int> > slic;
+ MEDCoupling::DataArrayInt *daIntTyypp=0;
+ if(!arrIndxIn)
+ throw INTERP_KERNEL::Exception("MEDCouplingUMesh::ExtractFromIndexedArrays : null pointer as arrIndxIn !");
+ convertIntStarOrSliceLikePyObjToCpp(li,arrIndxIn->getNumberOfTuples()-1,sw,singleVal,multiVal,slic,daIntTyypp);
+ switch(sw)
+ {
+ case 1:
+ {
+ MEDCouplingUMesh::ExtractFromIndexedArrays(&singleVal,&singleVal+1,arrIn,arrIndxIn,arrOut,arrIndexOut);
+ break;
+ }
+ case 2:
+ {
+ MEDCouplingUMesh::ExtractFromIndexedArrays(&multiVal[0],&multiVal[0]+multiVal.size(),arrIn,arrIndxIn,arrOut,arrIndexOut);
+ break;
+ }
+ case 4:
+ {
+ MEDCouplingUMesh::ExtractFromIndexedArrays(daIntTyypp->begin(),daIntTyypp->end(),arrIn,arrIndxIn,arrOut,arrIndexOut);
+ break;
+ }
+ default:
+ 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_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 *ExtractFromIndexedArraysSlice(int strt, int stp, int step, const DataArrayInt *arrIn, const DataArrayInt *arrIndxIn) throw(INTERP_KERNEL::Exception)
+ {
+ DataArrayInt *arrOut=0,*arrIndexOut=0;
+ 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_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 *ExtractFromIndexedArraysSlice(PyObject *slic, const DataArrayInt *arrIn, const DataArrayInt *arrIndxIn) throw(INTERP_KERNEL::Exception)
+ {
+ if(!PySlice_Check(slic))
+ throw INTERP_KERNEL::Exception("ExtractFromIndexedArraysSlice (wrap) : the first param is not a pyslice !");
+ Py_ssize_t strt=2,stp=2,step=2;
+ if(!arrIndxIn)
+ throw INTERP_KERNEL::Exception("ExtractFromIndexedArraysSlice (wrap) : last array is null !");
+ arrIndxIn->checkAllocated();
+ if(arrIndxIn->getNumberOfComponents()!=1)
+ 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::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_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 *SetPartOfIndexedArrays(PyObject *li,
+ const DataArrayInt *arrIn, const DataArrayInt *arrIndxIn,
+ const DataArrayInt *srcArr, const DataArrayInt *srcArrIndex) throw(INTERP_KERNEL::Exception)
+ {
+ DataArrayInt *arrOut=0,*arrIndexOut=0;
+ int sw;
+ int singleVal;
+ std::vector<int> multiVal;
+ std::pair<int, std::pair<int,int> > slic;
+ MEDCoupling::DataArrayInt *daIntTyypp=0;
+ if(!arrIndxIn)
+ throw INTERP_KERNEL::Exception("MEDCouplingUMesh::SetPartOfIndexedArrays : null pointer as arrIndex !");
+ convertIntStarOrSliceLikePyObjToCpp(li,arrIndxIn->getNumberOfTuples()-1,sw,singleVal,multiVal,slic,daIntTyypp);
+ switch(sw)
+ {
+ case 1:
+ {
+ MEDCouplingUMesh::SetPartOfIndexedArrays(&singleVal,&singleVal+1,arrIn,arrIndxIn,srcArr,srcArrIndex,arrOut,arrIndexOut);
+ break;
+ }
+ case 2:
+ {
+ MEDCouplingUMesh::SetPartOfIndexedArrays(&multiVal[0],&multiVal[0]+multiVal.size(),arrIn,arrIndxIn,srcArr,srcArrIndex,arrOut,arrIndexOut);
+ break;
+ }
+ case 4:
+ {
+ MEDCouplingUMesh::SetPartOfIndexedArrays(daIntTyypp->begin(),daIntTyypp->end(),arrIn,arrIndxIn,srcArr,srcArrIndex,arrOut,arrIndexOut);
+ break;
+ }
+ default:
+ 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_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 void SetPartOfIndexedArraysSameIdx(PyObject *li, DataArrayInt *arrIn, const DataArrayInt *arrIndxIn,
+ const DataArrayInt *srcArr, const DataArrayInt *srcArrIndex) throw(INTERP_KERNEL::Exception)
+ {
+ int sw;
+ int singleVal;
+ std::vector<int> multiVal;
+ std::pair<int, std::pair<int,int> > slic;
+ MEDCoupling::DataArrayInt *daIntTyypp=0;
+ if(!arrIndxIn)
+ throw INTERP_KERNEL::Exception("MEDCouplingUMesh::SetPartOfIndexedArraysSameIdx : null pointer as arrIndex !");
+ convertIntStarOrSliceLikePyObjToCpp(li,arrIndxIn->getNumberOfTuples()-1,sw,singleVal,multiVal,slic,daIntTyypp);
+ switch(sw)
+ {
+ case 1:
+ {
+ MEDCouplingUMesh::SetPartOfIndexedArraysSameIdx(&singleVal,&singleVal+1,arrIn,arrIndxIn,srcArr,srcArrIndex);
+ break;
+ }
+ case 2:
+ {
+ MEDCouplingUMesh::SetPartOfIndexedArraysSameIdx(&multiVal[0],&multiVal[0]+multiVal.size(),arrIn,arrIndxIn,srcArr,srcArrIndex);
+ break;
+ }
+ case 4:
+ {
+ MEDCouplingUMesh::SetPartOfIndexedArraysSameIdx(daIntTyypp->begin(),daIntTyypp->end(),arrIn,arrIndxIn,srcArr,srcArrIndex);
+ break;
+ }
+ default:
+ throw INTERP_KERNEL::Exception("MEDCouplingUMesh::SetPartOfIndexedArraysSameIdx : unrecognized type entered, expected list of int, tuple of int or DataArrayInt !");
+ }
+ }
+
+ PyObject *are2DCellsNotCorrectlyOriented(PyObject *vec, bool polyOnly) const throw(INTERP_KERNEL::Exception)
+ {
+ double val;
+ DataArrayDouble *a;
+ DataArrayDoubleTuple *aa;
+ std::vector<double> bb;
+ int sw;
+ int spaceDim=self->getSpaceDimension();
+ const char msg[]="Python wrap of MEDCouplingUMesh::are2DCellsNotCorrectlyOriented : ";
+ const double *v=convertObjToPossibleCpp5_Safe(vec,sw,val,a,aa,bb,msg,1,spaceDim,true);
+ //
+ std::vector<int> cells;
+ self->are2DCellsNotCorrectlyOriented(v,polyOnly,cells);
+ 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_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 );
+ }
+
+ void orientCorrectly2DCells(PyObject *vec, bool polyOnly) throw(INTERP_KERNEL::Exception)
+ {
+ double val;
+ DataArrayDouble *a;
+ DataArrayDoubleTuple *aa;
+ std::vector<double> bb;
+ int sw;
+ int spaceDim=self->getSpaceDimension();
+ const char msg[]="Python wrap of MEDCouplingUMesh::orientCorrectly2DCells : ";
+ const double *v=convertObjToPossibleCpp5_Safe(vec,sw,val,a,aa,bb,msg,1,spaceDim,true);
+ self->orientCorrectly2DCells(v,polyOnly);
+ }
+
+ PyObject *arePolyhedronsNotCorrectlyOriented() const throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<int> cells;
+ self->arePolyhedronsNotCorrectlyOriented(cells);
+ 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_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 );
+ }
+
+ PyObject *getFastAveragePlaneOfThis() const throw(INTERP_KERNEL::Exception)
+ {
+ double vec[3];
+ double pos[3];
+ self->getFastAveragePlaneOfThis(vec,pos);
+ double vals[6];
+ std::copy(vec,vec+3,vals);
+ std::copy(pos,pos+3,vals+3);
+ return convertDblArrToPyListOfTuple<double>(vals,3,2);
+ }
+
+ static MEDCouplingUMesh *MergeUMeshes(PyObject *li) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<const MEDCoupling::MEDCouplingUMesh *> tmp;
+ convertFromPyObjVectorOfObj<const MEDCoupling::MEDCouplingUMesh *>(li,SWIGTYPE_p_MEDCoupling__MEDCouplingUMesh,"MEDCouplingUMesh",tmp);
+ return MEDCouplingUMesh::MergeUMeshes(tmp);
+ }
+
+ PyObject *areCellsIncludedIn(const MEDCouplingUMesh *other, int compType) const throw(INTERP_KERNEL::Exception)
+ {
+ DataArrayInt *ret1;
+ bool ret0=self->areCellsIncludedIn(other,compType,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_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ));
+ return ret;
+ }
+
+ PyObject *areCellsIncludedInPolicy7(const MEDCouplingUMesh *other) const throw(INTERP_KERNEL::Exception)
+ {
+ DataArrayInt *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_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ));
+ return ret;
+ }
+
+ PyObject *explode3DMeshTo1D() const throw(INTERP_KERNEL::Exception)
+ {
+ MCAuto<DataArrayInt> d0=DataArrayInt::New();
+ MCAuto<DataArrayInt> d1=DataArrayInt::New();
+ MCAuto<DataArrayInt> d2=DataArrayInt::New();
+ MCAuto<DataArrayInt> 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_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<DataArrayInt> desc,descIndex,revDesc,revDescIndx;
+ MCAuto<MEDCouplingUMesh> 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<DataArrayInt> d0=DataArrayInt::New();
+ MCAuto<DataArrayInt> d1=DataArrayInt::New();
+ MCAuto<DataArrayInt> d2=DataArrayInt::New();
+ MCAuto<DataArrayInt> 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)
+ {
+ MCAuto<DataArrayInt> d0=DataArrayInt::New();
+ MCAuto<DataArrayInt> d1=DataArrayInt::New();
+ MCAuto<DataArrayInt> d2=DataArrayInt::New();
+ MCAuto<DataArrayInt> 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_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)
+ {
+ MCAuto<DataArrayInt> d0=DataArrayInt::New();
+ MCAuto<DataArrayInt> d1=DataArrayInt::New();
+ MCAuto<DataArrayInt> d2=DataArrayInt::New();
+ MCAuto<DataArrayInt> 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_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 *computeNeighborsOfCells() const throw(INTERP_KERNEL::Exception)
+ {
+ 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_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<DataArrayInt> 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<DataArrayInt> 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_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)
+ {
+ MCAuto<DataArrayInt> d0=DataArrayInt::New();
+ MCAuto<DataArrayInt> 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_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;
+ }
+
+ DataArrayDouble *getPartBarycenterAndOwner(DataArrayInt *da) const throw(INTERP_KERNEL::Exception)
+ {
+ if(!da)
+ throw INTERP_KERNEL::Exception("Not null DataArrayInt instance expected !");
+ da->checkAllocated();
+ return self->getPartBarycenterAndOwner(da->getConstPointer(),da->getConstPointer()+da->getNbOfElems());
+ }
+
+ DataArrayDouble *getPartMeasureField(bool isAbs, DataArrayInt *da) const throw(INTERP_KERNEL::Exception)
+ {
+ if(!da)
+ throw INTERP_KERNEL::Exception("Not null DataArrayInt instance expected !");
+ da->checkAllocated();
+ return self->getPartMeasureField(isAbs,da->getConstPointer(),da->getConstPointer()+da->getNbOfElems());
+ }
+
+ MEDCouplingFieldDouble *buildPartOrthogonalField(DataArrayInt *da) const throw(INTERP_KERNEL::Exception)
+ {
+ if(!da)
+ throw INTERP_KERNEL::Exception("Not null DataArrayInt instance expected !");
+ da->checkAllocated();
+ return self->buildPartOrthogonalField(da->getConstPointer(),da->getConstPointer()+da->getNbOfElems());
+ }
+
+ PyObject *getTypesOfPart(DataArrayInt *da) const throw(INTERP_KERNEL::Exception)
+ {
+ if(!da)
+ throw INTERP_KERNEL::Exception("Not null DataArrayInt instance expected !");
+ da->checkAllocated();
+ std::set<INTERP_KERNEL::NormalizedCellType> result=self->getTypesOfPart(da->getConstPointer(),da->getConstPointer()+da->getNbOfElems());
+ std::set<INTERP_KERNEL::NormalizedCellType>::const_iterator iL=result.begin();
+ PyObject *res = PyList_New(result.size());
+ for (int i=0;iL!=result.end(); i++, iL++)
+ PyList_SetItem(res,i,PyInt_FromLong(*iL));
+ return res;
+ }
+
+ DataArrayInt *keepCellIdsByType(INTERP_KERNEL::NormalizedCellType type, DataArrayInt *da) const throw(INTERP_KERNEL::Exception)
+ {
+ if(!da)
+ throw INTERP_KERNEL::Exception("Not null DataArrayInt instance expected !");
+ da->checkAllocated();
+ DataArrayInt *ret=self->keepCellIdsByType(type,da->getConstPointer(),da->getConstPointer()+da->getNbOfElems());
+ ret->setName(da->getName().c_str());
+ return ret;
+ }
+
+ static PyObject *Intersect2DMeshes(const MEDCouplingUMesh *m1, const MEDCouplingUMesh *m2, double eps) throw(INTERP_KERNEL::Exception)
+ {
+ 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_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;
+ }
+
+ PyObject *buildSlice3D(PyObject *origin, PyObject *vec, double eps) const throw(INTERP_KERNEL::Exception)
+ {
+ int spaceDim=self->getSpaceDimension();
+ if(spaceDim!=3)
+ throw INTERP_KERNEL::Exception("Python wrap of MEDCouplingUMesh::buildSlice3D : works only for spaceDim 3 !");
+ double val,val2;
+ DataArrayDouble *a,*a2;
+ DataArrayDoubleTuple *aa,*aa2;
+ std::vector<double> bb,bb2;
+ int sw;
+ 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_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;
+ }
+
+ PyObject *buildSlice3DSurf(PyObject *origin, PyObject *vec, double eps) const throw(INTERP_KERNEL::Exception)
+ {
+ int spaceDim=self->getSpaceDimension();
+ if(spaceDim!=3)
+ throw INTERP_KERNEL::Exception("Python wrap of MEDCouplingUMesh::buildSlice3DSurf : works only for spaceDim 3 !");
+ double val,val2;
+ DataArrayDouble *a,*a2;
+ DataArrayDoubleTuple *aa,*aa2;
+ std::vector<double> bb,bb2;
+ int sw;
+ 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_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<double> 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<MEDCouplingUMesh> 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();
+ if(spaceDim!=3)
+ throw INTERP_KERNEL::Exception("Python wrap of MEDCouplingUMesh::getCellIdsCrossingPlane : works only for spaceDim 3 !");
+ double val,val2;
+ DataArrayDouble *a,*a2;
+ DataArrayDoubleTuple *aa,*aa2;
+ std::vector<double> bb,bb2;
+ int sw;
+ 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);
+ }
+
+ void convertToPolyTypes(PyObject *li) throw(INTERP_KERNEL::Exception)
+ {
+ int sw;
+ int pos1;
+ std::vector<int> pos2;
+ DataArrayInt *pos3=0;
+ DataArrayIntTuple *pos4=0;
+ convertIntStarLikePyObjToCpp(li,sw,pos1,pos2,pos3,pos4);
+ switch(sw)
+ {
+ case 1:
+ {
+ self->convertToPolyTypes(&pos1,&pos1+1);
+ return;
+ }
+ case 2:
+ {
+ if(pos2.empty())
+ return;
+ self->convertToPolyTypes(&pos2[0],&pos2[0]+pos2.size());
+ return ;
+ }
+ case 3:
+ {
+ self->convertToPolyTypes(pos3->begin(),pos3->end());
+ return ;
+ }
+ default:
+ throw INTERP_KERNEL::Exception("MEDCouplingUMesh::convertToPolyTypes : unexpected input array type recognized !");
+ }
+ }
+ }
+ void convertAllToPoly();
+ void convertExtrudedPolyhedra() throw(INTERP_KERNEL::Exception);
+ bool unPolyze() throw(INTERP_KERNEL::Exception);
+ void simplifyPolyhedra(double eps) throw(INTERP_KERNEL::Exception);
+ MEDCouplingUMesh *buildSpreadZonesWithPoly() const throw(INTERP_KERNEL::Exception);
+ MEDCouplingUMesh *buildExtrudedMesh(const MEDCouplingUMesh *mesh1D, int policy) throw(INTERP_KERNEL::Exception);
+ };
+
+ //== MEDCouplingUMesh End
+
+ //== MEDCouplingMappedExtrudedMesh
+
+ class MEDCouplingMappedExtrudedMesh : public MEDCoupling::MEDCouplingMesh
+ {
+ public:
+ 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 {
+ 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 MEDCouplingMappedExtrudedMesh::New();
+ }
+
+ 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();
+ }
+
+ PyObject *getMesh2D() const throw(INTERP_KERNEL::Exception)
+ {
+ MEDCouplingUMesh *ret=self->getMesh2D();
+ if(ret)
+ ret->incrRef();
+ return convertMesh(ret, SWIG_POINTER_OWN | 0 );
+ }
+ PyObject *getMesh1D() const throw(INTERP_KERNEL::Exception)
+ {
+ MEDCouplingUMesh *ret=self->getMesh1D();
+ if(ret)
+ ret->incrRef();
+ return convertMesh(ret, SWIG_POINTER_OWN | 0 );
+ }
+ PyObject *getMesh3DIds() const throw(INTERP_KERNEL::Exception)
+ {
+ DataArrayInt *ret=self->getMesh3DIds();
+ if(ret)
+ ret->incrRef();
+ return SWIG_NewPointerObj(SWIG_as_voidptr(ret),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 );
+ }
+ }
+ };
+
+ //== MEDCouplingMappedExtrudedMesh End
+
+ class MEDCoupling1GTUMesh : public MEDCoupling::MEDCouplingPointSet
+ {
+ public:
+ static MEDCoupling1GTUMesh *New(const std::string& name, INTERP_KERNEL::NormalizedCellType type) throw(INTERP_KERNEL::Exception);
+ static MEDCoupling1GTUMesh *New(const MEDCouplingUMesh *m) throw(INTERP_KERNEL::Exception);
+ 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 checkConsistencyOfConnectivity() const throw(INTERP_KERNEL::Exception);
+ %extend
+ {
+ virtual void insertNextCell(PyObject *li) throw(INTERP_KERNEL::Exception)
+ {
+ int szArr,sw,iTypppArr;
+ std::vector<int> stdvecTyyppArr;
+ const int *tmp=convertIntStarLikePyObjToCppIntStar(li,sw,szArr,iTypppArr,stdvecTyyppArr);
+ self->insertNextCell(tmp,tmp+szArr);
+ }
+
+ virtual DataArrayInt *getNodalConnectivity() const throw(INTERP_KERNEL::Exception)
+ {
+ DataArrayInt *ret=self->getNodalConnectivity();
+ if(ret) ret->incrRef();
+ return ret;
+ }
+
+ static MEDCouplingUMesh *AggregateOnSameCoordsToUMesh(PyObject *li) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector< const MEDCoupling1GTUMesh *> parts;
+ convertFromPyObjVectorOfObj<const MEDCoupling::MEDCoupling1GTUMesh *>(li,SWIGTYPE_p_MEDCoupling__MEDCoupling1GTUMesh,"MEDCoupling1GTUMesh",parts);
+ return MEDCoupling1GTUMesh::AggregateOnSameCoordsToUMesh(parts);
+ }
+ }
+ };
+
+ //== MEDCoupling1SGTUMesh
+
+ class MEDCoupling1SGTUMesh : public MEDCoupling::MEDCoupling1GTUMesh
+ {
+ public:
+ static MEDCoupling1SGTUMesh *New(const std::string& name, INTERP_KERNEL::NormalizedCellType type) throw(INTERP_KERNEL::Exception);
+ static MEDCoupling1SGTUMesh *New(const MEDCouplingUMesh *m) throw(INTERP_KERNEL::Exception);
+ void setNodalConnectivity(DataArrayInt *nodalConn) throw(INTERP_KERNEL::Exception);
+ int getNumberOfNodesPerCell() const throw(INTERP_KERNEL::Exception);
+ static MEDCoupling1SGTUMesh *Merge1SGTUMeshes(const MEDCoupling1SGTUMesh *mesh1, const MEDCoupling1SGTUMesh *mesh2) throw(INTERP_KERNEL::Exception);
+ MEDCoupling1SGTUMesh *buildSetInstanceFromThis(int spaceDim) const throw(INTERP_KERNEL::Exception);
+ MEDCoupling1GTUMesh *computeDualMesh() const throw(INTERP_KERNEL::Exception);
+ MEDCoupling1SGTUMesh *explodeEachHexa8To6Quad4() const throw(INTERP_KERNEL::Exception);
+ 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);
+ }
+
+ MEDCoupling1SGTUMesh(const MEDCouplingUMesh *m) throw(INTERP_KERNEL::Exception)
+ {
+ return MEDCoupling1SGTUMesh::New(m);
+ }
+
+ 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();
+ }
+
+ 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<const MEDCoupling::MEDCoupling1SGTUMesh *> tmp;
+ convertFromPyObjVectorOfObj<const MEDCoupling::MEDCoupling1SGTUMesh *>(li,SWIGTYPE_p_MEDCoupling__MEDCoupling1SGTUMesh,"MEDCoupling1SGTUMesh",tmp);
+ return MEDCoupling1SGTUMesh::Merge1SGTUMeshes(tmp);
+ }
+
+ static MEDCoupling1SGTUMesh *Merge1SGTUMeshesOnSameCoords(PyObject *li) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<const MEDCoupling::MEDCoupling1SGTUMesh *> tmp;
+ convertFromPyObjVectorOfObj<const MEDCoupling::MEDCoupling1SGTUMesh *>(li,SWIGTYPE_p_MEDCoupling__MEDCoupling1SGTUMesh,"MEDCoupling1SGTUMesh",tmp);
+ return MEDCoupling1SGTUMesh::Merge1SGTUMeshesOnSameCoords(tmp);
+ }
+ }
+ };
+
+ //== MEDCoupling1SGTUMesh End
+
+ //== MEDCoupling1DGTUMesh
+
+ class MEDCoupling1DGTUMesh : public MEDCoupling::MEDCoupling1GTUMesh
+ {
+ public:
+ static MEDCoupling1DGTUMesh *New(const std::string& name, INTERP_KERNEL::NormalizedCellType type) throw(INTERP_KERNEL::Exception);
+ static MEDCoupling1DGTUMesh *New(const MEDCouplingUMesh *m) throw(INTERP_KERNEL::Exception);
+ void setNodalConnectivity(DataArrayInt *nodalConn, DataArrayInt *nodalConnIndex) throw(INTERP_KERNEL::Exception);
+ MEDCoupling1DGTUMesh *buildSetInstanceFromThis(int spaceDim) const throw(INTERP_KERNEL::Exception);
+ 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);
+ }
+
+ MEDCoupling1DGTUMesh(const MEDCouplingUMesh *m) throw(INTERP_KERNEL::Exception)
+ {
+ return MEDCoupling1DGTUMesh::New(m);
+ }
+
+ 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();
+ }
+
+ DataArrayInt *getNodalConnectivityIndex() const throw(INTERP_KERNEL::Exception)
+ {
+ DataArrayInt *ret=self->getNodalConnectivityIndex();
+ if(ret) ret->incrRef();
+ return ret;
+ }
+
+ PyObject *retrievePackedNodalConnectivity() const throw(INTERP_KERNEL::Exception)
+ {
+ DataArrayInt *ret1=0,*ret2=0;
+ bool ret0=self->retrievePackedNodalConnectivity(ret1,ret2);
+ PyObject *ret0Py=ret0?Py_True:Py_False;
+ 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_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;
+ }
+
+ PyObject *copyWithNodalConnectivityPacked() const throw(INTERP_KERNEL::Exception)
+ {
+ bool ret1;
+ 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_MEDCoupling__MEDCoupling1DGTUMesh, SWIG_POINTER_OWN | 0 ));
+ PyTuple_SetItem(ret,1,ret1Py);
+ return ret;
+ }
+
+ static MEDCoupling1DGTUMesh *Merge1DGTUMeshes(PyObject *li) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<const MEDCoupling::MEDCoupling1DGTUMesh *> tmp;
+ convertFromPyObjVectorOfObj<const MEDCoupling::MEDCoupling1DGTUMesh *>(li,SWIGTYPE_p_MEDCoupling__MEDCoupling1DGTUMesh,"MEDCoupling1DGTUMesh",tmp);
+ return MEDCoupling1DGTUMesh::Merge1DGTUMeshes(tmp);
+ }
+
+ static MEDCoupling1DGTUMesh *Merge1DGTUMeshesOnSameCoords(PyObject *li) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<const MEDCoupling::MEDCoupling1DGTUMesh *> tmp;
+ convertFromPyObjVectorOfObj<const MEDCoupling::MEDCoupling1DGTUMesh *>(li,SWIGTYPE_p_MEDCoupling__MEDCoupling1DGTUMesh,"MEDCoupling1DGTUMesh",tmp);
+ return MEDCoupling1DGTUMesh::Merge1DGTUMeshesOnSameCoords(tmp);
+ }
+
+ static DataArrayInt *AggregateNodalConnAndShiftNodeIds(PyObject *li, const std::vector<int>& offsetInNodeIdsPerElt) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<const MEDCoupling::DataArrayInt *> tmp;
+ convertFromPyObjVectorOfObj<const MEDCoupling::DataArrayInt *>(li,SWIGTYPE_p_MEDCoupling__DataArrayInt,"DataArrayInt",tmp);
+ return MEDCoupling1DGTUMesh::AggregateNodalConnAndShiftNodeIds(tmp,offsetInNodeIdsPerElt);
+ }
+ }
+ };
+
+ //== MEDCoupling1DGTUMeshEnd
+
+ 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<int> getNodeGridStructure() const throw(INTERP_KERNEL::Exception);
+ std::vector<int> getCellGridStructure() const throw(INTERP_KERNEL::Exception);
+ MEDCoupling1SGTUMesh *build1SGTUnstructured() const throw(INTERP_KERNEL::Exception);
+ std::vector<int> getLocationFromCellId(int cellId) const throw(INTERP_KERNEL::Exception);
+ std::vector<int> 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<int>& st) throw(INTERP_KERNEL::Exception);
+ static DataArrayInt *ComputeCornersGhost(const std::vector<int>& st, int ghostLev) throw(INTERP_KERNEL::Exception);
+ static std::vector<int> GetSplitVectFromStruct(const std::vector<int>& strct) throw(INTERP_KERNEL::Exception);
+ %extend
+ {
+ virtual MEDCouplingStructuredMesh *buildStructuredSubPart(PyObject *cellPart) const throw(INTERP_KERNEL::Exception)
+ {
+ int tmpp1=-1,tmpp2=-1;
+ std::vector<int> tmp=fillArrayWithPyListInt2(cellPart,tmpp1,tmpp2);
+ std::vector< std::pair<int,int> > inp;
+ if(tmpp2==2)
+ {
+ inp.resize(tmpp1);
+ for(int i=0;i<tmpp1;i++)
+ { inp[i].first=tmp[2*i]; inp[i].second=tmp[2*i+1]; }
+ }
+ else if(tmpp2==1)
+ {
+ if(tmpp1%2!=0)
+ throw INTERP_KERNEL::Exception("Wrap of MEDCouplingStructuredMesh.buildStructuredSubPart : invalid input size ! Must be even size !");
+ inp.resize(tmpp1/2);
+ for(int i=0;i<tmpp1/2;i++)
+ { inp[i].first=tmp[2*i]; inp[i].second=tmp[2*i+1]; }
+ }
+ else
+ throw INTERP_KERNEL::Exception("Wrap of MEDCouplingStructuredMesh.buildStructuredSubPart : invalid input size !");
+ return self->buildStructuredSubPart(inp);
+ }
+
+ static DataArrayInt *BuildExplicitIdsFrom(PyObject *st, PyObject *part) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector< std::pair<int,int> > inp;
+ convertPyToVectorPairInt(part,inp);
+ //
+ int szArr,sw,iTypppArr;
+ std::vector<int> stdvecTyyppArr;
+ const int *tmp4=convertIntStarLikePyObjToCppIntStar(st,sw,szArr,iTypppArr,stdvecTyyppArr);
+ std::vector<int> tmp5(tmp4,tmp4+szArr);
+ //
+ return MEDCouplingStructuredMesh::BuildExplicitIdsFrom(tmp5,inp);
+ }
+
+ static void MultiplyPartOf(const std::vector<int>& st, PyObject *part, double factor, DataArrayDouble *da) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector< std::pair<int,int> > inp;
+ convertPyToVectorPairInt(part,inp);
+ MEDCouplingStructuredMesh::MultiplyPartOf(st,inp,factor,da);
+ }
+
+ static void MultiplyPartOfByGhost(const std::vector<int>& st, PyObject *part, int ghostSize, double factor, DataArrayDouble *da) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector< std::pair<int,int> > inp;
+ convertPyToVectorPairInt(part,inp);
+ MEDCouplingStructuredMesh::MultiplyPartOfByGhost(st,inp,ghostSize,factor,da);
+ }
+
+ static PyObject *PutInGhostFormat(int ghostSize, const std::vector<int>& st, PyObject *part) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector< std::pair<int,int> > inp;
+ convertPyToVectorPairInt(part,inp);
+ std::vector<int> stWithGhost;
+ std::vector< std::pair<int,int> > 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<int>& st, const DataArrayDouble *fieldOfDbl, PyObject *partCompactFormat) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector< std::pair<int,int> > inp;
+ convertPyToVectorPairInt(partCompactFormat,inp);
+ return MEDCouplingStructuredMesh::ExtractFieldOfDoubleFrom(st,fieldOfDbl,inp);
+ }
+
+ static void AssignPartOfFieldOfDoubleUsing(const std::vector<int>& st, DataArrayDouble *fieldOfDbl, PyObject *partCompactFormat, const DataArrayDouble *other) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector< std::pair<int,int> > inp;
+ convertPyToVectorPairInt(partCompactFormat,inp);
+ MEDCouplingStructuredMesh::AssignPartOfFieldOfDoubleUsing(st,fieldOfDbl,inp,other);
+ }
+
+ static int DeduceNumberOfGivenRangeInCompactFrmt(PyObject *part) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector< std::pair<int,int> > inp;
+ convertPyToVectorPairInt(part,inp);
+ return MEDCouplingStructuredMesh::DeduceNumberOfGivenRangeInCompactFrmt(inp);
+ }
+
+ static DataArrayInt *Build1GTNodalConnectivity(PyObject *li) throw(INTERP_KERNEL::Exception)
+ {
+ int szArr,sw,iTypppArr;
+ std::vector<int> 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<int> stdvecTyyppArr;
+ const int *tmp(convertIntStarLikePyObjToCppIntStar(li,sw,szArr,iTypppArr,stdvecTyyppArr));
+ return MEDCouplingStructuredMesh::Build1GTNodalConnectivityOfSubLevelMesh(tmp,tmp+szArr);
+ }
+
+ static std::vector<int> GetDimensionsFromCompactFrmt(PyObject *partCompactFormat) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector< std::pair<int,int> > inp;
+ convertPyToVectorPairInt(partCompactFormat,inp);
+ return MEDCouplingStructuredMesh::GetDimensionsFromCompactFrmt(inp);
+ }
+
+ static PyObject *GetCompactFrmtFromDimensions(const std::vector<int>& dims) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector< std::pair<int,int> > ret(MEDCouplingStructuredMesh::GetCompactFrmtFromDimensions(dims));
+ PyObject *retPy=PyList_New(ret.size());
+ for(std::size_t i=0;i<ret.size();i++)
+ {
+ PyObject *tmp=PyTuple_New(2);
+ PyTuple_SetItem(tmp,0,PyInt_FromLong(ret[i].first));
+ PyTuple_SetItem(tmp,1,PyInt_FromLong(ret[i].second));
+ PyList_SetItem(retPy,i,tmp);
+ }
+ return retPy;
+ }
+
+ static PyObject *IntersectRanges(PyObject *r1, PyObject *r2) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector< std::pair<int,int> > r1Cpp,r2Cpp;
+ convertPyToVectorPairInt(r1,r1Cpp);
+ convertPyToVectorPairInt(r2,r2Cpp);
+ std::vector< std::pair<int,int> > ret(MEDCouplingStructuredMesh::IntersectRanges(r1Cpp,r2Cpp));
+ PyObject *retPy=PyList_New(ret.size());
+ for(std::size_t i=0;i<ret.size();i++)
+ {
+ PyObject *tmp=PyTuple_New(2);
+ PyTuple_SetItem(tmp,0,PyInt_FromLong(ret[i].first));
+ PyTuple_SetItem(tmp,1,PyInt_FromLong(ret[i].second));
+ PyList_SetItem(retPy,i,tmp);
+ }
+ return retPy;
+ }
+
+ static bool AreRangesIntersect(PyObject *r1, PyObject *r2)
+ {
+ std::vector< std::pair<int,int> > 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<int> stdvecTyyppArr;
+ const int *tmp=convertIntStarLikePyObjToCppIntStar(li,sw,szArr,iTypppArr,stdvecTyyppArr);
+ int szArr2,sw2,iTypppArr2;
+ std::vector<int> stdvecTyyppArr2;
+ const int *tmp2=convertIntStarLikePyObjToCppIntStar(st,sw2,szArr2,iTypppArr2,stdvecTyyppArr2);
+ std::vector<int> tmp3(tmp2,tmp2+szArr2);
+ std::vector< std::pair<int,int> > 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<partCompactFormat.size();i++)
+ {
+ PyObject *tmp4=PyTuple_New(2);
+ PyTuple_SetItem(tmp4,0,PyInt_FromLong(partCompactFormat[i].first));
+ PyTuple_SetItem(tmp4,1,PyInt_FromLong(partCompactFormat[i].second));
+ PyList_SetItem(ret1Py,i,tmp4);
+ }
+ PyTuple_SetItem(ret,1,ret1Py);
+ return ret;
+ }
+
+ static PyObject *ChangeReferenceFromGlobalOfCompactFrmt(PyObject *bigInAbs, PyObject *partOfBigInAbs, bool check=true) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector< std::pair<int,int> > 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<ret.size();i++)
+ {
+ PyObject *tmp(PyTuple_New(2));
+ PyTuple_SetItem(tmp,0,PyInt_FromLong(ret[i].first));
+ PyTuple_SetItem(tmp,1,PyInt_FromLong(ret[i].second));
+ PyList_SetItem(retPy,i,tmp);
+ }
+ return retPy;
+ }
+
+ static PyObject *TranslateCompactFrmt(PyObject *part, const std::vector<int>& translation) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector< std::pair<int,int> > param0;
+ convertPyToVectorPairInt(part,param0);
+ std::vector< std::pair<int,int> > ret(MEDCouplingStructuredMesh::TranslateCompactFrmt(param0,translation));
+ PyObject *retPy(PyList_New(ret.size()));
+ for(std::size_t i=0;i<ret.size();i++)
+ {
+ PyObject *tmp(PyTuple_New(2));
+ PyTuple_SetItem(tmp,0,PyInt_FromLong(ret[i].first));
+ PyTuple_SetItem(tmp,1,PyInt_FromLong(ret[i].second));
+ PyList_SetItem(retPy,i,tmp);
+ }
+ return retPy;
+ }
+
+ static std::vector<int> FindTranslationFrom(PyObject *startingFrom, PyObject *goingTo) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector< std::pair<int,int> > 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<int,int> > 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<ret.size();i++)
+ {
+ PyObject *tmp(PyTuple_New(2));
+ PyTuple_SetItem(tmp,0,PyInt_FromLong(ret[i].first));
+ PyTuple_SetItem(tmp,1,PyInt_FromLong(ret[i].second));
+ PyList_SetItem(retPy,i,tmp);
+ }
+ return retPy;
+ }
+ }
+ };
+
+ class MEDCouplingCurveLinearMesh;
+
+ //== MEDCouplingCMesh
+
+ class MEDCouplingCMesh : public MEDCoupling::MEDCouplingStructuredMesh
+ {
+ public:
+ static MEDCouplingCMesh *New() throw(INTERP_KERNEL::Exception);
+ static MEDCouplingCMesh *New(const std::string& meshName) throw(INTERP_KERNEL::Exception);
+ void setCoords(const DataArrayDouble *coordsX,
+ const DataArrayDouble *coordsY=0,
+ const DataArrayDouble *coordsZ=0) throw(INTERP_KERNEL::Exception);
+ void setCoordsAt(int i, const DataArrayDouble *arr) throw(INTERP_KERNEL::Exception);
+ MEDCouplingCurveLinearMesh *buildCurveLinear() const throw(INTERP_KERNEL::Exception);
+ %extend {
+ MEDCouplingCMesh() throw(INTERP_KERNEL::Exception)
+ {
+ return MEDCouplingCMesh::New();
+ }
+ MEDCouplingCMesh(const std::string& meshName) throw(INTERP_KERNEL::Exception)
+ {
+ return MEDCouplingCMesh::New(meshName);
+ }
+ 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();
+ }
+ DataArrayDouble *getCoordsAt(int i) throw(INTERP_KERNEL::Exception)
+ {
+ DataArrayDouble *ret=self->getCoordsAt(i);
+ if(ret)
+ ret->incrRef();
+ return ret;
+ }
+ }
+ };
+
+ //== MEDCouplingCMesh End
+
+ //== MEDCouplingCurveLinearMesh
+
+ class MEDCouplingCurveLinearMesh : public MEDCoupling::MEDCouplingStructuredMesh
+ {
+ public:
+ static MEDCouplingCurveLinearMesh *New() throw(INTERP_KERNEL::Exception);
+ static MEDCouplingCurveLinearMesh *New(const std::string& meshName) throw(INTERP_KERNEL::Exception);
+ void setCoords(const DataArrayDouble *coords) throw(INTERP_KERNEL::Exception);
+ %extend {
+ MEDCouplingCurveLinearMesh() throw(INTERP_KERNEL::Exception)
+ {
+ return MEDCouplingCurveLinearMesh::New();
+ }
+ MEDCouplingCurveLinearMesh(const std::string& meshName) throw(INTERP_KERNEL::Exception)
+ {
+ return MEDCouplingCurveLinearMesh::New(meshName);
+ }
+ 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();
+ }
+ DataArrayDouble *getCoords() throw(INTERP_KERNEL::Exception)
+ {
+ DataArrayDouble *ret=self->getCoords();
+ if(ret)
+ ret->incrRef();
+ return ret;
+ }
+ void setNodeGridStructure(PyObject *gridStruct) throw(INTERP_KERNEL::Exception)
+ {
+ int szArr,sw,iTypppArr;
+ std::vector<int> 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<int> getNodeStruct() const throw(INTERP_KERNEL::Exception);
+ std::vector<double> getOrigin() const throw(INTERP_KERNEL::Exception);
+ std::vector<double> 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<int>& 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<int> bb0;
+ nodeStrctPtr=convertIntStarLikePyObjToCppIntStar(nodeStrct,sw,sz,val0,bb0);
+ //
+ double val,val2;
+ std::vector<double> 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<int> 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<double> 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<double> 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<int>& coarseSt, const DataArrayDouble *fineDA, PyObject *fineLocInCoarse, const std::vector<int>& facts, DataArrayDouble *coarseDA) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector< std::pair<int,int> > inp;
+ convertPyToVectorPairInt(fineLocInCoarse,inp);
+ MEDCouplingIMesh::CondenseFineToCoarse(coarseSt,fineDA,inp,facts,coarseDA);
+ }
+
+ static void CondenseFineToCoarseGhost(const std::vector<int>& coarseSt, const DataArrayDouble *fineDA, PyObject *fineLocInCoarse, const std::vector<int>& facts, DataArrayDouble *coarseDA, int ghostSize) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector< std::pair<int,int> > inp;
+ convertPyToVectorPairInt(fineLocInCoarse,inp);
+ MEDCouplingIMesh::CondenseFineToCoarseGhost(coarseSt,fineDA,inp,facts,coarseDA,ghostSize);
+ }
+
+ static void SpreadCoarseToFine(const DataArrayDouble *coarseDA, const std::vector<int>& coarseSt, DataArrayDouble *fineDA, PyObject *fineLocInCoarse, const std::vector<int>& facts) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector< std::pair<int,int> > inp;
+ convertPyToVectorPairInt(fineLocInCoarse,inp);
+ MEDCouplingIMesh::SpreadCoarseToFine(coarseDA,coarseSt,fineDA,inp,facts);
+ }
+
+ static void SpreadCoarseToFineGhost(const DataArrayDouble *coarseDA, const std::vector<int>& coarseSt, DataArrayDouble *fineDA, PyObject *fineLocInCoarse, const std::vector<int>& facts, int ghostSize) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector< std::pair<int,int> > inp;
+ convertPyToVectorPairInt(fineLocInCoarse,inp);
+ MEDCouplingIMesh::SpreadCoarseToFineGhost(coarseDA,coarseSt,fineDA,inp,facts,ghostSize);
+ }
+
+ static void SpreadCoarseToFineGhostZone(const DataArrayDouble *coarseDA, const std::vector<int>& coarseSt, DataArrayDouble *fineDA, PyObject *fineLocInCoarse, const std::vector<int>& facts, int ghostSize) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector< std::pair<int,int> > 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 MEDCoupling
+{
+ class MEDCouplingField : public MEDCoupling::RefCountObject, public MEDCoupling::TimeLabel
+ {
+ public:
+ virtual void checkConsistencyLight() const throw(INTERP_KERNEL::Exception);
+ virtual bool areCompatibleForMerge(const MEDCouplingField *other) const throw(INTERP_KERNEL::Exception);
+ virtual void copyTinyStringsFrom(const MEDCouplingField *other) 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);
+ std::string getName() const throw(INTERP_KERNEL::Exception);
+ TypeOfField getTypeOfField() const throw(INTERP_KERNEL::Exception);
+ NatureOfField getNature() const throw(INTERP_KERNEL::Exception);
+ virtual void setNature(NatureOfField nat) throw(INTERP_KERNEL::Exception);
+ DataArrayDouble *getLocalizationOfDiscr() const throw(INTERP_KERNEL::Exception);
+ MEDCouplingFieldDouble *buildMeasureField(bool isAbs) const throw(INTERP_KERNEL::Exception);
+ int getNumberOfTuplesExpected() const throw(INTERP_KERNEL::Exception);
+ int getNumberOfMeshPlacesExpected() const throw(INTERP_KERNEL::Exception);
+ void setGaussLocalizationOnType(INTERP_KERNEL::NormalizedCellType type, const std::vector<double>& refCoo,
+ const std::vector<double>& gsCoo, const std::vector<double>& wg) throw(INTERP_KERNEL::Exception);
+ void clearGaussLocalizations() throw(INTERP_KERNEL::Exception);
+ MEDCouplingGaussLocalization& getGaussLocalization(int locId) throw(INTERP_KERNEL::Exception);
+ int getNbOfGaussLocalization() const throw(INTERP_KERNEL::Exception);
+ int getGaussLocalizationIdOfOneCell(int cellId) const throw(INTERP_KERNEL::Exception);
+ const MEDCouplingGaussLocalization& getGaussLocalization(int locId) const throw(INTERP_KERNEL::Exception);
+ int getGaussLocalizationIdOfOneType(INTERP_KERNEL::NormalizedCellType type) const throw(INTERP_KERNEL::Exception);
+ void setDiscretization(MEDCouplingFieldDiscretization *newDisc);
+ %extend {
+ PyObject *getMesh() const throw(INTERP_KERNEL::Exception)
+ {
+ MEDCouplingMesh *ret1=const_cast<MEDCouplingMesh *>(self->getMesh());
+ if(ret1)
+ ret1->incrRef();
+ return convertMesh(ret1,SWIG_POINTER_OWN | 0 );
+ }
+
+ PyObject *getDiscretization() throw(INTERP_KERNEL::Exception)
+ {
+ MEDCouplingFieldDiscretization *ret=self->getDiscretization();
+ if(ret)
+ ret->incrRef();
+ return convertFieldDiscretization(ret,SWIG_POINTER_OWN | 0 );
+ }
+
+ PyObject *getGaussLocalizationIdsOfOneType(INTERP_KERNEL::NormalizedCellType type) const throw(INTERP_KERNEL::Exception)
+ {
+ std::set<int> ret=self->getGaussLocalizationIdsOfOneType(type);
+ return convertIntArrToPyList3(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_MEDCoupling__DataArrayInt, 0 | 0 );
+ if (!SWIG_IsOK(res1))
+ {
+ int size;
+ INTERP_KERNEL::AutoPtr<int> tmp=convertPyToNewIntArr2(li,&size);
+ ret0=self->buildSubMeshData(tmp,tmp+size,ret1);
+ }
+ else
+ {
+ DataArrayInt *da2=reinterpret_cast< DataArrayInt * >(da);
+ if(!da2)
+ throw INTERP_KERNEL::Exception("Not null DataArrayInt instance expected !");
+ da2->checkAllocated();
+ ret0=self->buildSubMeshData(da2->getConstPointer(),da2->getConstPointer()+da2->getNbOfElems(),ret1);
+ }
+ 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_MEDCoupling__DataArrayInt,SWIG_POINTER_OWN | 0));
+ return res;
+ }
+
+ PyObject *buildSubMeshDataRange(int begin, int end, int step) const throw(INTERP_KERNEL::Exception)
+ {
+ DataArrayInt *ret1=0;
+ int bb,ee,ss;
+ MEDCouplingMesh *ret0=self->buildSubMeshDataRange(begin,end,step,bb,ee,ss,ret1);
+ 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_MEDCoupling__DataArrayInt,SWIG_POINTER_OWN | 0));
+ else
+ {
+ PyObject *res1=PySlice_New(PyInt_FromLong(bb),PyInt_FromLong(ee),PyInt_FromLong(ss));
+ PyTuple_SetItem(res,1,res1);
+ }
+ return res;
+ }
+
+ DataArrayInt *computeTupleIdsToSelectFromCellIds(PyObject *cellIds) const
+ {
+ int sw,sz(-1);
+ int v0; std::vector<int> v1;
+ const int *cellIdsBg(convertIntStarLikePyObjToCppIntStar(cellIds,sw,sz,v0,v1));
+ return self->computeTupleIdsToSelectFromCellIds(cellIdsBg,cellIdsBg+sz);
+ }
+
+ void setGaussLocalizationOnCells(PyObject *li, const std::vector<double>& refCoo,
+ const std::vector<double>& gsCoo, const std::vector<double>& wg) throw(INTERP_KERNEL::Exception)
+ {
+ void *da=0;
+ int res1=SWIG_ConvertPtr(li,&da,SWIGTYPE_p_MEDCoupling__DataArrayInt, 0 | 0 );
+ if (!SWIG_IsOK(res1))
+ {
+ int size;
+ INTERP_KERNEL::AutoPtr<int> tmp=convertPyToNewIntArr2(li,&size);
+ self->setGaussLocalizationOnCells(tmp,((int *)tmp)+size,refCoo,gsCoo,wg);
+ }
+ else
+ {
+ DataArrayInt *da2=reinterpret_cast< DataArrayInt * >(da);
+ if(!da2)
+ throw INTERP_KERNEL::Exception("Not null DataArrayInt instance expected !");
+ da2->checkAllocated();
+ self->setGaussLocalizationOnCells(da2->getConstPointer(),da2->getConstPointer()+da2->getNbOfElems(),refCoo,gsCoo,wg);
+ }
+ }
+
+ PyObject *getCellIdsHavingGaussLocalization(int locId) const throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<int> tmp;
+ self->getCellIdsHavingGaussLocalization(locId,tmp);
+ 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_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 );
+ }
+
+ int getNumberOfTuplesExpectedRegardingCode(PyObject *code, PyObject *idsPerType) const throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<int> inp0;
+ convertPyToNewIntArr4(code,1,3,inp0);
+ std::vector<const DataArrayInt *> inp1;
+ convertFromPyObjVectorOfObj<const MEDCoupling::DataArrayInt *>(idsPerType,SWIGTYPE_p_MEDCoupling__DataArrayInt,"DataArrayInt",inp1);
+ return self->getNumberOfTuplesExpectedRegardingCode(inp0,inp1);
+ }
+ }
+ };
+
+ 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)
+ {
+ return MEDCouplingFieldTemplate::New(type);
+ }
+
+ 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();
+ }
+
+ 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 T>
+ class MEDCouplingFieldT : public MEDCoupling::MEDCouplingField
+ {
+ public:
+ TypeOfTimeDiscretization getTimeDiscretization() const throw(INTERP_KERNEL::Exception);
+ protected:
+ MEDCouplingFieldT();
+ ~MEDCouplingFieldT();
+ };
+
+ %template(MEDCouplingFieldTdouble) MEDCoupling::MEDCouplingFieldT<double>;
+ %template(MEDCouplingFieldTfloat) MEDCoupling::MEDCouplingFieldT<float>;
+ %template(MEDCouplingFieldTint) MEDCoupling::MEDCouplingFieldT<int>;
+
+ class MEDCouplingFieldInt;
+ class MEDCouplingFieldFloat;
+
+ class MEDCouplingFieldDouble : public MEDCouplingFieldT<double>
+ {
+ 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);
+ void copyTinyAttrFrom(const MEDCouplingFieldDouble *other) throw(INTERP_KERNEL::Exception);
+ 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);
+ 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 *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);
+ 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);
+ void setArray(DataArrayDouble *array) throw(INTERP_KERNEL::Exception);
+ void setEndArray(DataArrayDouble *array) throw(INTERP_KERNEL::Exception);
+ void setTime(double val, int iteration, int order) throw(INTERP_KERNEL::Exception);
+ 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);
+ void setTimeTolerance(double val) throw(INTERP_KERNEL::Exception);
+ double getTimeTolerance() const throw(INTERP_KERNEL::Exception);
+ void setIteration(int it) throw(INTERP_KERNEL::Exception);
+ void setEndIteration(int it) throw(INTERP_KERNEL::Exception);
+ void setOrder(int order) throw(INTERP_KERNEL::Exception);
+ void setEndOrder(int order) throw(INTERP_KERNEL::Exception);
+ void setTimeValue(double val) throw(INTERP_KERNEL::Exception);
+ void setEndTimeValue(double val) throw(INTERP_KERNEL::Exception);
+ 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 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);
+ MEDCouplingFieldDouble *doublyContractedProduct() const throw(INTERP_KERNEL::Exception);
+ MEDCouplingFieldDouble *determinant() const throw(INTERP_KERNEL::Exception);
+ MEDCouplingFieldDouble *eigenValues() const throw(INTERP_KERNEL::Exception);
+ MEDCouplingFieldDouble *eigenVectors() const throw(INTERP_KERNEL::Exception);
+ MEDCouplingFieldDouble *inverse() const throw(INTERP_KERNEL::Exception);
+ MEDCouplingFieldDouble *trace() const throw(INTERP_KERNEL::Exception);
+ MEDCouplingFieldDouble *deviator() const throw(INTERP_KERNEL::Exception);
+ MEDCouplingFieldDouble *magnitude() const throw(INTERP_KERNEL::Exception);
+ MEDCouplingFieldDouble *maxPerTuple() const throw(INTERP_KERNEL::Exception);
+ void changeNbOfComponents(int newNbOfComp, double dftValue=0.) throw(INTERP_KERNEL::Exception);
+ 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 fillFromAnalyticCompo(int nbOfComp, const std::string& func) throw(INTERP_KERNEL::Exception);
+ void fillFromAnalyticNamedCompo(int nbOfComp, const std::vector<std::string>& varsOrder, const std::string& func) throw(INTERP_KERNEL::Exception);
+ void applyFunc(int nbOfComp, 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<std::string>& 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);
+ void applyFuncFast64(const std::string& func) throw(INTERP_KERNEL::Exception);
+ double accumulate(int compId) const throw(INTERP_KERNEL::Exception);
+ double getMaxValue() const throw(INTERP_KERNEL::Exception);
+ double getMinValue() const throw(INTERP_KERNEL::Exception);
+ double getAverageValue() const throw(INTERP_KERNEL::Exception);
+ double norm2() const throw(INTERP_KERNEL::Exception);
+ double normMax() const throw(INTERP_KERNEL::Exception);
+ //do not put a default value to isWAbs because confusion in python with overloaded getWeightedAverageValue method
+ double getWeightedAverageValue(int compId, bool isWAbs) const throw(INTERP_KERNEL::Exception);
+ 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 *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);
+ static MEDCouplingFieldDouble *DotFields(const MEDCouplingFieldDouble *f1, const MEDCouplingFieldDouble *f2) throw(INTERP_KERNEL::Exception);
+ MEDCouplingFieldDouble *dot(const MEDCouplingFieldDouble& other) const throw(INTERP_KERNEL::Exception);
+ static MEDCouplingFieldDouble *CrossProductFields(const MEDCouplingFieldDouble *f1, const MEDCouplingFieldDouble *f2) throw(INTERP_KERNEL::Exception);
+ MEDCouplingFieldDouble *crossProduct(const MEDCouplingFieldDouble& other) const throw(INTERP_KERNEL::Exception);
+ static MEDCouplingFieldDouble *MaxFields(const MEDCouplingFieldDouble *f1, const MEDCouplingFieldDouble *f2) throw(INTERP_KERNEL::Exception);
+ MEDCouplingFieldDouble *max(const MEDCouplingFieldDouble& other) const throw(INTERP_KERNEL::Exception);
+ static MEDCouplingFieldDouble *MinFields(const MEDCouplingFieldDouble *f1, const MEDCouplingFieldDouble *f2) throw(INTERP_KERNEL::Exception);
+ static MEDCouplingFieldDouble *AddFields(const MEDCouplingFieldDouble *f1, const MEDCouplingFieldDouble *f2) throw(INTERP_KERNEL::Exception);
+ static MEDCouplingFieldDouble *SubstractFields(const MEDCouplingFieldDouble *f1, const MEDCouplingFieldDouble *f2) throw(INTERP_KERNEL::Exception);
+ static MEDCouplingFieldDouble *MultiplyFields(const MEDCouplingFieldDouble *f1, const MEDCouplingFieldDouble *f2) throw(INTERP_KERNEL::Exception);
+ static MEDCouplingFieldDouble *DivideFields(const MEDCouplingFieldDouble *f1, const MEDCouplingFieldDouble *f2) throw(INTERP_KERNEL::Exception);
+ MEDCouplingFieldDouble *min(const MEDCouplingFieldDouble& other) const throw(INTERP_KERNEL::Exception);
+ MEDCouplingFieldDouble *negate() const throw(INTERP_KERNEL::Exception);
+ %extend {
+ MEDCouplingFieldDouble(TypeOfField type, TypeOfTimeDiscretization td=ONE_TIME)
+ {
+ return MEDCouplingFieldDouble::New(type,td);
+ }
+
+ MEDCouplingFieldDouble(const MEDCouplingFieldTemplate& ft, TypeOfTimeDiscretization td=ONE_TIME)
+ {
+ return MEDCouplingFieldDouble::New(ft,td);
+ }
+
+ 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();
+ }
+
+ 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<MEDCouplingFieldDouble> ret(self->voronoize(eps));
+ return ret.retn();
+ }
+
+ MEDCouplingFieldDouble *convertQuadraticCellsToLinear() const throw(INTERP_KERNEL::Exception)
+ {
+ MCAuto<MEDCouplingFieldDouble> 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<double> 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();
+ if(ret)
+ ret->incrRef();
+ return ret;
+ }
+
+ PyObject *getArrays() const throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<DataArrayDouble *> arrs=self->getArrays();
+ for(std::vector<DataArrayDouble *>::iterator it=arrs.begin();it!=arrs.end();it++)
+ if(*it)
+ (*it)->incrRef();
+ int sz=arrs.size();
+ PyObject *ret=PyTuple_New(sz);
+ for(int i=0;i<sz;i++)
+ {
+ if(arrs[i])
+ PyTuple_SetItem(ret,i,SWIG_NewPointerObj(SWIG_as_voidptr(arrs[i]),SWIGTYPE_p_MEDCoupling__DataArrayDouble, SWIG_POINTER_OWN | 0 ));
+ else
+ PyTuple_SetItem(ret,i,SWIG_NewPointerObj(SWIG_as_voidptr(0),SWIGTYPE_p_MEDCoupling__DataArrayDouble, 0 | 0 ));
+ }
+ return ret;
+ }
+
+ void setArrays(PyObject *ls) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<const DataArrayDouble *> tmp;
+ convertFromPyObjVectorOfObj<const DataArrayDouble *>(ls,SWIGTYPE_p_MEDCoupling__DataArrayDouble,"DataArrayDouble",tmp);
+ int sz=tmp.size();
+ std::vector<DataArrayDouble *> arrs(sz);
+ for(int i=0;i<sz;i++)
+ arrs[i]=const_cast<DataArrayDouble *>(tmp[i]);
+ self->setArrays(arrs);
+ }
+
+ DataArrayDouble *getEndArray() throw(INTERP_KERNEL::Exception)
+ {
+ DataArrayDouble *ret=self->getEndArray();
+ if(ret)
+ ret->incrRef();
+ return ret;
+ }
+
+ PyObject *getValueOn(PyObject *sl) const throw(INTERP_KERNEL::Exception)
+ {
+ double val;
+ DataArrayDouble *a;
+ DataArrayDoubleTuple *aa;
+ std::vector<double> bb;
+ int sw;
+ const MEDCouplingMesh *mesh=self->getMesh();
+ if(!mesh)
+ throw INTERP_KERNEL::Exception("Python wrap of MEDCouplingFieldDouble::getValueOn : no underlying mesh !");
+ int spaceDim=mesh->getSpaceDimension();
+ const char msg[]="Python wrap of MEDCouplingFieldDouble::getValueOn : ";
+ const double *spaceLoc=convertObjToPossibleCpp5_Safe(sl,sw,val,a,aa,bb,msg,1,spaceDim,true);
+ //
+ int sz=self->getNumberOfComponents();
+ INTERP_KERNEL::AutoPtr<double> res=new double[sz];
+ self->getValueOn(spaceLoc,res);
+ return convertDblArrToPyList<double>(res,sz);
+ }
+
+ PyObject *getValueOnPos(int i, int j, int k) const throw(INTERP_KERNEL::Exception)
+ {
+ int sz=self->getNumberOfComponents();
+ INTERP_KERNEL::AutoPtr<double> res=new double[sz];
+ self->getValueOnPos(i,j,k,res);
+ return convertDblArrToPyList<double>(res,sz);
+ }
+
+ DataArrayDouble *getValueOnMulti(PyObject *locs) const throw(INTERP_KERNEL::Exception)
+ {
+ const MEDCouplingMesh *mesh(self->getMesh());
+ if(!mesh)
+ throw INTERP_KERNEL::Exception("Python wrap MEDCouplingFieldDouble::getValueOnMulti : lying on a null mesh !");
+ //
+ int sw,nbPts;
+ double v0; MEDCoupling::DataArrayDouble *v1(0); MEDCoupling::DataArrayDoubleTuple *v2(0); std::vector<double> 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);
+ }
+
+ PyObject *getValueOn(PyObject *sl, double time) const throw(INTERP_KERNEL::Exception)
+ {
+ double val;
+ DataArrayDouble *a;
+ DataArrayDoubleTuple *aa;
+ std::vector<double> bb;
+ int sw;
+ const MEDCouplingMesh *mesh=self->getMesh();
+ if(!mesh)
+ throw INTERP_KERNEL::Exception("Python wrap of MEDCouplingFieldDouble::getValueOn : no underlying mesh !");
+ int spaceDim=mesh->getSpaceDimension();
+ const char msg[]="Python wrap of MEDCouplingFieldDouble::getValueOn : ";
+ const double *spaceLoc=convertObjToPossibleCpp5_Safe(sl,sw,val,a,aa,bb,msg,1,spaceDim,true);
+ //
+ //
+ int sz=self->getNumberOfComponents();
+ INTERP_KERNEL::AutoPtr<double> res=new double[sz];
+ self->getValueOn(spaceLoc,time,res);
+ return convertDblArrToPyList<double>(res,sz);
+ }
+
+ void setValues(PyObject *li, PyObject *nbOfTuples=0, PyObject *nbOfComp=0) throw(INTERP_KERNEL::Exception)
+ {
+ if(self->getArray()!=0)
+ MEDCoupling_DataArrayDouble_setValues__SWIG_0(self->getArray(),li,nbOfTuples,nbOfComp);
+ else
+ {
+ MCAuto<DataArrayDouble> arr=DataArrayDouble::New();
+ MEDCoupling_DataArrayDouble_setValues__SWIG_0(arr,li,nbOfTuples,nbOfComp);
+ self->setArray(arr);
+ }
+ }
+
+ 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 *getStartTime() throw(INTERP_KERNEL::Exception)
+ {
+ int tmp1,tmp2;
+ double tmp0=self->getStartTime(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 *getEndTime() throw(INTERP_KERNEL::Exception)
+ {
+ int tmp1,tmp2;
+ double tmp0=self->getEndTime(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 *accumulate() const throw(INTERP_KERNEL::Exception)
+ {
+ int sz=self->getNumberOfComponents();
+ INTERP_KERNEL::AutoPtr<double> tmp=new double[sz];
+ self->accumulate(tmp);
+ return convertDblArrToPyList<double>(tmp,sz);
+ }
+ PyObject *integral(bool isWAbs) const throw(INTERP_KERNEL::Exception)
+ {
+ int sz=self->getNumberOfComponents();
+ INTERP_KERNEL::AutoPtr<double> tmp=new double[sz];
+ self->integral(isWAbs,tmp);
+ return convertDblArrToPyList<double>(tmp,sz);
+ }
+ PyObject *getWeightedAverageValue(bool isWAbs=true) const throw(INTERP_KERNEL::Exception)
+ {
+ int sz=self->getNumberOfComponents();
+ INTERP_KERNEL::AutoPtr<double> tmp=new double[sz];
+ self->getWeightedAverageValue(tmp,isWAbs);
+ return convertDblArrToPyList<double>(tmp,sz);
+ }
+ PyObject *normL1() const throw(INTERP_KERNEL::Exception)
+ {
+ int sz=self->getNumberOfComponents();
+ INTERP_KERNEL::AutoPtr<double> tmp=new double[sz];
+ self->normL1(tmp);
+ return convertDblArrToPyList<double>(tmp,sz);
+ }
+ PyObject *normL2() const throw(INTERP_KERNEL::Exception)
+ {
+ int sz=self->getNumberOfComponents();
+ INTERP_KERNEL::AutoPtr<double> tmp=new double[sz];
+ self->normL2(tmp);
+ return convertDblArrToPyList<double>(tmp,sz);
+ }
+ void renumberCells(PyObject *li, bool check=true) throw(INTERP_KERNEL::Exception)
+ {
+ int szArr,sw,iTypppArr;
+ std::vector<int> stdvecTyyppArr;
+ const int *tmp=convertIntStarLikePyObjToCppIntStar(li,sw,szArr,iTypppArr,stdvecTyyppArr);
+ self->renumberCells(tmp,check);
+ }
+
+ void renumberCellsWithoutMesh(PyObject *li, bool check=true) throw(INTERP_KERNEL::Exception)
+ {
+ int szArr,sw,iTypppArr;
+ std::vector<int> stdvecTyyppArr;
+ const int *tmp=convertIntStarLikePyObjToCppIntStar(li,sw,szArr,iTypppArr,stdvecTyyppArr);
+ self->renumberCellsWithoutMesh(tmp,check);
+ }
+
+ void renumberNodes(PyObject *li, double eps=1e-15) throw(INTERP_KERNEL::Exception)
+ {
+ int szArr,sw,iTypppArr;
+ std::vector<int> stdvecTyyppArr;
+ const int *tmp=convertIntStarLikePyObjToCppIntStar(li,sw,szArr,iTypppArr,stdvecTyyppArr);
+ self->renumberNodes(tmp,eps);
+ }
+
+ void renumberNodesWithoutMesh(PyObject *li, int newNbOfNodes, double eps=1e-15) throw(INTERP_KERNEL::Exception)
+ {
+ int szArr,sw,iTypppArr;
+ std::vector<int> stdvecTyyppArr;
+ const int *tmp=convertIntStarLikePyObjToCppIntStar(li,sw,szArr,iTypppArr,stdvecTyyppArr);
+ self->renumberNodesWithoutMesh(tmp,newNbOfNodes,eps);
+ }
+
+ MEDCouplingFieldDouble *buildSubPart(PyObject *li) const throw(INTERP_KERNEL::Exception)
+ {
+ return fieldT_buildSubPart(self,li);
+ }
+
+ MEDCouplingFieldDouble *__getitem__(PyObject *li) const throw(INTERP_KERNEL::Exception)
+ {
+ return fieldT__getitem__(self,li);
+ }
+
+ PyObject *getMaxValue2() const throw(INTERP_KERNEL::Exception)
+ {
+ DataArrayInt *tmp;
+ 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_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ));
+ return ret;
+ }
+
+ PyObject *getMinValue2() const throw(INTERP_KERNEL::Exception)
+ {
+ DataArrayInt *tmp;
+ 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_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ));
+ return ret;
+ }
+
+ MEDCouplingFieldDouble *keepSelectedComponents(PyObject *li) const throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<int> tmp;
+ convertPyToNewIntArr3(li,tmp);
+ return self->keepSelectedComponents(tmp);
+ }
+
+ void setSelectedComponents(const MEDCouplingFieldDouble *f, PyObject *li) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<int> tmp;
+ convertPyToNewIntArr3(li,tmp);
+ self->setSelectedComponents(f,tmp);
+ }
+
+ MEDCouplingFieldDouble *extractSlice3D(PyObject *origin, PyObject *vec, double eps) const throw(INTERP_KERNEL::Exception)
+ {
+ double val,val2;
+ DataArrayDouble *a,*a2;
+ DataArrayDoubleTuple *aa,*aa2;
+ std::vector<double> bb,bb2;
+ int sw;
+ int spaceDim=3;
+ 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);
+ //
+ return self->extractSlice3D(orig,vect,eps);
+ }
+
+ MEDCouplingFieldDouble *__add__(PyObject *obj) throw(INTERP_KERNEL::Exception)
+ {
+ return MEDCoupling_MEDCouplingFieldDouble___add__Impl(self,obj);
+ }
+
+ MEDCouplingFieldDouble *__radd__(PyObject *obj) throw(INTERP_KERNEL::Exception)
+ {
+ return MEDCoupling_MEDCouplingFieldDouble___radd__Impl(self,obj);
+ }
+
+ MEDCouplingFieldDouble *__sub__(PyObject *obj) throw(INTERP_KERNEL::Exception)
+ {
+ const char msg[]="Unexpected situation in MEDCouplingFieldDouble.__sub__ ! Expecting a not null MEDCouplingFieldDouble or DataArrayDouble or DataArrayDoubleTuple instance, or a list of double, or a double.";
+ 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_MEDCoupling__MEDCouplingFieldDouble,0|0)))
+ {
+ MEDCouplingFieldDouble *other=reinterpret_cast< MEDCoupling::MEDCouplingFieldDouble * >(argp);
+ if(other)
+ return (*self)-(*other);
+ else
+ throw INTERP_KERNEL::Exception(msg);
+ }
+ //
+ double val;
+ DataArrayDouble *a;
+ DataArrayDoubleTuple *aa;
+ std::vector<double> bb;
+ int sw;
+ convertDoubleStarLikePyObjToCpp_2(obj,sw,val,a,aa,bb);
+ switch(sw)
+ {
+ case 1:
+ {
+ if(!self->getArray())
+ throw INTERP_KERNEL::Exception(msg2);
+ MCAuto<DataArrayDouble> ret=self->getArray()->deepCopy();
+ ret->applyLin(1.,-val);
+ MCAuto<MEDCouplingFieldDouble> ret2=self->clone(false);
+ ret2->setArray(ret);
+ return ret2.retn();
+ }
+ case 2:
+ {
+ if(!self->getArray())
+ throw INTERP_KERNEL::Exception(msg2);
+ MCAuto<DataArrayDouble> ret=DataArrayDouble::Substract(self->getArray(),a);
+ MCAuto<MEDCouplingFieldDouble> ret2=self->clone(false);
+ ret2->setArray(ret);
+ return ret2.retn();
+ }
+ case 3:
+ {
+ if(!self->getArray())
+ throw INTERP_KERNEL::Exception(msg2);
+ MCAuto<DataArrayDouble> aaa=aa->buildDADouble(1,self->getNumberOfComponents());
+ MCAuto<DataArrayDouble> ret=DataArrayDouble::Substract(self->getArray(),aaa);
+ MCAuto<MEDCouplingFieldDouble> ret2=self->clone(false);
+ ret2->setArray(ret);
+ return ret2.retn();
+ }
+ case 4:
+ {
+ if(!self->getArray())
+ throw INTERP_KERNEL::Exception(msg2);
+ MCAuto<DataArrayDouble> aaa=DataArrayDouble::New(); aaa->useArray(&bb[0],false,CPP_DEALLOC,1,(int)bb.size());
+ MCAuto<DataArrayDouble> ret=DataArrayDouble::Substract(self->getArray(),aaa);
+ MCAuto<MEDCouplingFieldDouble> ret2=self->clone(false);
+ ret2->setArray(ret);
+ return ret2.retn();
+ }
+ default:
+ { throw INTERP_KERNEL::Exception(msg); }
+ }
+ }
+
+ MEDCouplingFieldDouble *__rsub__(PyObject *obj) throw(INTERP_KERNEL::Exception)
+ {
+ return MEDCoupling_MEDCouplingFieldDouble___rsub__Impl(self,obj);
+ }
+
+ MEDCouplingFieldDouble *__mul__(PyObject *obj) throw(INTERP_KERNEL::Exception)
+ {
+ return MEDCoupling_MEDCouplingFieldDouble___mul__Impl(self,obj);
+ }
+
+ MEDCouplingFieldDouble *__rmul__(PyObject *obj) throw(INTERP_KERNEL::Exception)
+ {
+ return MEDCoupling_MEDCouplingFieldDouble___rmul__Impl(self,obj);
+ }
+
+ MEDCouplingFieldDouble *__div__(PyObject *obj) throw(INTERP_KERNEL::Exception)
+ {
+ const char msg[]="Unexpected situation in MEDCouplingFieldDouble.__div__ ! Expecting a not null MEDCouplingFieldDouble or DataArrayDouble or DataArrayDoubleTuple instance, or a list of double, or a double.";
+ 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_MEDCoupling__MEDCouplingFieldDouble,0|0)))
+ {
+ MEDCouplingFieldDouble *other=reinterpret_cast< MEDCoupling::MEDCouplingFieldDouble * >(argp);
+ if(other)
+ return (*self)/(*other);
+ else
+ throw INTERP_KERNEL::Exception(msg);
+ }
+ //
+ double val;
+ DataArrayDouble *a;
+ DataArrayDoubleTuple *aa;
+ std::vector<double> bb;
+ int sw;
+ convertDoubleStarLikePyObjToCpp_2(obj,sw,val,a,aa,bb);
+ switch(sw)
+ {
+ case 1:
+ {
+ if(val==0.)
+ throw INTERP_KERNEL::Exception("MEDCouplingFieldDouble.__div__ : trying to divide by zero !");
+ if(!self->getArray())
+ throw INTERP_KERNEL::Exception(msg2);
+ MCAuto<DataArrayDouble> ret=self->getArray()->deepCopy();
+ ret->applyLin(1./val,0);
+ MCAuto<MEDCouplingFieldDouble> ret2=self->clone(false);
+ ret2->setArray(ret);
+ return ret2.retn();
+ }
+ case 2:
+ {
+ if(!self->getArray())
+ throw INTERP_KERNEL::Exception(msg2);
+ MCAuto<DataArrayDouble> ret=DataArrayDouble::Divide(self->getArray(),a);
+ MCAuto<MEDCouplingFieldDouble> ret2=self->clone(false);
+ ret2->setArray(ret);
+ return ret2.retn();
+ }
+ case 3:
+ {
+ if(!self->getArray())
+ throw INTERP_KERNEL::Exception(msg2);
+ MCAuto<DataArrayDouble> aaa=aa->buildDADouble(1,self->getNumberOfComponents());
+ MCAuto<DataArrayDouble> ret=DataArrayDouble::Divide(self->getArray(),aaa);
+ MCAuto<MEDCouplingFieldDouble> ret2=self->clone(false);
+ ret2->setArray(ret);
+ return ret2.retn();
+ }
+ case 4:
+ {
+ if(!self->getArray())
+ throw INTERP_KERNEL::Exception(msg2);
+ MCAuto<DataArrayDouble> aaa=DataArrayDouble::New(); aaa->useArray(&bb[0],false,CPP_DEALLOC,1,(int)bb.size());
+ MCAuto<DataArrayDouble> ret=DataArrayDouble::Divide(self->getArray(),aaa);
+ MCAuto<MEDCouplingFieldDouble> ret2=self->clone(false);
+ ret2->setArray(ret);
+ return ret2.retn();
+ }
+ default:
+ { throw INTERP_KERNEL::Exception(msg); }
+ }
+ }
+
+ MEDCouplingFieldDouble *__rdiv__(PyObject *obj) throw(INTERP_KERNEL::Exception)
+ {
+ return MEDCoupling_MEDCouplingFieldDouble___rdiv__Impl(self,obj);
+ }
+
+ MEDCouplingFieldDouble *__pow__(PyObject *obj) throw(INTERP_KERNEL::Exception)
+ {
+ const char msg[]="Unexpected situation in MEDCouplingFieldDouble.__pow__ ! Expecting a not null MEDCouplingFieldDouble or DataArrayDouble or DataArrayDoubleTuple instance, or a list of double, or a double.";
+ 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_MEDCoupling__MEDCouplingFieldDouble,0|0)))
+ {
+ MEDCouplingFieldDouble *other=reinterpret_cast< MEDCoupling::MEDCouplingFieldDouble * >(argp);
+ if(other)
+ return (*self)^(*other);
+ else
+ throw INTERP_KERNEL::Exception(msg);
+ }
+ //
+ double val;
+ DataArrayDouble *a;
+ DataArrayDoubleTuple *aa;
+ std::vector<double> bb;
+ int sw;
+ convertDoubleStarLikePyObjToCpp_2(obj,sw,val,a,aa,bb);
+ switch(sw)
+ {
+ case 1:
+ {
+ if(!self->getArray())
+ throw INTERP_KERNEL::Exception(msg2);
+ MCAuto<DataArrayDouble> ret=self->getArray()->deepCopy();
+ ret->applyPow(val);
+ MCAuto<MEDCouplingFieldDouble> ret2=self->clone(false);
+ ret2->setArray(ret);
+ return ret2.retn();
+ }
+ case 2:
+ {
+ if(!self->getArray())
+ throw INTERP_KERNEL::Exception(msg2);
+ MCAuto<DataArrayDouble> ret=DataArrayDouble::Pow(self->getArray(),a);
+ MCAuto<MEDCouplingFieldDouble> ret2=self->clone(false);
+ ret2->setArray(ret);
+ return ret2.retn();
+ }
+ case 3:
+ {
+ if(!self->getArray())
+ throw INTERP_KERNEL::Exception(msg2);
+ MCAuto<DataArrayDouble> aaa=aa->buildDADouble(1,self->getNumberOfComponents());
+ MCAuto<DataArrayDouble> ret=DataArrayDouble::Pow(self->getArray(),aaa);
+ MCAuto<MEDCouplingFieldDouble> ret2=self->clone(false);
+ ret2->setArray(ret);
+ return ret2.retn();
+ }
+ case 4:
+ {
+ if(!self->getArray())
+ throw INTERP_KERNEL::Exception(msg2);
+ MCAuto<DataArrayDouble> aaa=DataArrayDouble::New(); aaa->useArray(&bb[0],false,CPP_DEALLOC,1,(int)bb.size());
+ MCAuto<DataArrayDouble> ret=DataArrayDouble::Pow(self->getArray(),aaa);
+ MCAuto<MEDCouplingFieldDouble> ret2=self->clone(false);
+ ret2->setArray(ret);
+ return ret2.retn();
+ }
+ default:
+ { throw INTERP_KERNEL::Exception(msg); }
+ }
+ }
+
+ MEDCouplingFieldDouble *__neg__() const throw(INTERP_KERNEL::Exception)
+ {
+ return self->negate();
+ }
+
+ PyObject *___iadd___(PyObject *trueSelf, PyObject *obj) throw(INTERP_KERNEL::Exception)
+ {
+ const char msg[]="Unexpected situation in MEDCouplingFieldDouble.__iadd__ ! Expecting a not null MEDCouplingFieldDouble or DataArrayDouble or DataArrayDoubleTuple instance, or a list of double, or a double.";
+ 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_MEDCoupling__MEDCouplingFieldDouble,0|0)))
+ {
+ MEDCouplingFieldDouble *other=reinterpret_cast< MEDCoupling::MEDCouplingFieldDouble * >(argp);
+ if(other)
+ {
+ *self+=*other;
+ Py_XINCREF(trueSelf);
+ return trueSelf;
+ }
+ else
+ throw INTERP_KERNEL::Exception(msg);
+ }
+ //
+ double val;
+ DataArrayDouble *a;
+ DataArrayDoubleTuple *aa;
+ std::vector<double> bb;
+ int sw;
+ convertDoubleStarLikePyObjToCpp_2(obj,sw,val,a,aa,bb);
+ switch(sw)
+ {
+ case 1:
+ {
+ if(!self->getArray())
+ throw INTERP_KERNEL::Exception(msg2);
+ self->getArray()->applyLin(1.,val);
+ Py_XINCREF(trueSelf);
+ return trueSelf;
+ }
+ case 2:
+ {
+ MCAuto<MEDCouplingFieldDouble> ret2=self->clone(false);
+ ret2->setArray(a);
+ *self+=*ret2;
+ Py_XINCREF(trueSelf);
+ return trueSelf;
+ }
+ case 3:
+ {
+ MCAuto<DataArrayDouble> aaa=aa->buildDADouble(1,self->getNumberOfComponents());
+ MCAuto<MEDCouplingFieldDouble> ret2=self->clone(false);
+ ret2->setArray(aaa);
+ *self+=*ret2;
+ Py_XINCREF(trueSelf);
+ return trueSelf;
+ }
+ case 4:
+ {
+ if(!self->getArray())
+ throw INTERP_KERNEL::Exception(msg2);
+ MCAuto<DataArrayDouble> aaa=DataArrayDouble::New(); aaa->useArray(&bb[0],false,CPP_DEALLOC,1,(int)bb.size());
+ self->getArray()->addEqual(aaa);
+ Py_XINCREF(trueSelf);
+ return trueSelf;
+ }
+ default:
+ { throw INTERP_KERNEL::Exception(msg); }
+ }
+ }
+
+ PyObject *___isub___(PyObject *trueSelf, PyObject *obj) throw(INTERP_KERNEL::Exception)
+ {
+ const char msg[]="Unexpected situation in MEDCouplingFieldDouble.__isub__ ! Expecting a not null MEDCouplingFieldDouble or DataArrayDouble or DataArrayDoubleTuple instance, or a list of double, or a double.";
+ 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_MEDCoupling__MEDCouplingFieldDouble,0|0)))
+ {
+ MEDCouplingFieldDouble *other=reinterpret_cast< MEDCoupling::MEDCouplingFieldDouble * >(argp);
+ if(other)
+ {
+ *self-=*other;
+ Py_XINCREF(trueSelf);
+ return trueSelf;
+ }
+ else
+ throw INTERP_KERNEL::Exception(msg);
+ }
+ //
+ double val;
+ DataArrayDouble *a;
+ DataArrayDoubleTuple *aa;
+ std::vector<double> bb;
+ int sw;
+ convertDoubleStarLikePyObjToCpp_2(obj,sw,val,a,aa,bb);
+ switch(sw)
+ {
+ case 1:
+ {
+ if(!self->getArray())
+ throw INTERP_KERNEL::Exception(msg2);
+ self->getArray()->applyLin(1.,-val);
+ Py_XINCREF(trueSelf);
+ return trueSelf;
+ }
+ case 2:
+ {
+ MCAuto<MEDCouplingFieldDouble> ret2=self->clone(false);
+ ret2->setArray(a);
+ *self-=*ret2;
+ Py_XINCREF(trueSelf);
+ return trueSelf;
+ }
+ case 3:
+ {
+ MCAuto<DataArrayDouble> aaa=aa->buildDADouble(1,self->getNumberOfComponents());
+ MCAuto<MEDCouplingFieldDouble> ret2=self->clone(false);
+ ret2->setArray(aaa);
+ *self-=*ret2;
+ Py_XINCREF(trueSelf);
+ return trueSelf;
+ }
+ case 4:
+ {
+ if(!self->getArray())
+ throw INTERP_KERNEL::Exception(msg2);
+ MCAuto<DataArrayDouble> aaa=DataArrayDouble::New(); aaa->useArray(&bb[0],false,CPP_DEALLOC,1,(int)bb.size());
+ self->getArray()->substractEqual(aaa);
+ Py_XINCREF(trueSelf);
+ return trueSelf;
+ }
+ default:
+ { throw INTERP_KERNEL::Exception(msg); }
+ }
+ }
+
+ PyObject *___imul___(PyObject *trueSelf, PyObject *obj) throw(INTERP_KERNEL::Exception)
+ {
+ const char msg[]="Unexpected situation in MEDCouplingFieldDouble.__imul__ ! Expecting a not null MEDCouplingFieldDouble or DataArrayDouble or DataArrayDoubleTuple instance, or a list of double, or a double.";
+ 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_MEDCoupling__MEDCouplingFieldDouble,0|0)))
+ {
+ MEDCouplingFieldDouble *other=reinterpret_cast< MEDCoupling::MEDCouplingFieldDouble * >(argp);
+ if(other)
+ {
+ *self*=*other;
+ Py_XINCREF(trueSelf);
+ return trueSelf;
+ }
+ else
+ throw INTERP_KERNEL::Exception(msg);
+ }
+ //
+ double val;
+ DataArrayDouble *a;
+ DataArrayDoubleTuple *aa;
+ std::vector<double> bb;
+ int sw;
+ convertDoubleStarLikePyObjToCpp_2(obj,sw,val,a,aa,bb);
+ switch(sw)
+ {
+ case 1:
+ {
+ if(!self->getArray())
+ throw INTERP_KERNEL::Exception(msg2);
+ self->getArray()->applyLin(val,0);
+ Py_XINCREF(trueSelf);
+ return trueSelf;
+ }
+ case 2:
+ {
+ MCAuto<MEDCouplingFieldDouble> ret2=self->clone(false);
+ ret2->setArray(a);
+ *self*=*ret2;
+ Py_XINCREF(trueSelf);
+ return trueSelf;
+ }
+ case 3:
+ {
+ MCAuto<DataArrayDouble> aaa=aa->buildDADouble(1,self->getNumberOfComponents());
+ MCAuto<MEDCouplingFieldDouble> ret2=self->clone(false);
+ ret2->setArray(aaa);
+ *self*=*ret2;
+ Py_XINCREF(trueSelf);
+ return trueSelf;
+ }
+ case 4:
+ {
+ if(!self->getArray())
+ throw INTERP_KERNEL::Exception(msg2);
+ MCAuto<DataArrayDouble> aaa=DataArrayDouble::New(); aaa->useArray(&bb[0],false,CPP_DEALLOC,1,(int)bb.size());
+ self->getArray()->multiplyEqual(aaa);
+ Py_XINCREF(trueSelf);
+ return trueSelf;
+ }
+ default:
+ { throw INTERP_KERNEL::Exception(msg); }
+ }
+ }
+
+ PyObject *___idiv___(PyObject *trueSelf, PyObject *obj) throw(INTERP_KERNEL::Exception)
+ {
+ const char msg[]="Unexpected situation in MEDCouplingFieldDouble.__idiv__ ! Expecting a not null MEDCouplingFieldDouble or DataArrayDouble or DataArrayDoubleTuple instance, or a list of double, or a double.";
+ 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_MEDCoupling__MEDCouplingFieldDouble,0|0)))
+ {
+ MEDCouplingFieldDouble *other=reinterpret_cast< MEDCoupling::MEDCouplingFieldDouble * >(argp);
+ if(other)
+ {
+ *self/=*other;
+ Py_XINCREF(trueSelf);
+ return trueSelf;
+ }
+ else
+ throw INTERP_KERNEL::Exception(msg);
+ }
+ //
+ double val;
+ DataArrayDouble *a;
+ DataArrayDoubleTuple *aa;
+ std::vector<double> bb;
+ int sw;
+ convertDoubleStarLikePyObjToCpp_2(obj,sw,val,a,aa,bb);
+ switch(sw)
+ {
+ case 1:
+ {
+ if(val==0.)
+ throw INTERP_KERNEL::Exception("MEDCouplingFieldDouble.__idiv__ : trying to divide by zero !");
+ if(!self->getArray())
+ throw INTERP_KERNEL::Exception(msg2);
+ self->getArray()->applyLin(1./val,0);
+ Py_XINCREF(trueSelf);
+ return trueSelf;
+ }
+ case 2:
+ {
+ MCAuto<MEDCouplingFieldDouble> ret2=self->clone(false);
+ ret2->setArray(a);
+ *self/=*ret2;
+ Py_XINCREF(trueSelf);
+ return trueSelf;
+ }
+ case 3:
+ {
+ MCAuto<DataArrayDouble> aaa=aa->buildDADouble(1,self->getNumberOfComponents());
+ MCAuto<MEDCouplingFieldDouble> ret2=self->clone(false);
+ ret2->setArray(aaa);
+ *self/=*ret2;
+ Py_XINCREF(trueSelf);
+ return trueSelf;
+ }
+ case 4:
+ {
+ if(!self->getArray())
+ throw INTERP_KERNEL::Exception(msg2);
+ MCAuto<DataArrayDouble> aaa=DataArrayDouble::New(); aaa->useArray(&bb[0],false,CPP_DEALLOC,1,(int)bb.size());
+ self->getArray()->divideEqual(aaa);
+ Py_XINCREF(trueSelf);
+ return trueSelf;
+ }
+ default:
+ { throw INTERP_KERNEL::Exception(msg); }
+ }
+ }
+
+ PyObject *___ipow___(PyObject *trueSelf, PyObject *obj) throw(INTERP_KERNEL::Exception)
+ {
+ const char msg[]="Unexpected situation in MEDCouplingFieldDouble.__ipow__ ! Expecting a not null MEDCouplingFieldDouble or DataArrayDouble or DataArrayDoubleTuple instance, or a list of double, or a double.";
+ 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_MEDCoupling__MEDCouplingFieldDouble,0|0)))
+ {
+ MEDCouplingFieldDouble *other=reinterpret_cast< MEDCoupling::MEDCouplingFieldDouble * >(argp);
+ if(other)
+ {
+ *self^=*other;
+ Py_XINCREF(trueSelf);
+ return trueSelf;
+ }
+ else
+ throw INTERP_KERNEL::Exception(msg);
+ }
+ //
+ double val;
+ DataArrayDouble *a;
+ DataArrayDoubleTuple *aa;
+ std::vector<double> bb;
+ int sw;
+ convertDoubleStarLikePyObjToCpp_2(obj,sw,val,a,aa,bb);
+ switch(sw)
+ {
+ case 1:
+ {
+ if(!self->getArray())
+ throw INTERP_KERNEL::Exception(msg2);
+ self->getArray()->applyPow(val);
+ Py_XINCREF(trueSelf);
+ return trueSelf;
+ }
+ case 2:
+ {
+ MCAuto<MEDCouplingFieldDouble> ret2=self->clone(false);
+ ret2->setArray(a);
+ *self^=*ret2;
+ Py_XINCREF(trueSelf);
+ return trueSelf;
+ }
+ case 3:
+ {
+ MCAuto<DataArrayDouble> aaa=aa->buildDADouble(1,self->getNumberOfComponents());
+ MCAuto<MEDCouplingFieldDouble> ret2=self->clone(false);
+ ret2->setArray(aaa);
+ *self^=*ret2;
+ Py_XINCREF(trueSelf);
+ return trueSelf;
+ }
+ case 4:
+ {
+ if(!self->getArray())
+ throw INTERP_KERNEL::Exception(msg2);
+ MCAuto<DataArrayDouble> aaa=DataArrayDouble::New(); aaa->useArray(&bb[0],false,CPP_DEALLOC,1,(int)bb.size());
+ self->getArray()->powEqual(aaa);
+ Py_XINCREF(trueSelf);
+ return trueSelf;
+ }
+ default:
+ { throw INTERP_KERNEL::Exception(msg); }
+ }
+ }
+
+ static MEDCouplingFieldDouble *MergeFields(PyObject *li) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<const MEDCouplingFieldDouble *> tmp;
+ convertFromPyObjVectorOfObj<const MEDCoupling::MEDCouplingFieldDouble *>(li,SWIGTYPE_p_MEDCoupling__MEDCouplingFieldDouble,"MEDCouplingFieldDouble",tmp);
+ return MEDCouplingFieldDouble::MergeFields(tmp);
+ }
+
+ static std::string WriteVTK(const char *fileName, PyObject *li, bool isBinary=true) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<const MEDCouplingFieldDouble *> tmp;
+ convertFromPyObjVectorOfObj<const MEDCoupling::MEDCouplingFieldDouble *>(li,SWIGTYPE_p_MEDCoupling__MEDCouplingFieldDouble,"MEDCouplingFieldDouble",tmp);
+ return MEDCouplingFieldDouble::WriteVTK(fileName,tmp,isBinary);
+ }
+
+ PyObject *getTinySerializationInformation() const throw(INTERP_KERNEL::Exception)
+ {
+ return field_getTinySerializationInformation<MEDCouplingFieldDouble>(self);
+ }
+
+ PyObject *serialize() const throw(INTERP_KERNEL::Exception)
+ {
+ return field_serialize<double>(self);
+ }
+
+ PyObject *__getstate__() const throw(INTERP_KERNEL::Exception)
+ {
+ return field__getstate__<MEDCouplingFieldDouble>(self,MEDCoupling_MEDCouplingFieldDouble_getTinySerializationInformation,MEDCoupling_MEDCouplingFieldDouble_serialize);
+ }
+
+ void __setstate__(PyObject *inp) throw(INTERP_KERNEL::Exception)
+ {
+ field__setstate__<double>(self,inp);
+ }
+ }
+ };
+
+ class MEDCouplingMultiFields : public RefCountObject, public TimeLabel
+ {
+ public:
+ int getNumberOfFields() 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 checkConsistencyLight() const throw(INTERP_KERNEL::Exception);
+ %extend
+ {
+ std::string __str__() const throw(INTERP_KERNEL::Exception)
+ {
+ return self->simpleRepr();
+ }
+ static MEDCouplingMultiFields *New(PyObject *li) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<const MEDCoupling::MEDCouplingFieldDouble *> tmp;
+ convertFromPyObjVectorOfObj<const MEDCoupling::MEDCouplingFieldDouble *>(li,SWIGTYPE_p_MEDCoupling__MEDCouplingFieldDouble,"MEDCouplingFieldDouble",tmp);
+ int sz=tmp.size();
+ std::vector<MEDCouplingFieldDouble *> fs(sz);
+ for(int i=0;i<sz;i++)
+ fs[i]=const_cast<MEDCouplingFieldDouble *>(tmp[i]);
+ return MEDCouplingMultiFields::New(fs);
+ }
+ MEDCouplingMultiFields(PyObject *li) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<const MEDCoupling::MEDCouplingFieldDouble *> tmp;
+ convertFromPyObjVectorOfObj<const MEDCoupling::MEDCouplingFieldDouble *>(li,SWIGTYPE_p_MEDCoupling__MEDCouplingFieldDouble,"MEDCouplingFieldDouble",tmp);
+ int sz=tmp.size();
+ std::vector<MEDCouplingFieldDouble *> fs(sz);
+ for(int i=0;i<sz;i++)
+ fs[i]=const_cast<MEDCouplingFieldDouble *>(tmp[i]);
+ return MEDCouplingMultiFields::New(fs);
+ }
+ PyObject *getFields() const
+ {
+ std::vector<const MEDCouplingFieldDouble *> fields=self->getFields();
+ int sz=fields.size();
+ PyObject *res = PyList_New(sz);
+ for(int i=0;i<sz;i++)
+ {
+ if(fields[i])
+ {
+ fields[i]->incrRef();
+ 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_MEDCoupling__MEDCouplingFieldDouble, 0 ));
+ }
+ }
+ return res;
+ }
+ PyObject *getFieldAtPos(int id) const throw(INTERP_KERNEL::Exception)
+ {
+ const MEDCouplingFieldDouble *ret=self->getFieldAtPos(id);
+ if(ret)
+ {
+ ret->incrRef();
+ 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_MEDCoupling__MEDCouplingFieldDouble, 0 );
+ }
+ PyObject *getMeshes() const throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<MEDCouplingMesh *> ms=self->getMeshes();
+ int sz=ms.size();
+ PyObject *res = PyList_New(sz);
+ for(int i=0;i<sz;i++)
+ {
+ if(ms[i])
+ {
+ ms[i]->incrRef();
+ PyList_SetItem(res,i,convertMesh(ms[i], SWIG_POINTER_OWN | 0 ));
+ }
+ else
+ {
+ PyList_SetItem(res,i,SWIG_NewPointerObj(SWIG_as_voidptr(0),SWIGTYPE_p_MEDCoupling__MEDCouplingUMesh, 0 ));
+ }
+ }
+ return res;
+ }
+ PyObject *getDifferentMeshes() const throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<int> refs;
+ std::vector<MEDCouplingMesh *> ms=self->getDifferentMeshes(refs);
+ int sz=ms.size();
+ PyObject *res = PyList_New(sz);
+ for(int i=0;i<sz;i++)
+ {
+ if(ms[i])
+ {
+ ms[i]->incrRef();
+ PyList_SetItem(res,i,convertMesh(ms[i], SWIG_POINTER_OWN | 0 ));
+ }
+ else
+ {
+ PyList_SetItem(res,i,SWIG_NewPointerObj(SWIG_as_voidptr(0),SWIGTYPE_p_MEDCoupling__MEDCouplingUMesh, 0 ));
+ }
+ }
+ //
+ PyObject *ret=PyTuple_New(2);
+ PyTuple_SetItem(ret,0,res);
+ PyTuple_SetItem(ret,1,convertIntArrToPyList2(refs));
+ return ret;
+ }
+ PyObject *getArrays() const throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<DataArrayDouble *> ms=self->getArrays();
+ int sz=ms.size();
+ PyObject *res = PyList_New(sz);
+ for(int i=0;i<sz;i++)
+ {
+ if(ms[i])
+ {
+ ms[i]->incrRef();
+ 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_MEDCoupling__DataArrayDouble, 0 ));
+ }
+ }
+ return res;
+ }
+ PyObject *getDifferentArrays() const throw(INTERP_KERNEL::Exception)
+ {
+ std::vector< std::vector<int> > refs;
+ std::vector<DataArrayDouble *> ms=self->getDifferentArrays(refs);
+ int sz=ms.size();
+ PyObject *res = PyList_New(sz);
+ PyObject *res2 = PyList_New(sz);
+ for(int i=0;i<sz;i++)
+ {
+ if(ms[i])
+ {
+ ms[i]->incrRef();
+ 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_MEDCoupling__DataArrayDouble, 0 ));
+ }
+ PyList_SetItem(res2,i,convertIntArrToPyList2(refs[i]));
+ }
+ //
+ PyObject *ret=PyTuple_New(2);
+ PyTuple_SetItem(ret,0,res);
+ PyTuple_SetItem(ret,1,res2);
+ return ret;
+ }
+ }
+ };
+
+ class MEDCouplingFieldInt : public MEDCouplingFieldT<int>
+ {
+ 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<MEDCouplingFieldInt>(self);
+ }
+
+ PyObject *serialize() const throw(INTERP_KERNEL::Exception)
+ {
+ return field_serialize<int>(self);
+ }
+
+ PyObject *__getstate__() const throw(INTERP_KERNEL::Exception)
+ {
+ return field__getstate__<MEDCouplingFieldInt>(self,MEDCoupling_MEDCouplingFieldInt_getTinySerializationInformation,MEDCoupling_MEDCouplingFieldInt_serialize);
+ }
+
+ void __setstate__(PyObject *inp) throw(INTERP_KERNEL::Exception)
+ {
+ field__setstate__<int>(self,inp);
+ }
+ }
+ };
+
+ class MEDCouplingFieldFloat : public MEDCouplingFieldT<float>
+ {
+ 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<MEDCouplingFieldFloat>(self);
+ }
+
+ PyObject *serialize() const throw(INTERP_KERNEL::Exception)
+ {
+ return field_serialize<float>(self);
+ }
+
+ PyObject *__getstate__() const throw(INTERP_KERNEL::Exception)
+ {
+ return field__getstate__<MEDCouplingFieldFloat>(self,MEDCoupling_MEDCouplingFieldFloat_getTinySerializationInformation,MEDCoupling_MEDCouplingFieldFloat_serialize);
+ }
+
+ void __setstate__(PyObject *inp) throw(INTERP_KERNEL::Exception)
+ {
+ field__setstate__<float>(self,inp);
+ }
+ }
+ };
+
+ class MEDCouplingDefinitionTime
+ {
+ public:
+ MEDCouplingDefinitionTime();
+ void assign(const MEDCouplingDefinitionTime& other);
+ bool isEqual(const MEDCouplingDefinitionTime& other) const;
+ double getTimeResolution() const;
+ std::vector<double> getHotSpotsTime() const;
+ %extend
+ {
+ std::string __str__() const throw(INTERP_KERNEL::Exception)
+ {
+ std::ostringstream oss;
+ self->appendRepr(oss);
+ return oss.str();
+ }
+
+ PyObject *getIdsOnTimeRight(double tm) const throw(INTERP_KERNEL::Exception)
+ {
+ int meshId,arrId,arrIdInField,fieldId;
+ self->getIdsOnTimeRight(tm,meshId,arrId,arrIdInField,fieldId);
+ PyObject *res=PyList_New(4);
+ PyList_SetItem(res,0,PyInt_FromLong(meshId));
+ PyList_SetItem(res,1,PyInt_FromLong(arrId));
+ PyList_SetItem(res,2,PyInt_FromLong(arrIdInField));
+ PyList_SetItem(res,3,PyInt_FromLong(fieldId));
+ return res;
+ }
+
+ PyObject *getIdsOnTimeLeft(double tm) const throw(INTERP_KERNEL::Exception)
+ {
+ int meshId,arrId,arrIdInField,fieldId;
+ self->getIdsOnTimeLeft(tm,meshId,arrId,arrIdInField,fieldId);
+ PyObject *res=PyList_New(4);
+ PyList_SetItem(res,0,PyInt_FromLong(meshId));
+ PyList_SetItem(res,1,PyInt_FromLong(arrId));
+ PyList_SetItem(res,2,PyInt_FromLong(arrIdInField));
+ PyList_SetItem(res,3,PyInt_FromLong(fieldId));
+ return res;
+ }
+ }
+ };
+
+ class MEDCouplingFieldOverTime : public MEDCouplingMultiFields
+ {
+ public:
+ double getTimeTolerance() const throw(INTERP_KERNEL::Exception);
+ MEDCouplingDefinitionTime getDefinitionTimeZone() const;
+
+ %extend
+ {
+ MEDCouplingFieldOverTime(PyObject *li) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<const MEDCoupling::MEDCouplingFieldDouble *> tmp;
+ convertFromPyObjVectorOfObj<const MEDCoupling::MEDCouplingFieldDouble *>(li,SWIGTYPE_p_MEDCoupling__MEDCouplingFieldDouble,"MEDCouplingFieldDouble",tmp);
+ int sz=tmp.size();
+ std::vector<MEDCouplingFieldDouble *> fs(sz);
+ for(int i=0;i<sz;i++)
+ fs[i]=const_cast<MEDCouplingFieldDouble *>(tmp[i]);
+ return MEDCouplingFieldOverTime::New(fs);
+ }
+ std::string __str__() const throw(INTERP_KERNEL::Exception)
+ {
+ return self->simpleRepr();
+ }
+ static MEDCouplingFieldOverTime *New(PyObject *li) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<const MEDCoupling::MEDCouplingFieldDouble *> tmp;
+ convertFromPyObjVectorOfObj<const MEDCoupling::MEDCouplingFieldDouble *>(li,SWIGTYPE_p_MEDCoupling__MEDCouplingFieldDouble,"MEDCouplingFieldDouble",tmp);
+ int sz=tmp.size();
+ std::vector<MEDCouplingFieldDouble *> fs(sz);
+ for(int i=0;i<sz;i++)
+ fs[i]=const_cast<MEDCouplingFieldDouble *>(tmp[i]);
+ return MEDCouplingFieldOverTime::New(fs);
+ }
+ }
+ };
+
+ class MEDCouplingCartesianAMRMesh;
+
+ class MEDCouplingCartesianAMRPatchGen : public RefCountObject
+ {
+ public:
+ int getNumberOfCellsRecursiveWithOverlap() const throw(INTERP_KERNEL::Exception);
+ int getNumberOfCellsRecursiveWithoutOverlap() const throw(INTERP_KERNEL::Exception);
+ int getMaxNumberOfLevelsRelativeToThis() const throw(INTERP_KERNEL::Exception);
+ %extend
+ {
+ MEDCouplingCartesianAMRMeshGen *getMesh() const throw(INTERP_KERNEL::Exception)
+ {
+ MEDCouplingCartesianAMRMeshGen *ret(const_cast<MEDCouplingCartesianAMRMeshGen *>(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<int> computeCellGridSt() const throw(INTERP_KERNEL::Exception);
+ %extend
+ {
+ PyObject *getBLTRRange() const throw(INTERP_KERNEL::Exception)
+ {
+ const std::vector< std::pair<int,int> >& ret(self->getBLTRRange());
+ return convertFromVectorPairInt(ret);
+ }
+
+ PyObject *getBLTRRangeRelativeToGF() const throw(INTERP_KERNEL::Exception)
+ {
+ std::vector< std::pair<int,int> > ret(self->getBLTRRangeRelativeToGF());
+ return convertFromVectorPairInt(ret);
+ }
+
+ void addPatch(PyObject *bottomLeftTopRight, const std::vector<int>& factors) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector< std::pair<int,int> > 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<MEDCouplingCartesianAMRPatch *>(mesh->getPatch(patchId)));
+ if(ret)
+ ret->incrRef();
+ return ret;
+ }
+
+ void __delitem__(int patchId) throw(INTERP_KERNEL::Exception)
+ {
+ MEDCouplingCartesianAMRMeshGen *mesh(const_cast<MEDCouplingCartesianAMRMeshGen *>(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<int> getPositionRelativeTo(const MEDCouplingCartesianAMRMeshGen *ref) const throw(INTERP_KERNEL::Exception);
+ int getSpaceDimension() const throw(INTERP_KERNEL::Exception);
+ const std::vector<int>& getFactors() const throw(INTERP_KERNEL::Exception);
+ void setFactors(const std::vector<int>& 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<int> 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<int>& factors) throw(INTERP_KERNEL::Exception);
+ void createPatchesFromCriterion(const INTERP_KERNEL::BoxSplittingOptions& bso, const DataArrayDouble *criterion, const std::vector<int>& 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<int>& factors) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector< std::pair<int,int> > 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<sz;i++)
+ {
+ MEDCouplingCartesianAMRPatch *elt(const_cast<MEDCouplingCartesianAMRPatch *>(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<int>& pos) const throw(INTERP_KERNEL::Exception)
+ {
+ const MEDCouplingCartesianAMRPatch *ret(self->getPatchAtPosition(pos));
+ MEDCouplingCartesianAMRPatch *ret2(const_cast<MEDCouplingCartesianAMRPatch *>(ret));
+ if(ret2)
+ ret2->incrRef();
+ return ret2;
+ }
+
+ MEDCouplingCartesianAMRMeshGen *getMeshAtPosition(const std::vector<int>& pos) const throw(INTERP_KERNEL::Exception)
+ {
+ const MEDCouplingCartesianAMRMeshGen *ret(self->getMeshAtPosition(pos));
+ MEDCouplingCartesianAMRMeshGen *ret2(const_cast<MEDCouplingCartesianAMRMeshGen *>(ret));
+ if(ret2)
+ ret2->incrRef();
+ return ret2;
+ }
+
+ virtual PyObject *positionRelativeToGodFather() const throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<int> out1;
+ std::vector< std::pair<int,int> > 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<MEDCouplingCartesianAMRPatchGen *> ps(self->retrieveGridsAt(absoluteLev));
+ int sz(ps.size());
+ PyObject *ret = PyList_New(sz);
+ for(int i=0;i<sz;i++)
+ PyList_SetItem(ret,i,convertCartesianAMRPatch(ps[i], SWIG_POINTER_OWN | 0 ));
+ return ret;
+ }
+
+ MEDCouplingFieldDouble *buildCellFieldOnRecurseWithoutOverlapWithoutGhost(int ghostSz, PyObject *recurseArrs) const
+ {
+ std::vector<const DataArrayDouble *> inp;
+ convertFromPyObjVectorOfObj<const MEDCoupling::DataArrayDouble *>(recurseArrs,SWIGTYPE_p_MEDCoupling__DataArrayDouble,"DataArrayDouble",inp);
+ return self->buildCellFieldOnRecurseWithoutOverlapWithoutGhost(ghostSz,inp);
+ }
+
+ virtual MEDCouplingCartesianAMRMeshGen *getFather() const throw(INTERP_KERNEL::Exception)
+ {
+ MEDCouplingCartesianAMRMeshGen *ret(const_cast<MEDCouplingCartesianAMRMeshGen *>(self->getFather()));
+ if(ret)
+ ret->incrRef();
+ return ret;
+ }
+
+ virtual MEDCouplingCartesianAMRMeshGen *getGodFather() const throw(INTERP_KERNEL::Exception)
+ {
+ MEDCouplingCartesianAMRMeshGen *ret(const_cast<MEDCouplingCartesianAMRMeshGen *>(self->getGodFather()));
+ if(ret)
+ ret->incrRef();
+ return ret;
+ }
+
+ MEDCouplingCartesianAMRPatch *getPatch(int patchId) const throw(INTERP_KERNEL::Exception)
+ {
+ MEDCouplingCartesianAMRPatch *ret(const_cast<MEDCouplingCartesianAMRPatch *>(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<MEDCouplingIMesh *>(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<MEDCouplingCartesianAMRPatch *>(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<const MEDCoupling::DataArrayDouble *> arrsOnPatches2;
+ convertFromPyObjVectorOfObj<const MEDCoupling::DataArrayDouble *>(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<const MEDCoupling::DataArrayDouble *> arrsOnPatches2;
+ convertFromPyObjVectorOfObj<const MEDCoupling::DataArrayDouble *>(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<int> bb0;
+ nodeStrctPtr=convertIntStarLikePyObjToCppIntStar(nodeStrct,sw,sz,val0,bb0);
+ //
+ double val,val2;
+ std::vector<double> 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<const INTERP_KERNEL::BoxSplittingOptions *> inp0;
+ convertFromPyObjVectorOfObj<const INTERP_KERNEL::BoxSplittingOptions *>(bso,SWIGTYPE_p_INTERP_KERNEL__BoxSplittingOptions,"BoxSplittingOptions",inp0);
+ std::vector< std::vector<int> > 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<std::string,int> > fieldNamesCpp0;
+ std::vector< std::pair<std::string, std::vector<std::string> > > 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<DataArrayDouble *>(ret));
+ if(ret2)
+ ret2->incrRef();
+ return ret2;
+ }
+
+ void spillInfoOnComponents(PyObject *compNames) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector< std::vector<std::string> > compNamesCpp;
+ convertPyToVectorOfVectorOfString(compNames,compNamesCpp);
+ self->spillInfoOnComponents(compNamesCpp);
+ }
+
+ void spillNatures(PyObject *nfs) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<int> 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<NatureOfField> inp00(sz);
+ for(std::size_t i=0;i<sz;i++)
+ inp00[i]=(NatureOfField)inp0[i];
+ self->spillNatures(inp00);
+ }
+
+ PyObject *retrieveFieldsOn(MEDCouplingCartesianAMRMeshGen *mesh) const throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<DataArrayDouble *> ret(self->retrieveFieldsOn(mesh));
+ int sz((int)ret.size());
+ PyObject *retPy(PyList_New(sz));
+ for(int i=0;i<sz;i++)
+ PyList_SetItem(retPy,i,SWIG_NewPointerObj(SWIG_as_voidptr(ret[i]),SWIGTYPE_p_MEDCoupling__DataArrayDouble, SWIG_POINTER_OWN | 0 ));
+ return retPy;
+ }
+ }
+ };
+
+ class DenseMatrix : public RefCountObject, public TimeLabel
+ {
+ public:
+ static DenseMatrix *New(int nbRows, int nbCols) throw(INTERP_KERNEL::Exception);
+ static DenseMatrix *New(DataArrayDouble *array, int nbRows, int nbCols) throw(INTERP_KERNEL::Exception);
+ DenseMatrix *deepCopy() const throw(INTERP_KERNEL::Exception);
+ DenseMatrix *shallowCpy() const throw(INTERP_KERNEL::Exception);
+ //
+ int getNumberOfRows() const throw(INTERP_KERNEL::Exception);
+ int getNumberOfCols() const throw(INTERP_KERNEL::Exception);
+ int getNbOfElems() const throw(INTERP_KERNEL::Exception);
+ void reBuild(DataArrayDouble *array, int nbRows=-1, int nbCols=-1) throw(INTERP_KERNEL::Exception);
+ void reShape(int nbRows, int nbCols) throw(INTERP_KERNEL::Exception);
+ void transpose() throw(INTERP_KERNEL::Exception);
+ //
+ bool isEqual(const DenseMatrix& other, double eps) const throw(INTERP_KERNEL::Exception);
+ DataArrayDouble *matVecMult(const DataArrayDouble *vec) const throw(INTERP_KERNEL::Exception);
+ static DataArrayDouble *MatVecMult(const DenseMatrix *mat, const DataArrayDouble *vec) throw(INTERP_KERNEL::Exception);
+ %extend
+ {
+ DenseMatrix(int nbRows, int nbCols) throw(INTERP_KERNEL::Exception)
+ {
+ return DenseMatrix::New(nbRows,nbCols);
+ }
+
+ DenseMatrix(DataArrayDouble *array, int nbRows, int nbCols) throw(INTERP_KERNEL::Exception)
+ {
+ return DenseMatrix::New(array,nbRows,nbCols);
+ }
+
+ PyObject *isEqualIfNotWhy(const DenseMatrix& other, double eps) const throw(INTERP_KERNEL::Exception)
+ {
+ std::string ret1;
+ bool ret0=self->isEqualIfNotWhy(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<DataArrayDouble,double>(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):
+ exec(open(__filename).read())
+ pass
+%}
+++ /dev/null
-// 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
-// License as published by the Free Software Foundation; either
-// version 2.1 of the License, or (at your option) any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// Lesser General Public License for more details.
-//
-// You should have received a copy of the GNU Lesser General Public
-// License along with this library; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-//
-// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
-// Author : Anthony Geay (EDF R&D)
-
-#ifdef WITH_DOCSTRINGS
-%include MEDCoupling_doc.i
-#endif
-
-%include std_vector.i
-%include std_string.i
-
-%{
-#include "MEDCouplingMemArray.hxx"
-#include "MEDCouplingUMesh.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 "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 MEDCoupling;
-using namespace INTERP_KERNEL;
-
-%}
-
-%template(ivec) std::vector<int>;
-%template(dvec) std::vector<double>;
-%template(svec) std::vector<std::string>;
-
-////////////////////
-%typemap(out) MEDCoupling::MEDCouplingMesh*
-{
- $result=convertMesh($1,$owner);
-}
-
-%typemap(out) MEDCouplingMesh*
-{
- $result=convertMesh($1,$owner);
-}
-//$$$$$$$$$$$$$$$$$$
-
-////////////////////
-%typemap(out) MEDCoupling::MEDCouplingPointSet*
-{
- $result=convertMesh($1,$owner);
-}
-
-%typemap(out) MEDCouplingPointSet*
-{
- $result=convertMesh($1,$owner);
-}
-//$$$$$$$$$$$$$$$$$$
-
-////////////////////
-%typemap(out) MEDCouplingCartesianAMRPatchGen*
-{
- $result=convertCartesianAMRPatch($1,$owner);
-}
-//$$$$$$$$$$$$$$$$$$
-
-////////////////////
-%typemap(out) MEDCouplingCartesianAMRMeshGen*
-{
- $result=convertCartesianAMRMesh($1,$owner);
-}
-//$$$$$$$$$$$$$$$$$$
-
-////////////////////
-%typemap(out) MEDCouplingDataForGodFather*
-{
- $result=convertDataForGodFather($1,$owner);
-}
-//$$$$$$$$$$$$$$$$$$
-
-////////////////////
-%typemap(out) MEDCoupling::MEDCoupling1GTUMesh*
-{
- $result=convertMesh($1,$owner);
-}
-
-%typemap(out) MEDCoupling1GTUMesh*
-{
- $result=convertMesh($1,$owner);
-}
-//$$$$$$$$$$$$$$$$$$
-
-////////////////////
-%typemap(out) MEDCoupling::MEDCouplingStructuredMesh*
-{
- $result=convertMesh($1,$owner);
-}
-
-%typemap(out) MEDCouplingStructuredMesh*
-{
- $result=convertMesh($1,$owner);
-}
-//$$$$$$$$$$$$$$$$$$
-
-////////////////////
-%typemap(out) MEDCoupling::MEDCouplingFieldDiscretization*
-{
- $result=convertFieldDiscretization($1,$owner);
-}
-
-%typemap(out) MEDCouplingFieldDiscretization*
-{
- $result=convertFieldDiscretization($1,$owner);
-}
-//$$$$$$$$$$$$$$$$$$
-
-////////////////////
-%typemap(out) MEDCoupling::MEDCouplingField*
-{
- $result=convertField($1,$owner);
-}
-
-%typemap(out) MEDCouplingField*
-{
- $result=convertField($1,$owner);
-}
-//$$$$$$$$$$$$$$$$$$
-
-////////////////////
-%typemap(out) MEDCoupling::MEDCouplingMultiFields*
-{
- $result=convertMultiFields($1,$owner);
-}
-
-%typemap(out) MEDCouplingMultiFields*
-{
- $result=convertMultiFields($1,$owner);
-}
-//$$$$$$$$$$$$$$$$$$
-
-////////////////////
-%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 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();"
-%feature("unref") MEDCouplingUMesh "$this->decrRef();"
-%feature("unref") MEDCoupling1GTUMesh "$this->decrRef();"
-%feature("unref") MEDCoupling1SGTUMesh "$this->decrRef();"
-%feature("unref") MEDCoupling1DGTUMesh "$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();"
-%feature("unref") MEDCouplingFieldDiscretizationGauss "$this->decrRef();"
-%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 MEDCoupling::MEDCouplingGaussLocalization::pushTinySerializationIntInfo;
-%ignore MEDCoupling::MEDCouplingGaussLocalization::pushTinySerializationDblInfo;
-%ignore MEDCoupling::MEDCouplingGaussLocalization::fillWithValues;
-%ignore MEDCoupling::MEDCouplingGaussLocalization::buildNewInstanceFromTinyInfo;
-
-%nodefaultctor;
-
-%rename (InterpKernelException) INTERP_KERNEL::Exception;
-
-%include "MEDCouplingRefCountObject.i"
-%include "MEDCouplingMemArray.i"
-
-%{
- void initializeMe()
- {// AGY : here initialization of C++ traits in MEDCouplingDataArrayTypemaps.i for code factorization. Awful, I know, but no other solutions.
- SWIGTITraits<double>::TI=SWIGTYPE_p_MEDCoupling__DataArrayDouble;
- SWIGTITraits<float>::TI=SWIGTYPE_p_MEDCoupling__DataArrayFloat;
- SWIGTITraits<int>::TI=SWIGTYPE_p_MEDCoupling__DataArrayInt;
- SWIGTITraits<double>::TI_TUPLE=SWIGTYPE_p_MEDCoupling__DataArrayDoubleTuple;
- SWIGTITraits<float>::TI_TUPLE=SWIGTYPE_p_MEDCoupling__DataArrayFloatTuple;
- SWIGTITraits<int>::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
- {
- ON_CELLS = 0,
- ON_NODES = 1,
- ON_GAUSS_PT = 2,
- ON_GAUSS_NE = 3,
- ON_NODES_KR = 4
- } TypeOfField;
-
- typedef enum
- {
- NO_TIME = 4,
- ONE_TIME = 5,
- LINEAR_TIME = 6,
- CONST_ON_TIME_INTERVAL = 7
- } TypeOfTimeDiscretization;
-
- typedef enum
- {
- UNSTRUCTURED = 5,
- CARTESIAN = 7,
- EXTRUDED = 8,
- CURVE_LINEAR = 9,
- SINGLE_STATIC_GEO_TYPE_UNSTRUCTURED = 10,
- SINGLE_DYNAMIC_GEO_TYPE_UNSTRUCTURED = 11,
- IMAGE_GRID = 12
- } MEDCouplingMeshType;
-
- class DataArrayInt;
- class DataArrayDouble;
- class MEDCouplingUMesh;
- class MEDCouplingCMesh;
- class MEDCouplingFieldDouble;
-
- %extend RefCountObject
- {
- std::string getHiddenCppPointer() const
- {
- std::ostringstream oss; oss << "C++ Pointer address is : " << self;
- return oss.str();
- }
- }
-
- %extend MEDCouplingGaussLocalization
- {
- std::string __str__() const throw(INTERP_KERNEL::Exception)
- {
- return self->getStringRepr();
- }
-
- std::string __repr__() const throw(INTERP_KERNEL::Exception)
- {
- std::ostringstream oss; oss << "MEDCouplingGaussLocalization C++ instance at " << self << "." << std::endl;
- oss << self->getStringRepr();
- return oss.str();
- }
- }
-
- //== MEDCouplingMesh
-
- class MEDCouplingMesh : public RefCountObject, public TimeLabel
- {
- public:
- void setName(const std::string& name);
- std::string getName() const;
- void setDescription(const std::string& descr);
- std::string getDescription() const;
- void setTime(double val, int iteration, int order);
- void setTimeUnit(const std::string& unit);
- std::string getTimeUnit() const;
- virtual MEDCouplingMeshType getType() const throw(INTERP_KERNEL::Exception);
- bool isStructured() const throw(INTERP_KERNEL::Exception);
- 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 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 *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);
- virtual DataArrayInt *computeNbOfFacesPerCell() const throw(INTERP_KERNEL::Exception);
- virtual DataArrayInt *computeEffectiveNbOfNodesPerCell() const throw(INTERP_KERNEL::Exception);
- virtual MEDCouplingMesh *buildPartRange(int beginCellIds, int endCellIds, int stepCellIds) const throw(INTERP_KERNEL::Exception);
- virtual int getNumberOfCellsWithType(INTERP_KERNEL::NormalizedCellType type) const throw(INTERP_KERNEL::Exception);
- 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);
- 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 *fillFromAnalyticCompo(TypeOfField t, int nbOfComp, const std::string& func) const throw(INTERP_KERNEL::Exception);
- virtual MEDCouplingFieldDouble *fillFromAnalyticNamedCompo(TypeOfField t, int nbOfComp, const std::vector<std::string>& 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<double>& tinyInfoD, const std::vector<int>& tinyInfo, const DataArrayInt *a1, DataArrayDouble *a2, const std::vector<std::string>& 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);
- static INTERP_KERNEL::NormalizedCellType GetCorrespondingPolyType(INTERP_KERNEL::NormalizedCellType type) throw(INTERP_KERNEL::Exception);
- static int GetNumberOfNodesOfGeometricType(INTERP_KERNEL::NormalizedCellType type) throw(INTERP_KERNEL::Exception);
- static int GetDimensionOfGeometricType(INTERP_KERNEL::NormalizedCellType type) throw(INTERP_KERNEL::Exception);
- static const char *GetReprOfGeometricType(INTERP_KERNEL::NormalizedCellType type) throw(INTERP_KERNEL::Exception);
- %extend
- {
- std::string __str__() const throw(INTERP_KERNEL::Exception)
- {
- return self->simpleRepr();
- }
-
- 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;
- }
-
- DataArrayDouble *getDirectAccessOfCoordsArrIfInStructure() const throw(INTERP_KERNEL::Exception)
- {
- const DataArrayDouble *ret(self->getDirectAccessOfCoordsArrIfInStructure());
- DataArrayDouble *ret2(const_cast<DataArrayDouble *>(ret));
- if(ret2)
- ret2->incrRef();
- return ret2;
- }
-
- int getCellContainingPoint(PyObject *p, double eps) const throw(INTERP_KERNEL::Exception)
- {
- double val;
- DataArrayDouble *a;
- DataArrayDoubleTuple *aa;
- std::vector<double> bb;
- int sw;
- int spaceDim=self->getSpaceDimension();
- const char msg[]="Python wrap of MEDCouplingMesh::getCellContainingPoint : ";
- const double *pos=convertObjToPossibleCpp5_Safe(p,sw,val,a,aa,bb,msg,1,spaceDim,true);
- return self->getCellContainingPoint(pos,eps);
- }
-
- PyObject *getCellsContainingPoints(PyObject *p, int nbOfPoints, double eps) const throw(INTERP_KERNEL::Exception)
- {
- double val;
- DataArrayDouble *a;
- DataArrayDoubleTuple *aa;
- std::vector<double> bb;
- int sw;
- 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);
- MCAuto<DataArrayInt> 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_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)
- {
- MCAuto<DataArrayInt> elts,eltsIndex;
- int spaceDim=self->getSpaceDimension();
- void *da=0;
- int res1=SWIG_ConvertPtr(p,&da,SWIGTYPE_p_MEDCoupling__DataArrayDouble, 0 | 0 );
- if (!SWIG_IsOK(res1))
- {
- int size;
- INTERP_KERNEL::AutoCPtr<double> tmp=convertPyToNewDblArr2(p,&size);
- int nbOfPoints=size/spaceDim;
- if(size%spaceDim!=0)
- {
- throw INTERP_KERNEL::Exception("MEDCouplingMesh::getCellsContainingPoints : Invalid list length ! Must be a multiple of self.getSpaceDimension() !");
- }
- self->getCellsContainingPoints(tmp,nbOfPoints,eps,elts,eltsIndex);
- }
- else
- {
- DataArrayDouble *da2=reinterpret_cast< DataArrayDouble * >(da);
- if(!da2)
- throw INTERP_KERNEL::Exception("MEDCouplingMesh::getCellsContainingPoints : Not null DataArrayDouble instance expected !");
- da2->checkAllocated();
- int size=da2->getNumberOfTuples();
- int nbOfCompo=da2->getNumberOfComponents();
- if(nbOfCompo!=spaceDim)
- {
- throw INTERP_KERNEL::Exception("MEDCouplingMesh::getCellsContainingPoints : Invalid DataArrayDouble nb of components ! Expected same as self.getSpaceDimension() !");
- }
- 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_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 *getCellsContainingPoint(PyObject *p, double eps) const throw(INTERP_KERNEL::Exception)
- {
- double val;
- DataArrayDouble *a;
- DataArrayDoubleTuple *aa;
- std::vector<double> bb;
- int sw;
- int spaceDim=self->getSpaceDimension();
- const char msg[]="Python wrap of MEDCouplingUMesh::getCellsContainingPoint : ";
- const double *pos=convertObjToPossibleCpp5_Safe(p,sw,val,a,aa,bb,msg,1,spaceDim,true);
- std::vector<int> elts;
- self->getCellsContainingPoint(pos,eps,elts);
- 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_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 );
- }
-
- virtual PyObject *getReverseNodalConnectivity() const throw(INTERP_KERNEL::Exception)
- {
- MCAuto<DataArrayInt> d0=DataArrayInt::New();
- MCAuto<DataArrayInt> 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_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;
- }
-
- void renumberCells(PyObject *li, bool check=true) throw(INTERP_KERNEL::Exception)
- {
- int sw,sz(-1);
- int v0; std::vector<int> v1;
- const int *ids(convertIntStarLikePyObjToCppIntStar(li,sw,sz,v0,v1));
- self->renumberCells(ids,check);
- }
-
- PyObject *checkGeoEquivalWith(const MEDCouplingMesh *other, int levOfCheck, double prec) const throw(INTERP_KERNEL::Exception)
- {
- 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_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;
- }
-
- PyObject *checkDeepEquivalWith(const MEDCouplingMesh *other, int cellCompPol, double prec) const throw(INTERP_KERNEL::Exception)
- {
- 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_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;
- }
-
- DataArrayInt *checkDeepEquivalOnSameNodesWith(const MEDCouplingMesh *other, int cellCompPol, double prec) const throw(INTERP_KERNEL::Exception)
- {
- DataArrayInt *cellCor=0;
- self->checkDeepEquivalOnSameNodesWith(other,cellCompPol,prec,cellCor);
- return cellCor;
- }
-
- DataArrayInt *getCellIdsFullyIncludedInNodeIds(PyObject *li) const throw(INTERP_KERNEL::Exception)
- {
- void *da=0;
- int res1=SWIG_ConvertPtr(li,&da,SWIGTYPE_p_MEDCoupling__DataArrayInt, 0 | 0 );
- if (!SWIG_IsOK(res1))
- {
- int size;
- INTERP_KERNEL::AutoPtr<int> tmp=convertPyToNewIntArr2(li,&size);
- return self->getCellIdsFullyIncludedInNodeIds(tmp,((const int *)tmp)+size);
- }
- else
- {
- DataArrayInt *da2=reinterpret_cast< DataArrayInt * >(da);
- if(!da2)
- throw INTERP_KERNEL::Exception("Not null DataArrayInt instance expected !");
- da2->checkAllocated();
- return self->getCellIdsFullyIncludedInNodeIds(da2->getConstPointer(),da2->getConstPointer()+da2->getNbOfElems());
- }
- }
- PyObject *getNodeIdsOfCell(int cellId) const throw(INTERP_KERNEL::Exception)
- {
- std::vector<int> conn;
- self->getNodeIdsOfCell(cellId,conn);
- return convertIntArrToPyList2(conn);
- }
-
- PyObject *getCoordinatesOfNode(int nodeId) const throw(INTERP_KERNEL::Exception)
- {
- std::vector<double> coo;
- self->getCoordinatesOfNode(nodeId,coo);
- return convertDblArrToPyList2(coo);
- }
-
- void scale(PyObject *point, double factor) throw(INTERP_KERNEL::Exception)
- {
- double val;
- DataArrayDouble *a;
- DataArrayDoubleTuple *aa;
- std::vector<double> bb;
- int sw;
- int spaceDim=self->getSpaceDimension();
- const char msg[]="Python wrap of MEDCouplingPointSet::scale : ";
- const double *pointPtr=convertObjToPossibleCpp5_Safe(point,sw,val,a,aa,bb,msg,1,spaceDim,true);
- self->scale(pointPtr,factor);
- }
-
- PyObject *getBoundingBox() const throw(INTERP_KERNEL::Exception)
- {
- int spaceDim=self->getSpaceDimension();
- INTERP_KERNEL::AutoPtr<double> tmp=new double[2*spaceDim];
- self->getBoundingBox(tmp);
- PyObject *ret=convertDblArrToPyListOfTuple<double>(tmp,2,spaceDim);
- return ret;
- }
-
- PyObject *isEqualIfNotWhy(const MEDCouplingMesh *other, double prec) const throw(INTERP_KERNEL::Exception)
- {
- std::string ret1;
- bool ret0=self->isEqualIfNotWhy(other,prec,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 *buildPart(PyObject *li) const throw(INTERP_KERNEL::Exception)
- {
- int szArr,sw,iTypppArr;
- std::vector<int> 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_MEDCoupling__DataArrayInt,0|0);
- DataArrayInt *argpt=reinterpret_cast< MEDCoupling::DataArrayInt * >(argp);
- std::string name=argpt->getName();
- if(!name.empty())
- ret->setName(name.c_str());
- }
- return convertMesh(ret, SWIG_POINTER_OWN | 0 );
- }
-
- PyObject *buildPartAndReduceNodes(PyObject *li) const throw(INTERP_KERNEL::Exception)
- {
- int szArr,sw,iTypppArr;
- std::vector<int> stdvecTyyppArr;
- DataArrayInt *arr=0;
- 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_MEDCoupling__DataArrayInt,0|0);
- DataArrayInt *argpt=reinterpret_cast< MEDCoupling::DataArrayInt * >(argp);
- std::string name=argpt->getName();
- if(!name.empty())
- ret->setName(name.c_str());
- }
- //
- PyObject *res = PyList_New(2);
- PyObject *obj0=convertMesh(ret, 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;
- }
-
- PyObject *buildPartRangeAndReduceNodes(int beginCellIds, int endCellIds, int stepCellIds) const throw(INTERP_KERNEL::Exception)
- {
- int a,b,c;
- DataArrayInt *arr=0;
- MEDCouplingMesh *ret=self->buildPartRangeAndReduceNodes(beginCellIds,endCellIds,stepCellIds,a,b,c,arr);
- PyObject *res = PyTuple_New(2);
- PyObject *obj0=convertMesh(ret, SWIG_POINTER_OWN | 0 );
- PyObject *obj1=0;
- if(arr)
- 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);
- PyTuple_SetItem(res,1,obj1);
- return res;
- }
-
- PyObject *getDistributionOfTypes() const throw(INTERP_KERNEL::Exception)
- {
- std::vector<int> vals=self->getDistributionOfTypes();
- if(vals.size()%3!=0)
- throw INTERP_KERNEL::Exception("Internal Error detected in wrap python ! code returned by MEDCouplingMesh::getDistributionOfTypes is not so that %3==0 !");
- PyObject *ret=PyList_New((int)vals.size()/3);
- for(int j=0;j<(int)vals.size()/3;j++)
- {
- PyObject *ret1=PyList_New(3);
- PyList_SetItem(ret1,0,SWIG_From_int(vals[3*j]));
- PyList_SetItem(ret1,1,SWIG_From_int(vals[3*j+1]));
- PyList_SetItem(ret1,2,SWIG_From_int(vals[3*j+2]));
- PyList_SetItem(ret,j,ret1);
- }
- return ret;
- }
-
- DataArrayInt *checkTypeConsistencyAndContig(PyObject *li, PyObject *li2) const throw(INTERP_KERNEL::Exception)
- {
- std::vector<int> code;
- std::vector<const DataArrayInt *> idsPerType;
- convertFromPyObjVectorOfObj<const MEDCoupling::DataArrayInt *>(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)
- {
- std::vector<int> code;
- std::vector<DataArrayInt *> idsInPflPerType;
- std::vector<DataArrayInt *> idsPerType;
- self->splitProfilePerType(profile,code,idsInPflPerType,idsPerType);
- PyObject *ret=PyTuple_New(3);
- //
- if(code.size()%3!=0)
- throw INTERP_KERNEL::Exception("Internal Error detected in wrap python ! code returned by MEDCouplingMesh::splitProfilePerType is not so that %3==0 !");
- PyObject *ret0=PyList_New((int)code.size()/3);
- for(int j=0;j<(int)code.size()/3;j++)
- {
- PyObject *ret00=PyList_New(3);
- PyList_SetItem(ret00,0,SWIG_From_int(code[3*j]));
- PyList_SetItem(ret00,1,SWIG_From_int(code[3*j+1]));
- PyList_SetItem(ret00,2,SWIG_From_int(code[3*j+2]));
- PyList_SetItem(ret0,j,ret00);
- }
- PyTuple_SetItem(ret,0,ret0);
- //
- PyObject *ret1=PyList_New(idsInPflPerType.size());
- for(std::size_t j=0;j<idsInPflPerType.size();j++)
- PyList_SetItem(ret1,j,SWIG_NewPointerObj(SWIG_as_voidptr(idsInPflPerType[j]),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ));
- PyTuple_SetItem(ret,1,ret1);
- int n=idsPerType.size();
- PyObject *ret2=PyList_New(n);
- for(int i=0;i<n;i++)
- PyList_SetItem(ret2,i,SWIG_NewPointerObj(SWIG_as_voidptr(idsPerType[i]),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ));
- PyTuple_SetItem(ret,2,ret2);
- return ret;
- }
-
- void translate(PyObject *vector) throw(INTERP_KERNEL::Exception)
- {
- double val;
- DataArrayDouble *a;
- DataArrayDoubleTuple *aa;
- std::vector<double> bb;
- int sw;
- int spaceDim=self->getSpaceDimension();
- const char msg[]="Python wrap of MEDCouplingPointSet::translate : ";
- const double *vectorPtr=convertObjToPossibleCpp5_Safe(vector,sw,val,a,aa,bb,msg,1,spaceDim,true);
- self->translate(vectorPtr);
- }
-
- void rotate(PyObject *center, double alpha) throw(INTERP_KERNEL::Exception)
- {
- const char msg[]="Python wrap of MEDCouplingPointSet::rotate : ";
- double val;
- DataArrayDouble *a;
- DataArrayDoubleTuple *aa;
- std::vector<double> bb;
- int sw;
- int spaceDim=self->getSpaceDimension();
- const double *centerPtr=convertObjToPossibleCpp5_Safe(center,sw,val,a,aa,bb,msg,1,spaceDim,true);
- self->rotate(centerPtr,0,alpha);
- }
-
- void rotate(PyObject *center, PyObject *vector, double alpha) throw(INTERP_KERNEL::Exception)
- {
- const char msg[]="Python wrap of MEDCouplingPointSet::rotate : ";
- double val,val2;
- DataArrayDouble *a,*a2;
- DataArrayDoubleTuple *aa,*aa2;
- std::vector<double> bb,bb2;
- int sw;
- int spaceDim=self->getSpaceDimension();
- const double *centerPtr=convertObjToPossibleCpp5_Safe(center,sw,val,a,aa,bb,msg,1,spaceDim,true);
- const double *vectorPtr=convertObjToPossibleCpp5_Safe(vector,sw,val2,a2,aa2,bb2,msg,1,spaceDim,false);//vectorPtr can be null in case of space dim 2
- self->rotate(centerPtr,vectorPtr,alpha);
- }
-
- PyObject *getAllGeoTypes() const throw(INTERP_KERNEL::Exception)
- {
- std::set<INTERP_KERNEL::NormalizedCellType> result=self->getAllGeoTypes();
- std::set<INTERP_KERNEL::NormalizedCellType>::const_iterator iL=result.begin();
- PyObject *res=PyList_New(result.size());
- for(int i=0;iL!=result.end(); i++, iL++)
- PyList_SetItem(res,i,PyInt_FromLong(*iL));
- return res;
- }
-
- virtual PyObject *getTinySerializationInformation() const throw(INTERP_KERNEL::Exception)
- {
- std::vector<double> a0;
- std::vector<int> a1;
- std::vector<std::string> 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;i<sz;i++)
- PyList_SetItem(ret2,i,PyString_FromString(a2[i].c_str()));
- }
- PyTuple_SetItem(ret,2,ret2);
- return ret;
- }
-
- virtual PyObject *serialize() const throw(INTERP_KERNEL::Exception)
- {
- DataArrayInt *a0Tmp(0);
- DataArrayDouble *a1Tmp(0);
- self->serialize(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<int>& tinyInfo, DataArrayInt *a1, DataArrayDouble *a2) const throw(INTERP_KERNEL::Exception)
- {
- std::vector<std::string> 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<double> a0;
- std::vector<int> a1;
- std::vector<std::string> 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<DataArrayInt *>(argp);
- status=SWIG_ConvertPtr(b1py,&argp,SWIGTYPE_p_MEDCoupling__DataArrayDouble,0|0);
- if(!SWIG_IsOK(status))
- throw INTERP_KERNEL::Exception(MSG);
- b1=reinterpret_cast<DataArrayDouble *>(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<const MEDCoupling::MEDCouplingMesh *> tmp;
- convertFromPyObjVectorOfObj<const MEDCoupling::MEDCouplingMesh *>(li,SWIGTYPE_p_MEDCoupling__MEDCouplingMesh,"MEDCouplingMesh",tmp);
- return MEDCouplingMesh::MergeMeshes(tmp);
- }
- }
- };
-}
-
-//== MEDCouplingMesh End
-
-%include "NormalizedGeometricTypes"
-%include "MEDCouplingNatureOfFieldEnum"
-//
-namespace MEDCoupling
-{
- class MEDCouplingNatureOfField
- {
- public:
- static const char *GetRepr(NatureOfField nat) throw(INTERP_KERNEL::Exception);
- static std::string GetReprNoThrow(NatureOfField nat);
- static std::string GetAllPossibilitiesStr();
- };
-}
-
-// the MEDCouplingTimeDiscretization classes are not swigged : in case the file can help
-// include "MEDCouplingTimeDiscretization.i"
-
-namespace MEDCoupling
-{
- class MEDCouplingGaussLocalization
- {
- public:
- MEDCouplingGaussLocalization(INTERP_KERNEL::NormalizedCellType type, const std::vector<double>& refCoo,
- const std::vector<double>& gsCoo, const std::vector<double>& w) throw(INTERP_KERNEL::Exception);
- MEDCouplingGaussLocalization(INTERP_KERNEL::NormalizedCellType typ) throw(INTERP_KERNEL::Exception);
- INTERP_KERNEL::NormalizedCellType getType() const throw(INTERP_KERNEL::Exception);
- void setType(INTERP_KERNEL::NormalizedCellType typ) throw(INTERP_KERNEL::Exception);
- int getNumberOfGaussPt() const throw(INTERP_KERNEL::Exception);
- int getDimension() const throw(INTERP_KERNEL::Exception);
- int getNumberOfPtsInRefCell() const throw(INTERP_KERNEL::Exception);
- std::string getStringRepr() 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<double>& getRefCoords() const throw(INTERP_KERNEL::Exception);
- double getRefCoord(int ptIdInCell, int comp) const throw(INTERP_KERNEL::Exception);
- const std::vector<double>& getGaussCoords() const throw(INTERP_KERNEL::Exception);
- double getGaussCoord(int gaussPtIdInCell, int comp) const throw(INTERP_KERNEL::Exception);
- const std::vector<double>& getWeights() const throw(INTERP_KERNEL::Exception);
- double getWeight(int gaussPtIdInCell, double newVal) const throw(INTERP_KERNEL::Exception);
- void setRefCoord(int ptIdInCell, int comp, double newVal) throw(INTERP_KERNEL::Exception);
- void setGaussCoord(int gaussPtIdInCell, int comp, double newVal) throw(INTERP_KERNEL::Exception);
- void setWeight(int gaussPtIdInCell, double newVal) throw(INTERP_KERNEL::Exception);
- void setRefCoords(const std::vector<double>& refCoo) throw(INTERP_KERNEL::Exception);
- void setGaussCoords(const std::vector<double>& gsCoo) throw(INTERP_KERNEL::Exception);
- void setWeights(const std::vector<double>& w) throw(INTERP_KERNEL::Exception);
- //
- static bool AreAlmostEqual(const std::vector<double>& v1, const std::vector<double>& v2, double eps);
- //
- %extend
- {
- DataArrayDouble *localizePtsInRefCooForEachCell(const DataArrayDouble *ptsInRefCoo, const MEDCouplingUMesh *mesh) const throw(INTERP_KERNEL::Exception)
- {
- MCAuto<DataArrayDouble> ret(self->localizePtsInRefCooForEachCell(ptsInRefCoo,mesh));
- return ret.retn();
- }
-
- MEDCouplingUMesh *buildRefCell() const throw(INTERP_KERNEL::Exception)
- {
- MCAuto<MEDCouplingUMesh> 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<int>& index, const std::vector<int>& 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<int> ret;
- self->getSimplePackSafe(absolutePackId,ret);
- return convertIntArrToPyList2(ret);
- }
-
- PyObject *findPackIds(PyObject *superPackIndices, PyObject *pack) const throw(INTERP_KERNEL::Exception)
- {
- std::vector<int> 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<int> 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<int> 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<const DataArrayInt*> packs;
- convertFromPyObjVectorOfObj<const MEDCoupling::DataArrayInt*>(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<int> vpack;
- convertPyToNewIntArr3(pack,vpack);
- self->replacePack(superIdx, idx, vpack.data(), vpack.data()+vpack.size());
- }
-
- PyObject *convertToPolyhedronConn() const throw(INTERP_KERNEL::Exception)
- {
- MCAuto<DataArrayInt> d0=DataArrayInt::New();
- MCAuto<DataArrayInt> 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;
- }
- }
- };
-}
-
-%include "MEDCouplingFieldDiscretization.i"
-
-//== MEDCouplingPointSet
-
-namespace MEDCoupling
-{
- class MEDCouplingPointSet : public MEDCoupling::MEDCouplingMesh
- {
- public:
- void setCoords(const DataArrayDouble *coords) throw(INTERP_KERNEL::Exception);
- DataArrayDouble *getCoordinatesAndOwner() const throw(INTERP_KERNEL::Exception);
- bool areCoordsEqual(const MEDCouplingPointSet& other, double prec) const throw(INTERP_KERNEL::Exception);
- void zipCoords() throw(INTERP_KERNEL::Exception);
- double getCaracteristicDimension() const throw(INTERP_KERNEL::Exception);
- void recenterForMaxPrecision(double eps) throw(INTERP_KERNEL::Exception);
- 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 *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);
- virtual DataArrayInt *zipCoordsTraducer() throw(INTERP_KERNEL::Exception);
- virtual DataArrayInt *findBoundaryNodes() const;
- virtual DataArrayInt *zipConnectivityTraducer(int compType, int startCellId=0) throw(INTERP_KERNEL::Exception);
- 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<int>& tinyInfo) 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)
- {
- return self->simpleRepr();
- }
-
- PyObject *buildNewNumberingFromCommonNodesFormat(const DataArrayInt *comm, const DataArrayInt *commIndex) const throw(INTERP_KERNEL::Exception)
- {
- 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_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ));
- PyList_SetItem(res,1,SWIG_From_int(newNbOfNodes));
- return res;
- }
-
- PyObject *findCommonNodes(double prec, int limitTupleId=-1) const throw(INTERP_KERNEL::Exception)
- {
- 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_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;
- }
-
- PyObject *getCoords() throw(INTERP_KERNEL::Exception)
- {
- DataArrayDouble *ret1=self->getCoords();
- if (ret1)
- ret1->incrRef();
- 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<int> 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_MEDCoupling__DataArrayInt,0|0);
- DataArrayInt *argpt=reinterpret_cast< MEDCoupling::DataArrayInt * >(argp);
- std::string name=argpt->getName();
- if(!name.empty())
- ret->setName(name.c_str());
- }
- return convertMesh(ret, SWIG_POINTER_OWN | 0 );
- }
-
- PyObject *buildPartOfMySelfNode(PyObject *li, bool fullyIn) const throw(INTERP_KERNEL::Exception)
- {
- int szArr,sw,iTypppArr;
- std::vector<int> 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_MEDCoupling__DataArrayInt,0|0);
- DataArrayInt *argpt=reinterpret_cast< MEDCoupling::DataArrayInt * >(argp);
- std::string name=argpt->getName();
- if(!name.empty())
- ret->setName(name.c_str());
- }
- return convertMesh(ret, SWIG_POINTER_OWN | 0 );
- }
-
- virtual PyObject *buildPartOfMySelfKeepCoords(PyObject *li) const throw(INTERP_KERNEL::Exception)
- {
- int szArr,sw,iTypppArr;
- std::vector<int> 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_MEDCoupling__DataArrayInt,0|0);
- DataArrayInt *argpt=reinterpret_cast< MEDCoupling::DataArrayInt * >(argp);
- std::string name=argpt->getName();
- if(!name.empty())
- ret->setName(name.c_str());
- }
- return convertMesh(ret, SWIG_POINTER_OWN | 0 );
- }
-
- virtual PyObject *buildPartOfMySelfKeepCoordsSlice(int start, int end, int step) const throw(INTERP_KERNEL::Exception)
- {
- MEDCouplingPointSet *ret=self->buildPartOfMySelfKeepCoordsSlice(start,end,step);
- return convertMesh(ret, SWIG_POINTER_OWN | 0 );
- }
-
- PyObject *buildFacePartOfMySelfNode(PyObject *li, bool fullyIn) const throw(INTERP_KERNEL::Exception)
- {
- int szArr,sw,iTypppArr;
- std::vector<int> 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_MEDCoupling__DataArrayInt,0|0);
- DataArrayInt *argpt=reinterpret_cast< MEDCoupling::DataArrayInt * >(argp);
- std::string name=argpt->getName();
- if(!name.empty())
- ret->setName(name.c_str());
- }
- return convertMesh(ret, SWIG_POINTER_OWN | 0 );
- }
-
- void renumberNodes(PyObject *li, int newNbOfNodes) throw(INTERP_KERNEL::Exception)
- {
- int szArr,sw,iTypppArr;
- std::vector<int> stdvecTyyppArr;
- const int *tmp=convertIntStarLikePyObjToCppIntStar(li,sw,szArr,iTypppArr,stdvecTyyppArr);
- self->renumberNodes(tmp,newNbOfNodes);
- }
-
- void renumberNodesCenter(PyObject *li, int newNbOfNodes) throw(INTERP_KERNEL::Exception)
- {
- int szArr,sw,iTypppArr;
- std::vector<int> stdvecTyyppArr;
- 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)
- {
- int spaceDim=self->getSpaceDimension();
- double val,val2;
- DataArrayDouble *a,*a2;
- DataArrayDoubleTuple *aa,*aa2;
- std::vector<double> bb,bb2;
- int sw;
- 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<int> nodes;
- self->findNodesOnLine(p,v,eps,nodes);
- 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_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 );
- }
- PyObject *findNodesOnPlane(PyObject *pt, PyObject *vec, double eps) const throw(INTERP_KERNEL::Exception)
- {
- int spaceDim=self->getSpaceDimension();
- double val,val2;
- DataArrayDouble *a,*a2;
- DataArrayDoubleTuple *aa,*aa2;
- std::vector<double> bb,bb2;
- int sw;
- 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<int> nodes;
- self->findNodesOnPlane(p,v,eps,nodes);
- 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_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 );
- }
-
- PyObject *getNodeIdsNearPoint(PyObject *pt, double eps) const throw(INTERP_KERNEL::Exception)
- {
- double val;
- DataArrayDouble *a;
- DataArrayDoubleTuple *aa;
- std::vector<double> bb;
- int sw;
- int spaceDim=self->getSpaceDimension();
- 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_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 );
- }
-
- PyObject *getNodeIdsNearPoints(PyObject *pt, int nbOfPoints, double eps) const throw(INTERP_KERNEL::Exception)
- {
- DataArrayInt *c=0,*cI=0;
- //
- double val;
- DataArrayDouble *a;
- DataArrayDoubleTuple *aa;
- std::vector<double> bb;
- int sw;
- int spaceDim=self->getSpaceDimension();
- const char msg[]="Python wrap of MEDCouplingPointSet::getNodeIdsNearPoints : ";
- 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_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;
- }
-
- PyObject *getNodeIdsNearPoints(PyObject *pt, double eps) const throw(INTERP_KERNEL::Exception)
- {
- DataArrayInt *c=0,*cI=0;
- int spaceDim=self->getSpaceDimension();
- double val;
- DataArrayDouble *a;
- DataArrayDoubleTuple *aa;
- std::vector<double> bb;
- int sw;
- int nbOfTuples=-1;
- const double *ptPtr=convertObjToPossibleCpp5_Safe2(pt,sw,val,a,aa,bb,"Python wrap of MEDCouplingUMesh::getNodeIdsNearPoints",spaceDim,true,nbOfTuples);
- self->getNodeIdsNearPoints(ptPtr,nbOfTuples,eps,c,cI);
- //
- PyObject *ret=PyTuple_New(2);
- 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;
- }
-
- PyObject *getCellsInBoundingBox(PyObject *bbox, double eps) const throw(INTERP_KERNEL::Exception)
- {
- double val;
- DataArrayDouble *a;
- DataArrayDoubleTuple *aa;
- std::vector<double> bb;
- int sw;
- int spaceDim=self->getSpaceDimension();
- const char msg[]="Python wrap of MEDCouplingPointSet::getCellsInBoundingBox : ";
- 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_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 );
- }
-
- void duplicateNodesInCoords(PyObject *li) throw(INTERP_KERNEL::Exception)
- {
- int sw;
- int singleVal;
- std::vector<int> multiVal;
- std::pair<int, std::pair<int,int> > slic;
- MEDCoupling::DataArrayInt *daIntTyypp=0;
- convertIntStarOrSliceLikePyObjToCpp(li,self->getNumberOfNodes(),sw,singleVal,multiVal,slic,daIntTyypp);
- switch(sw)
- {
- case 1:
- return self->duplicateNodesInCoords(&singleVal,&singleVal+1);
- case 2:
- return self->duplicateNodesInCoords(&multiVal[0],&multiVal[0]+multiVal.size());
- case 4:
- return self->duplicateNodesInCoords(daIntTyypp->begin(),daIntTyypp->end());
- default:
- throw INTERP_KERNEL::Exception("MEDCouplingPointSet::duplicateNodesInCoords : unrecognized type entered, expected list of int, tuple of int or DataArrayInt !");
- }
- }
-
- virtual PyObject *findCommonCells(int compType, int startCellId=0) const throw(INTERP_KERNEL::Exception)
- {
- 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_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;
- }
-
-
- virtual void renumberNodesInConn(PyObject *li) throw(INTERP_KERNEL::Exception)
- {
- void *da=0;
- int res1=SWIG_ConvertPtr(li,&da,SWIGTYPE_p_MEDCoupling__DataArrayInt, 0 | 0 );
- if (!SWIG_IsOK(res1))
- {
- int size;
- INTERP_KERNEL::AutoPtr<int> tmp=convertPyToNewIntArr2(li,&size);
- self->renumberNodesInConn(tmp);
- }
- else
- {
- DataArrayInt *da2=reinterpret_cast< DataArrayInt * >(da);
- if(!da2)
- throw INTERP_KERNEL::Exception("Not null DataArrayInt instance expected !");
- da2->checkAllocated();
- self->renumberNodesInConn(da2->getConstPointer());
- }
- }
-
- virtual PyObject *getNodeIdsInUse() const throw(INTERP_KERNEL::Exception)
- {
- 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_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ));
- PyTuple_SetItem(ret,1,PyInt_FromLong(ret1));
- return ret;
- }
-
- virtual DataArrayInt *fillCellIdsToKeepFromNodeIds(PyObject *li, bool fullyIn) const
- {
- DataArrayInt *ret=0;
- //
- int szArr,sw,iTypppArr;
- std::vector<int> stdvecTyyppArr;
- const int *tmp=convertIntStarLikePyObjToCppIntStar(li,sw,szArr,iTypppArr,stdvecTyyppArr);
- self->fillCellIdsToKeepFromNodeIds(tmp,tmp+szArr,fullyIn,ret);
- return ret;
- }
-
- virtual PyObject *mergeNodes(double precision) throw(INTERP_KERNEL::Exception)
- {
- bool ret1;
- 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_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 *mergeNodesCenter(double precision) throw(INTERP_KERNEL::Exception)
- {
- bool ret1;
- int 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_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ));
- PyList_SetItem(res,1,SWIG_From_bool(ret1));
- PyList_SetItem(res,2,SWIG_From_int(ret2));
- return res;
- }
-
- DataArrayInt *getCellIdsLyingOnNodes(PyObject *li, bool fullyIn) const throw(INTERP_KERNEL::Exception)
- {
- void *da=0;
- int res1=SWIG_ConvertPtr(li,&da,SWIGTYPE_p_MEDCoupling__DataArrayInt, 0 | 0 );
- if (!SWIG_IsOK(res1))
- {
- int size;
- INTERP_KERNEL::AutoPtr<int> tmp=convertPyToNewIntArr2(li,&size);
- return self->getCellIdsLyingOnNodes(tmp,((const int *)tmp)+size,fullyIn);
- }
- else
- {
- DataArrayInt *da2=reinterpret_cast< DataArrayInt * >(da);
- if(!da2)
- throw INTERP_KERNEL::Exception("Not null DataArrayInt instance expected !");
- da2->checkAllocated();
- return self->getCellIdsLyingOnNodes(da2->getConstPointer(),da2->getConstPointer()+da2->getNbOfElems(),fullyIn);
- }
- }
-
- MEDCouplingPointSet *__getitem__(PyObject *listOrDataArrI) throw(INTERP_KERNEL::Exception)
- {
- int sw;
- int singleVal;
- std::vector<int> multiVal;
- std::pair<int, std::pair<int,int> > slic;
- MEDCoupling::DataArrayInt *daIntTyypp=0;
- int nbc=self->getNumberOfCells();
- convertIntStarOrSliceLikePyObjToCpp(listOrDataArrI,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->buildPartOfMySelf(&singleVal,&singleVal+1,true);
- else
- {
- if(nbc+singleVal>0)
- {
- int tmp=nbc+singleVal;
- return self->buildPartOfMySelf(&tmp,&tmp+1,true);
- }
- 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 static_cast<MEDCouplingPointSet *>(self->buildPartOfMySelf(&multiVal[0],&multiVal[0]+multiVal.size(),true));
- }
- case 3:
- {
- return self->buildPartOfMySelfSlice(slic.first,slic.second.first,slic.second.second,true);
- }
- case 4:
- {
- if(!daIntTyypp)
- throw INTERP_KERNEL::Exception("MEDCouplingUMesh::__getitem__ : null instance has been given in input !");
- daIntTyypp->checkAllocated();
- return self->buildPartOfMySelf(daIntTyypp->begin(),daIntTyypp->end(),true);
- }
- default:
- throw INTERP_KERNEL::Exception("MEDCouplingUMesh::__getitem__ : unrecognized type in input ! Possibilities are : int, list or tuple of int DataArrayInt instance !");
- }
- }
-
- static void Rotate2DAlg(PyObject *center, double angle, int nbNodes, PyObject *coords) throw(INTERP_KERNEL::Exception)
- {
- int sz;
- INTERP_KERNEL::AutoCPtr<double> c=convertPyToNewDblArr2(center,&sz);
- INTERP_KERNEL::AutoCPtr<double> coo=convertPyToNewDblArr2(coords,&sz);
- MEDCoupling::DataArrayDouble::Rotate2DAlg(c,angle,nbNodes,coo,coo);
- for(int i=0;i<sz;i++)
- PyList_SetItem(coords,i,PyFloat_FromDouble(coo[i]));
- }
-
- static void Rotate2DAlg(PyObject *center, double angle, PyObject *coords) throw(INTERP_KERNEL::Exception)
- {
- int sz;
- INTERP_KERNEL::AutoCPtr<double> c=convertPyToNewDblArr2(center,&sz);
- int sw,nbNodes=0;
- double val0; MEDCoupling::DataArrayDouble *val1=0; MEDCoupling::DataArrayDoubleTuple *val2=0;
- std::vector<double> 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 !");
- MEDCoupling::DataArrayDouble::Rotate2DAlg(c,angle,nbNodes,coo,const_cast<double *>(coo));
- }
-
- static void Rotate3DAlg(PyObject *center, PyObject *vect, double angle, int nbNodes, PyObject *coords) throw(INTERP_KERNEL::Exception)
- {
- int sz,sz2;
- INTERP_KERNEL::AutoCPtr<double> c=convertPyToNewDblArr2(center,&sz);
- INTERP_KERNEL::AutoCPtr<double> coo=convertPyToNewDblArr2(coords,&sz);
- INTERP_KERNEL::AutoCPtr<double> v=convertPyToNewDblArr2(vect,&sz2);
- MEDCoupling::DataArrayDouble::Rotate3DAlg(c,v,angle,nbNodes,coo,coo);
- for(int i=0;i<sz;i++)
- PyList_SetItem(coords,i,PyFloat_FromDouble(coo[i]));
- }
-
- static void Rotate3DAlg(PyObject *center, PyObject *vect, double angle, PyObject *coords) throw(INTERP_KERNEL::Exception)
- {
- int sz,sz2;
- INTERP_KERNEL::AutoCPtr<double> c=convertPyToNewDblArr2(center,&sz);
- int sw,nbNodes=0;
- double val0; MEDCoupling::DataArrayDouble *val1=0; MEDCoupling::DataArrayDoubleTuple *val2=0;
- std::vector<double> 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<double> v=convertPyToNewDblArr2(vect,&sz2);
- MEDCoupling::DataArrayDouble::Rotate3DAlg(c,v,angle,nbNodes,coo,const_cast<double *>(coo));
- }
- }
- };
-
- //== MEDCouplingPointSet End
-
- class MEDCouplingUMeshCell
- {
- public:
- INTERP_KERNEL::NormalizedCellType getType() const;
- %extend
- {
- std::string __str__() const throw(INTERP_KERNEL::Exception)
- {
- return self->repr();
- }
-
- PyObject *getAllConn() const throw(INTERP_KERNEL::Exception)
- {
- int ret2;
- const int *r=self->getAllConn(ret2);
- PyObject *ret=PyTuple_New(ret2);
- for(int i=0;i<ret2;i++)
- PyTuple_SetItem(ret,i,PyInt_FromLong(r[i]));
- return ret;
- }
- }
- };
-
- class MEDCouplingUMeshCellIterator
- {
- public:
- %extend
- {
- PyObject *next()
- {
- MEDCouplingUMeshCell *ret=self->nextt();
- if(ret)
- return SWIG_NewPointerObj(SWIG_as_voidptr(ret),SWIGTYPE_p_MEDCoupling__MEDCouplingUMeshCell,0|0);
- else
- {
- PyErr_SetString(PyExc_StopIteration,"No more data.");
- return 0;
- }
- }
- }
- };
-
- class MEDCouplingUMeshCellByTypeIterator
- {
- public:
- ~MEDCouplingUMeshCellByTypeIterator();
- %extend
- {
- PyObject *next()
- {
- MEDCouplingUMeshCellEntry *ret=self->nextt();
- if(ret)
- return SWIG_NewPointerObj(SWIG_as_voidptr(ret),SWIGTYPE_p_MEDCoupling__MEDCouplingUMeshCellEntry,SWIG_POINTER_OWN | 0);
- else
- {
- PyErr_SetString(PyExc_StopIteration,"No more data.");
- return 0;
- }
- }
- }
- };
-
- class MEDCouplingUMeshCellByTypeEntry
- {
- public:
- ~MEDCouplingUMeshCellByTypeEntry();
- %extend
- {
- MEDCouplingUMeshCellByTypeIterator *__iter__()
- {
- return self->iterator();
- }
- }
- };
-
- class MEDCouplingUMeshCellEntry
- {
- public:
- INTERP_KERNEL::NormalizedCellType getType() const;
- int getNumberOfElems() const;
- %extend
- {
- MEDCouplingUMeshCellIterator *__iter__()
- {
- return self->iterator();
- }
- }
- };
-
- //== MEDCouplingUMesh
-
- 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);
- 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 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<bool> getQuadraticStatus() const throw(INTERP_KERNEL::Exception);
- DataArrayInt *findCellIdsOnBoundary() const throw(INTERP_KERNEL::Exception);
- MEDCouplingUMesh *computeSkin() const throw(INTERP_KERNEL::Exception);
- bool checkConsecutiveCellTypes() const throw(INTERP_KERNEL::Exception);
- bool checkConsecutiveCellTypesForMEDFileFrmt() const throw(INTERP_KERNEL::Exception);
- DataArrayInt *rearrange2ConsecutiveCellTypes() throw(INTERP_KERNEL::Exception);
- DataArrayInt *sortCellsInMEDFileFrmt() throw(INTERP_KERNEL::Exception);
- DataArrayInt *getRenumArrForMEDFileFrmt() const throw(INTERP_KERNEL::Exception);
- DataArrayInt *convertCellArrayPerGeoType(const DataArrayInt *da) 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 convertQuadraticCellsToLinear() throw(INTERP_KERNEL::Exception);
- DataArrayInt *convertLinearCellsToQuadratic(int conversionType=0) throw(INTERP_KERNEL::Exception);
- void convertDegeneratedCells() throw(INTERP_KERNEL::Exception);
- bool areOnlySimplexCells() const throw(INTERP_KERNEL::Exception);
- MEDCouplingFieldDouble *getEdgeRatioField() const throw(INTERP_KERNEL::Exception);
- MEDCouplingFieldDouble *getAspectRatioField() const throw(INTERP_KERNEL::Exception);
- MEDCouplingFieldDouble *getWarpField() const throw(INTERP_KERNEL::Exception);
- MEDCouplingFieldDouble *getSkewField() const throw(INTERP_KERNEL::Exception);
- DataArrayDouble *computePlaneEquationOf3DFaces() const throw(INTERP_KERNEL::Exception);
- DataArrayInt *convexEnvelop2D() throw(INTERP_KERNEL::Exception);
- std::string cppRepr() const throw(INTERP_KERNEL::Exception);
- DataArrayInt *findAndCorrectBadOriented3DExtrudedCells() throw(INTERP_KERNEL::Exception);
- DataArrayInt *findAndCorrectBadOriented3DCells() 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);
- static DataArrayInt *ComputeSpreadZoneGradually(const DataArrayInt *arrIn, const DataArrayInt *arrIndxIn) throw(INTERP_KERNEL::Exception);
- static DataArrayInt *ComputeRangesFromTypeDistribution(const std::vector<int>& code) throw(INTERP_KERNEL::Exception);
- %extend {
- MEDCouplingUMesh() throw(INTERP_KERNEL::Exception)
- {
- return MEDCouplingUMesh::New();
- }
-
- MEDCouplingUMesh(const char *meshName, int meshDim) throw(INTERP_KERNEL::Exception)
- {
- return MEDCouplingUMesh::New(meshName,meshDim);
- }
-
- 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();
- }
-
- MEDCouplingUMeshCellIterator *__iter__() throw(INTERP_KERNEL::Exception)
- {
- return self->cellIterator();
- }
-
- static MEDCouplingUMesh *Build1DMeshFromCoords(DataArrayDouble *da) throw(INTERP_KERNEL::Exception)
- {
- MCAuto<MEDCouplingUMesh> ret(MEDCouplingUMesh::Build1DMeshFromCoords(da));
- return ret.retn();
- }
-
- PyObject *getAllGeoTypesSorted() const throw(INTERP_KERNEL::Exception)
- {
- std::vector<INTERP_KERNEL::NormalizedCellType> result=self->getAllGeoTypesSorted();
- std::vector<INTERP_KERNEL::NormalizedCellType>::const_iterator iL=result.begin();
- PyObject *res=PyList_New(result.size());
- for(int i=0;iL!=result.end(); i++, iL++)
- PyList_SetItem(res,i,PyInt_FromLong(*iL));
- return res;
- }
-
- void setPartOfMySelf(PyObject *li, const MEDCouplingUMesh& otherOnSameCoordsThanThis) throw(INTERP_KERNEL::Exception)
- {
- int sw;
- int singleVal;
- std::vector<int> multiVal;
- std::pair<int, std::pair<int,int> > slic;
- MEDCoupling::DataArrayInt *daIntTyypp=0;
- int nbc=self->getNumberOfCells();
- convertIntStarOrSliceLikePyObjToCpp(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)
- {
- self->setPartOfMySelf(&singleVal,&singleVal+1,otherOnSameCoordsThanThis);
- break;
- }
- else
- {
- if(nbc+singleVal>0)
- {
- int tmp=nbc+singleVal;
- self->setPartOfMySelf(&tmp,&tmp+1,otherOnSameCoordsThanThis);
- break;
- }
- else
- {
- std::ostringstream oss;
- oss << "Requesting for cell id " << singleVal << " having only " << nbc << " cells !";
- throw INTERP_KERNEL::Exception(oss.str().c_str());
- }
- }
- }
- case 2:
- {
- self->setPartOfMySelf(&multiVal[0],&multiVal[0]+multiVal.size(),otherOnSameCoordsThanThis);
- break;
- }
- case 4:
- {
- if(!daIntTyypp)
- throw INTERP_KERNEL::Exception("MEDCouplingUMesh::setPartOfMySelf : null instance has been given in input !");
- daIntTyypp->checkAllocated();
- self->setPartOfMySelf(daIntTyypp->begin(),daIntTyypp->end(),otherOnSameCoordsThanThis);
- break;
- }
- default:
- throw INTERP_KERNEL::Exception("MEDCouplingUMesh::setPartOfMySelf : unrecognized type in input ! Possibilities are : int, list or tuple of int DataArrayInt instance !");
- }
- }
-
- void __setitem__(PyObject *li, const MEDCouplingUMesh& otherOnSameCoordsThanThis) throw(INTERP_KERNEL::Exception)
- {
- int sw;
- int singleVal;
- std::vector<int> multiVal;
- std::pair<int, std::pair<int,int> > slic;
- MEDCoupling::DataArrayInt *daIntTyypp=0;
- int nbc=self->getNumberOfCells();
- convertIntStarOrSliceLikePyObjToCpp(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)
- {
- self->setPartOfMySelf(&singleVal,&singleVal+1,otherOnSameCoordsThanThis);
- break;
- }
- else
- {
- if(nbc+singleVal>0)
- {
- int tmp=nbc+singleVal;
- self->setPartOfMySelf(&tmp,&tmp+1,otherOnSameCoordsThanThis);
- break;
- }
- else
- {
- std::ostringstream oss;
- oss << "Requesting for cell id " << singleVal << " having only " << nbc << " cells !";
- throw INTERP_KERNEL::Exception(oss.str().c_str());
- }
- }
- }
- case 2:
- {
- self->setPartOfMySelf(&multiVal[0],&multiVal[0]+multiVal.size(),otherOnSameCoordsThanThis);
- break;
- }
- case 3:
- {
- self->setPartOfMySelfSlice(slic.first,slic.second.first,slic.second.second,otherOnSameCoordsThanThis);
- break;
- }
- case 4:
- {
- if(!daIntTyypp)
- throw INTERP_KERNEL::Exception("MEDCouplingUMesh::__setitem__ : null instance has been given in input !");
- daIntTyypp->checkAllocated();
- self->setPartOfMySelf(daIntTyypp->begin(),daIntTyypp->end(),otherOnSameCoordsThanThis);
- break;
- }
- default:
- throw INTERP_KERNEL::Exception("MEDCouplingUMesh::__setitem__ : unrecognized type in input ! Possibilities are : int, list or tuple of int, slice, DataArrayInt instance !");
- }
- }
-
- void insertNextCell(INTERP_KERNEL::NormalizedCellType type, int size, PyObject *li) throw(INTERP_KERNEL::Exception)
- {
- int szArr,sw,iTypppArr;
- std::vector<int> 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 << " !";
- throw INTERP_KERNEL::Exception(oss.str().c_str());
- }
- self->insertNextCell(type,size,tmp);
- }
-
- void insertNextCell(INTERP_KERNEL::NormalizedCellType type, PyObject *li) throw(INTERP_KERNEL::Exception)
- {
- int szArr,sw,iTypppArr;
- std::vector<int> stdvecTyyppArr;
- const int *tmp=convertIntStarLikePyObjToCppIntStar(li,sw,szArr,iTypppArr,stdvecTyyppArr);
- self->insertNextCell(type,szArr,tmp);
- }
-
- DataArrayInt *getNodalConnectivity() throw(INTERP_KERNEL::Exception)
- {
- DataArrayInt *ret=self->getNodalConnectivity();
- if(ret)
- ret->incrRef();
- return ret;
- }
- DataArrayInt *getNodalConnectivityIndex() throw(INTERP_KERNEL::Exception)
- {
- DataArrayInt *ret=self->getNodalConnectivityIndex();
- if(ret)
- ret->incrRef();
- return ret;
- }
-
- static PyObject *ComputeSpreadZoneGraduallyFromSeed(PyObject *seed, const DataArrayInt *arrIn, const DataArrayInt *arrIndxIn, int nbOfDepthPeeling=-1) throw(INTERP_KERNEL::Exception)
- {
- int szArr,sw,iTypppArr;
- std::vector<int> 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_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ));
- PyTuple_SetItem(res,1,PyInt_FromLong(nbOfDepthPeelingPerformed));
- return res;
- }
-
- static PyObject *FindCommonCellsAlg(int compType, int startCellId, const DataArrayInt *nodal, const DataArrayInt *nodalI, const DataArrayInt *revNodal, const DataArrayInt *revNodalI) throw(INTERP_KERNEL::Exception)
- {
- 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_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;
- }
-
- PyObject *distanceToPoint(PyObject *point) const throw(INTERP_KERNEL::Exception)
- {
- double val;
- DataArrayDouble *a;
- DataArrayDoubleTuple *aa;
- std::vector<double> bb;
- int sw;
- int nbOfCompo=self->getSpaceDimension();
- const double *pt=convertObjToPossibleCpp5_Safe(point,sw,val,a,aa,bb,"Python wrap of MEDCouplingUMesh::distanceToPoint",1,nbOfCompo,true);
- //
- int cellId=-1;
- double ret0=self->distanceToPoint(pt,pt+nbOfCompo,cellId);
- PyObject *ret=PyTuple_New(2);
- PyTuple_SetItem(ret,0,PyFloat_FromDouble(ret0));
- PyTuple_SetItem(ret,1,PyInt_FromLong(cellId));
- return ret;
- }
-
- PyObject *distanceToPoints(const DataArrayDouble *pts) const throw(INTERP_KERNEL::Exception)
- {
- 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_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;
- }
-
- PyObject *tetrahedrize(int policy) throw(INTERP_KERNEL::Exception)
- {
- int ret2(-1);
- 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_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;
- }
-
- PyObject *checkButterflyCells(double eps=1e-12) throw(INTERP_KERNEL::Exception)
- {
- std::vector<int> cells;
- self->checkButterflyCells(cells,eps);
- 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_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 );
- }
-
- PyObject *splitByType() const throw(INTERP_KERNEL::Exception)
- {
- std::vector<MEDCouplingUMesh *> ms=self->splitByType();
- int sz=ms.size();
- PyObject *ret = PyList_New(sz);
- for(int i=0;i<sz;i++)
- PyList_SetItem(ret,i,SWIG_NewPointerObj(SWIG_as_voidptr(ms[i]),SWIGTYPE_p_MEDCoupling__MEDCouplingUMesh, SWIG_POINTER_OWN | 0 ));
- return ret;
- }
-
- PyObject *partitionBySpreadZone() const throw(INTERP_KERNEL::Exception)
- {
- std::vector<DataArrayInt *> retCpp=self->partitionBySpreadZone();
- int sz=retCpp.size();
- PyObject *ret=PyList_New(sz);
- for(int i=0;i<sz;i++)
- PyList_SetItem(ret,i,SWIG_NewPointerObj(SWIG_as_voidptr(retCpp[i]),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ));
- return ret;
- }
-
- static PyObject *PartitionBySpreadZone(const DataArrayInt *arrIn, const DataArrayInt *arrIndxIn) throw(INTERP_KERNEL::Exception)
- {
- std::vector<DataArrayInt *> retCpp(MEDCouplingUMesh::PartitionBySpreadZone(arrIn,arrIndxIn));
- int sz=retCpp.size();
- PyObject *ret=PyList_New(sz);
- for(int i=0;i<sz;i++)
- PyList_SetItem(ret,i,SWIG_NewPointerObj(SWIG_as_voidptr(retCpp[i]),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ));
- return ret;
- }
-
- PyObject *keepSpecifiedCells(INTERP_KERNEL::NormalizedCellType type, PyObject *ids) const throw(INTERP_KERNEL::Exception)
- {
- int size;
- INTERP_KERNEL::AutoPtr<int> tmp=convertPyToNewIntArr2(ids,&size);
- MEDCouplingUMesh *ret=self->keepSpecifiedCells(type,tmp,tmp+size);
- return SWIG_NewPointerObj(SWIG_as_voidptr(ret),SWIGTYPE_p_MEDCoupling__MEDCouplingUMesh, SWIG_POINTER_OWN | 0 );
- }
-
- bool checkConsecutiveCellTypesAndOrder(PyObject *li) const throw(INTERP_KERNEL::Exception)
- {
- int sz;
- INTERP_KERNEL::AutoPtr<INTERP_KERNEL::NormalizedCellType> order=(INTERP_KERNEL::NormalizedCellType *)convertPyToNewIntArr2(li,&sz);
- bool ret=self->checkConsecutiveCellTypesAndOrder(order,order+sz);
- return ret;
- }
-
- DataArrayInt *getRenumArrForConsecutiveCellTypesSpec(PyObject *li) const throw(INTERP_KERNEL::Exception)
- {
- int sz;
- INTERP_KERNEL::AutoPtr<INTERP_KERNEL::NormalizedCellType> order=(INTERP_KERNEL::NormalizedCellType *)convertPyToNewIntArr2(li,&sz);
- DataArrayInt *ret=self->getRenumArrForConsecutiveCellTypesSpec(order,(INTERP_KERNEL::NormalizedCellType *)order+sz);
- return ret;
- }
-
- PyObject *findNodesToDuplicate(const MEDCouplingUMesh& otherDimM1OnSameCoords) const throw(INTERP_KERNEL::Exception)
- {
- 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_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;
- }
-
- PyObject *findCellIdsLyingOn(const MEDCouplingUMesh& otherDimM1OnSameCoords) const throw(INTERP_KERNEL::Exception)
- {
- 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_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;
- }
-
- void duplicateNodes(PyObject *li) throw(INTERP_KERNEL::Exception)
- {
- int sw;
- int singleVal;
- std::vector<int> multiVal;
- std::pair<int, std::pair<int,int> > slic;
- MEDCoupling::DataArrayInt *daIntTyypp=0;
- convertIntStarOrSliceLikePyObjToCpp(li,self->getNumberOfNodes(),sw,singleVal,multiVal,slic,daIntTyypp);
- switch(sw)
- {
- case 1:
- return self->duplicateNodes(&singleVal,&singleVal+1);
- case 2:
- return self->duplicateNodes(&multiVal[0],&multiVal[0]+multiVal.size());
- case 4:
- return self->duplicateNodes(daIntTyypp->begin(),daIntTyypp->end());
- default:
- throw INTERP_KERNEL::Exception("MEDCouplingUMesh::duplicateNodes : unrecognized type entered, expected list of int, tuple of int or DataArrayInt !");
- }
- }
-
- void duplicateNodesInConn(PyObject *li, int offset) throw(INTERP_KERNEL::Exception)
- {
- int sw;
- int singleVal;
- std::vector<int> multiVal;
- std::pair<int, std::pair<int,int> > slic;
- MEDCoupling::DataArrayInt *daIntTyypp=0;
- convertIntStarOrSliceLikePyObjToCpp(li,self->getNumberOfNodes(),sw,singleVal,multiVal,slic,daIntTyypp);
- switch(sw)
- {
- case 1:
- return self->duplicateNodesInConn(&singleVal,&singleVal+1,offset);
- case 2:
- return self->duplicateNodesInConn(&multiVal[0],&multiVal[0]+multiVal.size(),offset);
- case 4:
- return self->duplicateNodesInConn(daIntTyypp->begin(),daIntTyypp->end(),offset);
- default:
- throw INTERP_KERNEL::Exception("MEDCouplingUMesh::duplicateNodesInConn : unrecognized type entered, expected list of int, tuple of int or DataArrayInt !");
- }
- }
-
- PyObject *getLevArrPerCellTypes(PyObject *li) const throw(INTERP_KERNEL::Exception)
- {
- int sz;
- INTERP_KERNEL::AutoPtr<INTERP_KERNEL::NormalizedCellType> order=(INTERP_KERNEL::NormalizedCellType *)convertPyToNewIntArr2(li,&sz);
- 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_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;
- }
-
- PyObject *convertNodalConnectivityToDynamicGeoTypeMesh() const throw(INTERP_KERNEL::Exception)
- {
- 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_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<const MEDCoupling::MEDCouplingUMesh *> meshes;
- convertFromPyObjVectorOfObj<const MEDCoupling::MEDCouplingUMesh *>(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_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<const MEDCoupling::MEDCouplingUMesh *> meshes;
- convertFromPyObjVectorOfObj<const MEDCoupling::MEDCouplingUMesh *>(ms,SWIGTYPE_p_MEDCoupling__MEDCouplingUMesh,"MEDCouplingUMesh",meshes);
- MEDCouplingUMesh *ret=MEDCouplingUMesh::MergeUMeshesOnSameCoords(meshes);
- return convertMesh(ret, SWIG_POINTER_OWN | 0 );
- }
-
- static PyObject *FuseUMeshesOnSameCoords(PyObject *ms, int compType) throw(INTERP_KERNEL::Exception)
- {
- int sz;
- std::vector<const MEDCouplingUMesh *> meshes;
- convertFromPyObjVectorOfObj<const MEDCoupling::MEDCouplingUMesh *>(ms,SWIGTYPE_p_MEDCoupling__MEDCouplingUMesh,"MEDCouplingUMesh",meshes);
- std::vector<DataArrayInt *> corr;
- MEDCouplingUMesh *um=MEDCouplingUMesh::FuseUMeshesOnSameCoords(meshes,compType,corr);
- sz=corr.size();
- PyObject *ret1=PyList_New(sz);
- for(int i=0;i<sz;i++)
- PyList_SetItem(ret1,i,SWIG_NewPointerObj(SWIG_as_voidptr(corr[i]),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ));
- PyObject *ret=PyList_New(2);
- PyList_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(um),SWIGTYPE_p_MEDCoupling__MEDCouplingUMesh, SWIG_POINTER_OWN | 0 ));
- PyList_SetItem(ret,1,ret1);
- return ret;
- }
-
- static void PutUMeshesOnSameAggregatedCoords(PyObject *ms) throw(INTERP_KERNEL::Exception)
- {
- std::vector<MEDCouplingUMesh *> meshes;
- convertFromPyObjVectorOfObj<MEDCoupling::MEDCouplingUMesh *>(ms,SWIGTYPE_p_MEDCoupling__MEDCouplingUMesh,"MEDCouplingUMesh",meshes);
- MEDCouplingUMesh::PutUMeshesOnSameAggregatedCoords(meshes);
- }
-
- static void MergeNodesOnUMeshesSharingSameCoords(PyObject *ms, double eps) throw(INTERP_KERNEL::Exception)
- {
- std::vector<MEDCouplingUMesh *> meshes;
- convertFromPyObjVectorOfObj<MEDCoupling::MEDCouplingUMesh *>(ms,SWIGTYPE_p_MEDCoupling__MEDCouplingUMesh,"MEDCouplingUMesh",meshes);
- MEDCouplingUMesh::MergeNodesOnUMeshesSharingSameCoords(meshes,eps);
- }
-
- static bool RemoveIdsFromIndexedArrays(PyObject *li, DataArrayInt *arr, DataArrayInt *arrIndx, int offsetForRemoval=0) throw(INTERP_KERNEL::Exception)
- {
- int sw;
- int singleVal;
- std::vector<int> multiVal;
- std::pair<int, std::pair<int,int> > slic;
- MEDCoupling::DataArrayInt *daIntTyypp=0;
- if(!arrIndx)
- throw INTERP_KERNEL::Exception("MEDCouplingUMesh::RemoveIdsFromIndexedArrays : null pointer as arrIndex !");
- convertIntStarOrSliceLikePyObjToCpp(li,arrIndx->getNumberOfTuples()-1,sw,singleVal,multiVal,slic,daIntTyypp);
- switch(sw)
- {
- case 1:
- return MEDCouplingUMesh::RemoveIdsFromIndexedArrays(&singleVal,&singleVal+1,arr,arrIndx,offsetForRemoval);
- case 2:
- return MEDCouplingUMesh::RemoveIdsFromIndexedArrays(&multiVal[0],&multiVal[0]+multiVal.size(),arr,arrIndx,offsetForRemoval);
- case 4:
- return MEDCouplingUMesh::RemoveIdsFromIndexedArrays(daIntTyypp->begin(),daIntTyypp->end(),arr,arrIndx,offsetForRemoval);
- default:
- throw INTERP_KERNEL::Exception("MEDCouplingUMesh::RemoveIdsFromIndexedArrays : unrecognized type entered, expected list of int, tuple of int or DataArrayInt !");
- }
- }
-
- static PyObject *ExtractFromIndexedArrays(PyObject *li, const DataArrayInt *arrIn, const DataArrayInt *arrIndxIn) throw(INTERP_KERNEL::Exception)
- {
- DataArrayInt *arrOut=0,*arrIndexOut=0;
- int sw;
- int singleVal;
- std::vector<int> multiVal;
- std::pair<int, std::pair<int,int> > slic;
- MEDCoupling::DataArrayInt *daIntTyypp=0;
- if(!arrIndxIn)
- throw INTERP_KERNEL::Exception("MEDCouplingUMesh::ExtractFromIndexedArrays : null pointer as arrIndxIn !");
- convertIntStarOrSliceLikePyObjToCpp(li,arrIndxIn->getNumberOfTuples()-1,sw,singleVal,multiVal,slic,daIntTyypp);
- switch(sw)
- {
- case 1:
- {
- MEDCouplingUMesh::ExtractFromIndexedArrays(&singleVal,&singleVal+1,arrIn,arrIndxIn,arrOut,arrIndexOut);
- break;
- }
- case 2:
- {
- MEDCouplingUMesh::ExtractFromIndexedArrays(&multiVal[0],&multiVal[0]+multiVal.size(),arrIn,arrIndxIn,arrOut,arrIndexOut);
- break;
- }
- case 4:
- {
- MEDCouplingUMesh::ExtractFromIndexedArrays(daIntTyypp->begin(),daIntTyypp->end(),arrIn,arrIndxIn,arrOut,arrIndexOut);
- break;
- }
- default:
- 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_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 *ExtractFromIndexedArraysSlice(int strt, int stp, int step, const DataArrayInt *arrIn, const DataArrayInt *arrIndxIn) throw(INTERP_KERNEL::Exception)
- {
- DataArrayInt *arrOut=0,*arrIndexOut=0;
- 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_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 *ExtractFromIndexedArraysSlice(PyObject *slic, const DataArrayInt *arrIn, const DataArrayInt *arrIndxIn) throw(INTERP_KERNEL::Exception)
- {
- if(!PySlice_Check(slic))
- throw INTERP_KERNEL::Exception("ExtractFromIndexedArraysSlice (wrap) : the first param is not a pyslice !");
- Py_ssize_t strt=2,stp=2,step=2;
- if(!arrIndxIn)
- throw INTERP_KERNEL::Exception("ExtractFromIndexedArraysSlice (wrap) : last array is null !");
- arrIndxIn->checkAllocated();
- if(arrIndxIn->getNumberOfComponents()!=1)
- 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::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_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 *SetPartOfIndexedArrays(PyObject *li,
- const DataArrayInt *arrIn, const DataArrayInt *arrIndxIn,
- const DataArrayInt *srcArr, const DataArrayInt *srcArrIndex) throw(INTERP_KERNEL::Exception)
- {
- DataArrayInt *arrOut=0,*arrIndexOut=0;
- int sw;
- int singleVal;
- std::vector<int> multiVal;
- std::pair<int, std::pair<int,int> > slic;
- MEDCoupling::DataArrayInt *daIntTyypp=0;
- if(!arrIndxIn)
- throw INTERP_KERNEL::Exception("MEDCouplingUMesh::SetPartOfIndexedArrays : null pointer as arrIndex !");
- convertIntStarOrSliceLikePyObjToCpp(li,arrIndxIn->getNumberOfTuples()-1,sw,singleVal,multiVal,slic,daIntTyypp);
- switch(sw)
- {
- case 1:
- {
- MEDCouplingUMesh::SetPartOfIndexedArrays(&singleVal,&singleVal+1,arrIn,arrIndxIn,srcArr,srcArrIndex,arrOut,arrIndexOut);
- break;
- }
- case 2:
- {
- MEDCouplingUMesh::SetPartOfIndexedArrays(&multiVal[0],&multiVal[0]+multiVal.size(),arrIn,arrIndxIn,srcArr,srcArrIndex,arrOut,arrIndexOut);
- break;
- }
- case 4:
- {
- MEDCouplingUMesh::SetPartOfIndexedArrays(daIntTyypp->begin(),daIntTyypp->end(),arrIn,arrIndxIn,srcArr,srcArrIndex,arrOut,arrIndexOut);
- break;
- }
- default:
- 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_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 void SetPartOfIndexedArraysSameIdx(PyObject *li, DataArrayInt *arrIn, const DataArrayInt *arrIndxIn,
- const DataArrayInt *srcArr, const DataArrayInt *srcArrIndex) throw(INTERP_KERNEL::Exception)
- {
- int sw;
- int singleVal;
- std::vector<int> multiVal;
- std::pair<int, std::pair<int,int> > slic;
- MEDCoupling::DataArrayInt *daIntTyypp=0;
- if(!arrIndxIn)
- throw INTERP_KERNEL::Exception("MEDCouplingUMesh::SetPartOfIndexedArraysSameIdx : null pointer as arrIndex !");
- convertIntStarOrSliceLikePyObjToCpp(li,arrIndxIn->getNumberOfTuples()-1,sw,singleVal,multiVal,slic,daIntTyypp);
- switch(sw)
- {
- case 1:
- {
- MEDCouplingUMesh::SetPartOfIndexedArraysSameIdx(&singleVal,&singleVal+1,arrIn,arrIndxIn,srcArr,srcArrIndex);
- break;
- }
- case 2:
- {
- MEDCouplingUMesh::SetPartOfIndexedArraysSameIdx(&multiVal[0],&multiVal[0]+multiVal.size(),arrIn,arrIndxIn,srcArr,srcArrIndex);
- break;
- }
- case 4:
- {
- MEDCouplingUMesh::SetPartOfIndexedArraysSameIdx(daIntTyypp->begin(),daIntTyypp->end(),arrIn,arrIndxIn,srcArr,srcArrIndex);
- break;
- }
- default:
- throw INTERP_KERNEL::Exception("MEDCouplingUMesh::SetPartOfIndexedArraysSameIdx : unrecognized type entered, expected list of int, tuple of int or DataArrayInt !");
- }
- }
-
- PyObject *are2DCellsNotCorrectlyOriented(PyObject *vec, bool polyOnly) const throw(INTERP_KERNEL::Exception)
- {
- double val;
- DataArrayDouble *a;
- DataArrayDoubleTuple *aa;
- std::vector<double> bb;
- int sw;
- int spaceDim=self->getSpaceDimension();
- const char msg[]="Python wrap of MEDCouplingUMesh::are2DCellsNotCorrectlyOriented : ";
- const double *v=convertObjToPossibleCpp5_Safe(vec,sw,val,a,aa,bb,msg,1,spaceDim,true);
- //
- std::vector<int> cells;
- self->are2DCellsNotCorrectlyOriented(v,polyOnly,cells);
- 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_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 );
- }
-
- void orientCorrectly2DCells(PyObject *vec, bool polyOnly) throw(INTERP_KERNEL::Exception)
- {
- double val;
- DataArrayDouble *a;
- DataArrayDoubleTuple *aa;
- std::vector<double> bb;
- int sw;
- int spaceDim=self->getSpaceDimension();
- const char msg[]="Python wrap of MEDCouplingUMesh::orientCorrectly2DCells : ";
- const double *v=convertObjToPossibleCpp5_Safe(vec,sw,val,a,aa,bb,msg,1,spaceDim,true);
- self->orientCorrectly2DCells(v,polyOnly);
- }
-
- PyObject *arePolyhedronsNotCorrectlyOriented() const throw(INTERP_KERNEL::Exception)
- {
- std::vector<int> cells;
- self->arePolyhedronsNotCorrectlyOriented(cells);
- 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_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 );
- }
-
- PyObject *getFastAveragePlaneOfThis() const throw(INTERP_KERNEL::Exception)
- {
- double vec[3];
- double pos[3];
- self->getFastAveragePlaneOfThis(vec,pos);
- double vals[6];
- std::copy(vec,vec+3,vals);
- std::copy(pos,pos+3,vals+3);
- return convertDblArrToPyListOfTuple<double>(vals,3,2);
- }
-
- static MEDCouplingUMesh *MergeUMeshes(PyObject *li) throw(INTERP_KERNEL::Exception)
- {
- std::vector<const MEDCoupling::MEDCouplingUMesh *> tmp;
- convertFromPyObjVectorOfObj<const MEDCoupling::MEDCouplingUMesh *>(li,SWIGTYPE_p_MEDCoupling__MEDCouplingUMesh,"MEDCouplingUMesh",tmp);
- return MEDCouplingUMesh::MergeUMeshes(tmp);
- }
-
- PyObject *areCellsIncludedIn(const MEDCouplingUMesh *other, int compType) const throw(INTERP_KERNEL::Exception)
- {
- DataArrayInt *ret1;
- bool ret0=self->areCellsIncludedIn(other,compType,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_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ));
- return ret;
- }
-
- PyObject *areCellsIncludedInPolicy7(const MEDCouplingUMesh *other) const throw(INTERP_KERNEL::Exception)
- {
- DataArrayInt *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_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ));
- return ret;
- }
-
- PyObject *explode3DMeshTo1D() const throw(INTERP_KERNEL::Exception)
- {
- MCAuto<DataArrayInt> d0=DataArrayInt::New();
- MCAuto<DataArrayInt> d1=DataArrayInt::New();
- MCAuto<DataArrayInt> d2=DataArrayInt::New();
- MCAuto<DataArrayInt> 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_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<DataArrayInt> desc,descIndex,revDesc,revDescIndx;
- MCAuto<MEDCouplingUMesh> 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<DataArrayInt> d0=DataArrayInt::New();
- MCAuto<DataArrayInt> d1=DataArrayInt::New();
- MCAuto<DataArrayInt> d2=DataArrayInt::New();
- MCAuto<DataArrayInt> 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)
- {
- MCAuto<DataArrayInt> d0=DataArrayInt::New();
- MCAuto<DataArrayInt> d1=DataArrayInt::New();
- MCAuto<DataArrayInt> d2=DataArrayInt::New();
- MCAuto<DataArrayInt> 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_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)
- {
- MCAuto<DataArrayInt> d0=DataArrayInt::New();
- MCAuto<DataArrayInt> d1=DataArrayInt::New();
- MCAuto<DataArrayInt> d2=DataArrayInt::New();
- MCAuto<DataArrayInt> 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_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 *computeNeighborsOfCells() const throw(INTERP_KERNEL::Exception)
- {
- 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_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<DataArrayInt> 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<DataArrayInt> 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_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)
- {
- MCAuto<DataArrayInt> d0=DataArrayInt::New();
- MCAuto<DataArrayInt> 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_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;
- }
-
- DataArrayDouble *getPartBarycenterAndOwner(DataArrayInt *da) const throw(INTERP_KERNEL::Exception)
- {
- if(!da)
- throw INTERP_KERNEL::Exception("Not null DataArrayInt instance expected !");
- da->checkAllocated();
- return self->getPartBarycenterAndOwner(da->getConstPointer(),da->getConstPointer()+da->getNbOfElems());
- }
-
- DataArrayDouble *getPartMeasureField(bool isAbs, DataArrayInt *da) const throw(INTERP_KERNEL::Exception)
- {
- if(!da)
- throw INTERP_KERNEL::Exception("Not null DataArrayInt instance expected !");
- da->checkAllocated();
- return self->getPartMeasureField(isAbs,da->getConstPointer(),da->getConstPointer()+da->getNbOfElems());
- }
-
- MEDCouplingFieldDouble *buildPartOrthogonalField(DataArrayInt *da) const throw(INTERP_KERNEL::Exception)
- {
- if(!da)
- throw INTERP_KERNEL::Exception("Not null DataArrayInt instance expected !");
- da->checkAllocated();
- return self->buildPartOrthogonalField(da->getConstPointer(),da->getConstPointer()+da->getNbOfElems());
- }
-
- PyObject *getTypesOfPart(DataArrayInt *da) const throw(INTERP_KERNEL::Exception)
- {
- if(!da)
- throw INTERP_KERNEL::Exception("Not null DataArrayInt instance expected !");
- da->checkAllocated();
- std::set<INTERP_KERNEL::NormalizedCellType> result=self->getTypesOfPart(da->getConstPointer(),da->getConstPointer()+da->getNbOfElems());
- std::set<INTERP_KERNEL::NormalizedCellType>::const_iterator iL=result.begin();
- PyObject *res = PyList_New(result.size());
- for (int i=0;iL!=result.end(); i++, iL++)
- PyList_SetItem(res,i,PyInt_FromLong(*iL));
- return res;
- }
-
- DataArrayInt *keepCellIdsByType(INTERP_KERNEL::NormalizedCellType type, DataArrayInt *da) const throw(INTERP_KERNEL::Exception)
- {
- if(!da)
- throw INTERP_KERNEL::Exception("Not null DataArrayInt instance expected !");
- da->checkAllocated();
- DataArrayInt *ret=self->keepCellIdsByType(type,da->getConstPointer(),da->getConstPointer()+da->getNbOfElems());
- ret->setName(da->getName().c_str());
- return ret;
- }
-
- static PyObject *Intersect2DMeshes(const MEDCouplingUMesh *m1, const MEDCouplingUMesh *m2, double eps) throw(INTERP_KERNEL::Exception)
- {
- 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_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;
- }
-
- PyObject *buildSlice3D(PyObject *origin, PyObject *vec, double eps) const throw(INTERP_KERNEL::Exception)
- {
- int spaceDim=self->getSpaceDimension();
- if(spaceDim!=3)
- throw INTERP_KERNEL::Exception("Python wrap of MEDCouplingUMesh::buildSlice3D : works only for spaceDim 3 !");
- double val,val2;
- DataArrayDouble *a,*a2;
- DataArrayDoubleTuple *aa,*aa2;
- std::vector<double> bb,bb2;
- int sw;
- 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_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;
- }
-
- PyObject *buildSlice3DSurf(PyObject *origin, PyObject *vec, double eps) const throw(INTERP_KERNEL::Exception)
- {
- int spaceDim=self->getSpaceDimension();
- if(spaceDim!=3)
- throw INTERP_KERNEL::Exception("Python wrap of MEDCouplingUMesh::buildSlice3DSurf : works only for spaceDim 3 !");
- double val,val2;
- DataArrayDouble *a,*a2;
- DataArrayDoubleTuple *aa,*aa2;
- std::vector<double> bb,bb2;
- int sw;
- 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_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<double> 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<MEDCouplingUMesh> 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();
- if(spaceDim!=3)
- throw INTERP_KERNEL::Exception("Python wrap of MEDCouplingUMesh::getCellIdsCrossingPlane : works only for spaceDim 3 !");
- double val,val2;
- DataArrayDouble *a,*a2;
- DataArrayDoubleTuple *aa,*aa2;
- std::vector<double> bb,bb2;
- int sw;
- 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);
- }
-
- void convertToPolyTypes(PyObject *li) throw(INTERP_KERNEL::Exception)
- {
- int sw;
- int pos1;
- std::vector<int> pos2;
- DataArrayInt *pos3=0;
- DataArrayIntTuple *pos4=0;
- convertIntStarLikePyObjToCpp(li,sw,pos1,pos2,pos3,pos4);
- switch(sw)
- {
- case 1:
- {
- self->convertToPolyTypes(&pos1,&pos1+1);
- return;
- }
- case 2:
- {
- if(pos2.empty())
- return;
- self->convertToPolyTypes(&pos2[0],&pos2[0]+pos2.size());
- return ;
- }
- case 3:
- {
- self->convertToPolyTypes(pos3->begin(),pos3->end());
- return ;
- }
- default:
- throw INTERP_KERNEL::Exception("MEDCouplingUMesh::convertToPolyTypes : unexpected input array type recognized !");
- }
- }
- }
- void convertAllToPoly();
- void convertExtrudedPolyhedra() throw(INTERP_KERNEL::Exception);
- bool unPolyze() throw(INTERP_KERNEL::Exception);
- void simplifyPolyhedra(double eps) throw(INTERP_KERNEL::Exception);
- MEDCouplingUMesh *buildSpreadZonesWithPoly() const throw(INTERP_KERNEL::Exception);
- MEDCouplingUMesh *buildExtrudedMesh(const MEDCouplingUMesh *mesh1D, int policy) throw(INTERP_KERNEL::Exception);
- };
-
- //== MEDCouplingUMesh End
-
- //== MEDCouplingMappedExtrudedMesh
-
- class MEDCouplingMappedExtrudedMesh : public MEDCoupling::MEDCouplingMesh
- {
- public:
- 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 {
- 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 MEDCouplingMappedExtrudedMesh::New();
- }
-
- 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();
- }
-
- PyObject *getMesh2D() const throw(INTERP_KERNEL::Exception)
- {
- MEDCouplingUMesh *ret=self->getMesh2D();
- if(ret)
- ret->incrRef();
- return convertMesh(ret, SWIG_POINTER_OWN | 0 );
- }
- PyObject *getMesh1D() const throw(INTERP_KERNEL::Exception)
- {
- MEDCouplingUMesh *ret=self->getMesh1D();
- if(ret)
- ret->incrRef();
- return convertMesh(ret, SWIG_POINTER_OWN | 0 );
- }
- PyObject *getMesh3DIds() const throw(INTERP_KERNEL::Exception)
- {
- DataArrayInt *ret=self->getMesh3DIds();
- if(ret)
- ret->incrRef();
- return SWIG_NewPointerObj(SWIG_as_voidptr(ret),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 );
- }
- }
- };
-
- //== MEDCouplingMappedExtrudedMesh End
-
- class MEDCoupling1GTUMesh : public MEDCoupling::MEDCouplingPointSet
- {
- public:
- static MEDCoupling1GTUMesh *New(const std::string& name, INTERP_KERNEL::NormalizedCellType type) throw(INTERP_KERNEL::Exception);
- static MEDCoupling1GTUMesh *New(const MEDCouplingUMesh *m) throw(INTERP_KERNEL::Exception);
- 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 checkConsistencyOfConnectivity() const throw(INTERP_KERNEL::Exception);
- %extend
- {
- virtual void insertNextCell(PyObject *li) throw(INTERP_KERNEL::Exception)
- {
- int szArr,sw,iTypppArr;
- std::vector<int> stdvecTyyppArr;
- const int *tmp=convertIntStarLikePyObjToCppIntStar(li,sw,szArr,iTypppArr,stdvecTyyppArr);
- self->insertNextCell(tmp,tmp+szArr);
- }
-
- virtual DataArrayInt *getNodalConnectivity() const throw(INTERP_KERNEL::Exception)
- {
- DataArrayInt *ret=self->getNodalConnectivity();
- if(ret) ret->incrRef();
- return ret;
- }
-
- static MEDCouplingUMesh *AggregateOnSameCoordsToUMesh(PyObject *li) throw(INTERP_KERNEL::Exception)
- {
- std::vector< const MEDCoupling1GTUMesh *> parts;
- convertFromPyObjVectorOfObj<const MEDCoupling::MEDCoupling1GTUMesh *>(li,SWIGTYPE_p_MEDCoupling__MEDCoupling1GTUMesh,"MEDCoupling1GTUMesh",parts);
- return MEDCoupling1GTUMesh::AggregateOnSameCoordsToUMesh(parts);
- }
- }
- };
-
- //== MEDCoupling1SGTUMesh
-
- class MEDCoupling1SGTUMesh : public MEDCoupling::MEDCoupling1GTUMesh
- {
- public:
- static MEDCoupling1SGTUMesh *New(const std::string& name, INTERP_KERNEL::NormalizedCellType type) throw(INTERP_KERNEL::Exception);
- static MEDCoupling1SGTUMesh *New(const MEDCouplingUMesh *m) throw(INTERP_KERNEL::Exception);
- void setNodalConnectivity(DataArrayInt *nodalConn) throw(INTERP_KERNEL::Exception);
- int getNumberOfNodesPerCell() const throw(INTERP_KERNEL::Exception);
- static MEDCoupling1SGTUMesh *Merge1SGTUMeshes(const MEDCoupling1SGTUMesh *mesh1, const MEDCoupling1SGTUMesh *mesh2) throw(INTERP_KERNEL::Exception);
- MEDCoupling1SGTUMesh *buildSetInstanceFromThis(int spaceDim) const throw(INTERP_KERNEL::Exception);
- MEDCoupling1GTUMesh *computeDualMesh() const throw(INTERP_KERNEL::Exception);
- MEDCoupling1SGTUMesh *explodeEachHexa8To6Quad4() const throw(INTERP_KERNEL::Exception);
- 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);
- }
-
- MEDCoupling1SGTUMesh(const MEDCouplingUMesh *m) throw(INTERP_KERNEL::Exception)
- {
- return MEDCoupling1SGTUMesh::New(m);
- }
-
- 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();
- }
-
- 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<const MEDCoupling::MEDCoupling1SGTUMesh *> tmp;
- convertFromPyObjVectorOfObj<const MEDCoupling::MEDCoupling1SGTUMesh *>(li,SWIGTYPE_p_MEDCoupling__MEDCoupling1SGTUMesh,"MEDCoupling1SGTUMesh",tmp);
- return MEDCoupling1SGTUMesh::Merge1SGTUMeshes(tmp);
- }
-
- static MEDCoupling1SGTUMesh *Merge1SGTUMeshesOnSameCoords(PyObject *li) throw(INTERP_KERNEL::Exception)
- {
- std::vector<const MEDCoupling::MEDCoupling1SGTUMesh *> tmp;
- convertFromPyObjVectorOfObj<const MEDCoupling::MEDCoupling1SGTUMesh *>(li,SWIGTYPE_p_MEDCoupling__MEDCoupling1SGTUMesh,"MEDCoupling1SGTUMesh",tmp);
- return MEDCoupling1SGTUMesh::Merge1SGTUMeshesOnSameCoords(tmp);
- }
- }
- };
-
- //== MEDCoupling1SGTUMesh End
-
- //== MEDCoupling1DGTUMesh
-
- class MEDCoupling1DGTUMesh : public MEDCoupling::MEDCoupling1GTUMesh
- {
- public:
- static MEDCoupling1DGTUMesh *New(const std::string& name, INTERP_KERNEL::NormalizedCellType type) throw(INTERP_KERNEL::Exception);
- static MEDCoupling1DGTUMesh *New(const MEDCouplingUMesh *m) throw(INTERP_KERNEL::Exception);
- void setNodalConnectivity(DataArrayInt *nodalConn, DataArrayInt *nodalConnIndex) throw(INTERP_KERNEL::Exception);
- MEDCoupling1DGTUMesh *buildSetInstanceFromThis(int spaceDim) const throw(INTERP_KERNEL::Exception);
- 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);
- }
-
- MEDCoupling1DGTUMesh(const MEDCouplingUMesh *m) throw(INTERP_KERNEL::Exception)
- {
- return MEDCoupling1DGTUMesh::New(m);
- }
-
- 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();
- }
-
- DataArrayInt *getNodalConnectivityIndex() const throw(INTERP_KERNEL::Exception)
- {
- DataArrayInt *ret=self->getNodalConnectivityIndex();
- if(ret) ret->incrRef();
- return ret;
- }
-
- PyObject *retrievePackedNodalConnectivity() const throw(INTERP_KERNEL::Exception)
- {
- DataArrayInt *ret1=0,*ret2=0;
- bool ret0=self->retrievePackedNodalConnectivity(ret1,ret2);
- PyObject *ret0Py=ret0?Py_True:Py_False;
- 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_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;
- }
-
- PyObject *copyWithNodalConnectivityPacked() const throw(INTERP_KERNEL::Exception)
- {
- bool ret1;
- 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_MEDCoupling__MEDCoupling1DGTUMesh, SWIG_POINTER_OWN | 0 ));
- PyTuple_SetItem(ret,1,ret1Py);
- return ret;
- }
-
- static MEDCoupling1DGTUMesh *Merge1DGTUMeshes(PyObject *li) throw(INTERP_KERNEL::Exception)
- {
- std::vector<const MEDCoupling::MEDCoupling1DGTUMesh *> tmp;
- convertFromPyObjVectorOfObj<const MEDCoupling::MEDCoupling1DGTUMesh *>(li,SWIGTYPE_p_MEDCoupling__MEDCoupling1DGTUMesh,"MEDCoupling1DGTUMesh",tmp);
- return MEDCoupling1DGTUMesh::Merge1DGTUMeshes(tmp);
- }
-
- static MEDCoupling1DGTUMesh *Merge1DGTUMeshesOnSameCoords(PyObject *li) throw(INTERP_KERNEL::Exception)
- {
- std::vector<const MEDCoupling::MEDCoupling1DGTUMesh *> tmp;
- convertFromPyObjVectorOfObj<const MEDCoupling::MEDCoupling1DGTUMesh *>(li,SWIGTYPE_p_MEDCoupling__MEDCoupling1DGTUMesh,"MEDCoupling1DGTUMesh",tmp);
- return MEDCoupling1DGTUMesh::Merge1DGTUMeshesOnSameCoords(tmp);
- }
-
- static DataArrayInt *AggregateNodalConnAndShiftNodeIds(PyObject *li, const std::vector<int>& offsetInNodeIdsPerElt) throw(INTERP_KERNEL::Exception)
- {
- std::vector<const MEDCoupling::DataArrayInt *> tmp;
- convertFromPyObjVectorOfObj<const MEDCoupling::DataArrayInt *>(li,SWIGTYPE_p_MEDCoupling__DataArrayInt,"DataArrayInt",tmp);
- return MEDCoupling1DGTUMesh::AggregateNodalConnAndShiftNodeIds(tmp,offsetInNodeIdsPerElt);
- }
- }
- };
-
- //== MEDCoupling1DGTUMeshEnd
-
- 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<int> getNodeGridStructure() const throw(INTERP_KERNEL::Exception);
- std::vector<int> getCellGridStructure() const throw(INTERP_KERNEL::Exception);
- MEDCoupling1SGTUMesh *build1SGTUnstructured() const throw(INTERP_KERNEL::Exception);
- std::vector<int> getLocationFromCellId(int cellId) const throw(INTERP_KERNEL::Exception);
- std::vector<int> 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<int>& st) throw(INTERP_KERNEL::Exception);
- static DataArrayInt *ComputeCornersGhost(const std::vector<int>& st, int ghostLev) throw(INTERP_KERNEL::Exception);
- static std::vector<int> GetSplitVectFromStruct(const std::vector<int>& strct) throw(INTERP_KERNEL::Exception);
- %extend
- {
- virtual MEDCouplingStructuredMesh *buildStructuredSubPart(PyObject *cellPart) const throw(INTERP_KERNEL::Exception)
- {
- int tmpp1=-1,tmpp2=-1;
- std::vector<int> tmp=fillArrayWithPyListInt2(cellPart,tmpp1,tmpp2);
- std::vector< std::pair<int,int> > inp;
- if(tmpp2==2)
- {
- inp.resize(tmpp1);
- for(int i=0;i<tmpp1;i++)
- { inp[i].first=tmp[2*i]; inp[i].second=tmp[2*i+1]; }
- }
- else if(tmpp2==1)
- {
- if(tmpp1%2!=0)
- throw INTERP_KERNEL::Exception("Wrap of MEDCouplingStructuredMesh.buildStructuredSubPart : invalid input size ! Must be even size !");
- inp.resize(tmpp1/2);
- for(int i=0;i<tmpp1/2;i++)
- { inp[i].first=tmp[2*i]; inp[i].second=tmp[2*i+1]; }
- }
- else
- throw INTERP_KERNEL::Exception("Wrap of MEDCouplingStructuredMesh.buildStructuredSubPart : invalid input size !");
- return self->buildStructuredSubPart(inp);
- }
-
- static DataArrayInt *BuildExplicitIdsFrom(PyObject *st, PyObject *part) throw(INTERP_KERNEL::Exception)
- {
- std::vector< std::pair<int,int> > inp;
- convertPyToVectorPairInt(part,inp);
- //
- int szArr,sw,iTypppArr;
- std::vector<int> stdvecTyyppArr;
- const int *tmp4=convertIntStarLikePyObjToCppIntStar(st,sw,szArr,iTypppArr,stdvecTyyppArr);
- std::vector<int> tmp5(tmp4,tmp4+szArr);
- //
- return MEDCouplingStructuredMesh::BuildExplicitIdsFrom(tmp5,inp);
- }
-
- static void MultiplyPartOf(const std::vector<int>& st, PyObject *part, double factor, DataArrayDouble *da) throw(INTERP_KERNEL::Exception)
- {
- std::vector< std::pair<int,int> > inp;
- convertPyToVectorPairInt(part,inp);
- MEDCouplingStructuredMesh::MultiplyPartOf(st,inp,factor,da);
- }
-
- static void MultiplyPartOfByGhost(const std::vector<int>& st, PyObject *part, int ghostSize, double factor, DataArrayDouble *da) throw(INTERP_KERNEL::Exception)
- {
- std::vector< std::pair<int,int> > inp;
- convertPyToVectorPairInt(part,inp);
- MEDCouplingStructuredMesh::MultiplyPartOfByGhost(st,inp,ghostSize,factor,da);
- }
-
- static PyObject *PutInGhostFormat(int ghostSize, const std::vector<int>& st, PyObject *part) throw(INTERP_KERNEL::Exception)
- {
- std::vector< std::pair<int,int> > inp;
- convertPyToVectorPairInt(part,inp);
- std::vector<int> stWithGhost;
- std::vector< std::pair<int,int> > 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<int>& st, const DataArrayDouble *fieldOfDbl, PyObject *partCompactFormat) throw(INTERP_KERNEL::Exception)
- {
- std::vector< std::pair<int,int> > inp;
- convertPyToVectorPairInt(partCompactFormat,inp);
- return MEDCouplingStructuredMesh::ExtractFieldOfDoubleFrom(st,fieldOfDbl,inp);
- }
-
- static void AssignPartOfFieldOfDoubleUsing(const std::vector<int>& st, DataArrayDouble *fieldOfDbl, PyObject *partCompactFormat, const DataArrayDouble *other) throw(INTERP_KERNEL::Exception)
- {
- std::vector< std::pair<int,int> > inp;
- convertPyToVectorPairInt(partCompactFormat,inp);
- MEDCouplingStructuredMesh::AssignPartOfFieldOfDoubleUsing(st,fieldOfDbl,inp,other);
- }
-
- static int DeduceNumberOfGivenRangeInCompactFrmt(PyObject *part) throw(INTERP_KERNEL::Exception)
- {
- std::vector< std::pair<int,int> > inp;
- convertPyToVectorPairInt(part,inp);
- return MEDCouplingStructuredMesh::DeduceNumberOfGivenRangeInCompactFrmt(inp);
- }
-
- static DataArrayInt *Build1GTNodalConnectivity(PyObject *li) throw(INTERP_KERNEL::Exception)
- {
- int szArr,sw,iTypppArr;
- std::vector<int> 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<int> stdvecTyyppArr;
- const int *tmp(convertIntStarLikePyObjToCppIntStar(li,sw,szArr,iTypppArr,stdvecTyyppArr));
- return MEDCouplingStructuredMesh::Build1GTNodalConnectivityOfSubLevelMesh(tmp,tmp+szArr);
- }
-
- static std::vector<int> GetDimensionsFromCompactFrmt(PyObject *partCompactFormat) throw(INTERP_KERNEL::Exception)
- {
- std::vector< std::pair<int,int> > inp;
- convertPyToVectorPairInt(partCompactFormat,inp);
- return MEDCouplingStructuredMesh::GetDimensionsFromCompactFrmt(inp);
- }
-
- static PyObject *GetCompactFrmtFromDimensions(const std::vector<int>& dims) throw(INTERP_KERNEL::Exception)
- {
- std::vector< std::pair<int,int> > ret(MEDCouplingStructuredMesh::GetCompactFrmtFromDimensions(dims));
- PyObject *retPy=PyList_New(ret.size());
- for(std::size_t i=0;i<ret.size();i++)
- {
- PyObject *tmp=PyTuple_New(2);
- PyTuple_SetItem(tmp,0,PyInt_FromLong(ret[i].first));
- PyTuple_SetItem(tmp,1,PyInt_FromLong(ret[i].second));
- PyList_SetItem(retPy,i,tmp);
- }
- return retPy;
- }
-
- static PyObject *IntersectRanges(PyObject *r1, PyObject *r2) throw(INTERP_KERNEL::Exception)
- {
- std::vector< std::pair<int,int> > r1Cpp,r2Cpp;
- convertPyToVectorPairInt(r1,r1Cpp);
- convertPyToVectorPairInt(r2,r2Cpp);
- std::vector< std::pair<int,int> > ret(MEDCouplingStructuredMesh::IntersectRanges(r1Cpp,r2Cpp));
- PyObject *retPy=PyList_New(ret.size());
- for(std::size_t i=0;i<ret.size();i++)
- {
- PyObject *tmp=PyTuple_New(2);
- PyTuple_SetItem(tmp,0,PyInt_FromLong(ret[i].first));
- PyTuple_SetItem(tmp,1,PyInt_FromLong(ret[i].second));
- PyList_SetItem(retPy,i,tmp);
- }
- return retPy;
- }
-
- static bool AreRangesIntersect(PyObject *r1, PyObject *r2)
- {
- std::vector< std::pair<int,int> > 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<int> stdvecTyyppArr;
- const int *tmp=convertIntStarLikePyObjToCppIntStar(li,sw,szArr,iTypppArr,stdvecTyyppArr);
- int szArr2,sw2,iTypppArr2;
- std::vector<int> stdvecTyyppArr2;
- const int *tmp2=convertIntStarLikePyObjToCppIntStar(st,sw2,szArr2,iTypppArr2,stdvecTyyppArr2);
- std::vector<int> tmp3(tmp2,tmp2+szArr2);
- std::vector< std::pair<int,int> > 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<partCompactFormat.size();i++)
- {
- PyObject *tmp4=PyTuple_New(2);
- PyTuple_SetItem(tmp4,0,PyInt_FromLong(partCompactFormat[i].first));
- PyTuple_SetItem(tmp4,1,PyInt_FromLong(partCompactFormat[i].second));
- PyList_SetItem(ret1Py,i,tmp4);
- }
- PyTuple_SetItem(ret,1,ret1Py);
- return ret;
- }
-
- static PyObject *ChangeReferenceFromGlobalOfCompactFrmt(PyObject *bigInAbs, PyObject *partOfBigInAbs, bool check=true) throw(INTERP_KERNEL::Exception)
- {
- std::vector< std::pair<int,int> > 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<ret.size();i++)
- {
- PyObject *tmp(PyTuple_New(2));
- PyTuple_SetItem(tmp,0,PyInt_FromLong(ret[i].first));
- PyTuple_SetItem(tmp,1,PyInt_FromLong(ret[i].second));
- PyList_SetItem(retPy,i,tmp);
- }
- return retPy;
- }
-
- static PyObject *TranslateCompactFrmt(PyObject *part, const std::vector<int>& translation) throw(INTERP_KERNEL::Exception)
- {
- std::vector< std::pair<int,int> > param0;
- convertPyToVectorPairInt(part,param0);
- std::vector< std::pair<int,int> > ret(MEDCouplingStructuredMesh::TranslateCompactFrmt(param0,translation));
- PyObject *retPy(PyList_New(ret.size()));
- for(std::size_t i=0;i<ret.size();i++)
- {
- PyObject *tmp(PyTuple_New(2));
- PyTuple_SetItem(tmp,0,PyInt_FromLong(ret[i].first));
- PyTuple_SetItem(tmp,1,PyInt_FromLong(ret[i].second));
- PyList_SetItem(retPy,i,tmp);
- }
- return retPy;
- }
-
- static std::vector<int> FindTranslationFrom(PyObject *startingFrom, PyObject *goingTo) throw(INTERP_KERNEL::Exception)
- {
- std::vector< std::pair<int,int> > 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<int,int> > 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<ret.size();i++)
- {
- PyObject *tmp(PyTuple_New(2));
- PyTuple_SetItem(tmp,0,PyInt_FromLong(ret[i].first));
- PyTuple_SetItem(tmp,1,PyInt_FromLong(ret[i].second));
- PyList_SetItem(retPy,i,tmp);
- }
- return retPy;
- }
- }
- };
-
- class MEDCouplingCurveLinearMesh;
-
- //== MEDCouplingCMesh
-
- class MEDCouplingCMesh : public MEDCoupling::MEDCouplingStructuredMesh
- {
- public:
- static MEDCouplingCMesh *New() throw(INTERP_KERNEL::Exception);
- static MEDCouplingCMesh *New(const std::string& meshName) throw(INTERP_KERNEL::Exception);
- void setCoords(const DataArrayDouble *coordsX,
- const DataArrayDouble *coordsY=0,
- const DataArrayDouble *coordsZ=0) throw(INTERP_KERNEL::Exception);
- void setCoordsAt(int i, const DataArrayDouble *arr) throw(INTERP_KERNEL::Exception);
- MEDCouplingCurveLinearMesh *buildCurveLinear() const throw(INTERP_KERNEL::Exception);
- %extend {
- MEDCouplingCMesh() throw(INTERP_KERNEL::Exception)
- {
- return MEDCouplingCMesh::New();
- }
- MEDCouplingCMesh(const std::string& meshName) throw(INTERP_KERNEL::Exception)
- {
- return MEDCouplingCMesh::New(meshName);
- }
- 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();
- }
- DataArrayDouble *getCoordsAt(int i) throw(INTERP_KERNEL::Exception)
- {
- DataArrayDouble *ret=self->getCoordsAt(i);
- if(ret)
- ret->incrRef();
- return ret;
- }
- }
- };
-
- //== MEDCouplingCMesh End
-
- //== MEDCouplingCurveLinearMesh
-
- class MEDCouplingCurveLinearMesh : public MEDCoupling::MEDCouplingStructuredMesh
- {
- public:
- static MEDCouplingCurveLinearMesh *New() throw(INTERP_KERNEL::Exception);
- static MEDCouplingCurveLinearMesh *New(const std::string& meshName) throw(INTERP_KERNEL::Exception);
- void setCoords(const DataArrayDouble *coords) throw(INTERP_KERNEL::Exception);
- %extend {
- MEDCouplingCurveLinearMesh() throw(INTERP_KERNEL::Exception)
- {
- return MEDCouplingCurveLinearMesh::New();
- }
- MEDCouplingCurveLinearMesh(const std::string& meshName) throw(INTERP_KERNEL::Exception)
- {
- return MEDCouplingCurveLinearMesh::New(meshName);
- }
- 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();
- }
- DataArrayDouble *getCoords() throw(INTERP_KERNEL::Exception)
- {
- DataArrayDouble *ret=self->getCoords();
- if(ret)
- ret->incrRef();
- return ret;
- }
- void setNodeGridStructure(PyObject *gridStruct) throw(INTERP_KERNEL::Exception)
- {
- int szArr,sw,iTypppArr;
- std::vector<int> 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<int> getNodeStruct() const throw(INTERP_KERNEL::Exception);
- std::vector<double> getOrigin() const throw(INTERP_KERNEL::Exception);
- std::vector<double> 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<int>& 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<int> bb0;
- nodeStrctPtr=convertIntStarLikePyObjToCppIntStar(nodeStrct,sw,sz,val0,bb0);
- //
- double val,val2;
- std::vector<double> 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<int> 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<double> 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<double> 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<int>& coarseSt, const DataArrayDouble *fineDA, PyObject *fineLocInCoarse, const std::vector<int>& facts, DataArrayDouble *coarseDA) throw(INTERP_KERNEL::Exception)
- {
- std::vector< std::pair<int,int> > inp;
- convertPyToVectorPairInt(fineLocInCoarse,inp);
- MEDCouplingIMesh::CondenseFineToCoarse(coarseSt,fineDA,inp,facts,coarseDA);
- }
-
- static void CondenseFineToCoarseGhost(const std::vector<int>& coarseSt, const DataArrayDouble *fineDA, PyObject *fineLocInCoarse, const std::vector<int>& facts, DataArrayDouble *coarseDA, int ghostSize) throw(INTERP_KERNEL::Exception)
- {
- std::vector< std::pair<int,int> > inp;
- convertPyToVectorPairInt(fineLocInCoarse,inp);
- MEDCouplingIMesh::CondenseFineToCoarseGhost(coarseSt,fineDA,inp,facts,coarseDA,ghostSize);
- }
-
- static void SpreadCoarseToFine(const DataArrayDouble *coarseDA, const std::vector<int>& coarseSt, DataArrayDouble *fineDA, PyObject *fineLocInCoarse, const std::vector<int>& facts) throw(INTERP_KERNEL::Exception)
- {
- std::vector< std::pair<int,int> > inp;
- convertPyToVectorPairInt(fineLocInCoarse,inp);
- MEDCouplingIMesh::SpreadCoarseToFine(coarseDA,coarseSt,fineDA,inp,facts);
- }
-
- static void SpreadCoarseToFineGhost(const DataArrayDouble *coarseDA, const std::vector<int>& coarseSt, DataArrayDouble *fineDA, PyObject *fineLocInCoarse, const std::vector<int>& facts, int ghostSize) throw(INTERP_KERNEL::Exception)
- {
- std::vector< std::pair<int,int> > inp;
- convertPyToVectorPairInt(fineLocInCoarse,inp);
- MEDCouplingIMesh::SpreadCoarseToFineGhost(coarseDA,coarseSt,fineDA,inp,facts,ghostSize);
- }
-
- static void SpreadCoarseToFineGhostZone(const DataArrayDouble *coarseDA, const std::vector<int>& coarseSt, DataArrayDouble *fineDA, PyObject *fineLocInCoarse, const std::vector<int>& facts, int ghostSize) throw(INTERP_KERNEL::Exception)
- {
- std::vector< std::pair<int,int> > 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 MEDCoupling
-{
- class MEDCouplingField : public MEDCoupling::RefCountObject, public MEDCoupling::TimeLabel
- {
- public:
- virtual void checkConsistencyLight() const throw(INTERP_KERNEL::Exception);
- virtual bool areCompatibleForMerge(const MEDCouplingField *other) const throw(INTERP_KERNEL::Exception);
- virtual void copyTinyStringsFrom(const MEDCouplingField *other) 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);
- std::string getName() const throw(INTERP_KERNEL::Exception);
- TypeOfField getTypeOfField() const throw(INTERP_KERNEL::Exception);
- NatureOfField getNature() const throw(INTERP_KERNEL::Exception);
- virtual void setNature(NatureOfField nat) throw(INTERP_KERNEL::Exception);
- DataArrayDouble *getLocalizationOfDiscr() const throw(INTERP_KERNEL::Exception);
- MEDCouplingFieldDouble *buildMeasureField(bool isAbs) const throw(INTERP_KERNEL::Exception);
- int getNumberOfTuplesExpected() const throw(INTERP_KERNEL::Exception);
- int getNumberOfMeshPlacesExpected() const throw(INTERP_KERNEL::Exception);
- void setGaussLocalizationOnType(INTERP_KERNEL::NormalizedCellType type, const std::vector<double>& refCoo,
- const std::vector<double>& gsCoo, const std::vector<double>& wg) throw(INTERP_KERNEL::Exception);
- void clearGaussLocalizations() throw(INTERP_KERNEL::Exception);
- MEDCouplingGaussLocalization& getGaussLocalization(int locId) throw(INTERP_KERNEL::Exception);
- int getNbOfGaussLocalization() const throw(INTERP_KERNEL::Exception);
- int getGaussLocalizationIdOfOneCell(int cellId) const throw(INTERP_KERNEL::Exception);
- const MEDCouplingGaussLocalization& getGaussLocalization(int locId) const throw(INTERP_KERNEL::Exception);
- int getGaussLocalizationIdOfOneType(INTERP_KERNEL::NormalizedCellType type) const throw(INTERP_KERNEL::Exception);
- void setDiscretization(MEDCouplingFieldDiscretization *newDisc);
- %extend {
- PyObject *getMesh() const throw(INTERP_KERNEL::Exception)
- {
- MEDCouplingMesh *ret1=const_cast<MEDCouplingMesh *>(self->getMesh());
- if(ret1)
- ret1->incrRef();
- return convertMesh(ret1,SWIG_POINTER_OWN | 0 );
- }
-
- PyObject *getDiscretization() throw(INTERP_KERNEL::Exception)
- {
- MEDCouplingFieldDiscretization *ret=self->getDiscretization();
- if(ret)
- ret->incrRef();
- return convertFieldDiscretization(ret,SWIG_POINTER_OWN | 0 );
- }
-
- PyObject *getGaussLocalizationIdsOfOneType(INTERP_KERNEL::NormalizedCellType type) const throw(INTERP_KERNEL::Exception)
- {
- std::set<int> ret=self->getGaussLocalizationIdsOfOneType(type);
- return convertIntArrToPyList3(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_MEDCoupling__DataArrayInt, 0 | 0 );
- if (!SWIG_IsOK(res1))
- {
- int size;
- INTERP_KERNEL::AutoPtr<int> tmp=convertPyToNewIntArr2(li,&size);
- ret0=self->buildSubMeshData(tmp,tmp+size,ret1);
- }
- else
- {
- DataArrayInt *da2=reinterpret_cast< DataArrayInt * >(da);
- if(!da2)
- throw INTERP_KERNEL::Exception("Not null DataArrayInt instance expected !");
- da2->checkAllocated();
- ret0=self->buildSubMeshData(da2->getConstPointer(),da2->getConstPointer()+da2->getNbOfElems(),ret1);
- }
- 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_MEDCoupling__DataArrayInt,SWIG_POINTER_OWN | 0));
- return res;
- }
-
- PyObject *buildSubMeshDataRange(int begin, int end, int step) const throw(INTERP_KERNEL::Exception)
- {
- DataArrayInt *ret1=0;
- int bb,ee,ss;
- MEDCouplingMesh *ret0=self->buildSubMeshDataRange(begin,end,step,bb,ee,ss,ret1);
- 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_MEDCoupling__DataArrayInt,SWIG_POINTER_OWN | 0));
- else
- {
- PyObject *res1=PySlice_New(PyInt_FromLong(bb),PyInt_FromLong(ee),PyInt_FromLong(ss));
- PyTuple_SetItem(res,1,res1);
- }
- return res;
- }
-
- DataArrayInt *computeTupleIdsToSelectFromCellIds(PyObject *cellIds) const
- {
- int sw,sz(-1);
- int v0; std::vector<int> v1;
- const int *cellIdsBg(convertIntStarLikePyObjToCppIntStar(cellIds,sw,sz,v0,v1));
- return self->computeTupleIdsToSelectFromCellIds(cellIdsBg,cellIdsBg+sz);
- }
-
- void setGaussLocalizationOnCells(PyObject *li, const std::vector<double>& refCoo,
- const std::vector<double>& gsCoo, const std::vector<double>& wg) throw(INTERP_KERNEL::Exception)
- {
- void *da=0;
- int res1=SWIG_ConvertPtr(li,&da,SWIGTYPE_p_MEDCoupling__DataArrayInt, 0 | 0 );
- if (!SWIG_IsOK(res1))
- {
- int size;
- INTERP_KERNEL::AutoPtr<int> tmp=convertPyToNewIntArr2(li,&size);
- self->setGaussLocalizationOnCells(tmp,((int *)tmp)+size,refCoo,gsCoo,wg);
- }
- else
- {
- DataArrayInt *da2=reinterpret_cast< DataArrayInt * >(da);
- if(!da2)
- throw INTERP_KERNEL::Exception("Not null DataArrayInt instance expected !");
- da2->checkAllocated();
- self->setGaussLocalizationOnCells(da2->getConstPointer(),da2->getConstPointer()+da2->getNbOfElems(),refCoo,gsCoo,wg);
- }
- }
-
- PyObject *getCellIdsHavingGaussLocalization(int locId) const throw(INTERP_KERNEL::Exception)
- {
- std::vector<int> tmp;
- self->getCellIdsHavingGaussLocalization(locId,tmp);
- 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_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 );
- }
-
- int getNumberOfTuplesExpectedRegardingCode(PyObject *code, PyObject *idsPerType) const throw(INTERP_KERNEL::Exception)
- {
- std::vector<int> inp0;
- convertPyToNewIntArr4(code,1,3,inp0);
- std::vector<const DataArrayInt *> inp1;
- convertFromPyObjVectorOfObj<const MEDCoupling::DataArrayInt *>(idsPerType,SWIGTYPE_p_MEDCoupling__DataArrayInt,"DataArrayInt",inp1);
- return self->getNumberOfTuplesExpectedRegardingCode(inp0,inp1);
- }
- }
- };
-
- 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)
- {
- return MEDCouplingFieldTemplate::New(type);
- }
-
- 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();
- }
-
- 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 T>
- class MEDCouplingFieldT : public MEDCoupling::MEDCouplingField
- {
- public:
- TypeOfTimeDiscretization getTimeDiscretization() const throw(INTERP_KERNEL::Exception);
- protected:
- MEDCouplingFieldT();
- ~MEDCouplingFieldT();
- };
-
- %template(MEDCouplingFieldTdouble) MEDCoupling::MEDCouplingFieldT<double>;
- %template(MEDCouplingFieldTfloat) MEDCoupling::MEDCouplingFieldT<float>;
- %template(MEDCouplingFieldTint) MEDCoupling::MEDCouplingFieldT<int>;
-
- class MEDCouplingFieldInt;
- class MEDCouplingFieldFloat;
-
- class MEDCouplingFieldDouble : public MEDCouplingFieldT<double>
- {
- 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);
- void copyTinyAttrFrom(const MEDCouplingFieldDouble *other) throw(INTERP_KERNEL::Exception);
- 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);
- 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 *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);
- 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);
- void setArray(DataArrayDouble *array) throw(INTERP_KERNEL::Exception);
- void setEndArray(DataArrayDouble *array) throw(INTERP_KERNEL::Exception);
- void setTime(double val, int iteration, int order) throw(INTERP_KERNEL::Exception);
- 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);
- void setTimeTolerance(double val) throw(INTERP_KERNEL::Exception);
- double getTimeTolerance() const throw(INTERP_KERNEL::Exception);
- void setIteration(int it) throw(INTERP_KERNEL::Exception);
- void setEndIteration(int it) throw(INTERP_KERNEL::Exception);
- void setOrder(int order) throw(INTERP_KERNEL::Exception);
- void setEndOrder(int order) throw(INTERP_KERNEL::Exception);
- void setTimeValue(double val) throw(INTERP_KERNEL::Exception);
- void setEndTimeValue(double val) throw(INTERP_KERNEL::Exception);
- 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 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);
- MEDCouplingFieldDouble *doublyContractedProduct() const throw(INTERP_KERNEL::Exception);
- MEDCouplingFieldDouble *determinant() const throw(INTERP_KERNEL::Exception);
- MEDCouplingFieldDouble *eigenValues() const throw(INTERP_KERNEL::Exception);
- MEDCouplingFieldDouble *eigenVectors() const throw(INTERP_KERNEL::Exception);
- MEDCouplingFieldDouble *inverse() const throw(INTERP_KERNEL::Exception);
- MEDCouplingFieldDouble *trace() const throw(INTERP_KERNEL::Exception);
- MEDCouplingFieldDouble *deviator() const throw(INTERP_KERNEL::Exception);
- MEDCouplingFieldDouble *magnitude() const throw(INTERP_KERNEL::Exception);
- MEDCouplingFieldDouble *maxPerTuple() const throw(INTERP_KERNEL::Exception);
- void changeNbOfComponents(int newNbOfComp, double dftValue=0.) throw(INTERP_KERNEL::Exception);
- 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 fillFromAnalyticCompo(int nbOfComp, const std::string& func) throw(INTERP_KERNEL::Exception);
- void fillFromAnalyticNamedCompo(int nbOfComp, const std::vector<std::string>& varsOrder, const std::string& func) throw(INTERP_KERNEL::Exception);
- void applyFunc(int nbOfComp, 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<std::string>& 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);
- void applyFuncFast64(const std::string& func) throw(INTERP_KERNEL::Exception);
- double accumulate(int compId) const throw(INTERP_KERNEL::Exception);
- double getMaxValue() const throw(INTERP_KERNEL::Exception);
- double getMinValue() const throw(INTERP_KERNEL::Exception);
- double getAverageValue() const throw(INTERP_KERNEL::Exception);
- double norm2() const throw(INTERP_KERNEL::Exception);
- double normMax() const throw(INTERP_KERNEL::Exception);
- //do not put a default value to isWAbs because confusion in python with overloaded getWeightedAverageValue method
- double getWeightedAverageValue(int compId, bool isWAbs) const throw(INTERP_KERNEL::Exception);
- 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 *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);
- static MEDCouplingFieldDouble *DotFields(const MEDCouplingFieldDouble *f1, const MEDCouplingFieldDouble *f2) throw(INTERP_KERNEL::Exception);
- MEDCouplingFieldDouble *dot(const MEDCouplingFieldDouble& other) const throw(INTERP_KERNEL::Exception);
- static MEDCouplingFieldDouble *CrossProductFields(const MEDCouplingFieldDouble *f1, const MEDCouplingFieldDouble *f2) throw(INTERP_KERNEL::Exception);
- MEDCouplingFieldDouble *crossProduct(const MEDCouplingFieldDouble& other) const throw(INTERP_KERNEL::Exception);
- static MEDCouplingFieldDouble *MaxFields(const MEDCouplingFieldDouble *f1, const MEDCouplingFieldDouble *f2) throw(INTERP_KERNEL::Exception);
- MEDCouplingFieldDouble *max(const MEDCouplingFieldDouble& other) const throw(INTERP_KERNEL::Exception);
- static MEDCouplingFieldDouble *MinFields(const MEDCouplingFieldDouble *f1, const MEDCouplingFieldDouble *f2) throw(INTERP_KERNEL::Exception);
- static MEDCouplingFieldDouble *AddFields(const MEDCouplingFieldDouble *f1, const MEDCouplingFieldDouble *f2) throw(INTERP_KERNEL::Exception);
- static MEDCouplingFieldDouble *SubstractFields(const MEDCouplingFieldDouble *f1, const MEDCouplingFieldDouble *f2) throw(INTERP_KERNEL::Exception);
- static MEDCouplingFieldDouble *MultiplyFields(const MEDCouplingFieldDouble *f1, const MEDCouplingFieldDouble *f2) throw(INTERP_KERNEL::Exception);
- static MEDCouplingFieldDouble *DivideFields(const MEDCouplingFieldDouble *f1, const MEDCouplingFieldDouble *f2) throw(INTERP_KERNEL::Exception);
- MEDCouplingFieldDouble *min(const MEDCouplingFieldDouble& other) const throw(INTERP_KERNEL::Exception);
- MEDCouplingFieldDouble *negate() const throw(INTERP_KERNEL::Exception);
- %extend {
- MEDCouplingFieldDouble(TypeOfField type, TypeOfTimeDiscretization td=ONE_TIME)
- {
- return MEDCouplingFieldDouble::New(type,td);
- }
-
- MEDCouplingFieldDouble(const MEDCouplingFieldTemplate& ft, TypeOfTimeDiscretization td=ONE_TIME)
- {
- return MEDCouplingFieldDouble::New(ft,td);
- }
-
- 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();
- }
-
- 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<MEDCouplingFieldDouble> ret(self->voronoize(eps));
- return ret.retn();
- }
-
- MEDCouplingFieldDouble *convertQuadraticCellsToLinear() const throw(INTERP_KERNEL::Exception)
- {
- MCAuto<MEDCouplingFieldDouble> 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<double> 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();
- if(ret)
- ret->incrRef();
- return ret;
- }
-
- PyObject *getArrays() const throw(INTERP_KERNEL::Exception)
- {
- std::vector<DataArrayDouble *> arrs=self->getArrays();
- for(std::vector<DataArrayDouble *>::iterator it=arrs.begin();it!=arrs.end();it++)
- if(*it)
- (*it)->incrRef();
- int sz=arrs.size();
- PyObject *ret=PyTuple_New(sz);
- for(int i=0;i<sz;i++)
- {
- if(arrs[i])
- PyTuple_SetItem(ret,i,SWIG_NewPointerObj(SWIG_as_voidptr(arrs[i]),SWIGTYPE_p_MEDCoupling__DataArrayDouble, SWIG_POINTER_OWN | 0 ));
- else
- PyTuple_SetItem(ret,i,SWIG_NewPointerObj(SWIG_as_voidptr(0),SWIGTYPE_p_MEDCoupling__DataArrayDouble, 0 | 0 ));
- }
- return ret;
- }
-
- void setArrays(PyObject *ls) throw(INTERP_KERNEL::Exception)
- {
- std::vector<const DataArrayDouble *> tmp;
- convertFromPyObjVectorOfObj<const DataArrayDouble *>(ls,SWIGTYPE_p_MEDCoupling__DataArrayDouble,"DataArrayDouble",tmp);
- int sz=tmp.size();
- std::vector<DataArrayDouble *> arrs(sz);
- for(int i=0;i<sz;i++)
- arrs[i]=const_cast<DataArrayDouble *>(tmp[i]);
- self->setArrays(arrs);
- }
-
- DataArrayDouble *getEndArray() throw(INTERP_KERNEL::Exception)
- {
- DataArrayDouble *ret=self->getEndArray();
- if(ret)
- ret->incrRef();
- return ret;
- }
-
- PyObject *getValueOn(PyObject *sl) const throw(INTERP_KERNEL::Exception)
- {
- double val;
- DataArrayDouble *a;
- DataArrayDoubleTuple *aa;
- std::vector<double> bb;
- int sw;
- const MEDCouplingMesh *mesh=self->getMesh();
- if(!mesh)
- throw INTERP_KERNEL::Exception("Python wrap of MEDCouplingFieldDouble::getValueOn : no underlying mesh !");
- int spaceDim=mesh->getSpaceDimension();
- const char msg[]="Python wrap of MEDCouplingFieldDouble::getValueOn : ";
- const double *spaceLoc=convertObjToPossibleCpp5_Safe(sl,sw,val,a,aa,bb,msg,1,spaceDim,true);
- //
- int sz=self->getNumberOfComponents();
- INTERP_KERNEL::AutoPtr<double> res=new double[sz];
- self->getValueOn(spaceLoc,res);
- return convertDblArrToPyList<double>(res,sz);
- }
-
- PyObject *getValueOnPos(int i, int j, int k) const throw(INTERP_KERNEL::Exception)
- {
- int sz=self->getNumberOfComponents();
- INTERP_KERNEL::AutoPtr<double> res=new double[sz];
- self->getValueOnPos(i,j,k,res);
- return convertDblArrToPyList<double>(res,sz);
- }
-
- DataArrayDouble *getValueOnMulti(PyObject *locs) const throw(INTERP_KERNEL::Exception)
- {
- const MEDCouplingMesh *mesh(self->getMesh());
- if(!mesh)
- throw INTERP_KERNEL::Exception("Python wrap MEDCouplingFieldDouble::getValueOnMulti : lying on a null mesh !");
- //
- int sw,nbPts;
- double v0; MEDCoupling::DataArrayDouble *v1(0); MEDCoupling::DataArrayDoubleTuple *v2(0); std::vector<double> 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);
- }
-
- PyObject *getValueOn(PyObject *sl, double time) const throw(INTERP_KERNEL::Exception)
- {
- double val;
- DataArrayDouble *a;
- DataArrayDoubleTuple *aa;
- std::vector<double> bb;
- int sw;
- const MEDCouplingMesh *mesh=self->getMesh();
- if(!mesh)
- throw INTERP_KERNEL::Exception("Python wrap of MEDCouplingFieldDouble::getValueOn : no underlying mesh !");
- int spaceDim=mesh->getSpaceDimension();
- const char msg[]="Python wrap of MEDCouplingFieldDouble::getValueOn : ";
- const double *spaceLoc=convertObjToPossibleCpp5_Safe(sl,sw,val,a,aa,bb,msg,1,spaceDim,true);
- //
- //
- int sz=self->getNumberOfComponents();
- INTERP_KERNEL::AutoPtr<double> res=new double[sz];
- self->getValueOn(spaceLoc,time,res);
- return convertDblArrToPyList<double>(res,sz);
- }
-
- void setValues(PyObject *li, PyObject *nbOfTuples=0, PyObject *nbOfComp=0) throw(INTERP_KERNEL::Exception)
- {
- if(self->getArray()!=0)
- MEDCoupling_DataArrayDouble_setValues__SWIG_0(self->getArray(),li,nbOfTuples,nbOfComp);
- else
- {
- MCAuto<DataArrayDouble> arr=DataArrayDouble::New();
- MEDCoupling_DataArrayDouble_setValues__SWIG_0(arr,li,nbOfTuples,nbOfComp);
- self->setArray(arr);
- }
- }
-
- 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 *getStartTime() throw(INTERP_KERNEL::Exception)
- {
- int tmp1,tmp2;
- double tmp0=self->getStartTime(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 *getEndTime() throw(INTERP_KERNEL::Exception)
- {
- int tmp1,tmp2;
- double tmp0=self->getEndTime(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 *accumulate() const throw(INTERP_KERNEL::Exception)
- {
- int sz=self->getNumberOfComponents();
- INTERP_KERNEL::AutoPtr<double> tmp=new double[sz];
- self->accumulate(tmp);
- return convertDblArrToPyList<double>(tmp,sz);
- }
- PyObject *integral(bool isWAbs) const throw(INTERP_KERNEL::Exception)
- {
- int sz=self->getNumberOfComponents();
- INTERP_KERNEL::AutoPtr<double> tmp=new double[sz];
- self->integral(isWAbs,tmp);
- return convertDblArrToPyList<double>(tmp,sz);
- }
- PyObject *getWeightedAverageValue(bool isWAbs=true) const throw(INTERP_KERNEL::Exception)
- {
- int sz=self->getNumberOfComponents();
- INTERP_KERNEL::AutoPtr<double> tmp=new double[sz];
- self->getWeightedAverageValue(tmp,isWAbs);
- return convertDblArrToPyList<double>(tmp,sz);
- }
- PyObject *normL1() const throw(INTERP_KERNEL::Exception)
- {
- int sz=self->getNumberOfComponents();
- INTERP_KERNEL::AutoPtr<double> tmp=new double[sz];
- self->normL1(tmp);
- return convertDblArrToPyList<double>(tmp,sz);
- }
- PyObject *normL2() const throw(INTERP_KERNEL::Exception)
- {
- int sz=self->getNumberOfComponents();
- INTERP_KERNEL::AutoPtr<double> tmp=new double[sz];
- self->normL2(tmp);
- return convertDblArrToPyList<double>(tmp,sz);
- }
- void renumberCells(PyObject *li, bool check=true) throw(INTERP_KERNEL::Exception)
- {
- int szArr,sw,iTypppArr;
- std::vector<int> stdvecTyyppArr;
- const int *tmp=convertIntStarLikePyObjToCppIntStar(li,sw,szArr,iTypppArr,stdvecTyyppArr);
- self->renumberCells(tmp,check);
- }
-
- void renumberCellsWithoutMesh(PyObject *li, bool check=true) throw(INTERP_KERNEL::Exception)
- {
- int szArr,sw,iTypppArr;
- std::vector<int> stdvecTyyppArr;
- const int *tmp=convertIntStarLikePyObjToCppIntStar(li,sw,szArr,iTypppArr,stdvecTyyppArr);
- self->renumberCellsWithoutMesh(tmp,check);
- }
-
- void renumberNodes(PyObject *li, double eps=1e-15) throw(INTERP_KERNEL::Exception)
- {
- int szArr,sw,iTypppArr;
- std::vector<int> stdvecTyyppArr;
- const int *tmp=convertIntStarLikePyObjToCppIntStar(li,sw,szArr,iTypppArr,stdvecTyyppArr);
- self->renumberNodes(tmp,eps);
- }
-
- void renumberNodesWithoutMesh(PyObject *li, int newNbOfNodes, double eps=1e-15) throw(INTERP_KERNEL::Exception)
- {
- int szArr,sw,iTypppArr;
- std::vector<int> stdvecTyyppArr;
- const int *tmp=convertIntStarLikePyObjToCppIntStar(li,sw,szArr,iTypppArr,stdvecTyyppArr);
- self->renumberNodesWithoutMesh(tmp,newNbOfNodes,eps);
- }
-
- MEDCouplingFieldDouble *buildSubPart(PyObject *li) const throw(INTERP_KERNEL::Exception)
- {
- return fieldT_buildSubPart(self,li);
- }
-
- MEDCouplingFieldDouble *__getitem__(PyObject *li) const throw(INTERP_KERNEL::Exception)
- {
- return fieldT__getitem__(self,li);
- }
-
- PyObject *getMaxValue2() const throw(INTERP_KERNEL::Exception)
- {
- DataArrayInt *tmp;
- 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_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ));
- return ret;
- }
-
- PyObject *getMinValue2() const throw(INTERP_KERNEL::Exception)
- {
- DataArrayInt *tmp;
- 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_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ));
- return ret;
- }
-
- MEDCouplingFieldDouble *keepSelectedComponents(PyObject *li) const throw(INTERP_KERNEL::Exception)
- {
- std::vector<int> tmp;
- convertPyToNewIntArr3(li,tmp);
- return self->keepSelectedComponents(tmp);
- }
-
- void setSelectedComponents(const MEDCouplingFieldDouble *f, PyObject *li) throw(INTERP_KERNEL::Exception)
- {
- std::vector<int> tmp;
- convertPyToNewIntArr3(li,tmp);
- self->setSelectedComponents(f,tmp);
- }
-
- MEDCouplingFieldDouble *extractSlice3D(PyObject *origin, PyObject *vec, double eps) const throw(INTERP_KERNEL::Exception)
- {
- double val,val2;
- DataArrayDouble *a,*a2;
- DataArrayDoubleTuple *aa,*aa2;
- std::vector<double> bb,bb2;
- int sw;
- int spaceDim=3;
- 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);
- //
- return self->extractSlice3D(orig,vect,eps);
- }
-
- MEDCouplingFieldDouble *__add__(PyObject *obj) throw(INTERP_KERNEL::Exception)
- {
- return MEDCoupling_MEDCouplingFieldDouble___add__Impl(self,obj);
- }
-
- MEDCouplingFieldDouble *__radd__(PyObject *obj) throw(INTERP_KERNEL::Exception)
- {
- return MEDCoupling_MEDCouplingFieldDouble___radd__Impl(self,obj);
- }
-
- MEDCouplingFieldDouble *__sub__(PyObject *obj) throw(INTERP_KERNEL::Exception)
- {
- const char msg[]="Unexpected situation in MEDCouplingFieldDouble.__sub__ ! Expecting a not null MEDCouplingFieldDouble or DataArrayDouble or DataArrayDoubleTuple instance, or a list of double, or a double.";
- 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_MEDCoupling__MEDCouplingFieldDouble,0|0)))
- {
- MEDCouplingFieldDouble *other=reinterpret_cast< MEDCoupling::MEDCouplingFieldDouble * >(argp);
- if(other)
- return (*self)-(*other);
- else
- throw INTERP_KERNEL::Exception(msg);
- }
- //
- double val;
- DataArrayDouble *a;
- DataArrayDoubleTuple *aa;
- std::vector<double> bb;
- int sw;
- convertDoubleStarLikePyObjToCpp_2(obj,sw,val,a,aa,bb);
- switch(sw)
- {
- case 1:
- {
- if(!self->getArray())
- throw INTERP_KERNEL::Exception(msg2);
- MCAuto<DataArrayDouble> ret=self->getArray()->deepCopy();
- ret->applyLin(1.,-val);
- MCAuto<MEDCouplingFieldDouble> ret2=self->clone(false);
- ret2->setArray(ret);
- return ret2.retn();
- }
- case 2:
- {
- if(!self->getArray())
- throw INTERP_KERNEL::Exception(msg2);
- MCAuto<DataArrayDouble> ret=DataArrayDouble::Substract(self->getArray(),a);
- MCAuto<MEDCouplingFieldDouble> ret2=self->clone(false);
- ret2->setArray(ret);
- return ret2.retn();
- }
- case 3:
- {
- if(!self->getArray())
- throw INTERP_KERNEL::Exception(msg2);
- MCAuto<DataArrayDouble> aaa=aa->buildDADouble(1,self->getNumberOfComponents());
- MCAuto<DataArrayDouble> ret=DataArrayDouble::Substract(self->getArray(),aaa);
- MCAuto<MEDCouplingFieldDouble> ret2=self->clone(false);
- ret2->setArray(ret);
- return ret2.retn();
- }
- case 4:
- {
- if(!self->getArray())
- throw INTERP_KERNEL::Exception(msg2);
- MCAuto<DataArrayDouble> aaa=DataArrayDouble::New(); aaa->useArray(&bb[0],false,CPP_DEALLOC,1,(int)bb.size());
- MCAuto<DataArrayDouble> ret=DataArrayDouble::Substract(self->getArray(),aaa);
- MCAuto<MEDCouplingFieldDouble> ret2=self->clone(false);
- ret2->setArray(ret);
- return ret2.retn();
- }
- default:
- { throw INTERP_KERNEL::Exception(msg); }
- }
- }
-
- MEDCouplingFieldDouble *__rsub__(PyObject *obj) throw(INTERP_KERNEL::Exception)
- {
- return MEDCoupling_MEDCouplingFieldDouble___rsub__Impl(self,obj);
- }
-
- MEDCouplingFieldDouble *__mul__(PyObject *obj) throw(INTERP_KERNEL::Exception)
- {
- return MEDCoupling_MEDCouplingFieldDouble___mul__Impl(self,obj);
- }
-
- MEDCouplingFieldDouble *__rmul__(PyObject *obj) throw(INTERP_KERNEL::Exception)
- {
- return MEDCoupling_MEDCouplingFieldDouble___rmul__Impl(self,obj);
- }
-
- MEDCouplingFieldDouble *__div__(PyObject *obj) throw(INTERP_KERNEL::Exception)
- {
- const char msg[]="Unexpected situation in MEDCouplingFieldDouble.__div__ ! Expecting a not null MEDCouplingFieldDouble or DataArrayDouble or DataArrayDoubleTuple instance, or a list of double, or a double.";
- 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_MEDCoupling__MEDCouplingFieldDouble,0|0)))
- {
- MEDCouplingFieldDouble *other=reinterpret_cast< MEDCoupling::MEDCouplingFieldDouble * >(argp);
- if(other)
- return (*self)/(*other);
- else
- throw INTERP_KERNEL::Exception(msg);
- }
- //
- double val;
- DataArrayDouble *a;
- DataArrayDoubleTuple *aa;
- std::vector<double> bb;
- int sw;
- convertDoubleStarLikePyObjToCpp_2(obj,sw,val,a,aa,bb);
- switch(sw)
- {
- case 1:
- {
- if(val==0.)
- throw INTERP_KERNEL::Exception("MEDCouplingFieldDouble.__div__ : trying to divide by zero !");
- if(!self->getArray())
- throw INTERP_KERNEL::Exception(msg2);
- MCAuto<DataArrayDouble> ret=self->getArray()->deepCopy();
- ret->applyLin(1./val,0);
- MCAuto<MEDCouplingFieldDouble> ret2=self->clone(false);
- ret2->setArray(ret);
- return ret2.retn();
- }
- case 2:
- {
- if(!self->getArray())
- throw INTERP_KERNEL::Exception(msg2);
- MCAuto<DataArrayDouble> ret=DataArrayDouble::Divide(self->getArray(),a);
- MCAuto<MEDCouplingFieldDouble> ret2=self->clone(false);
- ret2->setArray(ret);
- return ret2.retn();
- }
- case 3:
- {
- if(!self->getArray())
- throw INTERP_KERNEL::Exception(msg2);
- MCAuto<DataArrayDouble> aaa=aa->buildDADouble(1,self->getNumberOfComponents());
- MCAuto<DataArrayDouble> ret=DataArrayDouble::Divide(self->getArray(),aaa);
- MCAuto<MEDCouplingFieldDouble> ret2=self->clone(false);
- ret2->setArray(ret);
- return ret2.retn();
- }
- case 4:
- {
- if(!self->getArray())
- throw INTERP_KERNEL::Exception(msg2);
- MCAuto<DataArrayDouble> aaa=DataArrayDouble::New(); aaa->useArray(&bb[0],false,CPP_DEALLOC,1,(int)bb.size());
- MCAuto<DataArrayDouble> ret=DataArrayDouble::Divide(self->getArray(),aaa);
- MCAuto<MEDCouplingFieldDouble> ret2=self->clone(false);
- ret2->setArray(ret);
- return ret2.retn();
- }
- default:
- { throw INTERP_KERNEL::Exception(msg); }
- }
- }
-
- MEDCouplingFieldDouble *__rdiv__(PyObject *obj) throw(INTERP_KERNEL::Exception)
- {
- return MEDCoupling_MEDCouplingFieldDouble___rdiv__Impl(self,obj);
- }
-
- MEDCouplingFieldDouble *__pow__(PyObject *obj) throw(INTERP_KERNEL::Exception)
- {
- const char msg[]="Unexpected situation in MEDCouplingFieldDouble.__pow__ ! Expecting a not null MEDCouplingFieldDouble or DataArrayDouble or DataArrayDoubleTuple instance, or a list of double, or a double.";
- 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_MEDCoupling__MEDCouplingFieldDouble,0|0)))
- {
- MEDCouplingFieldDouble *other=reinterpret_cast< MEDCoupling::MEDCouplingFieldDouble * >(argp);
- if(other)
- return (*self)^(*other);
- else
- throw INTERP_KERNEL::Exception(msg);
- }
- //
- double val;
- DataArrayDouble *a;
- DataArrayDoubleTuple *aa;
- std::vector<double> bb;
- int sw;
- convertDoubleStarLikePyObjToCpp_2(obj,sw,val,a,aa,bb);
- switch(sw)
- {
- case 1:
- {
- if(!self->getArray())
- throw INTERP_KERNEL::Exception(msg2);
- MCAuto<DataArrayDouble> ret=self->getArray()->deepCopy();
- ret->applyPow(val);
- MCAuto<MEDCouplingFieldDouble> ret2=self->clone(false);
- ret2->setArray(ret);
- return ret2.retn();
- }
- case 2:
- {
- if(!self->getArray())
- throw INTERP_KERNEL::Exception(msg2);
- MCAuto<DataArrayDouble> ret=DataArrayDouble::Pow(self->getArray(),a);
- MCAuto<MEDCouplingFieldDouble> ret2=self->clone(false);
- ret2->setArray(ret);
- return ret2.retn();
- }
- case 3:
- {
- if(!self->getArray())
- throw INTERP_KERNEL::Exception(msg2);
- MCAuto<DataArrayDouble> aaa=aa->buildDADouble(1,self->getNumberOfComponents());
- MCAuto<DataArrayDouble> ret=DataArrayDouble::Pow(self->getArray(),aaa);
- MCAuto<MEDCouplingFieldDouble> ret2=self->clone(false);
- ret2->setArray(ret);
- return ret2.retn();
- }
- case 4:
- {
- if(!self->getArray())
- throw INTERP_KERNEL::Exception(msg2);
- MCAuto<DataArrayDouble> aaa=DataArrayDouble::New(); aaa->useArray(&bb[0],false,CPP_DEALLOC,1,(int)bb.size());
- MCAuto<DataArrayDouble> ret=DataArrayDouble::Pow(self->getArray(),aaa);
- MCAuto<MEDCouplingFieldDouble> ret2=self->clone(false);
- ret2->setArray(ret);
- return ret2.retn();
- }
- default:
- { throw INTERP_KERNEL::Exception(msg); }
- }
- }
-
- MEDCouplingFieldDouble *__neg__() const throw(INTERP_KERNEL::Exception)
- {
- return self->negate();
- }
-
- PyObject *___iadd___(PyObject *trueSelf, PyObject *obj) throw(INTERP_KERNEL::Exception)
- {
- const char msg[]="Unexpected situation in MEDCouplingFieldDouble.__iadd__ ! Expecting a not null MEDCouplingFieldDouble or DataArrayDouble or DataArrayDoubleTuple instance, or a list of double, or a double.";
- 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_MEDCoupling__MEDCouplingFieldDouble,0|0)))
- {
- MEDCouplingFieldDouble *other=reinterpret_cast< MEDCoupling::MEDCouplingFieldDouble * >(argp);
- if(other)
- {
- *self+=*other;
- Py_XINCREF(trueSelf);
- return trueSelf;
- }
- else
- throw INTERP_KERNEL::Exception(msg);
- }
- //
- double val;
- DataArrayDouble *a;
- DataArrayDoubleTuple *aa;
- std::vector<double> bb;
- int sw;
- convertDoubleStarLikePyObjToCpp_2(obj,sw,val,a,aa,bb);
- switch(sw)
- {
- case 1:
- {
- if(!self->getArray())
- throw INTERP_KERNEL::Exception(msg2);
- self->getArray()->applyLin(1.,val);
- Py_XINCREF(trueSelf);
- return trueSelf;
- }
- case 2:
- {
- MCAuto<MEDCouplingFieldDouble> ret2=self->clone(false);
- ret2->setArray(a);
- *self+=*ret2;
- Py_XINCREF(trueSelf);
- return trueSelf;
- }
- case 3:
- {
- MCAuto<DataArrayDouble> aaa=aa->buildDADouble(1,self->getNumberOfComponents());
- MCAuto<MEDCouplingFieldDouble> ret2=self->clone(false);
- ret2->setArray(aaa);
- *self+=*ret2;
- Py_XINCREF(trueSelf);
- return trueSelf;
- }
- case 4:
- {
- if(!self->getArray())
- throw INTERP_KERNEL::Exception(msg2);
- MCAuto<DataArrayDouble> aaa=DataArrayDouble::New(); aaa->useArray(&bb[0],false,CPP_DEALLOC,1,(int)bb.size());
- self->getArray()->addEqual(aaa);
- Py_XINCREF(trueSelf);
- return trueSelf;
- }
- default:
- { throw INTERP_KERNEL::Exception(msg); }
- }
- }
-
- PyObject *___isub___(PyObject *trueSelf, PyObject *obj) throw(INTERP_KERNEL::Exception)
- {
- const char msg[]="Unexpected situation in MEDCouplingFieldDouble.__isub__ ! Expecting a not null MEDCouplingFieldDouble or DataArrayDouble or DataArrayDoubleTuple instance, or a list of double, or a double.";
- 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_MEDCoupling__MEDCouplingFieldDouble,0|0)))
- {
- MEDCouplingFieldDouble *other=reinterpret_cast< MEDCoupling::MEDCouplingFieldDouble * >(argp);
- if(other)
- {
- *self-=*other;
- Py_XINCREF(trueSelf);
- return trueSelf;
- }
- else
- throw INTERP_KERNEL::Exception(msg);
- }
- //
- double val;
- DataArrayDouble *a;
- DataArrayDoubleTuple *aa;
- std::vector<double> bb;
- int sw;
- convertDoubleStarLikePyObjToCpp_2(obj,sw,val,a,aa,bb);
- switch(sw)
- {
- case 1:
- {
- if(!self->getArray())
- throw INTERP_KERNEL::Exception(msg2);
- self->getArray()->applyLin(1.,-val);
- Py_XINCREF(trueSelf);
- return trueSelf;
- }
- case 2:
- {
- MCAuto<MEDCouplingFieldDouble> ret2=self->clone(false);
- ret2->setArray(a);
- *self-=*ret2;
- Py_XINCREF(trueSelf);
- return trueSelf;
- }
- case 3:
- {
- MCAuto<DataArrayDouble> aaa=aa->buildDADouble(1,self->getNumberOfComponents());
- MCAuto<MEDCouplingFieldDouble> ret2=self->clone(false);
- ret2->setArray(aaa);
- *self-=*ret2;
- Py_XINCREF(trueSelf);
- return trueSelf;
- }
- case 4:
- {
- if(!self->getArray())
- throw INTERP_KERNEL::Exception(msg2);
- MCAuto<DataArrayDouble> aaa=DataArrayDouble::New(); aaa->useArray(&bb[0],false,CPP_DEALLOC,1,(int)bb.size());
- self->getArray()->substractEqual(aaa);
- Py_XINCREF(trueSelf);
- return trueSelf;
- }
- default:
- { throw INTERP_KERNEL::Exception(msg); }
- }
- }
-
- PyObject *___imul___(PyObject *trueSelf, PyObject *obj) throw(INTERP_KERNEL::Exception)
- {
- const char msg[]="Unexpected situation in MEDCouplingFieldDouble.__imul__ ! Expecting a not null MEDCouplingFieldDouble or DataArrayDouble or DataArrayDoubleTuple instance, or a list of double, or a double.";
- 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_MEDCoupling__MEDCouplingFieldDouble,0|0)))
- {
- MEDCouplingFieldDouble *other=reinterpret_cast< MEDCoupling::MEDCouplingFieldDouble * >(argp);
- if(other)
- {
- *self*=*other;
- Py_XINCREF(trueSelf);
- return trueSelf;
- }
- else
- throw INTERP_KERNEL::Exception(msg);
- }
- //
- double val;
- DataArrayDouble *a;
- DataArrayDoubleTuple *aa;
- std::vector<double> bb;
- int sw;
- convertDoubleStarLikePyObjToCpp_2(obj,sw,val,a,aa,bb);
- switch(sw)
- {
- case 1:
- {
- if(!self->getArray())
- throw INTERP_KERNEL::Exception(msg2);
- self->getArray()->applyLin(val,0);
- Py_XINCREF(trueSelf);
- return trueSelf;
- }
- case 2:
- {
- MCAuto<MEDCouplingFieldDouble> ret2=self->clone(false);
- ret2->setArray(a);
- *self*=*ret2;
- Py_XINCREF(trueSelf);
- return trueSelf;
- }
- case 3:
- {
- MCAuto<DataArrayDouble> aaa=aa->buildDADouble(1,self->getNumberOfComponents());
- MCAuto<MEDCouplingFieldDouble> ret2=self->clone(false);
- ret2->setArray(aaa);
- *self*=*ret2;
- Py_XINCREF(trueSelf);
- return trueSelf;
- }
- case 4:
- {
- if(!self->getArray())
- throw INTERP_KERNEL::Exception(msg2);
- MCAuto<DataArrayDouble> aaa=DataArrayDouble::New(); aaa->useArray(&bb[0],false,CPP_DEALLOC,1,(int)bb.size());
- self->getArray()->multiplyEqual(aaa);
- Py_XINCREF(trueSelf);
- return trueSelf;
- }
- default:
- { throw INTERP_KERNEL::Exception(msg); }
- }
- }
-
- PyObject *___idiv___(PyObject *trueSelf, PyObject *obj) throw(INTERP_KERNEL::Exception)
- {
- const char msg[]="Unexpected situation in MEDCouplingFieldDouble.__idiv__ ! Expecting a not null MEDCouplingFieldDouble or DataArrayDouble or DataArrayDoubleTuple instance, or a list of double, or a double.";
- 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_MEDCoupling__MEDCouplingFieldDouble,0|0)))
- {
- MEDCouplingFieldDouble *other=reinterpret_cast< MEDCoupling::MEDCouplingFieldDouble * >(argp);
- if(other)
- {
- *self/=*other;
- Py_XINCREF(trueSelf);
- return trueSelf;
- }
- else
- throw INTERP_KERNEL::Exception(msg);
- }
- //
- double val;
- DataArrayDouble *a;
- DataArrayDoubleTuple *aa;
- std::vector<double> bb;
- int sw;
- convertDoubleStarLikePyObjToCpp_2(obj,sw,val,a,aa,bb);
- switch(sw)
- {
- case 1:
- {
- if(val==0.)
- throw INTERP_KERNEL::Exception("MEDCouplingFieldDouble.__idiv__ : trying to divide by zero !");
- if(!self->getArray())
- throw INTERP_KERNEL::Exception(msg2);
- self->getArray()->applyLin(1./val,0);
- Py_XINCREF(trueSelf);
- return trueSelf;
- }
- case 2:
- {
- MCAuto<MEDCouplingFieldDouble> ret2=self->clone(false);
- ret2->setArray(a);
- *self/=*ret2;
- Py_XINCREF(trueSelf);
- return trueSelf;
- }
- case 3:
- {
- MCAuto<DataArrayDouble> aaa=aa->buildDADouble(1,self->getNumberOfComponents());
- MCAuto<MEDCouplingFieldDouble> ret2=self->clone(false);
- ret2->setArray(aaa);
- *self/=*ret2;
- Py_XINCREF(trueSelf);
- return trueSelf;
- }
- case 4:
- {
- if(!self->getArray())
- throw INTERP_KERNEL::Exception(msg2);
- MCAuto<DataArrayDouble> aaa=DataArrayDouble::New(); aaa->useArray(&bb[0],false,CPP_DEALLOC,1,(int)bb.size());
- self->getArray()->divideEqual(aaa);
- Py_XINCREF(trueSelf);
- return trueSelf;
- }
- default:
- { throw INTERP_KERNEL::Exception(msg); }
- }
- }
-
- PyObject *___ipow___(PyObject *trueSelf, PyObject *obj) throw(INTERP_KERNEL::Exception)
- {
- const char msg[]="Unexpected situation in MEDCouplingFieldDouble.__ipow__ ! Expecting a not null MEDCouplingFieldDouble or DataArrayDouble or DataArrayDoubleTuple instance, or a list of double, or a double.";
- 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_MEDCoupling__MEDCouplingFieldDouble,0|0)))
- {
- MEDCouplingFieldDouble *other=reinterpret_cast< MEDCoupling::MEDCouplingFieldDouble * >(argp);
- if(other)
- {
- *self^=*other;
- Py_XINCREF(trueSelf);
- return trueSelf;
- }
- else
- throw INTERP_KERNEL::Exception(msg);
- }
- //
- double val;
- DataArrayDouble *a;
- DataArrayDoubleTuple *aa;
- std::vector<double> bb;
- int sw;
- convertDoubleStarLikePyObjToCpp_2(obj,sw,val,a,aa,bb);
- switch(sw)
- {
- case 1:
- {
- if(!self->getArray())
- throw INTERP_KERNEL::Exception(msg2);
- self->getArray()->applyPow(val);
- Py_XINCREF(trueSelf);
- return trueSelf;
- }
- case 2:
- {
- MCAuto<MEDCouplingFieldDouble> ret2=self->clone(false);
- ret2->setArray(a);
- *self^=*ret2;
- Py_XINCREF(trueSelf);
- return trueSelf;
- }
- case 3:
- {
- MCAuto<DataArrayDouble> aaa=aa->buildDADouble(1,self->getNumberOfComponents());
- MCAuto<MEDCouplingFieldDouble> ret2=self->clone(false);
- ret2->setArray(aaa);
- *self^=*ret2;
- Py_XINCREF(trueSelf);
- return trueSelf;
- }
- case 4:
- {
- if(!self->getArray())
- throw INTERP_KERNEL::Exception(msg2);
- MCAuto<DataArrayDouble> aaa=DataArrayDouble::New(); aaa->useArray(&bb[0],false,CPP_DEALLOC,1,(int)bb.size());
- self->getArray()->powEqual(aaa);
- Py_XINCREF(trueSelf);
- return trueSelf;
- }
- default:
- { throw INTERP_KERNEL::Exception(msg); }
- }
- }
-
- static MEDCouplingFieldDouble *MergeFields(PyObject *li) throw(INTERP_KERNEL::Exception)
- {
- std::vector<const MEDCouplingFieldDouble *> tmp;
- convertFromPyObjVectorOfObj<const MEDCoupling::MEDCouplingFieldDouble *>(li,SWIGTYPE_p_MEDCoupling__MEDCouplingFieldDouble,"MEDCouplingFieldDouble",tmp);
- return MEDCouplingFieldDouble::MergeFields(tmp);
- }
-
- static std::string WriteVTK(const char *fileName, PyObject *li, bool isBinary=true) throw(INTERP_KERNEL::Exception)
- {
- std::vector<const MEDCouplingFieldDouble *> tmp;
- convertFromPyObjVectorOfObj<const MEDCoupling::MEDCouplingFieldDouble *>(li,SWIGTYPE_p_MEDCoupling__MEDCouplingFieldDouble,"MEDCouplingFieldDouble",tmp);
- return MEDCouplingFieldDouble::WriteVTK(fileName,tmp,isBinary);
- }
-
- PyObject *getTinySerializationInformation() const throw(INTERP_KERNEL::Exception)
- {
- return field_getTinySerializationInformation<MEDCouplingFieldDouble>(self);
- }
-
- PyObject *serialize() const throw(INTERP_KERNEL::Exception)
- {
- return field_serialize<double>(self);
- }
-
- PyObject *__getstate__() const throw(INTERP_KERNEL::Exception)
- {
- return field__getstate__<MEDCouplingFieldDouble>(self,MEDCoupling_MEDCouplingFieldDouble_getTinySerializationInformation,MEDCoupling_MEDCouplingFieldDouble_serialize);
- }
-
- void __setstate__(PyObject *inp) throw(INTERP_KERNEL::Exception)
- {
- field__setstate__<double>(self,inp);
- }
- }
- };
-
- class MEDCouplingMultiFields : public RefCountObject, public TimeLabel
- {
- public:
- int getNumberOfFields() 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 checkConsistencyLight() const throw(INTERP_KERNEL::Exception);
- %extend
- {
- std::string __str__() const throw(INTERP_KERNEL::Exception)
- {
- return self->simpleRepr();
- }
- static MEDCouplingMultiFields *New(PyObject *li) throw(INTERP_KERNEL::Exception)
- {
- std::vector<const MEDCoupling::MEDCouplingFieldDouble *> tmp;
- convertFromPyObjVectorOfObj<const MEDCoupling::MEDCouplingFieldDouble *>(li,SWIGTYPE_p_MEDCoupling__MEDCouplingFieldDouble,"MEDCouplingFieldDouble",tmp);
- int sz=tmp.size();
- std::vector<MEDCouplingFieldDouble *> fs(sz);
- for(int i=0;i<sz;i++)
- fs[i]=const_cast<MEDCouplingFieldDouble *>(tmp[i]);
- return MEDCouplingMultiFields::New(fs);
- }
- MEDCouplingMultiFields(PyObject *li) throw(INTERP_KERNEL::Exception)
- {
- std::vector<const MEDCoupling::MEDCouplingFieldDouble *> tmp;
- convertFromPyObjVectorOfObj<const MEDCoupling::MEDCouplingFieldDouble *>(li,SWIGTYPE_p_MEDCoupling__MEDCouplingFieldDouble,"MEDCouplingFieldDouble",tmp);
- int sz=tmp.size();
- std::vector<MEDCouplingFieldDouble *> fs(sz);
- for(int i=0;i<sz;i++)
- fs[i]=const_cast<MEDCouplingFieldDouble *>(tmp[i]);
- return MEDCouplingMultiFields::New(fs);
- }
- PyObject *getFields() const
- {
- std::vector<const MEDCouplingFieldDouble *> fields=self->getFields();
- int sz=fields.size();
- PyObject *res = PyList_New(sz);
- for(int i=0;i<sz;i++)
- {
- if(fields[i])
- {
- fields[i]->incrRef();
- 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_MEDCoupling__MEDCouplingFieldDouble, 0 ));
- }
- }
- return res;
- }
- PyObject *getFieldAtPos(int id) const throw(INTERP_KERNEL::Exception)
- {
- const MEDCouplingFieldDouble *ret=self->getFieldAtPos(id);
- if(ret)
- {
- ret->incrRef();
- 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_MEDCoupling__MEDCouplingFieldDouble, 0 );
- }
- PyObject *getMeshes() const throw(INTERP_KERNEL::Exception)
- {
- std::vector<MEDCouplingMesh *> ms=self->getMeshes();
- int sz=ms.size();
- PyObject *res = PyList_New(sz);
- for(int i=0;i<sz;i++)
- {
- if(ms[i])
- {
- ms[i]->incrRef();
- PyList_SetItem(res,i,convertMesh(ms[i], SWIG_POINTER_OWN | 0 ));
- }
- else
- {
- PyList_SetItem(res,i,SWIG_NewPointerObj(SWIG_as_voidptr(0),SWIGTYPE_p_MEDCoupling__MEDCouplingUMesh, 0 ));
- }
- }
- return res;
- }
- PyObject *getDifferentMeshes() const throw(INTERP_KERNEL::Exception)
- {
- std::vector<int> refs;
- std::vector<MEDCouplingMesh *> ms=self->getDifferentMeshes(refs);
- int sz=ms.size();
- PyObject *res = PyList_New(sz);
- for(int i=0;i<sz;i++)
- {
- if(ms[i])
- {
- ms[i]->incrRef();
- PyList_SetItem(res,i,convertMesh(ms[i], SWIG_POINTER_OWN | 0 ));
- }
- else
- {
- PyList_SetItem(res,i,SWIG_NewPointerObj(SWIG_as_voidptr(0),SWIGTYPE_p_MEDCoupling__MEDCouplingUMesh, 0 ));
- }
- }
- //
- PyObject *ret=PyTuple_New(2);
- PyTuple_SetItem(ret,0,res);
- PyTuple_SetItem(ret,1,convertIntArrToPyList2(refs));
- return ret;
- }
- PyObject *getArrays() const throw(INTERP_KERNEL::Exception)
- {
- std::vector<DataArrayDouble *> ms=self->getArrays();
- int sz=ms.size();
- PyObject *res = PyList_New(sz);
- for(int i=0;i<sz;i++)
- {
- if(ms[i])
- {
- ms[i]->incrRef();
- 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_MEDCoupling__DataArrayDouble, 0 ));
- }
- }
- return res;
- }
- PyObject *getDifferentArrays() const throw(INTERP_KERNEL::Exception)
- {
- std::vector< std::vector<int> > refs;
- std::vector<DataArrayDouble *> ms=self->getDifferentArrays(refs);
- int sz=ms.size();
- PyObject *res = PyList_New(sz);
- PyObject *res2 = PyList_New(sz);
- for(int i=0;i<sz;i++)
- {
- if(ms[i])
- {
- ms[i]->incrRef();
- 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_MEDCoupling__DataArrayDouble, 0 ));
- }
- PyList_SetItem(res2,i,convertIntArrToPyList2(refs[i]));
- }
- //
- PyObject *ret=PyTuple_New(2);
- PyTuple_SetItem(ret,0,res);
- PyTuple_SetItem(ret,1,res2);
- return ret;
- }
- }
- };
-
- class MEDCouplingFieldInt : public MEDCouplingFieldT<int>
- {
- 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<MEDCouplingFieldInt>(self);
- }
-
- PyObject *serialize() const throw(INTERP_KERNEL::Exception)
- {
- return field_serialize<int>(self);
- }
-
- PyObject *__getstate__() const throw(INTERP_KERNEL::Exception)
- {
- return field__getstate__<MEDCouplingFieldInt>(self,MEDCoupling_MEDCouplingFieldInt_getTinySerializationInformation,MEDCoupling_MEDCouplingFieldInt_serialize);
- }
-
- void __setstate__(PyObject *inp) throw(INTERP_KERNEL::Exception)
- {
- field__setstate__<int>(self,inp);
- }
- }
- };
-
- class MEDCouplingFieldFloat : public MEDCouplingFieldT<float>
- {
- 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<MEDCouplingFieldFloat>(self);
- }
-
- PyObject *serialize() const throw(INTERP_KERNEL::Exception)
- {
- return field_serialize<float>(self);
- }
-
- PyObject *__getstate__() const throw(INTERP_KERNEL::Exception)
- {
- return field__getstate__<MEDCouplingFieldFloat>(self,MEDCoupling_MEDCouplingFieldFloat_getTinySerializationInformation,MEDCoupling_MEDCouplingFieldFloat_serialize);
- }
-
- void __setstate__(PyObject *inp) throw(INTERP_KERNEL::Exception)
- {
- field__setstate__<float>(self,inp);
- }
- }
- };
-
- class MEDCouplingDefinitionTime
- {
- public:
- MEDCouplingDefinitionTime();
- void assign(const MEDCouplingDefinitionTime& other);
- bool isEqual(const MEDCouplingDefinitionTime& other) const;
- double getTimeResolution() const;
- std::vector<double> getHotSpotsTime() const;
- %extend
- {
- std::string __str__() const throw(INTERP_KERNEL::Exception)
- {
- std::ostringstream oss;
- self->appendRepr(oss);
- return oss.str();
- }
-
- PyObject *getIdsOnTimeRight(double tm) const throw(INTERP_KERNEL::Exception)
- {
- int meshId,arrId,arrIdInField,fieldId;
- self->getIdsOnTimeRight(tm,meshId,arrId,arrIdInField,fieldId);
- PyObject *res=PyList_New(4);
- PyList_SetItem(res,0,PyInt_FromLong(meshId));
- PyList_SetItem(res,1,PyInt_FromLong(arrId));
- PyList_SetItem(res,2,PyInt_FromLong(arrIdInField));
- PyList_SetItem(res,3,PyInt_FromLong(fieldId));
- return res;
- }
-
- PyObject *getIdsOnTimeLeft(double tm) const throw(INTERP_KERNEL::Exception)
- {
- int meshId,arrId,arrIdInField,fieldId;
- self->getIdsOnTimeLeft(tm,meshId,arrId,arrIdInField,fieldId);
- PyObject *res=PyList_New(4);
- PyList_SetItem(res,0,PyInt_FromLong(meshId));
- PyList_SetItem(res,1,PyInt_FromLong(arrId));
- PyList_SetItem(res,2,PyInt_FromLong(arrIdInField));
- PyList_SetItem(res,3,PyInt_FromLong(fieldId));
- return res;
- }
- }
- };
-
- class MEDCouplingFieldOverTime : public MEDCouplingMultiFields
- {
- public:
- double getTimeTolerance() const throw(INTERP_KERNEL::Exception);
- MEDCouplingDefinitionTime getDefinitionTimeZone() const;
-
- %extend
- {
- MEDCouplingFieldOverTime(PyObject *li) throw(INTERP_KERNEL::Exception)
- {
- std::vector<const MEDCoupling::MEDCouplingFieldDouble *> tmp;
- convertFromPyObjVectorOfObj<const MEDCoupling::MEDCouplingFieldDouble *>(li,SWIGTYPE_p_MEDCoupling__MEDCouplingFieldDouble,"MEDCouplingFieldDouble",tmp);
- int sz=tmp.size();
- std::vector<MEDCouplingFieldDouble *> fs(sz);
- for(int i=0;i<sz;i++)
- fs[i]=const_cast<MEDCouplingFieldDouble *>(tmp[i]);
- return MEDCouplingFieldOverTime::New(fs);
- }
- std::string __str__() const throw(INTERP_KERNEL::Exception)
- {
- return self->simpleRepr();
- }
- static MEDCouplingFieldOverTime *New(PyObject *li) throw(INTERP_KERNEL::Exception)
- {
- std::vector<const MEDCoupling::MEDCouplingFieldDouble *> tmp;
- convertFromPyObjVectorOfObj<const MEDCoupling::MEDCouplingFieldDouble *>(li,SWIGTYPE_p_MEDCoupling__MEDCouplingFieldDouble,"MEDCouplingFieldDouble",tmp);
- int sz=tmp.size();
- std::vector<MEDCouplingFieldDouble *> fs(sz);
- for(int i=0;i<sz;i++)
- fs[i]=const_cast<MEDCouplingFieldDouble *>(tmp[i]);
- return MEDCouplingFieldOverTime::New(fs);
- }
- }
- };
-
- class MEDCouplingCartesianAMRMesh;
-
- class MEDCouplingCartesianAMRPatchGen : public RefCountObject
- {
- public:
- int getNumberOfCellsRecursiveWithOverlap() const throw(INTERP_KERNEL::Exception);
- int getNumberOfCellsRecursiveWithoutOverlap() const throw(INTERP_KERNEL::Exception);
- int getMaxNumberOfLevelsRelativeToThis() const throw(INTERP_KERNEL::Exception);
- %extend
- {
- MEDCouplingCartesianAMRMeshGen *getMesh() const throw(INTERP_KERNEL::Exception)
- {
- MEDCouplingCartesianAMRMeshGen *ret(const_cast<MEDCouplingCartesianAMRMeshGen *>(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<int> computeCellGridSt() const throw(INTERP_KERNEL::Exception);
- %extend
- {
- PyObject *getBLTRRange() const throw(INTERP_KERNEL::Exception)
- {
- const std::vector< std::pair<int,int> >& ret(self->getBLTRRange());
- return convertFromVectorPairInt(ret);
- }
-
- PyObject *getBLTRRangeRelativeToGF() const throw(INTERP_KERNEL::Exception)
- {
- std::vector< std::pair<int,int> > ret(self->getBLTRRangeRelativeToGF());
- return convertFromVectorPairInt(ret);
- }
-
- void addPatch(PyObject *bottomLeftTopRight, const std::vector<int>& factors) throw(INTERP_KERNEL::Exception)
- {
- std::vector< std::pair<int,int> > 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<MEDCouplingCartesianAMRPatch *>(mesh->getPatch(patchId)));
- if(ret)
- ret->incrRef();
- return ret;
- }
-
- void __delitem__(int patchId) throw(INTERP_KERNEL::Exception)
- {
- MEDCouplingCartesianAMRMeshGen *mesh(const_cast<MEDCouplingCartesianAMRMeshGen *>(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<int> getPositionRelativeTo(const MEDCouplingCartesianAMRMeshGen *ref) const throw(INTERP_KERNEL::Exception);
- int getSpaceDimension() const throw(INTERP_KERNEL::Exception);
- const std::vector<int>& getFactors() const throw(INTERP_KERNEL::Exception);
- void setFactors(const std::vector<int>& 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<int> 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<int>& factors) throw(INTERP_KERNEL::Exception);
- void createPatchesFromCriterion(const INTERP_KERNEL::BoxSplittingOptions& bso, const DataArrayDouble *criterion, const std::vector<int>& 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<int>& factors) throw(INTERP_KERNEL::Exception)
- {
- std::vector< std::pair<int,int> > 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<sz;i++)
- {
- MEDCouplingCartesianAMRPatch *elt(const_cast<MEDCouplingCartesianAMRPatch *>(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<int>& pos) const throw(INTERP_KERNEL::Exception)
- {
- const MEDCouplingCartesianAMRPatch *ret(self->getPatchAtPosition(pos));
- MEDCouplingCartesianAMRPatch *ret2(const_cast<MEDCouplingCartesianAMRPatch *>(ret));
- if(ret2)
- ret2->incrRef();
- return ret2;
- }
-
- MEDCouplingCartesianAMRMeshGen *getMeshAtPosition(const std::vector<int>& pos) const throw(INTERP_KERNEL::Exception)
- {
- const MEDCouplingCartesianAMRMeshGen *ret(self->getMeshAtPosition(pos));
- MEDCouplingCartesianAMRMeshGen *ret2(const_cast<MEDCouplingCartesianAMRMeshGen *>(ret));
- if(ret2)
- ret2->incrRef();
- return ret2;
- }
-
- virtual PyObject *positionRelativeToGodFather() const throw(INTERP_KERNEL::Exception)
- {
- std::vector<int> out1;
- std::vector< std::pair<int,int> > 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<MEDCouplingCartesianAMRPatchGen *> ps(self->retrieveGridsAt(absoluteLev));
- int sz(ps.size());
- PyObject *ret = PyList_New(sz);
- for(int i=0;i<sz;i++)
- PyList_SetItem(ret,i,convertCartesianAMRPatch(ps[i], SWIG_POINTER_OWN | 0 ));
- return ret;
- }
-
- MEDCouplingFieldDouble *buildCellFieldOnRecurseWithoutOverlapWithoutGhost(int ghostSz, PyObject *recurseArrs) const
- {
- std::vector<const DataArrayDouble *> inp;
- convertFromPyObjVectorOfObj<const MEDCoupling::DataArrayDouble *>(recurseArrs,SWIGTYPE_p_MEDCoupling__DataArrayDouble,"DataArrayDouble",inp);
- return self->buildCellFieldOnRecurseWithoutOverlapWithoutGhost(ghostSz,inp);
- }
-
- virtual MEDCouplingCartesianAMRMeshGen *getFather() const throw(INTERP_KERNEL::Exception)
- {
- MEDCouplingCartesianAMRMeshGen *ret(const_cast<MEDCouplingCartesianAMRMeshGen *>(self->getFather()));
- if(ret)
- ret->incrRef();
- return ret;
- }
-
- virtual MEDCouplingCartesianAMRMeshGen *getGodFather() const throw(INTERP_KERNEL::Exception)
- {
- MEDCouplingCartesianAMRMeshGen *ret(const_cast<MEDCouplingCartesianAMRMeshGen *>(self->getGodFather()));
- if(ret)
- ret->incrRef();
- return ret;
- }
-
- MEDCouplingCartesianAMRPatch *getPatch(int patchId) const throw(INTERP_KERNEL::Exception)
- {
- MEDCouplingCartesianAMRPatch *ret(const_cast<MEDCouplingCartesianAMRPatch *>(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<MEDCouplingIMesh *>(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<MEDCouplingCartesianAMRPatch *>(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<const MEDCoupling::DataArrayDouble *> arrsOnPatches2;
- convertFromPyObjVectorOfObj<const MEDCoupling::DataArrayDouble *>(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<const MEDCoupling::DataArrayDouble *> arrsOnPatches2;
- convertFromPyObjVectorOfObj<const MEDCoupling::DataArrayDouble *>(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<int> bb0;
- nodeStrctPtr=convertIntStarLikePyObjToCppIntStar(nodeStrct,sw,sz,val0,bb0);
- //
- double val,val2;
- std::vector<double> 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<const INTERP_KERNEL::BoxSplittingOptions *> inp0;
- convertFromPyObjVectorOfObj<const INTERP_KERNEL::BoxSplittingOptions *>(bso,SWIGTYPE_p_INTERP_KERNEL__BoxSplittingOptions,"BoxSplittingOptions",inp0);
- std::vector< std::vector<int> > 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<std::string,int> > fieldNamesCpp0;
- std::vector< std::pair<std::string, std::vector<std::string> > > 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<DataArrayDouble *>(ret));
- if(ret2)
- ret2->incrRef();
- return ret2;
- }
-
- void spillInfoOnComponents(PyObject *compNames) throw(INTERP_KERNEL::Exception)
- {
- std::vector< std::vector<std::string> > compNamesCpp;
- convertPyToVectorOfVectorOfString(compNames,compNamesCpp);
- self->spillInfoOnComponents(compNamesCpp);
- }
-
- void spillNatures(PyObject *nfs) throw(INTERP_KERNEL::Exception)
- {
- std::vector<int> 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<NatureOfField> inp00(sz);
- for(std::size_t i=0;i<sz;i++)
- inp00[i]=(NatureOfField)inp0[i];
- self->spillNatures(inp00);
- }
-
- PyObject *retrieveFieldsOn(MEDCouplingCartesianAMRMeshGen *mesh) const throw(INTERP_KERNEL::Exception)
- {
- std::vector<DataArrayDouble *> ret(self->retrieveFieldsOn(mesh));
- int sz((int)ret.size());
- PyObject *retPy(PyList_New(sz));
- for(int i=0;i<sz;i++)
- PyList_SetItem(retPy,i,SWIG_NewPointerObj(SWIG_as_voidptr(ret[i]),SWIGTYPE_p_MEDCoupling__DataArrayDouble, SWIG_POINTER_OWN | 0 ));
- return retPy;
- }
- }
- };
-
- class DenseMatrix : public RefCountObject, public TimeLabel
- {
- public:
- static DenseMatrix *New(int nbRows, int nbCols) throw(INTERP_KERNEL::Exception);
- static DenseMatrix *New(DataArrayDouble *array, int nbRows, int nbCols) throw(INTERP_KERNEL::Exception);
- DenseMatrix *deepCopy() const throw(INTERP_KERNEL::Exception);
- DenseMatrix *shallowCpy() const throw(INTERP_KERNEL::Exception);
- //
- int getNumberOfRows() const throw(INTERP_KERNEL::Exception);
- int getNumberOfCols() const throw(INTERP_KERNEL::Exception);
- int getNbOfElems() const throw(INTERP_KERNEL::Exception);
- void reBuild(DataArrayDouble *array, int nbRows=-1, int nbCols=-1) throw(INTERP_KERNEL::Exception);
- void reShape(int nbRows, int nbCols) throw(INTERP_KERNEL::Exception);
- void transpose() throw(INTERP_KERNEL::Exception);
- //
- bool isEqual(const DenseMatrix& other, double eps) const throw(INTERP_KERNEL::Exception);
- DataArrayDouble *matVecMult(const DataArrayDouble *vec) const throw(INTERP_KERNEL::Exception);
- static DataArrayDouble *MatVecMult(const DenseMatrix *mat, const DataArrayDouble *vec) throw(INTERP_KERNEL::Exception);
- %extend
- {
- DenseMatrix(int nbRows, int nbCols) throw(INTERP_KERNEL::Exception)
- {
- return DenseMatrix::New(nbRows,nbCols);
- }
-
- DenseMatrix(DataArrayDouble *array, int nbRows, int nbCols) throw(INTERP_KERNEL::Exception)
- {
- return DenseMatrix::New(array,nbRows,nbCols);
- }
-
- PyObject *isEqualIfNotWhy(const DenseMatrix& other, double eps) const throw(INTERP_KERNEL::Exception)
- {
- std::string ret1;
- bool ret0=self->isEqualIfNotWhy(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<DataArrayDouble,double>(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):
- exec(open(__filename).read())
- pass
-%}
%module MEDCouplingRemapper
-%include "MEDCouplingImpl.i"
+%include "MEDCouplingCommon.i"
-%include "MEDCouplingRemapperImpl.i"
+%include "MEDCouplingRemapperCommon.i"
%pythoncode %{
def MEDCouplingDataArrayDoubleIadd(self,*args):
--- /dev/null
+// 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
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+
+#define MEDCOUPLING_EXPORT
+#define INTERPKERNEL_EXPORT
+#define MEDCOUPLINGREMAPPER_EXPORT
+
+%newobject MEDCoupling::MEDCouplingRemapper::transferField;
+%newobject MEDCoupling::MEDCouplingRemapper::reverseTransferField;
+
+%{
+#include "MEDCouplingRemapper.hxx"
+%}
+
+%include "InterpolationOptions.hxx"
+
+namespace MEDCoupling
+{
+ typedef enum
+ {
+ IK_ONLY_PREFERED = 0,
+ NOT_IK_ONLY_PREFERED = 1,
+ IK_ONLY_FORCED = 2,
+ NOT_IK_ONLY_FORCED =3
+ } InterpolationMatrixPolicy;
+
+ class MEDCouplingRemapper : public TimeLabel, public INTERP_KERNEL::InterpolationOptions
+ {
+ private:
+ void updateTime() const;
+ public:
+ MEDCouplingRemapper();
+ ~MEDCouplingRemapper();
+ int prepare(const MEDCouplingMesh *srcMesh, const MEDCouplingMesh *targetMesh, const std::string& method) throw(INTERP_KERNEL::Exception);
+ int prepareEx(const MEDCouplingFieldTemplate *src, const MEDCouplingFieldTemplate *target) throw(INTERP_KERNEL::Exception);
+ void transfer(const MEDCouplingFieldDouble *srcField, MEDCouplingFieldDouble *targetField, double dftValue) throw(INTERP_KERNEL::Exception);
+ void partialTransfer(const MEDCouplingFieldDouble *srcField, MEDCouplingFieldDouble *targetField) throw(INTERP_KERNEL::Exception);
+ void reverseTransfer(MEDCouplingFieldDouble *srcField, const MEDCouplingFieldDouble *targetField, double dftValue) throw(INTERP_KERNEL::Exception);
+ MEDCouplingFieldDouble *transferField(const MEDCouplingFieldDouble *srcField, double dftValue) throw(INTERP_KERNEL::Exception);
+ MEDCouplingFieldDouble *reverseTransferField(const MEDCouplingFieldDouble *targetField, double dftValue) throw(INTERP_KERNEL::Exception);
+ bool setOptionInt(const std::string& key, int value) throw(INTERP_KERNEL::Exception);
+ bool setOptionDouble(const std::string& key, double value) throw(INTERP_KERNEL::Exception);
+ bool setOptionString(const std::string& key, const std::string& value) throw(INTERP_KERNEL::Exception);
+ int getInterpolationMatrixPolicy() const throw(INTERP_KERNEL::Exception);
+ void setInterpolationMatrixPolicy(int newInterpMatPol) throw(INTERP_KERNEL::Exception);
+ //
+ int nullifiedTinyCoeffInCrudeMatrixAbs(double maxValAbs) throw(INTERP_KERNEL::Exception);
+ int nullifiedTinyCoeffInCrudeMatrix(double scaleFactor) throw(INTERP_KERNEL::Exception);
+ double getMaxValueInCrudeMatrix() const throw(INTERP_KERNEL::Exception);
+ int getNumberOfColsOfMatrix() const throw(INTERP_KERNEL::Exception);
+ static std::string BuildMethodFrom(const std::string& meth1, const std::string& meth2) throw(INTERP_KERNEL::Exception);
+ %extend
+ {
+ PyObject *getCrudeMatrix() const throw(INTERP_KERNEL::Exception)
+ {
+ const std::vector<std::map<int,double> >& m=self->getCrudeMatrix();
+ std::size_t sz=m.size();
+ PyObject *ret=PyList_New(sz);
+ for(std::size_t i=0;i<sz;i++)
+ {
+ const std::map<int,double>& row=m[i];
+ PyObject *ret0=PyDict_New();
+ for(std::map<int,double>::const_iterator it=row.begin();it!=row.end();it++)
+ PyDict_SetItem(ret0,PyInt_FromLong((*it).first),PyFloat_FromDouble((*it).second));
+ PyList_SetItem(ret,i,ret0);
+ }
+ return ret;
+ }
+#if defined(WITH_NUMPY) && defined(WITH_SCIPY)
+ PyObject *getCrudeCSRMatrix() const throw(INTERP_KERNEL::Exception)
+ {
+ return ToCSRMatrix(self->getCrudeMatrix(),self->getNumberOfColsOfMatrix());
+ }
+#endif
+ }
+ };
+}
+
+++ /dev/null
-// 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
-// License as published by the Free Software Foundation; either
-// version 2.1 of the License, or (at your option) any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// Lesser General Public License for more details.
-//
-// You should have received a copy of the GNU Lesser General Public
-// License along with this library; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-//
-// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
-
-#define MEDCOUPLING_EXPORT
-#define INTERPKERNEL_EXPORT
-#define MEDCOUPLINGREMAPPER_EXPORT
-
-%newobject MEDCoupling::MEDCouplingRemapper::transferField;
-%newobject MEDCoupling::MEDCouplingRemapper::reverseTransferField;
-
-%{
-#include "MEDCouplingRemapper.hxx"
-%}
-
-%include "InterpolationOptions.hxx"
-
-namespace MEDCoupling
-{
- typedef enum
- {
- IK_ONLY_PREFERED = 0,
- NOT_IK_ONLY_PREFERED = 1,
- IK_ONLY_FORCED = 2,
- NOT_IK_ONLY_FORCED =3
- } InterpolationMatrixPolicy;
-
- class MEDCouplingRemapper : public TimeLabel, public INTERP_KERNEL::InterpolationOptions
- {
- private:
- void updateTime() const;
- public:
- MEDCouplingRemapper();
- ~MEDCouplingRemapper();
- int prepare(const MEDCouplingMesh *srcMesh, const MEDCouplingMesh *targetMesh, const std::string& method) throw(INTERP_KERNEL::Exception);
- int prepareEx(const MEDCouplingFieldTemplate *src, const MEDCouplingFieldTemplate *target) throw(INTERP_KERNEL::Exception);
- void transfer(const MEDCouplingFieldDouble *srcField, MEDCouplingFieldDouble *targetField, double dftValue) throw(INTERP_KERNEL::Exception);
- void partialTransfer(const MEDCouplingFieldDouble *srcField, MEDCouplingFieldDouble *targetField) throw(INTERP_KERNEL::Exception);
- void reverseTransfer(MEDCouplingFieldDouble *srcField, const MEDCouplingFieldDouble *targetField, double dftValue) throw(INTERP_KERNEL::Exception);
- MEDCouplingFieldDouble *transferField(const MEDCouplingFieldDouble *srcField, double dftValue) throw(INTERP_KERNEL::Exception);
- MEDCouplingFieldDouble *reverseTransferField(const MEDCouplingFieldDouble *targetField, double dftValue) throw(INTERP_KERNEL::Exception);
- bool setOptionInt(const std::string& key, int value) throw(INTERP_KERNEL::Exception);
- bool setOptionDouble(const std::string& key, double value) throw(INTERP_KERNEL::Exception);
- bool setOptionString(const std::string& key, const std::string& value) throw(INTERP_KERNEL::Exception);
- int getInterpolationMatrixPolicy() const throw(INTERP_KERNEL::Exception);
- void setInterpolationMatrixPolicy(int newInterpMatPol) throw(INTERP_KERNEL::Exception);
- //
- int nullifiedTinyCoeffInCrudeMatrixAbs(double maxValAbs) throw(INTERP_KERNEL::Exception);
- int nullifiedTinyCoeffInCrudeMatrix(double scaleFactor) throw(INTERP_KERNEL::Exception);
- double getMaxValueInCrudeMatrix() const throw(INTERP_KERNEL::Exception);
- int getNumberOfColsOfMatrix() const throw(INTERP_KERNEL::Exception);
- static std::string BuildMethodFrom(const std::string& meth1, const std::string& meth2) throw(INTERP_KERNEL::Exception);
- %extend
- {
- PyObject *getCrudeMatrix() const throw(INTERP_KERNEL::Exception)
- {
- const std::vector<std::map<int,double> >& m=self->getCrudeMatrix();
- std::size_t sz=m.size();
- PyObject *ret=PyList_New(sz);
- for(std::size_t i=0;i<sz;i++)
- {
- const std::map<int,double>& row=m[i];
- PyObject *ret0=PyDict_New();
- for(std::map<int,double>::const_iterator it=row.begin();it!=row.end();it++)
- PyDict_SetItem(ret0,PyInt_FromLong((*it).first),PyFloat_FromDouble((*it).second));
- PyList_SetItem(ret,i,ret0);
- }
- return ret;
- }
-#if defined(WITH_NUMPY) && defined(WITH_SCIPY)
- PyObject *getCrudeCSRMatrix() const throw(INTERP_KERNEL::Exception)
- {
- return ToCSRMatrix(self->getCrudeMatrix(),self->getNumberOfColsOfMatrix());
- }
-#endif
- }
- };
-}
-
SET(SWIG_MODULE_MEDLoader_EXTRA_FLAGS "${NUMPY_DEFINITIONS};${SCIPY_DEFINITIONS}")
SET (MEDLoader_SWIG_DPYS_FILES
- MEDLoaderImpl.i
+ MEDLoaderCommon.i
MEDLoaderTypemaps.i)
INCLUDE_DIRECTORIES(
ENDIF(WIN32)
INSTALL(TARGETS _MEDLoader DESTINATION ${MEDCOUPLING_INSTALL_PYTHON})
-INSTALL(FILES MEDLoader.i MEDLoaderTypemaps.i MEDLoaderImpl.i MEDLoaderFinalize.i DESTINATION ${MEDCOUPLING_INSTALL_HEADERS})
+INSTALL(FILES MEDLoader.i MEDLoaderTypemaps.i MEDLoaderCommon.i MEDLoaderFinalize.i DESTINATION ${MEDCOUPLING_INSTALL_HEADERS})
SALOME_INSTALL_SCRIPTS(${CMAKE_CURRENT_BINARY_DIR}/MEDLoader.py ${MEDCOUPLING_INSTALL_PYTHON})
%module MEDLoader
-%include "MEDLoaderImpl.i"
+%include "MEDLoaderCommon.i"
%pythoncode %{
def MEDCouplingDataArrayDoubleIadd(self,*args):
--- /dev/null
+// 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
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+// Author : Anthony Geay (EDF R&D)
+
+#define MEDCOUPLING_EXPORT
+#define MEDLOADER_EXPORT
+
+#ifdef WITH_DOCSTRINGS
+%include "MEDLoader_doc.i"
+#endif
+
+%include "MEDCouplingCommon.i"
+
+%{
+#include "MEDLoader.hxx"
+#include "MEDFileJoint.hxx"
+#include "MEDFileMesh.hxx"
+#include "MEDFileField.hxx"
+#include "MEDFileParameter.hxx"
+#include "MEDFileData.hxx"
+#include "MEDFileEquivalence.hxx"
+#include "MEDFileEntities.hxx"
+#include "MEDFileMeshReadSelector.hxx"
+#include "MEDFileFieldOverView.hxx"
+#include "MEDLoaderTypemaps.i"
+#include "SauvReader.hxx"
+#include "SauvWriter.hxx"
+
+using namespace MEDCoupling;
+%}
+
+#if SWIG_VERSION >= 0x010329
+%template() std::vector<std::string>;
+#endif
+
+%typemap(out) MEDCoupling::MEDFileMesh*
+{
+ $result=convertMEDFileMesh($1,$owner);
+}
+
+%typemap(out) MEDCoupling::MEDFileParameter1TS*
+{
+ $result=convertMEDFileParameter1TS($1,$owner);
+}
+
+%typemap(out) MEDCoupling::MEDFileAnyTypeFieldMultiTS*
+{
+ $result=convertMEDFileFieldMultiTS($1,$owner);
+}
+
+%typemap(out) MEDCoupling::MEDFileAnyTypeField1TS*
+{
+ $result=convertMEDFileField1TS($1,$owner);
+}
+
+%typemap(out) MEDCoupling::MEDMeshMultiLev*
+{
+ $result=convertMEDMeshMultiLev($1,$owner);
+}
+
+%newobject ReadUMeshFromFamiliesSwig;
+%newobject ReadUMeshFromGroupsSwig;
+%newobject ReadFieldSwig;
+%newobject MEDCoupling::ReadUMeshFromFile;
+%newobject MEDCoupling::ReadMeshFromFile;
+%newobject MEDCoupling::ReadFieldCell;
+%newobject MEDCoupling::ReadFieldNode;
+%newobject MEDCoupling::ReadFieldGauss;
+%newobject MEDCoupling::ReadFieldGaussNE;
+%newobject MEDCoupling::MEDFileMesh::New;
+%newobject MEDCoupling::MEDFileMesh::createNewEmpty;
+%newobject MEDCoupling::MEDFileMesh::deepCopy;
+%newobject MEDCoupling::MEDFileMesh::shallowCpy;
+%newobject MEDCoupling::MEDFileMesh::getMeshAtLevel;
+%newobject MEDCoupling::MEDFileMesh::__getitem__;
+%newobject MEDCoupling::MEDFileMesh::getGroupArr;
+%newobject MEDCoupling::MEDFileMesh::getGroupsArr;
+%newobject MEDCoupling::MEDFileMesh::getFamilyArr;
+%newobject MEDCoupling::MEDFileMesh::getFamiliesArr;
+%newobject MEDCoupling::MEDFileMesh::getNodeGroupArr;
+%newobject MEDCoupling::MEDFileMesh::getNodeGroupsArr;
+%newobject MEDCoupling::MEDFileMesh::getNodeFamilyArr;
+%newobject MEDCoupling::MEDFileMesh::getNodeFamiliesArr;
+%newobject MEDCoupling::MEDFileMesh::getGlobalNumFieldAtLevel;
+%newobject MEDCoupling::MEDFileMesh::getAllFamiliesIdsReferenced;
+%newobject MEDCoupling::MEDFileMesh::computeAllFamilyIdsInUse;
+%newobject MEDCoupling::MEDFileMesh::getEquivalences;
+%newobject MEDCoupling::MEDFileMesh::cartesianize;
+%newobject MEDCoupling::MEDFileData::getJoints;
+%newobject MEDCoupling::MEDFileStructuredMesh::getImplicitFaceMesh;
+%newobject MEDCoupling::MEDFileUMesh::New;
+%newobject MEDCoupling::MEDFileUMesh::LoadPartOf;
+%newobject MEDCoupling::MEDFileUMesh::getCoords;
+%newobject MEDCoupling::MEDFileUMesh::getPartDefAtLevel;
+%newobject MEDCoupling::MEDFileUMesh::getGroup;
+%newobject MEDCoupling::MEDFileUMesh::getGroups;
+%newobject MEDCoupling::MEDFileUMesh::getFamily;
+%newobject MEDCoupling::MEDFileUMesh::getFamilies;
+%newobject MEDCoupling::MEDFileUMesh::getLevel0Mesh;
+%newobject MEDCoupling::MEDFileUMesh::getLevelM1Mesh;
+%newobject MEDCoupling::MEDFileUMesh::getLevelM2Mesh;
+%newobject MEDCoupling::MEDFileUMesh::getLevelM3Mesh;
+%newobject MEDCoupling::MEDFileUMesh::getDirectUndergroundSingleGeoTypeMesh;
+%newobject MEDCoupling::MEDFileUMesh::extractFamilyFieldOnGeoType;
+%newobject MEDCoupling::MEDFileUMesh::extractNumberFieldOnGeoType;
+%newobject MEDCoupling::MEDFileUMesh::zipCoords;
+%newobject MEDCoupling::MEDFileUMesh::deduceNodeSubPartFromCellSubPart;
+%newobject MEDCoupling::MEDFileUMesh::extractPart;
+%newobject MEDCoupling::MEDFileUMesh::buildExtrudedMesh;
+%newobject MEDCoupling::MEDFileUMesh::linearToQuadratic;
+%newobject MEDCoupling::MEDFileUMesh::quadraticToLinear;
+%newobject MEDCoupling::MEDFileUMesh::symmetry3DPlane;
+%newobject MEDCoupling::MEDFileUMesh::Aggregate;
+%newobject MEDCoupling::MEDFileUMesh::convertToExtrudedMesh;
+%newobject MEDCoupling::MEDFileCMesh::New;
+%newobject MEDCoupling::MEDFileCurveLinearMesh::New;
+%newobject MEDCoupling::MEDFileMeshMultiTS::New;
+%newobject MEDCoupling::MEDFileMeshMultiTS::deepCopy;
+%newobject MEDCoupling::MEDFileMeshMultiTS::getOneTimeStep;
+%newobject MEDCoupling::MEDFileMeshes::New;
+%newobject MEDCoupling::MEDFileMeshes::deepCopy;
+%newobject MEDCoupling::MEDFileMeshes::getMeshAtPos;
+%newobject MEDCoupling::MEDFileMeshes::getMeshWithName;
+%newobject MEDCoupling::MEDFileMeshes::__getitem__;
+%newobject MEDCoupling::MEDFileMeshes::__iter__;
+
+%newobject MEDCoupling::MEDFileMeshSupports::New;
+%newobject MEDCoupling::MEDFileMeshSupports::getSupMeshWithName;
+
+%newobject MEDCoupling::MEDFileStructureElements::New;
+
+%newobject MEDCoupling::MEDFileFields::New;
+%newobject MEDCoupling::MEDFileFields::NewAdv;
+%newobject MEDCoupling::MEDFileFields::NewWithDynGT;
+%newobject MEDCoupling::MEDFileFields::LoadPartOf;
+%newobject MEDCoupling::MEDFileFields::LoadSpecificEntities;
+%newobject MEDCoupling::MEDFileFields::deepCopy;
+%newobject MEDCoupling::MEDFileFields::shallowCpy;
+%newobject MEDCoupling::MEDFileFields::getFieldWithName;
+%newobject MEDCoupling::MEDFileFields::getFieldAtPos;
+%newobject MEDCoupling::MEDFileFields::partOfThisLyingOnSpecifiedMeshName;
+%newobject MEDCoupling::MEDFileFields::partOfThisLyingOnSpecifiedTimeSteps;
+%newobject MEDCoupling::MEDFileFields::partOfThisNotLyingOnSpecifiedTimeSteps;
+%newobject MEDCoupling::MEDFileFields::partOfThisOnStructureElements;
+%newobject MEDCoupling::MEDFileFields::__iter__;
+%newobject MEDCoupling::MEDFileFields::extractPart;
+
+%newobject MEDCoupling::MEDFileWritableStandAlone::serialize;
+%newobject MEDCoupling::MEDFileAnyTypeFieldMultiTS::New;
+%newobject MEDCoupling::MEDFileAnyTypeFieldMultiTS::deepCopy;
+%newobject MEDCoupling::MEDFileAnyTypeFieldMultiTS::shallowCpy;
+%newobject MEDCoupling::MEDFileAnyTypeFieldMultiTS::getTimeStepAtPos;
+%newobject MEDCoupling::MEDFileAnyTypeFieldMultiTS::getTimeStep;
+%newobject MEDCoupling::MEDFileAnyTypeFieldMultiTS::getTimeStepGivenTime;
+%newobject MEDCoupling::MEDFileAnyTypeFieldMultiTS::__iter__;
+%newobject MEDCoupling::MEDFileAnyTypeFieldMultiTS::extractPart;
+%newobject MEDCoupling::MEDFileAnyTypeFieldMultiTS::buildNewEmpty;
+%newobject MEDCoupling::MEDFileFieldMultiTS::New;
+%newobject MEDCoupling::MEDFileFieldMultiTS::LoadSpecificEntities;
+%newobject MEDCoupling::MEDFileFieldMultiTS::field;
+%newobject MEDCoupling::MEDFileFieldMultiTS::getFieldAtLevel;
+%newobject MEDCoupling::MEDFileFieldMultiTS::getFieldAtTopLevel;
+%newobject MEDCoupling::MEDFileFieldMultiTS::getFieldOnMeshAtLevel;
+%newobject MEDCoupling::MEDFileFieldMultiTS::getFieldAtLevelOld;
+%newobject MEDCoupling::MEDFileFieldMultiTS::getUndergroundDataArray;
+%newobject MEDCoupling::MEDFileFieldMultiTS::convertToInt;
+
+%newobject MEDCoupling::MEDFileIntFieldMultiTS::New;
+%newobject MEDCoupling::MEDFileIntFieldMultiTS::field;
+%newobject MEDCoupling::MEDFileIntFieldMultiTS::LoadSpecificEntities;
+%newobject MEDCoupling::MEDFileIntFieldMultiTS::getUndergroundDataArray;
+%newobject MEDCoupling::MEDFileIntFieldMultiTS::convertToDouble;
+%newobject MEDCoupling::MEDFileIntFieldMultiTS::getFieldAtLevel;
+%newobject MEDCoupling::MEDFileIntFieldMultiTS::getFieldAtTopLevel;
+%newobject MEDCoupling::MEDFileIntFieldMultiTS::getFieldOnMeshAtLevel;
+%newobject MEDCoupling::MEDFileIntFieldMultiTS::getFieldAtLevelOld;
+
+%newobject MEDCoupling::MEDFileFloatFieldMultiTS::New;
+%newobject MEDCoupling::MEDFileFloatFieldMultiTS::field;
+%newobject MEDCoupling::MEDFileFloatFieldMultiTS::LoadSpecificEntities;
+%newobject MEDCoupling::MEDFileFloatFieldMultiTS::getUndergroundDataArray;
+%newobject MEDCoupling::MEDFileFloatFieldMultiTS::convertToDouble;
+%newobject MEDCoupling::MEDFileFloatFieldMultiTS::getFieldAtLevel;
+%newobject MEDCoupling::MEDFileFloatFieldMultiTS::getFieldAtTopLevel;
+%newobject MEDCoupling::MEDFileFloatFieldMultiTS::getFieldOnMeshAtLevel;
+%newobject MEDCoupling::MEDFileFloatFieldMultiTS::getFieldAtLevelOld;
+
+%newobject MEDCoupling::MEDFileAnyTypeField1TS::New;
+%newobject MEDCoupling::MEDFileAnyTypeField1TS::NewAdv;
+%newobject MEDCoupling::MEDFileAnyTypeField1TS::shallowCpy;
+%newobject MEDCoupling::MEDFileAnyTypeField1TS::deepCopy;
+%newobject MEDCoupling::MEDFileAnyTypeField1TS::extractPart;
+%newobject MEDCoupling::MEDFileField1TS::New;
+%newobject MEDCoupling::MEDFileField1TS::field;
+%newobject MEDCoupling::MEDFileField1TS::getFieldAtLevel;
+%newobject MEDCoupling::MEDFileField1TS::getFieldAtTopLevel;
+%newobject MEDCoupling::MEDFileField1TS::getFieldOnMeshAtLevel;
+%newobject MEDCoupling::MEDFileField1TS::getFieldAtLevelOld;
+%newobject MEDCoupling::MEDFileField1TS::getUndergroundDataArray;
+%newobject MEDCoupling::MEDFileField1TS::convertToInt;
+
+%newobject MEDCoupling::MEDFileIntField1TS::New;
+%newobject MEDCoupling::MEDFileIntField1TS::field;
+%newobject MEDCoupling::MEDFileIntField1TS::getFieldAtLevel;
+%newobject MEDCoupling::MEDFileIntField1TS::getFieldAtTopLevel;
+%newobject MEDCoupling::MEDFileIntField1TS::getFieldOnMeshAtLevel;
+%newobject MEDCoupling::MEDFileIntField1TS::getFieldAtLevelOld;
+%newobject MEDCoupling::MEDFileIntField1TS::getUndergroundDataArray;
+%newobject MEDCoupling::MEDFileIntField1TS::convertToDouble;
+
+%newobject MEDCoupling::MEDFileFloatField1TS::New;
+%newobject MEDCoupling::MEDFileFloatField1TS::field;
+%newobject MEDCoupling::MEDFileFloatField1TS::getFieldAtLevel;
+%newobject MEDCoupling::MEDFileFloatField1TS::getFieldAtTopLevel;
+%newobject MEDCoupling::MEDFileFloatField1TS::getFieldOnMeshAtLevel;
+%newobject MEDCoupling::MEDFileFloatField1TS::getFieldAtLevelOld;
+%newobject MEDCoupling::MEDFileFloatField1TS::getUndergroundDataArray;
+%newobject MEDCoupling::MEDFileFloatField1TS::convertToDouble;
+
+%newobject MEDCoupling::MEDFileData::New;
+%newobject MEDCoupling::MEDFileData::deepCopy;
+%newobject MEDCoupling::MEDFileData::getMeshes;
+%newobject MEDCoupling::MEDFileData::getFields;
+%newobject MEDCoupling::MEDFileData::getParams;
+%newobject MEDCoupling::MEDFileData::Aggregate;
+
+%newobject MEDCoupling::MEDFileEntities::BuildFrom;
+
+%newobject MEDCoupling::MEDFileParameterDouble1TS::New;
+%newobject MEDCoupling::MEDFileParameterDouble1TS::deepCopy;
+%newobject MEDCoupling::MEDFileParameterMultiTS::New;
+%newobject MEDCoupling::MEDFileParameterMultiTS::deepCopy;
+%newobject MEDCoupling::MEDFileParameterMultiTS::getTimeStepAtPos;
+%newobject MEDCoupling::MEDFileParameterMultiTS::__getitem__;
+%newobject MEDCoupling::MEDFileParameters::New;
+%newobject MEDCoupling::MEDFileParameters::deepCopy;
+%newobject MEDCoupling::MEDFileParameters::getParamAtPos;
+%newobject MEDCoupling::MEDFileParameters::getParamWithName;
+%newobject MEDCoupling::MEDFileParameters::__getitem__;
+
+%newobject MEDCoupling::MEDFileJointCorrespondence::New;
+%newobject MEDCoupling::MEDFileJointCorrespondence::deepCopy;
+%newobject MEDCoupling::MEDFileJointCorrespondence::shallowCpy;
+%newobject MEDCoupling::MEDFileJointCorrespondence::getCorrespondence;
+%newobject MEDCoupling::MEDFileJointOneStep::New;
+%newobject MEDCoupling::MEDFileJointOneStep::deepCopy;
+%newobject MEDCoupling::MEDFileJointOneStep::shallowCpy;
+%newobject MEDCoupling::MEDFileJointOneStep::getCorrespondenceAtPos;
+%newobject MEDCoupling::MEDFileJointOneStep::__getitem__;
+%newobject MEDCoupling::MEDFileJoint::New;
+%newobject MEDCoupling::MEDFileJoint::deepCopy;
+%newobject MEDCoupling::MEDFileJoint::shallowCpy;
+%newobject MEDCoupling::MEDFileJoint::getStepAtPos;
+%newobject MEDCoupling::MEDFileJoint::__getitem__;
+%newobject MEDCoupling::MEDFileJoints::New;
+%newobject MEDCoupling::MEDFileJoints::deepCopy;
+%newobject MEDCoupling::MEDFileJoints::getJointAtPos;
+%newobject MEDCoupling::MEDFileJoints::getJointWithName;
+%newobject MEDCoupling::MEDFileJoints::__getitem__;
+%newobject MEDCoupling::MEDFileEquivalences::getEquivalence;
+%newobject MEDCoupling::MEDFileEquivalences::getEquivalenceWithName;
+%newobject MEDCoupling::MEDFileEquivalences::appendEmptyEquivalenceWithName;
+%newobject MEDCoupling::MEDFileEquivalencePair::initCell;
+%newobject MEDCoupling::MEDFileEquivalencePair::initNode;
+%newobject MEDCoupling::MEDFileEquivalencePair::getCell;
+%newobject MEDCoupling::MEDFileEquivalencePair::getNode;
+%newobject MEDCoupling::MEDFileEquivalenceData::getArray;
+%newobject MEDCoupling::MEDFileEquivalenceCell::getArray;
+
+%newobject MEDCoupling::SauvWriter::New;
+%newobject MEDCoupling::SauvReader::New;
+%newobject MEDCoupling::SauvReader::loadInMEDFileDS;
+
+%newobject MEDCoupling::MEDFileMeshStruct::New;
+%newobject MEDCoupling::MEDMeshMultiLev::prepare;
+%newobject MEDCoupling::MEDMeshMultiLev::buildDataArray;
+%newobject MEDCoupling::MEDMeshMultiLev::retrieveGlobalNodeIdsIfAny;
+%newobject MEDCoupling::MEDFileFastCellSupportComparator::New;
+%newobject MEDCoupling::MEDFileFastCellSupportComparator::buildFromScratchDataSetSupport;
+
+%feature("unref") MEDFileMesh "$this->decrRef();"
+%feature("unref") MEDFileUMesh "$this->decrRef();"
+%feature("unref") MEDFileCMesh "$this->decrRef();"
+%feature("unref") MEDFileMeshMultiTS "$this->decrRef();"
+%feature("unref") MEDFileMeshes "$this->decrRef();"
+%feature("unref") MEDFileFieldLoc "$this->decrRef();"
+%feature("unref") MEDFileAnyTypeField1TS "$this->decrRef();"
+%feature("unref") MEDFileField1TS "$this->decrRef();"
+%feature("unref") MEDFileIntField1TS "$this->decrRef();"
+%feature("unref") MEDFileFloatField1TS "$this->decrRef();"
+%feature("unref") MEDFileAnyTypeFieldMultiTS "$this->decrRef();"
+%feature("unref") MEDFileFieldMultiTS "$this->decrRef();"
+%feature("unref") MEDFileIntFieldMultiTS "$this->decrRef();"
+%feature("unref") MEDFileFloatFieldMultiTS "$this->decrRef();"
+%feature("unref") MEDFileMeshSupports "$this->decrRef();"
+%feature("unref") MEDFileStructureElements "$this->decrRef();"
+%feature("unref") MEDFileFields "$this->decrRef();"
+%feature("unref") MEDFileParameter1TS "$this->decrRef();"
+%feature("unref") MEDFileParameterDouble1TSWTI "$this->decrRef();"
+%feature("unref") MEDFileParameterDouble1TS "$this->decrRef();"
+%feature("unref") MEDFileParameterMultiTS "$this->decrRef();"
+%feature("unref") MEDFileParameters "$this->decrRef();"
+%feature("unref") MEDFileJointCorrespondence "$this->decrRef();"
+%feature("unref") MEDFileJointOneStep "$this->decrRef();"
+%feature("unref") MEDFileJoint "$this->decrRef();"
+%feature("unref") MEDFileJoints "$this->decrRef();"
+%feature("unref") MEDFileEquivalences "$this->decrRef();"
+%feature("unref") MEDFileEquivalencePair "$this->decrRef();"
+%feature("unref") MEDFileEquivalenceBase "$this->decrRef();"
+%feature("unref") MEDFileEquivalenceData "$this->decrRef();"
+%feature("unref") MEDFileEquivalenceCell "$this->decrRef();"
+%feature("unref") MEDFileEquivalenceNode "$this->decrRef();"
+%feature("unref") MEDFileData "$this->decrRef();"
+%feature("unref") SauvReader "$this->decrRef();"
+%feature("unref") SauvWriter "$this->decrRef();"
+%feature("unref") MEDFileFastCellSupportComparator "$this->decrRef();"
+%feature("unref") MEDMeshMultiLev "$this->decrRef();"
+%feature("unref") MEDUMeshMultiLev "$this->decrRef();"
+%feature("unref") MEDCMeshMultiLev "$this->decrRef();"
+%feature("unref") MEDCurveLinearMeshMultiLev "$this->decrRef();"
+%feature("unref") MEDFileMeshStruct "$this->decrRef();"
+
+namespace MEDCoupling
+{
+ bool HasXDR();
+ std::string MEDFileVersionStr() throw(INTERP_KERNEL::Exception);
+ std::string MEDFileVersionOfFileStr(const std::string& fileName) throw(INTERP_KERNEL::Exception);
+ void SetEpsilonForNodeComp(double val) throw(INTERP_KERNEL::Exception);
+ void SetCompPolicyForCell(int val) throw(INTERP_KERNEL::Exception);
+ void SetTooLongStrPolicy(int val) throw(INTERP_KERNEL::Exception);
+ void CheckFileForRead(const std::string& fileName) throw(INTERP_KERNEL::Exception);
+ std::vector<std::string> GetMeshNames(const std::string& fileName) throw(INTERP_KERNEL::Exception);
+ std::vector<std::string> GetMeshNamesOnField(const std::string& fileName, const std::string& fieldName) throw(INTERP_KERNEL::Exception);
+ std::vector<std::string> GetMeshGroupsNames(const std::string& fileName, const std::string& meshName) throw(INTERP_KERNEL::Exception);
+ std::vector<std::string> GetMeshFamiliesNames(const std::string& fileName, const std::string& meshName) throw(INTERP_KERNEL::Exception);
+ std::vector<std::string> GetMeshFamiliesNamesOnGroup(const std::string& fileName, const std::string& meshName, const std::string& grpName) throw(INTERP_KERNEL::Exception);
+ std::vector<std::string> GetMeshGroupsNamesOnFamily(const std::string& fileName, const std::string& meshName, const std::string& famName) throw(INTERP_KERNEL::Exception);
+ std::vector<std::string> GetAllFieldNamesOnMesh(const std::string& fileName, const std::string& meshName) throw(INTERP_KERNEL::Exception);
+ std::vector<std::string> GetAllFieldNames(const std::string& fileName) throw(INTERP_KERNEL::Exception);
+ std::vector<std::string> GetFieldNamesOnMesh(MEDCoupling::TypeOfField type, const std::string& fileName, const std::string& meshName) throw(INTERP_KERNEL::Exception);
+ std::vector<std::string> GetCellFieldNamesOnMesh(const std::string& fileName, const std::string& meshName) throw(INTERP_KERNEL::Exception);
+ std::vector<std::string> GetNodeFieldNamesOnMesh(const std::string& fileName, const std::string& meshName) throw(INTERP_KERNEL::Exception);
+ double GetTimeAttachedOnFieldIteration(const std::string& fileName, const std::string& fieldName, int iteration, int order) throw(INTERP_KERNEL::Exception);
+ void AssignStaticWritePropertiesTo(MEDCoupling::MEDFileWritable& obj) throw(INTERP_KERNEL::Exception);
+ MEDCoupling::MEDCouplingMesh *ReadMeshFromFile(const std::string& fileName, const std::string& meshName, int meshDimRelToMax=0) throw(INTERP_KERNEL::Exception);
+ MEDCoupling::MEDCouplingMesh *ReadMeshFromFile(const std::string& fileName, int meshDimRelToMax=0) throw(INTERP_KERNEL::Exception);
+ MEDCoupling::MEDCouplingUMesh *ReadUMeshFromFile(const std::string& fileName, const std::string& meshName, int meshDimRelToMax=0) throw(INTERP_KERNEL::Exception);
+ MEDCoupling::MEDCouplingUMesh *ReadUMeshFromFile(const std::string& fileName, int meshDimRelToMax=0) throw(INTERP_KERNEL::Exception);
+ int ReadUMeshDimFromFile(const std::string& fileName, const std::string& meshName) throw(INTERP_KERNEL::Exception);
+ MEDCoupling::MEDCouplingFieldDouble *ReadFieldCell(const std::string& fileName, const std::string& meshName, int meshDimRelToMax, const std::string& fieldName, int iteration, int order) throw(INTERP_KERNEL::Exception);
+ MEDCoupling::MEDCouplingFieldDouble *ReadFieldNode(const std::string& fileName, const std::string& meshName, int meshDimRelToMax, const std::string& fieldName, int iteration, int order) throw(INTERP_KERNEL::Exception);
+ MEDCoupling::MEDCouplingFieldDouble *ReadFieldGauss(const std::string& fileName, const std::string& meshName, int meshDimRelToMax, const std::string& fieldName, int iteration, int order) throw(INTERP_KERNEL::Exception);
+ MEDCoupling::MEDCouplingFieldDouble *ReadFieldGaussNE(const std::string& fileName, const std::string& meshName, int meshDimRelToMax, const std::string& fieldName, int iteration, int order) throw(INTERP_KERNEL::Exception);
+ void WriteMesh(const std::string& fileName, const MEDCoupling::MEDCouplingMesh *mesh, bool writeFromScratch) throw(INTERP_KERNEL::Exception);
+ void WriteUMesh(const std::string& fileName, const MEDCoupling::MEDCouplingUMesh *mesh, bool writeFromScratch) throw(INTERP_KERNEL::Exception);
+ void WriteUMeshDep(const std::string& fileName, const MEDCoupling::MEDCouplingUMesh *mesh, bool writeFromScratch) throw(INTERP_KERNEL::Exception);
+ void WriteField(const std::string& fileName, const MEDCoupling::MEDCouplingField *f, bool writeFromScratch) throw(INTERP_KERNEL::Exception);
+ void WriteFieldDep(const std::string& fileName, const MEDCoupling::MEDCouplingField *f, bool writeFromScratch) throw(INTERP_KERNEL::Exception);
+ void WriteFieldUsingAlreadyWrittenMesh(const std::string& fileName, const MEDCoupling::MEDCouplingField *f) throw(INTERP_KERNEL::Exception);
+}
+
+%rename (MEDFileVersion) MEDFileVersionSwig;
+%rename (GetFieldIterations) GetFieldIterationsSwig;
+%rename (GetAllFieldIterations) GetAllFieldIterationsSwig;
+%rename (GetCellFieldIterations) GetCellFieldIterationsSwig;
+%rename (GetNodeFieldIterations) GetNodeFieldIterationsSwig;
+%rename (GetComponentsNamesOfField) GetComponentsNamesOfFieldSwig;
+%rename (GetUMeshGlobalInfo) GetUMeshGlobalInfoSwig;
+%rename (ReadFieldsOnSameMesh) ReadFieldsOnSameMeshSwig;
+%rename (WriteUMeshesPartition) WriteUMeshesPartitionSwig;
+%rename (WriteUMeshesPartitionDep) WriteUMeshesPartitionDepSwig;
+%rename (WriteUMeshes) WriteUMeshesSwig;
+%rename (GetTypesOfField) GetTypesOfFieldSwig;
+%rename (ReadUMeshFromGroups) ReadUMeshFromGroupsSwig;
+%rename (ReadUMeshFromFamilies) ReadUMeshFromFamiliesSwig;
+%rename (ReadField) ReadFieldSwig;
+
+%inline
+{
+ PyObject *MEDFileVersionSwig() throw(INTERP_KERNEL::Exception)
+ {
+ int major,minor,release;
+ MEDCoupling::MEDFileVersion(major,minor,release);
+ PyObject *ret(PyTuple_New(3));
+ PyTuple_SetItem(ret,0,SWIG_From_int(major));
+ PyTuple_SetItem(ret,1,SWIG_From_int(minor));
+ PyTuple_SetItem(ret,2,SWIG_From_int(release));
+ return ret;
+ }
+
+ MEDCoupling::MEDCouplingField *ReadFieldSwig(const std::string& fileName) throw(INTERP_KERNEL::Exception)
+ {
+ MCAuto<MEDCoupling::MEDCouplingField> ret(MEDCoupling::ReadField(fileName));
+ return ret.retn();
+ }
+
+ MEDCoupling::MEDCouplingField *ReadFieldSwig(const std::string& fileName, const std::string& fieldName) throw(INTERP_KERNEL::Exception)
+ {
+ MCAuto<MEDCoupling::MEDCouplingField> ret(MEDCoupling::ReadField(fileName,fieldName));
+ return ret.retn();
+ }
+
+ MEDCoupling::MEDCouplingField *ReadFieldSwig(const std::string& fileName, const std::string& fieldName, int iteration, int order) throw(INTERP_KERNEL::Exception)
+ {
+ MCAuto<MEDCoupling::MEDCouplingField> ret(MEDCoupling::ReadField(fileName,fieldName,iteration,order));
+ return ret.retn();
+ }
+
+ MEDCoupling::MEDCouplingFieldDouble *ReadFieldSwig(MEDCoupling::TypeOfField type, const std::string& fileName, const std::string& meshName, int meshDimRelToMax, const std::string& fieldName, int iteration, int order) throw(INTERP_KERNEL::Exception)
+ {
+ MCAuto<MEDCoupling::MEDCouplingFieldDouble> ret(MEDCoupling::ReadField(type,fileName,meshName,meshDimRelToMax,fieldName,iteration,order));
+ return ret.retn();
+ }
+
+ PyObject *GetFieldIterationsSwig(MEDCoupling::TypeOfField type, const std::string& fileName, const std::string& meshName, const std::string& fieldName) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector< std::pair<int,int> > res=MEDCoupling::GetFieldIterations(type,fileName,meshName,fieldName);
+ PyObject *ret=PyList_New(res.size());
+ int rk=0;
+ for(std::vector< std::pair<int,int> >::const_iterator iter=res.begin();iter!=res.end();iter++,rk++)
+ {
+ PyObject *elt=PyTuple_New(2);
+ PyTuple_SetItem(elt,0,SWIG_From_int((*iter).first));
+ PyTuple_SetItem(elt,1,SWIG_From_int((*iter).second));
+ PyList_SetItem(ret,rk,elt);
+ }
+ return ret;
+ }
+
+ PyObject *GetAllFieldIterationsSwig(const std::string& fileName, const std::string& fieldName) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector< std::pair< std::pair<int,int>, double> > res=MEDCoupling::GetAllFieldIterations(fileName,fieldName);
+ PyObject *ret=PyList_New(res.size());
+ int rk=0;
+ for(std::vector< std::pair< std::pair<int,int>, double> >::const_iterator iter=res.begin();iter!=res.end();iter++,rk++)
+ {
+ PyObject *elt=PyTuple_New(3);
+ PyTuple_SetItem(elt,0,SWIG_From_int((*iter).first.first));
+ PyTuple_SetItem(elt,1,SWIG_From_int((*iter).first.second));
+ PyTuple_SetItem(elt,2,SWIG_From_double((*iter).second));
+ PyList_SetItem(ret,rk,elt);
+ }
+ return ret;
+ }
+
+ PyObject *GetCellFieldIterationsSwig(const std::string& fileName, const std::string& meshName, const std::string& fieldName) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector< std::pair<int,int> > res=MEDCoupling::GetCellFieldIterations(fileName,meshName,fieldName);
+ PyObject *ret=PyList_New(res.size());
+ int rk=0;
+ for(std::vector< std::pair<int,int> >::const_iterator iter=res.begin();iter!=res.end();iter++,rk++)
+ {
+ PyObject *elt=PyTuple_New(2);
+ PyTuple_SetItem(elt,0,SWIG_From_int((*iter).first));
+ PyTuple_SetItem(elt,1,SWIG_From_int((*iter).second));
+ PyList_SetItem(ret,rk,elt);
+ }
+ return ret;
+ }
+
+ PyObject *GetNodeFieldIterationsSwig(const std::string& fileName, const std::string& meshName, const std::string& fieldName) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector< std::pair<int,int> > res=MEDCoupling::GetNodeFieldIterations(fileName,meshName,fieldName);
+ PyObject *ret=PyList_New(res.size());
+ int rk=0;
+ for(std::vector< std::pair<int,int> >::const_iterator iter=res.begin();iter!=res.end();iter++,rk++)
+ {
+ PyObject *elt=PyTuple_New(2);
+ PyTuple_SetItem(elt,0,SWIG_From_int((*iter).first));
+ PyTuple_SetItem(elt,1,SWIG_From_int((*iter).second));
+ PyList_SetItem(ret,rk,elt);
+ }
+ return ret;
+ }
+
+ PyObject *GetComponentsNamesOfFieldSwig(const std::string& fileName, const std::string& fieldName) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector< std::pair<std::string,std::string> > res=MEDCoupling::GetComponentsNamesOfField(fileName,fieldName);
+ PyObject *ret=PyList_New(res.size());
+ int rk=0;
+ for(std::vector< std::pair<std::string,std::string> >::const_iterator iter=res.begin();iter!=res.end();iter++,rk++)
+ {
+ PyObject *elt=PyTuple_New(2);
+ PyTuple_SetItem(elt,0,PyString_FromString((*iter).first.c_str()));
+ PyTuple_SetItem(elt,1,PyString_FromString((*iter).second.c_str()));
+ PyList_SetItem(ret,rk,elt);
+ }
+ return ret;
+ }
+
+ PyObject *GetUMeshGlobalInfoSwig(const std::string& fileName, const std::string& meshName) throw(INTERP_KERNEL::Exception)
+ {
+ int meshDim,spaceDim,numberOfNodes;
+ std::vector< std::vector< std::pair<INTERP_KERNEL::NormalizedCellType,int> > > res=MEDCoupling::GetUMeshGlobalInfo(fileName,meshName,meshDim,spaceDim,numberOfNodes);
+ PyObject *ret=PyTuple_New(4);
+ PyObject *elt0=PyList_New(res.size());
+ int i=0;
+ for(std::vector< std::vector< std::pair<INTERP_KERNEL::NormalizedCellType,int> > >::const_iterator it=res.begin();it!=res.end();it++,i++)
+ {
+ const std::vector< std::pair<INTERP_KERNEL::NormalizedCellType,int> >&obj2=(*it);
+ int j=0;
+ PyObject *elt1=PyList_New(obj2.size());
+ for(std::vector< std::pair<INTERP_KERNEL::NormalizedCellType,int> >::const_iterator it2=obj2.begin();it2!=obj2.end();it2++,j++)
+ {
+ PyObject *elt2=PyTuple_New(2);
+ PyTuple_SetItem(elt2,0,SWIG_From_int((int)(*it2).first));
+ PyTuple_SetItem(elt2,1,SWIG_From_int((*it2).second));
+ PyList_SetItem(elt1,j,elt2);
+ }
+ PyList_SetItem(elt0,i,elt1);
+ }
+ PyTuple_SetItem(ret,0,elt0);
+ PyTuple_SetItem(ret,1,SWIG_From_int(meshDim));
+ PyTuple_SetItem(ret,2,SWIG_From_int(spaceDim));
+ PyTuple_SetItem(ret,3,SWIG_From_int(numberOfNodes));
+ return ret;
+ }
+
+ PyObject *ReadFieldsOnSameMeshSwig(MEDCoupling::TypeOfField type, const std::string& fileName, const std::string& meshName, int meshDimRelToMax,
+ const std::string& fieldName, PyObject *liIts) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<std::pair<int,int> > its=convertTimePairIdsFromPy(liIts);
+ std::vector<MEDCoupling::MEDCouplingFieldDouble *> res=MEDCoupling::ReadFieldsOnSameMesh(type,fileName,meshName,meshDimRelToMax,fieldName,its);
+ return convertFieldDoubleVecToPy(res);
+ }
+
+ void WriteUMeshesPartitionSwig(const std::string& fileName, const std::string& meshName, PyObject *li, bool writeFromScratch) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<const MEDCoupling::MEDCouplingUMesh *> v;
+ convertFromPyObjVectorOfObj<const MEDCoupling::MEDCouplingUMesh *>(li,SWIGTYPE_p_MEDCoupling__MEDCouplingUMesh,"MEDCouplingUMesh",v);
+ MEDCoupling::WriteUMeshesPartition(fileName,meshName,v,writeFromScratch);
+ }
+
+ void WriteUMeshesPartitionDepSwig(const std::string& fileName, const std::string& meshName, PyObject *li, bool writeFromScratch) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<const MEDCoupling::MEDCouplingUMesh *> v;
+ convertFromPyObjVectorOfObj<const MEDCoupling::MEDCouplingUMesh *>(li,SWIGTYPE_p_MEDCoupling__MEDCouplingUMesh,"MEDCouplingUMesh",v);
+ MEDCoupling::WriteUMeshesPartitionDep(fileName,meshName,v,writeFromScratch);
+ }
+
+ void WriteUMeshesSwig(const std::string& fileName, PyObject *li, bool writeFromScratch) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<const MEDCoupling::MEDCouplingUMesh *> v;
+ convertFromPyObjVectorOfObj<const MEDCoupling::MEDCouplingUMesh *>(li,SWIGTYPE_p_MEDCoupling__MEDCouplingUMesh,"MEDCouplingUMesh",v);
+ MEDCoupling::WriteUMeshes(fileName,v,writeFromScratch);
+ }
+
+ PyObject *GetTypesOfFieldSwig(const std::string& fileName, const std::string& meshName, const std::string& fieldName) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector< MEDCoupling::TypeOfField > v=MEDCoupling::GetTypesOfField(fileName,meshName,fieldName);
+ int size=v.size();
+ PyObject *ret=PyList_New(size);
+ for(int i=0;i<size;i++)
+ PyList_SetItem(ret,i,PyInt_FromLong((int)v[i]));
+ return ret;
+ }
+
+ MEDCoupling::MEDCouplingUMesh *ReadUMeshFromGroupsSwig(const std::string& fileName, const std::string& meshName, int meshDimRelToMax, PyObject *li) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<std::string> grps;
+ converPyListToVecString(li,grps);
+ return MEDCoupling::ReadUMeshFromGroups(fileName,meshName,meshDimRelToMax,grps);
+ }
+
+ MEDCoupling::MEDCouplingUMesh *ReadUMeshFromFamiliesSwig(const std::string& fileName, const std::string& meshName, int meshDimRelToMax, PyObject *li) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<std::string> fams;
+ converPyListToVecString(li,fams);
+ return MEDCoupling::ReadUMeshFromFamilies(fileName,meshName,meshDimRelToMax,fams);
+ }
+}
+
+namespace MEDCoupling
+{
+ class MEDFileWritable
+ {
+ public:
+ void copyOptionsFrom(const MEDFileWritable& other) const;
+ int getTooLongStrPolicy() const throw(INTERP_KERNEL::Exception);
+ void setTooLongStrPolicy(int newVal) throw(INTERP_KERNEL::Exception);
+ int getZipConnPolicy() throw(INTERP_KERNEL::Exception);
+ void setZipConnPolicy(int newVal) throw(INTERP_KERNEL::Exception);
+ };
+
+ class MEDFileWritableStandAlone : public MEDFileWritable
+ {
+ public:
+ void write(const std::string& fileName, int mode) const throw(INTERP_KERNEL::Exception);
+ void write30(const std::string& fileName, int mode) const throw(INTERP_KERNEL::Exception);
+ %extend
+ {
+ DataArrayByte *serialize() const throw(INTERP_KERNEL::Exception)
+ {
+ MCAuto<DataArrayByte> ret(self->serialize());
+ return ret.retn();
+ }
+
+ PyObject *__getstate__() throw(INTERP_KERNEL::Exception)
+ {
+ PyObject *ret(PyList_New(0));
+ return ret;
+ }
+
+ void __setstate__(PyObject *inp) throw(INTERP_KERNEL::Exception)
+ {
+ }
+ }
+ };
+
+ class MEDFileMeshReadSelector
+ {
+ public:
+ MEDFileMeshReadSelector();
+ MEDFileMeshReadSelector(unsigned int code);
+ unsigned int getCode() const;
+ void setCode(unsigned int newCode);
+ bool isCellFamilyFieldReading() const;
+ bool isNodeFamilyFieldReading() const;
+ bool isCellNameFieldReading() const;
+ bool isNodeNameFieldReading() const;
+ bool isCellNumFieldReading() const;
+ bool isNodeNumFieldReading() const;
+ bool isGlobalNodeNumFieldReading() const;
+ void setCellFamilyFieldReading(bool b);
+ void setNodeFamilyFieldReading(bool b);
+ void setCellNameFieldReading(bool b);
+ void setNodeNameFieldReading(bool b);
+ void setCellNumFieldReading(bool b);
+ void setNodeNumFieldReading(bool b);
+ void setGlobalNodeNumFieldReading(bool b);
+ %extend
+ {
+ std::string __str__() const throw(INTERP_KERNEL::Exception)
+ {
+ std::ostringstream oss;
+ self->reprAll(oss);
+ return oss.str();
+ }
+
+ std::string __repr__() const throw(INTERP_KERNEL::Exception)
+ {
+ std::ostringstream oss; oss << "MEDFileMeshReadSelector C++ instance at " << self << " (with code=" << self->getCode() << ").";
+ return oss.str();
+ }
+ }
+ };
+
+ class MEDFileJointCorrespondence : public RefCountObject, public MEDFileWritable
+ {
+ public:
+ static MEDFileJointCorrespondence *New() throw(INTERP_KERNEL::Exception);
+ static MEDFileJointCorrespondence *New(DataArrayInt* correspondence) // nodes
+ throw(INTERP_KERNEL::Exception);
+ static MEDFileJointCorrespondence *New(DataArrayInt* correspondence, // cells
+ INTERP_KERNEL::NormalizedCellType loc_geo_type,
+ INTERP_KERNEL::NormalizedCellType rem_geo_type)
+ throw(INTERP_KERNEL::Exception);
+ std::vector<const BigMemoryObject *> getDirectChildrenWithNull() const;
+ MEDFileJointCorrespondence *deepCopy() const;
+ MEDFileJointCorrespondence *shallowCpy() const;
+ void setIsNodal(bool isNodal);
+ bool getIsNodal() const;
+ bool isEqual(const MEDFileJointCorrespondence *other) const;
+ void setLocalGeometryType(INTERP_KERNEL::NormalizedCellType type);
+ INTERP_KERNEL::NormalizedCellType getLocalGeometryType() const;
+ void setRemoteGeometryType(INTERP_KERNEL::NormalizedCellType type);
+ INTERP_KERNEL::NormalizedCellType getRemoteGeometryType() const;
+ void setCorrespondence(DataArrayInt *corr) throw(INTERP_KERNEL::Exception);
+ void write(const std::string& fileName, int mode, const std::string& localMeshName, const std::string& jointName, int order, int iteration) const throw(INTERP_KERNEL::Exception);
+ std::string simpleRepr() const throw(INTERP_KERNEL::Exception);
+ %extend
+ {
+ MEDFileJointCorrespondence()
+ {
+ return MEDFileJointCorrespondence::New();
+ }
+ MEDFileJointCorrespondence(DataArrayInt* correspondence) throw(INTERP_KERNEL::Exception)
+ {
+ return MEDFileJointCorrespondence::New(correspondence);
+ }
+ MEDFileJointCorrespondence(DataArrayInt* correspondence, // cells
+ INTERP_KERNEL::NormalizedCellType loc_geo_type,
+ INTERP_KERNEL::NormalizedCellType rem_geo_type) throw(INTERP_KERNEL::Exception)
+ {
+ return MEDFileJointCorrespondence::New(correspondence, loc_geo_type, rem_geo_type);
+ }
+
+ std::string __str__() const throw(INTERP_KERNEL::Exception)
+ {
+ return self->simpleRepr();
+ }
+
+ DataArrayInt *getCorrespondence() const throw(INTERP_KERNEL::Exception)
+ {
+ const DataArrayInt *ret(self->getCorrespondence());
+ if(ret)
+ ret->incrRef();
+ return const_cast<DataArrayInt *>(ret);
+ }
+ }
+ };
+
+ class MEDFileJointOneStep : public RefCountObject, public MEDFileWritable
+ {
+ public:
+ static MEDFileJointOneStep *New(int dt=-1, int it=-1) throw(INTERP_KERNEL::Exception);
+ static MEDFileJointOneStep *New(const std::string& fileName, const std::string& mName, const std::string& jointName, int number=1) throw(INTERP_KERNEL::Exception);
+ MEDFileJointOneStep *deepCopy() const;
+ MEDFileJointOneStep *shallowCpy() const;
+ bool isEqual(const MEDFileJointOneStep *other) const;
+ void setOrder(int order);
+ int getOrder() const;
+ void setIteration(int it);
+ int getIteration() const;
+ void pushCorrespondence(MEDFileJointCorrespondence* correspondence);
+ int getNumberOfCorrespondences() const;
+ void write(const std::string& fileName, int mode, const std::string& localMeshName, const std::string& jointName) const throw(INTERP_KERNEL::Exception);
+ std::string simpleRepr() const throw(INTERP_KERNEL::Exception);
+ %extend
+ {
+ MEDFileJointOneStep()
+ {
+ return MEDFileJointOneStep::New();
+ }
+
+ MEDFileJointOneStep(const std::string& fileName, const std::string& mName, const std::string& jointName, int number) throw(INTERP_KERNEL::Exception)
+ {
+ return MEDFileJointOneStep::New(fileName,mName,jointName,number);
+ }
+
+ std::string __str__() const throw(INTERP_KERNEL::Exception)
+ {
+ return self->simpleRepr();
+ }
+
+ MEDFileJointCorrespondence *getCorrespondenceAtPos(int i) const throw(INTERP_KERNEL::Exception)
+ {
+ MEDFileJointCorrespondence *ret(self->getCorrespondenceAtPos(i));
+ if(ret)
+ ret->incrRef();
+ return ret;
+ }
+
+ MEDFileJointCorrespondence *__getitem__(int i) const throw(INTERP_KERNEL::Exception)
+ {
+ return MEDCoupling_MEDFileJointOneStep_getCorrespondenceAtPos(self,i);
+ }
+ }
+ };
+
+ class MEDFileJoint : public RefCountObject, public MEDFileWritableStandAlone
+ {
+ public:
+ static MEDFileJoint *New() throw(INTERP_KERNEL::Exception);
+ static MEDFileJoint *New(const std::string& fileName, const std::string& mName, int num) throw(INTERP_KERNEL::Exception);
+ static MEDFileJoint *New(const std::string& jointName, const std::string& locMeshName, const std::string& remoteMeshName, int remoteMeshNum) throw(INTERP_KERNEL::Exception);
+ MEDFileJoint *deepCopy() const;
+ MEDFileJoint *shallowCpy() const;
+ bool isEqual(const MEDFileJoint *other) const;
+ void setLocalMeshName(const std::string& name);
+ std::string getLocalMeshName() const;
+ void setRemoteMeshName(const std::string& name);
+ std::string getRemoteMeshName() const;
+ void setDescription(const std::string& name);
+ std::string getDescription() const;
+ void setJointName(const std::string& name);
+ std::string getJointName() const;
+ bool changeJointNames(const std::vector< std::pair<std::string,std::string> >& modifTab) throw(INTERP_KERNEL::Exception);
+ void setDomainNumber(const int& number);
+ int getDomainNumber() const;
+ void pushStep(MEDFileJointOneStep* step);
+ int getNumberOfSteps() const;
+ std::string simpleRepr() const;
+ %extend
+ {
+ MEDFileJoint()
+ {
+ return MEDFileJoint::New();
+ }
+
+ MEDFileJoint(const std::string& fileName, const std::string& mName, int num) throw(INTERP_KERNEL::Exception)
+ {
+ return MEDFileJoint::New(fileName,mName,num);
+ }
+
+ MEDFileJoint(const std::string& jointName, const std::string& locMeshName, const std::string& remoteMeshName, int remoteMeshNum) throw(INTERP_KERNEL::Exception)
+ {
+ return MEDFileJoint::New(jointName,locMeshName,remoteMeshName,remoteMeshNum);
+ }
+
+ std::string __str__() const throw(INTERP_KERNEL::Exception)
+ {
+ return self->simpleRepr();
+ }
+
+ MEDFileJointOneStep *getStepAtPos(int i) const throw(INTERP_KERNEL::Exception)
+ {
+ MEDFileJointOneStep *ret(self->getStepAtPos(i));
+ if(ret)
+ ret->incrRef();
+ return ret;
+ }
+
+ MEDFileJointOneStep *__getitem__(int i) throw(INTERP_KERNEL::Exception)
+ {
+ return MEDCoupling_MEDFileJoint_getStepAtPos(self,i);
+ }
+ }
+ };
+
+ class MEDFileJoints : public RefCountObject, public MEDFileWritableStandAlone
+ {
+ public:
+ static MEDFileJoints *New() throw(INTERP_KERNEL::Exception);
+ static MEDFileJoints *New(const std::string& fileName, const std::string& meshName) throw(INTERP_KERNEL::Exception);
+ MEDFileJoints *deepCopy() const;
+ std::string simpleRepr() const;
+ std::string getMeshName() const;
+ int getNumberOfJoints() const;
+ std::vector<std::string> getJointsNames() const;
+ bool changeJointNames(const std::vector< std::pair<std::string,std::string> >& modifTab) throw(INTERP_KERNEL::Exception);
+ void resize(int newSize) throw(INTERP_KERNEL::Exception);
+ void pushJoint(MEDFileJoint *joint);
+ void setJointAtPos(int i, MEDFileJoint *joint) throw(INTERP_KERNEL::Exception);
+ void destroyJointAtPos(int i) throw(INTERP_KERNEL::Exception);
+ %extend
+ {
+ MEDFileJoints()
+ {
+ return MEDFileJoints::New();
+ }
+
+ MEDFileJoints(const std::string& fileName, const std::string& meshName) throw(INTERP_KERNEL::Exception)
+ {
+ return MEDFileJoints::New(fileName,meshName);
+ }
+
+ std::string __str__() const throw(INTERP_KERNEL::Exception)
+ {
+ return self->simpleRepr();
+ }
+
+ MEDFileJoint *__getitem__(PyObject *obj) throw(INTERP_KERNEL::Exception)
+ {
+ static const char msg[]="MEDFileJoints::__getitem__ : only integer or string with meshname supported !";
+ if(PyInt_Check(obj))
+ {
+ MEDFileJoint *ret=self->getJointAtPos(InterpreteNegativeInt((int)PyInt_AS_LONG(obj),self->getNumberOfJoints()));
+ if(ret)
+ ret->incrRef();
+ return ret;
+ }
+ MEDFileJoint *ret(self->getJointWithName(convertPyObjectToStr(obj,msg)));
+ if(ret)
+ ret->incrRef();
+ return ret;
+ }
+
+ int __len__() const throw(INTERP_KERNEL::Exception)
+ {
+ return self->getNumberOfJoints();
+ }
+
+ MEDFileJoint *getJointAtPos(int i) const throw(INTERP_KERNEL::Exception)
+ {
+ MEDFileJoint *ret=self->getJointAtPos(i);
+ if(ret)
+ ret->incrRef();
+ return ret;
+ }
+
+ MEDFileJoint *getJointWithName(const std::string& paramName) const throw(INTERP_KERNEL::Exception)
+ {
+ MEDFileJoint *ret=self->getJointWithName(paramName);
+ if(ret)
+ ret->incrRef();
+ return ret;
+ }
+ }
+ };
+
+ class MEDFileEquivalenceBase : public RefCountObject, public MEDFileWritableStandAlone
+ {
+ private:
+ MEDFileEquivalenceBase();
+ };
+
+ class MEDFileEquivalenceData : public MEDFileEquivalenceBase
+ {
+ private:
+ MEDFileEquivalenceData();
+ public:
+ void setArray(DataArrayInt *data);
+ %extend
+ {
+ DataArrayInt *getArray()
+ {
+ DataArrayInt *ret(self->getArray());
+ if(ret) ret->incrRef();
+ return ret;
+ }
+ }
+ };
+
+ class MEDFileEquivalenceNode : public MEDFileEquivalenceData
+ {
+ private:
+ MEDFileEquivalenceNode();
+ };
+
+ class MEDFileEquivalenceCell : public MEDFileEquivalenceBase
+ {
+ private:
+ MEDFileEquivalenceCell();
+ public:
+ void clear();
+ std::size_t size() const;
+ void setArray(int meshDimRelToMax, DataArrayInt *da) throw(INTERP_KERNEL::Exception);
+ void setArrayForType(INTERP_KERNEL::NormalizedCellType type, DataArrayInt *da) throw(INTERP_KERNEL::Exception);
+ %extend
+ {
+ DataArrayInt *getArray(INTERP_KERNEL::NormalizedCellType type) throw(INTERP_KERNEL::Exception)
+ {
+ DataArrayInt *ret(self->getArray(type));
+ if(ret) ret->incrRef();
+ return ret;
+ }
+
+ PyObject *getTypes() const throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<INTERP_KERNEL::NormalizedCellType> result(self->getTypes());
+ std::vector<INTERP_KERNEL::NormalizedCellType>::const_iterator iL=result.begin();
+ PyObject *res=PyList_New(result.size());
+ for(int i=0;iL!=result.end(); i++, iL++)
+ PyList_SetItem(res,i,PyInt_FromLong(*iL));
+ return res;
+ }
+ }
+ };
+
+ class MEDFileEquivalencePair : public RefCountObject, public MEDFileWritableStandAlone
+ {
+ private:
+ MEDFileEquivalencePair();
+ public:
+ std::string getName() const;
+ void setName(const std::string& name);
+ std::string getDescription() const;
+ void setDescription(const std::string& descr);
+ void setArray(int meshDimRelToMaxExt, DataArrayInt *da);;
+ %extend
+ {
+ MEDFileEquivalenceCell *initCell()
+ {
+ MEDFileEquivalenceCell *ret(self->initCell());
+ if(ret) ret->incrRef();
+ return ret;
+ }
+
+ MEDFileEquivalenceNode *initNode()
+ {
+ MEDFileEquivalenceNode *ret(self->initNode());
+ if(ret) ret->incrRef();
+ return ret;
+ }
+
+ MEDFileEquivalenceCell *getCell()
+ {
+ MEDFileEquivalenceCell *ret(self->getCell());
+ if(ret) ret->incrRef();
+ return ret;
+ }
+
+ MEDFileEquivalenceNode *getNode()
+ {
+ MEDFileEquivalenceNode *ret(self->getNode());
+ if(ret) ret->incrRef();
+ return ret;
+ }
+ }
+ };
+
+ class MEDFileEquivalences : public RefCountObject, public MEDFileWritableStandAlone
+ {
+ private:
+ MEDFileEquivalences();
+ public:
+ int size() const;
+ std::vector<std::string> getEquivalenceNames() const throw(INTERP_KERNEL::Exception);
+ void killEquivalenceWithName(const std::string& name) throw(INTERP_KERNEL::Exception);
+ void killEquivalenceAt(int i) throw(INTERP_KERNEL::Exception);
+ void clear();
+ %extend
+ {
+ MEDFileEquivalencePair *getEquivalence(int i) throw(INTERP_KERNEL::Exception)
+ {
+ MEDFileEquivalencePair *ret(self->getEquivalence(i));
+ if(ret) ret->incrRef();
+ return ret;
+ }
+ MEDFileEquivalencePair *getEquivalenceWithName(const std::string& name) throw(INTERP_KERNEL::Exception)
+ {
+ MEDFileEquivalencePair *ret(self->getEquivalenceWithName(name));
+ if(ret) ret->incrRef();
+ return ret;
+ }
+
+ MEDFileEquivalencePair *appendEmptyEquivalenceWithName(const std::string& name) throw(INTERP_KERNEL::Exception)
+ {
+ MEDFileEquivalencePair *ret(self->appendEmptyEquivalenceWithName(name));
+ if(ret) ret->incrRef();
+ return ret;
+ }
+ }
+ };
+
+ class MEDFileMesh : public RefCountObject, public MEDFileWritableStandAlone
+ {
+ public:
+ static MEDFileMesh *New(const std::string& fileName, MEDFileMeshReadSelector *mrs=0) throw(INTERP_KERNEL::Exception);
+ static MEDFileMesh *New(const std::string& fileName, const std::string& mName, int dt=-1, int it=-1, MEDFileMeshReadSelector *mrs=0) throw(INTERP_KERNEL::Exception);
+ static MEDFileMesh *New(DataArrayByte *db) throw(INTERP_KERNEL::Exception);
+ virtual MEDFileMesh *createNewEmpty() const throw(INTERP_KERNEL::Exception);
+ virtual MEDFileMesh *deepCopy() const throw(INTERP_KERNEL::Exception);
+ virtual MEDFileMesh *shallowCpy() const throw(INTERP_KERNEL::Exception);
+ virtual void clearNonDiscrAttributes() const throw(INTERP_KERNEL::Exception);
+ void setName(const std::string& name);
+ std::string getName();
+ std::string getUnivName() const;
+ bool getUnivNameWrStatus() const;
+ void setUnivNameWrStatus(bool newStatus);
+ void setDescription(const std::string& name);
+ std::string getDescription() const;
+ void setOrder(int order);
+ int getOrder() const;
+ void setIteration(int it);
+ int getIteration();
+ void setTimeValue(double time);
+ void setTime(int dt, int it, double time);
+ double getTimeValue() const;
+ void setTimeUnit(const std::string& unit);
+ std::string getTimeUnit() const;
+ void setAxisType(MEDCouplingAxisType at);
+ MEDCouplingAxisType getAxisType() const;
+ virtual int getNumberOfNodes() const throw(INTERP_KERNEL::Exception);
+ virtual int getNumberOfCellsAtLevel(int meshDimRelToMaxExt) const throw(INTERP_KERNEL::Exception);
+ virtual bool hasImplicitPart() const throw(INTERP_KERNEL::Exception);
+ virtual int buildImplicitPartIfAny(INTERP_KERNEL::NormalizedCellType gt) const throw(INTERP_KERNEL::Exception);
+ virtual void releaseImplicitPartIfAny() const throw(INTERP_KERNEL::Exception);
+ virtual int getNumberOfCellsWithType(INTERP_KERNEL::NormalizedCellType ct) const throw(INTERP_KERNEL::Exception);
+ virtual std::vector<int> getFamArrNonEmptyLevelsExt() const throw(INTERP_KERNEL::Exception);
+ virtual std::vector<int> getNumArrNonEmptyLevelsExt() const throw(INTERP_KERNEL::Exception);
+ virtual std::vector<int> getNameArrNonEmptyLevelsExt() const throw(INTERP_KERNEL::Exception);
+ virtual std::vector<int> getDistributionOfTypes(int meshDimRelToMax) const throw(INTERP_KERNEL::Exception);
+ virtual MEDFileMesh *cartesianize() const throw(INTERP_KERNEL::Exception);
+ std::vector<int> getNonEmptyLevels() const throw(INTERP_KERNEL::Exception);
+ std::vector<int> getNonEmptyLevelsExt() const throw(INTERP_KERNEL::Exception);
+ int getSizeAtLevel(int meshDimRelToMaxExt) const throw(INTERP_KERNEL::Exception);
+ //
+ bool existsGroup(const std::string& groupName) const throw(INTERP_KERNEL::Exception);
+ bool existsFamily(int famId) const throw(INTERP_KERNEL::Exception);
+ bool existsFamily(const std::string& familyName) const throw(INTERP_KERNEL::Exception);
+ void setFamilyId(const std::string& familyName, int id) throw(INTERP_KERNEL::Exception);
+ void setFamilyIdUnique(const std::string& familyName, int id) throw(INTERP_KERNEL::Exception);
+ void addFamily(const std::string& familyName, int id) throw(INTERP_KERNEL::Exception);
+ void addFamilyOnGrp(const std::string& grpName, const std::string& famName) throw(INTERP_KERNEL::Exception);
+ virtual void createGroupOnAll(int meshDimRelToMaxExt, const std::string& groupName) throw(INTERP_KERNEL::Exception);
+ virtual bool keepFamIdsOnlyOnLevs(const std::vector<int>& famIds, const std::vector<int>& levs) throw(INTERP_KERNEL::Exception);
+ void copyFamGrpMapsFrom(const MEDFileMesh& other) throw(INTERP_KERNEL::Exception);
+ void clearGrpMap() throw(INTERP_KERNEL::Exception);
+ void clearFamMap() throw(INTERP_KERNEL::Exception);
+ void clearFamGrpMaps() throw(INTERP_KERNEL::Exception);
+ const std::map<std::string,int>& getFamilyInfo() const throw(INTERP_KERNEL::Exception);
+ const std::map<std::string, std::vector<std::string> >& getGroupInfo() const throw(INTERP_KERNEL::Exception);
+ std::vector<std::string> getFamiliesOnGroup(const std::string& name) const throw(INTERP_KERNEL::Exception);
+ std::vector<std::string> getFamiliesOnGroups(const std::vector<std::string>& grps) const throw(INTERP_KERNEL::Exception);
+ std::vector<int> getFamiliesIdsOnGroup(const std::string& name) const throw(INTERP_KERNEL::Exception);
+ void setFamiliesOnGroup(const std::string& name, const std::vector<std::string>& fams) throw(INTERP_KERNEL::Exception);
+ void setFamiliesIdsOnGroup(const std::string& name, const std::vector<int>& famIds) throw(INTERP_KERNEL::Exception);
+ std::vector<std::string> getGroupsOnFamily(const std::string& name) const throw(INTERP_KERNEL::Exception);
+ void setGroupsOnFamily(const std::string& famName, const std::vector<std::string>& grps) throw(INTERP_KERNEL::Exception);
+ std::vector<std::string> getGroupsNames() const throw(INTERP_KERNEL::Exception);
+ std::vector<std::string> getFamiliesNames() const throw(INTERP_KERNEL::Exception);
+ std::vector<std::string> getGroupsOnSpecifiedLev(int meshDimRelToMaxExt) const throw(INTERP_KERNEL::Exception);
+ std::vector<int> getGrpNonEmptyLevelsExt(const std::string& grp) const throw(INTERP_KERNEL::Exception);
+ std::vector<int> getGrpNonEmptyLevels(const std::string& grp) const throw(INTERP_KERNEL::Exception);
+ std::vector<int> getFamsNonEmptyLevels(const std::vector<std::string>& fams) const throw(INTERP_KERNEL::Exception);
+ std::vector<int> getFamsNonEmptyLevelsExt(const std::vector<std::string>& fams) const throw(INTERP_KERNEL::Exception);
+ std::vector<int> getGrpsNonEmptyLevels(const std::vector<std::string>& grps) const throw(INTERP_KERNEL::Exception);
+ std::vector<int> getGrpsNonEmptyLevelsExt(const std::vector<std::string>& grps) const throw(INTERP_KERNEL::Exception);
+ std::vector<int> getFamNonEmptyLevels(const std::string& fam) const throw(INTERP_KERNEL::Exception);
+ std::vector<int> getFamNonEmptyLevelsExt(const std::string& fam) const throw(INTERP_KERNEL::Exception);
+ std::vector<std::string> getFamiliesNamesWithFilePointOfView() const throw(INTERP_KERNEL::Exception);
+ static std::string GetMagicFamilyStr();
+ void assignFamilyNameWithGroupName() throw(INTERP_KERNEL::Exception);
+ std::vector<std::string> removeEmptyGroups() throw(INTERP_KERNEL::Exception);
+ void removeGroup(const std::string& name) throw(INTERP_KERNEL::Exception);
+ void removeFamily(const std::string& name) throw(INTERP_KERNEL::Exception);
+ std::vector<std::string> removeOrphanGroups() throw(INTERP_KERNEL::Exception);
+ std::vector<std::string> removeOrphanFamilies() throw(INTERP_KERNEL::Exception);
+ void removeFamiliesReferedByNoGroups() throw(INTERP_KERNEL::Exception);
+ void rearrangeFamilies() throw(INTERP_KERNEL::Exception);
+ void checkOrphanFamilyZero() const throw(INTERP_KERNEL::Exception);
+ void changeGroupName(const std::string& oldName, const std::string& newName) throw(INTERP_KERNEL::Exception);
+ void changeFamilyName(const std::string& oldName, const std::string& newName) throw(INTERP_KERNEL::Exception);
+ void changeFamilyId(int oldId, int newId) throw(INTERP_KERNEL::Exception);
+ void changeAllGroupsContainingFamily(const std::string& familyNameToChange, const std::vector<std::string>& newFamiliesNames) throw(INTERP_KERNEL::Exception);
+ void setFamilyInfo(const std::map<std::string,int>& info);
+ void setGroupInfo(const std::map<std::string, std::vector<std::string> >&info);
+ int getFamilyId(const std::string& name) const throw(INTERP_KERNEL::Exception);
+ int getMaxAbsFamilyId() const throw(INTERP_KERNEL::Exception);
+ int getMaxFamilyId() const throw(INTERP_KERNEL::Exception);
+ int getMinFamilyId() const throw(INTERP_KERNEL::Exception);
+ int getTheMaxAbsFamilyId() const throw(INTERP_KERNEL::Exception);
+ int getTheMaxFamilyId() const throw(INTERP_KERNEL::Exception);
+ int getTheMinFamilyId() const throw(INTERP_KERNEL::Exception);
+ virtual int getMaxAbsFamilyIdInArrays() const throw(INTERP_KERNEL::Exception);
+ virtual int getMaxFamilyIdInArrays() const throw(INTERP_KERNEL::Exception);
+ virtual int getMinFamilyIdInArrays() const throw(INTERP_KERNEL::Exception);
+ DataArrayInt *getAllFamiliesIdsReferenced() const throw(INTERP_KERNEL::Exception);
+ DataArrayInt *computeAllFamilyIdsInUse() const throw(INTERP_KERNEL::Exception);
+ std::vector<int> getFamiliesIds(const std::vector<std::string>& famNames) const throw(INTERP_KERNEL::Exception);
+ std::string getFamilyNameGivenId(int id) const throw(INTERP_KERNEL::Exception);
+ bool ensureDifferentFamIdsPerLevel() throw(INTERP_KERNEL::Exception);
+ void normalizeFamIdsTrio() throw(INTERP_KERNEL::Exception);
+ void normalizeFamIdsMEDFile() throw(INTERP_KERNEL::Exception);
+ virtual int getMeshDimension() const throw(INTERP_KERNEL::Exception);
+ virtual std::string simpleRepr() const throw(INTERP_KERNEL::Exception);
+ virtual std::string advancedRepr() const throw(INTERP_KERNEL::Exception);
+ //
+ virtual MEDCouplingMesh *getMeshAtLevel(int meshDimRelToMax, bool renum=false) const throw(INTERP_KERNEL::Exception);
+ virtual void setFamilyFieldArr(int meshDimRelToMaxExt, DataArrayInt *famArr) throw(INTERP_KERNEL::Exception);
+ virtual void setRenumFieldArr(int meshDimRelToMaxExt, DataArrayInt *renumArr) throw(INTERP_KERNEL::Exception);
+ virtual void setNameFieldAtLevel(int meshDimRelToMaxExt, DataArrayAsciiChar *nameArr) throw(INTERP_KERNEL::Exception);
+ virtual void setGlobalNumFieldAtLevel(int meshDimRelToMaxExt, DataArrayInt *globalNumArr) throw(INTERP_KERNEL::Exception);
+ virtual void addNodeGroup(const DataArrayInt *ids) throw(INTERP_KERNEL::Exception);
+ virtual void addGroup(int meshDimRelToMaxExt, const DataArrayInt *ids) throw(INTERP_KERNEL::Exception);
+ virtual DataArrayInt *getFamiliesArr(int meshDimRelToMaxExt, const std::vector<std::string>& fams, bool renum=false) const throw(INTERP_KERNEL::Exception);
+ virtual DataArrayInt *getGroupsArr(int meshDimRelToMaxExt, const std::vector<std::string>& grps, bool renum=false) const throw(INTERP_KERNEL::Exception);
+ virtual DataArrayInt *getGroupArr(int meshDimRelToMaxExt, const std::string& grp, bool renum=false) const throw(INTERP_KERNEL::Exception);
+ virtual DataArrayInt *getFamilyArr(int meshDimRelToMaxExt, const std::string& fam, bool renum=false) const throw(INTERP_KERNEL::Exception);
+ virtual DataArrayInt *getNodeGroupArr(const std::string& grp, bool renum=false) const throw(INTERP_KERNEL::Exception);
+ virtual DataArrayInt *getNodeGroupsArr(const std::vector<std::string>& grps, bool renum=false) const throw(INTERP_KERNEL::Exception);
+ virtual DataArrayInt *getNodeFamilyArr(const std::string& fam, bool renum=false) const throw(INTERP_KERNEL::Exception);
+ virtual DataArrayInt *getNodeFamiliesArr(const std::vector<std::string>& fams, bool renum=false) const throw(INTERP_KERNEL::Exception);
+ int getNumberOfJoints();
+ MEDFileJoints *getJoints();
+ void setJoints( MEDFileJoints* joints );
+ void initializeEquivalences();
+ void killEquivalences();
+ bool presenceOfStructureElements() const throw(INTERP_KERNEL::Exception);
+ void killStructureElements() throw(INTERP_KERNEL::Exception);
+ %extend
+ {
+ std::string __str__() const throw(INTERP_KERNEL::Exception)
+ {
+ return self->simpleRepr();
+ }
+
+ MEDCouplingMesh *__getitem__(int meshDimRelToMaxExt) const throw(INTERP_KERNEL::Exception)
+ {
+ return self->getMeshAtLevel(meshDimRelToMaxExt,false);
+ }
+
+ 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_int(tmp1));
+ PyList_SetItem(res,1,SWIG_From_int(tmp2));
+ PyList_SetItem(res,2,SWIG_From_double(tmp0));
+ return res;
+ }
+
+ virtual PyObject *isEqual(const MEDFileMesh *other, double eps) const throw(INTERP_KERNEL::Exception)
+ {
+ std::string what;
+ bool ret0=self->isEqual(other,eps,what);
+ PyObject *res=PyList_New(2);
+ PyObject *ret0Py=ret0?Py_True:Py_False;
+ Py_XINCREF(ret0Py);
+ PyList_SetItem(res,0,ret0Py);
+ PyList_SetItem(res,1,PyString_FromString(what.c_str()));
+ return res;
+ }
+
+ void setGroupsAtLevel(int meshDimRelToMaxExt, PyObject *li, bool renum=false) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<const DataArrayInt *> grps;
+ convertFromPyObjVectorOfObj<const MEDCoupling::DataArrayInt *>(li,SWIGTYPE_p_MEDCoupling__DataArrayInt,"DataArrayInt",grps);
+ self->setGroupsAtLevel(meshDimRelToMaxExt,grps,renum);
+ }
+
+ PyObject *areFamsEqual(const MEDFileMesh *other) const throw(INTERP_KERNEL::Exception)
+ {
+ std::string what;
+ bool ret0=self->areFamsEqual(other,what);
+ PyObject *res=PyList_New(2);
+ PyObject *ret0Py=ret0?Py_True:Py_False;
+ Py_XINCREF(ret0Py);
+ PyList_SetItem(res,0,ret0Py);
+ PyList_SetItem(res,1,PyString_FromString(what.c_str()));
+ return res;
+ }
+
+ PyObject *areGrpsEqual(const MEDFileMesh *other) const throw(INTERP_KERNEL::Exception)
+ {
+ std::string what;
+ bool ret0=self->areGrpsEqual(other,what);
+ PyObject *res=PyList_New(2);
+ PyObject *ret0Py=ret0?Py_True:Py_False;
+ Py_XINCREF(ret0Py);
+ PyList_SetItem(res,0,ret0Py);
+ PyList_SetItem(res,1,PyString_FromString(what.c_str()));
+ return res;
+ }
+
+ PyObject *getAllGeoTypes() const throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<INTERP_KERNEL::NormalizedCellType> result(self->getAllGeoTypes());
+ std::vector<INTERP_KERNEL::NormalizedCellType>::const_iterator iL=result.begin();
+ PyObject *res=PyList_New(result.size());
+ for(int i=0;iL!=result.end(); i++, iL++)
+ PyList_SetItem(res,i,PyInt_FromLong(*iL));
+ return res;
+ }
+
+ PyObject *getGeoTypesAtLevel(int meshDimRelToMax) const throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<INTERP_KERNEL::NormalizedCellType> result(self->getGeoTypesAtLevel(meshDimRelToMax));
+ std::vector<INTERP_KERNEL::NormalizedCellType>::const_iterator iL=result.begin();
+ PyObject *res=PyList_New(result.size());
+ for(int i=0;iL!=result.end(); i++, iL++)
+ PyList_SetItem(res,i,PyInt_FromLong(*iL));
+ return res;
+ }
+
+ PyObject *getFamilyFieldAtLevel(int meshDimRelToMaxExt) const throw(INTERP_KERNEL::Exception)
+ {
+ const DataArrayInt *tmp=self->getFamilyFieldAtLevel(meshDimRelToMaxExt);
+ if(tmp)
+ tmp->incrRef();
+ return SWIG_NewPointerObj(SWIG_as_voidptr(tmp),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 );
+ }
+
+ PyObject *getOrCreateAndGetFamilyFieldAtLevel(int meshDimRelToMaxExt) throw(INTERP_KERNEL::Exception)
+ {
+ const DataArrayInt *tmp=self->getOrCreateAndGetFamilyFieldAtLevel(meshDimRelToMaxExt);
+ if(tmp)
+ tmp->incrRef();
+ return SWIG_NewPointerObj(SWIG_as_voidptr(tmp),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 );
+ }
+
+ PyObject *getNumberFieldAtLevel(int meshDimRelToMaxExt) const throw(INTERP_KERNEL::Exception)
+ {
+ const DataArrayInt *tmp=self->getNumberFieldAtLevel(meshDimRelToMaxExt);
+ if(tmp)
+ tmp->incrRef();
+ return SWIG_NewPointerObj(SWIG_as_voidptr(tmp),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 );
+ }
+
+ PyObject *getRevNumberFieldAtLevel(int meshDimRelToMaxExt) const throw(INTERP_KERNEL::Exception)
+ {
+ const DataArrayInt *tmp=self->getRevNumberFieldAtLevel(meshDimRelToMaxExt);
+ if(tmp)
+ tmp->incrRef();
+ return SWIG_NewPointerObj(SWIG_as_voidptr(tmp),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 );
+ }
+
+ PyObject *getNameFieldAtLevel(int meshDimRelToMaxExt) const throw(INTERP_KERNEL::Exception)
+ {
+ const DataArrayAsciiChar *tmp=self->getNameFieldAtLevel(meshDimRelToMaxExt);
+ if(tmp)
+ tmp->incrRef();
+ return SWIG_NewPointerObj(SWIG_as_voidptr(tmp),SWIGTYPE_p_MEDCoupling__DataArrayAsciiChar, SWIG_POINTER_OWN | 0 );
+ }
+
+ PyObject *findOrCreateAndGiveFamilyWithId(int id, bool& created) throw(INTERP_KERNEL::Exception)
+ {
+ bool ret1;
+ std::string ret0=self->findOrCreateAndGiveFamilyWithId(id,ret1);
+ PyObject *ret=PyTuple_New(2);
+ PyTuple_SetItem(ret,0,PyString_FromString(ret0.c_str()));
+ PyTuple_SetItem(ret,1,SWIG_From_bool(ret1));
+ return ret;
+ }
+
+ PyObject *unPolyze() throw(INTERP_KERNEL::Exception)
+ {
+ DataArrayInt *ret3=0;
+ std::vector<int> ret1,ret2;
+ bool ret0=self->unPolyze(ret1,ret2,ret3);
+ PyObject *ret=PyTuple_New(4);
+ PyTuple_SetItem(ret,0,SWIG_From_bool(ret0));
+ //
+ PyObject *retLev1_0=PyList_New((int)ret1.size()/3);
+ for(int j=0;j<(int)ret1.size()/3;j++)
+ {
+ PyObject *retLev2=PyList_New(3);
+ PyList_SetItem(retLev2,0,SWIG_From_int(ret1[3*j]));
+ PyList_SetItem(retLev2,1,SWIG_From_int(ret1[3*j+1]));
+ PyList_SetItem(retLev2,2,SWIG_From_int(ret1[3*j+2]));
+ PyList_SetItem(retLev1_0,j,retLev2);
+ }
+ PyTuple_SetItem(ret,1,retLev1_0);
+ //
+ PyObject *retLev1_1=PyList_New((int)ret2.size()/3);
+ for(int j=0;j<(int)ret2.size()/3;j++)
+ {
+ PyObject *retLev2=PyList_New(3);
+ PyList_SetItem(retLev2,0,SWIG_From_int(ret2[3*j]));
+ PyList_SetItem(retLev2,1,SWIG_From_int(ret2[3*j+1]));
+ PyList_SetItem(retLev2,2,SWIG_From_int(ret2[3*j+2]));
+ PyList_SetItem(retLev1_1,j,retLev2);
+ }
+ PyTuple_SetItem(ret,2,retLev1_1);
+ //
+ PyTuple_SetItem(ret,3,SWIG_NewPointerObj(SWIG_as_voidptr(ret3),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ));
+ return ret;
+ }
+
+ MEDFileEquivalences *getEquivalences() throw(INTERP_KERNEL::Exception)
+ {
+ MEDFileEquivalences *ret(self->getEquivalences());
+ if(ret) ret->incrRef();
+ return ret;
+ }
+
+ virtual DataArrayInt *getGlobalNumFieldAtLevel(int meshDimRelToMaxExt) const throw(INTERP_KERNEL::Exception)
+ {
+ MCAuto<DataArrayInt> ret(self->getGlobalNumFieldAtLevel(meshDimRelToMaxExt));
+ return ret.retn();
+ }
+ }
+ };
+
+ class MEDFileUMesh : public MEDFileMesh
+ {
+ public:
+ static MEDFileUMesh *New(const std::string& fileName, const std::string& mName, int dt=-1, int it=-1, MEDFileMeshReadSelector *mrs=0) throw(INTERP_KERNEL::Exception);
+ static MEDFileUMesh *New(const std::string& fileName, MEDFileMeshReadSelector *mrs=0) throw(INTERP_KERNEL::Exception);
+ static MEDFileUMesh *New(const MEDCouplingMappedExtrudedMesh *mem) throw(INTERP_KERNEL::Exception);
+ static MEDFileUMesh *New(DataArrayByte *db) throw(INTERP_KERNEL::Exception);
+ static MEDFileUMesh *New();
+ static const char *GetSpeStr4ExtMesh();
+ ~MEDFileUMesh();
+ int getSpaceDimension() const throw(INTERP_KERNEL::Exception);
+ int getRelativeLevOnGeoType(INTERP_KERNEL::NormalizedCellType gt) const throw(INTERP_KERNEL::Exception);
+ void checkConsistency() const throw(INTERP_KERNEL::Exception);
+ void checkSMESHConsistency() const throw(INTERP_KERNEL::Exception);
+ void clearNodeAndCellNumbers();
+ //
+ MEDCouplingUMesh *getGroup(int meshDimRelToMaxExt, const std::string& grp, bool renum=false) const throw(INTERP_KERNEL::Exception);
+ MEDCouplingUMesh *getGroups(int meshDimRelToMaxExt, const std::vector<std::string>& grps, bool renum=false) const throw(INTERP_KERNEL::Exception);
+ MEDCouplingUMesh *getFamily(int meshDimRelToMaxExt, const std::string& fam, bool renum=false) const throw(INTERP_KERNEL::Exception);
+ MEDCouplingUMesh *getFamilies(int meshDimRelToMaxExt, const std::vector<std::string>& fams, bool renum=false) const throw(INTERP_KERNEL::Exception);
+ DataArrayInt *getNodeGroupsArr(const std::vector<std::string>& grps, bool renum=false) const throw(INTERP_KERNEL::Exception);
+ MEDCouplingUMesh *getLevel0Mesh(bool renum=false) const throw(INTERP_KERNEL::Exception);
+ MEDCouplingUMesh *getLevelM1Mesh(bool renum=false) const throw(INTERP_KERNEL::Exception);
+ MEDCouplingUMesh *getLevelM2Mesh(bool renum=false) const throw(INTERP_KERNEL::Exception);
+ MEDCouplingUMesh *getLevelM3Mesh(bool renum=false) const throw(INTERP_KERNEL::Exception);
+ void forceComputationOfParts() const throw(INTERP_KERNEL::Exception);
+ //
+ void setFamilyNameAttachedOnId(int id, const std::string& newFamName) throw(INTERP_KERNEL::Exception);
+ void setCoords(DataArrayDouble *coords) throw(INTERP_KERNEL::Exception);
+ void setCoordsForced(DataArrayDouble *coords) throw(INTERP_KERNEL::Exception);
+ void eraseGroupsAtLevel(int meshDimRelToMaxExt) throw(INTERP_KERNEL::Exception);
+ void removeMeshAtLevel(int meshDimRelToMax) throw(INTERP_KERNEL::Exception);
+ void setMeshAtLevel(int meshDimRelToMax, MEDCoupling1GTUMesh *m) throw(INTERP_KERNEL::Exception);
+ void setMeshAtLevel(int meshDimRelToMax, MEDCouplingUMesh *m, bool newOrOld=false) throw(INTERP_KERNEL::Exception);
+ void optimizeFamilies() throw(INTERP_KERNEL::Exception);
+ DataArrayInt *zipCoords() throw(INTERP_KERNEL::Exception);
+ DataArrayInt *extractFamilyFieldOnGeoType(INTERP_KERNEL::NormalizedCellType gt) const throw(INTERP_KERNEL::Exception);
+ DataArrayInt *extractNumberFieldOnGeoType(INTERP_KERNEL::NormalizedCellType gt) const throw(INTERP_KERNEL::Exception);
+ MEDFileUMesh *buildExtrudedMesh(const MEDCouplingUMesh *m1D, int policy) const throw(INTERP_KERNEL::Exception);
+ MEDFileUMesh *linearToQuadratic(int conversionType=0, double eps=1e-12) const throw(INTERP_KERNEL::Exception);
+ MEDFileUMesh *quadraticToLinear(double eps=1e-12) const throw(INTERP_KERNEL::Exception);
+ MEDCouplingMappedExtrudedMesh *convertToExtrudedMesh() const throw(INTERP_KERNEL::Exception);
+ %extend
+ {
+ MEDFileUMesh(const std::string& fileName, const std::string& mName, int dt=-1, int it=-1, MEDFileMeshReadSelector *mrs=0) throw(INTERP_KERNEL::Exception)
+ {
+ return MEDFileUMesh::New(fileName,mName,dt,it,mrs);
+ }
+
+ MEDFileUMesh(const std::string& fileName, MEDFileMeshReadSelector *mrs=0) throw(INTERP_KERNEL::Exception)
+ {
+ return MEDFileUMesh::New(fileName,mrs);
+ }
+
+ MEDFileUMesh(const MEDCouplingMappedExtrudedMesh *mem) throw(INTERP_KERNEL::Exception)
+ {
+ return MEDFileUMesh::New(mem);
+ }
+
+ MEDFileUMesh(DataArrayByte *db) throw(INTERP_KERNEL::Exception)
+ {
+ return MEDFileUMesh::New(db);
+ }
+
+ MEDFileUMesh()
+ {
+ return MEDFileUMesh::New();
+ }
+
+ static MEDFileUMesh *LoadPartOf(const std::string& fileName, const std::string& mName, PyObject *types, const std::vector<int>& slicPerTyp, int dt=-1, int it=-1, MEDFileMeshReadSelector *mrs=0) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<int> typesCpp1;
+ convertPyToNewIntArr3(types,typesCpp1);
+ std::size_t sz(typesCpp1.size());
+ std::vector<INTERP_KERNEL::NormalizedCellType> typesCpp2(sz);
+ for(std::size_t ii=0;ii<sz;ii++)
+ typesCpp2[ii]=(INTERP_KERNEL::NormalizedCellType)typesCpp1[ii];
+ return MEDFileUMesh::LoadPartOf(fileName,mName,typesCpp2,slicPerTyp,dt,it,mrs);
+ }
+
+ PyObject *__getstate__() throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<double> a0;
+ std::vector<int> a1;
+ std::vector<std::string> a2;
+ std::vector< MCAuto<DataArrayInt> > a3;
+ MCAuto<DataArrayDouble> a4;
+ self->serialize(a0,a1,a2,a3,a4);
+ PyObject *ret(PyTuple_New(5));
+ 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;i<sz;i++)
+ PyList_SetItem(ret2,i,PyString_FromString(a2[i].c_str()));
+ PyTuple_SetItem(ret,2,ret2);
+ sz=a3.size();
+ PyObject *ret3(PyList_New(sz));
+ for(int i=0;i<sz;i++)
+ {
+ DataArrayInt *elt(a3[i]);
+ if(elt)
+ elt->incrRef();
+ PyList_SetItem(ret3,i,SWIG_NewPointerObj(SWIG_as_voidptr(elt),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ));
+ }
+ PyTuple_SetItem(ret,3,ret3);
+ DataArrayDouble *ret4(a4);
+ if(ret4)
+ ret4->incrRef();
+ PyTuple_SetItem(ret,4,SWIG_NewPointerObj(SWIG_as_voidptr(ret4),SWIGTYPE_p_MEDCoupling__DataArrayDouble, SWIG_POINTER_OWN | 0 ));
+ return ret;
+ }
+
+ void __setstate__(PyObject *inp) throw(INTERP_KERNEL::Exception)
+ {
+ static const char MSG[]="MEDFileUMesh.__setstate__ : expected input is a tuple of size 4 !";
+ if(!PyTuple_Check(inp))
+ throw INTERP_KERNEL::Exception(MSG);
+ int sz(PyTuple_Size(inp));
+ if(sz!=5)
+ throw INTERP_KERNEL::Exception(MSG);
+ std::vector<double> a0;
+ std::vector<int> a1;
+ std::vector<std::string> a2;
+ std::vector< MCAuto<DataArrayInt> > a3;
+ MCAuto<DataArrayDouble> a4;
+ //
+ PyObject *a0py(PyTuple_GetItem(inp,0)),*a1py(PyTuple_GetItem(inp,1)),*a2py(PyTuple_GetItem(inp,2));
+ int tmp(-1);
+ fillArrayWithPyListDbl3(a0py,tmp,a0);
+ convertPyToNewIntArr3(a1py,a1);
+ fillStringVector(a2py,a2);
+ //
+ PyObject *b0py(PyTuple_GetItem(inp,3)),*b1py(PyTuple_GetItem(inp,4));
+ void *argp(0);
+ int status(SWIG_ConvertPtr(b1py,&argp,SWIGTYPE_p_MEDCoupling__DataArrayDouble,0|0));
+ if(!SWIG_IsOK(status))
+ throw INTERP_KERNEL::Exception(MSG);
+ a4=reinterpret_cast<DataArrayDouble *>(argp);
+ if((DataArrayDouble *)a4)
+ a4->incrRef();
+ {
+ std::vector< DataArrayInt * > a3Tmp;
+ convertFromPyObjVectorOfObj<MEDCoupling::DataArrayInt *>(b0py,SWIGTYPE_p_MEDCoupling__DataArrayInt,"DataArrayInt",a3Tmp);
+ std::size_t sz(a3Tmp.size());
+ a3.resize(sz);
+ for(std::size_t i=0;i<sz;i++)
+ {
+ a3[i]=a3Tmp[i];
+ if(a3Tmp[i])
+ a3Tmp[i]->incrRef();
+ }
+ self->unserialize(a0,a1,a2,a3,a4);
+ }
+ }
+
+ void __setitem__(int meshDimRelToMax, MEDCouplingPointSet *mesh) throw(INTERP_KERNEL::Exception)
+ {
+ if(!mesh)
+ throw INTERP_KERNEL::Exception("MEDFileUMesh::__setitem__ : Input mesh is NULL !");
+ MEDCouplingUMesh *m0(dynamic_cast<MEDCouplingUMesh *>(mesh));
+ if(m0)
+ {
+ self->setMeshAtLevel(meshDimRelToMax,m0,false);
+ return ;
+ }
+ MEDCoupling1GTUMesh *m1(dynamic_cast<MEDCoupling1GTUMesh *>(mesh));
+ if(m1)
+ {
+ self->setMeshAtLevel(meshDimRelToMax,m1);
+ return ;
+ }
+ throw INTERP_KERNEL::Exception("MEDFileUMesh::__setitem__ : Not recognized input mesh !");
+ }
+
+ void __delitem__(int meshDimRelToMax) throw(INTERP_KERNEL::Exception)
+ {
+ self->removeMeshAtLevel(meshDimRelToMax);
+ }
+
+ MEDFileUMesh *symmetry3DPlane(PyObject *point, PyObject *normalVector) const throw(INTERP_KERNEL::Exception)
+ {
+ const char msg[]="Python wrap of MEDFileUMesh::symmetry3DPlane : ";
+ double val,val2;
+ DataArrayDouble *a,*a2;
+ DataArrayDoubleTuple *aa,*aa2;
+ std::vector<double> bb,bb2;
+ int sw;
+ const double *centerPtr(convertObjToPossibleCpp5_Safe(point,sw,val,a,aa,bb,msg,1,3,true));
+ const double *vectorPtr(convertObjToPossibleCpp5_Safe(normalVector,sw,val2,a2,aa2,bb2,msg,1,3,true));
+ MCAuto<MEDFileUMesh> ret(self->symmetry3DPlane(centerPtr,vectorPtr));
+ return ret.retn();
+ }
+
+ static MEDFileUMesh *Aggregate(PyObject *meshes) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<const MEDFileUMesh *> meshesCpp;
+ convertFromPyObjVectorOfObj<const MEDCoupling::MEDFileUMesh *>(meshes,SWIGTYPE_p_MEDCoupling__MEDFileUMesh,"MEDFileUMesh",meshesCpp);
+ MCAuto<MEDFileUMesh> ret(MEDFileUMesh::Aggregate(meshesCpp));
+ return ret.retn();
+ }
+
+ PyObject *getAllDistributionOfTypes() const throw(INTERP_KERNEL::Exception)
+ {
+ std::vector< std::pair<int,int> > ret(self->getAllDistributionOfTypes());
+ return convertVecPairIntToPy(ret);
+ }
+
+ DataArrayInt *deduceNodeSubPartFromCellSubPart(PyObject *extractDef) const throw(INTERP_KERNEL::Exception)
+ {
+ std::map<int, MCAuto<DataArrayInt> > extractDefCpp;
+ convertToMapIntDataArrayInt(extractDef,extractDefCpp);
+ return self->deduceNodeSubPartFromCellSubPart(extractDefCpp);
+ }
+
+ MEDFileUMesh *extractPart(PyObject *extractDef) const throw(INTERP_KERNEL::Exception)
+ {
+ std::map<int, MCAuto<DataArrayInt> > extractDefCpp;
+ convertToMapIntDataArrayInt(extractDef,extractDefCpp);
+ return self->extractPart(extractDefCpp);
+ }
+
+ void setMeshes(PyObject *li, bool renum=false) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<const MEDCouplingUMesh *> ms;
+ convertFromPyObjVectorOfObj<const MEDCoupling::MEDCouplingUMesh *>(li,SWIGTYPE_p_MEDCoupling__MEDCouplingUMesh,"MEDCouplingUMesh",ms);
+ self->setMeshes(ms,renum);
+ }
+
+ void setGroupsFromScratch(int meshDimRelToMax, PyObject *li, bool renum=false) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<const MEDCouplingUMesh *> ms;
+ convertFromPyObjVectorOfObj<const MEDCoupling::MEDCouplingUMesh *>(li,SWIGTYPE_p_MEDCoupling__MEDCouplingUMesh,"MEDCouplingUMesh",ms);
+ self->setGroupsFromScratch(meshDimRelToMax,ms,renum);
+ }
+
+ void setGroupsOnSetMesh(int meshDimRelToMax, PyObject *li, bool renum=false) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<const MEDCouplingUMesh *> ms;
+ convertFromPyObjVectorOfObj<const MEDCoupling::MEDCouplingUMesh *>(li,SWIGTYPE_p_MEDCoupling__MEDCouplingUMesh,"MEDCouplingUMesh",ms);
+ self->setGroupsOnSetMesh(meshDimRelToMax,ms,renum);
+ }
+
+ DataArrayDouble *getCoords() const throw(INTERP_KERNEL::Exception)
+ {
+ DataArrayDouble *ret=self->getCoords();
+ if(ret)
+ ret->incrRef();
+ return ret;
+ }
+
+ PartDefinition *getPartDefAtLevel(int meshDimRelToMaxExt, INTERP_KERNEL::NormalizedCellType gt=INTERP_KERNEL::NORM_ERROR) const throw(INTERP_KERNEL::Exception)
+ {
+ const PartDefinition *ret(self->getPartDefAtLevel(meshDimRelToMaxExt,gt));
+ if(ret)
+ ret->incrRef();
+ return const_cast<PartDefinition *>(ret);
+ }
+
+ PyObject *buildInnerBoundaryAlongM1Group(const std::string& grpNameM1) throw(INTERP_KERNEL::Exception)
+ {
+ DataArrayInt *ret0=0,*ret1=0,*ret2=0;
+ self->buildInnerBoundaryAlongM1Group(grpNameM1,ret0,ret1,ret2);
+ PyObject *ret=PyTuple_New(3);
+ 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 ));
+ PyTuple_SetItem(ret,2,SWIG_NewPointerObj(SWIG_as_voidptr(ret2),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ));
+ return ret;
+ }
+
+ MEDCoupling1GTUMesh *getDirectUndergroundSingleGeoTypeMesh(INTERP_KERNEL::NormalizedCellType gt) const throw(INTERP_KERNEL::Exception)
+ {
+ MEDCoupling1GTUMesh *ret(self->getDirectUndergroundSingleGeoTypeMesh(gt));
+ if(ret)
+ ret->incrRef();
+ return ret;
+ }
+
+ PyObject *getDirectUndergroundSingleGeoTypeMeshes(int meshDimRelToMax) const throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<MEDCoupling1GTUMesh *> tmp(self->getDirectUndergroundSingleGeoTypeMeshes(meshDimRelToMax));
+ std::size_t sz(tmp.size());
+ PyObject *ret=PyList_New(sz);
+ for(std::size_t i=0;i<sz;i++)
+ {
+ if(tmp[i])
+ tmp[i]->incrRef();
+ PyList_SetItem(ret,i,convertMesh(tmp[i], SWIG_POINTER_OWN | 0 ));
+ }
+ return ret;
+ }
+ }
+ };
+
+ class MEDFileStructuredMesh : public MEDFileMesh
+ {
+ public:
+ %extend
+ {
+ MEDCoupling1SGTUMesh *getImplicitFaceMesh() const throw(INTERP_KERNEL::Exception)
+ {
+ MEDCoupling1SGTUMesh *ret(self->getImplicitFaceMesh());
+ if(ret)
+ ret->incrRef();
+ return ret;
+ }
+ }
+ };
+
+ class MEDFileCMesh : public MEDFileStructuredMesh
+ {
+ public:
+ static MEDFileCMesh *New();
+ static MEDFileCMesh *New(DataArrayByte *db) throw(INTERP_KERNEL::Exception);
+ static MEDFileCMesh *New(const std::string& fileName, MEDFileMeshReadSelector *mrs=0) throw(INTERP_KERNEL::Exception);
+ static MEDFileCMesh *New(const std::string& fileName, const std::string& mName, int dt=-1, int it=-1, MEDFileMeshReadSelector *mrs=0) throw(INTERP_KERNEL::Exception);
+ void setMesh(MEDCouplingCMesh *m) throw(INTERP_KERNEL::Exception);
+ int getSpaceDimension() const throw(INTERP_KERNEL::Exception);
+ %extend
+ {
+ MEDFileCMesh()
+ {
+ return MEDFileCMesh::New();
+ }
+
+ MEDFileCMesh(const std::string& fileName, MEDFileMeshReadSelector *mrs=0) throw(INTERP_KERNEL::Exception)
+ {
+ return MEDFileCMesh::New(fileName,mrs);
+ }
+
+ MEDFileCMesh(const std::string& fileName, const std::string& mName, int dt=-1, int it=-1, MEDFileMeshReadSelector *mrs=0) throw(INTERP_KERNEL::Exception)
+ {
+ return MEDFileCMesh::New(fileName,mName,dt,it,mrs);
+ }
+
+ MEDFileCMesh(DataArrayByte *db) throw(INTERP_KERNEL::Exception)
+ {
+ return MEDFileCMesh::New(db);
+ }
+
+ PyObject *getMesh() const throw(INTERP_KERNEL::Exception)
+ {
+ const MEDCouplingCMesh *tmp=self->getMesh();
+ if(tmp)
+ tmp->incrRef();
+ return SWIG_NewPointerObj(SWIG_as_voidptr(tmp),SWIGTYPE_p_MEDCoupling__MEDCouplingCMesh, SWIG_POINTER_OWN | 0 );
+ }
+ }
+ };
+
+ class MEDFileCurveLinearMesh : public MEDFileStructuredMesh
+ {
+ public:
+ static MEDFileCurveLinearMesh *New();
+ static MEDFileCurveLinearMesh *New(DataArrayByte *db) throw(INTERP_KERNEL::Exception);
+ static MEDFileCurveLinearMesh *New(const std::string& fileName, MEDFileMeshReadSelector *mrs=0) throw(INTERP_KERNEL::Exception);
+ static MEDFileCurveLinearMesh *New(const std::string& fileName, const std::string& mName, int dt=-1, int it=-1, MEDFileMeshReadSelector *mrs=0) throw(INTERP_KERNEL::Exception);
+ void setMesh(MEDCouplingCurveLinearMesh *m) throw(INTERP_KERNEL::Exception);
+ %extend
+ {
+ MEDFileCurveLinearMesh()
+ {
+ return MEDFileCurveLinearMesh::New();
+ }
+
+ MEDFileCurveLinearMesh(const std::string& fileName, MEDFileMeshReadSelector *mrs=0) throw(INTERP_KERNEL::Exception)
+ {
+ return MEDFileCurveLinearMesh::New(fileName,mrs);
+ }
+
+ MEDFileCurveLinearMesh(const std::string& fileName, const std::string& mName, int dt=-1, int it=-1, MEDFileMeshReadSelector *mrs=0) throw(INTERP_KERNEL::Exception)
+ {
+ return MEDFileCurveLinearMesh::New(fileName,mName,dt,it,mrs);
+ }
+
+ MEDFileCurveLinearMesh(DataArrayByte *db) throw(INTERP_KERNEL::Exception)
+ {
+ return MEDFileCurveLinearMesh::New(db);
+ }
+
+ PyObject *getMesh() const throw(INTERP_KERNEL::Exception)
+ {
+ const MEDCouplingCurveLinearMesh *tmp=self->getMesh();
+ if(tmp)
+ tmp->incrRef();
+ return SWIG_NewPointerObj(SWIG_as_voidptr(tmp),SWIGTYPE_p_MEDCoupling__MEDCouplingCurveLinearMesh, SWIG_POINTER_OWN | 0 );
+ }
+ }
+ };
+
+ class MEDFileMeshMultiTS : public RefCountObject, public MEDFileWritableStandAlone
+ {
+ public:
+ static MEDFileMeshMultiTS *New();
+ static MEDFileMeshMultiTS *New(const std::string& fileName) throw(INTERP_KERNEL::Exception);
+ static MEDFileMeshMultiTS *New(const std::string& fileName, const std::string& mName) throw(INTERP_KERNEL::Exception);
+ MEDFileMeshMultiTS *deepCopy() const throw(INTERP_KERNEL::Exception);
+ std::string getName() const throw(INTERP_KERNEL::Exception);
+ void setOneTimeStep(MEDFileMesh *mesh1TimeStep) throw(INTERP_KERNEL::Exception);
+ void cartesianizeMe() throw(INTERP_KERNEL::Exception);
+ %extend
+ {
+ MEDFileMeshMultiTS()
+ {
+ return MEDFileMeshMultiTS::New();
+ }
+
+ MEDFileMeshMultiTS(const std::string& fileName) throw(INTERP_KERNEL::Exception)
+ {
+ return MEDFileMeshMultiTS::New(fileName);
+ }
+
+ MEDFileMeshMultiTS(const std::string& fileName, const std::string& mName) throw(INTERP_KERNEL::Exception)
+ {
+ return MEDFileMeshMultiTS::New(fileName,mName);
+ }
+
+ MEDFileMesh *getOneTimeStep() const throw(INTERP_KERNEL::Exception)
+ {
+ MEDFileMesh *ret=self->getOneTimeStep();
+ if(ret)
+ ret->incrRef();
+ return ret;
+ }
+ }
+ };
+
+ class MEDFileMeshesIterator
+ {
+ public:
+ %extend
+ {
+ PyObject *next() throw(INTERP_KERNEL::Exception)
+ {
+ MEDFileMesh *ret=self->nextt();
+ if(ret)
+ {
+ ret->incrRef();
+ return convertMEDFileMesh(ret,SWIG_POINTER_OWN | 0 );
+ }
+ else
+ {
+ PyErr_SetString(PyExc_StopIteration,"No more data.");
+ return 0;
+ }
+ }
+ }
+ };
+
+ class MEDFileMeshes : public RefCountObject, public MEDFileWritableStandAlone
+ {
+ public:
+ static MEDFileMeshes *New();
+ static MEDFileMeshes *New(DataArrayByte *db) throw(INTERP_KERNEL::Exception);
+ MEDFileMeshes *deepCopy() const throw(INTERP_KERNEL::Exception);
+ int getNumberOfMeshes() const throw(INTERP_KERNEL::Exception);
+ std::vector<std::string> getMeshesNames() const throw(INTERP_KERNEL::Exception);
+ //
+ void resize(int newSize) throw(INTERP_KERNEL::Exception);
+ void pushMesh(MEDFileMesh *mesh) throw(INTERP_KERNEL::Exception);
+ void setMeshAtPos(int i, MEDFileMesh *mesh) throw(INTERP_KERNEL::Exception);
+ void destroyMeshAtPos(int i) throw(INTERP_KERNEL::Exception);
+ void cartesianizeMe() throw(INTERP_KERNEL::Exception);
+ bool presenceOfStructureElements() const throw(INTERP_KERNEL::Exception);
+ void killStructureElements() throw(INTERP_KERNEL::Exception);
+ %extend
+ {
+ MEDFileMeshes()
+ {
+ return MEDFileMeshes::New();
+ }
+
+ MEDFileMeshes(const std::string& fileName) throw(INTERP_KERNEL::Exception)
+ {
+ return MEDFileMeshes::New(fileName);
+ }
+
+ MEDFileMeshes(DataArrayByte *db) throw(INTERP_KERNEL::Exception)
+ {
+ return MEDFileMeshes::New(db);
+ }
+
+ std::string __str__() const throw(INTERP_KERNEL::Exception)
+ {
+ return self->simpleRepr();
+ }
+
+ MEDFileMesh *__getitem__(PyObject *obj) throw(INTERP_KERNEL::Exception)
+ {
+ static const char msg[]="MEDFileMeshes::__getitem__ : only integer or string with meshname supported !";
+ if(PyInt_Check(obj))
+ {
+ MEDFileMesh *ret=self->getMeshAtPos(InterpreteNegativeInt((int)PyInt_AS_LONG(obj),self->getNumberOfMeshes()));
+ if(ret)
+ ret->incrRef();
+ return ret;
+ }
+ MEDFileMesh *ret(self->getMeshWithName(convertPyObjectToStr(obj,msg)));
+ if(ret)
+ ret->incrRef();
+ return ret;
+ }
+
+ MEDFileMeshes *__setitem__(int obj, MEDFileMesh *mesh) throw(INTERP_KERNEL::Exception)
+ {
+ self->setMeshAtPos(obj,mesh);
+ return self;
+ }
+
+ MEDFileMeshesIterator *__iter__() throw(INTERP_KERNEL::Exception)
+ {
+ return self->iterator();
+ }
+
+ int __len__() const throw(INTERP_KERNEL::Exception)
+ {
+ return self->getNumberOfMeshes();
+ }
+
+ MEDFileMesh *getMeshAtPos(int i) const throw(INTERP_KERNEL::Exception)
+ {
+ MEDFileMesh *ret=self->getMeshAtPos(i);
+ if(ret)
+ ret->incrRef();
+ return ret;
+ }
+ MEDFileMesh *getMeshWithName(const std::string& mname) const throw(INTERP_KERNEL::Exception)
+ {
+ MEDFileMesh *ret=self->getMeshWithName(mname);
+ if(ret)
+ ret->incrRef();
+ return ret;
+ }
+ }
+ };
+
+ class MEDFileFieldLoc : public RefCountObject
+ {
+ public:
+ std::string getName() const;
+ int getDimension() const;
+ int getNumberOfGaussPoints() const;
+ int getNumberOfPointsInCells() const;
+ const std::vector<double>& getRefCoords() const;
+ const std::vector<double>& getGaussCoords() const;
+ const std::vector<double>& getGaussWeights() const;
+ bool isEqual(const MEDFileFieldLoc& other, double eps) const throw(INTERP_KERNEL::Exception);
+ %extend
+ {
+ std::string __str__() const throw(INTERP_KERNEL::Exception)
+ {
+ return self->repr();
+ }
+ }
+ };
+
+ class MEDFileFieldGlobsReal
+ {
+ public:
+ void resetContent();
+ void shallowCpyGlobs(const MEDFileFieldGlobsReal& other) throw(INTERP_KERNEL::Exception);
+ void deepCpyGlobs(const MEDFileFieldGlobsReal& other) throw(INTERP_KERNEL::Exception);
+ void shallowCpyOnlyUsedGlobs(const MEDFileFieldGlobsReal& other) throw(INTERP_KERNEL::Exception);
+ void deepCpyOnlyUsedGlobs(const MEDFileFieldGlobsReal& other) throw(INTERP_KERNEL::Exception);
+ void appendGlobs(const MEDFileFieldGlobsReal& other, double eps) throw(INTERP_KERNEL::Exception);
+ void checkGlobsCoherency() const throw(INTERP_KERNEL::Exception);
+ void checkGlobsPflsPartCoherency() const throw(INTERP_KERNEL::Exception);
+ void checkGlobsLocsPartCoherency() const throw(INTERP_KERNEL::Exception);
+ std::vector<std::string> getPfls() const throw(INTERP_KERNEL::Exception);
+ std::vector<std::string> getLocs() const throw(INTERP_KERNEL::Exception);
+ bool existsPfl(const std::string& pflName) const throw(INTERP_KERNEL::Exception);
+ bool existsLoc(const std::string& locName) const throw(INTERP_KERNEL::Exception);
+ std::string createNewNameOfPfl() const throw(INTERP_KERNEL::Exception);
+ std::string createNewNameOfLoc() const throw(INTERP_KERNEL::Exception);
+ std::vector< std::vector<int> > whichAreEqualProfiles() const throw(INTERP_KERNEL::Exception);
+ std::vector< std::vector<int> > whichAreEqualLocs(double eps) const throw(INTERP_KERNEL::Exception);
+ virtual std::vector<std::string> getPflsReallyUsed() const throw(INTERP_KERNEL::Exception);
+ virtual std::vector<std::string> getLocsReallyUsed() const throw(INTERP_KERNEL::Exception);
+ virtual std::vector<std::string> getPflsReallyUsedMulti() const throw(INTERP_KERNEL::Exception);
+ virtual std::vector<std::string> getLocsReallyUsedMulti() const throw(INTERP_KERNEL::Exception);
+ void killProfileIds(const std::vector<int>& pflIds) throw(INTERP_KERNEL::Exception);
+ void killLocalizationIds(const std::vector<int>& locIds) throw(INTERP_KERNEL::Exception);
+ void changePflName(const std::string& oldName, const std::string& newName) throw(INTERP_KERNEL::Exception);
+ void changeLocName(const std::string& oldName, const std::string& newName) throw(INTERP_KERNEL::Exception);
+ int getNbOfGaussPtPerCell(int locId) const throw(INTERP_KERNEL::Exception);
+ int getLocalizationId(const std::string& loc) const throw(INTERP_KERNEL::Exception);
+ void killStructureElementsInGlobs() throw(INTERP_KERNEL::Exception);
+ %extend
+ {
+ PyObject *getProfile(const std::string& pflName) const throw(INTERP_KERNEL::Exception)
+ {
+ const DataArrayInt *ret=self->getProfile(pflName);
+ if(ret)
+ ret->incrRef();
+ return SWIG_NewPointerObj(SWIG_as_voidptr(ret),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 );
+ }
+
+ PyObject *getProfileFromId(int pflId) const throw(INTERP_KERNEL::Exception)
+ {
+ const DataArrayInt *ret=self->getProfileFromId(pflId);
+ if(ret)
+ ret->incrRef();
+ return SWIG_NewPointerObj(SWIG_as_voidptr(ret),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 );
+ }
+
+ PyObject *getLocalizationFromId(int locId) const throw(INTERP_KERNEL::Exception)
+ {
+ const MEDFileFieldLoc *loc=&self->getLocalizationFromId(locId);
+ if(loc)
+ loc->incrRef();
+ return SWIG_NewPointerObj(SWIG_as_voidptr(loc),SWIGTYPE_p_MEDCoupling__MEDFileFieldLoc, SWIG_POINTER_OWN | 0 );
+ }
+
+ PyObject *getLocalization(const std::string& locName) const throw(INTERP_KERNEL::Exception)
+ {
+ const MEDFileFieldLoc *loc=&self->getLocalization(locName);
+ if(loc)
+ loc->incrRef();
+ return SWIG_NewPointerObj(SWIG_as_voidptr(loc),SWIGTYPE_p_MEDCoupling__MEDFileFieldLoc, SWIG_POINTER_OWN | 0 );
+ }
+
+ PyObject *zipPflsNames() throw(INTERP_KERNEL::Exception)
+ {
+ std::vector< std::pair<std::vector<std::string>, std::string > > ret=self->zipPflsNames();
+ return convertVecPairVecStToPy(ret);
+ }
+
+ PyObject *zipLocsNames(double eps) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector< std::pair<std::vector<std::string>, std::string > > ret=self->zipLocsNames(eps);
+ return convertVecPairVecStToPy(ret);
+ }
+
+ void changePflsNames(PyObject *li) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector< std::pair<std::vector<std::string>, std::string > > v=convertVecPairVecStFromPy(li);
+ self->changePflsNames(v);
+ }
+
+ void changePflsRefsNamesGen(PyObject *li) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector< std::pair<std::vector<std::string>, std::string > > v=convertVecPairVecStFromPy(li);
+ self->changePflsRefsNamesGen(v);
+ }
+
+ void changePflsNamesInStruct(PyObject *li) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector< std::pair<std::vector<std::string>, std::string > > v=convertVecPairVecStFromPy(li);
+ self->changePflsNamesInStruct(v);
+ }
+
+ void changeLocsNames(PyObject *li) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector< std::pair<std::vector<std::string>, std::string > > v=convertVecPairVecStFromPy(li);
+ self->changeLocsNames(v);
+ }
+
+ void changeLocsRefsNamesGen(PyObject *li) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector< std::pair<std::vector<std::string>, std::string > > v=convertVecPairVecStFromPy(li);
+ self->changeLocsRefsNamesGen(v);
+ }
+
+ void changeLocsNamesInStruct(PyObject *li) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector< std::pair<std::vector<std::string>, std::string > > v=convertVecPairVecStFromPy(li);
+ self->changeLocsNamesInStruct(v);
+ }
+
+ std::string simpleReprGlobs() const throw(INTERP_KERNEL::Exception)
+ {
+ std::ostringstream oss;
+ self->simpleReprGlobs(oss);
+ return oss.str();
+ }
+ }
+ };
+
+ class MEDFileEntities
+ {
+ public:
+ %extend
+ {
+ static MEDFileEntities *BuildFrom(PyObject *entities) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector< std::pair<TypeOfField,INTERP_KERNEL::NormalizedCellType> > inp;
+ std::vector< std::pair<int,int> > inp0(convertTimePairIdsFromPy(entities));
+ {
+ std::size_t sz(inp0.size());
+ inp.resize(sz);
+ for(std::size_t i=0;i<sz;i++)
+ inp[i]=std::pair<TypeOfField,INTERP_KERNEL::NormalizedCellType>((TypeOfField)inp0[i].first,(INTERP_KERNEL::NormalizedCellType)inp0[i].second);
+ }
+ return MEDFileEntities::BuildFrom(&inp);
+ }
+ }
+ private:
+ MEDFileEntities();
+ };
+
+ class MEDFileAnyTypeField1TS : public RefCountObject, public MEDFileFieldGlobsReal, public MEDFileWritableStandAlone
+ {
+ public:
+ static MEDFileAnyTypeField1TS *New(const std::string& fileName, bool loadAll=true) throw(INTERP_KERNEL::Exception);
+ static MEDFileAnyTypeField1TS *New(const std::string& fileName, const std::string& fieldName, bool loadAll=true) throw(INTERP_KERNEL::Exception);
+ static MEDFileAnyTypeField1TS *New(const std::string& fileName, const std::string& fieldName, int iteration, int order, bool loadAll=true) throw(INTERP_KERNEL::Exception);
+ static MEDFileAnyTypeField1TS *NewAdv(const std::string& fileName, const std::string& fieldName, int iteration, int order, bool loadAll, const MEDFileEntities *entities) throw(INTERP_KERNEL::Exception);
+ void loadArrays() throw(INTERP_KERNEL::Exception);
+ void loadArraysIfNecessary() throw(INTERP_KERNEL::Exception);
+ void unloadArrays() throw(INTERP_KERNEL::Exception);
+ void unloadArraysWithoutDataLoss() throw(INTERP_KERNEL::Exception);
+ int getDimension() const throw(INTERP_KERNEL::Exception);
+ int getIteration() const throw(INTERP_KERNEL::Exception);
+ int getOrder() const throw(INTERP_KERNEL::Exception);
+ std::string getName() throw(INTERP_KERNEL::Exception);
+ void setName(const std::string& name) throw(INTERP_KERNEL::Exception);
+ std::string getMeshName() throw(INTERP_KERNEL::Exception);
+ void setMeshName(const std::string& newMeshName) throw(INTERP_KERNEL::Exception);
+ int getMeshIteration() const throw(INTERP_KERNEL::Exception);
+ int getMeshOrder() const throw(INTERP_KERNEL::Exception);
+ int getNumberOfComponents() const throw(INTERP_KERNEL::Exception);
+ bool isDealingTS(int iteration, int order) const throw(INTERP_KERNEL::Exception);
+ void setInfo(const std::vector<std::string>& infos) throw(INTERP_KERNEL::Exception);
+ const std::vector<std::string>& getInfo() const throw(INTERP_KERNEL::Exception);
+ bool presenceOfMultiDiscPerGeoType() const throw(INTERP_KERNEL::Exception);
+ void setTime(int iteration, int order, double val) throw(INTERP_KERNEL::Exception);
+ virtual MEDFileAnyTypeField1TS *shallowCpy() const throw(INTERP_KERNEL::Exception);
+ MEDFileAnyTypeField1TS *deepCopy() const throw(INTERP_KERNEL::Exception);
+ std::string getDtUnit() const throw(INTERP_KERNEL::Exception);
+ void setDtUnit(const std::string& dtUnit) throw(INTERP_KERNEL::Exception);
+ %extend
+ {
+ 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_int(tmp1));
+ PyList_SetItem(res,1,SWIG_From_int(tmp2));
+ PyList_SetItem(res,2,SWIG_From_double(tmp0));
+ return res;
+ }
+
+ PyObject *getDtIt() const throw(INTERP_KERNEL::Exception)
+ {
+ std::pair<int,int> res=self->getDtIt();
+ PyObject *elt=PyTuple_New(2);
+ PyTuple_SetItem(elt,0,SWIG_From_int(res.first));
+ PyTuple_SetItem(elt,1,SWIG_From_int(res.second));
+ return elt;
+ }
+
+ void setProfileNameOnLeaf(INTERP_KERNEL::NormalizedCellType typ, int locId, const std::string& newPflName, bool forceRenameOnGlob=false) throw(INTERP_KERNEL::Exception)
+ {
+ self->setProfileNameOnLeaf(0,typ,locId,newPflName,forceRenameOnGlob);
+ }
+
+ void setLocNameOnLeaf(INTERP_KERNEL::NormalizedCellType typ, int locId, const std::string& newLocName, bool forceRenameOnGlob=false) throw(INTERP_KERNEL::Exception)
+ {
+ self->setLocNameOnLeaf(0,typ,locId,newLocName,forceRenameOnGlob);
+ }
+
+ bool changeMeshNames(PyObject *li) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector< std::pair<std::string,std::string> > modifTab=convertVecPairStStFromPy(li);
+ return self->changeMeshNames(modifTab);
+ }
+
+ PyObject *getTypesOfFieldAvailable() const throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<TypeOfField> ret=self->getTypesOfFieldAvailable();
+ PyObject *ret2=PyList_New(ret.size());
+ for(int i=0;i<(int)ret.size();i++)
+ PyList_SetItem(ret2,i,SWIG_From_int(ret[i]));
+ return ret2;
+ }
+
+ PyObject *getNonEmptyLevels(const std::string& mname=std::string()) const throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<int> ret1;
+ int ret0=self->getNonEmptyLevels(mname,ret1);
+ PyObject *elt=PyTuple_New(2);
+ PyTuple_SetItem(elt,0,SWIG_From_int(ret0));
+ PyTuple_SetItem(elt,1,convertIntArrToPyList2(ret1));
+ return elt;
+ }
+
+ PyObject *getFieldSplitedByType(const std::string& mname=std::string()) const throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<INTERP_KERNEL::NormalizedCellType> types;
+ std::vector< std::vector<TypeOfField> > typesF;
+ std::vector< std::vector<std::string> > pfls;
+ std::vector< std::vector<std::string> > locs;
+ std::vector< std::vector< std::pair<int,int> > > ret=self->getFieldSplitedByType(mname,types,typesF,pfls,locs);
+ int sz=ret.size();
+ PyObject *ret2=PyList_New(sz);
+ for(int i=0;i<sz;i++)
+ {
+ const std::vector< std::pair<int,int> >& dadsI=ret[i];
+ const std::vector<TypeOfField>& typesFI=typesF[i];
+ const std::vector<std::string>& pflsI=pfls[i];
+ const std::vector<std::string>& locsI=locs[i];
+ PyObject *elt=PyTuple_New(2);
+ PyTuple_SetItem(elt,0,SWIG_From_int(types[i]));
+ int sz2=ret[i].size();
+ PyObject *elt2=PyList_New(sz2);
+ for(int j=0;j<sz2;j++)
+ {
+ PyObject *elt3=PyTuple_New(4);
+ PyTuple_SetItem(elt3,0,SWIG_From_int(typesFI[j]));
+ PyObject *elt4=PyTuple_New(2); PyTuple_SetItem(elt4,0,SWIG_From_int(dadsI[j].first)); PyTuple_SetItem(elt4,1,SWIG_From_int(dadsI[j].second));
+ PyTuple_SetItem(elt3,1,elt4);
+ PyTuple_SetItem(elt3,2,PyString_FromString(pflsI[j].c_str()));
+ PyTuple_SetItem(elt3,3,PyString_FromString(locsI[j].c_str()));
+ PyList_SetItem(elt2,j,elt3);
+ }
+ PyTuple_SetItem(elt,1,elt2);
+ PyList_SetItem(ret2,i,elt);
+ }
+ return ret2;
+ }
+
+ PyObject *splitComponents() const throw(INTERP_KERNEL::Exception)
+ {
+ std::vector< MCAuto< MEDFileAnyTypeField1TS > > ret=self->splitComponents();
+ std::size_t sz=ret.size();
+ PyObject *retPy=PyList_New(sz);
+ for(std::size_t i=0;i<sz;i++)
+ PyList_SetItem(retPy,i,convertMEDFileField1TS(ret[i].retn(), SWIG_POINTER_OWN | 0 ));
+ return retPy;
+ }
+
+ PyObject *splitDiscretizations() const throw(INTERP_KERNEL::Exception)
+ {
+ std::vector< MCAuto< MEDFileAnyTypeField1TS > > ret=self->splitDiscretizations();
+ std::size_t sz=ret.size();
+ PyObject *retPy=PyList_New(sz);
+ for(std::size_t i=0;i<sz;i++)
+ PyList_SetItem(retPy,i,convertMEDFileField1TS(ret[i].retn(), SWIG_POINTER_OWN | 0 ));
+ return retPy;
+ }
+
+ PyObject *splitMultiDiscrPerGeoTypes() const throw(INTERP_KERNEL::Exception)
+ {
+ std::vector< MCAuto< MEDFileAnyTypeField1TS > > ret=self->splitMultiDiscrPerGeoTypes();
+ std::size_t sz=ret.size();
+ PyObject *retPy=PyList_New(sz);
+ for(std::size_t i=0;i<sz;i++)
+ PyList_SetItem(retPy,i,convertMEDFileField1TS(ret[i].retn(), SWIG_POINTER_OWN | 0 ));
+ return retPy;
+ }
+
+ MEDFileAnyTypeField1TS *extractPart(PyObject *extractDef, MEDFileMesh *mm) const throw(INTERP_KERNEL::Exception)
+ {
+ std::map<int, MCAuto<DataArrayInt> > extractDefCpp;
+ convertToMapIntDataArrayInt(extractDef,extractDefCpp);
+ return self->extractPart(extractDefCpp,mm);
+ }
+ }
+ };
+
+ class MEDFileField1TS : public MEDFileAnyTypeField1TS
+ {
+ public:
+ static MEDFileField1TS *New(const std::string& fileName, const std::string& fieldName, int iteration, int order, bool loadAll=true) throw(INTERP_KERNEL::Exception);
+ static MEDFileField1TS *New(const std::string& fileName, const std::string& fieldName, bool loadAll=true) throw(INTERP_KERNEL::Exception);
+ static MEDFileField1TS *New(const std::string& fileName, bool loadAll=true) throw(INTERP_KERNEL::Exception);
+ static MEDFileField1TS *New(DataArrayByte *db) throw(INTERP_KERNEL::Exception);
+ static MEDFileField1TS *New();
+ MEDCoupling::MEDFileIntField1TS *convertToInt(bool isDeepCpyGlobs=true) const throw(INTERP_KERNEL::Exception);
+ MEDCouplingFieldDouble *field(const MEDFileMesh *mesh) const throw(INTERP_KERNEL::Exception);
+ MEDCouplingFieldDouble *getFieldAtLevel(TypeOfField type, int meshDimRelToMax, int renumPol=0) const throw(INTERP_KERNEL::Exception);
+ MEDCouplingFieldDouble *getFieldAtTopLevel(TypeOfField type, int renumPol=0) const throw(INTERP_KERNEL::Exception);
+ MEDCouplingFieldDouble *getFieldOnMeshAtLevel(TypeOfField type, const MEDCouplingMesh *mesh, int renumPol=0) const throw(INTERP_KERNEL::Exception);
+ MEDCouplingFieldDouble *getFieldOnMeshAtLevel(TypeOfField type, int meshDimRelToMax, const MEDFileMesh *mesh, int renumPol=0) const throw(INTERP_KERNEL::Exception);
+ MEDCouplingFieldDouble *getFieldAtLevelOld(TypeOfField type, const std::string& mname, int meshDimRelToMax, int renumPol=0) const throw(INTERP_KERNEL::Exception);
+ //
+ void setFieldNoProfileSBT(const MEDCouplingFieldDouble *field) throw(INTERP_KERNEL::Exception);
+ void setFieldProfile(const MEDCouplingFieldDouble *field, const MEDFileMesh *mesh, int meshDimRelToMax, const DataArrayInt *profile) throw(INTERP_KERNEL::Exception);
+ void setProfileNameOnLeaf(const std::string& mName, INTERP_KERNEL::NormalizedCellType typ, int locId, const std::string& newPflName, bool forceRenameOnGlob=false) throw(INTERP_KERNEL::Exception);
+ void setLocNameOnLeaf(const std::string& mName, INTERP_KERNEL::NormalizedCellType typ, int locId, const std::string& newLocName, bool forceRenameOnGlob=false) throw(INTERP_KERNEL::Exception);
+ %extend
+ {
+ MEDFileField1TS(const std::string& fileName, bool loadAll=true) throw(INTERP_KERNEL::Exception)
+ {
+ return MEDFileField1TS::New(fileName,loadAll);
+ }
+
+ MEDFileField1TS(const std::string& fileName, const std::string& fieldName, bool loadAll=true) throw(INTERP_KERNEL::Exception)
+ {
+ return MEDFileField1TS::New(fileName,fieldName,loadAll);
+ }
+
+ MEDFileField1TS(const std::string& fileName, const std::string& fieldName, int iteration, int order, bool loadAll=true) throw(INTERP_KERNEL::Exception)
+ {
+ return MEDFileField1TS::New(fileName,fieldName,iteration,order,loadAll);
+ }
+
+ MEDFileField1TS(DataArrayByte *db) throw(INTERP_KERNEL::Exception)
+ {
+ return MEDFileField1TS::New(db);
+ }
+
+ MEDFileField1TS()
+ {
+ return MEDFileField1TS::New();
+ }
+
+ void copyTinyInfoFrom(const MEDCouplingFieldDouble *field) throw(INTERP_KERNEL::Exception)
+ {
+ const DataArrayDouble *arr=0;
+ if(field)
+ arr=field->getArray();
+ self->copyTinyInfoFrom(field,arr);
+ }
+
+ std::string __str__() const throw(INTERP_KERNEL::Exception)
+ {
+ return self->simpleRepr();
+ }
+
+ PyObject *getFieldWithProfile(TypeOfField type, int meshDimRelToMax, const MEDFileMesh *mesh) const throw(INTERP_KERNEL::Exception)
+ {
+ return MEDFileField1TS_getFieldWithProfile<double>(self,type,meshDimRelToMax,mesh);
+ }
+
+ PyObject *getFieldSplitedByType2(const std::string& mname=std::string()) const throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<INTERP_KERNEL::NormalizedCellType> types;
+ std::vector< std::vector<TypeOfField> > typesF;
+ std::vector< std::vector<std::string> > pfls;
+ std::vector< std::vector<std::string> > locs;
+ std::vector< std::vector<DataArrayDouble *> > ret=self->getFieldSplitedByType2(mname,types,typesF,pfls,locs);
+ int sz=ret.size();
+ PyObject *ret2=PyList_New(sz);
+ for(int i=0;i<sz;i++)
+ {
+ const std::vector<DataArrayDouble *>& dadsI=ret[i];
+ const std::vector<TypeOfField>& typesFI=typesF[i];
+ const std::vector<std::string>& pflsI=pfls[i];
+ const std::vector<std::string>& locsI=locs[i];
+ PyObject *elt=PyTuple_New(2);
+ PyTuple_SetItem(elt,0,SWIG_From_int(types[i]));
+ int sz2=ret[i].size();
+ PyObject *elt2=PyList_New(sz2);
+ for(int j=0;j<sz2;j++)
+ {
+ PyObject *elt3=PyTuple_New(4);
+ PyTuple_SetItem(elt3,0,SWIG_From_int(typesFI[j]));
+ PyTuple_SetItem(elt3,1,SWIG_NewPointerObj(SWIG_as_voidptr(dadsI[j]),SWIGTYPE_p_MEDCoupling__DataArrayDouble, SWIG_POINTER_OWN | 0 ));
+ PyTuple_SetItem(elt3,2,PyString_FromString(pflsI[j].c_str()));
+ PyTuple_SetItem(elt3,3,PyString_FromString(locsI[j].c_str()));
+ PyList_SetItem(elt2,j,elt3);
+ }
+ PyTuple_SetItem(elt,1,elt2);
+ PyList_SetItem(ret2,i,elt);
+ }
+ return ret2;
+ }
+
+ DataArrayDouble *getUndergroundDataArray() const throw(INTERP_KERNEL::Exception)
+ {
+ DataArrayDouble *ret=self->getUndergroundDataArray();
+ if(ret)
+ ret->incrRef();
+ return ret;
+ }
+
+ PyObject *getUndergroundDataArrayExt() const throw(INTERP_KERNEL::Exception)
+ {
+ return MEDFileField1TS_getUndergroundDataArrayExt<double>(self);
+ }
+ }
+ };
+
+ class MEDFileIntField1TS : public MEDFileAnyTypeField1TS
+ {
+ public:
+ static MEDFileIntField1TS *New();
+ static MEDFileIntField1TS *New(const std::string& fileName, bool loadAll=true) throw(INTERP_KERNEL::Exception);
+ static MEDFileIntField1TS *New(DataArrayByte *db) throw(INTERP_KERNEL::Exception);
+ static MEDFileIntField1TS *New(const std::string& fileName, const std::string& fieldName, bool loadAll=true) throw(INTERP_KERNEL::Exception);
+ static MEDFileIntField1TS *New(const std::string& fileName, const std::string& fieldName, int iteration, int order, bool loadAll=true) throw(INTERP_KERNEL::Exception);
+ MEDCoupling::MEDFileField1TS *convertToDouble(bool isDeepCpyGlobs=true) const throw(INTERP_KERNEL::Exception);
+ //
+ void setFieldNoProfileSBT(const MEDCouplingFieldInt *field) throw(INTERP_KERNEL::Exception);
+ void setFieldProfile(const MEDCouplingFieldInt *field, const MEDFileMesh *mesh, int meshDimRelToMax, const DataArrayInt *profile) throw(INTERP_KERNEL::Exception);
+ MEDCouplingFieldInt *field(const MEDFileMesh *mesh) const throw(INTERP_KERNEL::Exception);
+ MEDCouplingFieldInt *getFieldAtLevel(TypeOfField type, int meshDimRelToMax, int renumPol=0) const throw(INTERP_KERNEL::Exception);
+ MEDCouplingFieldInt *getFieldAtTopLevel(TypeOfField type, int renumPol=0) const throw(INTERP_KERNEL::Exception);
+ MEDCouplingFieldInt *getFieldOnMeshAtLevel(TypeOfField type, int meshDimRelToMax, const MEDFileMesh *mesh, int renumPol=0) const throw(INTERP_KERNEL::Exception);
+ MEDCouplingFieldInt *getFieldOnMeshAtLevel(TypeOfField type, const MEDCouplingMesh *mesh, int renumPol=0) const throw(INTERP_KERNEL::Exception);
+ MEDCouplingFieldInt *getFieldAtLevelOld(TypeOfField type, const std::string& mname, int meshDimRelToMax, int renumPol=0) const throw(INTERP_KERNEL::Exception);
+ %extend
+ {
+ MEDFileIntField1TS() throw(INTERP_KERNEL::Exception)
+ {
+ return MEDFileIntField1TS::New();
+ }
+
+ MEDFileIntField1TS(const std::string& fileName, bool loadAll=true) throw(INTERP_KERNEL::Exception)
+ {
+ return MEDFileIntField1TS::New(fileName,loadAll);
+ }
+
+ MEDFileIntField1TS(const std::string& fileName, const std::string& fieldName, bool loadAll=true) throw(INTERP_KERNEL::Exception)
+ {
+ return MEDFileIntField1TS::New(fileName,fieldName,loadAll);
+ }
+
+ MEDFileIntField1TS(const std::string& fileName, const std::string& fieldName, int iteration, int order, bool loadAll=true) throw(INTERP_KERNEL::Exception)
+ {
+ return MEDFileIntField1TS::New(fileName,fieldName,iteration,order,loadAll);
+ }
+
+ MEDFileIntField1TS(DataArrayByte *db) throw(INTERP_KERNEL::Exception)
+ {
+ return MEDFileIntField1TS::New(db);
+ }
+
+ std::string __str__() const throw(INTERP_KERNEL::Exception)
+ {
+ return self->simpleRepr();
+ }
+
+ PyObject *getFieldWithProfile(TypeOfField type, int meshDimRelToMax, const MEDFileMesh *mesh) const throw(INTERP_KERNEL::Exception)
+ {
+ return MEDFileField1TS_getFieldWithProfile<int>(self,type,meshDimRelToMax,mesh);
+ }
+
+ DataArrayInt *getUndergroundDataArray() const throw(INTERP_KERNEL::Exception)
+ {
+ DataArrayInt *ret=self->getUndergroundDataArray();
+ if(ret)
+ ret->incrRef();
+ return ret;
+ }
+
+ PyObject *getUndergroundDataArrayExt() const throw(INTERP_KERNEL::Exception)
+ {
+ return MEDFileField1TS_getUndergroundDataArrayExt<int>(self);
+ }
+ }
+ };
+
+ class MEDFileFloatField1TS : public MEDFileAnyTypeField1TS
+ {
+ public:
+ static MEDFileFloatField1TS *New();
+ static MEDFileFloatField1TS *New(const std::string& fileName, bool loadAll=true) throw(INTERP_KERNEL::Exception);
+ static MEDFileFloatField1TS *New(DataArrayByte *db) throw(INTERP_KERNEL::Exception);
+ static MEDFileFloatField1TS *New(const std::string& fileName, const std::string& fieldName, bool loadAll=true) throw(INTERP_KERNEL::Exception);
+ static MEDFileFloatField1TS *New(const std::string& fileName, const std::string& fieldName, int iteration, int order, bool loadAll=true) throw(INTERP_KERNEL::Exception);
+ MEDCoupling::MEDFileField1TS *convertToDouble(bool isDeepCpyGlobs=true) const throw(INTERP_KERNEL::Exception);
+ //
+ void setFieldNoProfileSBT(const MEDCouplingFieldFloat *field) throw(INTERP_KERNEL::Exception);
+ void setFieldProfile(const MEDCouplingFieldFloat *field, const MEDFileMesh *mesh, int meshDimRelToMax, const DataArrayInt *profile) throw(INTERP_KERNEL::Exception);
+ MEDCouplingFieldFloat *field(const MEDFileMesh *mesh) const throw(INTERP_KERNEL::Exception);
+ MEDCouplingFieldFloat *getFieldAtLevel(TypeOfField type, int meshDimRelToMax, int renumPol=0) const throw(INTERP_KERNEL::Exception);
+ MEDCouplingFieldFloat *getFieldAtTopLevel(TypeOfField type, int renumPol=0) const throw(INTERP_KERNEL::Exception);
+ MEDCouplingFieldFloat *getFieldOnMeshAtLevel(TypeOfField type, int meshDimRelToMax, const MEDFileMesh *mesh, int renumPol=0) const throw(INTERP_KERNEL::Exception);
+ MEDCouplingFieldFloat *getFieldOnMeshAtLevel(TypeOfField type, const MEDCouplingMesh *mesh, int renumPol=0) const throw(INTERP_KERNEL::Exception);
+ MEDCouplingFieldFloat *getFieldAtLevelOld(TypeOfField type, const std::string& mname, int meshDimRelToMax, int renumPol=0) const throw(INTERP_KERNEL::Exception);
+ %extend
+ {
+ MEDFileFloatField1TS() throw(INTERP_KERNEL::Exception)
+ {
+ return MEDFileFloatField1TS::New();
+ }
+
+ MEDFileFloatField1TS(const std::string& fileName, bool loadAll=true) throw(INTERP_KERNEL::Exception)
+ {
+ return MEDFileFloatField1TS::New(fileName,loadAll);
+ }
+
+ MEDFileFloatField1TS(const std::string& fileName, const std::string& fieldName, bool loadAll=true) throw(INTERP_KERNEL::Exception)
+ {
+ return MEDFileFloatField1TS::New(fileName,fieldName,loadAll);
+ }
+
+ MEDFileFloatField1TS(const std::string& fileName, const std::string& fieldName, int iteration, int order, bool loadAll=true) throw(INTERP_KERNEL::Exception)
+ {
+ return MEDFileFloatField1TS::New(fileName,fieldName,iteration,order,loadAll);
+ }
+
+ MEDFileFloatField1TS(DataArrayByte *db) throw(INTERP_KERNEL::Exception)
+ {
+ return MEDFileFloatField1TS::New(db);
+ }
+
+ std::string __str__() const throw(INTERP_KERNEL::Exception)
+ {
+ return self->simpleRepr();
+ }
+
+ PyObject *getFieldWithProfile(TypeOfField type, int meshDimRelToMax, const MEDFileMesh *mesh) const throw(INTERP_KERNEL::Exception)
+ {
+ return MEDFileField1TS_getFieldWithProfile<float>(self,type,meshDimRelToMax,mesh);
+ }
+
+ DataArrayFloat *getUndergroundDataArray() const throw(INTERP_KERNEL::Exception)
+ {
+ DataArrayFloat *ret=self->getUndergroundDataArray();
+ if(ret)
+ ret->incrRef();
+ return ret;
+ }
+
+ PyObject *getUndergroundDataArrayExt() const throw(INTERP_KERNEL::Exception)
+ {
+ return MEDFileField1TS_getUndergroundDataArrayExt<float>(self);
+ }
+ }
+ };
+
+ class MEDFileAnyTypeFieldMultiTSIterator
+ {
+ public:
+ %extend
+ {
+ PyObject *next() throw(INTERP_KERNEL::Exception)
+ {
+ MEDFileAnyTypeField1TS *ret=self->nextt();
+ if(ret)
+ return convertMEDFileField1TS(ret, SWIG_POINTER_OWN | 0 );
+ else
+ {
+ PyErr_SetString(PyExc_StopIteration,"No more data.");
+ return 0;
+ }
+ }
+ }
+ };
+
+ class MEDFileAnyTypeFieldMultiTS : public RefCountObject, public MEDFileFieldGlobsReal, public MEDFileWritableStandAlone
+ {
+ public:
+ static MEDFileAnyTypeFieldMultiTS *New(const std::string& fileName, bool loadAll=true) throw(INTERP_KERNEL::Exception);
+ static MEDFileAnyTypeFieldMultiTS *New(const std::string& fileName, const std::string& fieldName, bool loadAll=true) throw(INTERP_KERNEL::Exception);
+ MEDFileAnyTypeFieldMultiTS *deepCopy() const throw(INTERP_KERNEL::Exception);
+ virtual MEDFileAnyTypeFieldMultiTS *shallowCpy() const throw(INTERP_KERNEL::Exception);
+ std::string getName() const throw(INTERP_KERNEL::Exception);
+ void setName(const std::string& name) throw(INTERP_KERNEL::Exception);
+ std::string getDtUnit() const throw(INTERP_KERNEL::Exception);
+ void setDtUnit(const std::string& dtUnit) throw(INTERP_KERNEL::Exception);
+ std::string getMeshName() const throw(INTERP_KERNEL::Exception);
+ void setMeshName(const std::string& newMeshName) throw(INTERP_KERNEL::Exception);
+ const std::vector<std::string>& getInfo() const throw(INTERP_KERNEL::Exception);
+ bool presenceOfMultiDiscPerGeoType() const throw(INTERP_KERNEL::Exception);
+ int getNumberOfComponents() const throw(INTERP_KERNEL::Exception);
+ int getNumberOfTS() const throw(INTERP_KERNEL::Exception);
+ void eraseEmptyTS() throw(INTERP_KERNEL::Exception);
+ int getPosOfTimeStep(int iteration, int order) const throw(INTERP_KERNEL::Exception);
+ int getPosGivenTime(double time, double eps=1e-8) const throw(INTERP_KERNEL::Exception);
+ void loadArrays() throw(INTERP_KERNEL::Exception);
+ void loadArraysIfNecessary() throw(INTERP_KERNEL::Exception);
+ void unloadArrays() throw(INTERP_KERNEL::Exception);
+ void unloadArraysWithoutDataLoss() throw(INTERP_KERNEL::Exception);
+ //
+ virtual MEDFileAnyTypeField1TS *getTimeStepAtPos(int pos) const throw(INTERP_KERNEL::Exception);
+ MEDFileAnyTypeField1TS *getTimeStep(int iteration, int order) const throw(INTERP_KERNEL::Exception);
+ MEDFileAnyTypeField1TS *getTimeStepGivenTime(double time, double eps=1e-8) const throw(INTERP_KERNEL::Exception);
+ void pushBackTimeStep(MEDFileAnyTypeField1TS *f1ts) throw(INTERP_KERNEL::Exception);
+ void synchronizeNameScope() throw(INTERP_KERNEL::Exception);
+ MEDFileAnyTypeFieldMultiTS *buildNewEmpty() const throw(INTERP_KERNEL::Exception);
+ %extend
+ {
+ int __len__() const throw(INTERP_KERNEL::Exception)
+ {
+ return self->getNumberOfTS();
+ }
+
+ int getTimeId(PyObject *elt0) const throw(INTERP_KERNEL::Exception)
+ {
+ if(elt0 && PyInt_Check(elt0))
+ {//fmts[3]
+ int pos=PyInt_AS_LONG(elt0);
+ return pos;
+ }
+ else if(elt0 && PyTuple_Check(elt0))
+ {
+ if(PyTuple_Size(elt0)==2)
+ {
+ PyObject *o0=PyTuple_GetItem(elt0,0);
+ PyObject *o1=PyTuple_GetItem(elt0,1);
+ if(PyInt_Check(o0) && PyInt_Check(o1))
+ {//fmts(1,-1)
+ int iter=PyInt_AS_LONG(o0);
+ int order=PyInt_AS_LONG(o1);
+ return self->getPosOfTimeStep(iter,order);
+ }
+ else
+ throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTS::__getitem__ : invalid input param ! input is a tuple of size 2 but two integers are expected in this tuple to request a time steps !");
+ }
+ else
+ throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTS::__getitem__ : invalid input param ! input is a tuple of size != 2 ! two integers are expected in this tuple to request a time steps !");
+ }
+ else if(elt0 && PyFloat_Check(elt0))
+ {
+ double val=PyFloat_AS_DOUBLE(elt0);
+ return self->getPosGivenTime(val);
+ }
+ else
+ throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTS::__getitem__ : invalid input params ! expected fmts[int], fmts[int,int] or fmts[double] to request time step !");
+ }
+
+ PyObject *getIterations() const throw(INTERP_KERNEL::Exception)
+ {
+ std::vector< std::pair<int,int> > res(self->getIterations());
+ return convertVecPairIntToPy(res);
+ }
+
+ PyObject *getTimeSteps() const throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<double> ret1;
+ std::vector< std::pair<int,int> > ret=self->getTimeSteps(ret1);
+ std::size_t sz=ret.size();
+ PyObject *ret2=PyList_New(sz);
+ for(std::size_t i=0;i<sz;i++)
+ {
+ PyObject *elt=PyTuple_New(3);
+ PyTuple_SetItem(elt,0,SWIG_From_int(ret[i].first));
+ PyTuple_SetItem(elt,1,SWIG_From_int(ret[i].second));
+ PyTuple_SetItem(elt,2,SWIG_From_double(ret1[i]));
+ PyList_SetItem(ret2,i,elt);
+ }
+ return ret2;
+ }
+
+ PyObject *getTypesOfFieldAvailable() const throw(INTERP_KERNEL::Exception)
+ {
+ std::vector< std::vector<TypeOfField> > ret=self->getTypesOfFieldAvailable();
+ PyObject *ret2=PyList_New(ret.size());
+ for(int i=0;i<(int)ret.size();i++)
+ {
+ const std::vector<TypeOfField>& rett=ret[i];
+ PyObject *ret3=PyList_New(rett.size());
+ for(int j=0;j<(int)rett.size();j++)
+ PyList_SetItem(ret3,j,SWIG_From_int(rett[j]));
+ PyList_SetItem(ret2,i,ret3);
+ }
+ return ret2;
+ }
+
+ PyObject *getNonEmptyLevels(int iteration, int order, const std::string& mname=std::string()) const throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<int> ret1;
+ int ret0=self->getNonEmptyLevels(iteration,order,mname,ret1);
+ PyObject *elt=PyTuple_New(2);
+ PyTuple_SetItem(elt,0,SWIG_From_int(ret0));
+ PyTuple_SetItem(elt,1,convertIntArrToPyList2(ret1));
+ return elt;
+ }
+
+ PyObject *getFieldSplitedByType(int iteration, int order, const std::string& mname=std::string()) const throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<INTERP_KERNEL::NormalizedCellType> types;
+ std::vector< std::vector<TypeOfField> > typesF;
+ std::vector< std::vector<std::string> > pfls;
+ std::vector< std::vector<std::string> > locs;
+ std::vector< std::vector< std::pair<int,int> > > ret=self->getFieldSplitedByType(iteration,order,mname,types,typesF,pfls,locs);
+ int sz=ret.size();
+ PyObject *ret2=PyList_New(sz);
+ for(int i=0;i<sz;i++)
+ {
+ const std::vector< std::pair<int,int> >& dadsI=ret[i];
+ const std::vector<TypeOfField>& typesFI=typesF[i];
+ const std::vector<std::string>& pflsI=pfls[i];
+ const std::vector<std::string>& locsI=locs[i];
+ PyObject *elt=PyTuple_New(2);
+ PyTuple_SetItem(elt,0,SWIG_From_int(types[i]));
+ int sz2=ret[i].size();
+ PyObject *elt2=PyList_New(sz2);
+ for(int j=0;j<sz2;j++)
+ {
+ PyObject *elt3=PyTuple_New(4);
+ PyTuple_SetItem(elt3,0,SWIG_From_int(typesFI[j]));
+ PyObject *elt4=PyTuple_New(2); PyTuple_SetItem(elt4,0,SWIG_From_int(dadsI[j].first)); PyTuple_SetItem(elt4,1,SWIG_From_int(dadsI[j].second));
+ PyTuple_SetItem(elt3,1,elt4);
+ PyTuple_SetItem(elt3,2,PyString_FromString(pflsI[j].c_str()));
+ PyTuple_SetItem(elt3,3,PyString_FromString(locsI[j].c_str()));
+ PyList_SetItem(elt2,j,elt3);
+ }
+ PyTuple_SetItem(elt,1,elt2);
+ PyList_SetItem(ret2,i,elt);
+ }
+ return ret2;
+ }
+
+ std::vector<int> getTimeIds(PyObject *elts) const throw(INTERP_KERNEL::Exception)
+ {
+ if(PyList_Check(elts))
+ {
+ int sz=PyList_Size(elts);
+ std::vector<int> ret(sz);
+ for(int i=0;i<sz;i++)
+ {
+ PyObject *elt=PyList_GetItem(elts,i);
+ ret[i]=MEDCoupling_MEDFileAnyTypeFieldMultiTS_getTimeId(self,elt);
+ }
+ return ret;
+ }
+ else
+ {
+ std::vector<int> ret(1);
+ ret[0]=MEDCoupling_MEDFileAnyTypeFieldMultiTS_getTimeId(self,elts);
+ return ret;
+ }
+ }
+
+ void __delitem__(PyObject *elts) throw(INTERP_KERNEL::Exception)
+ {
+ if(PySlice_Check(elts))
+ {
+ Py_ssize_t strt=2,stp=2,step=2;
+ GetIndicesOfSlice(elts,self->getNumberOfTS(),&strt,&stp,&step,"MEDFileAnyTypeFieldMultiTS.__delitem__ : error in input slice !");
+ self->eraseTimeStepIds2(strt,stp,step);
+ }
+ else
+ {
+ std::vector<int> idsToRemove=MEDCoupling_MEDFileAnyTypeFieldMultiTS_getTimeIds(self,elts);
+ if(!idsToRemove.empty())
+ self->eraseTimeStepIds(&idsToRemove[0],&idsToRemove[0]+idsToRemove.size());
+ }
+ }
+
+ void eraseTimeStepIds(PyObject *li) throw(INTERP_KERNEL::Exception)
+ {
+ int sw;
+ int pos1;
+ std::vector<int> pos2;
+ DataArrayInt *pos3=0;
+ DataArrayIntTuple *pos4=0;
+ convertIntStarLikePyObjToCpp(li,sw,pos1,pos2,pos3,pos4);
+ switch(sw)
+ {
+ case 1:
+ {
+ self->eraseTimeStepIds(&pos1,&pos1+1);
+ return;
+ }
+ case 2:
+ {
+ if(pos2.empty())
+ return;
+ self->eraseTimeStepIds(&pos2[0],&pos2[0]+pos2.size());
+ return ;
+ }
+ case 3:
+ {
+ self->eraseTimeStepIds(pos3->begin(),pos3->end());
+ return ;
+ }
+ default:
+ throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTS::eraseTimeStepIds : unexpected input array type recognized !");
+ }
+ }
+
+ MEDFileAnyTypeFieldMultiTSIterator *__iter__() throw(INTERP_KERNEL::Exception)
+ {
+ return self->iterator();
+ }
+
+ PyObject *__getitem__(PyObject *elt0) const throw(INTERP_KERNEL::Exception)
+ {
+ if(elt0 && PyList_Check(elt0))
+ {
+ int sz=PyList_Size(elt0);
+ MCAuto<DataArrayInt> da=DataArrayInt::New(); da->alloc(sz,1);
+ int *pt=da->getPointer();
+ for(int i=0;i<sz;i++,pt++)
+ {
+ PyObject *elt1=PyList_GetItem(elt0,i);
+ *pt=MEDFileAnyTypeFieldMultiTSgetitemSingleTS__(self,elt1);
+ }
+ return convertMEDFileFieldMultiTS(self->buildSubPart(da->begin(),da->end()),SWIG_POINTER_OWN | 0);
+ }
+ else if(elt0 && PySlice_Check(elt0))
+ {
+ Py_ssize_t strt=2,stp=2,step=2;
+ GetIndicesOfSlice(elt0,self->getNumberOfTS(),&strt,&stp,&step,"MEDFileAnyTypeFieldMultiTS.__getitem__ : error in input slice !");
+ return convertMEDFileFieldMultiTS(self->buildSubPartSlice(strt,stp,step),SWIG_POINTER_OWN | 0);
+ }
+ else
+ return convertMEDFileField1TS(self->getTimeStepAtPos(MEDFileAnyTypeFieldMultiTSgetitemSingleTS__(self,elt0)),SWIG_POINTER_OWN | 0);
+ }
+
+ bool changeMeshNames(PyObject *li) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector< std::pair<std::string,std::string> > modifTab=convertVecPairStStFromPy(li);
+ return self->changeMeshNames(modifTab);
+ }
+
+ PyObject *splitComponents() const throw(INTERP_KERNEL::Exception)
+ {
+ std::vector< MCAuto< MEDFileAnyTypeFieldMultiTS > > ret=self->splitComponents();
+ std::size_t sz=ret.size();
+ PyObject *retPy=PyList_New(sz);
+ for(std::size_t i=0;i<sz;i++)
+ PyList_SetItem(retPy,i,convertMEDFileFieldMultiTS(ret[i].retn(), SWIG_POINTER_OWN | 0 ));
+ return retPy;
+ }
+
+ PyObject *splitDiscretizations() const throw(INTERP_KERNEL::Exception)
+ {
+ std::vector< MCAuto< MEDFileAnyTypeFieldMultiTS > > ret=self->splitDiscretizations();
+ std::size_t sz=ret.size();
+ PyObject *retPy=PyList_New(sz);
+ for(std::size_t i=0;i<sz;i++)
+ PyList_SetItem(retPy,i,convertMEDFileFieldMultiTS(ret[i].retn(), SWIG_POINTER_OWN | 0 ));
+ return retPy;
+ }
+
+ PyObject *splitMultiDiscrPerGeoTypes() const throw(INTERP_KERNEL::Exception)
+ {
+ std::vector< MCAuto< MEDFileAnyTypeFieldMultiTS > > ret=self->splitMultiDiscrPerGeoTypes();
+ std::size_t sz=ret.size();
+ PyObject *retPy=PyList_New(sz);
+ for(std::size_t i=0;i<sz;i++)
+ PyList_SetItem(retPy,i,convertMEDFileFieldMultiTS(ret[i].retn(), SWIG_POINTER_OWN | 0 ));
+ return retPy;
+ }
+
+ void pushBackTimeSteps(PyObject *li) throw(INTERP_KERNEL::Exception)
+ {
+ void *argp(0);
+ int status(SWIG_ConvertPtr(li,&argp,SWIGTYPE_p_MEDCoupling__MEDFileAnyTypeFieldMultiTS,0|0));
+ if(SWIG_IsOK(status))
+ {
+ self->pushBackTimeSteps(reinterpret_cast<MEDFileAnyTypeFieldMultiTS *>(argp));
+ }
+ else
+ {
+ std::vector<MEDFileAnyTypeField1TS *> tmp;
+ convertFromPyObjVectorOfObj<MEDCoupling::MEDFileAnyTypeField1TS *>(li,SWIGTYPE_p_MEDCoupling__MEDFileAnyTypeField1TS,"MEDFileAnyTypeField1TS",tmp);
+ self->pushBackTimeSteps(tmp);
+ }
+ }
+
+ MEDFileAnyTypeFieldMultiTS *extractPart(PyObject *extractDef, MEDFileMesh *mm) const throw(INTERP_KERNEL::Exception)
+ {
+ std::map<int, MCAuto<DataArrayInt> > extractDefCpp;
+ convertToMapIntDataArrayInt(extractDef,extractDefCpp);
+ return self->extractPart(extractDefCpp,mm);
+ }
+
+ static PyObject *MEDFileAnyTypeFieldMultiTS::SplitIntoCommonTimeSeries(PyObject *li) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<MEDFileAnyTypeFieldMultiTS *> vectFMTS;
+ convertFromPyObjVectorOfObj<MEDCoupling::MEDFileAnyTypeFieldMultiTS *>(li,SWIGTYPE_p_MEDCoupling__MEDFileAnyTypeFieldMultiTS,"MEDFileAnyTypeFieldMultiTS",vectFMTS);
+ std::vector< std::vector<MEDFileAnyTypeFieldMultiTS *> > ret=MEDFileAnyTypeFieldMultiTS::SplitIntoCommonTimeSeries(vectFMTS);
+ std::size_t sz=ret.size();
+ PyObject *retPy=PyList_New(sz);
+ for(std::size_t i=0;i<sz;i++)
+ {
+ std::size_t sz2=ret[i].size();
+ PyObject *ret1Py=PyList_New(sz2);
+ for(std::size_t j=0;j<sz2;j++)
+ {
+ MEDFileAnyTypeFieldMultiTS *elt(ret[i][j]);
+ if(elt)
+ elt->incrRef();
+ PyList_SetItem(ret1Py,j,convertMEDFileFieldMultiTS(elt,SWIG_POINTER_OWN | 0 ));
+ }
+ PyList_SetItem(retPy,i,ret1Py);
+ }
+ return retPy;
+ }
+
+ static PyObject *MEDFileAnyTypeFieldMultiTS::SplitPerCommonSupport(PyObject *li, const MEDFileMesh *mesh) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<MEDFileAnyTypeFieldMultiTS *> vectFMTS;
+ convertFromPyObjVectorOfObj<MEDCoupling::MEDFileAnyTypeFieldMultiTS *>(li,SWIGTYPE_p_MEDCoupling__MEDFileAnyTypeFieldMultiTS,"MEDFileAnyTypeFieldMultiTS",vectFMTS);
+ std::vector< MCAuto<MEDFileFastCellSupportComparator> > ret2;
+ std::vector< std::vector<MEDFileAnyTypeFieldMultiTS *> > ret=MEDFileAnyTypeFieldMultiTS::SplitPerCommonSupport(vectFMTS,mesh,ret2);
+ if(ret2.size()!=ret.size())
+ {
+ std::ostringstream oss; oss << "MEDFileAnyTypeFieldMultiTS::SplitPerCommonSupport (PyWrap) : internal error ! Size of 2 vectors must match ! (" << ret.size() << "!=" << ret2.size() << ") !";
+ throw INTERP_KERNEL::Exception(oss.str().c_str());
+ }
+ std::size_t sz=ret.size();
+ PyObject *retPy=PyList_New(sz);
+ for(std::size_t i=0;i<sz;i++)
+ {
+ std::size_t sz2=ret[i].size();
+ PyObject *ret0Py=PyTuple_New(2);
+ PyObject *ret1Py=PyList_New(sz2);
+ for(std::size_t j=0;j<sz2;j++)
+ {
+ MEDFileAnyTypeFieldMultiTS *elt(ret[i][j]);
+ if(elt)
+ elt->incrRef();
+ PyList_SetItem(ret1Py,j,convertMEDFileFieldMultiTS(elt,SWIG_POINTER_OWN | 0 ));
+ }
+ PyTuple_SetItem(ret0Py,0,ret1Py);
+ PyTuple_SetItem(ret0Py,1,SWIG_NewPointerObj(SWIG_as_voidptr(ret2[i].retn()),SWIGTYPE_p_MEDCoupling__MEDFileFastCellSupportComparator, SWIG_POINTER_OWN | 0 ));
+ PyList_SetItem(retPy,i,ret0Py);
+ }
+ return retPy;
+ }
+ }
+ };
+
+ class MEDFileIntFieldMultiTS;
+
+ class MEDFileFieldMultiTS : public MEDFileAnyTypeFieldMultiTS
+ {
+ public:
+ static MEDFileFieldMultiTS *New() throw(INTERP_KERNEL::Exception);
+ static MEDFileFieldMultiTS *New(const std::string& fileName, bool loadAll=true) throw(INTERP_KERNEL::Exception);
+ static MEDFileFieldMultiTS *New(const std::string& fileName, const std::string& fieldName, bool loadAll=true) throw(INTERP_KERNEL::Exception);
+ static MEDFileFieldMultiTS *New(DataArrayByte *db) throw(INTERP_KERNEL::Exception);
+ //
+ MEDCouplingFieldDouble *field(int iteration, int order, const MEDFileMesh *mesh) const throw(INTERP_KERNEL::Exception);
+ MEDCouplingFieldDouble *getFieldAtLevel(TypeOfField type, int iteration, int order, int meshDimRelToMax, int renumPol=0) const throw(INTERP_KERNEL::Exception);
+ MEDCouplingFieldDouble *getFieldAtTopLevel(TypeOfField type, int iteration, int order, int renumPol=0) const throw(INTERP_KERNEL::Exception);
+ MEDCouplingFieldDouble *getFieldOnMeshAtLevel(TypeOfField type, int iteration, int order, int meshDimRelToMax, const MEDFileMesh *mesh, int renumPol=0) const throw(INTERP_KERNEL::Exception);
+ MEDCouplingFieldDouble *getFieldOnMeshAtLevel(TypeOfField type, int iteration, int order, const MEDCouplingMesh *mesh, int renumPol=0) const throw(INTERP_KERNEL::Exception);
+ MEDCouplingFieldDouble *getFieldAtLevelOld(TypeOfField type, int iteration, int order, const std::string& mname, int meshDimRelToMax, int renumPol=0) const throw(INTERP_KERNEL::Exception);
+ //
+ void appendFieldNoProfileSBT(const MEDCouplingFieldDouble *field) throw(INTERP_KERNEL::Exception);
+ void appendFieldProfile(const MEDCouplingFieldDouble *field, const MEDFileMesh *mesh, int meshDimRelToMax, const DataArrayInt *profile) throw(INTERP_KERNEL::Exception);
+ MEDFileIntFieldMultiTS *convertToInt(bool isDeepCpyGlobs=true) const throw(INTERP_KERNEL::Exception);
+ %extend
+ {
+ MEDFileFieldMultiTS()
+ {
+ return MEDFileFieldMultiTS::New();
+ }
+
+ MEDFileFieldMultiTS(const std::string& fileName, bool loadAll=true) throw(INTERP_KERNEL::Exception)
+ {
+ return MEDFileFieldMultiTS::New(fileName,loadAll);
+ }
+
+ MEDFileFieldMultiTS(const std::string& fileName, const std::string& fieldName, bool loadAll=true) throw(INTERP_KERNEL::Exception)
+ {
+ return MEDFileFieldMultiTS::New(fileName,fieldName,loadAll);
+ }
+
+ MEDFileFieldMultiTS(DataArrayByte *db) throw(INTERP_KERNEL::Exception)
+ {
+ return MEDFileFieldMultiTS::New(db);
+ }
+
+ static MEDFileFieldMultiTS *LoadSpecificEntities(const std::string& fileName, const std::string& fieldName, PyObject *entities, bool loadAll=true)
+ {
+ std::vector<std::pair<int,int> > tmp(convertTimePairIdsFromPy(entities));
+ std::size_t sz(tmp.size());
+ std::vector< std::pair<TypeOfField,INTERP_KERNEL::NormalizedCellType> > entitiesCpp(sz);
+ for(std::size_t i=0;i<sz;i++)
+ {
+ entitiesCpp[i].first=(TypeOfField)tmp[i].first;
+ entitiesCpp[i].second=(INTERP_KERNEL::NormalizedCellType)tmp[i].second;
+ }
+ return MEDFileFieldMultiTS::LoadSpecificEntities(fileName,fieldName,entitiesCpp,loadAll);
+ }
+
+ std::string __str__() const throw(INTERP_KERNEL::Exception)
+ {
+ return self->simpleRepr();
+ }
+
+ PyObject *getFieldWithProfile(TypeOfField type, int iteration, int order, int meshDimRelToMax, const MEDFileMesh *mesh) const throw(INTERP_KERNEL::Exception)
+ {
+ DataArrayInt *ret1=0;
+ DataArrayDouble *ret0=self->getFieldWithProfile(type,iteration,order,meshDimRelToMax,mesh,ret1);
+ PyObject *ret=PyTuple_New(2);
+ 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;
+ }
+
+ PyObject *getFieldSplitedByType2(int iteration, int order, const std::string& mname=std::string()) const throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<INTERP_KERNEL::NormalizedCellType> types;
+ std::vector< std::vector<TypeOfField> > typesF;
+ std::vector< std::vector<std::string> > pfls;
+ std::vector< std::vector<std::string> > locs;
+ std::vector< std::vector<DataArrayDouble *> > ret=self->getFieldSplitedByType2(iteration,order,mname,types,typesF,pfls,locs);
+ int sz=ret.size();
+ PyObject *ret2=PyList_New(sz);
+ for(int i=0;i<sz;i++)
+ {
+ const std::vector<DataArrayDouble *>& dadsI=ret[i];
+ const std::vector<TypeOfField>& typesFI=typesF[i];
+ const std::vector<std::string>& pflsI=pfls[i];
+ const std::vector<std::string>& locsI=locs[i];
+ PyObject *elt=PyTuple_New(2);
+ PyTuple_SetItem(elt,0,SWIG_From_int(types[i]));
+ int sz2=ret[i].size();
+ PyObject *elt2=PyList_New(sz2);
+ for(int j=0;j<sz2;j++)
+ {
+ PyObject *elt3=PyTuple_New(4);
+ PyTuple_SetItem(elt3,0,SWIG_From_int(typesFI[j]));
+ PyTuple_SetItem(elt3,1,SWIG_NewPointerObj(SWIG_as_voidptr(dadsI[j]),SWIGTYPE_p_MEDCoupling__DataArrayDouble, SWIG_POINTER_OWN | 0 ));
+ PyTuple_SetItem(elt3,2,PyString_FromString(pflsI[j].c_str()));
+ PyTuple_SetItem(elt3,3,PyString_FromString(locsI[j].c_str()));
+ PyList_SetItem(elt2,j,elt3);
+ }
+ PyTuple_SetItem(elt,1,elt2);
+ PyList_SetItem(ret2,i,elt);
+ }
+ return ret2;
+ }
+ DataArrayDouble *getUndergroundDataArray(int iteration, int order) const throw(INTERP_KERNEL::Exception)
+ {
+ DataArrayDouble *ret=self->getUndergroundDataArray(iteration,order);
+ if(ret)
+ ret->incrRef();
+ return ret;
+ }
+
+ PyObject *getUndergroundDataArrayExt(int iteration, int order) const throw(INTERP_KERNEL::Exception)
+ {
+ std::vector< std::pair<std::pair<INTERP_KERNEL::NormalizedCellType,int>,std::pair<int,int> > > elt1Cpp;
+ DataArrayDouble *elt0=self->getUndergroundDataArrayExt(iteration,order,elt1Cpp);
+ if(elt0)
+ elt0->incrRef();
+ PyObject *ret=PyTuple_New(2);
+ PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(elt0),SWIGTYPE_p_MEDCoupling__DataArrayDouble, SWIG_POINTER_OWN | 0 ));
+ std::size_t sz=elt1Cpp.size();
+ PyObject *elt=PyList_New(sz);
+ for(std::size_t i=0;i<sz;i++)
+ {
+ PyObject *elt1=PyTuple_New(2);
+ PyObject *elt2=PyTuple_New(2);
+ PyTuple_SetItem(elt2,0,SWIG_From_int(elt1Cpp[i].first.first));
+ PyTuple_SetItem(elt2,1,SWIG_From_int(elt1Cpp[i].first.second));
+ PyObject *elt3=PyTuple_New(2);
+ PyTuple_SetItem(elt3,0,SWIG_From_int(elt1Cpp[i].second.first));
+ PyTuple_SetItem(elt3,1,SWIG_From_int(elt1Cpp[i].second.second));
+ PyTuple_SetItem(elt1,0,elt2);
+ PyTuple_SetItem(elt1,1,elt3);
+ PyList_SetItem(elt,i,elt1);
+ }
+ PyTuple_SetItem(ret,1,elt);
+ return ret;
+ }
+ }
+ };
+
+ class MEDFileFieldsIterator
+ {
+ public:
+ %extend
+ {
+ PyObject *next() throw(INTERP_KERNEL::Exception)
+ {
+ MEDFileAnyTypeFieldMultiTS *ret=self->nextt();
+ if(ret)
+ return convertMEDFileFieldMultiTS(ret, SWIG_POINTER_OWN | 0 );
+ else
+ {
+ PyErr_SetString(PyExc_StopIteration,"No more data.");
+ return 0;
+ }
+ }
+ }
+ };
+
+ class MEDFileIntFieldMultiTS : public MEDFileAnyTypeFieldMultiTS
+ {
+ public:
+ static MEDFileIntFieldMultiTS *New();
+ static MEDFileIntFieldMultiTS *New(const std::string& fileName, bool loadAll=true) throw(INTERP_KERNEL::Exception);
+ static MEDFileIntFieldMultiTS *New(const std::string& fileName, const std::string& fieldName, bool loadAll=true) throw(INTERP_KERNEL::Exception);
+ static MEDFileIntFieldMultiTS *New(DataArrayByte *db) throw(INTERP_KERNEL::Exception);
+ //
+ void appendFieldNoProfileSBT(const MEDCouplingFieldInt *field) throw(INTERP_KERNEL::Exception);
+ void appendFieldProfile(const MEDCouplingFieldInt *field, const MEDFileMesh *mesh, int meshDimRelToMax, const DataArrayInt *profile) throw(INTERP_KERNEL::Exception);
+ MEDCoupling::MEDFileFieldMultiTS *convertToDouble(bool isDeepCpyGlobs=true) const throw(INTERP_KERNEL::Exception);
+ MEDCouplingFieldInt *field(int iteration, int order, const MEDFileMesh *mesh) const throw(INTERP_KERNEL::Exception);
+ MEDCouplingFieldInt *getFieldAtLevel(TypeOfField type, int iteration, int order, int meshDimRelToMax, int renumPol=0) const throw(INTERP_KERNEL::Exception);
+ MEDCouplingFieldInt *getFieldAtTopLevel(TypeOfField type, int iteration, int order, int renumPol=0) const throw(INTERP_KERNEL::Exception);
+ MEDCouplingFieldInt *getFieldOnMeshAtLevel(TypeOfField type, int iteration, int order, int meshDimRelToMax, const MEDFileMesh *mesh, int renumPol=0) const throw(INTERP_KERNEL::Exception);
+ MEDCouplingFieldInt *getFieldOnMeshAtLevel(TypeOfField type, int iteration, int order, const MEDCouplingMesh *mesh, int renumPol=0) const throw(INTERP_KERNEL::Exception);
+ MEDCouplingFieldInt *getFieldAtLevelOld(TypeOfField type, int iteration, int order, const std::string& mname, int meshDimRelToMax, int renumPol=0) const throw(INTERP_KERNEL::Exception);
+ %extend
+ {
+ MEDFileIntFieldMultiTS()
+ {
+ return MEDFileIntFieldMultiTS::New();
+ }
+
+ MEDFileIntFieldMultiTS(const std::string& fileName, bool loadAll=true) throw(INTERP_KERNEL::Exception)
+ {
+ return MEDFileIntFieldMultiTS::New(fileName,loadAll);
+ }
+
+ MEDFileIntFieldMultiTS(const std::string& fileName, const std::string& fieldName, bool loadAll=true) throw(INTERP_KERNEL::Exception)
+ {
+ return MEDFileIntFieldMultiTS::New(fileName,fieldName,loadAll);
+ }
+
+ MEDFileIntFieldMultiTS(DataArrayByte *db) throw(INTERP_KERNEL::Exception)
+ {
+ return MEDFileIntFieldMultiTS::New(db);
+ }
+
+ static MEDFileIntFieldMultiTS *LoadSpecificEntities(const std::string& fileName, const std::string& fieldName, PyObject *entities, bool loadAll=true)
+ {
+ std::vector<std::pair<int,int> > tmp(convertTimePairIdsFromPy(entities));
+ std::vector< std::pair<TypeOfField,INTERP_KERNEL::NormalizedCellType> > entitiesCpp(convertVecPairIntToVecPairTOFCT(tmp));
+ return MEDFileIntFieldMultiTS::LoadSpecificEntities(fileName,fieldName,entitiesCpp,loadAll);
+ }
+
+ std::string __str__() const throw(INTERP_KERNEL::Exception)
+ {
+ return self->simpleRepr();
+ }
+
+ PyObject *getFieldWithProfile(TypeOfField type, int iteration, int order, int meshDimRelToMax, const MEDFileMesh *mesh) const throw(INTERP_KERNEL::Exception)
+ {
+ DataArrayInt *ret1=0;
+ DataArrayInt *ret0=self->getFieldWithProfile(type,iteration,order,meshDimRelToMax,mesh,ret1);
+ PyObject *ret=PyTuple_New(2);
+ 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;
+ }
+
+ DataArrayInt *getUndergroundDataArray(int iteration, int order) const throw(INTERP_KERNEL::Exception)
+ {
+ DataArrayInt *ret=self->getUndergroundDataArray(iteration,order);
+ if(ret)
+ ret->incrRef();
+ return ret;
+ }
+ }
+ };
+
+ class MEDFileFloatFieldMultiTS : public MEDFileAnyTypeFieldMultiTS
+ {
+ public:
+ static MEDFileFloatFieldMultiTS *New();
+ static MEDFileFloatFieldMultiTS *New(const std::string& fileName, bool loadAll=true) throw(INTERP_KERNEL::Exception);
+ static MEDFileFloatFieldMultiTS *New(const std::string& fileName, const std::string& fieldName, bool loadAll=true) throw(INTERP_KERNEL::Exception);
+ static MEDFileFloatFieldMultiTS *New(DataArrayByte *db) throw(INTERP_KERNEL::Exception);
+ //
+ void appendFieldNoProfileSBT(const MEDCouplingFieldFloat *field) throw(INTERP_KERNEL::Exception);
+ void appendFieldProfile(const MEDCouplingFieldFloat *field, const MEDFileMesh *mesh, int meshDimRelToMax, const DataArrayInt *profile) throw(INTERP_KERNEL::Exception);
+ MEDCoupling::MEDFileFieldMultiTS *convertToDouble(bool isDeepCpyGlobs=true) const throw(INTERP_KERNEL::Exception);
+ MEDCouplingFieldFloat *field(int iteration, int order, const MEDFileMesh *mesh) const throw(INTERP_KERNEL::Exception);
+ MEDCouplingFieldFloat *getFieldAtLevel(TypeOfField type, int iteration, int order, int meshDimRelToMax, int renumPol=0) const throw(INTERP_KERNEL::Exception);
+ MEDCouplingFieldFloat *getFieldAtTopLevel(TypeOfField type, int iteration, int order, int renumPol=0) const throw(INTERP_KERNEL::Exception);
+ MEDCouplingFieldFloat *getFieldOnMeshAtLevel(TypeOfField type, int iteration, int order, int meshDimRelToMax, const MEDFileMesh *mesh, int renumPol=0) const throw(INTERP_KERNEL::Exception);
+ MEDCouplingFieldFloat *getFieldOnMeshAtLevel(TypeOfField type, int iteration, int order, const MEDCouplingMesh *mesh, int renumPol=0) const throw(INTERP_KERNEL::Exception);
+ MEDCouplingFieldFloat *getFieldAtLevelOld(TypeOfField type, int iteration, int order, const std::string& mname, int meshDimRelToMax, int renumPol=0) const throw(INTERP_KERNEL::Exception);
+ %extend
+ {
+ MEDFileFloatFieldMultiTS()
+ {
+ return MEDFileFloatFieldMultiTS::New();
+ }
+
+ MEDFileFloatFieldMultiTS(const std::string& fileName, bool loadAll=true) throw(INTERP_KERNEL::Exception)
+ {
+ return MEDFileFloatFieldMultiTS::New(fileName,loadAll);
+ }
+
+ MEDFileFloatFieldMultiTS(const std::string& fileName, const std::string& fieldName, bool loadAll=true) throw(INTERP_KERNEL::Exception)
+ {
+ return MEDFileFloatFieldMultiTS::New(fileName,fieldName,loadAll);
+ }
+
+ MEDFileFloatFieldMultiTS(DataArrayByte *db) throw(INTERP_KERNEL::Exception)
+ {
+ return MEDFileFloatFieldMultiTS::New(db);
+ }
+
+ static MEDFileFloatFieldMultiTS *LoadSpecificEntities(const std::string& fileName, const std::string& fieldName, PyObject *entities, bool loadAll=true)
+ {
+ std::vector<std::pair<int,int> > tmp(convertTimePairIdsFromPy(entities));
+ std::vector< std::pair<TypeOfField,INTERP_KERNEL::NormalizedCellType> > entitiesCpp(convertVecPairIntToVecPairTOFCT(tmp));
+ return MEDFileFloatFieldMultiTS::LoadSpecificEntities(fileName,fieldName,entitiesCpp,loadAll);
+ }
+
+ std::string __str__() const throw(INTERP_KERNEL::Exception)
+ {
+ return self->simpleRepr();
+ }
+
+ PyObject *getFieldWithProfile(TypeOfField type, int iteration, int order, int meshDimRelToMax, const MEDFileMesh *mesh) const throw(INTERP_KERNEL::Exception)
+ {
+ DataArrayInt *ret1=0;
+ DataArrayFloat *ret0=self->getFieldWithProfile(type,iteration,order,meshDimRelToMax,mesh,ret1);
+ PyObject *ret=PyTuple_New(2);
+ PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(ret0),SWIGTYPE_p_MEDCoupling__DataArrayFloat, SWIG_POINTER_OWN | 0 ));
+ PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(ret1),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ));
+ return ret;
+ }
+
+ DataArrayFloat *getUndergroundDataArray(int iteration, int order) const throw(INTERP_KERNEL::Exception)
+ {
+ DataArrayFloat *ret=self->getUndergroundDataArray(iteration,order);
+ if(ret)
+ ret->incrRef();
+ return ret;
+ }
+ }
+ };
+
+ class MEDFileMeshSupports : public RefCountObject, public MEDFileWritableStandAlone
+ {
+ public:
+ static MEDFileMeshSupports *New(const std::string& fileName) throw(INTERP_KERNEL::Exception);
+ std::vector<std::string> getSupMeshNames() const throw(INTERP_KERNEL::Exception);
+ %extend
+ {
+ MEDFileUMesh *getSupMeshWithName(const std::string& name) const throw(INTERP_KERNEL::Exception)
+ {
+ const MEDFileUMesh *ret(self->getSupMeshWithName(name));
+ MEDFileUMesh *ret2(const_cast<MEDFileUMesh *>(ret));
+ if(ret2)
+ ret2->incrRef();
+ return ret2;
+ }
+ }
+ };
+
+ class MEDFileStructureElements : public RefCountObject, public MEDFileWritableStandAlone
+ {
+ public:
+ static MEDFileStructureElements *New(const std::string& fileName, const MEDFileMeshSupports *ms) throw(INTERP_KERNEL::Exception);
+ private:
+ MEDFileStructureElements();
+ };
+
+ class MEDFileFields : public RefCountObject, public MEDFileFieldGlobsReal, public MEDFileWritableStandAlone
+ {
+ public:
+ static MEDFileFields *New() throw(INTERP_KERNEL::Exception);
+ static MEDFileFields *New(const std::string& fileName, bool loadAll=true) throw(INTERP_KERNEL::Exception);
+ static MEDFileFields *New(DataArrayByte *db) throw(INTERP_KERNEL::Exception);
+ static MEDFileFields *NewAdv(const std::string& fileName, bool loadAll, const MEDFileEntities *entities) throw(INTERP_KERNEL::Exception);
+ static MEDFileFields *LoadPartOf(const std::string& fileName, bool loadAll=true, const MEDFileMeshes *ms=0) throw(INTERP_KERNEL::Exception);
+ static MEDFileFields *NewWithDynGT(const std::string& fileName, const MEDFileStructureElements *se, bool loadAll=true) throw(INTERP_KERNEL::Exception);
+ MEDFileFields *deepCopy() const throw(INTERP_KERNEL::Exception);
+ MEDFileFields *shallowCpy() const throw(INTERP_KERNEL::Exception);
+ void loadArrays() throw(INTERP_KERNEL::Exception);
+ void loadArraysIfNecessary() throw(INTERP_KERNEL::Exception);
+ void unloadArrays() throw(INTERP_KERNEL::Exception);
+ void unloadArraysWithoutDataLoss() throw(INTERP_KERNEL::Exception);
+ int getNumberOfFields() const;
+ std::vector<std::string> getFieldsNames() const throw(INTERP_KERNEL::Exception);
+ std::vector<std::string> getMeshesNames() const throw(INTERP_KERNEL::Exception);
+ //
+ void resize(int newSize) throw(INTERP_KERNEL::Exception);
+ void pushField(MEDFileAnyTypeFieldMultiTS *field) throw(INTERP_KERNEL::Exception);
+ void setFieldAtPos(int i, MEDFileAnyTypeFieldMultiTS *field) throw(INTERP_KERNEL::Exception);
+ int getPosFromFieldName(const std::string& fieldName) const throw(INTERP_KERNEL::Exception);
+ MEDFileAnyTypeFieldMultiTS *getFieldAtPos(int i) const throw(INTERP_KERNEL::Exception);
+ MEDFileAnyTypeFieldMultiTS *getFieldWithName(const std::string& fieldName) const throw(INTERP_KERNEL::Exception);
+ MEDFileFields *partOfThisLyingOnSpecifiedMeshName(const std::string& meshName) const throw(INTERP_KERNEL::Exception);
+ bool presenceOfStructureElements() const throw(INTERP_KERNEL::Exception);
+ void aggregate(const MEDFileFields& other) throw(INTERP_KERNEL::Exception);
+ void killStructureElements() throw(INTERP_KERNEL::Exception);
+ void keepOnlyStructureElements() throw(INTERP_KERNEL::Exception);
+ void keepOnlyOnMeshSE(const std::string& meshName, const std::string& seName) throw(INTERP_KERNEL::Exception);
+ void blowUpSE(MEDFileMeshes *ms, const MEDFileStructureElements *ses) throw(INTERP_KERNEL::Exception);
+ void destroyFieldAtPos(int i) throw(INTERP_KERNEL::Exception);
+ bool removeFieldsWithoutAnyTimeStep() throw(INTERP_KERNEL::Exception);
+ %extend
+ {
+ MEDFileFields()
+ {
+ return MEDFileFields::New();
+ }
+
+ MEDFileFields(const std::string& fileName, bool loadAll=true) throw(INTERP_KERNEL::Exception)
+ {
+ return MEDFileFields::New(fileName,loadAll);
+ }
+
+ MEDFileFields(DataArrayByte *db) throw(INTERP_KERNEL::Exception)
+ {
+ return MEDFileFields::New(db);
+ }
+
+ MEDFileFields(const std::string& fileName, bool loadAll, const MEDFileEntities *entities) throw(INTERP_KERNEL::Exception)
+ {
+ return MEDFileFields::NewAdv(fileName,loadAll,entities);
+ }
+
+ std::string __str__() const throw(INTERP_KERNEL::Exception)
+ {
+ return self->simpleRepr();
+ }
+
+ MEDFileFields *partOfThisOnStructureElements() const throw(INTERP_KERNEL::Exception)
+ {
+ MCAuto<MEDFileFields> ret(self->partOfThisOnStructureElements());
+ return ret.retn();
+ }
+
+ MEDFileFields *partOfThisLyingOnSpecifiedMeshSEName(const std::string& meshName, const std::string& seName) const throw(INTERP_KERNEL::Exception)
+ {
+ MCAuto<MEDFileFields> ret(self->partOfThisLyingOnSpecifiedMeshSEName(meshName,seName));
+ return ret.retn();
+ }
+
+ static MEDFileFields *LoadSpecificEntities(const std::string& fileName, PyObject *entities, bool loadAll=true) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<std::pair<int,int> > tmp(convertTimePairIdsFromPy(entities));
+ std::size_t sz(tmp.size());
+ std::vector< std::pair<TypeOfField,INTERP_KERNEL::NormalizedCellType> > entitiesCpp(sz);
+ for(std::size_t i=0;i<sz;i++)
+ {
+ entitiesCpp[i].first=(TypeOfField)tmp[i].first;
+ entitiesCpp[i].second=(INTERP_KERNEL::NormalizedCellType)tmp[i].second;
+ }
+ return MEDFileFields::LoadSpecificEntities(fileName,entitiesCpp,loadAll);
+ }
+
+ PyObject *getMeshSENames() const throw(INTERP_KERNEL::Exception)
+ {
+ std::vector< std::pair<std::string,std::string> > ps;
+ self->getMeshSENames(ps);
+ return convertVectPairStToPy(ps);
+ }
+
+ PyObject *getCommonIterations() const throw(INTERP_KERNEL::Exception)
+ {
+ bool ret1;
+ std::vector< std::pair<int,int> > ret0=self->getCommonIterations(ret1);
+ PyObject *ret=PyTuple_New(2);
+ PyObject *ret_0=PyList_New(ret0.size());
+ int rk=0;
+ for(std::vector< std::pair<int,int> >::const_iterator iter=ret0.begin();iter!=ret0.end();iter++,rk++)
+ {
+ PyObject *elt=PyTuple_New(2);
+ PyTuple_SetItem(elt,0,SWIG_From_int((*iter).first));
+ PyTuple_SetItem(elt,1,SWIG_From_int((*iter).second));
+ PyList_SetItem(ret_0,rk,elt);
+ }
+ PyTuple_SetItem(ret,0,ret_0);
+ PyObject *ret_1=ret1?Py_True:Py_False; Py_XINCREF(ret_1);
+ PyTuple_SetItem(ret,1,ret_1);
+ return ret;
+ }
+
+ MEDFileFields *partOfThisLyingOnSpecifiedTimeSteps(PyObject *timeSteps) const throw(INTERP_KERNEL::Exception)
+ {
+ std::vector< std::pair<int,int> > ts=convertTimePairIdsFromPy(timeSteps);
+ return self->partOfThisLyingOnSpecifiedTimeSteps(ts);
+ }
+
+ MEDFileFields *partOfThisNotLyingOnSpecifiedTimeSteps(PyObject *timeSteps) const throw(INTERP_KERNEL::Exception)
+ {
+ std::vector< std::pair<int,int> > ts=convertTimePairIdsFromPy(timeSteps);
+ return self->partOfThisNotLyingOnSpecifiedTimeSteps(ts);
+ }
+
+ PyObject *__getitem__(PyObject *obj) throw(INTERP_KERNEL::Exception)
+ {
+ if(obj && PyList_Check(obj))
+ {
+ int sz=PyList_Size(obj);
+ MCAuto<DataArrayInt> da=DataArrayInt::New(); da->alloc(sz,1);
+ int *pt=da->getPointer();
+ for(int i=0;i<sz;i++,pt++)
+ {
+ PyObject *elt1=PyList_GetItem(obj,i);
+ *pt=MEDFileFieldsgetitemSingleTS__(self,elt1);
+ }
+ return SWIG_NewPointerObj(SWIG_as_voidptr(self->buildSubPart(da->begin(),da->end())),SWIGTYPE_p_MEDCoupling__MEDFileFields, SWIG_POINTER_OWN | 0 );
+ }
+ else
+ return convertMEDFileFieldMultiTS(self->getFieldAtPos(MEDFileFieldsgetitemSingleTS__(self,obj)), SWIG_POINTER_OWN | 0 );
+ }
+
+ MEDFileFields *__setitem__(int obj, MEDFileFieldMultiTS *field) throw(INTERP_KERNEL::Exception)
+ {
+ self->setFieldAtPos(obj,field);
+ return self;
+ }
+
+ int __len__() const throw(INTERP_KERNEL::Exception)
+ {
+ return self->getNumberOfFields();
+ }
+
+ MEDFileFieldsIterator *__iter__() throw(INTERP_KERNEL::Exception)
+ {
+ return self->iterator();
+ }
+
+ bool changeMeshNames(PyObject *li) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector< std::pair<std::string,std::string> > modifTab=convertVecPairStStFromPy(li);
+ return self->changeMeshNames(modifTab);
+ }
+
+ int getPosOfField(PyObject *elt0) const throw(INTERP_KERNEL::Exception)
+ {
+ static const char msg[]="MEDFileFields::getPosOfField : invalid input params ! expected fields[int], fields[string_of_field_name] !";
+ if(!elt0)
+ throw INTERP_KERNEL::Exception(msg);
+ if(PyInt_Check(elt0))
+ {//fmts[3]
+ return PyInt_AS_LONG(elt0);
+ }
+ return self->getPosFromFieldName(convertPyObjectToStr(elt0,msg));
+ }
+
+ std::vector<int> getPosOfFields(PyObject *elts) const throw(INTERP_KERNEL::Exception)
+ {
+ if(PyList_Check(elts))
+ {
+ int sz=PyList_Size(elts);
+ std::vector<int> ret(sz);
+ for(int i=0;i<sz;i++)
+ {
+ PyObject *elt=PyList_GetItem(elts,i);
+ ret[i]=MEDCoupling_MEDFileFields_getPosOfField(self,elt);
+ }
+ return ret;
+ }
+ else
+ {
+ std::vector<int> ret(1);
+ ret[0]=MEDCoupling_MEDFileFields_getPosOfField(self,elts);
+ return ret;
+ }
+ }
+
+ void pushFields(PyObject *fields) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<MEDFileAnyTypeFieldMultiTS *> tmp;
+ convertFromPyObjVectorOfObj<MEDCoupling::MEDFileAnyTypeFieldMultiTS *>(fields,SWIGTYPE_p_MEDCoupling__MEDFileAnyTypeFieldMultiTS,"MEDFileAnyTypeFieldMultiTS",tmp);
+ self->pushFields(tmp);
+ }
+
+ void __delitem__(PyObject *elts) throw(INTERP_KERNEL::Exception)
+ {
+ if(elts && PySlice_Check(elts))
+ {
+ Py_ssize_t strt=2,stp=2,step=2;
+ GetIndicesOfSlice(elts,self->getNumberOfFields(),&strt,&stp,&step,"MEDFileFields.__delitem__ : error in input slice !");
+ self->destroyFieldsAtPos2(strt,stp,step);
+ }
+ else
+ {
+ std::vector<int> idsToRemove=MEDCoupling_MEDFileFields_getPosOfFields(self,elts);
+ if(!idsToRemove.empty())
+ self->destroyFieldsAtPos(&idsToRemove[0],&idsToRemove[0]+idsToRemove.size());
+ }
+ }
+
+ MEDFileFields *extractPart(PyObject *extractDef, MEDFileMesh *mm) const throw(INTERP_KERNEL::Exception)
+ {
+ std::map<int, MCAuto<DataArrayInt> > extractDefCpp;
+ convertToMapIntDataArrayInt(extractDef,extractDefCpp);
+ return self->extractPart(extractDefCpp,mm);
+ }
+ }
+ };
+
+ class MEDFileParameter1TS : public RefCountObject
+ {
+ public:
+ void setIteration(int it);
+ int getIteration() const;
+ void setOrder(int order);
+ int getOrder() const;
+ void setTimeValue(double time);
+ void setTime(int dt, int it, double time);
+ double getTime(int& dt, int& it);
+ double getTimeValue() const;
+ };
+
+ class MEDFileParameterDouble1TSWTI : public MEDFileParameter1TS
+ {
+ public:
+ void setValue(double val) throw(INTERP_KERNEL::Exception);
+ double getValue() const throw(INTERP_KERNEL::Exception);
+ std::string simpleRepr() const throw(INTERP_KERNEL::Exception);
+ %extend
+ {
+ std::string __str__() const throw(INTERP_KERNEL::Exception)
+ {
+ return self->simpleRepr();
+ }
+ }
+ };
+
+ class MEDFileParameterTinyInfo : public MEDFileWritable
+ {
+ public:
+ void setDescription(const std::string& name);
+ std::string getDescription() const;
+ void setTimeUnit(const std::string& unit);
+ std::string getTimeUnit() const;
+ };
+
+ class MEDFileParameterDouble1TS : public MEDFileParameterDouble1TSWTI, public MEDFileParameterTinyInfo
+ {
+ public:
+ static MEDFileParameterDouble1TS *New();
+ static MEDFileParameterDouble1TS *New(const std::string& fileName) throw(INTERP_KERNEL::Exception);
+ static MEDFileParameterDouble1TS *New(const std::string& fileName, const std::string& paramName) throw(INTERP_KERNEL::Exception);
+ static MEDFileParameterDouble1TS *New(const std::string& fileName, const std::string& paramName, int dt, int it) throw(INTERP_KERNEL::Exception);
+ virtual MEDFileParameter1TS *deepCopy() const throw(INTERP_KERNEL::Exception);
+ virtual std::string simpleRepr() const throw(INTERP_KERNEL::Exception);
+ void setName(const std::string& name) throw(INTERP_KERNEL::Exception);
+ std::string getName() const throw(INTERP_KERNEL::Exception);
+ void write(const std::string& fileName, int mode) const throw(INTERP_KERNEL::Exception);
+ %extend
+ {
+ MEDFileParameterDouble1TS()
+ {
+ return MEDFileParameterDouble1TS::New();
+ }
+
+ MEDFileParameterDouble1TS(const std::string& fileName) throw(INTERP_KERNEL::Exception)
+ {
+ return MEDFileParameterDouble1TS::New(fileName);
+ }
+
+ MEDFileParameterDouble1TS(const std::string& fileName, const std::string& paramName) throw(INTERP_KERNEL::Exception)
+ {
+ return MEDFileParameterDouble1TS::New(fileName,paramName);
+ }
+
+ MEDFileParameterDouble1TS(const std::string& fileName, const std::string& paramName, int dt, int it) throw(INTERP_KERNEL::Exception)
+ {
+ return MEDFileParameterDouble1TS::New(fileName,paramName,dt,it);
+ }
+
+ std::string __str__() const throw(INTERP_KERNEL::Exception)
+ {
+ return self->simpleRepr();
+ }
+
+ PyObject *isEqual(const MEDFileParameter1TS *other, double eps) const throw(INTERP_KERNEL::Exception)
+ {
+ std::string what;
+ bool ret0=self->isEqual(other,eps,what);
+ PyObject *res=PyList_New(2);
+ PyObject *ret0Py=ret0?Py_True:Py_False;
+ Py_XINCREF(ret0Py);
+ PyList_SetItem(res,0,ret0Py);
+ PyList_SetItem(res,1,PyString_FromString(what.c_str()));
+ return res;
+ }
+ }
+ };
+
+ class MEDFileParameterMultiTS : public RefCountObject, public MEDFileParameterTinyInfo
+ {
+ public:
+ static MEDFileParameterMultiTS *New();
+ static MEDFileParameterMultiTS *New(const std::string& fileName) throw(INTERP_KERNEL::Exception);
+ static MEDFileParameterMultiTS *New(const std::string& fileName, const std::string& paramName) throw(INTERP_KERNEL::Exception);
+ std::string getName() const;
+ void setName(const std::string& name);
+ MEDFileParameterMultiTS *deepCopy() const throw(INTERP_KERNEL::Exception);
+ void write(const std::string& fileName, int mode) const throw(INTERP_KERNEL::Exception);
+ std::string simpleRepr() const throw(INTERP_KERNEL::Exception);
+ void appendValue(int dt, int it, double time, double val) throw(INTERP_KERNEL::Exception);
+ double getDoubleValue(int iteration, int order) const throw(INTERP_KERNEL::Exception);
+ int getPosOfTimeStep(int iteration, int order) const throw(INTERP_KERNEL::Exception);
+ int getPosGivenTime(double time, double eps=1e-8) const throw(INTERP_KERNEL::Exception);
+ int getNumberOfTS() const throw(INTERP_KERNEL::Exception);
+ %extend
+ {
+ MEDFileParameterMultiTS()
+ {
+ return MEDFileParameterMultiTS::New();
+ }
+
+ MEDFileParameterMultiTS(const std::string& fileName)
+ {
+ return MEDFileParameterMultiTS::New(fileName);
+ }
+
+ MEDFileParameterMultiTS(const std::string& fileName, const std::string& paramName)
+ {
+ return MEDFileParameterMultiTS::New(fileName,paramName);
+ }
+
+ std::string __str__() const throw(INTERP_KERNEL::Exception)
+ {
+ return self->simpleRepr();
+ }
+
+ PyObject *isEqual(const MEDFileParameterMultiTS *other, double eps) const throw(INTERP_KERNEL::Exception)
+ {
+ std::string what;
+ bool ret0=self->isEqual(other,eps,what);
+ PyObject *res=PyList_New(2);
+ PyObject *ret0Py=ret0?Py_True:Py_False;
+ Py_XINCREF(ret0Py);
+ PyList_SetItem(res,0,ret0Py);
+ PyList_SetItem(res,1,PyString_FromString(what.c_str()));
+ return res;
+ }
+
+ void eraseTimeStepIds(PyObject *ids) throw(INTERP_KERNEL::Exception)
+ {
+ int sw;
+ int pos1;
+ std::vector<int> pos2;
+ DataArrayInt *pos3=0;
+ DataArrayIntTuple *pos4=0;
+ convertIntStarLikePyObjToCpp(ids,sw,pos1,pos2,pos3,pos4);
+ switch(sw)
+ {
+ case 1:
+ {
+ self->eraseTimeStepIds(&pos1,&pos1+1);
+ return;
+ }
+ case 2:
+ {
+ if(pos2.empty())
+ return;
+ self->eraseTimeStepIds(&pos2[0],&pos2[0]+pos2.size());
+ return ;
+ }
+ case 3:
+ {
+ self->eraseTimeStepIds(pos3->begin(),pos3->end());
+ return ;
+ }
+ default:
+ throw INTERP_KERNEL::Exception("MEDFileParameterMultiTS::eraseTimeStepIds : unexpected input array type recognized !");
+ }
+ }
+
+ int getTimeStepId(PyObject *elt0) const throw(INTERP_KERNEL::Exception)
+ {
+ if(elt0 && PyInt_Check(elt0))
+ {//fmts[3]
+ int pos=InterpreteNegativeInt(PyInt_AS_LONG(elt0),self->getNumberOfTS());
+ return pos;
+ }
+ else if(elt0 && PyTuple_Check(elt0))
+ {
+ if(PyTuple_Size(elt0)==2)
+ {
+ PyObject *o0=PyTuple_GetItem(elt0,0);
+ PyObject *o1=PyTuple_GetItem(elt0,1);
+ if(PyInt_Check(o0) && PyInt_Check(o1))
+ {//fmts(1,-1)
+ int iter=PyInt_AS_LONG(o0);
+ int order=PyInt_AS_LONG(o1);
+ return self->getPosOfTimeStep(iter,order);
+ }
+ else
+ throw INTERP_KERNEL::Exception("MEDFileParameterMultiTS::getTimeStepId : invalid input param ! input is a tuple of size 2 but two integers are expected in this tuple to request a time steps !");
+ }
+ else
+ throw INTERP_KERNEL::Exception("MEDFileParameterMultiTS::getTimeStepId : invalid input param ! input is a tuple of size != 2 ! two integers are expected in this tuple to request a time steps !");
+ }
+ else if(elt0 && PyFloat_Check(elt0))
+ {
+ double val=PyFloat_AS_DOUBLE(elt0);
+ return self->getPosGivenTime(val);
+ }
+ else
+ throw INTERP_KERNEL::Exception("MEDFileParameterMultiTS::getTimeStepId : invalid input params ! expected fmts[int], fmts[int,int] or fmts[double] to request time step !");
+ }
+
+ MEDFileParameter1TS *__getitem__(PyObject *elt0) const throw(INTERP_KERNEL::Exception)
+ {
+ MEDFileParameter1TS *ret=self->getTimeStepAtPos(MEDCoupling_MEDFileParameterMultiTS_getTimeStepId(self,elt0));
+ if(ret)
+ ret->incrRef();
+ return ret;
+ }
+
+ std::vector<int> getTimeStepIds(PyObject *elts) const throw(INTERP_KERNEL::Exception)
+ {
+ if(PyList_Check(elts))
+ {
+ int sz=PyList_Size(elts);
+ std::vector<int> ret(sz);
+ for(int i=0;i<sz;i++)
+ {
+ PyObject *elt=PyList_GetItem(elts,i);
+ ret[i]=MEDCoupling_MEDFileParameterMultiTS_getTimeStepId(self,elt);
+ }
+ return ret;
+ }
+ else
+ {
+ std::vector<int> ret(1);
+ ret[0]=MEDCoupling_MEDFileParameterMultiTS_getTimeStepId(self,elts);
+ return ret;
+ }
+ }
+
+ void __delitem__(PyObject *elts) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<int> idsToRemove=MEDCoupling_MEDFileParameterMultiTS_getTimeStepIds(self,elts);
+ if(!idsToRemove.empty())
+ self->eraseTimeStepIds(&idsToRemove[0],&idsToRemove[0]+idsToRemove.size());
+ }
+
+ MEDFileParameter1TS *getTimeStepAtPos(int posId) const throw(INTERP_KERNEL::Exception)
+ {
+ MEDFileParameter1TS *ret=self->getTimeStepAtPos(posId);
+ if(ret)
+ ret->incrRef();
+ return ret;
+ }
+
+ PyObject *getIterations() const throw(INTERP_KERNEL::Exception)
+ {
+ std::vector< std::pair<int,int> > res=self->getIterations();
+ PyObject *ret=PyList_New(res.size());
+ int rk=0;
+ for(std::vector< std::pair<int,int> >::const_iterator iter=res.begin();iter!=res.end();iter++,rk++)
+ {
+ PyObject *elt=PyTuple_New(2);
+ PyTuple_SetItem(elt,0,SWIG_From_int((*iter).first));
+ PyTuple_SetItem(elt,1,SWIG_From_int((*iter).second));
+ PyList_SetItem(ret,rk,elt);
+ }
+ return ret;
+ }
+
+ PyObject *getTimeSteps() const throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<double> res2;
+ std::vector< std::pair<int,int> > res=self->getTimeSteps(res2);
+ PyObject *ret=PyList_New(res.size());
+ int rk=0;
+ for(std::vector< std::pair<int,int> >::const_iterator iter=res.begin();iter!=res.end();iter++,rk++)
+ {
+ PyObject *elt=PyTuple_New(3);
+ PyTuple_SetItem(elt,0,SWIG_From_int((*iter).first));
+ PyTuple_SetItem(elt,1,SWIG_From_int((*iter).second));
+ PyTuple_SetItem(elt,2,SWIG_From_double(res2[rk]));
+ PyList_SetItem(ret,rk,elt);
+ }
+ return ret;
+ }
+ }
+ };
+
+ class MEDFileParameters : public RefCountObject, public MEDFileWritableStandAlone
+ {
+ public:
+ static MEDFileParameters *New();
+ static MEDFileParameters *New(const std::string& fileName) throw(INTERP_KERNEL::Exception);
+ static MEDFileParameters *New(DataArrayByte *db) throw(INTERP_KERNEL::Exception);
+ MEDFileParameters *deepCopy() const throw(INTERP_KERNEL::Exception);
+ std::vector<std::string> getParamsNames() const throw(INTERP_KERNEL::Exception);
+ std::string simpleRepr() const throw(INTERP_KERNEL::Exception);
+ void resize(int newSize) throw(INTERP_KERNEL::Exception);
+ void pushParam(MEDFileParameterMultiTS *param) throw(INTERP_KERNEL::Exception);
+ void setParamAtPos(int i, MEDFileParameterMultiTS *param) throw(INTERP_KERNEL::Exception);
+ void destroyParamAtPos(int i) throw(INTERP_KERNEL::Exception);
+ int getPosFromParamName(const std::string& paramName) const throw(INTERP_KERNEL::Exception);
+ int getNumberOfParams() const throw(INTERP_KERNEL::Exception);
+ %extend
+ {
+ MEDFileParameters()
+ {
+ return MEDFileParameters::New();
+ }
+
+ MEDFileParameters(const std::string& fileName)
+ {
+ return MEDFileParameters::New(fileName);
+ }
+
+ MEDFileParameters(DataArrayByte *db) throw(INTERP_KERNEL::Exception)
+ {
+ return MEDFileParameters::New(db);
+ }
+
+ std::string __str__() const throw(INTERP_KERNEL::Exception)
+ {
+ return self->simpleRepr();
+ }
+
+ MEDFileParameterMultiTS *__getitem__(PyObject *obj) throw(INTERP_KERNEL::Exception)
+ {
+ static const char msg[]="MEDFileParameters::__getitem__ : only integer or string with meshname supported !";
+ if(PyInt_Check(obj))
+ {
+ MEDFileParameterMultiTS *ret=self->getParamAtPos(InterpreteNegativeInt((int)PyInt_AS_LONG(obj),self->getNumberOfParams()));
+ if(ret)
+ ret->incrRef();
+ return ret;
+ }
+ MEDFileParameterMultiTS *ret(self->getParamWithName(convertPyObjectToStr(obj,msg)));
+ if(ret)
+ ret->incrRef();
+ return ret;
+ }
+
+ int __len__() const throw(INTERP_KERNEL::Exception)
+ {
+ return self->getNumberOfParams();
+ }
+
+ MEDFileParameterMultiTS *getParamAtPos(int i) const throw(INTERP_KERNEL::Exception)
+ {
+ MEDFileParameterMultiTS *ret=self->getParamAtPos(i);
+ if(ret)
+ ret->incrRef();
+ return ret;
+ }
+
+ MEDFileParameterMultiTS *getParamWithName(const std::string& paramName) const throw(INTERP_KERNEL::Exception)
+ {
+ MEDFileParameterMultiTS *ret=self->getParamWithName(paramName);
+ if(ret)
+ ret->incrRef();
+ return ret;
+ }
+
+ PyObject *isEqual(const MEDFileParameters *other, double eps) const throw(INTERP_KERNEL::Exception)
+ {
+ std::string what;
+ bool ret0=self->isEqual(other,eps,what);
+ PyObject *res=PyList_New(2);
+ PyObject *ret0Py=ret0?Py_True:Py_False;
+ Py_XINCREF(ret0Py);
+ PyList_SetItem(res,0,ret0Py);
+ PyList_SetItem(res,1,PyString_FromString(what.c_str()));
+ return res;
+ }
+ }
+ };
+
+ class MEDFileData : public RefCountObject, public MEDFileWritableStandAlone
+ {
+ public:
+ static MEDFileData *New(DataArrayByte *db) throw(INTERP_KERNEL::Exception);
+ static MEDFileData *New(const std::string& fileName) throw(INTERP_KERNEL::Exception);
+ static MEDFileData *New();
+ MEDFileData *deepCopy() const throw(INTERP_KERNEL::Exception);
+ void setFields(MEDFileFields *fields) throw(INTERP_KERNEL::Exception);
+ void setMeshes(MEDFileMeshes *meshes) throw(INTERP_KERNEL::Exception);
+ void setParams(MEDFileParameters *params) throw(INTERP_KERNEL::Exception);
+ int getNumberOfFields() const throw(INTERP_KERNEL::Exception);
+ int getNumberOfMeshes() const throw(INTERP_KERNEL::Exception);
+ int getNumberOfParams() const throw(INTERP_KERNEL::Exception);
+ //
+ bool changeMeshName(const std::string& oldMeshName, const std::string& newMeshName) throw(INTERP_KERNEL::Exception);
+ bool unPolyzeMeshes() throw(INTERP_KERNEL::Exception);
+ void dealWithStructureElements() throw(INTERP_KERNEL::Exception);
+ std::string getHeader() const throw(INTERP_KERNEL::Exception);
+ void setHeader(const std::string& header) throw(INTERP_KERNEL::Exception);
+ //
+ %extend
+ {
+ MEDFileData(const std::string& fileName) throw(INTERP_KERNEL::Exception)
+ {
+ return MEDFileData::New(fileName);
+ }
+
+ MEDFileData(DataArrayByte *db) throw(INTERP_KERNEL::Exception)
+ {
+ return MEDFileData::New(db);
+ }
+
+ MEDFileData()
+ {
+ return MEDFileData::New();
+ }
+
+ std::string __str__() const throw(INTERP_KERNEL::Exception)
+ {
+ return self->simpleRepr();
+ }
+
+ MEDFileMeshes *getMeshes() const throw(INTERP_KERNEL::Exception)
+ {
+ MEDFileMeshes *ret=self->getMeshes();
+ if(ret)
+ ret->incrRef();
+ return ret;
+ }
+
+ MEDFileParameters *getParams() const throw(INTERP_KERNEL::Exception)
+ {
+ MEDFileParameters *ret=self->getParams();
+ if(ret)
+ ret->incrRef();
+ return ret;
+ }
+
+ MEDFileFields *getFields() const throw(INTERP_KERNEL::Exception)
+ {
+ MEDFileFields *ret=self->getFields();
+ if(ret)
+ ret->incrRef();
+ return ret;
+ }
+
+ bool changeMeshNames(PyObject *li) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector< std::pair<std::string,std::string> > modifTab=convertVecPairStStFromPy(li);
+ return self->changeMeshNames(modifTab);
+ }
+
+ static MEDFileData *Aggregate(PyObject *mfds) throw(INTERP_KERNEL::Exception)
+ {
+ std::vector<const MEDFileData *> mfdsCpp;
+ convertFromPyObjVectorOfObj<const MEDCoupling::MEDFileData *>(mfds,SWIGTYPE_p_MEDCoupling__MEDFileData,"MEDFileData",mfdsCpp);
+ MCAuto<MEDFileData> ret(MEDFileData::Aggregate(mfdsCpp));
+ return ret.retn();
+ }
+ }
+ };
+
+ class SauvReader : public RefCountObject
+ {
+ public:
+ static SauvReader* New(const std::string& fileName) throw(INTERP_KERNEL::Exception);
+ MEDFileData * loadInMEDFileDS() throw(INTERP_KERNEL::Exception);
+ %extend
+ {
+ SauvReader(const std::string& fileName) throw(INTERP_KERNEL::Exception)
+ {
+ return SauvReader::New(fileName);
+ }
+ }
+ };
+
+ class SauvWriter : public RefCountObject
+ {
+ public:
+ static SauvWriter * New();
+ void setMEDFileDS(const MEDFileData* medData, unsigned meshIndex = 0) throw(INTERP_KERNEL::Exception);
+ void write(const std::string& fileName) throw(INTERP_KERNEL::Exception);
+ void setCpyGrpIfOnASingleFamilyStatus(bool status) throw(INTERP_KERNEL::Exception);
+ bool getCpyGrpIfOnASingleFamilyStatus() const throw(INTERP_KERNEL::Exception);
+ %extend
+ {
+ SauvWriter() throw(INTERP_KERNEL::Exception)
+ {
+ return SauvWriter::New();
+ }
+ }
+ };
+
+ ///////////////
+
+ class MEDFileMeshStruct;
+
+ class MEDFileField1TSStructItem
+ {
+ public:
+ static MEDFileField1TSStructItem BuildItemFrom(const MEDFileAnyTypeField1TS *ref, const MEDFileMeshStruct *meshSt) throw(INTERP_KERNEL::Exception);
+ };
+
+ class MEDFileMeshStruct : public RefCountObject
+ {
+ public:
+ static MEDFileMeshStruct *New(const MEDFileMesh *mesh) throw(INTERP_KERNEL::Exception);
+ protected:
+ ~MEDFileMeshStruct();
+ };
+
+ class MEDMeshMultiLev : public RefCountObject
+ {
+ public:
+ virtual MEDMeshMultiLev *prepare() const throw(INTERP_KERNEL::Exception);
+ DataArray *buildDataArray(const MEDFileField1TSStructItem& fst, const MEDFileFieldGlobsReal *globs, const DataArray *vals) const throw(INTERP_KERNEL::Exception);
+ DataArrayInt *retrieveGlobalNodeIdsIfAny() const throw(INTERP_KERNEL::Exception);
+ protected:
+ ~MEDMeshMultiLev();
+ public:
+ %extend
+ {
+ PyObject *retrieveFamilyIdsOnCells() const throw(INTERP_KERNEL::Exception)
+ {
+ DataArrayInt *famIds(0);
+ bool isWithoutCopy(false);
+ self->retrieveFamilyIdsOnCells(famIds,isWithoutCopy);
+ PyObject *ret=PyTuple_New(2);
+ PyObject *ret1Py=isWithoutCopy?Py_True:Py_False;
+ Py_XINCREF(ret1Py);
+ PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(famIds),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ));
+ PyTuple_SetItem(ret,1,ret1Py);
+ return ret;
+ }
+
+ PyObject *retrieveNumberIdsOnCells() const throw(INTERP_KERNEL::Exception)
+ {
+ DataArrayInt *numIds(0);
+ bool isWithoutCopy(false);
+ self->retrieveNumberIdsOnCells(numIds,isWithoutCopy);
+ PyObject *ret=PyTuple_New(2);
+ PyObject *ret1Py=isWithoutCopy?Py_True:Py_False;
+ Py_XINCREF(ret1Py);
+ PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(numIds),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ));
+ PyTuple_SetItem(ret,1,ret1Py);
+ return ret;
+ }
+
+ PyObject *retrieveFamilyIdsOnNodes() const throw(INTERP_KERNEL::Exception)
+ {
+ DataArrayInt *famIds(0);
+ bool isWithoutCopy(false);
+ self->retrieveFamilyIdsOnNodes(famIds,isWithoutCopy);
+ PyObject *ret=PyTuple_New(2);
+ PyObject *ret1Py=isWithoutCopy?Py_True:Py_False;
+ Py_XINCREF(ret1Py);
+ PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(famIds),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ));
+ PyTuple_SetItem(ret,1,ret1Py);
+ return ret;
+ }
+
+ PyObject *retrieveNumberIdsOnNodes() const throw(INTERP_KERNEL::Exception)
+ {
+ DataArrayInt *numIds(0);
+ bool isWithoutCopy(false);
+ self->retrieveNumberIdsOnNodes(numIds,isWithoutCopy);
+ PyObject *ret=PyTuple_New(2);
+ PyObject *ret1Py=isWithoutCopy?Py_True:Py_False;
+ Py_XINCREF(ret1Py);
+ PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(numIds),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ));
+ PyTuple_SetItem(ret,1,ret1Py);
+ return ret;
+ }
+
+ PyObject *getGeoTypes() const throw(INTERP_KERNEL::Exception)
+ {
+ std::vector< INTERP_KERNEL::NormalizedCellType > result(self->getGeoTypes());
+ std::vector< INTERP_KERNEL::NormalizedCellType >::const_iterator iL(result.begin());
+ PyObject *res(PyList_New(result.size()));
+ for(int i=0;iL!=result.end(); i++, iL++)
+ PyList_SetItem(res,i,PyInt_FromLong(*iL));
+ return res;
+ }
+ }
+ };
+
+ class MEDUMeshMultiLev : public MEDMeshMultiLev
+ {
+ protected:
+ ~MEDUMeshMultiLev();
+ public:
+ %extend
+ {
+ PyObject *buildVTUArrays() const throw(INTERP_KERNEL::Exception)
+ {
+ DataArrayDouble *coords(0); DataArrayByte *types(0); DataArrayInt *cellLocations(0),*cells(0),*faceLocations(0),*faces(0);
+ bool ncc(self->buildVTUArrays(coords,types,cellLocations,cells,faceLocations,faces));
+ PyObject *ret0Py=ncc?Py_True:Py_False;
+ Py_XINCREF(ret0Py);
+ PyObject *ret=PyTuple_New(7);
+ PyTuple_SetItem(ret,0,ret0Py);
+ PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(coords),SWIGTYPE_p_MEDCoupling__DataArrayDouble, SWIG_POINTER_OWN | 0 ));
+ PyTuple_SetItem(ret,2,SWIG_NewPointerObj(SWIG_as_voidptr(types),SWIGTYPE_p_MEDCoupling__DataArrayByte, SWIG_POINTER_OWN | 0 ));
+ PyTuple_SetItem(ret,3,SWIG_NewPointerObj(SWIG_as_voidptr(cellLocations),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ));
+ PyTuple_SetItem(ret,4,SWIG_NewPointerObj(SWIG_as_voidptr(cells),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ));
+ PyTuple_SetItem(ret,5,SWIG_NewPointerObj(SWIG_as_voidptr(faceLocations),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ));
+ PyTuple_SetItem(ret,6,SWIG_NewPointerObj(SWIG_as_voidptr(faces),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ));
+ return ret;
+ }
+ }
+ };
+
+ class MEDStructuredMeshMultiLev : public MEDMeshMultiLev
+ {
+ protected:
+ ~MEDStructuredMeshMultiLev();
+ };
+
+ class MEDCMeshMultiLev : public MEDStructuredMeshMultiLev
+ {
+ protected:
+ ~MEDCMeshMultiLev();
+ public:
+ %extend
+ {
+ PyObject *buildVTUArrays() const throw(INTERP_KERNEL::Exception)
+ {
+ bool isInternal;
+ std::vector< DataArrayDouble * > objs(self->buildVTUArrays(isInternal));
+ std::size_t sz(objs.size());
+ PyObject *ret(PyTuple_New(2));
+ PyObject *ret0=PyList_New(sz);
+ for(std::size_t i=0;i<sz;i++)
+ PyList_SetItem(ret0,i,SWIG_NewPointerObj(SWIG_as_voidptr(objs[i]),SWIGTYPE_p_MEDCoupling__DataArrayDouble, SWIG_POINTER_OWN | 0 ));
+ PyTuple_SetItem(ret,0,ret0);
+ PyObject *ret1Py(isInternal?Py_True:Py_False);
+ Py_XINCREF(ret1Py);
+ PyTuple_SetItem(ret,1,ret1Py);
+ return ret;
+ }
+ }
+ };
+
+ class MEDCurveLinearMeshMultiLev : public MEDStructuredMeshMultiLev
+ {
+ protected:
+ ~MEDCurveLinearMeshMultiLev();
+ public:
+ %extend
+ {
+ PyObject *buildVTUArrays() const throw(INTERP_KERNEL::Exception)
+ {
+ DataArrayDouble *ret0(0);
+ std::vector<int> ret1;
+ bool ret2;
+ self->buildVTUArrays(ret0,ret1,ret2);
+ std::size_t sz(ret1.size());
+ PyObject *ret=PyTuple_New(3);
+ PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(ret0),SWIGTYPE_p_MEDCoupling__DataArrayDouble, SWIG_POINTER_OWN | 0 ));
+ PyObject *ret1Py=PyList_New(sz);
+ for(std::size_t i=0;i<sz;i++)
+ PyList_SetItem(ret1Py,i,SWIG_From_int(ret1[i]));
+ PyTuple_SetItem(ret,1,ret1Py);
+ PyObject *ret2Py(ret2?Py_True:Py_False);
+ Py_XINCREF(ret2Py);
+ PyTuple_SetItem(ret,2,ret2Py);
+ return ret;
+ }
+ }
+ };
+
+ class MEDFileFastCellSupportComparator : public RefCountObject
+ {
+ public:
+ static MEDFileFastCellSupportComparator *New(const MEDFileMeshStruct *m, const MEDFileAnyTypeFieldMultiTS *ref) throw(INTERP_KERNEL::Exception);
+ MEDMeshMultiLev *buildFromScratchDataSetSupport(int timeStepId, const MEDFileFieldGlobsReal *globs) const throw(INTERP_KERNEL::Exception);
+ bool isDataSetSupportEqualToThePreviousOne(int timeStepId, const MEDFileFieldGlobsReal *globs) const throw(INTERP_KERNEL::Exception);
+ int getNumberOfTS() const throw(INTERP_KERNEL::Exception);
+ protected:
+ ~MEDFileFastCellSupportComparator();
+ public:
+ %extend
+ {
+ PyObject *getGeoTypesAt(int timeStepId, const MEDFileMesh *m) const throw(INTERP_KERNEL::Exception)
+ {
+ std::vector< INTERP_KERNEL::NormalizedCellType > result(self->getGeoTypesAt(timeStepId,m));
+ std::vector< INTERP_KERNEL::NormalizedCellType >::const_iterator iL(result.begin());
+ PyObject *res(PyList_New(result.size()));
+ for(int i=0;iL!=result.end(); i++, iL++)
+ PyList_SetItem(res,i,PyInt_FromLong(*iL));
+ return res;
+ }
+ }
+ };
+}
+++ /dev/null
-// 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
-// License as published by the Free Software Foundation; either
-// version 2.1 of the License, or (at your option) any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// Lesser General Public License for more details.
-//
-// You should have received a copy of the GNU Lesser General Public
-// License along with this library; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-//
-// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
-// Author : Anthony Geay (EDF R&D)
-
-#define MEDCOUPLING_EXPORT
-#define MEDLOADER_EXPORT
-
-#ifdef WITH_DOCSTRINGS
-%include "MEDLoader_doc.i"
-#endif
-
-%include "MEDCouplingImpl.i"
-
-%{
-#include "MEDLoader.hxx"
-#include "MEDFileJoint.hxx"
-#include "MEDFileMesh.hxx"
-#include "MEDFileField.hxx"
-#include "MEDFileParameter.hxx"
-#include "MEDFileData.hxx"
-#include "MEDFileEquivalence.hxx"
-#include "MEDFileEntities.hxx"
-#include "MEDFileMeshReadSelector.hxx"
-#include "MEDFileFieldOverView.hxx"
-#include "MEDLoaderTypemaps.i"
-#include "SauvReader.hxx"
-#include "SauvWriter.hxx"
-
-using namespace MEDCoupling;
-%}
-
-#if SWIG_VERSION >= 0x010329
-%template() std::vector<std::string>;
-#endif
-
-%typemap(out) MEDCoupling::MEDFileMesh*
-{
- $result=convertMEDFileMesh($1,$owner);
-}
-
-%typemap(out) MEDCoupling::MEDFileParameter1TS*
-{
- $result=convertMEDFileParameter1TS($1,$owner);
-}
-
-%typemap(out) MEDCoupling::MEDFileAnyTypeFieldMultiTS*
-{
- $result=convertMEDFileFieldMultiTS($1,$owner);
-}
-
-%typemap(out) MEDCoupling::MEDFileAnyTypeField1TS*
-{
- $result=convertMEDFileField1TS($1,$owner);
-}
-
-%typemap(out) MEDCoupling::MEDMeshMultiLev*
-{
- $result=convertMEDMeshMultiLev($1,$owner);
-}
-
-%newobject ReadUMeshFromFamiliesSwig;
-%newobject ReadUMeshFromGroupsSwig;
-%newobject ReadFieldSwig;
-%newobject MEDCoupling::ReadUMeshFromFile;
-%newobject MEDCoupling::ReadMeshFromFile;
-%newobject MEDCoupling::ReadFieldCell;
-%newobject MEDCoupling::ReadFieldNode;
-%newobject MEDCoupling::ReadFieldGauss;
-%newobject MEDCoupling::ReadFieldGaussNE;
-%newobject MEDCoupling::MEDFileMesh::New;
-%newobject MEDCoupling::MEDFileMesh::createNewEmpty;
-%newobject MEDCoupling::MEDFileMesh::deepCopy;
-%newobject MEDCoupling::MEDFileMesh::shallowCpy;
-%newobject MEDCoupling::MEDFileMesh::getMeshAtLevel;
-%newobject MEDCoupling::MEDFileMesh::__getitem__;
-%newobject MEDCoupling::MEDFileMesh::getGroupArr;
-%newobject MEDCoupling::MEDFileMesh::getGroupsArr;
-%newobject MEDCoupling::MEDFileMesh::getFamilyArr;
-%newobject MEDCoupling::MEDFileMesh::getFamiliesArr;
-%newobject MEDCoupling::MEDFileMesh::getNodeGroupArr;
-%newobject MEDCoupling::MEDFileMesh::getNodeGroupsArr;
-%newobject MEDCoupling::MEDFileMesh::getNodeFamilyArr;
-%newobject MEDCoupling::MEDFileMesh::getNodeFamiliesArr;
-%newobject MEDCoupling::MEDFileMesh::getGlobalNumFieldAtLevel;
-%newobject MEDCoupling::MEDFileMesh::getAllFamiliesIdsReferenced;
-%newobject MEDCoupling::MEDFileMesh::computeAllFamilyIdsInUse;
-%newobject MEDCoupling::MEDFileMesh::getEquivalences;
-%newobject MEDCoupling::MEDFileMesh::cartesianize;
-%newobject MEDCoupling::MEDFileData::getJoints;
-%newobject MEDCoupling::MEDFileStructuredMesh::getImplicitFaceMesh;
-%newobject MEDCoupling::MEDFileUMesh::New;
-%newobject MEDCoupling::MEDFileUMesh::LoadPartOf;
-%newobject MEDCoupling::MEDFileUMesh::getCoords;
-%newobject MEDCoupling::MEDFileUMesh::getPartDefAtLevel;
-%newobject MEDCoupling::MEDFileUMesh::getGroup;
-%newobject MEDCoupling::MEDFileUMesh::getGroups;
-%newobject MEDCoupling::MEDFileUMesh::getFamily;
-%newobject MEDCoupling::MEDFileUMesh::getFamilies;
-%newobject MEDCoupling::MEDFileUMesh::getLevel0Mesh;
-%newobject MEDCoupling::MEDFileUMesh::getLevelM1Mesh;
-%newobject MEDCoupling::MEDFileUMesh::getLevelM2Mesh;
-%newobject MEDCoupling::MEDFileUMesh::getLevelM3Mesh;
-%newobject MEDCoupling::MEDFileUMesh::getDirectUndergroundSingleGeoTypeMesh;
-%newobject MEDCoupling::MEDFileUMesh::extractFamilyFieldOnGeoType;
-%newobject MEDCoupling::MEDFileUMesh::extractNumberFieldOnGeoType;
-%newobject MEDCoupling::MEDFileUMesh::zipCoords;
-%newobject MEDCoupling::MEDFileUMesh::deduceNodeSubPartFromCellSubPart;
-%newobject MEDCoupling::MEDFileUMesh::extractPart;
-%newobject MEDCoupling::MEDFileUMesh::buildExtrudedMesh;
-%newobject MEDCoupling::MEDFileUMesh::linearToQuadratic;
-%newobject MEDCoupling::MEDFileUMesh::quadraticToLinear;
-%newobject MEDCoupling::MEDFileUMesh::symmetry3DPlane;
-%newobject MEDCoupling::MEDFileUMesh::Aggregate;
-%newobject MEDCoupling::MEDFileUMesh::convertToExtrudedMesh;
-%newobject MEDCoupling::MEDFileCMesh::New;
-%newobject MEDCoupling::MEDFileCurveLinearMesh::New;
-%newobject MEDCoupling::MEDFileMeshMultiTS::New;
-%newobject MEDCoupling::MEDFileMeshMultiTS::deepCopy;
-%newobject MEDCoupling::MEDFileMeshMultiTS::getOneTimeStep;
-%newobject MEDCoupling::MEDFileMeshes::New;
-%newobject MEDCoupling::MEDFileMeshes::deepCopy;
-%newobject MEDCoupling::MEDFileMeshes::getMeshAtPos;
-%newobject MEDCoupling::MEDFileMeshes::getMeshWithName;
-%newobject MEDCoupling::MEDFileMeshes::__getitem__;
-%newobject MEDCoupling::MEDFileMeshes::__iter__;
-
-%newobject MEDCoupling::MEDFileMeshSupports::New;
-%newobject MEDCoupling::MEDFileMeshSupports::getSupMeshWithName;
-
-%newobject MEDCoupling::MEDFileStructureElements::New;
-
-%newobject MEDCoupling::MEDFileFields::New;
-%newobject MEDCoupling::MEDFileFields::NewAdv;
-%newobject MEDCoupling::MEDFileFields::NewWithDynGT;
-%newobject MEDCoupling::MEDFileFields::LoadPartOf;
-%newobject MEDCoupling::MEDFileFields::LoadSpecificEntities;
-%newobject MEDCoupling::MEDFileFields::deepCopy;
-%newobject MEDCoupling::MEDFileFields::shallowCpy;
-%newobject MEDCoupling::MEDFileFields::getFieldWithName;
-%newobject MEDCoupling::MEDFileFields::getFieldAtPos;
-%newobject MEDCoupling::MEDFileFields::partOfThisLyingOnSpecifiedMeshName;
-%newobject MEDCoupling::MEDFileFields::partOfThisLyingOnSpecifiedTimeSteps;
-%newobject MEDCoupling::MEDFileFields::partOfThisNotLyingOnSpecifiedTimeSteps;
-%newobject MEDCoupling::MEDFileFields::partOfThisOnStructureElements;
-%newobject MEDCoupling::MEDFileFields::__iter__;
-%newobject MEDCoupling::MEDFileFields::extractPart;
-
-%newobject MEDCoupling::MEDFileWritableStandAlone::serialize;
-%newobject MEDCoupling::MEDFileAnyTypeFieldMultiTS::New;
-%newobject MEDCoupling::MEDFileAnyTypeFieldMultiTS::deepCopy;
-%newobject MEDCoupling::MEDFileAnyTypeFieldMultiTS::shallowCpy;
-%newobject MEDCoupling::MEDFileAnyTypeFieldMultiTS::getTimeStepAtPos;
-%newobject MEDCoupling::MEDFileAnyTypeFieldMultiTS::getTimeStep;
-%newobject MEDCoupling::MEDFileAnyTypeFieldMultiTS::getTimeStepGivenTime;
-%newobject MEDCoupling::MEDFileAnyTypeFieldMultiTS::__iter__;
-%newobject MEDCoupling::MEDFileAnyTypeFieldMultiTS::extractPart;
-%newobject MEDCoupling::MEDFileAnyTypeFieldMultiTS::buildNewEmpty;
-%newobject MEDCoupling::MEDFileFieldMultiTS::New;
-%newobject MEDCoupling::MEDFileFieldMultiTS::LoadSpecificEntities;
-%newobject MEDCoupling::MEDFileFieldMultiTS::field;
-%newobject MEDCoupling::MEDFileFieldMultiTS::getFieldAtLevel;
-%newobject MEDCoupling::MEDFileFieldMultiTS::getFieldAtTopLevel;
-%newobject MEDCoupling::MEDFileFieldMultiTS::getFieldOnMeshAtLevel;
-%newobject MEDCoupling::MEDFileFieldMultiTS::getFieldAtLevelOld;
-%newobject MEDCoupling::MEDFileFieldMultiTS::getUndergroundDataArray;
-%newobject MEDCoupling::MEDFileFieldMultiTS::convertToInt;
-
-%newobject MEDCoupling::MEDFileIntFieldMultiTS::New;
-%newobject MEDCoupling::MEDFileIntFieldMultiTS::field;
-%newobject MEDCoupling::MEDFileIntFieldMultiTS::LoadSpecificEntities;
-%newobject MEDCoupling::MEDFileIntFieldMultiTS::getUndergroundDataArray;
-%newobject MEDCoupling::MEDFileIntFieldMultiTS::convertToDouble;
-%newobject MEDCoupling::MEDFileIntFieldMultiTS::getFieldAtLevel;
-%newobject MEDCoupling::MEDFileIntFieldMultiTS::getFieldAtTopLevel;
-%newobject MEDCoupling::MEDFileIntFieldMultiTS::getFieldOnMeshAtLevel;
-%newobject MEDCoupling::MEDFileIntFieldMultiTS::getFieldAtLevelOld;
-
-%newobject MEDCoupling::MEDFileFloatFieldMultiTS::New;
-%newobject MEDCoupling::MEDFileFloatFieldMultiTS::field;
-%newobject MEDCoupling::MEDFileFloatFieldMultiTS::LoadSpecificEntities;
-%newobject MEDCoupling::MEDFileFloatFieldMultiTS::getUndergroundDataArray;
-%newobject MEDCoupling::MEDFileFloatFieldMultiTS::convertToDouble;
-%newobject MEDCoupling::MEDFileFloatFieldMultiTS::getFieldAtLevel;
-%newobject MEDCoupling::MEDFileFloatFieldMultiTS::getFieldAtTopLevel;
-%newobject MEDCoupling::MEDFileFloatFieldMultiTS::getFieldOnMeshAtLevel;
-%newobject MEDCoupling::MEDFileFloatFieldMultiTS::getFieldAtLevelOld;
-
-%newobject MEDCoupling::MEDFileAnyTypeField1TS::New;
-%newobject MEDCoupling::MEDFileAnyTypeField1TS::NewAdv;
-%newobject MEDCoupling::MEDFileAnyTypeField1TS::shallowCpy;
-%newobject MEDCoupling::MEDFileAnyTypeField1TS::deepCopy;
-%newobject MEDCoupling::MEDFileAnyTypeField1TS::extractPart;
-%newobject MEDCoupling::MEDFileField1TS::New;
-%newobject MEDCoupling::MEDFileField1TS::field;
-%newobject MEDCoupling::MEDFileField1TS::getFieldAtLevel;
-%newobject MEDCoupling::MEDFileField1TS::getFieldAtTopLevel;
-%newobject MEDCoupling::MEDFileField1TS::getFieldOnMeshAtLevel;
-%newobject MEDCoupling::MEDFileField1TS::getFieldAtLevelOld;
-%newobject MEDCoupling::MEDFileField1TS::getUndergroundDataArray;
-%newobject MEDCoupling::MEDFileField1TS::convertToInt;
-
-%newobject MEDCoupling::MEDFileIntField1TS::New;
-%newobject MEDCoupling::MEDFileIntField1TS::field;
-%newobject MEDCoupling::MEDFileIntField1TS::getFieldAtLevel;
-%newobject MEDCoupling::MEDFileIntField1TS::getFieldAtTopLevel;
-%newobject MEDCoupling::MEDFileIntField1TS::getFieldOnMeshAtLevel;
-%newobject MEDCoupling::MEDFileIntField1TS::getFieldAtLevelOld;
-%newobject MEDCoupling::MEDFileIntField1TS::getUndergroundDataArray;
-%newobject MEDCoupling::MEDFileIntField1TS::convertToDouble;
-
-%newobject MEDCoupling::MEDFileFloatField1TS::New;
-%newobject MEDCoupling::MEDFileFloatField1TS::field;
-%newobject MEDCoupling::MEDFileFloatField1TS::getFieldAtLevel;
-%newobject MEDCoupling::MEDFileFloatField1TS::getFieldAtTopLevel;
-%newobject MEDCoupling::MEDFileFloatField1TS::getFieldOnMeshAtLevel;
-%newobject MEDCoupling::MEDFileFloatField1TS::getFieldAtLevelOld;
-%newobject MEDCoupling::MEDFileFloatField1TS::getUndergroundDataArray;
-%newobject MEDCoupling::MEDFileFloatField1TS::convertToDouble;
-
-%newobject MEDCoupling::MEDFileData::New;
-%newobject MEDCoupling::MEDFileData::deepCopy;
-%newobject MEDCoupling::MEDFileData::getMeshes;
-%newobject MEDCoupling::MEDFileData::getFields;
-%newobject MEDCoupling::MEDFileData::getParams;
-%newobject MEDCoupling::MEDFileData::Aggregate;
-
-%newobject MEDCoupling::MEDFileEntities::BuildFrom;
-
-%newobject MEDCoupling::MEDFileParameterDouble1TS::New;
-%newobject MEDCoupling::MEDFileParameterDouble1TS::deepCopy;
-%newobject MEDCoupling::MEDFileParameterMultiTS::New;
-%newobject MEDCoupling::MEDFileParameterMultiTS::deepCopy;
-%newobject MEDCoupling::MEDFileParameterMultiTS::getTimeStepAtPos;
-%newobject MEDCoupling::MEDFileParameterMultiTS::__getitem__;
-%newobject MEDCoupling::MEDFileParameters::New;
-%newobject MEDCoupling::MEDFileParameters::deepCopy;
-%newobject MEDCoupling::MEDFileParameters::getParamAtPos;
-%newobject MEDCoupling::MEDFileParameters::getParamWithName;
-%newobject MEDCoupling::MEDFileParameters::__getitem__;
-
-%newobject MEDCoupling::MEDFileJointCorrespondence::New;
-%newobject MEDCoupling::MEDFileJointCorrespondence::deepCopy;
-%newobject MEDCoupling::MEDFileJointCorrespondence::shallowCpy;
-%newobject MEDCoupling::MEDFileJointCorrespondence::getCorrespondence;
-%newobject MEDCoupling::MEDFileJointOneStep::New;
-%newobject MEDCoupling::MEDFileJointOneStep::deepCopy;
-%newobject MEDCoupling::MEDFileJointOneStep::shallowCpy;
-%newobject MEDCoupling::MEDFileJointOneStep::getCorrespondenceAtPos;
-%newobject MEDCoupling::MEDFileJointOneStep::__getitem__;
-%newobject MEDCoupling::MEDFileJoint::New;
-%newobject MEDCoupling::MEDFileJoint::deepCopy;
-%newobject MEDCoupling::MEDFileJoint::shallowCpy;
-%newobject MEDCoupling::MEDFileJoint::getStepAtPos;
-%newobject MEDCoupling::MEDFileJoint::__getitem__;
-%newobject MEDCoupling::MEDFileJoints::New;
-%newobject MEDCoupling::MEDFileJoints::deepCopy;
-%newobject MEDCoupling::MEDFileJoints::getJointAtPos;
-%newobject MEDCoupling::MEDFileJoints::getJointWithName;
-%newobject MEDCoupling::MEDFileJoints::__getitem__;
-%newobject MEDCoupling::MEDFileEquivalences::getEquivalence;
-%newobject MEDCoupling::MEDFileEquivalences::getEquivalenceWithName;
-%newobject MEDCoupling::MEDFileEquivalences::appendEmptyEquivalenceWithName;
-%newobject MEDCoupling::MEDFileEquivalencePair::initCell;
-%newobject MEDCoupling::MEDFileEquivalencePair::initNode;
-%newobject MEDCoupling::MEDFileEquivalencePair::getCell;
-%newobject MEDCoupling::MEDFileEquivalencePair::getNode;
-%newobject MEDCoupling::MEDFileEquivalenceData::getArray;
-%newobject MEDCoupling::MEDFileEquivalenceCell::getArray;
-
-%newobject MEDCoupling::SauvWriter::New;
-%newobject MEDCoupling::SauvReader::New;
-%newobject MEDCoupling::SauvReader::loadInMEDFileDS;
-
-%newobject MEDCoupling::MEDFileMeshStruct::New;
-%newobject MEDCoupling::MEDMeshMultiLev::prepare;
-%newobject MEDCoupling::MEDMeshMultiLev::buildDataArray;
-%newobject MEDCoupling::MEDMeshMultiLev::retrieveGlobalNodeIdsIfAny;
-%newobject MEDCoupling::MEDFileFastCellSupportComparator::New;
-%newobject MEDCoupling::MEDFileFastCellSupportComparator::buildFromScratchDataSetSupport;
-
-%feature("unref") MEDFileMesh "$this->decrRef();"
-%feature("unref") MEDFileUMesh "$this->decrRef();"
-%feature("unref") MEDFileCMesh "$this->decrRef();"
-%feature("unref") MEDFileMeshMultiTS "$this->decrRef();"
-%feature("unref") MEDFileMeshes "$this->decrRef();"
-%feature("unref") MEDFileFieldLoc "$this->decrRef();"
-%feature("unref") MEDFileAnyTypeField1TS "$this->decrRef();"
-%feature("unref") MEDFileField1TS "$this->decrRef();"
-%feature("unref") MEDFileIntField1TS "$this->decrRef();"
-%feature("unref") MEDFileFloatField1TS "$this->decrRef();"
-%feature("unref") MEDFileAnyTypeFieldMultiTS "$this->decrRef();"
-%feature("unref") MEDFileFieldMultiTS "$this->decrRef();"
-%feature("unref") MEDFileIntFieldMultiTS "$this->decrRef();"
-%feature("unref") MEDFileFloatFieldMultiTS "$this->decrRef();"
-%feature("unref") MEDFileMeshSupports "$this->decrRef();"
-%feature("unref") MEDFileStructureElements "$this->decrRef();"
-%feature("unref") MEDFileFields "$this->decrRef();"
-%feature("unref") MEDFileParameter1TS "$this->decrRef();"
-%feature("unref") MEDFileParameterDouble1TSWTI "$this->decrRef();"
-%feature("unref") MEDFileParameterDouble1TS "$this->decrRef();"
-%feature("unref") MEDFileParameterMultiTS "$this->decrRef();"
-%feature("unref") MEDFileParameters "$this->decrRef();"
-%feature("unref") MEDFileJointCorrespondence "$this->decrRef();"
-%feature("unref") MEDFileJointOneStep "$this->decrRef();"
-%feature("unref") MEDFileJoint "$this->decrRef();"
-%feature("unref") MEDFileJoints "$this->decrRef();"
-%feature("unref") MEDFileEquivalences "$this->decrRef();"
-%feature("unref") MEDFileEquivalencePair "$this->decrRef();"
-%feature("unref") MEDFileEquivalenceBase "$this->decrRef();"
-%feature("unref") MEDFileEquivalenceData "$this->decrRef();"
-%feature("unref") MEDFileEquivalenceCell "$this->decrRef();"
-%feature("unref") MEDFileEquivalenceNode "$this->decrRef();"
-%feature("unref") MEDFileData "$this->decrRef();"
-%feature("unref") SauvReader "$this->decrRef();"
-%feature("unref") SauvWriter "$this->decrRef();"
-%feature("unref") MEDFileFastCellSupportComparator "$this->decrRef();"
-%feature("unref") MEDMeshMultiLev "$this->decrRef();"
-%feature("unref") MEDUMeshMultiLev "$this->decrRef();"
-%feature("unref") MEDCMeshMultiLev "$this->decrRef();"
-%feature("unref") MEDCurveLinearMeshMultiLev "$this->decrRef();"
-%feature("unref") MEDFileMeshStruct "$this->decrRef();"
-
-namespace MEDCoupling
-{
- bool HasXDR();
- std::string MEDFileVersionStr() throw(INTERP_KERNEL::Exception);
- std::string MEDFileVersionOfFileStr(const std::string& fileName) throw(INTERP_KERNEL::Exception);
- void SetEpsilonForNodeComp(double val) throw(INTERP_KERNEL::Exception);
- void SetCompPolicyForCell(int val) throw(INTERP_KERNEL::Exception);
- void SetTooLongStrPolicy(int val) throw(INTERP_KERNEL::Exception);
- void CheckFileForRead(const std::string& fileName) throw(INTERP_KERNEL::Exception);
- std::vector<std::string> GetMeshNames(const std::string& fileName) throw(INTERP_KERNEL::Exception);
- std::vector<std::string> GetMeshNamesOnField(const std::string& fileName, const std::string& fieldName) throw(INTERP_KERNEL::Exception);
- std::vector<std::string> GetMeshGroupsNames(const std::string& fileName, const std::string& meshName) throw(INTERP_KERNEL::Exception);
- std::vector<std::string> GetMeshFamiliesNames(const std::string& fileName, const std::string& meshName) throw(INTERP_KERNEL::Exception);
- std::vector<std::string> GetMeshFamiliesNamesOnGroup(const std::string& fileName, const std::string& meshName, const std::string& grpName) throw(INTERP_KERNEL::Exception);
- std::vector<std::string> GetMeshGroupsNamesOnFamily(const std::string& fileName, const std::string& meshName, const std::string& famName) throw(INTERP_KERNEL::Exception);
- std::vector<std::string> GetAllFieldNamesOnMesh(const std::string& fileName, const std::string& meshName) throw(INTERP_KERNEL::Exception);
- std::vector<std::string> GetAllFieldNames(const std::string& fileName) throw(INTERP_KERNEL::Exception);
- std::vector<std::string> GetFieldNamesOnMesh(MEDCoupling::TypeOfField type, const std::string& fileName, const std::string& meshName) throw(INTERP_KERNEL::Exception);
- std::vector<std::string> GetCellFieldNamesOnMesh(const std::string& fileName, const std::string& meshName) throw(INTERP_KERNEL::Exception);
- std::vector<std::string> GetNodeFieldNamesOnMesh(const std::string& fileName, const std::string& meshName) throw(INTERP_KERNEL::Exception);
- double GetTimeAttachedOnFieldIteration(const std::string& fileName, const std::string& fieldName, int iteration, int order) throw(INTERP_KERNEL::Exception);
- void AssignStaticWritePropertiesTo(MEDCoupling::MEDFileWritable& obj) throw(INTERP_KERNEL::Exception);
- MEDCoupling::MEDCouplingMesh *ReadMeshFromFile(const std::string& fileName, const std::string& meshName, int meshDimRelToMax=0) throw(INTERP_KERNEL::Exception);
- MEDCoupling::MEDCouplingMesh *ReadMeshFromFile(const std::string& fileName, int meshDimRelToMax=0) throw(INTERP_KERNEL::Exception);
- MEDCoupling::MEDCouplingUMesh *ReadUMeshFromFile(const std::string& fileName, const std::string& meshName, int meshDimRelToMax=0) throw(INTERP_KERNEL::Exception);
- MEDCoupling::MEDCouplingUMesh *ReadUMeshFromFile(const std::string& fileName, int meshDimRelToMax=0) throw(INTERP_KERNEL::Exception);
- int ReadUMeshDimFromFile(const std::string& fileName, const std::string& meshName) throw(INTERP_KERNEL::Exception);
- MEDCoupling::MEDCouplingFieldDouble *ReadFieldCell(const std::string& fileName, const std::string& meshName, int meshDimRelToMax, const std::string& fieldName, int iteration, int order) throw(INTERP_KERNEL::Exception);
- MEDCoupling::MEDCouplingFieldDouble *ReadFieldNode(const std::string& fileName, const std::string& meshName, int meshDimRelToMax, const std::string& fieldName, int iteration, int order) throw(INTERP_KERNEL::Exception);
- MEDCoupling::MEDCouplingFieldDouble *ReadFieldGauss(const std::string& fileName, const std::string& meshName, int meshDimRelToMax, const std::string& fieldName, int iteration, int order) throw(INTERP_KERNEL::Exception);
- MEDCoupling::MEDCouplingFieldDouble *ReadFieldGaussNE(const std::string& fileName, const std::string& meshName, int meshDimRelToMax, const std::string& fieldName, int iteration, int order) throw(INTERP_KERNEL::Exception);
- void WriteMesh(const std::string& fileName, const MEDCoupling::MEDCouplingMesh *mesh, bool writeFromScratch) throw(INTERP_KERNEL::Exception);
- void WriteUMesh(const std::string& fileName, const MEDCoupling::MEDCouplingUMesh *mesh, bool writeFromScratch) throw(INTERP_KERNEL::Exception);
- void WriteUMeshDep(const std::string& fileName, const MEDCoupling::MEDCouplingUMesh *mesh, bool writeFromScratch) throw(INTERP_KERNEL::Exception);
- void WriteField(const std::string& fileName, const MEDCoupling::MEDCouplingField *f, bool writeFromScratch) throw(INTERP_KERNEL::Exception);
- void WriteFieldDep(const std::string& fileName, const MEDCoupling::MEDCouplingField *f, bool writeFromScratch) throw(INTERP_KERNEL::Exception);
- void WriteFieldUsingAlreadyWrittenMesh(const std::string& fileName, const MEDCoupling::MEDCouplingField *f) throw(INTERP_KERNEL::Exception);
-}
-
-%rename (MEDFileVersion) MEDFileVersionSwig;
-%rename (GetFieldIterations) GetFieldIterationsSwig;
-%rename (GetAllFieldIterations) GetAllFieldIterationsSwig;
-%rename (GetCellFieldIterations) GetCellFieldIterationsSwig;
-%rename (GetNodeFieldIterations) GetNodeFieldIterationsSwig;
-%rename (GetComponentsNamesOfField) GetComponentsNamesOfFieldSwig;
-%rename (GetUMeshGlobalInfo) GetUMeshGlobalInfoSwig;
-%rename (ReadFieldsOnSameMesh) ReadFieldsOnSameMeshSwig;
-%rename (WriteUMeshesPartition) WriteUMeshesPartitionSwig;
-%rename (WriteUMeshesPartitionDep) WriteUMeshesPartitionDepSwig;
-%rename (WriteUMeshes) WriteUMeshesSwig;
-%rename (GetTypesOfField) GetTypesOfFieldSwig;
-%rename (ReadUMeshFromGroups) ReadUMeshFromGroupsSwig;
-%rename (ReadUMeshFromFamilies) ReadUMeshFromFamiliesSwig;
-%rename (ReadField) ReadFieldSwig;
-
-%inline
-{
- PyObject *MEDFileVersionSwig() throw(INTERP_KERNEL::Exception)
- {
- int major,minor,release;
- MEDCoupling::MEDFileVersion(major,minor,release);
- PyObject *ret(PyTuple_New(3));
- PyTuple_SetItem(ret,0,SWIG_From_int(major));
- PyTuple_SetItem(ret,1,SWIG_From_int(minor));
- PyTuple_SetItem(ret,2,SWIG_From_int(release));
- return ret;
- }
-
- MEDCoupling::MEDCouplingField *ReadFieldSwig(const std::string& fileName) throw(INTERP_KERNEL::Exception)
- {
- MCAuto<MEDCoupling::MEDCouplingField> ret(MEDCoupling::ReadField(fileName));
- return ret.retn();
- }
-
- MEDCoupling::MEDCouplingField *ReadFieldSwig(const std::string& fileName, const std::string& fieldName) throw(INTERP_KERNEL::Exception)
- {
- MCAuto<MEDCoupling::MEDCouplingField> ret(MEDCoupling::ReadField(fileName,fieldName));
- return ret.retn();
- }
-
- MEDCoupling::MEDCouplingField *ReadFieldSwig(const std::string& fileName, const std::string& fieldName, int iteration, int order) throw(INTERP_KERNEL::Exception)
- {
- MCAuto<MEDCoupling::MEDCouplingField> ret(MEDCoupling::ReadField(fileName,fieldName,iteration,order));
- return ret.retn();
- }
-
- MEDCoupling::MEDCouplingFieldDouble *ReadFieldSwig(MEDCoupling::TypeOfField type, const std::string& fileName, const std::string& meshName, int meshDimRelToMax, const std::string& fieldName, int iteration, int order) throw(INTERP_KERNEL::Exception)
- {
- MCAuto<MEDCoupling::MEDCouplingFieldDouble> ret(MEDCoupling::ReadField(type,fileName,meshName,meshDimRelToMax,fieldName,iteration,order));
- return ret.retn();
- }
-
- PyObject *GetFieldIterationsSwig(MEDCoupling::TypeOfField type, const std::string& fileName, const std::string& meshName, const std::string& fieldName) throw(INTERP_KERNEL::Exception)
- {
- std::vector< std::pair<int,int> > res=MEDCoupling::GetFieldIterations(type,fileName,meshName,fieldName);
- PyObject *ret=PyList_New(res.size());
- int rk=0;
- for(std::vector< std::pair<int,int> >::const_iterator iter=res.begin();iter!=res.end();iter++,rk++)
- {
- PyObject *elt=PyTuple_New(2);
- PyTuple_SetItem(elt,0,SWIG_From_int((*iter).first));
- PyTuple_SetItem(elt,1,SWIG_From_int((*iter).second));
- PyList_SetItem(ret,rk,elt);
- }
- return ret;
- }
-
- PyObject *GetAllFieldIterationsSwig(const std::string& fileName, const std::string& fieldName) throw(INTERP_KERNEL::Exception)
- {
- std::vector< std::pair< std::pair<int,int>, double> > res=MEDCoupling::GetAllFieldIterations(fileName,fieldName);
- PyObject *ret=PyList_New(res.size());
- int rk=0;
- for(std::vector< std::pair< std::pair<int,int>, double> >::const_iterator iter=res.begin();iter!=res.end();iter++,rk++)
- {
- PyObject *elt=PyTuple_New(3);
- PyTuple_SetItem(elt,0,SWIG_From_int((*iter).first.first));
- PyTuple_SetItem(elt,1,SWIG_From_int((*iter).first.second));
- PyTuple_SetItem(elt,2,SWIG_From_double((*iter).second));
- PyList_SetItem(ret,rk,elt);
- }
- return ret;
- }
-
- PyObject *GetCellFieldIterationsSwig(const std::string& fileName, const std::string& meshName, const std::string& fieldName) throw(INTERP_KERNEL::Exception)
- {
- std::vector< std::pair<int,int> > res=MEDCoupling::GetCellFieldIterations(fileName,meshName,fieldName);
- PyObject *ret=PyList_New(res.size());
- int rk=0;
- for(std::vector< std::pair<int,int> >::const_iterator iter=res.begin();iter!=res.end();iter++,rk++)
- {
- PyObject *elt=PyTuple_New(2);
- PyTuple_SetItem(elt,0,SWIG_From_int((*iter).first));
- PyTuple_SetItem(elt,1,SWIG_From_int((*iter).second));
- PyList_SetItem(ret,rk,elt);
- }
- return ret;
- }
-
- PyObject *GetNodeFieldIterationsSwig(const std::string& fileName, const std::string& meshName, const std::string& fieldName) throw(INTERP_KERNEL::Exception)
- {
- std::vector< std::pair<int,int> > res=MEDCoupling::GetNodeFieldIterations(fileName,meshName,fieldName);
- PyObject *ret=PyList_New(res.size());
- int rk=0;
- for(std::vector< std::pair<int,int> >::const_iterator iter=res.begin();iter!=res.end();iter++,rk++)
- {
- PyObject *elt=PyTuple_New(2);
- PyTuple_SetItem(elt,0,SWIG_From_int((*iter).first));
- PyTuple_SetItem(elt,1,SWIG_From_int((*iter).second));
- PyList_SetItem(ret,rk,elt);
- }
- return ret;
- }
-
- PyObject *GetComponentsNamesOfFieldSwig(const std::string& fileName, const std::string& fieldName) throw(INTERP_KERNEL::Exception)
- {
- std::vector< std::pair<std::string,std::string> > res=MEDCoupling::GetComponentsNamesOfField(fileName,fieldName);
- PyObject *ret=PyList_New(res.size());
- int rk=0;
- for(std::vector< std::pair<std::string,std::string> >::const_iterator iter=res.begin();iter!=res.end();iter++,rk++)
- {
- PyObject *elt=PyTuple_New(2);
- PyTuple_SetItem(elt,0,PyString_FromString((*iter).first.c_str()));
- PyTuple_SetItem(elt,1,PyString_FromString((*iter).second.c_str()));
- PyList_SetItem(ret,rk,elt);
- }
- return ret;
- }
-
- PyObject *GetUMeshGlobalInfoSwig(const std::string& fileName, const std::string& meshName) throw(INTERP_KERNEL::Exception)
- {
- int meshDim,spaceDim,numberOfNodes;
- std::vector< std::vector< std::pair<INTERP_KERNEL::NormalizedCellType,int> > > res=MEDCoupling::GetUMeshGlobalInfo(fileName,meshName,meshDim,spaceDim,numberOfNodes);
- PyObject *ret=PyTuple_New(4);
- PyObject *elt0=PyList_New(res.size());
- int i=0;
- for(std::vector< std::vector< std::pair<INTERP_KERNEL::NormalizedCellType,int> > >::const_iterator it=res.begin();it!=res.end();it++,i++)
- {
- const std::vector< std::pair<INTERP_KERNEL::NormalizedCellType,int> >&obj2=(*it);
- int j=0;
- PyObject *elt1=PyList_New(obj2.size());
- for(std::vector< std::pair<INTERP_KERNEL::NormalizedCellType,int> >::const_iterator it2=obj2.begin();it2!=obj2.end();it2++,j++)
- {
- PyObject *elt2=PyTuple_New(2);
- PyTuple_SetItem(elt2,0,SWIG_From_int((int)(*it2).first));
- PyTuple_SetItem(elt2,1,SWIG_From_int((*it2).second));
- PyList_SetItem(elt1,j,elt2);
- }
- PyList_SetItem(elt0,i,elt1);
- }
- PyTuple_SetItem(ret,0,elt0);
- PyTuple_SetItem(ret,1,SWIG_From_int(meshDim));
- PyTuple_SetItem(ret,2,SWIG_From_int(spaceDim));
- PyTuple_SetItem(ret,3,SWIG_From_int(numberOfNodes));
- return ret;
- }
-
- PyObject *ReadFieldsOnSameMeshSwig(MEDCoupling::TypeOfField type, const std::string& fileName, const std::string& meshName, int meshDimRelToMax,
- const std::string& fieldName, PyObject *liIts) throw(INTERP_KERNEL::Exception)
- {
- std::vector<std::pair<int,int> > its=convertTimePairIdsFromPy(liIts);
- std::vector<MEDCoupling::MEDCouplingFieldDouble *> res=MEDCoupling::ReadFieldsOnSameMesh(type,fileName,meshName,meshDimRelToMax,fieldName,its);
- return convertFieldDoubleVecToPy(res);
- }
-
- void WriteUMeshesPartitionSwig(const std::string& fileName, const std::string& meshName, PyObject *li, bool writeFromScratch) throw(INTERP_KERNEL::Exception)
- {
- std::vector<const MEDCoupling::MEDCouplingUMesh *> v;
- convertFromPyObjVectorOfObj<const MEDCoupling::MEDCouplingUMesh *>(li,SWIGTYPE_p_MEDCoupling__MEDCouplingUMesh,"MEDCouplingUMesh",v);
- MEDCoupling::WriteUMeshesPartition(fileName,meshName,v,writeFromScratch);
- }
-
- void WriteUMeshesPartitionDepSwig(const std::string& fileName, const std::string& meshName, PyObject *li, bool writeFromScratch) throw(INTERP_KERNEL::Exception)
- {
- std::vector<const MEDCoupling::MEDCouplingUMesh *> v;
- convertFromPyObjVectorOfObj<const MEDCoupling::MEDCouplingUMesh *>(li,SWIGTYPE_p_MEDCoupling__MEDCouplingUMesh,"MEDCouplingUMesh",v);
- MEDCoupling::WriteUMeshesPartitionDep(fileName,meshName,v,writeFromScratch);
- }
-
- void WriteUMeshesSwig(const std::string& fileName, PyObject *li, bool writeFromScratch) throw(INTERP_KERNEL::Exception)
- {
- std::vector<const MEDCoupling::MEDCouplingUMesh *> v;
- convertFromPyObjVectorOfObj<const MEDCoupling::MEDCouplingUMesh *>(li,SWIGTYPE_p_MEDCoupling__MEDCouplingUMesh,"MEDCouplingUMesh",v);
- MEDCoupling::WriteUMeshes(fileName,v,writeFromScratch);
- }
-
- PyObject *GetTypesOfFieldSwig(const std::string& fileName, const std::string& meshName, const std::string& fieldName) throw(INTERP_KERNEL::Exception)
- {
- std::vector< MEDCoupling::TypeOfField > v=MEDCoupling::GetTypesOfField(fileName,meshName,fieldName);
- int size=v.size();
- PyObject *ret=PyList_New(size);
- for(int i=0;i<size;i++)
- PyList_SetItem(ret,i,PyInt_FromLong((int)v[i]));
- return ret;
- }
-
- MEDCoupling::MEDCouplingUMesh *ReadUMeshFromGroupsSwig(const std::string& fileName, const std::string& meshName, int meshDimRelToMax, PyObject *li) throw(INTERP_KERNEL::Exception)
- {
- std::vector<std::string> grps;
- converPyListToVecString(li,grps);
- return MEDCoupling::ReadUMeshFromGroups(fileName,meshName,meshDimRelToMax,grps);
- }
-
- MEDCoupling::MEDCouplingUMesh *ReadUMeshFromFamiliesSwig(const std::string& fileName, const std::string& meshName, int meshDimRelToMax, PyObject *li) throw(INTERP_KERNEL::Exception)
- {
- std::vector<std::string> fams;
- converPyListToVecString(li,fams);
- return MEDCoupling::ReadUMeshFromFamilies(fileName,meshName,meshDimRelToMax,fams);
- }
-}
-
-namespace MEDCoupling
-{
- class MEDFileWritable
- {
- public:
- void copyOptionsFrom(const MEDFileWritable& other) const;
- int getTooLongStrPolicy() const throw(INTERP_KERNEL::Exception);
- void setTooLongStrPolicy(int newVal) throw(INTERP_KERNEL::Exception);
- int getZipConnPolicy() throw(INTERP_KERNEL::Exception);
- void setZipConnPolicy(int newVal) throw(INTERP_KERNEL::Exception);
- };
-
- class MEDFileWritableStandAlone : public MEDFileWritable
- {
- public:
- void write(const std::string& fileName, int mode) const throw(INTERP_KERNEL::Exception);
- void write30(const std::string& fileName, int mode) const throw(INTERP_KERNEL::Exception);
- %extend
- {
- DataArrayByte *serialize() const throw(INTERP_KERNEL::Exception)
- {
- MCAuto<DataArrayByte> ret(self->serialize());
- return ret.retn();
- }
-
- PyObject *__getstate__() throw(INTERP_KERNEL::Exception)
- {
- PyObject *ret(PyList_New(0));
- return ret;
- }
-
- void __setstate__(PyObject *inp) throw(INTERP_KERNEL::Exception)
- {
- }
- }
- };
-
- class MEDFileMeshReadSelector
- {
- public:
- MEDFileMeshReadSelector();
- MEDFileMeshReadSelector(unsigned int code);
- unsigned int getCode() const;
- void setCode(unsigned int newCode);
- bool isCellFamilyFieldReading() const;
- bool isNodeFamilyFieldReading() const;
- bool isCellNameFieldReading() const;
- bool isNodeNameFieldReading() const;
- bool isCellNumFieldReading() const;
- bool isNodeNumFieldReading() const;
- bool isGlobalNodeNumFieldReading() const;
- void setCellFamilyFieldReading(bool b);
- void setNodeFamilyFieldReading(bool b);
- void setCellNameFieldReading(bool b);
- void setNodeNameFieldReading(bool b);
- void setCellNumFieldReading(bool b);
- void setNodeNumFieldReading(bool b);
- void setGlobalNodeNumFieldReading(bool b);
- %extend
- {
- std::string __str__() const throw(INTERP_KERNEL::Exception)
- {
- std::ostringstream oss;
- self->reprAll(oss);
- return oss.str();
- }
-
- std::string __repr__() const throw(INTERP_KERNEL::Exception)
- {
- std::ostringstream oss; oss << "MEDFileMeshReadSelector C++ instance at " << self << " (with code=" << self->getCode() << ").";
- return oss.str();
- }
- }
- };
-
- class MEDFileJointCorrespondence : public RefCountObject, public MEDFileWritable
- {
- public:
- static MEDFileJointCorrespondence *New() throw(INTERP_KERNEL::Exception);
- static MEDFileJointCorrespondence *New(DataArrayInt* correspondence) // nodes
- throw(INTERP_KERNEL::Exception);
- static MEDFileJointCorrespondence *New(DataArrayInt* correspondence, // cells
- INTERP_KERNEL::NormalizedCellType loc_geo_type,
- INTERP_KERNEL::NormalizedCellType rem_geo_type)
- throw(INTERP_KERNEL::Exception);
- std::vector<const BigMemoryObject *> getDirectChildrenWithNull() const;
- MEDFileJointCorrespondence *deepCopy() const;
- MEDFileJointCorrespondence *shallowCpy() const;
- void setIsNodal(bool isNodal);
- bool getIsNodal() const;
- bool isEqual(const MEDFileJointCorrespondence *other) const;
- void setLocalGeometryType(INTERP_KERNEL::NormalizedCellType type);
- INTERP_KERNEL::NormalizedCellType getLocalGeometryType() const;
- void setRemoteGeometryType(INTERP_KERNEL::NormalizedCellType type);
- INTERP_KERNEL::NormalizedCellType getRemoteGeometryType() const;
- void setCorrespondence(DataArrayInt *corr) throw(INTERP_KERNEL::Exception);
- void write(const std::string& fileName, int mode, const std::string& localMeshName, const std::string& jointName, int order, int iteration) const throw(INTERP_KERNEL::Exception);
- std::string simpleRepr() const throw(INTERP_KERNEL::Exception);
- %extend
- {
- MEDFileJointCorrespondence()
- {
- return MEDFileJointCorrespondence::New();
- }
- MEDFileJointCorrespondence(DataArrayInt* correspondence) throw(INTERP_KERNEL::Exception)
- {
- return MEDFileJointCorrespondence::New(correspondence);
- }
- MEDFileJointCorrespondence(DataArrayInt* correspondence, // cells
- INTERP_KERNEL::NormalizedCellType loc_geo_type,
- INTERP_KERNEL::NormalizedCellType rem_geo_type) throw(INTERP_KERNEL::Exception)
- {
- return MEDFileJointCorrespondence::New(correspondence, loc_geo_type, rem_geo_type);
- }
-
- std::string __str__() const throw(INTERP_KERNEL::Exception)
- {
- return self->simpleRepr();
- }
-
- DataArrayInt *getCorrespondence() const throw(INTERP_KERNEL::Exception)
- {
- const DataArrayInt *ret(self->getCorrespondence());
- if(ret)
- ret->incrRef();
- return const_cast<DataArrayInt *>(ret);
- }
- }
- };
-
- class MEDFileJointOneStep : public RefCountObject, public MEDFileWritable
- {
- public:
- static MEDFileJointOneStep *New(int dt=-1, int it=-1) throw(INTERP_KERNEL::Exception);
- static MEDFileJointOneStep *New(const std::string& fileName, const std::string& mName, const std::string& jointName, int number=1) throw(INTERP_KERNEL::Exception);
- MEDFileJointOneStep *deepCopy() const;
- MEDFileJointOneStep *shallowCpy() const;
- bool isEqual(const MEDFileJointOneStep *other) const;
- void setOrder(int order);
- int getOrder() const;
- void setIteration(int it);
- int getIteration() const;
- void pushCorrespondence(MEDFileJointCorrespondence* correspondence);
- int getNumberOfCorrespondences() const;
- void write(const std::string& fileName, int mode, const std::string& localMeshName, const std::string& jointName) const throw(INTERP_KERNEL::Exception);
- std::string simpleRepr() const throw(INTERP_KERNEL::Exception);
- %extend
- {
- MEDFileJointOneStep()
- {
- return MEDFileJointOneStep::New();
- }
-
- MEDFileJointOneStep(const std::string& fileName, const std::string& mName, const std::string& jointName, int number) throw(INTERP_KERNEL::Exception)
- {
- return MEDFileJointOneStep::New(fileName,mName,jointName,number);
- }
-
- std::string __str__() const throw(INTERP_KERNEL::Exception)
- {
- return self->simpleRepr();
- }
-
- MEDFileJointCorrespondence *getCorrespondenceAtPos(int i) const throw(INTERP_KERNEL::Exception)
- {
- MEDFileJointCorrespondence *ret(self->getCorrespondenceAtPos(i));
- if(ret)
- ret->incrRef();
- return ret;
- }
-
- MEDFileJointCorrespondence *__getitem__(int i) const throw(INTERP_KERNEL::Exception)
- {
- return MEDCoupling_MEDFileJointOneStep_getCorrespondenceAtPos(self,i);
- }
- }
- };
-
- class MEDFileJoint : public RefCountObject, public MEDFileWritableStandAlone
- {
- public:
- static MEDFileJoint *New() throw(INTERP_KERNEL::Exception);
- static MEDFileJoint *New(const std::string& fileName, const std::string& mName, int num) throw(INTERP_KERNEL::Exception);
- static MEDFileJoint *New(const std::string& jointName, const std::string& locMeshName, const std::string& remoteMeshName, int remoteMeshNum) throw(INTERP_KERNEL::Exception);
- MEDFileJoint *deepCopy() const;
- MEDFileJoint *shallowCpy() const;
- bool isEqual(const MEDFileJoint *other) const;
- void setLocalMeshName(const std::string& name);
- std::string getLocalMeshName() const;
- void setRemoteMeshName(const std::string& name);
- std::string getRemoteMeshName() const;
- void setDescription(const std::string& name);
- std::string getDescription() const;
- void setJointName(const std::string& name);
- std::string getJointName() const;
- bool changeJointNames(const std::vector< std::pair<std::string,std::string> >& modifTab) throw(INTERP_KERNEL::Exception);
- void setDomainNumber(const int& number);
- int getDomainNumber() const;
- void pushStep(MEDFileJointOneStep* step);
- int getNumberOfSteps() const;
- std::string simpleRepr() const;
- %extend
- {
- MEDFileJoint()
- {
- return MEDFileJoint::New();
- }
-
- MEDFileJoint(const std::string& fileName, const std::string& mName, int num) throw(INTERP_KERNEL::Exception)
- {
- return MEDFileJoint::New(fileName,mName,num);
- }
-
- MEDFileJoint(const std::string& jointName, const std::string& locMeshName, const std::string& remoteMeshName, int remoteMeshNum) throw(INTERP_KERNEL::Exception)
- {
- return MEDFileJoint::New(jointName,locMeshName,remoteMeshName,remoteMeshNum);
- }
-
- std::string __str__() const throw(INTERP_KERNEL::Exception)
- {
- return self->simpleRepr();
- }
-
- MEDFileJointOneStep *getStepAtPos(int i) const throw(INTERP_KERNEL::Exception)
- {
- MEDFileJointOneStep *ret(self->getStepAtPos(i));
- if(ret)
- ret->incrRef();
- return ret;
- }
-
- MEDFileJointOneStep *__getitem__(int i) throw(INTERP_KERNEL::Exception)
- {
- return MEDCoupling_MEDFileJoint_getStepAtPos(self,i);
- }
- }
- };
-
- class MEDFileJoints : public RefCountObject, public MEDFileWritableStandAlone
- {
- public:
- static MEDFileJoints *New() throw(INTERP_KERNEL::Exception);
- static MEDFileJoints *New(const std::string& fileName, const std::string& meshName) throw(INTERP_KERNEL::Exception);
- MEDFileJoints *deepCopy() const;
- std::string simpleRepr() const;
- std::string getMeshName() const;
- int getNumberOfJoints() const;
- std::vector<std::string> getJointsNames() const;
- bool changeJointNames(const std::vector< std::pair<std::string,std::string> >& modifTab) throw(INTERP_KERNEL::Exception);
- void resize(int newSize) throw(INTERP_KERNEL::Exception);
- void pushJoint(MEDFileJoint *joint);
- void setJointAtPos(int i, MEDFileJoint *joint) throw(INTERP_KERNEL::Exception);
- void destroyJointAtPos(int i) throw(INTERP_KERNEL::Exception);
- %extend
- {
- MEDFileJoints()
- {
- return MEDFileJoints::New();
- }
-
- MEDFileJoints(const std::string& fileName, const std::string& meshName) throw(INTERP_KERNEL::Exception)
- {
- return MEDFileJoints::New(fileName,meshName);
- }
-
- std::string __str__() const throw(INTERP_KERNEL::Exception)
- {
- return self->simpleRepr();
- }
-
- MEDFileJoint *__getitem__(PyObject *obj) throw(INTERP_KERNEL::Exception)
- {
- static const char msg[]="MEDFileJoints::__getitem__ : only integer or string with meshname supported !";
- if(PyInt_Check(obj))
- {
- MEDFileJoint *ret=self->getJointAtPos(InterpreteNegativeInt((int)PyInt_AS_LONG(obj),self->getNumberOfJoints()));
- if(ret)
- ret->incrRef();
- return ret;
- }
- MEDFileJoint *ret(self->getJointWithName(convertPyObjectToStr(obj,msg)));
- if(ret)
- ret->incrRef();
- return ret;
- }
-
- int __len__() const throw(INTERP_KERNEL::Exception)
- {
- return self->getNumberOfJoints();
- }
-
- MEDFileJoint *getJointAtPos(int i) const throw(INTERP_KERNEL::Exception)
- {
- MEDFileJoint *ret=self->getJointAtPos(i);
- if(ret)
- ret->incrRef();
- return ret;
- }
-
- MEDFileJoint *getJointWithName(const std::string& paramName) const throw(INTERP_KERNEL::Exception)
- {
- MEDFileJoint *ret=self->getJointWithName(paramName);
- if(ret)
- ret->incrRef();
- return ret;
- }
- }
- };
-
- class MEDFileEquivalenceBase : public RefCountObject, public MEDFileWritableStandAlone
- {
- private:
- MEDFileEquivalenceBase();
- };
-
- class MEDFileEquivalenceData : public MEDFileEquivalenceBase
- {
- private:
- MEDFileEquivalenceData();
- public:
- void setArray(DataArrayInt *data);
- %extend
- {
- DataArrayInt *getArray()
- {
- DataArrayInt *ret(self->getArray());
- if(ret) ret->incrRef();
- return ret;
- }
- }
- };
-
- class MEDFileEquivalenceNode : public MEDFileEquivalenceData
- {
- private:
- MEDFileEquivalenceNode();
- };
-
- class MEDFileEquivalenceCell : public MEDFileEquivalenceBase
- {
- private:
- MEDFileEquivalenceCell();
- public:
- void clear();
- std::size_t size() const;
- void setArray(int meshDimRelToMax, DataArrayInt *da) throw(INTERP_KERNEL::Exception);
- void setArrayForType(INTERP_KERNEL::NormalizedCellType type, DataArrayInt *da) throw(INTERP_KERNEL::Exception);
- %extend
- {
- DataArrayInt *getArray(INTERP_KERNEL::NormalizedCellType type) throw(INTERP_KERNEL::Exception)
- {
- DataArrayInt *ret(self->getArray(type));
- if(ret) ret->incrRef();
- return ret;
- }
-
- PyObject *getTypes() const throw(INTERP_KERNEL::Exception)
- {
- std::vector<INTERP_KERNEL::NormalizedCellType> result(self->getTypes());
- std::vector<INTERP_KERNEL::NormalizedCellType>::const_iterator iL=result.begin();
- PyObject *res=PyList_New(result.size());
- for(int i=0;iL!=result.end(); i++, iL++)
- PyList_SetItem(res,i,PyInt_FromLong(*iL));
- return res;
- }
- }
- };
-
- class MEDFileEquivalencePair : public RefCountObject, public MEDFileWritableStandAlone
- {
- private:
- MEDFileEquivalencePair();
- public:
- std::string getName() const;
- void setName(const std::string& name);
- std::string getDescription() const;
- void setDescription(const std::string& descr);
- void setArray(int meshDimRelToMaxExt, DataArrayInt *da);;
- %extend
- {
- MEDFileEquivalenceCell *initCell()
- {
- MEDFileEquivalenceCell *ret(self->initCell());
- if(ret) ret->incrRef();
- return ret;
- }
-
- MEDFileEquivalenceNode *initNode()
- {
- MEDFileEquivalenceNode *ret(self->initNode());
- if(ret) ret->incrRef();
- return ret;
- }
-
- MEDFileEquivalenceCell *getCell()
- {
- MEDFileEquivalenceCell *ret(self->getCell());
- if(ret) ret->incrRef();
- return ret;
- }
-
- MEDFileEquivalenceNode *getNode()
- {
- MEDFileEquivalenceNode *ret(self->getNode());
- if(ret) ret->incrRef();
- return ret;
- }
- }
- };
-
- class MEDFileEquivalences : public RefCountObject, public MEDFileWritableStandAlone
- {
- private:
- MEDFileEquivalences();
- public:
- int size() const;
- std::vector<std::string> getEquivalenceNames() const throw(INTERP_KERNEL::Exception);
- void killEquivalenceWithName(const std::string& name) throw(INTERP_KERNEL::Exception);
- void killEquivalenceAt(int i) throw(INTERP_KERNEL::Exception);
- void clear();
- %extend
- {
- MEDFileEquivalencePair *getEquivalence(int i) throw(INTERP_KERNEL::Exception)
- {
- MEDFileEquivalencePair *ret(self->getEquivalence(i));
- if(ret) ret->incrRef();
- return ret;
- }
- MEDFileEquivalencePair *getEquivalenceWithName(const std::string& name) throw(INTERP_KERNEL::Exception)
- {
- MEDFileEquivalencePair *ret(self->getEquivalenceWithName(name));
- if(ret) ret->incrRef();
- return ret;
- }
-
- MEDFileEquivalencePair *appendEmptyEquivalenceWithName(const std::string& name) throw(INTERP_KERNEL::Exception)
- {
- MEDFileEquivalencePair *ret(self->appendEmptyEquivalenceWithName(name));
- if(ret) ret->incrRef();
- return ret;
- }
- }
- };
-
- class MEDFileMesh : public RefCountObject, public MEDFileWritableStandAlone
- {
- public:
- static MEDFileMesh *New(const std::string& fileName, MEDFileMeshReadSelector *mrs=0) throw(INTERP_KERNEL::Exception);
- static MEDFileMesh *New(const std::string& fileName, const std::string& mName, int dt=-1, int it=-1, MEDFileMeshReadSelector *mrs=0) throw(INTERP_KERNEL::Exception);
- static MEDFileMesh *New(DataArrayByte *db) throw(INTERP_KERNEL::Exception);
- virtual MEDFileMesh *createNewEmpty() const throw(INTERP_KERNEL::Exception);
- virtual MEDFileMesh *deepCopy() const throw(INTERP_KERNEL::Exception);
- virtual MEDFileMesh *shallowCpy() const throw(INTERP_KERNEL::Exception);
- virtual void clearNonDiscrAttributes() const throw(INTERP_KERNEL::Exception);
- void setName(const std::string& name);
- std::string getName();
- std::string getUnivName() const;
- bool getUnivNameWrStatus() const;
- void setUnivNameWrStatus(bool newStatus);
- void setDescription(const std::string& name);
- std::string getDescription() const;
- void setOrder(int order);
- int getOrder() const;
- void setIteration(int it);
- int getIteration();
- void setTimeValue(double time);
- void setTime(int dt, int it, double time);
- double getTimeValue() const;
- void setTimeUnit(const std::string& unit);
- std::string getTimeUnit() const;
- void setAxisType(MEDCouplingAxisType at);
- MEDCouplingAxisType getAxisType() const;
- virtual int getNumberOfNodes() const throw(INTERP_KERNEL::Exception);
- virtual int getNumberOfCellsAtLevel(int meshDimRelToMaxExt) const throw(INTERP_KERNEL::Exception);
- virtual bool hasImplicitPart() const throw(INTERP_KERNEL::Exception);
- virtual int buildImplicitPartIfAny(INTERP_KERNEL::NormalizedCellType gt) const throw(INTERP_KERNEL::Exception);
- virtual void releaseImplicitPartIfAny() const throw(INTERP_KERNEL::Exception);
- virtual int getNumberOfCellsWithType(INTERP_KERNEL::NormalizedCellType ct) const throw(INTERP_KERNEL::Exception);
- virtual std::vector<int> getFamArrNonEmptyLevelsExt() const throw(INTERP_KERNEL::Exception);
- virtual std::vector<int> getNumArrNonEmptyLevelsExt() const throw(INTERP_KERNEL::Exception);
- virtual std::vector<int> getNameArrNonEmptyLevelsExt() const throw(INTERP_KERNEL::Exception);
- virtual std::vector<int> getDistributionOfTypes(int meshDimRelToMax) const throw(INTERP_KERNEL::Exception);
- virtual MEDFileMesh *cartesianize() const throw(INTERP_KERNEL::Exception);
- std::vector<int> getNonEmptyLevels() const throw(INTERP_KERNEL::Exception);
- std::vector<int> getNonEmptyLevelsExt() const throw(INTERP_KERNEL::Exception);
- int getSizeAtLevel(int meshDimRelToMaxExt) const throw(INTERP_KERNEL::Exception);
- //
- bool existsGroup(const std::string& groupName) const throw(INTERP_KERNEL::Exception);
- bool existsFamily(int famId) const throw(INTERP_KERNEL::Exception);
- bool existsFamily(const std::string& familyName) const throw(INTERP_KERNEL::Exception);
- void setFamilyId(const std::string& familyName, int id) throw(INTERP_KERNEL::Exception);
- void setFamilyIdUnique(const std::string& familyName, int id) throw(INTERP_KERNEL::Exception);
- void addFamily(const std::string& familyName, int id) throw(INTERP_KERNEL::Exception);
- void addFamilyOnGrp(const std::string& grpName, const std::string& famName) throw(INTERP_KERNEL::Exception);
- virtual void createGroupOnAll(int meshDimRelToMaxExt, const std::string& groupName) throw(INTERP_KERNEL::Exception);
- virtual bool keepFamIdsOnlyOnLevs(const std::vector<int>& famIds, const std::vector<int>& levs) throw(INTERP_KERNEL::Exception);
- void copyFamGrpMapsFrom(const MEDFileMesh& other) throw(INTERP_KERNEL::Exception);
- void clearGrpMap() throw(INTERP_KERNEL::Exception);
- void clearFamMap() throw(INTERP_KERNEL::Exception);
- void clearFamGrpMaps() throw(INTERP_KERNEL::Exception);
- const std::map<std::string,int>& getFamilyInfo() const throw(INTERP_KERNEL::Exception);
- const std::map<std::string, std::vector<std::string> >& getGroupInfo() const throw(INTERP_KERNEL::Exception);
- std::vector<std::string> getFamiliesOnGroup(const std::string& name) const throw(INTERP_KERNEL::Exception);
- std::vector<std::string> getFamiliesOnGroups(const std::vector<std::string>& grps) const throw(INTERP_KERNEL::Exception);
- std::vector<int> getFamiliesIdsOnGroup(const std::string& name) const throw(INTERP_KERNEL::Exception);
- void setFamiliesOnGroup(const std::string& name, const std::vector<std::string>& fams) throw(INTERP_KERNEL::Exception);
- void setFamiliesIdsOnGroup(const std::string& name, const std::vector<int>& famIds) throw(INTERP_KERNEL::Exception);
- std::vector<std::string> getGroupsOnFamily(const std::string& name) const throw(INTERP_KERNEL::Exception);
- void setGroupsOnFamily(const std::string& famName, const std::vector<std::string>& grps) throw(INTERP_KERNEL::Exception);
- std::vector<std::string> getGroupsNames() const throw(INTERP_KERNEL::Exception);
- std::vector<std::string> getFamiliesNames() const throw(INTERP_KERNEL::Exception);
- std::vector<std::string> getGroupsOnSpecifiedLev(int meshDimRelToMaxExt) const throw(INTERP_KERNEL::Exception);
- std::vector<int> getGrpNonEmptyLevelsExt(const std::string& grp) const throw(INTERP_KERNEL::Exception);
- std::vector<int> getGrpNonEmptyLevels(const std::string& grp) const throw(INTERP_KERNEL::Exception);
- std::vector<int> getFamsNonEmptyLevels(const std::vector<std::string>& fams) const throw(INTERP_KERNEL::Exception);
- std::vector<int> getFamsNonEmptyLevelsExt(const std::vector<std::string>& fams) const throw(INTERP_KERNEL::Exception);
- std::vector<int> getGrpsNonEmptyLevels(const std::vector<std::string>& grps) const throw(INTERP_KERNEL::Exception);
- std::vector<int> getGrpsNonEmptyLevelsExt(const std::vector<std::string>& grps) const throw(INTERP_KERNEL::Exception);
- std::vector<int> getFamNonEmptyLevels(const std::string& fam) const throw(INTERP_KERNEL::Exception);
- std::vector<int> getFamNonEmptyLevelsExt(const std::string& fam) const throw(INTERP_KERNEL::Exception);
- std::vector<std::string> getFamiliesNamesWithFilePointOfView() const throw(INTERP_KERNEL::Exception);
- static std::string GetMagicFamilyStr();
- void assignFamilyNameWithGroupName() throw(INTERP_KERNEL::Exception);
- std::vector<std::string> removeEmptyGroups() throw(INTERP_KERNEL::Exception);
- void removeGroup(const std::string& name) throw(INTERP_KERNEL::Exception);
- void removeFamily(const std::string& name) throw(INTERP_KERNEL::Exception);
- std::vector<std::string> removeOrphanGroups() throw(INTERP_KERNEL::Exception);
- std::vector<std::string> removeOrphanFamilies() throw(INTERP_KERNEL::Exception);
- void removeFamiliesReferedByNoGroups() throw(INTERP_KERNEL::Exception);
- void rearrangeFamilies() throw(INTERP_KERNEL::Exception);
- void checkOrphanFamilyZero() const throw(INTERP_KERNEL::Exception);
- void changeGroupName(const std::string& oldName, const std::string& newName) throw(INTERP_KERNEL::Exception);
- void changeFamilyName(const std::string& oldName, const std::string& newName) throw(INTERP_KERNEL::Exception);
- void changeFamilyId(int oldId, int newId) throw(INTERP_KERNEL::Exception);
- void changeAllGroupsContainingFamily(const std::string& familyNameToChange, const std::vector<std::string>& newFamiliesNames) throw(INTERP_KERNEL::Exception);
- void setFamilyInfo(const std::map<std::string,int>& info);
- void setGroupInfo(const std::map<std::string, std::vector<std::string> >&info);
- int getFamilyId(const std::string& name) const throw(INTERP_KERNEL::Exception);
- int getMaxAbsFamilyId() const throw(INTERP_KERNEL::Exception);
- int getMaxFamilyId() const throw(INTERP_KERNEL::Exception);
- int getMinFamilyId() const throw(INTERP_KERNEL::Exception);
- int getTheMaxAbsFamilyId() const throw(INTERP_KERNEL::Exception);
- int getTheMaxFamilyId() const throw(INTERP_KERNEL::Exception);
- int getTheMinFamilyId() const throw(INTERP_KERNEL::Exception);
- virtual int getMaxAbsFamilyIdInArrays() const throw(INTERP_KERNEL::Exception);
- virtual int getMaxFamilyIdInArrays() const throw(INTERP_KERNEL::Exception);
- virtual int getMinFamilyIdInArrays() const throw(INTERP_KERNEL::Exception);
- DataArrayInt *getAllFamiliesIdsReferenced() const throw(INTERP_KERNEL::Exception);
- DataArrayInt *computeAllFamilyIdsInUse() const throw(INTERP_KERNEL::Exception);
- std::vector<int> getFamiliesIds(const std::vector<std::string>& famNames) const throw(INTERP_KERNEL::Exception);
- std::string getFamilyNameGivenId(int id) const throw(INTERP_KERNEL::Exception);
- bool ensureDifferentFamIdsPerLevel() throw(INTERP_KERNEL::Exception);
- void normalizeFamIdsTrio() throw(INTERP_KERNEL::Exception);
- void normalizeFamIdsMEDFile() throw(INTERP_KERNEL::Exception);
- virtual int getMeshDimension() const throw(INTERP_KERNEL::Exception);
- virtual std::string simpleRepr() const throw(INTERP_KERNEL::Exception);
- virtual std::string advancedRepr() const throw(INTERP_KERNEL::Exception);
- //
- virtual MEDCouplingMesh *getMeshAtLevel(int meshDimRelToMax, bool renum=false) const throw(INTERP_KERNEL::Exception);
- virtual void setFamilyFieldArr(int meshDimRelToMaxExt, DataArrayInt *famArr) throw(INTERP_KERNEL::Exception);
- virtual void setRenumFieldArr(int meshDimRelToMaxExt, DataArrayInt *renumArr) throw(INTERP_KERNEL::Exception);
- virtual void setNameFieldAtLevel(int meshDimRelToMaxExt, DataArrayAsciiChar *nameArr) throw(INTERP_KERNEL::Exception);
- virtual void setGlobalNumFieldAtLevel(int meshDimRelToMaxExt, DataArrayInt *globalNumArr) throw(INTERP_KERNEL::Exception);
- virtual void addNodeGroup(const DataArrayInt *ids) throw(INTERP_KERNEL::Exception);
- virtual void addGroup(int meshDimRelToMaxExt, const DataArrayInt *ids) throw(INTERP_KERNEL::Exception);
- virtual DataArrayInt *getFamiliesArr(int meshDimRelToMaxExt, const std::vector<std::string>& fams, bool renum=false) const throw(INTERP_KERNEL::Exception);
- virtual DataArrayInt *getGroupsArr(int meshDimRelToMaxExt, const std::vector<std::string>& grps, bool renum=false) const throw(INTERP_KERNEL::Exception);
- virtual DataArrayInt *getGroupArr(int meshDimRelToMaxExt, const std::string& grp, bool renum=false) const throw(INTERP_KERNEL::Exception);
- virtual DataArrayInt *getFamilyArr(int meshDimRelToMaxExt, const std::string& fam, bool renum=false) const throw(INTERP_KERNEL::Exception);
- virtual DataArrayInt *getNodeGroupArr(const std::string& grp, bool renum=false) const throw(INTERP_KERNEL::Exception);
- virtual DataArrayInt *getNodeGroupsArr(const std::vector<std::string>& grps, bool renum=false) const throw(INTERP_KERNEL::Exception);
- virtual DataArrayInt *getNodeFamilyArr(const std::string& fam, bool renum=false) const throw(INTERP_KERNEL::Exception);
- virtual DataArrayInt *getNodeFamiliesArr(const std::vector<std::string>& fams, bool renum=false) const throw(INTERP_KERNEL::Exception);
- int getNumberOfJoints();
- MEDFileJoints *getJoints();
- void setJoints( MEDFileJoints* joints );
- void initializeEquivalences();
- void killEquivalences();
- bool presenceOfStructureElements() const throw(INTERP_KERNEL::Exception);
- void killStructureElements() throw(INTERP_KERNEL::Exception);
- %extend
- {
- std::string __str__() const throw(INTERP_KERNEL::Exception)
- {
- return self->simpleRepr();
- }
-
- MEDCouplingMesh *__getitem__(int meshDimRelToMaxExt) const throw(INTERP_KERNEL::Exception)
- {
- return self->getMeshAtLevel(meshDimRelToMaxExt,false);
- }
-
- 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_int(tmp1));
- PyList_SetItem(res,1,SWIG_From_int(tmp2));
- PyList_SetItem(res,2,SWIG_From_double(tmp0));
- return res;
- }
-
- virtual PyObject *isEqual(const MEDFileMesh *other, double eps) const throw(INTERP_KERNEL::Exception)
- {
- std::string what;
- bool ret0=self->isEqual(other,eps,what);
- PyObject *res=PyList_New(2);
- PyObject *ret0Py=ret0?Py_True:Py_False;
- Py_XINCREF(ret0Py);
- PyList_SetItem(res,0,ret0Py);
- PyList_SetItem(res,1,PyString_FromString(what.c_str()));
- return res;
- }
-
- void setGroupsAtLevel(int meshDimRelToMaxExt, PyObject *li, bool renum=false) throw(INTERP_KERNEL::Exception)
- {
- std::vector<const DataArrayInt *> grps;
- convertFromPyObjVectorOfObj<const MEDCoupling::DataArrayInt *>(li,SWIGTYPE_p_MEDCoupling__DataArrayInt,"DataArrayInt",grps);
- self->setGroupsAtLevel(meshDimRelToMaxExt,grps,renum);
- }
-
- PyObject *areFamsEqual(const MEDFileMesh *other) const throw(INTERP_KERNEL::Exception)
- {
- std::string what;
- bool ret0=self->areFamsEqual(other,what);
- PyObject *res=PyList_New(2);
- PyObject *ret0Py=ret0?Py_True:Py_False;
- Py_XINCREF(ret0Py);
- PyList_SetItem(res,0,ret0Py);
- PyList_SetItem(res,1,PyString_FromString(what.c_str()));
- return res;
- }
-
- PyObject *areGrpsEqual(const MEDFileMesh *other) const throw(INTERP_KERNEL::Exception)
- {
- std::string what;
- bool ret0=self->areGrpsEqual(other,what);
- PyObject *res=PyList_New(2);
- PyObject *ret0Py=ret0?Py_True:Py_False;
- Py_XINCREF(ret0Py);
- PyList_SetItem(res,0,ret0Py);
- PyList_SetItem(res,1,PyString_FromString(what.c_str()));
- return res;
- }
-
- PyObject *getAllGeoTypes() const throw(INTERP_KERNEL::Exception)
- {
- std::vector<INTERP_KERNEL::NormalizedCellType> result(self->getAllGeoTypes());
- std::vector<INTERP_KERNEL::NormalizedCellType>::const_iterator iL=result.begin();
- PyObject *res=PyList_New(result.size());
- for(int i=0;iL!=result.end(); i++, iL++)
- PyList_SetItem(res,i,PyInt_FromLong(*iL));
- return res;
- }
-
- PyObject *getGeoTypesAtLevel(int meshDimRelToMax) const throw(INTERP_KERNEL::Exception)
- {
- std::vector<INTERP_KERNEL::NormalizedCellType> result(self->getGeoTypesAtLevel(meshDimRelToMax));
- std::vector<INTERP_KERNEL::NormalizedCellType>::const_iterator iL=result.begin();
- PyObject *res=PyList_New(result.size());
- for(int i=0;iL!=result.end(); i++, iL++)
- PyList_SetItem(res,i,PyInt_FromLong(*iL));
- return res;
- }
-
- PyObject *getFamilyFieldAtLevel(int meshDimRelToMaxExt) const throw(INTERP_KERNEL::Exception)
- {
- const DataArrayInt *tmp=self->getFamilyFieldAtLevel(meshDimRelToMaxExt);
- if(tmp)
- tmp->incrRef();
- return SWIG_NewPointerObj(SWIG_as_voidptr(tmp),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 );
- }
-
- PyObject *getOrCreateAndGetFamilyFieldAtLevel(int meshDimRelToMaxExt) throw(INTERP_KERNEL::Exception)
- {
- const DataArrayInt *tmp=self->getOrCreateAndGetFamilyFieldAtLevel(meshDimRelToMaxExt);
- if(tmp)
- tmp->incrRef();
- return SWIG_NewPointerObj(SWIG_as_voidptr(tmp),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 );
- }
-
- PyObject *getNumberFieldAtLevel(int meshDimRelToMaxExt) const throw(INTERP_KERNEL::Exception)
- {
- const DataArrayInt *tmp=self->getNumberFieldAtLevel(meshDimRelToMaxExt);
- if(tmp)
- tmp->incrRef();
- return SWIG_NewPointerObj(SWIG_as_voidptr(tmp),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 );
- }
-
- PyObject *getRevNumberFieldAtLevel(int meshDimRelToMaxExt) const throw(INTERP_KERNEL::Exception)
- {
- const DataArrayInt *tmp=self->getRevNumberFieldAtLevel(meshDimRelToMaxExt);
- if(tmp)
- tmp->incrRef();
- return SWIG_NewPointerObj(SWIG_as_voidptr(tmp),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 );
- }
-
- PyObject *getNameFieldAtLevel(int meshDimRelToMaxExt) const throw(INTERP_KERNEL::Exception)
- {
- const DataArrayAsciiChar *tmp=self->getNameFieldAtLevel(meshDimRelToMaxExt);
- if(tmp)
- tmp->incrRef();
- return SWIG_NewPointerObj(SWIG_as_voidptr(tmp),SWIGTYPE_p_MEDCoupling__DataArrayAsciiChar, SWIG_POINTER_OWN | 0 );
- }
-
- PyObject *findOrCreateAndGiveFamilyWithId(int id, bool& created) throw(INTERP_KERNEL::Exception)
- {
- bool ret1;
- std::string ret0=self->findOrCreateAndGiveFamilyWithId(id,ret1);
- PyObject *ret=PyTuple_New(2);
- PyTuple_SetItem(ret,0,PyString_FromString(ret0.c_str()));
- PyTuple_SetItem(ret,1,SWIG_From_bool(ret1));
- return ret;
- }
-
- PyObject *unPolyze() throw(INTERP_KERNEL::Exception)
- {
- DataArrayInt *ret3=0;
- std::vector<int> ret1,ret2;
- bool ret0=self->unPolyze(ret1,ret2,ret3);
- PyObject *ret=PyTuple_New(4);
- PyTuple_SetItem(ret,0,SWIG_From_bool(ret0));
- //
- PyObject *retLev1_0=PyList_New((int)ret1.size()/3);
- for(int j=0;j<(int)ret1.size()/3;j++)
- {
- PyObject *retLev2=PyList_New(3);
- PyList_SetItem(retLev2,0,SWIG_From_int(ret1[3*j]));
- PyList_SetItem(retLev2,1,SWIG_From_int(ret1[3*j+1]));
- PyList_SetItem(retLev2,2,SWIG_From_int(ret1[3*j+2]));
- PyList_SetItem(retLev1_0,j,retLev2);
- }
- PyTuple_SetItem(ret,1,retLev1_0);
- //
- PyObject *retLev1_1=PyList_New((int)ret2.size()/3);
- for(int j=0;j<(int)ret2.size()/3;j++)
- {
- PyObject *retLev2=PyList_New(3);
- PyList_SetItem(retLev2,0,SWIG_From_int(ret2[3*j]));
- PyList_SetItem(retLev2,1,SWIG_From_int(ret2[3*j+1]));
- PyList_SetItem(retLev2,2,SWIG_From_int(ret2[3*j+2]));
- PyList_SetItem(retLev1_1,j,retLev2);
- }
- PyTuple_SetItem(ret,2,retLev1_1);
- //
- PyTuple_SetItem(ret,3,SWIG_NewPointerObj(SWIG_as_voidptr(ret3),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ));
- return ret;
- }
-
- MEDFileEquivalences *getEquivalences() throw(INTERP_KERNEL::Exception)
- {
- MEDFileEquivalences *ret(self->getEquivalences());
- if(ret) ret->incrRef();
- return ret;
- }
-
- virtual DataArrayInt *getGlobalNumFieldAtLevel(int meshDimRelToMaxExt) const throw(INTERP_KERNEL::Exception)
- {
- MCAuto<DataArrayInt> ret(self->getGlobalNumFieldAtLevel(meshDimRelToMaxExt));
- return ret.retn();
- }
- }
- };
-
- class MEDFileUMesh : public MEDFileMesh
- {
- public:
- static MEDFileUMesh *New(const std::string& fileName, const std::string& mName, int dt=-1, int it=-1, MEDFileMeshReadSelector *mrs=0) throw(INTERP_KERNEL::Exception);
- static MEDFileUMesh *New(const std::string& fileName, MEDFileMeshReadSelector *mrs=0) throw(INTERP_KERNEL::Exception);
- static MEDFileUMesh *New(const MEDCouplingMappedExtrudedMesh *mem) throw(INTERP_KERNEL::Exception);
- static MEDFileUMesh *New(DataArrayByte *db) throw(INTERP_KERNEL::Exception);
- static MEDFileUMesh *New();
- static const char *GetSpeStr4ExtMesh();
- ~MEDFileUMesh();
- int getSpaceDimension() const throw(INTERP_KERNEL::Exception);
- int getRelativeLevOnGeoType(INTERP_KERNEL::NormalizedCellType gt) const throw(INTERP_KERNEL::Exception);
- void checkConsistency() const throw(INTERP_KERNEL::Exception);
- void checkSMESHConsistency() const throw(INTERP_KERNEL::Exception);
- void clearNodeAndCellNumbers();
- //
- MEDCouplingUMesh *getGroup(int meshDimRelToMaxExt, const std::string& grp, bool renum=false) const throw(INTERP_KERNEL::Exception);
- MEDCouplingUMesh *getGroups(int meshDimRelToMaxExt, const std::vector<std::string>& grps, bool renum=false) const throw(INTERP_KERNEL::Exception);
- MEDCouplingUMesh *getFamily(int meshDimRelToMaxExt, const std::string& fam, bool renum=false) const throw(INTERP_KERNEL::Exception);
- MEDCouplingUMesh *getFamilies(int meshDimRelToMaxExt, const std::vector<std::string>& fams, bool renum=false) const throw(INTERP_KERNEL::Exception);
- DataArrayInt *getNodeGroupsArr(const std::vector<std::string>& grps, bool renum=false) const throw(INTERP_KERNEL::Exception);
- MEDCouplingUMesh *getLevel0Mesh(bool renum=false) const throw(INTERP_KERNEL::Exception);
- MEDCouplingUMesh *getLevelM1Mesh(bool renum=false) const throw(INTERP_KERNEL::Exception);
- MEDCouplingUMesh *getLevelM2Mesh(bool renum=false) const throw(INTERP_KERNEL::Exception);
- MEDCouplingUMesh *getLevelM3Mesh(bool renum=false) const throw(INTERP_KERNEL::Exception);
- void forceComputationOfParts() const throw(INTERP_KERNEL::Exception);
- //
- void setFamilyNameAttachedOnId(int id, const std::string& newFamName) throw(INTERP_KERNEL::Exception);
- void setCoords(DataArrayDouble *coords) throw(INTERP_KERNEL::Exception);
- void setCoordsForced(DataArrayDouble *coords) throw(INTERP_KERNEL::Exception);
- void eraseGroupsAtLevel(int meshDimRelToMaxExt) throw(INTERP_KERNEL::Exception);
- void removeMeshAtLevel(int meshDimRelToMax) throw(INTERP_KERNEL::Exception);
- void setMeshAtLevel(int meshDimRelToMax, MEDCoupling1GTUMesh *m) throw(INTERP_KERNEL::Exception);
- void setMeshAtLevel(int meshDimRelToMax, MEDCouplingUMesh *m, bool newOrOld=false) throw(INTERP_KERNEL::Exception);
- void optimizeFamilies() throw(INTERP_KERNEL::Exception);
- DataArrayInt *zipCoords() throw(INTERP_KERNEL::Exception);
- DataArrayInt *extractFamilyFieldOnGeoType(INTERP_KERNEL::NormalizedCellType gt) const throw(INTERP_KERNEL::Exception);
- DataArrayInt *extractNumberFieldOnGeoType(INTERP_KERNEL::NormalizedCellType gt) const throw(INTERP_KERNEL::Exception);
- MEDFileUMesh *buildExtrudedMesh(const MEDCouplingUMesh *m1D, int policy) const throw(INTERP_KERNEL::Exception);
- MEDFileUMesh *linearToQuadratic(int conversionType=0, double eps=1e-12) const throw(INTERP_KERNEL::Exception);
- MEDFileUMesh *quadraticToLinear(double eps=1e-12) const throw(INTERP_KERNEL::Exception);
- MEDCouplingMappedExtrudedMesh *convertToExtrudedMesh() const throw(INTERP_KERNEL::Exception);
- %extend
- {
- MEDFileUMesh(const std::string& fileName, const std::string& mName, int dt=-1, int it=-1, MEDFileMeshReadSelector *mrs=0) throw(INTERP_KERNEL::Exception)
- {
- return MEDFileUMesh::New(fileName,mName,dt,it,mrs);
- }
-
- MEDFileUMesh(const std::string& fileName, MEDFileMeshReadSelector *mrs=0) throw(INTERP_KERNEL::Exception)
- {
- return MEDFileUMesh::New(fileName,mrs);
- }
-
- MEDFileUMesh(const MEDCouplingMappedExtrudedMesh *mem) throw(INTERP_KERNEL::Exception)
- {
- return MEDFileUMesh::New(mem);
- }
-
- MEDFileUMesh(DataArrayByte *db) throw(INTERP_KERNEL::Exception)
- {
- return MEDFileUMesh::New(db);
- }
-
- MEDFileUMesh()
- {
- return MEDFileUMesh::New();
- }
-
- static MEDFileUMesh *LoadPartOf(const std::string& fileName, const std::string& mName, PyObject *types, const std::vector<int>& slicPerTyp, int dt=-1, int it=-1, MEDFileMeshReadSelector *mrs=0) throw(INTERP_KERNEL::Exception)
- {
- std::vector<int> typesCpp1;
- convertPyToNewIntArr3(types,typesCpp1);
- std::size_t sz(typesCpp1.size());
- std::vector<INTERP_KERNEL::NormalizedCellType> typesCpp2(sz);
- for(std::size_t ii=0;ii<sz;ii++)
- typesCpp2[ii]=(INTERP_KERNEL::NormalizedCellType)typesCpp1[ii];
- return MEDFileUMesh::LoadPartOf(fileName,mName,typesCpp2,slicPerTyp,dt,it,mrs);
- }
-
- PyObject *__getstate__() throw(INTERP_KERNEL::Exception)
- {
- std::vector<double> a0;
- std::vector<int> a1;
- std::vector<std::string> a2;
- std::vector< MCAuto<DataArrayInt> > a3;
- MCAuto<DataArrayDouble> a4;
- self->serialize(a0,a1,a2,a3,a4);
- PyObject *ret(PyTuple_New(5));
- 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;i<sz;i++)
- PyList_SetItem(ret2,i,PyString_FromString(a2[i].c_str()));
- PyTuple_SetItem(ret,2,ret2);
- sz=a3.size();
- PyObject *ret3(PyList_New(sz));
- for(int i=0;i<sz;i++)
- {
- DataArrayInt *elt(a3[i]);
- if(elt)
- elt->incrRef();
- PyList_SetItem(ret3,i,SWIG_NewPointerObj(SWIG_as_voidptr(elt),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ));
- }
- PyTuple_SetItem(ret,3,ret3);
- DataArrayDouble *ret4(a4);
- if(ret4)
- ret4->incrRef();
- PyTuple_SetItem(ret,4,SWIG_NewPointerObj(SWIG_as_voidptr(ret4),SWIGTYPE_p_MEDCoupling__DataArrayDouble, SWIG_POINTER_OWN | 0 ));
- return ret;
- }
-
- void __setstate__(PyObject *inp) throw(INTERP_KERNEL::Exception)
- {
- static const char MSG[]="MEDFileUMesh.__setstate__ : expected input is a tuple of size 4 !";
- if(!PyTuple_Check(inp))
- throw INTERP_KERNEL::Exception(MSG);
- int sz(PyTuple_Size(inp));
- if(sz!=5)
- throw INTERP_KERNEL::Exception(MSG);
- std::vector<double> a0;
- std::vector<int> a1;
- std::vector<std::string> a2;
- std::vector< MCAuto<DataArrayInt> > a3;
- MCAuto<DataArrayDouble> a4;
- //
- PyObject *a0py(PyTuple_GetItem(inp,0)),*a1py(PyTuple_GetItem(inp,1)),*a2py(PyTuple_GetItem(inp,2));
- int tmp(-1);
- fillArrayWithPyListDbl3(a0py,tmp,a0);
- convertPyToNewIntArr3(a1py,a1);
- fillStringVector(a2py,a2);
- //
- PyObject *b0py(PyTuple_GetItem(inp,3)),*b1py(PyTuple_GetItem(inp,4));
- void *argp(0);
- int status(SWIG_ConvertPtr(b1py,&argp,SWIGTYPE_p_MEDCoupling__DataArrayDouble,0|0));
- if(!SWIG_IsOK(status))
- throw INTERP_KERNEL::Exception(MSG);
- a4=reinterpret_cast<DataArrayDouble *>(argp);
- if((DataArrayDouble *)a4)
- a4->incrRef();
- {
- std::vector< DataArrayInt * > a3Tmp;
- convertFromPyObjVectorOfObj<MEDCoupling::DataArrayInt *>(b0py,SWIGTYPE_p_MEDCoupling__DataArrayInt,"DataArrayInt",a3Tmp);
- std::size_t sz(a3Tmp.size());
- a3.resize(sz);
- for(std::size_t i=0;i<sz;i++)
- {
- a3[i]=a3Tmp[i];
- if(a3Tmp[i])
- a3Tmp[i]->incrRef();
- }
- self->unserialize(a0,a1,a2,a3,a4);
- }
- }
-
- void __setitem__(int meshDimRelToMax, MEDCouplingPointSet *mesh) throw(INTERP_KERNEL::Exception)
- {
- if(!mesh)
- throw INTERP_KERNEL::Exception("MEDFileUMesh::__setitem__ : Input mesh is NULL !");
- MEDCouplingUMesh *m0(dynamic_cast<MEDCouplingUMesh *>(mesh));
- if(m0)
- {
- self->setMeshAtLevel(meshDimRelToMax,m0,false);
- return ;
- }
- MEDCoupling1GTUMesh *m1(dynamic_cast<MEDCoupling1GTUMesh *>(mesh));
- if(m1)
- {
- self->setMeshAtLevel(meshDimRelToMax,m1);
- return ;
- }
- throw INTERP_KERNEL::Exception("MEDFileUMesh::__setitem__ : Not recognized input mesh !");
- }
-
- void __delitem__(int meshDimRelToMax) throw(INTERP_KERNEL::Exception)
- {
- self->removeMeshAtLevel(meshDimRelToMax);
- }
-
- MEDFileUMesh *symmetry3DPlane(PyObject *point, PyObject *normalVector) const throw(INTERP_KERNEL::Exception)
- {
- const char msg[]="Python wrap of MEDFileUMesh::symmetry3DPlane : ";
- double val,val2;
- DataArrayDouble *a,*a2;
- DataArrayDoubleTuple *aa,*aa2;
- std::vector<double> bb,bb2;
- int sw;
- const double *centerPtr(convertObjToPossibleCpp5_Safe(point,sw,val,a,aa,bb,msg,1,3,true));
- const double *vectorPtr(convertObjToPossibleCpp5_Safe(normalVector,sw,val2,a2,aa2,bb2,msg,1,3,true));
- MCAuto<MEDFileUMesh> ret(self->symmetry3DPlane(centerPtr,vectorPtr));
- return ret.retn();
- }
-
- static MEDFileUMesh *Aggregate(PyObject *meshes) throw(INTERP_KERNEL::Exception)
- {
- std::vector<const MEDFileUMesh *> meshesCpp;
- convertFromPyObjVectorOfObj<const MEDCoupling::MEDFileUMesh *>(meshes,SWIGTYPE_p_MEDCoupling__MEDFileUMesh,"MEDFileUMesh",meshesCpp);
- MCAuto<MEDFileUMesh> ret(MEDFileUMesh::Aggregate(meshesCpp));
- return ret.retn();
- }
-
- PyObject *getAllDistributionOfTypes() const throw(INTERP_KERNEL::Exception)
- {
- std::vector< std::pair<int,int> > ret(self->getAllDistributionOfTypes());
- return convertVecPairIntToPy(ret);
- }
-
- DataArrayInt *deduceNodeSubPartFromCellSubPart(PyObject *extractDef) const throw(INTERP_KERNEL::Exception)
- {
- std::map<int, MCAuto<DataArrayInt> > extractDefCpp;
- convertToMapIntDataArrayInt(extractDef,extractDefCpp);
- return self->deduceNodeSubPartFromCellSubPart(extractDefCpp);
- }
-
- MEDFileUMesh *extractPart(PyObject *extractDef) const throw(INTERP_KERNEL::Exception)
- {
- std::map<int, MCAuto<DataArrayInt> > extractDefCpp;
- convertToMapIntDataArrayInt(extractDef,extractDefCpp);
- return self->extractPart(extractDefCpp);
- }
-
- void setMeshes(PyObject *li, bool renum=false) throw(INTERP_KERNEL::Exception)
- {
- std::vector<const MEDCouplingUMesh *> ms;
- convertFromPyObjVectorOfObj<const MEDCoupling::MEDCouplingUMesh *>(li,SWIGTYPE_p_MEDCoupling__MEDCouplingUMesh,"MEDCouplingUMesh",ms);
- self->setMeshes(ms,renum);
- }
-
- void setGroupsFromScratch(int meshDimRelToMax, PyObject *li, bool renum=false) throw(INTERP_KERNEL::Exception)
- {
- std::vector<const MEDCouplingUMesh *> ms;
- convertFromPyObjVectorOfObj<const MEDCoupling::MEDCouplingUMesh *>(li,SWIGTYPE_p_MEDCoupling__MEDCouplingUMesh,"MEDCouplingUMesh",ms);
- self->setGroupsFromScratch(meshDimRelToMax,ms,renum);
- }
-
- void setGroupsOnSetMesh(int meshDimRelToMax, PyObject *li, bool renum=false) throw(INTERP_KERNEL::Exception)
- {
- std::vector<const MEDCouplingUMesh *> ms;
- convertFromPyObjVectorOfObj<const MEDCoupling::MEDCouplingUMesh *>(li,SWIGTYPE_p_MEDCoupling__MEDCouplingUMesh,"MEDCouplingUMesh",ms);
- self->setGroupsOnSetMesh(meshDimRelToMax,ms,renum);
- }
-
- DataArrayDouble *getCoords() const throw(INTERP_KERNEL::Exception)
- {
- DataArrayDouble *ret=self->getCoords();
- if(ret)
- ret->incrRef();
- return ret;
- }
-
- PartDefinition *getPartDefAtLevel(int meshDimRelToMaxExt, INTERP_KERNEL::NormalizedCellType gt=INTERP_KERNEL::NORM_ERROR) const throw(INTERP_KERNEL::Exception)
- {
- const PartDefinition *ret(self->getPartDefAtLevel(meshDimRelToMaxExt,gt));
- if(ret)
- ret->incrRef();
- return const_cast<PartDefinition *>(ret);
- }
-
- PyObject *buildInnerBoundaryAlongM1Group(const std::string& grpNameM1) throw(INTERP_KERNEL::Exception)
- {
- DataArrayInt *ret0=0,*ret1=0,*ret2=0;
- self->buildInnerBoundaryAlongM1Group(grpNameM1,ret0,ret1,ret2);
- PyObject *ret=PyTuple_New(3);
- 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 ));
- PyTuple_SetItem(ret,2,SWIG_NewPointerObj(SWIG_as_voidptr(ret2),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ));
- return ret;
- }
-
- MEDCoupling1GTUMesh *getDirectUndergroundSingleGeoTypeMesh(INTERP_KERNEL::NormalizedCellType gt) const throw(INTERP_KERNEL::Exception)
- {
- MEDCoupling1GTUMesh *ret(self->getDirectUndergroundSingleGeoTypeMesh(gt));
- if(ret)
- ret->incrRef();
- return ret;
- }
-
- PyObject *getDirectUndergroundSingleGeoTypeMeshes(int meshDimRelToMax) const throw(INTERP_KERNEL::Exception)
- {
- std::vector<MEDCoupling1GTUMesh *> tmp(self->getDirectUndergroundSingleGeoTypeMeshes(meshDimRelToMax));
- std::size_t sz(tmp.size());
- PyObject *ret=PyList_New(sz);
- for(std::size_t i=0;i<sz;i++)
- {
- if(tmp[i])
- tmp[i]->incrRef();
- PyList_SetItem(ret,i,convertMesh(tmp[i], SWIG_POINTER_OWN | 0 ));
- }
- return ret;
- }
- }
- };
-
- class MEDFileStructuredMesh : public MEDFileMesh
- {
- public:
- %extend
- {
- MEDCoupling1SGTUMesh *getImplicitFaceMesh() const throw(INTERP_KERNEL::Exception)
- {
- MEDCoupling1SGTUMesh *ret(self->getImplicitFaceMesh());
- if(ret)
- ret->incrRef();
- return ret;
- }
- }
- };
-
- class MEDFileCMesh : public MEDFileStructuredMesh
- {
- public:
- static MEDFileCMesh *New();
- static MEDFileCMesh *New(DataArrayByte *db) throw(INTERP_KERNEL::Exception);
- static MEDFileCMesh *New(const std::string& fileName, MEDFileMeshReadSelector *mrs=0) throw(INTERP_KERNEL::Exception);
- static MEDFileCMesh *New(const std::string& fileName, const std::string& mName, int dt=-1, int it=-1, MEDFileMeshReadSelector *mrs=0) throw(INTERP_KERNEL::Exception);
- void setMesh(MEDCouplingCMesh *m) throw(INTERP_KERNEL::Exception);
- int getSpaceDimension() const throw(INTERP_KERNEL::Exception);
- %extend
- {
- MEDFileCMesh()
- {
- return MEDFileCMesh::New();
- }
-
- MEDFileCMesh(const std::string& fileName, MEDFileMeshReadSelector *mrs=0) throw(INTERP_KERNEL::Exception)
- {
- return MEDFileCMesh::New(fileName,mrs);
- }
-
- MEDFileCMesh(const std::string& fileName, const std::string& mName, int dt=-1, int it=-1, MEDFileMeshReadSelector *mrs=0) throw(INTERP_KERNEL::Exception)
- {
- return MEDFileCMesh::New(fileName,mName,dt,it,mrs);
- }
-
- MEDFileCMesh(DataArrayByte *db) throw(INTERP_KERNEL::Exception)
- {
- return MEDFileCMesh::New(db);
- }
-
- PyObject *getMesh() const throw(INTERP_KERNEL::Exception)
- {
- const MEDCouplingCMesh *tmp=self->getMesh();
- if(tmp)
- tmp->incrRef();
- return SWIG_NewPointerObj(SWIG_as_voidptr(tmp),SWIGTYPE_p_MEDCoupling__MEDCouplingCMesh, SWIG_POINTER_OWN | 0 );
- }
- }
- };
-
- class MEDFileCurveLinearMesh : public MEDFileStructuredMesh
- {
- public:
- static MEDFileCurveLinearMesh *New();
- static MEDFileCurveLinearMesh *New(DataArrayByte *db) throw(INTERP_KERNEL::Exception);
- static MEDFileCurveLinearMesh *New(const std::string& fileName, MEDFileMeshReadSelector *mrs=0) throw(INTERP_KERNEL::Exception);
- static MEDFileCurveLinearMesh *New(const std::string& fileName, const std::string& mName, int dt=-1, int it=-1, MEDFileMeshReadSelector *mrs=0) throw(INTERP_KERNEL::Exception);
- void setMesh(MEDCouplingCurveLinearMesh *m) throw(INTERP_KERNEL::Exception);
- %extend
- {
- MEDFileCurveLinearMesh()
- {
- return MEDFileCurveLinearMesh::New();
- }
-
- MEDFileCurveLinearMesh(const std::string& fileName, MEDFileMeshReadSelector *mrs=0) throw(INTERP_KERNEL::Exception)
- {
- return MEDFileCurveLinearMesh::New(fileName,mrs);
- }
-
- MEDFileCurveLinearMesh(const std::string& fileName, const std::string& mName, int dt=-1, int it=-1, MEDFileMeshReadSelector *mrs=0) throw(INTERP_KERNEL::Exception)
- {
- return MEDFileCurveLinearMesh::New(fileName,mName,dt,it,mrs);
- }
-
- MEDFileCurveLinearMesh(DataArrayByte *db) throw(INTERP_KERNEL::Exception)
- {
- return MEDFileCurveLinearMesh::New(db);
- }
-
- PyObject *getMesh() const throw(INTERP_KERNEL::Exception)
- {
- const MEDCouplingCurveLinearMesh *tmp=self->getMesh();
- if(tmp)
- tmp->incrRef();
- return SWIG_NewPointerObj(SWIG_as_voidptr(tmp),SWIGTYPE_p_MEDCoupling__MEDCouplingCurveLinearMesh, SWIG_POINTER_OWN | 0 );
- }
- }
- };
-
- class MEDFileMeshMultiTS : public RefCountObject, public MEDFileWritableStandAlone
- {
- public:
- static MEDFileMeshMultiTS *New();
- static MEDFileMeshMultiTS *New(const std::string& fileName) throw(INTERP_KERNEL::Exception);
- static MEDFileMeshMultiTS *New(const std::string& fileName, const std::string& mName) throw(INTERP_KERNEL::Exception);
- MEDFileMeshMultiTS *deepCopy() const throw(INTERP_KERNEL::Exception);
- std::string getName() const throw(INTERP_KERNEL::Exception);
- void setOneTimeStep(MEDFileMesh *mesh1TimeStep) throw(INTERP_KERNEL::Exception);
- void cartesianizeMe() throw(INTERP_KERNEL::Exception);
- %extend
- {
- MEDFileMeshMultiTS()
- {
- return MEDFileMeshMultiTS::New();
- }
-
- MEDFileMeshMultiTS(const std::string& fileName) throw(INTERP_KERNEL::Exception)
- {
- return MEDFileMeshMultiTS::New(fileName);
- }
-
- MEDFileMeshMultiTS(const std::string& fileName, const std::string& mName) throw(INTERP_KERNEL::Exception)
- {
- return MEDFileMeshMultiTS::New(fileName,mName);
- }
-
- MEDFileMesh *getOneTimeStep() const throw(INTERP_KERNEL::Exception)
- {
- MEDFileMesh *ret=self->getOneTimeStep();
- if(ret)
- ret->incrRef();
- return ret;
- }
- }
- };
-
- class MEDFileMeshesIterator
- {
- public:
- %extend
- {
- PyObject *next() throw(INTERP_KERNEL::Exception)
- {
- MEDFileMesh *ret=self->nextt();
- if(ret)
- {
- ret->incrRef();
- return convertMEDFileMesh(ret,SWIG_POINTER_OWN | 0 );
- }
- else
- {
- PyErr_SetString(PyExc_StopIteration,"No more data.");
- return 0;
- }
- }
- }
- };
-
- class MEDFileMeshes : public RefCountObject, public MEDFileWritableStandAlone
- {
- public:
- static MEDFileMeshes *New();
- static MEDFileMeshes *New(DataArrayByte *db) throw(INTERP_KERNEL::Exception);
- MEDFileMeshes *deepCopy() const throw(INTERP_KERNEL::Exception);
- int getNumberOfMeshes() const throw(INTERP_KERNEL::Exception);
- std::vector<std::string> getMeshesNames() const throw(INTERP_KERNEL::Exception);
- //
- void resize(int newSize) throw(INTERP_KERNEL::Exception);
- void pushMesh(MEDFileMesh *mesh) throw(INTERP_KERNEL::Exception);
- void setMeshAtPos(int i, MEDFileMesh *mesh) throw(INTERP_KERNEL::Exception);
- void destroyMeshAtPos(int i) throw(INTERP_KERNEL::Exception);
- void cartesianizeMe() throw(INTERP_KERNEL::Exception);
- bool presenceOfStructureElements() const throw(INTERP_KERNEL::Exception);
- void killStructureElements() throw(INTERP_KERNEL::Exception);
- %extend
- {
- MEDFileMeshes()
- {
- return MEDFileMeshes::New();
- }
-
- MEDFileMeshes(const std::string& fileName) throw(INTERP_KERNEL::Exception)
- {
- return MEDFileMeshes::New(fileName);
- }
-
- MEDFileMeshes(DataArrayByte *db) throw(INTERP_KERNEL::Exception)
- {
- return MEDFileMeshes::New(db);
- }
-
- std::string __str__() const throw(INTERP_KERNEL::Exception)
- {
- return self->simpleRepr();
- }
-
- MEDFileMesh *__getitem__(PyObject *obj) throw(INTERP_KERNEL::Exception)
- {
- static const char msg[]="MEDFileMeshes::__getitem__ : only integer or string with meshname supported !";
- if(PyInt_Check(obj))
- {
- MEDFileMesh *ret=self->getMeshAtPos(InterpreteNegativeInt((int)PyInt_AS_LONG(obj),self->getNumberOfMeshes()));
- if(ret)
- ret->incrRef();
- return ret;
- }
- MEDFileMesh *ret(self->getMeshWithName(convertPyObjectToStr(obj,msg)));
- if(ret)
- ret->incrRef();
- return ret;
- }
-
- MEDFileMeshes *__setitem__(int obj, MEDFileMesh *mesh) throw(INTERP_KERNEL::Exception)
- {
- self->setMeshAtPos(obj,mesh);
- return self;
- }
-
- MEDFileMeshesIterator *__iter__() throw(INTERP_KERNEL::Exception)
- {
- return self->iterator();
- }
-
- int __len__() const throw(INTERP_KERNEL::Exception)
- {
- return self->getNumberOfMeshes();
- }
-
- MEDFileMesh *getMeshAtPos(int i) const throw(INTERP_KERNEL::Exception)
- {
- MEDFileMesh *ret=self->getMeshAtPos(i);
- if(ret)
- ret->incrRef();
- return ret;
- }
- MEDFileMesh *getMeshWithName(const std::string& mname) const throw(INTERP_KERNEL::Exception)
- {
- MEDFileMesh *ret=self->getMeshWithName(mname);
- if(ret)
- ret->incrRef();
- return ret;
- }
- }
- };
-
- class MEDFileFieldLoc : public RefCountObject
- {
- public:
- std::string getName() const;
- int getDimension() const;
- int getNumberOfGaussPoints() const;
- int getNumberOfPointsInCells() const;
- const std::vector<double>& getRefCoords() const;
- const std::vector<double>& getGaussCoords() const;
- const std::vector<double>& getGaussWeights() const;
- bool isEqual(const MEDFileFieldLoc& other, double eps) const throw(INTERP_KERNEL::Exception);
- %extend
- {
- std::string __str__() const throw(INTERP_KERNEL::Exception)
- {
- return self->repr();
- }
- }
- };
-
- class MEDFileFieldGlobsReal
- {
- public:
- void resetContent();
- void shallowCpyGlobs(const MEDFileFieldGlobsReal& other) throw(INTERP_KERNEL::Exception);
- void deepCpyGlobs(const MEDFileFieldGlobsReal& other) throw(INTERP_KERNEL::Exception);
- void shallowCpyOnlyUsedGlobs(const MEDFileFieldGlobsReal& other) throw(INTERP_KERNEL::Exception);
- void deepCpyOnlyUsedGlobs(const MEDFileFieldGlobsReal& other) throw(INTERP_KERNEL::Exception);
- void appendGlobs(const MEDFileFieldGlobsReal& other, double eps) throw(INTERP_KERNEL::Exception);
- void checkGlobsCoherency() const throw(INTERP_KERNEL::Exception);
- void checkGlobsPflsPartCoherency() const throw(INTERP_KERNEL::Exception);
- void checkGlobsLocsPartCoherency() const throw(INTERP_KERNEL::Exception);
- std::vector<std::string> getPfls() const throw(INTERP_KERNEL::Exception);
- std::vector<std::string> getLocs() const throw(INTERP_KERNEL::Exception);
- bool existsPfl(const std::string& pflName) const throw(INTERP_KERNEL::Exception);
- bool existsLoc(const std::string& locName) const throw(INTERP_KERNEL::Exception);
- std::string createNewNameOfPfl() const throw(INTERP_KERNEL::Exception);
- std::string createNewNameOfLoc() const throw(INTERP_KERNEL::Exception);
- std::vector< std::vector<int> > whichAreEqualProfiles() const throw(INTERP_KERNEL::Exception);
- std::vector< std::vector<int> > whichAreEqualLocs(double eps) const throw(INTERP_KERNEL::Exception);
- virtual std::vector<std::string> getPflsReallyUsed() const throw(INTERP_KERNEL::Exception);
- virtual std::vector<std::string> getLocsReallyUsed() const throw(INTERP_KERNEL::Exception);
- virtual std::vector<std::string> getPflsReallyUsedMulti() const throw(INTERP_KERNEL::Exception);
- virtual std::vector<std::string> getLocsReallyUsedMulti() const throw(INTERP_KERNEL::Exception);
- void killProfileIds(const std::vector<int>& pflIds) throw(INTERP_KERNEL::Exception);
- void killLocalizationIds(const std::vector<int>& locIds) throw(INTERP_KERNEL::Exception);
- void changePflName(const std::string& oldName, const std::string& newName) throw(INTERP_KERNEL::Exception);
- void changeLocName(const std::string& oldName, const std::string& newName) throw(INTERP_KERNEL::Exception);
- int getNbOfGaussPtPerCell(int locId) const throw(INTERP_KERNEL::Exception);
- int getLocalizationId(const std::string& loc) const throw(INTERP_KERNEL::Exception);
- void killStructureElementsInGlobs() throw(INTERP_KERNEL::Exception);
- %extend
- {
- PyObject *getProfile(const std::string& pflName) const throw(INTERP_KERNEL::Exception)
- {
- const DataArrayInt *ret=self->getProfile(pflName);
- if(ret)
- ret->incrRef();
- return SWIG_NewPointerObj(SWIG_as_voidptr(ret),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 );
- }
-
- PyObject *getProfileFromId(int pflId) const throw(INTERP_KERNEL::Exception)
- {
- const DataArrayInt *ret=self->getProfileFromId(pflId);
- if(ret)
- ret->incrRef();
- return SWIG_NewPointerObj(SWIG_as_voidptr(ret),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 );
- }
-
- PyObject *getLocalizationFromId(int locId) const throw(INTERP_KERNEL::Exception)
- {
- const MEDFileFieldLoc *loc=&self->getLocalizationFromId(locId);
- if(loc)
- loc->incrRef();
- return SWIG_NewPointerObj(SWIG_as_voidptr(loc),SWIGTYPE_p_MEDCoupling__MEDFileFieldLoc, SWIG_POINTER_OWN | 0 );
- }
-
- PyObject *getLocalization(const std::string& locName) const throw(INTERP_KERNEL::Exception)
- {
- const MEDFileFieldLoc *loc=&self->getLocalization(locName);
- if(loc)
- loc->incrRef();
- return SWIG_NewPointerObj(SWIG_as_voidptr(loc),SWIGTYPE_p_MEDCoupling__MEDFileFieldLoc, SWIG_POINTER_OWN | 0 );
- }
-
- PyObject *zipPflsNames() throw(INTERP_KERNEL::Exception)
- {
- std::vector< std::pair<std::vector<std::string>, std::string > > ret=self->zipPflsNames();
- return convertVecPairVecStToPy(ret);
- }
-
- PyObject *zipLocsNames(double eps) throw(INTERP_KERNEL::Exception)
- {
- std::vector< std::pair<std::vector<std::string>, std::string > > ret=self->zipLocsNames(eps);
- return convertVecPairVecStToPy(ret);
- }
-
- void changePflsNames(PyObject *li) throw(INTERP_KERNEL::Exception)
- {
- std::vector< std::pair<std::vector<std::string>, std::string > > v=convertVecPairVecStFromPy(li);
- self->changePflsNames(v);
- }
-
- void changePflsRefsNamesGen(PyObject *li) throw(INTERP_KERNEL::Exception)
- {
- std::vector< std::pair<std::vector<std::string>, std::string > > v=convertVecPairVecStFromPy(li);
- self->changePflsRefsNamesGen(v);
- }
-
- void changePflsNamesInStruct(PyObject *li) throw(INTERP_KERNEL::Exception)
- {
- std::vector< std::pair<std::vector<std::string>, std::string > > v=convertVecPairVecStFromPy(li);
- self->changePflsNamesInStruct(v);
- }
-
- void changeLocsNames(PyObject *li) throw(INTERP_KERNEL::Exception)
- {
- std::vector< std::pair<std::vector<std::string>, std::string > > v=convertVecPairVecStFromPy(li);
- self->changeLocsNames(v);
- }
-
- void changeLocsRefsNamesGen(PyObject *li) throw(INTERP_KERNEL::Exception)
- {
- std::vector< std::pair<std::vector<std::string>, std::string > > v=convertVecPairVecStFromPy(li);
- self->changeLocsRefsNamesGen(v);
- }
-
- void changeLocsNamesInStruct(PyObject *li) throw(INTERP_KERNEL::Exception)
- {
- std::vector< std::pair<std::vector<std::string>, std::string > > v=convertVecPairVecStFromPy(li);
- self->changeLocsNamesInStruct(v);
- }
-
- std::string simpleReprGlobs() const throw(INTERP_KERNEL::Exception)
- {
- std::ostringstream oss;
- self->simpleReprGlobs(oss);
- return oss.str();
- }
- }
- };
-
- class MEDFileEntities
- {
- public:
- %extend
- {
- static MEDFileEntities *BuildFrom(PyObject *entities) throw(INTERP_KERNEL::Exception)
- {
- std::vector< std::pair<TypeOfField,INTERP_KERNEL::NormalizedCellType> > inp;
- std::vector< std::pair<int,int> > inp0(convertTimePairIdsFromPy(entities));
- {
- std::size_t sz(inp0.size());
- inp.resize(sz);
- for(std::size_t i=0;i<sz;i++)
- inp[i]=std::pair<TypeOfField,INTERP_KERNEL::NormalizedCellType>((TypeOfField)inp0[i].first,(INTERP_KERNEL::NormalizedCellType)inp0[i].second);
- }
- return MEDFileEntities::BuildFrom(&inp);
- }
- }
- private:
- MEDFileEntities();
- };
-
- class MEDFileAnyTypeField1TS : public RefCountObject, public MEDFileFieldGlobsReal, public MEDFileWritableStandAlone
- {
- public:
- static MEDFileAnyTypeField1TS *New(const std::string& fileName, bool loadAll=true) throw(INTERP_KERNEL::Exception);
- static MEDFileAnyTypeField1TS *New(const std::string& fileName, const std::string& fieldName, bool loadAll=true) throw(INTERP_KERNEL::Exception);
- static MEDFileAnyTypeField1TS *New(const std::string& fileName, const std::string& fieldName, int iteration, int order, bool loadAll=true) throw(INTERP_KERNEL::Exception);
- static MEDFileAnyTypeField1TS *NewAdv(const std::string& fileName, const std::string& fieldName, int iteration, int order, bool loadAll, const MEDFileEntities *entities) throw(INTERP_KERNEL::Exception);
- void loadArrays() throw(INTERP_KERNEL::Exception);
- void loadArraysIfNecessary() throw(INTERP_KERNEL::Exception);
- void unloadArrays() throw(INTERP_KERNEL::Exception);
- void unloadArraysWithoutDataLoss() throw(INTERP_KERNEL::Exception);
- int getDimension() const throw(INTERP_KERNEL::Exception);
- int getIteration() const throw(INTERP_KERNEL::Exception);
- int getOrder() const throw(INTERP_KERNEL::Exception);
- std::string getName() throw(INTERP_KERNEL::Exception);
- void setName(const std::string& name) throw(INTERP_KERNEL::Exception);
- std::string getMeshName() throw(INTERP_KERNEL::Exception);
- void setMeshName(const std::string& newMeshName) throw(INTERP_KERNEL::Exception);
- int getMeshIteration() const throw(INTERP_KERNEL::Exception);
- int getMeshOrder() const throw(INTERP_KERNEL::Exception);
- int getNumberOfComponents() const throw(INTERP_KERNEL::Exception);
- bool isDealingTS(int iteration, int order) const throw(INTERP_KERNEL::Exception);
- void setInfo(const std::vector<std::string>& infos) throw(INTERP_KERNEL::Exception);
- const std::vector<std::string>& getInfo() const throw(INTERP_KERNEL::Exception);
- bool presenceOfMultiDiscPerGeoType() const throw(INTERP_KERNEL::Exception);
- void setTime(int iteration, int order, double val) throw(INTERP_KERNEL::Exception);
- virtual MEDFileAnyTypeField1TS *shallowCpy() const throw(INTERP_KERNEL::Exception);
- MEDFileAnyTypeField1TS *deepCopy() const throw(INTERP_KERNEL::Exception);
- std::string getDtUnit() const throw(INTERP_KERNEL::Exception);
- void setDtUnit(const std::string& dtUnit) throw(INTERP_KERNEL::Exception);
- %extend
- {
- 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_int(tmp1));
- PyList_SetItem(res,1,SWIG_From_int(tmp2));
- PyList_SetItem(res,2,SWIG_From_double(tmp0));
- return res;
- }
-
- PyObject *getDtIt() const throw(INTERP_KERNEL::Exception)
- {
- std::pair<int,int> res=self->getDtIt();
- PyObject *elt=PyTuple_New(2);
- PyTuple_SetItem(elt,0,SWIG_From_int(res.first));
- PyTuple_SetItem(elt,1,SWIG_From_int(res.second));
- return elt;
- }
-
- void setProfileNameOnLeaf(INTERP_KERNEL::NormalizedCellType typ, int locId, const std::string& newPflName, bool forceRenameOnGlob=false) throw(INTERP_KERNEL::Exception)
- {
- self->setProfileNameOnLeaf(0,typ,locId,newPflName,forceRenameOnGlob);
- }
-
- void setLocNameOnLeaf(INTERP_KERNEL::NormalizedCellType typ, int locId, const std::string& newLocName, bool forceRenameOnGlob=false) throw(INTERP_KERNEL::Exception)
- {
- self->setLocNameOnLeaf(0,typ,locId,newLocName,forceRenameOnGlob);
- }
-
- bool changeMeshNames(PyObject *li) throw(INTERP_KERNEL::Exception)
- {
- std::vector< std::pair<std::string,std::string> > modifTab=convertVecPairStStFromPy(li);
- return self->changeMeshNames(modifTab);
- }
-
- PyObject *getTypesOfFieldAvailable() const throw(INTERP_KERNEL::Exception)
- {
- std::vector<TypeOfField> ret=self->getTypesOfFieldAvailable();
- PyObject *ret2=PyList_New(ret.size());
- for(int i=0;i<(int)ret.size();i++)
- PyList_SetItem(ret2,i,SWIG_From_int(ret[i]));
- return ret2;
- }
-
- PyObject *getNonEmptyLevels(const std::string& mname=std::string()) const throw(INTERP_KERNEL::Exception)
- {
- std::vector<int> ret1;
- int ret0=self->getNonEmptyLevels(mname,ret1);
- PyObject *elt=PyTuple_New(2);
- PyTuple_SetItem(elt,0,SWIG_From_int(ret0));
- PyTuple_SetItem(elt,1,convertIntArrToPyList2(ret1));
- return elt;
- }
-
- PyObject *getFieldSplitedByType(const std::string& mname=std::string()) const throw(INTERP_KERNEL::Exception)
- {
- std::vector<INTERP_KERNEL::NormalizedCellType> types;
- std::vector< std::vector<TypeOfField> > typesF;
- std::vector< std::vector<std::string> > pfls;
- std::vector< std::vector<std::string> > locs;
- std::vector< std::vector< std::pair<int,int> > > ret=self->getFieldSplitedByType(mname,types,typesF,pfls,locs);
- int sz=ret.size();
- PyObject *ret2=PyList_New(sz);
- for(int i=0;i<sz;i++)
- {
- const std::vector< std::pair<int,int> >& dadsI=ret[i];
- const std::vector<TypeOfField>& typesFI=typesF[i];
- const std::vector<std::string>& pflsI=pfls[i];
- const std::vector<std::string>& locsI=locs[i];
- PyObject *elt=PyTuple_New(2);
- PyTuple_SetItem(elt,0,SWIG_From_int(types[i]));
- int sz2=ret[i].size();
- PyObject *elt2=PyList_New(sz2);
- for(int j=0;j<sz2;j++)
- {
- PyObject *elt3=PyTuple_New(4);
- PyTuple_SetItem(elt3,0,SWIG_From_int(typesFI[j]));
- PyObject *elt4=PyTuple_New(2); PyTuple_SetItem(elt4,0,SWIG_From_int(dadsI[j].first)); PyTuple_SetItem(elt4,1,SWIG_From_int(dadsI[j].second));
- PyTuple_SetItem(elt3,1,elt4);
- PyTuple_SetItem(elt3,2,PyString_FromString(pflsI[j].c_str()));
- PyTuple_SetItem(elt3,3,PyString_FromString(locsI[j].c_str()));
- PyList_SetItem(elt2,j,elt3);
- }
- PyTuple_SetItem(elt,1,elt2);
- PyList_SetItem(ret2,i,elt);
- }
- return ret2;
- }
-
- PyObject *splitComponents() const throw(INTERP_KERNEL::Exception)
- {
- std::vector< MCAuto< MEDFileAnyTypeField1TS > > ret=self->splitComponents();
- std::size_t sz=ret.size();
- PyObject *retPy=PyList_New(sz);
- for(std::size_t i=0;i<sz;i++)
- PyList_SetItem(retPy,i,convertMEDFileField1TS(ret[i].retn(), SWIG_POINTER_OWN | 0 ));
- return retPy;
- }
-
- PyObject *splitDiscretizations() const throw(INTERP_KERNEL::Exception)
- {
- std::vector< MCAuto< MEDFileAnyTypeField1TS > > ret=self->splitDiscretizations();
- std::size_t sz=ret.size();
- PyObject *retPy=PyList_New(sz);
- for(std::size_t i=0;i<sz;i++)
- PyList_SetItem(retPy,i,convertMEDFileField1TS(ret[i].retn(), SWIG_POINTER_OWN | 0 ));
- return retPy;
- }
-
- PyObject *splitMultiDiscrPerGeoTypes() const throw(INTERP_KERNEL::Exception)
- {
- std::vector< MCAuto< MEDFileAnyTypeField1TS > > ret=self->splitMultiDiscrPerGeoTypes();
- std::size_t sz=ret.size();
- PyObject *retPy=PyList_New(sz);
- for(std::size_t i=0;i<sz;i++)
- PyList_SetItem(retPy,i,convertMEDFileField1TS(ret[i].retn(), SWIG_POINTER_OWN | 0 ));
- return retPy;
- }
-
- MEDFileAnyTypeField1TS *extractPart(PyObject *extractDef, MEDFileMesh *mm) const throw(INTERP_KERNEL::Exception)
- {
- std::map<int, MCAuto<DataArrayInt> > extractDefCpp;
- convertToMapIntDataArrayInt(extractDef,extractDefCpp);
- return self->extractPart(extractDefCpp,mm);
- }
- }
- };
-
- class MEDFileField1TS : public MEDFileAnyTypeField1TS
- {
- public:
- static MEDFileField1TS *New(const std::string& fileName, const std::string& fieldName, int iteration, int order, bool loadAll=true) throw(INTERP_KERNEL::Exception);
- static MEDFileField1TS *New(const std::string& fileName, const std::string& fieldName, bool loadAll=true) throw(INTERP_KERNEL::Exception);
- static MEDFileField1TS *New(const std::string& fileName, bool loadAll=true) throw(INTERP_KERNEL::Exception);
- static MEDFileField1TS *New(DataArrayByte *db) throw(INTERP_KERNEL::Exception);
- static MEDFileField1TS *New();
- MEDCoupling::MEDFileIntField1TS *convertToInt(bool isDeepCpyGlobs=true) const throw(INTERP_KERNEL::Exception);
- MEDCouplingFieldDouble *field(const MEDFileMesh *mesh) const throw(INTERP_KERNEL::Exception);
- MEDCouplingFieldDouble *getFieldAtLevel(TypeOfField type, int meshDimRelToMax, int renumPol=0) const throw(INTERP_KERNEL::Exception);
- MEDCouplingFieldDouble *getFieldAtTopLevel(TypeOfField type, int renumPol=0) const throw(INTERP_KERNEL::Exception);
- MEDCouplingFieldDouble *getFieldOnMeshAtLevel(TypeOfField type, const MEDCouplingMesh *mesh, int renumPol=0) const throw(INTERP_KERNEL::Exception);
- MEDCouplingFieldDouble *getFieldOnMeshAtLevel(TypeOfField type, int meshDimRelToMax, const MEDFileMesh *mesh, int renumPol=0) const throw(INTERP_KERNEL::Exception);
- MEDCouplingFieldDouble *getFieldAtLevelOld(TypeOfField type, const std::string& mname, int meshDimRelToMax, int renumPol=0) const throw(INTERP_KERNEL::Exception);
- //
- void setFieldNoProfileSBT(const MEDCouplingFieldDouble *field) throw(INTERP_KERNEL::Exception);
- void setFieldProfile(const MEDCouplingFieldDouble *field, const MEDFileMesh *mesh, int meshDimRelToMax, const DataArrayInt *profile) throw(INTERP_KERNEL::Exception);
- void setProfileNameOnLeaf(const std::string& mName, INTERP_KERNEL::NormalizedCellType typ, int locId, const std::string& newPflName, bool forceRenameOnGlob=false) throw(INTERP_KERNEL::Exception);
- void setLocNameOnLeaf(const std::string& mName, INTERP_KERNEL::NormalizedCellType typ, int locId, const std::string& newLocName, bool forceRenameOnGlob=false) throw(INTERP_KERNEL::Exception);
- %extend
- {
- MEDFileField1TS(const std::string& fileName, bool loadAll=true) throw(INTERP_KERNEL::Exception)
- {
- return MEDFileField1TS::New(fileName,loadAll);
- }
-
- MEDFileField1TS(const std::string& fileName, const std::string& fieldName, bool loadAll=true) throw(INTERP_KERNEL::Exception)
- {
- return MEDFileField1TS::New(fileName,fieldName,loadAll);
- }
-
- MEDFileField1TS(const std::string& fileName, const std::string& fieldName, int iteration, int order, bool loadAll=true) throw(INTERP_KERNEL::Exception)
- {
- return MEDFileField1TS::New(fileName,fieldName,iteration,order,loadAll);
- }
-
- MEDFileField1TS(DataArrayByte *db) throw(INTERP_KERNEL::Exception)
- {
- return MEDFileField1TS::New(db);
- }
-
- MEDFileField1TS()
- {
- return MEDFileField1TS::New();
- }
-
- void copyTinyInfoFrom(const MEDCouplingFieldDouble *field) throw(INTERP_KERNEL::Exception)
- {
- const DataArrayDouble *arr=0;
- if(field)
- arr=field->getArray();
- self->copyTinyInfoFrom(field,arr);
- }
-
- std::string __str__() const throw(INTERP_KERNEL::Exception)
- {
- return self->simpleRepr();
- }
-
- PyObject *getFieldWithProfile(TypeOfField type, int meshDimRelToMax, const MEDFileMesh *mesh) const throw(INTERP_KERNEL::Exception)
- {
- return MEDFileField1TS_getFieldWithProfile<double>(self,type,meshDimRelToMax,mesh);
- }
-
- PyObject *getFieldSplitedByType2(const std::string& mname=std::string()) const throw(INTERP_KERNEL::Exception)
- {
- std::vector<INTERP_KERNEL::NormalizedCellType> types;
- std::vector< std::vector<TypeOfField> > typesF;
- std::vector< std::vector<std::string> > pfls;
- std::vector< std::vector<std::string> > locs;
- std::vector< std::vector<DataArrayDouble *> > ret=self->getFieldSplitedByType2(mname,types,typesF,pfls,locs);
- int sz=ret.size();
- PyObject *ret2=PyList_New(sz);
- for(int i=0;i<sz;i++)
- {
- const std::vector<DataArrayDouble *>& dadsI=ret[i];
- const std::vector<TypeOfField>& typesFI=typesF[i];
- const std::vector<std::string>& pflsI=pfls[i];
- const std::vector<std::string>& locsI=locs[i];
- PyObject *elt=PyTuple_New(2);
- PyTuple_SetItem(elt,0,SWIG_From_int(types[i]));
- int sz2=ret[i].size();
- PyObject *elt2=PyList_New(sz2);
- for(int j=0;j<sz2;j++)
- {
- PyObject *elt3=PyTuple_New(4);
- PyTuple_SetItem(elt3,0,SWIG_From_int(typesFI[j]));
- PyTuple_SetItem(elt3,1,SWIG_NewPointerObj(SWIG_as_voidptr(dadsI[j]),SWIGTYPE_p_MEDCoupling__DataArrayDouble, SWIG_POINTER_OWN | 0 ));
- PyTuple_SetItem(elt3,2,PyString_FromString(pflsI[j].c_str()));
- PyTuple_SetItem(elt3,3,PyString_FromString(locsI[j].c_str()));
- PyList_SetItem(elt2,j,elt3);
- }
- PyTuple_SetItem(elt,1,elt2);
- PyList_SetItem(ret2,i,elt);
- }
- return ret2;
- }
-
- DataArrayDouble *getUndergroundDataArray() const throw(INTERP_KERNEL::Exception)
- {
- DataArrayDouble *ret=self->getUndergroundDataArray();
- if(ret)
- ret->incrRef();
- return ret;
- }
-
- PyObject *getUndergroundDataArrayExt() const throw(INTERP_KERNEL::Exception)
- {
- return MEDFileField1TS_getUndergroundDataArrayExt<double>(self);
- }
- }
- };
-
- class MEDFileIntField1TS : public MEDFileAnyTypeField1TS
- {
- public:
- static MEDFileIntField1TS *New();
- static MEDFileIntField1TS *New(const std::string& fileName, bool loadAll=true) throw(INTERP_KERNEL::Exception);
- static MEDFileIntField1TS *New(DataArrayByte *db) throw(INTERP_KERNEL::Exception);
- static MEDFileIntField1TS *New(const std::string& fileName, const std::string& fieldName, bool loadAll=true) throw(INTERP_KERNEL::Exception);
- static MEDFileIntField1TS *New(const std::string& fileName, const std::string& fieldName, int iteration, int order, bool loadAll=true) throw(INTERP_KERNEL::Exception);
- MEDCoupling::MEDFileField1TS *convertToDouble(bool isDeepCpyGlobs=true) const throw(INTERP_KERNEL::Exception);
- //
- void setFieldNoProfileSBT(const MEDCouplingFieldInt *field) throw(INTERP_KERNEL::Exception);
- void setFieldProfile(const MEDCouplingFieldInt *field, const MEDFileMesh *mesh, int meshDimRelToMax, const DataArrayInt *profile) throw(INTERP_KERNEL::Exception);
- MEDCouplingFieldInt *field(const MEDFileMesh *mesh) const throw(INTERP_KERNEL::Exception);
- MEDCouplingFieldInt *getFieldAtLevel(TypeOfField type, int meshDimRelToMax, int renumPol=0) const throw(INTERP_KERNEL::Exception);
- MEDCouplingFieldInt *getFieldAtTopLevel(TypeOfField type, int renumPol=0) const throw(INTERP_KERNEL::Exception);
- MEDCouplingFieldInt *getFieldOnMeshAtLevel(TypeOfField type, int meshDimRelToMax, const MEDFileMesh *mesh, int renumPol=0) const throw(INTERP_KERNEL::Exception);
- MEDCouplingFieldInt *getFieldOnMeshAtLevel(TypeOfField type, const MEDCouplingMesh *mesh, int renumPol=0) const throw(INTERP_KERNEL::Exception);
- MEDCouplingFieldInt *getFieldAtLevelOld(TypeOfField type, const std::string& mname, int meshDimRelToMax, int renumPol=0) const throw(INTERP_KERNEL::Exception);
- %extend
- {
- MEDFileIntField1TS() throw(INTERP_KERNEL::Exception)
- {
- return MEDFileIntField1TS::New();
- }
-
- MEDFileIntField1TS(const std::string& fileName, bool loadAll=true) throw(INTERP_KERNEL::Exception)
- {
- return MEDFileIntField1TS::New(fileName,loadAll);
- }
-
- MEDFileIntField1TS(const std::string& fileName, const std::string& fieldName, bool loadAll=true) throw(INTERP_KERNEL::Exception)
- {
- return MEDFileIntField1TS::New(fileName,fieldName,loadAll);
- }
-
- MEDFileIntField1TS(const std::string& fileName, const std::string& fieldName, int iteration, int order, bool loadAll=true) throw(INTERP_KERNEL::Exception)
- {
- return MEDFileIntField1TS::New(fileName,fieldName,iteration,order,loadAll);
- }
-
- MEDFileIntField1TS(DataArrayByte *db) throw(INTERP_KERNEL::Exception)
- {
- return MEDFileIntField1TS::New(db);
- }
-
- std::string __str__() const throw(INTERP_KERNEL::Exception)
- {
- return self->simpleRepr();
- }
-
- PyObject *getFieldWithProfile(TypeOfField type, int meshDimRelToMax, const MEDFileMesh *mesh) const throw(INTERP_KERNEL::Exception)
- {
- return MEDFileField1TS_getFieldWithProfile<int>(self,type,meshDimRelToMax,mesh);
- }
-
- DataArrayInt *getUndergroundDataArray() const throw(INTERP_KERNEL::Exception)
- {
- DataArrayInt *ret=self->getUndergroundDataArray();
- if(ret)
- ret->incrRef();
- return ret;
- }
-
- PyObject *getUndergroundDataArrayExt() const throw(INTERP_KERNEL::Exception)
- {
- return MEDFileField1TS_getUndergroundDataArrayExt<int>(self);
- }
- }
- };
-
- class MEDFileFloatField1TS : public MEDFileAnyTypeField1TS
- {
- public:
- static MEDFileFloatField1TS *New();
- static MEDFileFloatField1TS *New(const std::string& fileName, bool loadAll=true) throw(INTERP_KERNEL::Exception);
- static MEDFileFloatField1TS *New(DataArrayByte *db) throw(INTERP_KERNEL::Exception);
- static MEDFileFloatField1TS *New(const std::string& fileName, const std::string& fieldName, bool loadAll=true) throw(INTERP_KERNEL::Exception);
- static MEDFileFloatField1TS *New(const std::string& fileName, const std::string& fieldName, int iteration, int order, bool loadAll=true) throw(INTERP_KERNEL::Exception);
- MEDCoupling::MEDFileField1TS *convertToDouble(bool isDeepCpyGlobs=true) const throw(INTERP_KERNEL::Exception);
- //
- void setFieldNoProfileSBT(const MEDCouplingFieldFloat *field) throw(INTERP_KERNEL::Exception);
- void setFieldProfile(const MEDCouplingFieldFloat *field, const MEDFileMesh *mesh, int meshDimRelToMax, const DataArrayInt *profile) throw(INTERP_KERNEL::Exception);
- MEDCouplingFieldFloat *field(const MEDFileMesh *mesh) const throw(INTERP_KERNEL::Exception);
- MEDCouplingFieldFloat *getFieldAtLevel(TypeOfField type, int meshDimRelToMax, int renumPol=0) const throw(INTERP_KERNEL::Exception);
- MEDCouplingFieldFloat *getFieldAtTopLevel(TypeOfField type, int renumPol=0) const throw(INTERP_KERNEL::Exception);
- MEDCouplingFieldFloat *getFieldOnMeshAtLevel(TypeOfField type, int meshDimRelToMax, const MEDFileMesh *mesh, int renumPol=0) const throw(INTERP_KERNEL::Exception);
- MEDCouplingFieldFloat *getFieldOnMeshAtLevel(TypeOfField type, const MEDCouplingMesh *mesh, int renumPol=0) const throw(INTERP_KERNEL::Exception);
- MEDCouplingFieldFloat *getFieldAtLevelOld(TypeOfField type, const std::string& mname, int meshDimRelToMax, int renumPol=0) const throw(INTERP_KERNEL::Exception);
- %extend
- {
- MEDFileFloatField1TS() throw(INTERP_KERNEL::Exception)
- {
- return MEDFileFloatField1TS::New();
- }
-
- MEDFileFloatField1TS(const std::string& fileName, bool loadAll=true) throw(INTERP_KERNEL::Exception)
- {
- return MEDFileFloatField1TS::New(fileName,loadAll);
- }
-
- MEDFileFloatField1TS(const std::string& fileName, const std::string& fieldName, bool loadAll=true) throw(INTERP_KERNEL::Exception)
- {
- return MEDFileFloatField1TS::New(fileName,fieldName,loadAll);
- }
-
- MEDFileFloatField1TS(const std::string& fileName, const std::string& fieldName, int iteration, int order, bool loadAll=true) throw(INTERP_KERNEL::Exception)
- {
- return MEDFileFloatField1TS::New(fileName,fieldName,iteration,order,loadAll);
- }
-
- MEDFileFloatField1TS(DataArrayByte *db) throw(INTERP_KERNEL::Exception)
- {
- return MEDFileFloatField1TS::New(db);
- }
-
- std::string __str__() const throw(INTERP_KERNEL::Exception)
- {
- return self->simpleRepr();
- }
-
- PyObject *getFieldWithProfile(TypeOfField type, int meshDimRelToMax, const MEDFileMesh *mesh) const throw(INTERP_KERNEL::Exception)
- {
- return MEDFileField1TS_getFieldWithProfile<float>(self,type,meshDimRelToMax,mesh);
- }
-
- DataArrayFloat *getUndergroundDataArray() const throw(INTERP_KERNEL::Exception)
- {
- DataArrayFloat *ret=self->getUndergroundDataArray();
- if(ret)
- ret->incrRef();
- return ret;
- }
-
- PyObject *getUndergroundDataArrayExt() const throw(INTERP_KERNEL::Exception)
- {
- return MEDFileField1TS_getUndergroundDataArrayExt<float>(self);
- }
- }
- };
-
- class MEDFileAnyTypeFieldMultiTSIterator
- {
- public:
- %extend
- {
- PyObject *next() throw(INTERP_KERNEL::Exception)
- {
- MEDFileAnyTypeField1TS *ret=self->nextt();
- if(ret)
- return convertMEDFileField1TS(ret, SWIG_POINTER_OWN | 0 );
- else
- {
- PyErr_SetString(PyExc_StopIteration,"No more data.");
- return 0;
- }
- }
- }
- };
-
- class MEDFileAnyTypeFieldMultiTS : public RefCountObject, public MEDFileFieldGlobsReal, public MEDFileWritableStandAlone
- {
- public:
- static MEDFileAnyTypeFieldMultiTS *New(const std::string& fileName, bool loadAll=true) throw(INTERP_KERNEL::Exception);
- static MEDFileAnyTypeFieldMultiTS *New(const std::string& fileName, const std::string& fieldName, bool loadAll=true) throw(INTERP_KERNEL::Exception);
- MEDFileAnyTypeFieldMultiTS *deepCopy() const throw(INTERP_KERNEL::Exception);
- virtual MEDFileAnyTypeFieldMultiTS *shallowCpy() const throw(INTERP_KERNEL::Exception);
- std::string getName() const throw(INTERP_KERNEL::Exception);
- void setName(const std::string& name) throw(INTERP_KERNEL::Exception);
- std::string getDtUnit() const throw(INTERP_KERNEL::Exception);
- void setDtUnit(const std::string& dtUnit) throw(INTERP_KERNEL::Exception);
- std::string getMeshName() const throw(INTERP_KERNEL::Exception);
- void setMeshName(const std::string& newMeshName) throw(INTERP_KERNEL::Exception);
- const std::vector<std::string>& getInfo() const throw(INTERP_KERNEL::Exception);
- bool presenceOfMultiDiscPerGeoType() const throw(INTERP_KERNEL::Exception);
- int getNumberOfComponents() const throw(INTERP_KERNEL::Exception);
- int getNumberOfTS() const throw(INTERP_KERNEL::Exception);
- void eraseEmptyTS() throw(INTERP_KERNEL::Exception);
- int getPosOfTimeStep(int iteration, int order) const throw(INTERP_KERNEL::Exception);
- int getPosGivenTime(double time, double eps=1e-8) const throw(INTERP_KERNEL::Exception);
- void loadArrays() throw(INTERP_KERNEL::Exception);
- void loadArraysIfNecessary() throw(INTERP_KERNEL::Exception);
- void unloadArrays() throw(INTERP_KERNEL::Exception);
- void unloadArraysWithoutDataLoss() throw(INTERP_KERNEL::Exception);
- //
- virtual MEDFileAnyTypeField1TS *getTimeStepAtPos(int pos) const throw(INTERP_KERNEL::Exception);
- MEDFileAnyTypeField1TS *getTimeStep(int iteration, int order) const throw(INTERP_KERNEL::Exception);
- MEDFileAnyTypeField1TS *getTimeStepGivenTime(double time, double eps=1e-8) const throw(INTERP_KERNEL::Exception);
- void pushBackTimeStep(MEDFileAnyTypeField1TS *f1ts) throw(INTERP_KERNEL::Exception);
- void synchronizeNameScope() throw(INTERP_KERNEL::Exception);
- MEDFileAnyTypeFieldMultiTS *buildNewEmpty() const throw(INTERP_KERNEL::Exception);
- %extend
- {
- int __len__() const throw(INTERP_KERNEL::Exception)
- {
- return self->getNumberOfTS();
- }
-
- int getTimeId(PyObject *elt0) const throw(INTERP_KERNEL::Exception)
- {
- if(elt0 && PyInt_Check(elt0))
- {//fmts[3]
- int pos=PyInt_AS_LONG(elt0);
- return pos;
- }
- else if(elt0 && PyTuple_Check(elt0))
- {
- if(PyTuple_Size(elt0)==2)
- {
- PyObject *o0=PyTuple_GetItem(elt0,0);
- PyObject *o1=PyTuple_GetItem(elt0,1);
- if(PyInt_Check(o0) && PyInt_Check(o1))
- {//fmts(1,-1)
- int iter=PyInt_AS_LONG(o0);
- int order=PyInt_AS_LONG(o1);
- return self->getPosOfTimeStep(iter,order);
- }
- else
- throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTS::__getitem__ : invalid input param ! input is a tuple of size 2 but two integers are expected in this tuple to request a time steps !");
- }
- else
- throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTS::__getitem__ : invalid input param ! input is a tuple of size != 2 ! two integers are expected in this tuple to request a time steps !");
- }
- else if(elt0 && PyFloat_Check(elt0))
- {
- double val=PyFloat_AS_DOUBLE(elt0);
- return self->getPosGivenTime(val);
- }
- else
- throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTS::__getitem__ : invalid input params ! expected fmts[int], fmts[int,int] or fmts[double] to request time step !");
- }
-
- PyObject *getIterations() const throw(INTERP_KERNEL::Exception)
- {
- std::vector< std::pair<int,int> > res(self->getIterations());
- return convertVecPairIntToPy(res);
- }
-
- PyObject *getTimeSteps() const throw(INTERP_KERNEL::Exception)
- {
- std::vector<double> ret1;
- std::vector< std::pair<int,int> > ret=self->getTimeSteps(ret1);
- std::size_t sz=ret.size();
- PyObject *ret2=PyList_New(sz);
- for(std::size_t i=0;i<sz;i++)
- {
- PyObject *elt=PyTuple_New(3);
- PyTuple_SetItem(elt,0,SWIG_From_int(ret[i].first));
- PyTuple_SetItem(elt,1,SWIG_From_int(ret[i].second));
- PyTuple_SetItem(elt,2,SWIG_From_double(ret1[i]));
- PyList_SetItem(ret2,i,elt);
- }
- return ret2;
- }
-
- PyObject *getTypesOfFieldAvailable() const throw(INTERP_KERNEL::Exception)
- {
- std::vector< std::vector<TypeOfField> > ret=self->getTypesOfFieldAvailable();
- PyObject *ret2=PyList_New(ret.size());
- for(int i=0;i<(int)ret.size();i++)
- {
- const std::vector<TypeOfField>& rett=ret[i];
- PyObject *ret3=PyList_New(rett.size());
- for(int j=0;j<(int)rett.size();j++)
- PyList_SetItem(ret3,j,SWIG_From_int(rett[j]));
- PyList_SetItem(ret2,i,ret3);
- }
- return ret2;
- }
-
- PyObject *getNonEmptyLevels(int iteration, int order, const std::string& mname=std::string()) const throw(INTERP_KERNEL::Exception)
- {
- std::vector<int> ret1;
- int ret0=self->getNonEmptyLevels(iteration,order,mname,ret1);
- PyObject *elt=PyTuple_New(2);
- PyTuple_SetItem(elt,0,SWIG_From_int(ret0));
- PyTuple_SetItem(elt,1,convertIntArrToPyList2(ret1));
- return elt;
- }
-
- PyObject *getFieldSplitedByType(int iteration, int order, const std::string& mname=std::string()) const throw(INTERP_KERNEL::Exception)
- {
- std::vector<INTERP_KERNEL::NormalizedCellType> types;
- std::vector< std::vector<TypeOfField> > typesF;
- std::vector< std::vector<std::string> > pfls;
- std::vector< std::vector<std::string> > locs;
- std::vector< std::vector< std::pair<int,int> > > ret=self->getFieldSplitedByType(iteration,order,mname,types,typesF,pfls,locs);
- int sz=ret.size();
- PyObject *ret2=PyList_New(sz);
- for(int i=0;i<sz;i++)
- {
- const std::vector< std::pair<int,int> >& dadsI=ret[i];
- const std::vector<TypeOfField>& typesFI=typesF[i];
- const std::vector<std::string>& pflsI=pfls[i];
- const std::vector<std::string>& locsI=locs[i];
- PyObject *elt=PyTuple_New(2);
- PyTuple_SetItem(elt,0,SWIG_From_int(types[i]));
- int sz2=ret[i].size();
- PyObject *elt2=PyList_New(sz2);
- for(int j=0;j<sz2;j++)
- {
- PyObject *elt3=PyTuple_New(4);
- PyTuple_SetItem(elt3,0,SWIG_From_int(typesFI[j]));
- PyObject *elt4=PyTuple_New(2); PyTuple_SetItem(elt4,0,SWIG_From_int(dadsI[j].first)); PyTuple_SetItem(elt4,1,SWIG_From_int(dadsI[j].second));
- PyTuple_SetItem(elt3,1,elt4);
- PyTuple_SetItem(elt3,2,PyString_FromString(pflsI[j].c_str()));
- PyTuple_SetItem(elt3,3,PyString_FromString(locsI[j].c_str()));
- PyList_SetItem(elt2,j,elt3);
- }
- PyTuple_SetItem(elt,1,elt2);
- PyList_SetItem(ret2,i,elt);
- }
- return ret2;
- }
-
- std::vector<int> getTimeIds(PyObject *elts) const throw(INTERP_KERNEL::Exception)
- {
- if(PyList_Check(elts))
- {
- int sz=PyList_Size(elts);
- std::vector<int> ret(sz);
- for(int i=0;i<sz;i++)
- {
- PyObject *elt=PyList_GetItem(elts,i);
- ret[i]=MEDCoupling_MEDFileAnyTypeFieldMultiTS_getTimeId(self,elt);
- }
- return ret;
- }
- else
- {
- std::vector<int> ret(1);
- ret[0]=MEDCoupling_MEDFileAnyTypeFieldMultiTS_getTimeId(self,elts);
- return ret;
- }
- }
-
- void __delitem__(PyObject *elts) throw(INTERP_KERNEL::Exception)
- {
- if(PySlice_Check(elts))
- {
- Py_ssize_t strt=2,stp=2,step=2;
- GetIndicesOfSlice(elts,self->getNumberOfTS(),&strt,&stp,&step,"MEDFileAnyTypeFieldMultiTS.__delitem__ : error in input slice !");
- self->eraseTimeStepIds2(strt,stp,step);
- }
- else
- {
- std::vector<int> idsToRemove=MEDCoupling_MEDFileAnyTypeFieldMultiTS_getTimeIds(self,elts);
- if(!idsToRemove.empty())
- self->eraseTimeStepIds(&idsToRemove[0],&idsToRemove[0]+idsToRemove.size());
- }
- }
-
- void eraseTimeStepIds(PyObject *li) throw(INTERP_KERNEL::Exception)
- {
- int sw;
- int pos1;
- std::vector<int> pos2;
- DataArrayInt *pos3=0;
- DataArrayIntTuple *pos4=0;
- convertIntStarLikePyObjToCpp(li,sw,pos1,pos2,pos3,pos4);
- switch(sw)
- {
- case 1:
- {
- self->eraseTimeStepIds(&pos1,&pos1+1);
- return;
- }
- case 2:
- {
- if(pos2.empty())
- return;
- self->eraseTimeStepIds(&pos2[0],&pos2[0]+pos2.size());
- return ;
- }
- case 3:
- {
- self->eraseTimeStepIds(pos3->begin(),pos3->end());
- return ;
- }
- default:
- throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTS::eraseTimeStepIds : unexpected input array type recognized !");
- }
- }
-
- MEDFileAnyTypeFieldMultiTSIterator *__iter__() throw(INTERP_KERNEL::Exception)
- {
- return self->iterator();
- }
-
- PyObject *__getitem__(PyObject *elt0) const throw(INTERP_KERNEL::Exception)
- {
- if(elt0 && PyList_Check(elt0))
- {
- int sz=PyList_Size(elt0);
- MCAuto<DataArrayInt> da=DataArrayInt::New(); da->alloc(sz,1);
- int *pt=da->getPointer();
- for(int i=0;i<sz;i++,pt++)
- {
- PyObject *elt1=PyList_GetItem(elt0,i);
- *pt=MEDFileAnyTypeFieldMultiTSgetitemSingleTS__(self,elt1);
- }
- return convertMEDFileFieldMultiTS(self->buildSubPart(da->begin(),da->end()),SWIG_POINTER_OWN | 0);
- }
- else if(elt0 && PySlice_Check(elt0))
- {
- Py_ssize_t strt=2,stp=2,step=2;
- GetIndicesOfSlice(elt0,self->getNumberOfTS(),&strt,&stp,&step,"MEDFileAnyTypeFieldMultiTS.__getitem__ : error in input slice !");
- return convertMEDFileFieldMultiTS(self->buildSubPartSlice(strt,stp,step),SWIG_POINTER_OWN | 0);
- }
- else
- return convertMEDFileField1TS(self->getTimeStepAtPos(MEDFileAnyTypeFieldMultiTSgetitemSingleTS__(self,elt0)),SWIG_POINTER_OWN | 0);
- }
-
- bool changeMeshNames(PyObject *li) throw(INTERP_KERNEL::Exception)
- {
- std::vector< std::pair<std::string,std::string> > modifTab=convertVecPairStStFromPy(li);
- return self->changeMeshNames(modifTab);
- }
-
- PyObject *splitComponents() const throw(INTERP_KERNEL::Exception)
- {
- std::vector< MCAuto< MEDFileAnyTypeFieldMultiTS > > ret=self->splitComponents();
- std::size_t sz=ret.size();
- PyObject *retPy=PyList_New(sz);
- for(std::size_t i=0;i<sz;i++)
- PyList_SetItem(retPy,i,convertMEDFileFieldMultiTS(ret[i].retn(), SWIG_POINTER_OWN | 0 ));
- return retPy;
- }
-
- PyObject *splitDiscretizations() const throw(INTERP_KERNEL::Exception)
- {
- std::vector< MCAuto< MEDFileAnyTypeFieldMultiTS > > ret=self->splitDiscretizations();
- std::size_t sz=ret.size();
- PyObject *retPy=PyList_New(sz);
- for(std::size_t i=0;i<sz;i++)
- PyList_SetItem(retPy,i,convertMEDFileFieldMultiTS(ret[i].retn(), SWIG_POINTER_OWN | 0 ));
- return retPy;
- }
-
- PyObject *splitMultiDiscrPerGeoTypes() const throw(INTERP_KERNEL::Exception)
- {
- std::vector< MCAuto< MEDFileAnyTypeFieldMultiTS > > ret=self->splitMultiDiscrPerGeoTypes();
- std::size_t sz=ret.size();
- PyObject *retPy=PyList_New(sz);
- for(std::size_t i=0;i<sz;i++)
- PyList_SetItem(retPy,i,convertMEDFileFieldMultiTS(ret[i].retn(), SWIG_POINTER_OWN | 0 ));
- return retPy;
- }
-
- void pushBackTimeSteps(PyObject *li) throw(INTERP_KERNEL::Exception)
- {
- void *argp(0);
- int status(SWIG_ConvertPtr(li,&argp,SWIGTYPE_p_MEDCoupling__MEDFileAnyTypeFieldMultiTS,0|0));
- if(SWIG_IsOK(status))
- {
- self->pushBackTimeSteps(reinterpret_cast<MEDFileAnyTypeFieldMultiTS *>(argp));
- }
- else
- {
- std::vector<MEDFileAnyTypeField1TS *> tmp;
- convertFromPyObjVectorOfObj<MEDCoupling::MEDFileAnyTypeField1TS *>(li,SWIGTYPE_p_MEDCoupling__MEDFileAnyTypeField1TS,"MEDFileAnyTypeField1TS",tmp);
- self->pushBackTimeSteps(tmp);
- }
- }
-
- MEDFileAnyTypeFieldMultiTS *extractPart(PyObject *extractDef, MEDFileMesh *mm) const throw(INTERP_KERNEL::Exception)
- {
- std::map<int, MCAuto<DataArrayInt> > extractDefCpp;
- convertToMapIntDataArrayInt(extractDef,extractDefCpp);
- return self->extractPart(extractDefCpp,mm);
- }
-
- static PyObject *MEDFileAnyTypeFieldMultiTS::SplitIntoCommonTimeSeries(PyObject *li) throw(INTERP_KERNEL::Exception)
- {
- std::vector<MEDFileAnyTypeFieldMultiTS *> vectFMTS;
- convertFromPyObjVectorOfObj<MEDCoupling::MEDFileAnyTypeFieldMultiTS *>(li,SWIGTYPE_p_MEDCoupling__MEDFileAnyTypeFieldMultiTS,"MEDFileAnyTypeFieldMultiTS",vectFMTS);
- std::vector< std::vector<MEDFileAnyTypeFieldMultiTS *> > ret=MEDFileAnyTypeFieldMultiTS::SplitIntoCommonTimeSeries(vectFMTS);
- std::size_t sz=ret.size();
- PyObject *retPy=PyList_New(sz);
- for(std::size_t i=0;i<sz;i++)
- {
- std::size_t sz2=ret[i].size();
- PyObject *ret1Py=PyList_New(sz2);
- for(std::size_t j=0;j<sz2;j++)
- {
- MEDFileAnyTypeFieldMultiTS *elt(ret[i][j]);
- if(elt)
- elt->incrRef();
- PyList_SetItem(ret1Py,j,convertMEDFileFieldMultiTS(elt,SWIG_POINTER_OWN | 0 ));
- }
- PyList_SetItem(retPy,i,ret1Py);
- }
- return retPy;
- }
-
- static PyObject *MEDFileAnyTypeFieldMultiTS::SplitPerCommonSupport(PyObject *li, const MEDFileMesh *mesh) throw(INTERP_KERNEL::Exception)
- {
- std::vector<MEDFileAnyTypeFieldMultiTS *> vectFMTS;
- convertFromPyObjVectorOfObj<MEDCoupling::MEDFileAnyTypeFieldMultiTS *>(li,SWIGTYPE_p_MEDCoupling__MEDFileAnyTypeFieldMultiTS,"MEDFileAnyTypeFieldMultiTS",vectFMTS);
- std::vector< MCAuto<MEDFileFastCellSupportComparator> > ret2;
- std::vector< std::vector<MEDFileAnyTypeFieldMultiTS *> > ret=MEDFileAnyTypeFieldMultiTS::SplitPerCommonSupport(vectFMTS,mesh,ret2);
- if(ret2.size()!=ret.size())
- {
- std::ostringstream oss; oss << "MEDFileAnyTypeFieldMultiTS::SplitPerCommonSupport (PyWrap) : internal error ! Size of 2 vectors must match ! (" << ret.size() << "!=" << ret2.size() << ") !";
- throw INTERP_KERNEL::Exception(oss.str().c_str());
- }
- std::size_t sz=ret.size();
- PyObject *retPy=PyList_New(sz);
- for(std::size_t i=0;i<sz;i++)
- {
- std::size_t sz2=ret[i].size();
- PyObject *ret0Py=PyTuple_New(2);
- PyObject *ret1Py=PyList_New(sz2);
- for(std::size_t j=0;j<sz2;j++)
- {
- MEDFileAnyTypeFieldMultiTS *elt(ret[i][j]);
- if(elt)
- elt->incrRef();
- PyList_SetItem(ret1Py,j,convertMEDFileFieldMultiTS(elt,SWIG_POINTER_OWN | 0 ));
- }
- PyTuple_SetItem(ret0Py,0,ret1Py);
- PyTuple_SetItem(ret0Py,1,SWIG_NewPointerObj(SWIG_as_voidptr(ret2[i].retn()),SWIGTYPE_p_MEDCoupling__MEDFileFastCellSupportComparator, SWIG_POINTER_OWN | 0 ));
- PyList_SetItem(retPy,i,ret0Py);
- }
- return retPy;
- }
- }
- };
-
- class MEDFileIntFieldMultiTS;
-
- class MEDFileFieldMultiTS : public MEDFileAnyTypeFieldMultiTS
- {
- public:
- static MEDFileFieldMultiTS *New() throw(INTERP_KERNEL::Exception);
- static MEDFileFieldMultiTS *New(const std::string& fileName, bool loadAll=true) throw(INTERP_KERNEL::Exception);
- static MEDFileFieldMultiTS *New(const std::string& fileName, const std::string& fieldName, bool loadAll=true) throw(INTERP_KERNEL::Exception);
- static MEDFileFieldMultiTS *New(DataArrayByte *db) throw(INTERP_KERNEL::Exception);
- //
- MEDCouplingFieldDouble *field(int iteration, int order, const MEDFileMesh *mesh) const throw(INTERP_KERNEL::Exception);
- MEDCouplingFieldDouble *getFieldAtLevel(TypeOfField type, int iteration, int order, int meshDimRelToMax, int renumPol=0) const throw(INTERP_KERNEL::Exception);
- MEDCouplingFieldDouble *getFieldAtTopLevel(TypeOfField type, int iteration, int order, int renumPol=0) const throw(INTERP_KERNEL::Exception);
- MEDCouplingFieldDouble *getFieldOnMeshAtLevel(TypeOfField type, int iteration, int order, int meshDimRelToMax, const MEDFileMesh *mesh, int renumPol=0) const throw(INTERP_KERNEL::Exception);
- MEDCouplingFieldDouble *getFieldOnMeshAtLevel(TypeOfField type, int iteration, int order, const MEDCouplingMesh *mesh, int renumPol=0) const throw(INTERP_KERNEL::Exception);
- MEDCouplingFieldDouble *getFieldAtLevelOld(TypeOfField type, int iteration, int order, const std::string& mname, int meshDimRelToMax, int renumPol=0) const throw(INTERP_KERNEL::Exception);
- //
- void appendFieldNoProfileSBT(const MEDCouplingFieldDouble *field) throw(INTERP_KERNEL::Exception);
- void appendFieldProfile(const MEDCouplingFieldDouble *field, const MEDFileMesh *mesh, int meshDimRelToMax, const DataArrayInt *profile) throw(INTERP_KERNEL::Exception);
- MEDFileIntFieldMultiTS *convertToInt(bool isDeepCpyGlobs=true) const throw(INTERP_KERNEL::Exception);
- %extend
- {
- MEDFileFieldMultiTS()
- {
- return MEDFileFieldMultiTS::New();
- }
-
- MEDFileFieldMultiTS(const std::string& fileName, bool loadAll=true) throw(INTERP_KERNEL::Exception)
- {
- return MEDFileFieldMultiTS::New(fileName,loadAll);
- }
-
- MEDFileFieldMultiTS(const std::string& fileName, const std::string& fieldName, bool loadAll=true) throw(INTERP_KERNEL::Exception)
- {
- return MEDFileFieldMultiTS::New(fileName,fieldName,loadAll);
- }
-
- MEDFileFieldMultiTS(DataArrayByte *db) throw(INTERP_KERNEL::Exception)
- {
- return MEDFileFieldMultiTS::New(db);
- }
-
- static MEDFileFieldMultiTS *LoadSpecificEntities(const std::string& fileName, const std::string& fieldName, PyObject *entities, bool loadAll=true)
- {
- std::vector<std::pair<int,int> > tmp(convertTimePairIdsFromPy(entities));
- std::size_t sz(tmp.size());
- std::vector< std::pair<TypeOfField,INTERP_KERNEL::NormalizedCellType> > entitiesCpp(sz);
- for(std::size_t i=0;i<sz;i++)
- {
- entitiesCpp[i].first=(TypeOfField)tmp[i].first;
- entitiesCpp[i].second=(INTERP_KERNEL::NormalizedCellType)tmp[i].second;
- }
- return MEDFileFieldMultiTS::LoadSpecificEntities(fileName,fieldName,entitiesCpp,loadAll);
- }
-
- std::string __str__() const throw(INTERP_KERNEL::Exception)
- {
- return self->simpleRepr();
- }
-
- PyObject *getFieldWithProfile(TypeOfField type, int iteration, int order, int meshDimRelToMax, const MEDFileMesh *mesh) const throw(INTERP_KERNEL::Exception)
- {
- DataArrayInt *ret1=0;
- DataArrayDouble *ret0=self->getFieldWithProfile(type,iteration,order,meshDimRelToMax,mesh,ret1);
- PyObject *ret=PyTuple_New(2);
- 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;
- }
-
- PyObject *getFieldSplitedByType2(int iteration, int order, const std::string& mname=std::string()) const throw(INTERP_KERNEL::Exception)
- {
- std::vector<INTERP_KERNEL::NormalizedCellType> types;
- std::vector< std::vector<TypeOfField> > typesF;
- std::vector< std::vector<std::string> > pfls;
- std::vector< std::vector<std::string> > locs;
- std::vector< std::vector<DataArrayDouble *> > ret=self->getFieldSplitedByType2(iteration,order,mname,types,typesF,pfls,locs);
- int sz=ret.size();
- PyObject *ret2=PyList_New(sz);
- for(int i=0;i<sz;i++)
- {
- const std::vector<DataArrayDouble *>& dadsI=ret[i];
- const std::vector<TypeOfField>& typesFI=typesF[i];
- const std::vector<std::string>& pflsI=pfls[i];
- const std::vector<std::string>& locsI=locs[i];
- PyObject *elt=PyTuple_New(2);
- PyTuple_SetItem(elt,0,SWIG_From_int(types[i]));
- int sz2=ret[i].size();
- PyObject *elt2=PyList_New(sz2);
- for(int j=0;j<sz2;j++)
- {
- PyObject *elt3=PyTuple_New(4);
- PyTuple_SetItem(elt3,0,SWIG_From_int(typesFI[j]));
- PyTuple_SetItem(elt3,1,SWIG_NewPointerObj(SWIG_as_voidptr(dadsI[j]),SWIGTYPE_p_MEDCoupling__DataArrayDouble, SWIG_POINTER_OWN | 0 ));
- PyTuple_SetItem(elt3,2,PyString_FromString(pflsI[j].c_str()));
- PyTuple_SetItem(elt3,3,PyString_FromString(locsI[j].c_str()));
- PyList_SetItem(elt2,j,elt3);
- }
- PyTuple_SetItem(elt,1,elt2);
- PyList_SetItem(ret2,i,elt);
- }
- return ret2;
- }
- DataArrayDouble *getUndergroundDataArray(int iteration, int order) const throw(INTERP_KERNEL::Exception)
- {
- DataArrayDouble *ret=self->getUndergroundDataArray(iteration,order);
- if(ret)
- ret->incrRef();
- return ret;
- }
-
- PyObject *getUndergroundDataArrayExt(int iteration, int order) const throw(INTERP_KERNEL::Exception)
- {
- std::vector< std::pair<std::pair<INTERP_KERNEL::NormalizedCellType,int>,std::pair<int,int> > > elt1Cpp;
- DataArrayDouble *elt0=self->getUndergroundDataArrayExt(iteration,order,elt1Cpp);
- if(elt0)
- elt0->incrRef();
- PyObject *ret=PyTuple_New(2);
- PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(elt0),SWIGTYPE_p_MEDCoupling__DataArrayDouble, SWIG_POINTER_OWN | 0 ));
- std::size_t sz=elt1Cpp.size();
- PyObject *elt=PyList_New(sz);
- for(std::size_t i=0;i<sz;i++)
- {
- PyObject *elt1=PyTuple_New(2);
- PyObject *elt2=PyTuple_New(2);
- PyTuple_SetItem(elt2,0,SWIG_From_int(elt1Cpp[i].first.first));
- PyTuple_SetItem(elt2,1,SWIG_From_int(elt1Cpp[i].first.second));
- PyObject *elt3=PyTuple_New(2);
- PyTuple_SetItem(elt3,0,SWIG_From_int(elt1Cpp[i].second.first));
- PyTuple_SetItem(elt3,1,SWIG_From_int(elt1Cpp[i].second.second));
- PyTuple_SetItem(elt1,0,elt2);
- PyTuple_SetItem(elt1,1,elt3);
- PyList_SetItem(elt,i,elt1);
- }
- PyTuple_SetItem(ret,1,elt);
- return ret;
- }
- }
- };
-
- class MEDFileFieldsIterator
- {
- public:
- %extend
- {
- PyObject *next() throw(INTERP_KERNEL::Exception)
- {
- MEDFileAnyTypeFieldMultiTS *ret=self->nextt();
- if(ret)
- return convertMEDFileFieldMultiTS(ret, SWIG_POINTER_OWN | 0 );
- else
- {
- PyErr_SetString(PyExc_StopIteration,"No more data.");
- return 0;
- }
- }
- }
- };
-
- class MEDFileIntFieldMultiTS : public MEDFileAnyTypeFieldMultiTS
- {
- public:
- static MEDFileIntFieldMultiTS *New();
- static MEDFileIntFieldMultiTS *New(const std::string& fileName, bool loadAll=true) throw(INTERP_KERNEL::Exception);
- static MEDFileIntFieldMultiTS *New(const std::string& fileName, const std::string& fieldName, bool loadAll=true) throw(INTERP_KERNEL::Exception);
- static MEDFileIntFieldMultiTS *New(DataArrayByte *db) throw(INTERP_KERNEL::Exception);
- //
- void appendFieldNoProfileSBT(const MEDCouplingFieldInt *field) throw(INTERP_KERNEL::Exception);
- void appendFieldProfile(const MEDCouplingFieldInt *field, const MEDFileMesh *mesh, int meshDimRelToMax, const DataArrayInt *profile) throw(INTERP_KERNEL::Exception);
- MEDCoupling::MEDFileFieldMultiTS *convertToDouble(bool isDeepCpyGlobs=true) const throw(INTERP_KERNEL::Exception);
- MEDCouplingFieldInt *field(int iteration, int order, const MEDFileMesh *mesh) const throw(INTERP_KERNEL::Exception);
- MEDCouplingFieldInt *getFieldAtLevel(TypeOfField type, int iteration, int order, int meshDimRelToMax, int renumPol=0) const throw(INTERP_KERNEL::Exception);
- MEDCouplingFieldInt *getFieldAtTopLevel(TypeOfField type, int iteration, int order, int renumPol=0) const throw(INTERP_KERNEL::Exception);
- MEDCouplingFieldInt *getFieldOnMeshAtLevel(TypeOfField type, int iteration, int order, int meshDimRelToMax, const MEDFileMesh *mesh, int renumPol=0) const throw(INTERP_KERNEL::Exception);
- MEDCouplingFieldInt *getFieldOnMeshAtLevel(TypeOfField type, int iteration, int order, const MEDCouplingMesh *mesh, int renumPol=0) const throw(INTERP_KERNEL::Exception);
- MEDCouplingFieldInt *getFieldAtLevelOld(TypeOfField type, int iteration, int order, const std::string& mname, int meshDimRelToMax, int renumPol=0) const throw(INTERP_KERNEL::Exception);
- %extend
- {
- MEDFileIntFieldMultiTS()
- {
- return MEDFileIntFieldMultiTS::New();
- }
-
- MEDFileIntFieldMultiTS(const std::string& fileName, bool loadAll=true) throw(INTERP_KERNEL::Exception)
- {
- return MEDFileIntFieldMultiTS::New(fileName,loadAll);
- }
-
- MEDFileIntFieldMultiTS(const std::string& fileName, const std::string& fieldName, bool loadAll=true) throw(INTERP_KERNEL::Exception)
- {
- return MEDFileIntFieldMultiTS::New(fileName,fieldName,loadAll);
- }
-
- MEDFileIntFieldMultiTS(DataArrayByte *db) throw(INTERP_KERNEL::Exception)
- {
- return MEDFileIntFieldMultiTS::New(db);
- }
-
- static MEDFileIntFieldMultiTS *LoadSpecificEntities(const std::string& fileName, const std::string& fieldName, PyObject *entities, bool loadAll=true)
- {
- std::vector<std::pair<int,int> > tmp(convertTimePairIdsFromPy(entities));
- std::vector< std::pair<TypeOfField,INTERP_KERNEL::NormalizedCellType> > entitiesCpp(convertVecPairIntToVecPairTOFCT(tmp));
- return MEDFileIntFieldMultiTS::LoadSpecificEntities(fileName,fieldName,entitiesCpp,loadAll);
- }
-
- std::string __str__() const throw(INTERP_KERNEL::Exception)
- {
- return self->simpleRepr();
- }
-
- PyObject *getFieldWithProfile(TypeOfField type, int iteration, int order, int meshDimRelToMax, const MEDFileMesh *mesh) const throw(INTERP_KERNEL::Exception)
- {
- DataArrayInt *ret1=0;
- DataArrayInt *ret0=self->getFieldWithProfile(type,iteration,order,meshDimRelToMax,mesh,ret1);
- PyObject *ret=PyTuple_New(2);
- 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;
- }
-
- DataArrayInt *getUndergroundDataArray(int iteration, int order) const throw(INTERP_KERNEL::Exception)
- {
- DataArrayInt *ret=self->getUndergroundDataArray(iteration,order);
- if(ret)
- ret->incrRef();
- return ret;
- }
- }
- };
-
- class MEDFileFloatFieldMultiTS : public MEDFileAnyTypeFieldMultiTS
- {
- public:
- static MEDFileFloatFieldMultiTS *New();
- static MEDFileFloatFieldMultiTS *New(const std::string& fileName, bool loadAll=true) throw(INTERP_KERNEL::Exception);
- static MEDFileFloatFieldMultiTS *New(const std::string& fileName, const std::string& fieldName, bool loadAll=true) throw(INTERP_KERNEL::Exception);
- static MEDFileFloatFieldMultiTS *New(DataArrayByte *db) throw(INTERP_KERNEL::Exception);
- //
- void appendFieldNoProfileSBT(const MEDCouplingFieldFloat *field) throw(INTERP_KERNEL::Exception);
- void appendFieldProfile(const MEDCouplingFieldFloat *field, const MEDFileMesh *mesh, int meshDimRelToMax, const DataArrayInt *profile) throw(INTERP_KERNEL::Exception);
- MEDCoupling::MEDFileFieldMultiTS *convertToDouble(bool isDeepCpyGlobs=true) const throw(INTERP_KERNEL::Exception);
- MEDCouplingFieldFloat *field(int iteration, int order, const MEDFileMesh *mesh) const throw(INTERP_KERNEL::Exception);
- MEDCouplingFieldFloat *getFieldAtLevel(TypeOfField type, int iteration, int order, int meshDimRelToMax, int renumPol=0) const throw(INTERP_KERNEL::Exception);
- MEDCouplingFieldFloat *getFieldAtTopLevel(TypeOfField type, int iteration, int order, int renumPol=0) const throw(INTERP_KERNEL::Exception);
- MEDCouplingFieldFloat *getFieldOnMeshAtLevel(TypeOfField type, int iteration, int order, int meshDimRelToMax, const MEDFileMesh *mesh, int renumPol=0) const throw(INTERP_KERNEL::Exception);
- MEDCouplingFieldFloat *getFieldOnMeshAtLevel(TypeOfField type, int iteration, int order, const MEDCouplingMesh *mesh, int renumPol=0) const throw(INTERP_KERNEL::Exception);
- MEDCouplingFieldFloat *getFieldAtLevelOld(TypeOfField type, int iteration, int order, const std::string& mname, int meshDimRelToMax, int renumPol=0) const throw(INTERP_KERNEL::Exception);
- %extend
- {
- MEDFileFloatFieldMultiTS()
- {
- return MEDFileFloatFieldMultiTS::New();
- }
-
- MEDFileFloatFieldMultiTS(const std::string& fileName, bool loadAll=true) throw(INTERP_KERNEL::Exception)
- {
- return MEDFileFloatFieldMultiTS::New(fileName,loadAll);
- }
-
- MEDFileFloatFieldMultiTS(const std::string& fileName, const std::string& fieldName, bool loadAll=true) throw(INTERP_KERNEL::Exception)
- {
- return MEDFileFloatFieldMultiTS::New(fileName,fieldName,loadAll);
- }
-
- MEDFileFloatFieldMultiTS(DataArrayByte *db) throw(INTERP_KERNEL::Exception)
- {
- return MEDFileFloatFieldMultiTS::New(db);
- }
-
- static MEDFileFloatFieldMultiTS *LoadSpecificEntities(const std::string& fileName, const std::string& fieldName, PyObject *entities, bool loadAll=true)
- {
- std::vector<std::pair<int,int> > tmp(convertTimePairIdsFromPy(entities));
- std::vector< std::pair<TypeOfField,INTERP_KERNEL::NormalizedCellType> > entitiesCpp(convertVecPairIntToVecPairTOFCT(tmp));
- return MEDFileFloatFieldMultiTS::LoadSpecificEntities(fileName,fieldName,entitiesCpp,loadAll);
- }
-
- std::string __str__() const throw(INTERP_KERNEL::Exception)
- {
- return self->simpleRepr();
- }
-
- PyObject *getFieldWithProfile(TypeOfField type, int iteration, int order, int meshDimRelToMax, const MEDFileMesh *mesh) const throw(INTERP_KERNEL::Exception)
- {
- DataArrayInt *ret1=0;
- DataArrayFloat *ret0=self->getFieldWithProfile(type,iteration,order,meshDimRelToMax,mesh,ret1);
- PyObject *ret=PyTuple_New(2);
- PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(ret0),SWIGTYPE_p_MEDCoupling__DataArrayFloat, SWIG_POINTER_OWN | 0 ));
- PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(ret1),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ));
- return ret;
- }
-
- DataArrayFloat *getUndergroundDataArray(int iteration, int order) const throw(INTERP_KERNEL::Exception)
- {
- DataArrayFloat *ret=self->getUndergroundDataArray(iteration,order);
- if(ret)
- ret->incrRef();
- return ret;
- }
- }
- };
-
- class MEDFileMeshSupports : public RefCountObject, public MEDFileWritableStandAlone
- {
- public:
- static MEDFileMeshSupports *New(const std::string& fileName) throw(INTERP_KERNEL::Exception);
- std::vector<std::string> getSupMeshNames() const throw(INTERP_KERNEL::Exception);
- %extend
- {
- MEDFileUMesh *getSupMeshWithName(const std::string& name) const throw(INTERP_KERNEL::Exception)
- {
- const MEDFileUMesh *ret(self->getSupMeshWithName(name));
- MEDFileUMesh *ret2(const_cast<MEDFileUMesh *>(ret));
- if(ret2)
- ret2->incrRef();
- return ret2;
- }
- }
- };
-
- class MEDFileStructureElements : public RefCountObject, public MEDFileWritableStandAlone
- {
- public:
- static MEDFileStructureElements *New(const std::string& fileName, const MEDFileMeshSupports *ms) throw(INTERP_KERNEL::Exception);
- private:
- MEDFileStructureElements();
- };
-
- class MEDFileFields : public RefCountObject, public MEDFileFieldGlobsReal, public MEDFileWritableStandAlone
- {
- public:
- static MEDFileFields *New() throw(INTERP_KERNEL::Exception);
- static MEDFileFields *New(const std::string& fileName, bool loadAll=true) throw(INTERP_KERNEL::Exception);
- static MEDFileFields *New(DataArrayByte *db) throw(INTERP_KERNEL::Exception);
- static MEDFileFields *NewAdv(const std::string& fileName, bool loadAll, const MEDFileEntities *entities) throw(INTERP_KERNEL::Exception);
- static MEDFileFields *LoadPartOf(const std::string& fileName, bool loadAll=true, const MEDFileMeshes *ms=0) throw(INTERP_KERNEL::Exception);
- static MEDFileFields *NewWithDynGT(const std::string& fileName, const MEDFileStructureElements *se, bool loadAll=true) throw(INTERP_KERNEL::Exception);
- MEDFileFields *deepCopy() const throw(INTERP_KERNEL::Exception);
- MEDFileFields *shallowCpy() const throw(INTERP_KERNEL::Exception);
- void loadArrays() throw(INTERP_KERNEL::Exception);
- void loadArraysIfNecessary() throw(INTERP_KERNEL::Exception);
- void unloadArrays() throw(INTERP_KERNEL::Exception);
- void unloadArraysWithoutDataLoss() throw(INTERP_KERNEL::Exception);
- int getNumberOfFields() const;
- std::vector<std::string> getFieldsNames() const throw(INTERP_KERNEL::Exception);
- std::vector<std::string> getMeshesNames() const throw(INTERP_KERNEL::Exception);
- //
- void resize(int newSize) throw(INTERP_KERNEL::Exception);
- void pushField(MEDFileAnyTypeFieldMultiTS *field) throw(INTERP_KERNEL::Exception);
- void setFieldAtPos(int i, MEDFileAnyTypeFieldMultiTS *field) throw(INTERP_KERNEL::Exception);
- int getPosFromFieldName(const std::string& fieldName) const throw(INTERP_KERNEL::Exception);
- MEDFileAnyTypeFieldMultiTS *getFieldAtPos(int i) const throw(INTERP_KERNEL::Exception);
- MEDFileAnyTypeFieldMultiTS *getFieldWithName(const std::string& fieldName) const throw(INTERP_KERNEL::Exception);
- MEDFileFields *partOfThisLyingOnSpecifiedMeshName(const std::string& meshName) const throw(INTERP_KERNEL::Exception);
- bool presenceOfStructureElements() const throw(INTERP_KERNEL::Exception);
- void aggregate(const MEDFileFields& other) throw(INTERP_KERNEL::Exception);
- void killStructureElements() throw(INTERP_KERNEL::Exception);
- void keepOnlyStructureElements() throw(INTERP_KERNEL::Exception);
- void keepOnlyOnMeshSE(const std::string& meshName, const std::string& seName) throw(INTERP_KERNEL::Exception);
- void blowUpSE(MEDFileMeshes *ms, const MEDFileStructureElements *ses) throw(INTERP_KERNEL::Exception);
- void destroyFieldAtPos(int i) throw(INTERP_KERNEL::Exception);
- bool removeFieldsWithoutAnyTimeStep() throw(INTERP_KERNEL::Exception);
- %extend
- {
- MEDFileFields()
- {
- return MEDFileFields::New();
- }
-
- MEDFileFields(const std::string& fileName, bool loadAll=true) throw(INTERP_KERNEL::Exception)
- {
- return MEDFileFields::New(fileName,loadAll);
- }
-
- MEDFileFields(DataArrayByte *db) throw(INTERP_KERNEL::Exception)
- {
- return MEDFileFields::New(db);
- }
-
- MEDFileFields(const std::string& fileName, bool loadAll, const MEDFileEntities *entities) throw(INTERP_KERNEL::Exception)
- {
- return MEDFileFields::NewAdv(fileName,loadAll,entities);
- }
-
- std::string __str__() const throw(INTERP_KERNEL::Exception)
- {
- return self->simpleRepr();
- }
-
- MEDFileFields *partOfThisOnStructureElements() const throw(INTERP_KERNEL::Exception)
- {
- MCAuto<MEDFileFields> ret(self->partOfThisOnStructureElements());
- return ret.retn();
- }
-
- MEDFileFields *partOfThisLyingOnSpecifiedMeshSEName(const std::string& meshName, const std::string& seName) const throw(INTERP_KERNEL::Exception)
- {
- MCAuto<MEDFileFields> ret(self->partOfThisLyingOnSpecifiedMeshSEName(meshName,seName));
- return ret.retn();
- }
-
- static MEDFileFields *LoadSpecificEntities(const std::string& fileName, PyObject *entities, bool loadAll=true) throw(INTERP_KERNEL::Exception)
- {
- std::vector<std::pair<int,int> > tmp(convertTimePairIdsFromPy(entities));
- std::size_t sz(tmp.size());
- std::vector< std::pair<TypeOfField,INTERP_KERNEL::NormalizedCellType> > entitiesCpp(sz);
- for(std::size_t i=0;i<sz;i++)
- {
- entitiesCpp[i].first=(TypeOfField)tmp[i].first;
- entitiesCpp[i].second=(INTERP_KERNEL::NormalizedCellType)tmp[i].second;
- }
- return MEDFileFields::LoadSpecificEntities(fileName,entitiesCpp,loadAll);
- }
-
- PyObject *getMeshSENames() const throw(INTERP_KERNEL::Exception)
- {
- std::vector< std::pair<std::string,std::string> > ps;
- self->getMeshSENames(ps);
- return convertVectPairStToPy(ps);
- }
-
- PyObject *getCommonIterations() const throw(INTERP_KERNEL::Exception)
- {
- bool ret1;
- std::vector< std::pair<int,int> > ret0=self->getCommonIterations(ret1);
- PyObject *ret=PyTuple_New(2);
- PyObject *ret_0=PyList_New(ret0.size());
- int rk=0;
- for(std::vector< std::pair<int,int> >::const_iterator iter=ret0.begin();iter!=ret0.end();iter++,rk++)
- {
- PyObject *elt=PyTuple_New(2);
- PyTuple_SetItem(elt,0,SWIG_From_int((*iter).first));
- PyTuple_SetItem(elt,1,SWIG_From_int((*iter).second));
- PyList_SetItem(ret_0,rk,elt);
- }
- PyTuple_SetItem(ret,0,ret_0);
- PyObject *ret_1=ret1?Py_True:Py_False; Py_XINCREF(ret_1);
- PyTuple_SetItem(ret,1,ret_1);
- return ret;
- }
-
- MEDFileFields *partOfThisLyingOnSpecifiedTimeSteps(PyObject *timeSteps) const throw(INTERP_KERNEL::Exception)
- {
- std::vector< std::pair<int,int> > ts=convertTimePairIdsFromPy(timeSteps);
- return self->partOfThisLyingOnSpecifiedTimeSteps(ts);
- }
-
- MEDFileFields *partOfThisNotLyingOnSpecifiedTimeSteps(PyObject *timeSteps) const throw(INTERP_KERNEL::Exception)
- {
- std::vector< std::pair<int,int> > ts=convertTimePairIdsFromPy(timeSteps);
- return self->partOfThisNotLyingOnSpecifiedTimeSteps(ts);
- }
-
- PyObject *__getitem__(PyObject *obj) throw(INTERP_KERNEL::Exception)
- {
- if(obj && PyList_Check(obj))
- {
- int sz=PyList_Size(obj);
- MCAuto<DataArrayInt> da=DataArrayInt::New(); da->alloc(sz,1);
- int *pt=da->getPointer();
- for(int i=0;i<sz;i++,pt++)
- {
- PyObject *elt1=PyList_GetItem(obj,i);
- *pt=MEDFileFieldsgetitemSingleTS__(self,elt1);
- }
- return SWIG_NewPointerObj(SWIG_as_voidptr(self->buildSubPart(da->begin(),da->end())),SWIGTYPE_p_MEDCoupling__MEDFileFields, SWIG_POINTER_OWN | 0 );
- }
- else
- return convertMEDFileFieldMultiTS(self->getFieldAtPos(MEDFileFieldsgetitemSingleTS__(self,obj)), SWIG_POINTER_OWN | 0 );
- }
-
- MEDFileFields *__setitem__(int obj, MEDFileFieldMultiTS *field) throw(INTERP_KERNEL::Exception)
- {
- self->setFieldAtPos(obj,field);
- return self;
- }
-
- int __len__() const throw(INTERP_KERNEL::Exception)
- {
- return self->getNumberOfFields();
- }
-
- MEDFileFieldsIterator *__iter__() throw(INTERP_KERNEL::Exception)
- {
- return self->iterator();
- }
-
- bool changeMeshNames(PyObject *li) throw(INTERP_KERNEL::Exception)
- {
- std::vector< std::pair<std::string,std::string> > modifTab=convertVecPairStStFromPy(li);
- return self->changeMeshNames(modifTab);
- }
-
- int getPosOfField(PyObject *elt0) const throw(INTERP_KERNEL::Exception)
- {
- static const char msg[]="MEDFileFields::getPosOfField : invalid input params ! expected fields[int], fields[string_of_field_name] !";
- if(!elt0)
- throw INTERP_KERNEL::Exception(msg);
- if(PyInt_Check(elt0))
- {//fmts[3]
- return PyInt_AS_LONG(elt0);
- }
- return self->getPosFromFieldName(convertPyObjectToStr(elt0,msg));
- }
-
- std::vector<int> getPosOfFields(PyObject *elts) const throw(INTERP_KERNEL::Exception)
- {
- if(PyList_Check(elts))
- {
- int sz=PyList_Size(elts);
- std::vector<int> ret(sz);
- for(int i=0;i<sz;i++)
- {
- PyObject *elt=PyList_GetItem(elts,i);
- ret[i]=MEDCoupling_MEDFileFields_getPosOfField(self,elt);
- }
- return ret;
- }
- else
- {
- std::vector<int> ret(1);
- ret[0]=MEDCoupling_MEDFileFields_getPosOfField(self,elts);
- return ret;
- }
- }
-
- void pushFields(PyObject *fields) throw(INTERP_KERNEL::Exception)
- {
- std::vector<MEDFileAnyTypeFieldMultiTS *> tmp;
- convertFromPyObjVectorOfObj<MEDCoupling::MEDFileAnyTypeFieldMultiTS *>(fields,SWIGTYPE_p_MEDCoupling__MEDFileAnyTypeFieldMultiTS,"MEDFileAnyTypeFieldMultiTS",tmp);
- self->pushFields(tmp);
- }
-
- void __delitem__(PyObject *elts) throw(INTERP_KERNEL::Exception)
- {
- if(elts && PySlice_Check(elts))
- {
- Py_ssize_t strt=2,stp=2,step=2;
- GetIndicesOfSlice(elts,self->getNumberOfFields(),&strt,&stp,&step,"MEDFileFields.__delitem__ : error in input slice !");
- self->destroyFieldsAtPos2(strt,stp,step);
- }
- else
- {
- std::vector<int> idsToRemove=MEDCoupling_MEDFileFields_getPosOfFields(self,elts);
- if(!idsToRemove.empty())
- self->destroyFieldsAtPos(&idsToRemove[0],&idsToRemove[0]+idsToRemove.size());
- }
- }
-
- MEDFileFields *extractPart(PyObject *extractDef, MEDFileMesh *mm) const throw(INTERP_KERNEL::Exception)
- {
- std::map<int, MCAuto<DataArrayInt> > extractDefCpp;
- convertToMapIntDataArrayInt(extractDef,extractDefCpp);
- return self->extractPart(extractDefCpp,mm);
- }
- }
- };
-
- class MEDFileParameter1TS : public RefCountObject
- {
- public:
- void setIteration(int it);
- int getIteration() const;
- void setOrder(int order);
- int getOrder() const;
- void setTimeValue(double time);
- void setTime(int dt, int it, double time);
- double getTime(int& dt, int& it);
- double getTimeValue() const;
- };
-
- class MEDFileParameterDouble1TSWTI : public MEDFileParameter1TS
- {
- public:
- void setValue(double val) throw(INTERP_KERNEL::Exception);
- double getValue() const throw(INTERP_KERNEL::Exception);
- std::string simpleRepr() const throw(INTERP_KERNEL::Exception);
- %extend
- {
- std::string __str__() const throw(INTERP_KERNEL::Exception)
- {
- return self->simpleRepr();
- }
- }
- };
-
- class MEDFileParameterTinyInfo : public MEDFileWritable
- {
- public:
- void setDescription(const std::string& name);
- std::string getDescription() const;
- void setTimeUnit(const std::string& unit);
- std::string getTimeUnit() const;
- };
-
- class MEDFileParameterDouble1TS : public MEDFileParameterDouble1TSWTI, public MEDFileParameterTinyInfo
- {
- public:
- static MEDFileParameterDouble1TS *New();
- static MEDFileParameterDouble1TS *New(const std::string& fileName) throw(INTERP_KERNEL::Exception);
- static MEDFileParameterDouble1TS *New(const std::string& fileName, const std::string& paramName) throw(INTERP_KERNEL::Exception);
- static MEDFileParameterDouble1TS *New(const std::string& fileName, const std::string& paramName, int dt, int it) throw(INTERP_KERNEL::Exception);
- virtual MEDFileParameter1TS *deepCopy() const throw(INTERP_KERNEL::Exception);
- virtual std::string simpleRepr() const throw(INTERP_KERNEL::Exception);
- void setName(const std::string& name) throw(INTERP_KERNEL::Exception);
- std::string getName() const throw(INTERP_KERNEL::Exception);
- void write(const std::string& fileName, int mode) const throw(INTERP_KERNEL::Exception);
- %extend
- {
- MEDFileParameterDouble1TS()
- {
- return MEDFileParameterDouble1TS::New();
- }
-
- MEDFileParameterDouble1TS(const std::string& fileName) throw(INTERP_KERNEL::Exception)
- {
- return MEDFileParameterDouble1TS::New(fileName);
- }
-
- MEDFileParameterDouble1TS(const std::string& fileName, const std::string& paramName) throw(INTERP_KERNEL::Exception)
- {
- return MEDFileParameterDouble1TS::New(fileName,paramName);
- }
-
- MEDFileParameterDouble1TS(const std::string& fileName, const std::string& paramName, int dt, int it) throw(INTERP_KERNEL::Exception)
- {
- return MEDFileParameterDouble1TS::New(fileName,paramName,dt,it);
- }
-
- std::string __str__() const throw(INTERP_KERNEL::Exception)
- {
- return self->simpleRepr();
- }
-
- PyObject *isEqual(const MEDFileParameter1TS *other, double eps) const throw(INTERP_KERNEL::Exception)
- {
- std::string what;
- bool ret0=self->isEqual(other,eps,what);
- PyObject *res=PyList_New(2);
- PyObject *ret0Py=ret0?Py_True:Py_False;
- Py_XINCREF(ret0Py);
- PyList_SetItem(res,0,ret0Py);
- PyList_SetItem(res,1,PyString_FromString(what.c_str()));
- return res;
- }
- }
- };
-
- class MEDFileParameterMultiTS : public RefCountObject, public MEDFileParameterTinyInfo
- {
- public:
- static MEDFileParameterMultiTS *New();
- static MEDFileParameterMultiTS *New(const std::string& fileName) throw(INTERP_KERNEL::Exception);
- static MEDFileParameterMultiTS *New(const std::string& fileName, const std::string& paramName) throw(INTERP_KERNEL::Exception);
- std::string getName() const;
- void setName(const std::string& name);
- MEDFileParameterMultiTS *deepCopy() const throw(INTERP_KERNEL::Exception);
- void write(const std::string& fileName, int mode) const throw(INTERP_KERNEL::Exception);
- std::string simpleRepr() const throw(INTERP_KERNEL::Exception);
- void appendValue(int dt, int it, double time, double val) throw(INTERP_KERNEL::Exception);
- double getDoubleValue(int iteration, int order) const throw(INTERP_KERNEL::Exception);
- int getPosOfTimeStep(int iteration, int order) const throw(INTERP_KERNEL::Exception);
- int getPosGivenTime(double time, double eps=1e-8) const throw(INTERP_KERNEL::Exception);
- int getNumberOfTS() const throw(INTERP_KERNEL::Exception);
- %extend
- {
- MEDFileParameterMultiTS()
- {
- return MEDFileParameterMultiTS::New();
- }
-
- MEDFileParameterMultiTS(const std::string& fileName)
- {
- return MEDFileParameterMultiTS::New(fileName);
- }
-
- MEDFileParameterMultiTS(const std::string& fileName, const std::string& paramName)
- {
- return MEDFileParameterMultiTS::New(fileName,paramName);
- }
-
- std::string __str__() const throw(INTERP_KERNEL::Exception)
- {
- return self->simpleRepr();
- }
-
- PyObject *isEqual(const MEDFileParameterMultiTS *other, double eps) const throw(INTERP_KERNEL::Exception)
- {
- std::string what;
- bool ret0=self->isEqual(other,eps,what);
- PyObject *res=PyList_New(2);
- PyObject *ret0Py=ret0?Py_True:Py_False;
- Py_XINCREF(ret0Py);
- PyList_SetItem(res,0,ret0Py);
- PyList_SetItem(res,1,PyString_FromString(what.c_str()));
- return res;
- }
-
- void eraseTimeStepIds(PyObject *ids) throw(INTERP_KERNEL::Exception)
- {
- int sw;
- int pos1;
- std::vector<int> pos2;
- DataArrayInt *pos3=0;
- DataArrayIntTuple *pos4=0;
- convertIntStarLikePyObjToCpp(ids,sw,pos1,pos2,pos3,pos4);
- switch(sw)
- {
- case 1:
- {
- self->eraseTimeStepIds(&pos1,&pos1+1);
- return;
- }
- case 2:
- {
- if(pos2.empty())
- return;
- self->eraseTimeStepIds(&pos2[0],&pos2[0]+pos2.size());
- return ;
- }
- case 3:
- {
- self->eraseTimeStepIds(pos3->begin(),pos3->end());
- return ;
- }
- default:
- throw INTERP_KERNEL::Exception("MEDFileParameterMultiTS::eraseTimeStepIds : unexpected input array type recognized !");
- }
- }
-
- int getTimeStepId(PyObject *elt0) const throw(INTERP_KERNEL::Exception)
- {
- if(elt0 && PyInt_Check(elt0))
- {//fmts[3]
- int pos=InterpreteNegativeInt(PyInt_AS_LONG(elt0),self->getNumberOfTS());
- return pos;
- }
- else if(elt0 && PyTuple_Check(elt0))
- {
- if(PyTuple_Size(elt0)==2)
- {
- PyObject *o0=PyTuple_GetItem(elt0,0);
- PyObject *o1=PyTuple_GetItem(elt0,1);
- if(PyInt_Check(o0) && PyInt_Check(o1))
- {//fmts(1,-1)
- int iter=PyInt_AS_LONG(o0);
- int order=PyInt_AS_LONG(o1);
- return self->getPosOfTimeStep(iter,order);
- }
- else
- throw INTERP_KERNEL::Exception("MEDFileParameterMultiTS::getTimeStepId : invalid input param ! input is a tuple of size 2 but two integers are expected in this tuple to request a time steps !");
- }
- else
- throw INTERP_KERNEL::Exception("MEDFileParameterMultiTS::getTimeStepId : invalid input param ! input is a tuple of size != 2 ! two integers are expected in this tuple to request a time steps !");
- }
- else if(elt0 && PyFloat_Check(elt0))
- {
- double val=PyFloat_AS_DOUBLE(elt0);
- return self->getPosGivenTime(val);
- }
- else
- throw INTERP_KERNEL::Exception("MEDFileParameterMultiTS::getTimeStepId : invalid input params ! expected fmts[int], fmts[int,int] or fmts[double] to request time step !");
- }
-
- MEDFileParameter1TS *__getitem__(PyObject *elt0) const throw(INTERP_KERNEL::Exception)
- {
- MEDFileParameter1TS *ret=self->getTimeStepAtPos(MEDCoupling_MEDFileParameterMultiTS_getTimeStepId(self,elt0));
- if(ret)
- ret->incrRef();
- return ret;
- }
-
- std::vector<int> getTimeStepIds(PyObject *elts) const throw(INTERP_KERNEL::Exception)
- {
- if(PyList_Check(elts))
- {
- int sz=PyList_Size(elts);
- std::vector<int> ret(sz);
- for(int i=0;i<sz;i++)
- {
- PyObject *elt=PyList_GetItem(elts,i);
- ret[i]=MEDCoupling_MEDFileParameterMultiTS_getTimeStepId(self,elt);
- }
- return ret;
- }
- else
- {
- std::vector<int> ret(1);
- ret[0]=MEDCoupling_MEDFileParameterMultiTS_getTimeStepId(self,elts);
- return ret;
- }
- }
-
- void __delitem__(PyObject *elts) throw(INTERP_KERNEL::Exception)
- {
- std::vector<int> idsToRemove=MEDCoupling_MEDFileParameterMultiTS_getTimeStepIds(self,elts);
- if(!idsToRemove.empty())
- self->eraseTimeStepIds(&idsToRemove[0],&idsToRemove[0]+idsToRemove.size());
- }
-
- MEDFileParameter1TS *getTimeStepAtPos(int posId) const throw(INTERP_KERNEL::Exception)
- {
- MEDFileParameter1TS *ret=self->getTimeStepAtPos(posId);
- if(ret)
- ret->incrRef();
- return ret;
- }
-
- PyObject *getIterations() const throw(INTERP_KERNEL::Exception)
- {
- std::vector< std::pair<int,int> > res=self->getIterations();
- PyObject *ret=PyList_New(res.size());
- int rk=0;
- for(std::vector< std::pair<int,int> >::const_iterator iter=res.begin();iter!=res.end();iter++,rk++)
- {
- PyObject *elt=PyTuple_New(2);
- PyTuple_SetItem(elt,0,SWIG_From_int((*iter).first));
- PyTuple_SetItem(elt,1,SWIG_From_int((*iter).second));
- PyList_SetItem(ret,rk,elt);
- }
- return ret;
- }
-
- PyObject *getTimeSteps() const throw(INTERP_KERNEL::Exception)
- {
- std::vector<double> res2;
- std::vector< std::pair<int,int> > res=self->getTimeSteps(res2);
- PyObject *ret=PyList_New(res.size());
- int rk=0;
- for(std::vector< std::pair<int,int> >::const_iterator iter=res.begin();iter!=res.end();iter++,rk++)
- {
- PyObject *elt=PyTuple_New(3);
- PyTuple_SetItem(elt,0,SWIG_From_int((*iter).first));
- PyTuple_SetItem(elt,1,SWIG_From_int((*iter).second));
- PyTuple_SetItem(elt,2,SWIG_From_double(res2[rk]));
- PyList_SetItem(ret,rk,elt);
- }
- return ret;
- }
- }
- };
-
- class MEDFileParameters : public RefCountObject, public MEDFileWritableStandAlone
- {
- public:
- static MEDFileParameters *New();
- static MEDFileParameters *New(const std::string& fileName) throw(INTERP_KERNEL::Exception);
- static MEDFileParameters *New(DataArrayByte *db) throw(INTERP_KERNEL::Exception);
- MEDFileParameters *deepCopy() const throw(INTERP_KERNEL::Exception);
- std::vector<std::string> getParamsNames() const throw(INTERP_KERNEL::Exception);
- std::string simpleRepr() const throw(INTERP_KERNEL::Exception);
- void resize(int newSize) throw(INTERP_KERNEL::Exception);
- void pushParam(MEDFileParameterMultiTS *param) throw(INTERP_KERNEL::Exception);
- void setParamAtPos(int i, MEDFileParameterMultiTS *param) throw(INTERP_KERNEL::Exception);
- void destroyParamAtPos(int i) throw(INTERP_KERNEL::Exception);
- int getPosFromParamName(const std::string& paramName) const throw(INTERP_KERNEL::Exception);
- int getNumberOfParams() const throw(INTERP_KERNEL::Exception);
- %extend
- {
- MEDFileParameters()
- {
- return MEDFileParameters::New();
- }
-
- MEDFileParameters(const std::string& fileName)
- {
- return MEDFileParameters::New(fileName);
- }
-
- MEDFileParameters(DataArrayByte *db) throw(INTERP_KERNEL::Exception)
- {
- return MEDFileParameters::New(db);
- }
-
- std::string __str__() const throw(INTERP_KERNEL::Exception)
- {
- return self->simpleRepr();
- }
-
- MEDFileParameterMultiTS *__getitem__(PyObject *obj) throw(INTERP_KERNEL::Exception)
- {
- static const char msg[]="MEDFileParameters::__getitem__ : only integer or string with meshname supported !";
- if(PyInt_Check(obj))
- {
- MEDFileParameterMultiTS *ret=self->getParamAtPos(InterpreteNegativeInt((int)PyInt_AS_LONG(obj),self->getNumberOfParams()));
- if(ret)
- ret->incrRef();
- return ret;
- }
- MEDFileParameterMultiTS *ret(self->getParamWithName(convertPyObjectToStr(obj,msg)));
- if(ret)
- ret->incrRef();
- return ret;
- }
-
- int __len__() const throw(INTERP_KERNEL::Exception)
- {
- return self->getNumberOfParams();
- }
-
- MEDFileParameterMultiTS *getParamAtPos(int i) const throw(INTERP_KERNEL::Exception)
- {
- MEDFileParameterMultiTS *ret=self->getParamAtPos(i);
- if(ret)
- ret->incrRef();
- return ret;
- }
-
- MEDFileParameterMultiTS *getParamWithName(const std::string& paramName) const throw(INTERP_KERNEL::Exception)
- {
- MEDFileParameterMultiTS *ret=self->getParamWithName(paramName);
- if(ret)
- ret->incrRef();
- return ret;
- }
-
- PyObject *isEqual(const MEDFileParameters *other, double eps) const throw(INTERP_KERNEL::Exception)
- {
- std::string what;
- bool ret0=self->isEqual(other,eps,what);
- PyObject *res=PyList_New(2);
- PyObject *ret0Py=ret0?Py_True:Py_False;
- Py_XINCREF(ret0Py);
- PyList_SetItem(res,0,ret0Py);
- PyList_SetItem(res,1,PyString_FromString(what.c_str()));
- return res;
- }
- }
- };
-
- class MEDFileData : public RefCountObject, public MEDFileWritableStandAlone
- {
- public:
- static MEDFileData *New(DataArrayByte *db) throw(INTERP_KERNEL::Exception);
- static MEDFileData *New(const std::string& fileName) throw(INTERP_KERNEL::Exception);
- static MEDFileData *New();
- MEDFileData *deepCopy() const throw(INTERP_KERNEL::Exception);
- void setFields(MEDFileFields *fields) throw(INTERP_KERNEL::Exception);
- void setMeshes(MEDFileMeshes *meshes) throw(INTERP_KERNEL::Exception);
- void setParams(MEDFileParameters *params) throw(INTERP_KERNEL::Exception);
- int getNumberOfFields() const throw(INTERP_KERNEL::Exception);
- int getNumberOfMeshes() const throw(INTERP_KERNEL::Exception);
- int getNumberOfParams() const throw(INTERP_KERNEL::Exception);
- //
- bool changeMeshName(const std::string& oldMeshName, const std::string& newMeshName) throw(INTERP_KERNEL::Exception);
- bool unPolyzeMeshes() throw(INTERP_KERNEL::Exception);
- void dealWithStructureElements() throw(INTERP_KERNEL::Exception);
- std::string getHeader() const throw(INTERP_KERNEL::Exception);
- void setHeader(const std::string& header) throw(INTERP_KERNEL::Exception);
- //
- %extend
- {
- MEDFileData(const std::string& fileName) throw(INTERP_KERNEL::Exception)
- {
- return MEDFileData::New(fileName);
- }
-
- MEDFileData(DataArrayByte *db) throw(INTERP_KERNEL::Exception)
- {
- return MEDFileData::New(db);
- }
-
- MEDFileData()
- {
- return MEDFileData::New();
- }
-
- std::string __str__() const throw(INTERP_KERNEL::Exception)
- {
- return self->simpleRepr();
- }
-
- MEDFileMeshes *getMeshes() const throw(INTERP_KERNEL::Exception)
- {
- MEDFileMeshes *ret=self->getMeshes();
- if(ret)
- ret->incrRef();
- return ret;
- }
-
- MEDFileParameters *getParams() const throw(INTERP_KERNEL::Exception)
- {
- MEDFileParameters *ret=self->getParams();
- if(ret)
- ret->incrRef();
- return ret;
- }
-
- MEDFileFields *getFields() const throw(INTERP_KERNEL::Exception)
- {
- MEDFileFields *ret=self->getFields();
- if(ret)
- ret->incrRef();
- return ret;
- }
-
- bool changeMeshNames(PyObject *li) throw(INTERP_KERNEL::Exception)
- {
- std::vector< std::pair<std::string,std::string> > modifTab=convertVecPairStStFromPy(li);
- return self->changeMeshNames(modifTab);
- }
-
- static MEDFileData *Aggregate(PyObject *mfds) throw(INTERP_KERNEL::Exception)
- {
- std::vector<const MEDFileData *> mfdsCpp;
- convertFromPyObjVectorOfObj<const MEDCoupling::MEDFileData *>(mfds,SWIGTYPE_p_MEDCoupling__MEDFileData,"MEDFileData",mfdsCpp);
- MCAuto<MEDFileData> ret(MEDFileData::Aggregate(mfdsCpp));
- return ret.retn();
- }
- }
- };
-
- class SauvReader : public RefCountObject
- {
- public:
- static SauvReader* New(const std::string& fileName) throw(INTERP_KERNEL::Exception);
- MEDFileData * loadInMEDFileDS() throw(INTERP_KERNEL::Exception);
- %extend
- {
- SauvReader(const std::string& fileName) throw(INTERP_KERNEL::Exception)
- {
- return SauvReader::New(fileName);
- }
- }
- };
-
- class SauvWriter : public RefCountObject
- {
- public:
- static SauvWriter * New();
- void setMEDFileDS(const MEDFileData* medData, unsigned meshIndex = 0) throw(INTERP_KERNEL::Exception);
- void write(const std::string& fileName) throw(INTERP_KERNEL::Exception);
- void setCpyGrpIfOnASingleFamilyStatus(bool status) throw(INTERP_KERNEL::Exception);
- bool getCpyGrpIfOnASingleFamilyStatus() const throw(INTERP_KERNEL::Exception);
- %extend
- {
- SauvWriter() throw(INTERP_KERNEL::Exception)
- {
- return SauvWriter::New();
- }
- }
- };
-
- ///////////////
-
- class MEDFileMeshStruct;
-
- class MEDFileField1TSStructItem
- {
- public:
- static MEDFileField1TSStructItem BuildItemFrom(const MEDFileAnyTypeField1TS *ref, const MEDFileMeshStruct *meshSt) throw(INTERP_KERNEL::Exception);
- };
-
- class MEDFileMeshStruct : public RefCountObject
- {
- public:
- static MEDFileMeshStruct *New(const MEDFileMesh *mesh) throw(INTERP_KERNEL::Exception);
- protected:
- ~MEDFileMeshStruct();
- };
-
- class MEDMeshMultiLev : public RefCountObject
- {
- public:
- virtual MEDMeshMultiLev *prepare() const throw(INTERP_KERNEL::Exception);
- DataArray *buildDataArray(const MEDFileField1TSStructItem& fst, const MEDFileFieldGlobsReal *globs, const DataArray *vals) const throw(INTERP_KERNEL::Exception);
- DataArrayInt *retrieveGlobalNodeIdsIfAny() const throw(INTERP_KERNEL::Exception);
- protected:
- ~MEDMeshMultiLev();
- public:
- %extend
- {
- PyObject *retrieveFamilyIdsOnCells() const throw(INTERP_KERNEL::Exception)
- {
- DataArrayInt *famIds(0);
- bool isWithoutCopy(false);
- self->retrieveFamilyIdsOnCells(famIds,isWithoutCopy);
- PyObject *ret=PyTuple_New(2);
- PyObject *ret1Py=isWithoutCopy?Py_True:Py_False;
- Py_XINCREF(ret1Py);
- PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(famIds),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ));
- PyTuple_SetItem(ret,1,ret1Py);
- return ret;
- }
-
- PyObject *retrieveNumberIdsOnCells() const throw(INTERP_KERNEL::Exception)
- {
- DataArrayInt *numIds(0);
- bool isWithoutCopy(false);
- self->retrieveNumberIdsOnCells(numIds,isWithoutCopy);
- PyObject *ret=PyTuple_New(2);
- PyObject *ret1Py=isWithoutCopy?Py_True:Py_False;
- Py_XINCREF(ret1Py);
- PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(numIds),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ));
- PyTuple_SetItem(ret,1,ret1Py);
- return ret;
- }
-
- PyObject *retrieveFamilyIdsOnNodes() const throw(INTERP_KERNEL::Exception)
- {
- DataArrayInt *famIds(0);
- bool isWithoutCopy(false);
- self->retrieveFamilyIdsOnNodes(famIds,isWithoutCopy);
- PyObject *ret=PyTuple_New(2);
- PyObject *ret1Py=isWithoutCopy?Py_True:Py_False;
- Py_XINCREF(ret1Py);
- PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(famIds),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ));
- PyTuple_SetItem(ret,1,ret1Py);
- return ret;
- }
-
- PyObject *retrieveNumberIdsOnNodes() const throw(INTERP_KERNEL::Exception)
- {
- DataArrayInt *numIds(0);
- bool isWithoutCopy(false);
- self->retrieveNumberIdsOnNodes(numIds,isWithoutCopy);
- PyObject *ret=PyTuple_New(2);
- PyObject *ret1Py=isWithoutCopy?Py_True:Py_False;
- Py_XINCREF(ret1Py);
- PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(numIds),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ));
- PyTuple_SetItem(ret,1,ret1Py);
- return ret;
- }
-
- PyObject *getGeoTypes() const throw(INTERP_KERNEL::Exception)
- {
- std::vector< INTERP_KERNEL::NormalizedCellType > result(self->getGeoTypes());
- std::vector< INTERP_KERNEL::NormalizedCellType >::const_iterator iL(result.begin());
- PyObject *res(PyList_New(result.size()));
- for(int i=0;iL!=result.end(); i++, iL++)
- PyList_SetItem(res,i,PyInt_FromLong(*iL));
- return res;
- }
- }
- };
-
- class MEDUMeshMultiLev : public MEDMeshMultiLev
- {
- protected:
- ~MEDUMeshMultiLev();
- public:
- %extend
- {
- PyObject *buildVTUArrays() const throw(INTERP_KERNEL::Exception)
- {
- DataArrayDouble *coords(0); DataArrayByte *types(0); DataArrayInt *cellLocations(0),*cells(0),*faceLocations(0),*faces(0);
- bool ncc(self->buildVTUArrays(coords,types,cellLocations,cells,faceLocations,faces));
- PyObject *ret0Py=ncc?Py_True:Py_False;
- Py_XINCREF(ret0Py);
- PyObject *ret=PyTuple_New(7);
- PyTuple_SetItem(ret,0,ret0Py);
- PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(coords),SWIGTYPE_p_MEDCoupling__DataArrayDouble, SWIG_POINTER_OWN | 0 ));
- PyTuple_SetItem(ret,2,SWIG_NewPointerObj(SWIG_as_voidptr(types),SWIGTYPE_p_MEDCoupling__DataArrayByte, SWIG_POINTER_OWN | 0 ));
- PyTuple_SetItem(ret,3,SWIG_NewPointerObj(SWIG_as_voidptr(cellLocations),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ));
- PyTuple_SetItem(ret,4,SWIG_NewPointerObj(SWIG_as_voidptr(cells),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ));
- PyTuple_SetItem(ret,5,SWIG_NewPointerObj(SWIG_as_voidptr(faceLocations),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ));
- PyTuple_SetItem(ret,6,SWIG_NewPointerObj(SWIG_as_voidptr(faces),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ));
- return ret;
- }
- }
- };
-
- class MEDStructuredMeshMultiLev : public MEDMeshMultiLev
- {
- protected:
- ~MEDStructuredMeshMultiLev();
- };
-
- class MEDCMeshMultiLev : public MEDStructuredMeshMultiLev
- {
- protected:
- ~MEDCMeshMultiLev();
- public:
- %extend
- {
- PyObject *buildVTUArrays() const throw(INTERP_KERNEL::Exception)
- {
- bool isInternal;
- std::vector< DataArrayDouble * > objs(self->buildVTUArrays(isInternal));
- std::size_t sz(objs.size());
- PyObject *ret(PyTuple_New(2));
- PyObject *ret0=PyList_New(sz);
- for(std::size_t i=0;i<sz;i++)
- PyList_SetItem(ret0,i,SWIG_NewPointerObj(SWIG_as_voidptr(objs[i]),SWIGTYPE_p_MEDCoupling__DataArrayDouble, SWIG_POINTER_OWN | 0 ));
- PyTuple_SetItem(ret,0,ret0);
- PyObject *ret1Py(isInternal?Py_True:Py_False);
- Py_XINCREF(ret1Py);
- PyTuple_SetItem(ret,1,ret1Py);
- return ret;
- }
- }
- };
-
- class MEDCurveLinearMeshMultiLev : public MEDStructuredMeshMultiLev
- {
- protected:
- ~MEDCurveLinearMeshMultiLev();
- public:
- %extend
- {
- PyObject *buildVTUArrays() const throw(INTERP_KERNEL::Exception)
- {
- DataArrayDouble *ret0(0);
- std::vector<int> ret1;
- bool ret2;
- self->buildVTUArrays(ret0,ret1,ret2);
- std::size_t sz(ret1.size());
- PyObject *ret=PyTuple_New(3);
- PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(ret0),SWIGTYPE_p_MEDCoupling__DataArrayDouble, SWIG_POINTER_OWN | 0 ));
- PyObject *ret1Py=PyList_New(sz);
- for(std::size_t i=0;i<sz;i++)
- PyList_SetItem(ret1Py,i,SWIG_From_int(ret1[i]));
- PyTuple_SetItem(ret,1,ret1Py);
- PyObject *ret2Py(ret2?Py_True:Py_False);
- Py_XINCREF(ret2Py);
- PyTuple_SetItem(ret,2,ret2Py);
- return ret;
- }
- }
- };
-
- class MEDFileFastCellSupportComparator : public RefCountObject
- {
- public:
- static MEDFileFastCellSupportComparator *New(const MEDFileMeshStruct *m, const MEDFileAnyTypeFieldMultiTS *ref) throw(INTERP_KERNEL::Exception);
- MEDMeshMultiLev *buildFromScratchDataSetSupport(int timeStepId, const MEDFileFieldGlobsReal *globs) const throw(INTERP_KERNEL::Exception);
- bool isDataSetSupportEqualToThePreviousOne(int timeStepId, const MEDFileFieldGlobsReal *globs) const throw(INTERP_KERNEL::Exception);
- int getNumberOfTS() const throw(INTERP_KERNEL::Exception);
- protected:
- ~MEDFileFastCellSupportComparator();
- public:
- %extend
- {
- PyObject *getGeoTypesAt(int timeStepId, const MEDFileMesh *m) const throw(INTERP_KERNEL::Exception)
- {
- std::vector< INTERP_KERNEL::NormalizedCellType > result(self->getGeoTypesAt(timeStepId,m));
- std::vector< INTERP_KERNEL::NormalizedCellType >::const_iterator iL(result.begin());
- PyObject *res(PyList_New(result.size()));
- for(int i=0;iL!=result.end(); i++, iL++)
- PyList_SetItem(res,i,PyInt_FromLong(*iL));
- return res;
- }
- }
- };
-}