]> SALOME platform Git repositories - tools/medcoupling.git/commitdiff
Salome HOME
Merge from V6_5_BR 05/06/2012
authorvsr <vsr@opencascade.com>
Tue, 5 Jun 2012 11:55:41 +0000 (11:55 +0000)
committervsr <vsr@opencascade.com>
Tue, 5 Jun 2012 11:55:41 +0000 (11:55 +0000)
629 files changed:
CMakeLists.txt
adm_local/CMakeLists.txt
adm_local/cmake_files/CMakeLists.txt
adm_local/unix/config_files/renumber.m4
bin/CMakeLists.txt
doc/CMakeLists.txt
doc/MEDMEM/FIELDcreate.cxx
doc/MEDMEM/FIELDcreate.py
doc/MEDMEM/FIELDgeneral.cxx
doc/MEDMEM/FIELDgeneral.py
doc/MEDMEM/MEDMEM_InvokingDriverAtObjectCreationTime.cxx
doc/MEDMEM/MEDMEM_InvokingDriverAtObjectCreationTime.py
doc/MEDMEM/MEDMEM_InvokingDriverByAttachingItToAnObject.cxx
doc/MEDMEM/MEDMEM_InvokingDriverByAttachingItToAnObject.py
doc/MEDMEM/MEDMEM_InvokingDriverFromStandardObjectMethod.cxx
doc/MEDMEM/MEDMEM_InvokingDriverFromStandardObjectMethod.py
doc/MEDMEM/MESHINGexample.cxx
doc/MEDMEM/MESHINGexample.py
doc/MEDMEM/MESHconnectivities.cxx
doc/MEDMEM/MESHconnectivities.py
doc/MEDMEM/MESHcoordinates.cxx
doc/MEDMEM/MESHcoordinates.py
doc/MEDMEM/MESHgeneral.cxx
doc/MEDMEM/MESHgeneral.py
doc/MEDMEM/Makefile.am
doc/Makefile.am
doc/doxygen/BuildPyExamplesFromCPP.py
doc/doxygen/CMakeLists.txt
doc/doxygen/Doxyfile_med_user.in
doc/doxygen/Makefile.am
doc/doxygen/static/footer.html
doc/salome/CMakeLists.txt
doc/salome/Makefile.am
doc/salome/tui/CMakeLists.txt
doc/salome/tui/Makefile.am
doc/salome/tui/doxyfile.in
doc/salome/tui/static/footer.html
idl/CMakeLists.txt
resources/CMakeLists.txt
src/CMakeLists.txt
src/INTERP_KERNEL/BBTree.txx
src/INTERP_KERNEL/Bases/InterpKernelAutoPtr.hxx
src/INTERP_KERNEL/Bases/InterpKernelException.cxx
src/INTERP_KERNEL/Bases/InterpKernelException.hxx
src/INTERP_KERNEL/Bases/InterpKernelStlExt.hxx
src/INTERP_KERNEL/Bases/NormalizedUnstructuredMesh.hxx
src/INTERP_KERNEL/BoundingBox.cxx
src/INTERP_KERNEL/BoundingBox.hxx
src/INTERP_KERNEL/CMakeLists.txt
src/INTERP_KERNEL/CellModel.cxx
src/INTERP_KERNEL/CellModel.hxx
src/INTERP_KERNEL/ConvexIntersector.hxx
src/INTERP_KERNEL/ConvexIntersector.txx
src/INTERP_KERNEL/CurveIntersector.hxx
src/INTERP_KERNEL/CurveIntersector.txx
src/INTERP_KERNEL/CurveIntersectorP0P0.hxx
src/INTERP_KERNEL/CurveIntersectorP0P0.txx
src/INTERP_KERNEL/CurveIntersectorP0P1.hxx
src/INTERP_KERNEL/CurveIntersectorP0P1.txx
src/INTERP_KERNEL/CurveIntersectorP1P0.hxx
src/INTERP_KERNEL/CurveIntersectorP1P0.txx
src/INTERP_KERNEL/CurveIntersectorP1P1.hxx
src/INTERP_KERNEL/CurveIntersectorP1P1.txx
src/INTERP_KERNEL/DirectedBoundingBox.cxx
src/INTERP_KERNEL/DirectedBoundingBox.hxx
src/INTERP_KERNEL/ExprEval/InterpKernelAsmX86.cxx
src/INTERP_KERNEL/ExprEval/InterpKernelAsmX86.hxx
src/INTERP_KERNEL/ExprEval/InterpKernelExprParser.cxx
src/INTERP_KERNEL/ExprEval/InterpKernelExprParser.hxx
src/INTERP_KERNEL/ExprEval/InterpKernelFunction.cxx
src/INTERP_KERNEL/ExprEval/InterpKernelFunction.hxx
src/INTERP_KERNEL/ExprEval/InterpKernelUnit.cxx
src/INTERP_KERNEL/ExprEval/InterpKernelUnit.hxx
src/INTERP_KERNEL/ExprEval/InterpKernelValue.cxx
src/INTERP_KERNEL/ExprEval/InterpKernelValue.hxx
src/INTERP_KERNEL/GaussPoints/InterpKernelGaussCoords.cxx
src/INTERP_KERNEL/GaussPoints/InterpKernelGaussCoords.hxx
src/INTERP_KERNEL/GenMathFormulae.hxx
src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DAbstractEdge.cxx
src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DAbstractEdge.hxx
src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DBounds.cxx
src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DBounds.hxx
src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DComposedEdge.cxx
src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DComposedEdge.hxx
src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DEdge.cxx
src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DEdge.hxx
src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DEdge.txx
src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DEdgeArcCircle.cxx
src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DEdgeArcCircle.hxx
src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DEdgeInfLin.cxx
src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DEdgeInfLin.hxx
src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DEdgeLin.cxx
src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DEdgeLin.hxx
src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DElementaryEdge.cxx
src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DElementaryEdge.hxx
src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DNode.cxx
src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DNode.hxx
src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DPrecision.cxx
src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DPrecision.hxx
src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DQuadraticPolygon.cxx
src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DQuadraticPolygon.hxx
src/INTERP_KERNEL/Geometric2DIntersector.hxx
src/INTERP_KERNEL/Geometric2DIntersector.txx
src/INTERP_KERNEL/INTERPKERNELDefines.hxx
src/INTERP_KERNEL/IntegralUniformIntersector.hxx
src/INTERP_KERNEL/IntegralUniformIntersector.txx
src/INTERP_KERNEL/InterpKernelCellSimplify.cxx
src/INTERP_KERNEL/InterpKernelCellSimplify.hxx
src/INTERP_KERNEL/InterpKernelMatrix.hxx
src/INTERP_KERNEL/InterpKernelMeshQuality.cxx
src/INTERP_KERNEL/InterpKernelMeshQuality.hxx
src/INTERP_KERNEL/InterpKernelUtilities.hxx
src/INTERP_KERNEL/Interpolation.hxx
src/INTERP_KERNEL/Interpolation.txx
src/INTERP_KERNEL/Interpolation1D.hxx
src/INTERP_KERNEL/Interpolation1D.txx
src/INTERP_KERNEL/Interpolation2D.hxx
src/INTERP_KERNEL/Interpolation2D.txx
src/INTERP_KERNEL/Interpolation2D1D.hxx
src/INTERP_KERNEL/Interpolation2D1D.txx
src/INTERP_KERNEL/Interpolation2DCurve.cxx
src/INTERP_KERNEL/Interpolation2DCurve.hxx
src/INTERP_KERNEL/Interpolation3D.cxx
src/INTERP_KERNEL/Interpolation3D.hxx
src/INTERP_KERNEL/Interpolation3D.txx
src/INTERP_KERNEL/Interpolation3D2D.cxx
src/INTERP_KERNEL/Interpolation3D2D.hxx
src/INTERP_KERNEL/Interpolation3D2D.txx
src/INTERP_KERNEL/Interpolation3DSurf.cxx
src/INTERP_KERNEL/Interpolation3DSurf.hxx
src/INTERP_KERNEL/InterpolationCC.hxx
src/INTERP_KERNEL/InterpolationCC.txx
src/INTERP_KERNEL/InterpolationCU.hxx
src/INTERP_KERNEL/InterpolationCU.txx
src/INTERP_KERNEL/InterpolationCurve.hxx
src/INTERP_KERNEL/InterpolationCurve.txx
src/INTERP_KERNEL/InterpolationOptions.cxx
src/INTERP_KERNEL/InterpolationOptions.hxx
src/INTERP_KERNEL/InterpolationPlanar.hxx
src/INTERP_KERNEL/InterpolationPlanar.txx
src/INTERP_KERNEL/InterpolationUtils.hxx
src/INTERP_KERNEL/Intersector3D.hxx
src/INTERP_KERNEL/Intersector3D.txx
src/INTERP_KERNEL/Intersector3DP0P0.hxx
src/INTERP_KERNEL/Intersector3DP0P0.txx
src/INTERP_KERNEL/Intersector3DP0P1.hxx
src/INTERP_KERNEL/Intersector3DP0P1.txx
src/INTERP_KERNEL/Intersector3DP1P0.hxx
src/INTERP_KERNEL/Intersector3DP1P0.txx
src/INTERP_KERNEL/Intersector3DP1P0Bary.hxx
src/INTERP_KERNEL/Intersector3DP1P0Bary.txx
src/INTERP_KERNEL/Intersector3DP1P1.hxx
src/INTERP_KERNEL/Intersector3DP1P1.txx
src/INTERP_KERNEL/IntersectorCU.hxx
src/INTERP_KERNEL/IntersectorCU.txx
src/INTERP_KERNEL/IntersectorCU1D.hxx
src/INTERP_KERNEL/IntersectorCU1D.txx
src/INTERP_KERNEL/IntersectorCU2D.hxx
src/INTERP_KERNEL/IntersectorCU2D.txx
src/INTERP_KERNEL/IntersectorCU3D.hxx
src/INTERP_KERNEL/IntersectorCU3D.txx
src/INTERP_KERNEL/Log.hxx
src/INTERP_KERNEL/Makefile.am
src/INTERP_KERNEL/MeshElement.cxx
src/INTERP_KERNEL/MeshElement.hxx
src/INTERP_KERNEL/MeshElement.txx
src/INTERP_KERNEL/MeshRegion.hxx
src/INTERP_KERNEL/MeshRegion.txx
src/INTERP_KERNEL/MeshUtils.hxx
src/INTERP_KERNEL/Planar2D1DIntersectorP0P0.hxx
src/INTERP_KERNEL/Planar2D1DIntersectorP0P0.txx
src/INTERP_KERNEL/PlanarIntersector.hxx
src/INTERP_KERNEL/PlanarIntersector.txx
src/INTERP_KERNEL/PlanarIntersectorP0P0.hxx
src/INTERP_KERNEL/PlanarIntersectorP0P0.txx
src/INTERP_KERNEL/PlanarIntersectorP0P1.hxx
src/INTERP_KERNEL/PlanarIntersectorP0P1.txx
src/INTERP_KERNEL/PlanarIntersectorP0P1PL.hxx
src/INTERP_KERNEL/PlanarIntersectorP0P1PL.txx
src/INTERP_KERNEL/PlanarIntersectorP1P0.hxx
src/INTERP_KERNEL/PlanarIntersectorP1P0.txx
src/INTERP_KERNEL/PlanarIntersectorP1P0Bary.hxx
src/INTERP_KERNEL/PlanarIntersectorP1P0Bary.txx
src/INTERP_KERNEL/PlanarIntersectorP1P0PL.hxx
src/INTERP_KERNEL/PlanarIntersectorP1P0PL.txx
src/INTERP_KERNEL/PlanarIntersectorP1P1.hxx
src/INTERP_KERNEL/PlanarIntersectorP1P1.txx
src/INTERP_KERNEL/PlanarIntersectorP1P1PL.hxx
src/INTERP_KERNEL/PlanarIntersectorP1P1PL.txx
src/INTERP_KERNEL/PointLocator2DIntersector.hxx
src/INTERP_KERNEL/PointLocator2DIntersector.txx
src/INTERP_KERNEL/PointLocator3DIntersectorP0P0.hxx
src/INTERP_KERNEL/PointLocator3DIntersectorP0P0.txx
src/INTERP_KERNEL/PointLocator3DIntersectorP0P1.hxx
src/INTERP_KERNEL/PointLocator3DIntersectorP0P1.txx
src/INTERP_KERNEL/PointLocator3DIntersectorP1P0.hxx
src/INTERP_KERNEL/PointLocator3DIntersectorP1P0.txx
src/INTERP_KERNEL/PointLocator3DIntersectorP1P1.hxx
src/INTERP_KERNEL/PointLocator3DIntersectorP1P1.txx
src/INTERP_KERNEL/PointLocatorAlgos.txx
src/INTERP_KERNEL/PolygonAlgorithms.hxx
src/INTERP_KERNEL/PolygonAlgorithms.txx
src/INTERP_KERNEL/Polyhedron3D2DIntersectorP0P0.hxx
src/INTERP_KERNEL/Polyhedron3D2DIntersectorP0P0.txx
src/INTERP_KERNEL/PolyhedronIntersectorP0P0.hxx
src/INTERP_KERNEL/PolyhedronIntersectorP0P0.txx
src/INTERP_KERNEL/PolyhedronIntersectorP0P1.hxx
src/INTERP_KERNEL/PolyhedronIntersectorP0P1.txx
src/INTERP_KERNEL/PolyhedronIntersectorP1P0.hxx
src/INTERP_KERNEL/PolyhedronIntersectorP1P0.txx
src/INTERP_KERNEL/PolyhedronIntersectorP1P0Bary.hxx
src/INTERP_KERNEL/PolyhedronIntersectorP1P0Bary.txx
src/INTERP_KERNEL/PolyhedronIntersectorP1P1.hxx
src/INTERP_KERNEL/PolyhedronIntersectorP1P1.txx
src/INTERP_KERNEL/RegionNode.hxx
src/INTERP_KERNEL/SplitterTetra.hxx
src/INTERP_KERNEL/SplitterTetra.txx
src/INTERP_KERNEL/TargetIntersector.hxx
src/INTERP_KERNEL/TetraAffineTransform.cxx
src/INTERP_KERNEL/TetraAffineTransform.hxx
src/INTERP_KERNEL/TransformedTriangle.cxx
src/INTERP_KERNEL/TransformedTriangle.hxx
src/INTERP_KERNEL/TransformedTriangleInline.hxx
src/INTERP_KERNEL/TransformedTriangleIntersect.cxx
src/INTERP_KERNEL/TransformedTriangleMath.cxx
src/INTERP_KERNEL/TranslationRotationMatrix.cxx
src/INTERP_KERNEL/TranslationRotationMatrix.hxx
src/INTERP_KERNEL/TriangulationIntersector.hxx
src/INTERP_KERNEL/TriangulationIntersector.txx
src/INTERP_KERNEL/UnitTetraIntersectionBary.cxx
src/INTERP_KERNEL/UnitTetraIntersectionBary.hxx
src/INTERP_KERNEL/VTKNormalizedUnstructuredMesh.hxx
src/INTERP_KERNEL/VTKNormalizedUnstructuredMesh.txx
src/INTERP_KERNEL/VectorUtils.hxx
src/INTERP_KERNEL/VolSurfFormulae.hxx
src/INTERP_KERNEL/VolSurfUser.hxx
src/INTERP_KERNEL/VolSurfUser.txx
src/INTERP_KERNELTest/BBTreeTest.cxx
src/INTERP_KERNELTest/BBTreeTest.hxx
src/INTERP_KERNELTest/BasicMainTest.hxx
src/INTERP_KERNELTest/CMakeLists.txt
src/INTERP_KERNELTest/CppUnitTest.cxx
src/INTERP_KERNELTest/CppUnitTest.hxx
src/INTERP_KERNELTest/ExprEvalInterpTest.cxx
src/INTERP_KERNELTest/ExprEvalInterpTest.hxx
src/INTERP_KERNELTest/HexaTests.hxx
src/INTERP_KERNELTest/InterpKernelTestExport.hxx
src/INTERP_KERNELTest/Interpolation3DTest.cxx
src/INTERP_KERNELTest/Interpolation3DTest.hxx
src/INTERP_KERNELTest/InterpolationOptionsTest.cxx
src/INTERP_KERNELTest/InterpolationOptionsTest.hxx
src/INTERP_KERNELTest/InterpolationPlanarTestSuite.hxx
src/INTERP_KERNELTest/InterpolationTestSuite.hxx
src/INTERP_KERNELTest/MEDMeshMaker.cxx
src/INTERP_KERNELTest/MEDMeshMaker.hxx
src/INTERP_KERNELTest/Makefile.am
src/INTERP_KERNELTest/MeshTestToolkit.hxx
src/INTERP_KERNELTest/MeshTestToolkit.txx
src/INTERP_KERNELTest/MultiElement2DTests.hxx
src/INTERP_KERNELTest/MultiElement3DSurfTests.hxx
src/INTERP_KERNELTest/MultiElementTetraTests.hxx
src/INTERP_KERNELTest/PerfTest.cxx
src/INTERP_KERNELTest/PointLocatorTest.cxx
src/INTERP_KERNELTest/PointLocatorTest.hxx
src/INTERP_KERNELTest/QuadraticPlanarInterpTest.cxx
src/INTERP_KERNELTest/QuadraticPlanarInterpTest.hxx
src/INTERP_KERNELTest/QuadraticPlanarInterpTest2.cxx
src/INTERP_KERNELTest/QuadraticPlanarInterpTest3.cxx
src/INTERP_KERNELTest/QuadraticPlanarInterpTest4.cxx
src/INTERP_KERNELTest/QuadraticPlanarInterpTest5.cxx
src/INTERP_KERNELTest/RemapperTest.cxx
src/INTERP_KERNELTest/SingleElementPlanarTests.cxx
src/INTERP_KERNELTest/SingleElementPlanarTests.hxx
src/INTERP_KERNELTest/SingleElementTetraTests.hxx
src/INTERP_KERNELTest/TestInterpKernel.cxx
src/INTERP_KERNELTest/TestInterpKernelUtils.cxx
src/INTERP_KERNELTest/TestInterpKernelUtils.hxx
src/INTERP_KERNELTest/TestingUtils.hxx
src/INTERP_KERNELTest/TransformedTriangleIntersectTest.cxx
src/INTERP_KERNELTest/TransformedTriangleIntersectTest.hxx
src/INTERP_KERNELTest/TransformedTriangleTest.cxx
src/INTERP_KERNELTest/TransformedTriangleTest.hxx
src/INTERP_KERNELTest/UnitTetra3D2DIntersectionTest.cxx
src/INTERP_KERNELTest/UnitTetra3D2DIntersectionTest.hxx
src/INTERP_KERNELTest/UnitTetraIntersectionBaryTest.cxx
src/INTERP_KERNELTest/UnitTetraIntersectionBaryTest.hxx
src/INTERP_KERNELTest/perf_test.py
src/INTERP_KERNELTest/perf_test.sh
src/MED/CMakeLists.txt
src/MEDCalculator/CMakeLists.txt
src/MEDCalculator/Swig/CMakeLists.txt
src/MEDCalculator/Test/CMakeLists.txt
src/MEDCoupling/CMakeLists.txt
src/MEDCoupling/MEDCoupling.hxx
src/MEDCoupling/MEDCouplingAutoRefCountObjectPtr.hxx
src/MEDCoupling/MEDCouplingCMesh.cxx
src/MEDCoupling/MEDCouplingCMesh.hxx
src/MEDCoupling/MEDCouplingDefinitionTime.cxx
src/MEDCoupling/MEDCouplingDefinitionTime.hxx
src/MEDCoupling/MEDCouplingExtrudedMesh.cxx
src/MEDCoupling/MEDCouplingExtrudedMesh.hxx
src/MEDCoupling/MEDCouplingField.cxx
src/MEDCoupling/MEDCouplingField.hxx
src/MEDCoupling/MEDCouplingFieldDiscretization.cxx
src/MEDCoupling/MEDCouplingFieldDiscretization.hxx
src/MEDCoupling/MEDCouplingFieldDouble.cxx
src/MEDCoupling/MEDCouplingFieldDouble.hxx
src/MEDCoupling/MEDCouplingFieldOverTime.cxx
src/MEDCoupling/MEDCouplingFieldOverTime.hxx
src/MEDCoupling/MEDCouplingFieldTemplate.cxx
src/MEDCoupling/MEDCouplingFieldTemplate.hxx
src/MEDCoupling/MEDCouplingGaussLocalization.cxx
src/MEDCoupling/MEDCouplingGaussLocalization.hxx
src/MEDCoupling/MEDCouplingMemArray.cxx
src/MEDCoupling/MEDCouplingMemArray.hxx
src/MEDCoupling/MEDCouplingMemArray.txx
src/MEDCoupling/MEDCouplingMesh.cxx
src/MEDCoupling/MEDCouplingMesh.hxx
src/MEDCoupling/MEDCouplingMultiFields.cxx
src/MEDCoupling/MEDCouplingMultiFields.hxx
src/MEDCoupling/MEDCouplingNatureOfField.cxx
src/MEDCoupling/MEDCouplingNatureOfField.hxx
src/MEDCoupling/MEDCouplingNormalizedCartesianMesh.hxx
src/MEDCoupling/MEDCouplingNormalizedCartesianMesh.txx
src/MEDCoupling/MEDCouplingNormalizedUnstructuredMesh.hxx
src/MEDCoupling/MEDCouplingNormalizedUnstructuredMesh.txx
src/MEDCoupling/MEDCouplingPointSet.cxx
src/MEDCoupling/MEDCouplingPointSet.hxx
src/MEDCoupling/MEDCouplingPointSet.txx
src/MEDCoupling/MEDCouplingRefCountObject.cxx
src/MEDCoupling/MEDCouplingRefCountObject.hxx
src/MEDCoupling/MEDCouplingRemapper.cxx
src/MEDCoupling/MEDCouplingRemapper.hxx
src/MEDCoupling/MEDCouplingTimeDiscretization.cxx
src/MEDCoupling/MEDCouplingTimeDiscretization.hxx
src/MEDCoupling/MEDCouplingTimeLabel.cxx
src/MEDCoupling/MEDCouplingTimeLabel.hxx
src/MEDCoupling/MEDCouplingUMesh.cxx
src/MEDCoupling/MEDCouplingUMesh.hxx
src/MEDCoupling/MEDCouplingUMeshDesc.cxx
src/MEDCoupling/MEDCouplingUMeshDesc.hxx
src/MEDCoupling/Makefile.am
src/MEDCoupling/Test/CMakeLists.txt
src/MEDCoupling/Test/MEDCouplingBasicsTest.hxx
src/MEDCoupling/Test/MEDCouplingBasicsTest0.cxx
src/MEDCoupling/Test/MEDCouplingBasicsTest1.cxx
src/MEDCoupling/Test/MEDCouplingBasicsTest1.hxx
src/MEDCoupling/Test/MEDCouplingBasicsTest2.cxx
src/MEDCoupling/Test/MEDCouplingBasicsTest2.hxx
src/MEDCoupling/Test/MEDCouplingBasicsTest3.cxx
src/MEDCoupling/Test/MEDCouplingBasicsTest3.hxx
src/MEDCoupling/Test/MEDCouplingBasicsTest4.cxx
src/MEDCoupling/Test/MEDCouplingBasicsTest4.hxx
src/MEDCoupling/Test/MEDCouplingBasicsTest5.cxx
src/MEDCoupling/Test/MEDCouplingBasicsTest5.hxx
src/MEDCoupling/Test/MEDCouplingBasicsTestData1.hxx
src/MEDCoupling/Test/MEDCouplingBasicsTestInterp.cxx
src/MEDCoupling/Test/MEDCouplingBasicsTestInterp.hxx
src/MEDCoupling/Test/MEDCouplingExamplesTest.cxx
src/MEDCoupling/Test/MEDCouplingRemapperTest.cxx
src/MEDCoupling/Test/MEDCouplingRemapperTest.hxx
src/MEDCoupling/Test/Makefile.am
src/MEDCoupling/Test/TestMEDCoupling.cxx
src/MEDCoupling/Test/TestMEDCouplingRemapper.cxx
src/MEDCouplingCorba/CMakeLists.txt
src/MEDCouplingCorba/Client/CMakeLists.txt
src/MEDCouplingCorba/Test/CMakeLists.txt
src/MEDCouplingCorba_Swig/CMakeLists.txt
src/MEDCouplingCorba_Swig/Client/CMakeLists.txt
src/MEDCoupling_Swig/CMakeLists.txt
src/MEDCoupling_Swig/MEDCoupling.i
src/MEDCoupling_Swig/MEDCouplingBasicsTest.py
src/MEDCoupling_Swig/MEDCouplingDataForTest.py
src/MEDCoupling_Swig/MEDCouplingExamplesTest.py
src/MEDCoupling_Swig/MEDCouplingRemapper.i
src/MEDCoupling_Swig/MEDCouplingRemapperTest.py
src/MEDCoupling_Swig/MEDCouplingTypemaps.i
src/MEDCoupling_Swig/Makefile.am
src/MEDCoupling_Swig/libMEDCoupling_Swig.py
src/MEDGUI/CMakeLists.txt
src/MEDLoader/CMakeLists.txt
src/MEDLoader/MEDFileBasis.cxx
src/MEDLoader/MEDFileBasis.hxx
src/MEDLoader/MEDFileData.cxx
src/MEDLoader/MEDFileData.hxx
src/MEDLoader/MEDFileField.cxx
src/MEDLoader/MEDFileField.hxx
src/MEDLoader/MEDFileMesh.cxx
src/MEDLoader/MEDFileMesh.hxx
src/MEDLoader/MEDFileMeshElt.cxx
src/MEDLoader/MEDFileMeshElt.hxx
src/MEDLoader/MEDFileMeshLL.cxx
src/MEDLoader/MEDFileMeshLL.hxx
src/MEDLoader/MEDFileUtilities.cxx
src/MEDLoader/MEDFileUtilities.hxx
src/MEDLoader/MEDLoader.cxx
src/MEDLoader/MEDLoader.hxx
src/MEDLoader/MEDLoaderBase.cxx
src/MEDLoader/MEDLoaderBase.hxx
src/MEDLoader/MEDLoaderDefines.hxx
src/MEDLoader/Makefile.am
src/MEDLoader/SauvMedConvertor.cxx
src/MEDLoader/SauvMedConvertor.hxx
src/MEDLoader/SauvReader.cxx
src/MEDLoader/SauvReader.hxx
src/MEDLoader/SauvUtilities.hxx
src/MEDLoader/SauvWriter.cxx
src/MEDLoader/SauvWriter.hxx
src/MEDLoader/Swig/CMakeLists.txt
src/MEDLoader/Swig/MEDLoader.i
src/MEDLoader/Swig/MEDLoaderDataForTest.py
src/MEDLoader/Swig/MEDLoaderTest.py
src/MEDLoader/Swig/MEDLoaderTest2.py
src/MEDLoader/Swig/MEDLoaderTest3.py
src/MEDLoader/Swig/MEDLoaderTypemaps.i
src/MEDLoader/Swig/Makefile.am
src/MEDLoader/Swig/SauvLoaderTest.py
src/MEDLoader/Swig/libMEDLoader_Swig.py
src/MEDLoader/Test/CMakeLists.txt
src/MEDLoader/Test/MEDLoaderTest.cxx
src/MEDLoader/Test/MEDLoaderTest.hxx
src/MEDLoader/Test/Makefile.am
src/MEDLoader/Test/SauvLoaderTest.cxx
src/MEDLoader/Test/SauvLoaderTest.hxx
src/MEDLoader/Test/TestMEDLoader.cxx
src/MEDLoader/Test/TestSauvLoader.cxx
src/MEDMEM/CMakeLists.txt
src/MEDMEMBinTest/CMakeLists.txt
src/MEDMEMCppTest/CMakeLists.txt
src/MEDMEM_I/CMakeLists.txt
src/MEDMEM_SWIG/CMakeLists.txt
src/MEDPartitioner/CMakeLists.txt
src/MEDPartitioner/MEDPARTITIONER.hxx
src/MEDPartitioner/MEDPARTITIONER_ConnectZone.cxx
src/MEDPartitioner/MEDPARTITIONER_ConnectZone.hxx
src/MEDPartitioner/MEDPARTITIONER_Graph.cxx
src/MEDPartitioner/MEDPARTITIONER_Graph.hxx
src/MEDPartitioner/MEDPARTITIONER_JointFinder.cxx
src/MEDPartitioner/MEDPARTITIONER_JointFinder.hxx
src/MEDPartitioner/MEDPARTITIONER_MeshCollection.cxx
src/MEDPartitioner/MEDPARTITIONER_MeshCollection.hxx
src/MEDPartitioner/MEDPARTITIONER_MeshCollectionDriver.cxx
src/MEDPartitioner/MEDPARTITIONER_MeshCollectionDriver.hxx
src/MEDPartitioner/MEDPARTITIONER_MeshCollectionMedAsciiDriver.cxx
src/MEDPartitioner/MEDPARTITIONER_MeshCollectionMedAsciiDriver.hxx
src/MEDPartitioner/MEDPARTITIONER_MeshCollectionMedXmlDriver.cxx
src/MEDPartitioner/MEDPARTITIONER_MeshCollectionMedXmlDriver.hxx
src/MEDPartitioner/MEDPARTITIONER_MetisGraph.cxx
src/MEDPartitioner/MEDPARTITIONER_MetisGraph.hxx
src/MEDPartitioner/MEDPARTITIONER_ParMetisGraph.cxx
src/MEDPartitioner/MEDPARTITIONER_ParaDomainSelector.cxx
src/MEDPartitioner/MEDPARTITIONER_ParaDomainSelector.hxx
src/MEDPartitioner/MEDPARTITIONER_ParallelTopology.cxx
src/MEDPartitioner/MEDPARTITIONER_ParallelTopology.hxx
src/MEDPartitioner/MEDPARTITIONER_ScotchGraph.cxx
src/MEDPartitioner/MEDPARTITIONER_ScotchGraph.hxx
src/MEDPartitioner/MEDPARTITIONER_SkyLineArray.cxx
src/MEDPartitioner/MEDPARTITIONER_SkyLineArray.hxx
src/MEDPartitioner/MEDPARTITIONER_Topology.hxx
src/MEDPartitioner/MEDPARTITIONER_UserGraph.cxx
src/MEDPartitioner/MEDPARTITIONER_UserGraph.hxx
src/MEDPartitioner/MEDPARTITIONER_Utils.cxx
src/MEDPartitioner/MEDPARTITIONER_Utils.hxx
src/MEDPartitioner/MEDPARTITIONER_UtilsPara.cxx
src/MEDPartitioner/Makefile.am
src/MEDPartitioner/Test/CMakeLists.txt
src/MEDPartitioner/Test/MEDPARTITIONERTest.cxx
src/MEDPartitioner/Test/MEDPARTITIONERTest.hxx
src/MEDPartitioner/Test/MEDPARTITIONERTestPara.cxx
src/MEDPartitioner/Test/Makefile.am
src/MEDPartitioner/Test/TestMEDPARTITIONER.cxx
src/MEDPartitioner/medpartitioner.cxx
src/MEDPartitioner/medpartitioner_para.cxx
src/MEDSPLITTER/CMakeLists.txt
src/MEDSPLITTER/Test/CMakeLists.txt
src/MEDSPLITTER_Swig/CMakeLists.txt
src/MEDWrapper/Base/CMakeLists.txt
src/MEDWrapper/CMakeLists.txt
src/MEDWrapper/Factory/CMakeLists.txt
src/MEDWrapper/V2_1/CMakeLists.txt
src/MEDWrapper/V2_1/Core/CMakeLists.txt
src/MEDWrapper/V2_1/Wrapper/CMakeLists.txt
src/MEDWrapper/V2_2/CMakeLists.txt
src/MED_SWIG/CMakeLists.txt
src/MedClient/CMakeLists.txt
src/MedClient/src/CMakeLists.txt
src/MedClient/test/CMakeLists.txt
src/MedClient/test/environ/CMakeLists.txt
src/MedClient/test/environ/csh/CMakeLists.txt
src/MedClient/test/test1/CMakeLists.txt
src/MedClient/test/test2/CMakeLists.txt
src/MedCorba_Swig/CMakeLists.txt
src/ParaMEDCouplingCorba/CMakeLists.txt
src/ParaMEDLoader/CMakeLists.txt
src/ParaMEDLoader/Makefile.am
src/ParaMEDLoader/ParaMEDLoader.cxx
src/ParaMEDLoader/ParaMEDLoader.hxx
src/ParaMEDMEM/BlockTopology.cxx
src/ParaMEDMEM/BlockTopology.hxx
src/ParaMEDMEM/CMakeLists.txt
src/ParaMEDMEM/CommInterface.cxx
src/ParaMEDMEM/CommInterface.hxx
src/ParaMEDMEM/ComponentTopology.cxx
src/ParaMEDMEM/ComponentTopology.hxx
src/ParaMEDMEM/DEC.cxx
src/ParaMEDMEM/DEC.hxx
src/ParaMEDMEM/DECOptions.hxx
src/ParaMEDMEM/DisjointDEC.cxx
src/ParaMEDMEM/DisjointDEC.hxx
src/ParaMEDMEM/ElementLocator.cxx
src/ParaMEDMEM/ElementLocator.hxx
src/ParaMEDMEM/ExplicitCoincidentDEC.cxx
src/ParaMEDMEM/ExplicitCoincidentDEC.hxx
src/ParaMEDMEM/ExplicitMapping.hxx
src/ParaMEDMEM/ExplicitTopology.cxx
src/ParaMEDMEM/ExplicitTopology.hxx
src/ParaMEDMEM/ICoCoField.cxx
src/ParaMEDMEM/ICoCoField.hxx
src/ParaMEDMEM/ICoCoMEDField.cxx
src/ParaMEDMEM/ICoCoMEDField.hxx
src/ParaMEDMEM/ICoCoTrioField.cxx
src/ParaMEDMEM/ICoCoTrioField.hxx
src/ParaMEDMEM/InterpKernelDEC.cxx
src/ParaMEDMEM/InterpKernelDEC.hxx
src/ParaMEDMEM/InterpolationMatrix.cxx
src/ParaMEDMEM/InterpolationMatrix.hxx
src/ParaMEDMEM/LinearTimeInterpolator.cxx
src/ParaMEDMEM/LinearTimeInterpolator.hxx
src/ParaMEDMEM/MPIAccess.cxx
src/ParaMEDMEM/MPIAccess.hxx
src/ParaMEDMEM/MPIAccessDEC.cxx
src/ParaMEDMEM/MPIAccessDEC.hxx
src/ParaMEDMEM/MPIProcessorGroup.cxx
src/ParaMEDMEM/MPIProcessorGroup.hxx
src/ParaMEDMEM/Makefile.am
src/ParaMEDMEM/MxN_Mapping.cxx
src/ParaMEDMEM/MxN_Mapping.hxx
src/ParaMEDMEM/NonCoincidentDEC.cxx
src/ParaMEDMEM/NonCoincidentDEC.hxx
src/ParaMEDMEM/OverlapDEC.cxx
src/ParaMEDMEM/OverlapDEC.hxx
src/ParaMEDMEM/OverlapElementLocator.cxx
src/ParaMEDMEM/OverlapElementLocator.hxx
src/ParaMEDMEM/OverlapInterpolationMatrix.cxx
src/ParaMEDMEM/OverlapInterpolationMatrix.hxx
src/ParaMEDMEM/OverlapMapping.cxx
src/ParaMEDMEM/OverlapMapping.hxx
src/ParaMEDMEM/ParaFIELD.cxx
src/ParaMEDMEM/ParaFIELD.hxx
src/ParaMEDMEM/ParaGRID.cxx
src/ParaMEDMEM/ParaGRID.hxx
src/ParaMEDMEM/ParaMESH.cxx
src/ParaMEDMEM/ParaMESH.hxx
src/ParaMEDMEM/ProcessorGroup.cxx
src/ParaMEDMEM/ProcessorGroup.hxx
src/ParaMEDMEM/StructuredCoincidentDEC.cxx
src/ParaMEDMEM/StructuredCoincidentDEC.hxx
src/ParaMEDMEM/TimeInterpolator.cxx
src/ParaMEDMEM/TimeInterpolator.hxx
src/ParaMEDMEM/Topology.cxx
src/ParaMEDMEM/Topology.hxx
src/ParaMEDMEMComponent/CMakeLists.txt
src/ParaMEDMEMTest/CMakeLists.txt
src/ParaMEDMEMTest/MPI2Connector.cxx
src/ParaMEDMEMTest/MPI2Connector.hxx
src/ParaMEDMEMTest/MPIAccessDECTest.cxx
src/ParaMEDMEMTest/MPIAccessDECTest.hxx
src/ParaMEDMEMTest/MPIAccessTest.cxx
src/ParaMEDMEMTest/MPIAccessTest.hxx
src/ParaMEDMEMTest/MPIMainTest.hxx
src/ParaMEDMEMTest/Makefile.am
src/ParaMEDMEMTest/ParaMEDMEMTest.cxx
src/ParaMEDMEMTest/ParaMEDMEMTest.hxx
src/ParaMEDMEMTest/ParaMEDMEMTestMPI2_1.cxx
src/ParaMEDMEMTest/ParaMEDMEMTestMPI2_2.cxx
src/ParaMEDMEMTest/ParaMEDMEMTest_BlockTopology.cxx
src/ParaMEDMEMTest/ParaMEDMEMTest_FabienAPI.cxx
src/ParaMEDMEMTest/ParaMEDMEMTest_Gauthier1.cxx
src/ParaMEDMEMTest/ParaMEDMEMTest_ICocoTrio.cxx
src/ParaMEDMEMTest/ParaMEDMEMTest_InterpKernelDEC.cxx
src/ParaMEDMEMTest/ParaMEDMEMTest_MEDLoader.cxx
src/ParaMEDMEMTest/ParaMEDMEMTest_MPIProcessorGroup.cxx
src/ParaMEDMEMTest/ParaMEDMEMTest_NonCoincidentDEC.cxx
src/ParaMEDMEMTest/ParaMEDMEMTest_OverlapDEC.cxx
src/ParaMEDMEMTest/ParaMEDMEMTest_StructuredCoincidentDEC.cxx
src/ParaMEDMEMTest/TestMPIAccess.cxx
src/ParaMEDMEMTest/TestMPIAccessDEC.cxx
src/ParaMEDMEMTest/TestParaMEDMEM.cxx
src/ParaMEDMEMTest/test_AllToAllDEC.cxx
src/ParaMEDMEMTest/test_AllToAllTimeDEC.cxx
src/ParaMEDMEMTest/test_AllToAllvDEC.cxx
src/ParaMEDMEMTest/test_AllToAllvTimeDEC.cxx
src/ParaMEDMEMTest/test_AllToAllvTimeDoubleDEC.cxx
src/ParaMEDMEMTest/test_MPI_Access_Cancel.cxx
src/ParaMEDMEMTest/test_MPI_Access_Cyclic_ISend_IRecv.cxx
src/ParaMEDMEMTest/test_MPI_Access_Cyclic_Send_Recv.cxx
src/ParaMEDMEMTest/test_MPI_Access_IProbe.cxx
src/ParaMEDMEMTest/test_MPI_Access_ISendRecv.cxx
src/ParaMEDMEMTest/test_MPI_Access_ISend_IRecv.cxx
src/ParaMEDMEMTest/test_MPI_Access_ISend_IRecv_BottleNeck.cxx
src/ParaMEDMEMTest/test_MPI_Access_ISend_IRecv_Length.cxx
src/ParaMEDMEMTest/test_MPI_Access_ISend_IRecv_Length_1.cxx
src/ParaMEDMEMTest/test_MPI_Access_Probe.cxx
src/ParaMEDMEMTest/test_MPI_Access_SendRecv.cxx
src/ParaMEDMEMTest/test_MPI_Access_Send_Recv.cxx
src/ParaMEDMEMTest/test_MPI_Access_Send_Recv_Length.cxx
src/ParaMEDMEMTest/test_MPI_Access_Time.cxx
src/ParaMEDMEMTest/test_MPI_Access_Time_0.cxx
src/ParaMEDMEMTest/test_perf.cxx
src/ParaMEDMEM_Swig/CMakeLists.txt
src/ParaMEDMEM_Swig/Makefile.am
src/ParaMEDMEM_Swig/ParaMEDMEM.i
src/ParaMEDMEM_Swig/ParaMEDMEM.typemap
src/ParaMEDMEM_Swig/test_InterpKernelDEC.py
src/ParaMEDMEM_Swig/test_NonCoincidentDEC.py
src/ParaMEDMEM_Swig/test_StructuredCoincidentDEC.py
src/RENUMBER/CMakeLists.txt
src/RENUMBER/Makefile.am
src/RENUMBER/RENUMBERDefines.hxx
src/RENUMBER/RENUMBER_BOOSTRenumbering.cxx
src/RENUMBER/RENUMBER_BOOSTRenumbering.hxx
src/RENUMBER/RENUMBER_METISRenumbering.cxx
src/RENUMBER/RENUMBER_METISRenumbering.hxx
src/RENUMBER/RENUMBER_Renumbering.cxx
src/RENUMBER/RENUMBER_Renumbering.hxx
src/RENUMBER/RenumberingFactory.cxx
src/RENUMBER/RenumberingFactory.hxx
src/RENUMBER/renumbering.cxx
src/RENUMBER/testRenumbering.py

index 5b0e01cc6c175fce058de004c4a28cb95228f1e1..b8fbd59c381cdf5e0c3b4c8af80bef2e9082cb97 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2007-2012  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
@@ -24,7 +24,7 @@ IF(COMMAND cmake_policy)
 ENDIF(COMMAND cmake_policy)
 
 ENABLE_TESTING()
-SET(VERSION "6.4.0")
+SET(VERSION "6.5.0")
 SET(VERSION_DEV "1")
 
 SET(KERNEL_ROOT_DIR $ENV{KERNEL_ROOT_DIR})
@@ -34,6 +34,7 @@ IF(KERNEL_ROOT_DIR)
   SET(MED_ENABLE_KERNEL ON)
   INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindPLATFORM.cmake)
   INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindPYTHON.cmake)
+  INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindMPI.cmake)
   INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindOMNIORB.cmake)
   INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindPTHREADS.cmake)
   INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindHDF5.cmake)
@@ -42,7 +43,6 @@ IF(KERNEL_ROOT_DIR)
   INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindSWIG.cmake)
   INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindCPPUNIT.cmake)
   INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindDOXYGEN.cmake)
-  INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindMPI.cmake)
   INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindLIBBATCH.cmake)
   INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindKERNEL.cmake)
 ELSE(KERNEL_ROOT_DIR)
index a5389456b7d457c4cb058b8db9ecc75ccc620679..7d6dfa86e87ff7579148bd8500b46b6329aa7419 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index e7dfb43bbf9b4071d4ba16ccb6644dc11f08c555..d46c5d67e3d97f14ad6afade21f66c5ea0b664e2 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index 7b2cc254d4ab6c9750deeccee40956f1f5aa45c3..a7a3e59a03cd6f7da6542c67f0311b76c9501902 100644 (file)
@@ -1,4 +1,4 @@
-dnl Copyright (C) 2007-2011  CEA/DEN, EDF R&D, OPEN CASCADE
+dnl Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
 dnl
 dnl This library is free software; you can redistribute it and/or
 dnl modify it under the terms of the GNU Lesser General Public
index 40fae0a87253425a47d9b413568a2c6232a20c3d..33af97efd2cb3a3e84ee8cae1636f96d3e53cba5 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index 22234c3262dd988349336d0756ec4c212ae33f9c..f3b35dd2f8182ddba27f63ad3e9871f613f02796 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index 6b33dff0de6d4f5b0d6b48b8faeb4ad11964bd51..301a5de4a5076f0594bfe59527b79836af71f5f2 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
index b1090cde1a1f5a051631ed3b9fb4393519e2f423..79c29b0c8eddca5b13c1e4af0db801dfff0dd587 100644 (file)
@@ -1,5 +1,5 @@
 #  -*- coding: iso-8859-1 -*-
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
 #
 # Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
index 23f34ce77314b8d9f1ec80870ab9898cd0a1d5a6..a51a55447afbd6bf754f2b3e1b41741eaf9c204a 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
index 4d95a63483992f25e1270fc404c60fa92b8e15ea..7d051bea0bf5d7ae083e058ca73072435658ffb3 100644 (file)
@@ -1,5 +1,5 @@
 #  -*- coding: iso-8859-1 -*-
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
 #
 # Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
index 96574008576472a086435d490dcd5d7c71220f72..a48cfad01c5165a4ae35c2eb64ff491188cccabe 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
index 60afa72ecf86d990e679fa676b2d833a6e6c5e1e..341816d0d2efcba96750aa005100d8fa2a66155a 100644 (file)
@@ -1,5 +1,5 @@
 #  -*- coding: iso-8859-1 -*-
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
 #
 # Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
index b2b89e4d9b7e0af5492a628bd12b6ccf86d72319..ab7bb3cf6143923fa43df4865f4e8d1519f5ee1e 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
index d277a364419b31f545cffe3bc8e168ccad386b74..703f54a66c01a478b6366638ecc153798d26cb59 100644 (file)
@@ -1,5 +1,5 @@
 #  -*- coding: iso-8859-1 -*-
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
 #
 # Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
index c2eff5fd1f8a0dae71816f438325b16ab9db9184..45a3ad195d8d939518a56f21f9fd77f3ff70b585 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
index f470577349a031e00f7f9134c51d3cd5840aa770..01c61fba22986808d74ccd999b4d37dd2f6eb4e2 100644 (file)
@@ -1,5 +1,5 @@
 #  -*- coding: iso-8859-1 -*-
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
 #
 # Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
index 0216f86dd5f8f429a7d7a7290b436fba9cef3d86..03e9de5f127db77c2a5c61bbaa3b95257b25eaa2 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
index 4d90802f826f7a15fe44a345224fdf85f331f1e5..d7db8160c9c2094a4e45ba8f64efdd9f38c37901 100644 (file)
@@ -1,5 +1,5 @@
 #  -*- coding: iso-8859-1 -*-
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
 #
 # Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
index 898f7d0b2167c59b93850c8e5248b5d27107b725..1f360f8186bb6858f1d64cfbba9b438a08f64e4e 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
index 82d004f6793b5a099ce3efba877627daf82dfbf7..47a80db4126b9403a30883e608dcb97781089012 100644 (file)
@@ -1,5 +1,5 @@
 #  -*- coding: iso-8859-1 -*-
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
 #
 # Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
index 769010939d5c49e08643617c6b6f3e5a2b62a43b..1acaaddd0e6eed10c601a6f6a440b00554850eaa 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
index eb85841f6607ed4afab42410876875822da60f25..013590ff762f18c71589838d836b66b1bf858560 100644 (file)
@@ -1,5 +1,5 @@
 #  -*- coding: iso-8859-1 -*-
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
 #
 # Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
index 1cfa6892ea2f63f63273d7ec815b356c7f0f8341..504014eccae2da985839a9e38ea30ec9cc6c9672 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
index eba32c2c88282878b2ed8ac3c55ced952594aa94..c60ffc5f8dc2140bcb19eeaef08056f36b3adb6f 100644 (file)
@@ -1,5 +1,5 @@
 #  -*- coding: iso-8859-1 -*-
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
 #
 # Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
index 3db55316127ba836cb24ef38dcb8bb5b645a78f0..f788b6d65dedcb8492b773c62ed61a987ad4ce94 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index ffbe890800660b56a7f063d31539f2c9d53924a7..0b98f54f24ccf5fa93805ddb1d31aab510b469bb 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index 653ab03ad2f776e22009a62a6313c8f4ed9cda66..7996588b223d99738dc1ae90bb0ba374e9992dbf 100644 (file)
@@ -1,5 +1,5 @@
 #!/usr/bin/env python
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index 9a72b7e2136e85c19ef72c3a7e1718c8f34e5c9e..63e0def07a9a751b582a41ddfdbb50b4ce2d3dab 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index 33b8d58738f982daa3f132f79cd34286ab7adc66..bc6464bb647e387a45f2115d034c6bea94dcf228 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -121,6 +121,7 @@ FILE_PATTERNS          = MEDMEM_GMesh.* \
                          MEDCouplingExtrudedMesh.* \
                          MEDCouplingFieldDouble.* \
                          MEDCouplingField.* \
+                        MEDCouplingNatureOfField.hxx \
                         MEDCouplingFieldTemplate.* \
                          MEDCouplingFieldDiscretization.* \
                          MEDCouplingTimeDiscretization.* \
index 0dbfef279448bba1fc7fd46832e60f2b116f212e..22c098a1f293281b02e335c10d1cc5c2520fc714 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index b344790a6c2a62659614c4fedbc7bee2e76ca2ec..4c89a2ba1ed1150de49b5f1bc72ca9975f411550 100755 (executable)
@@ -3,7 +3,7 @@
  </div>
  <div class="footer1">
  <div style="text-align: center;">
- Copyright &copy; 2007-2011  CEA/DEN, EDF R&amp;D, OPEN CASCADE<br>
+ Copyright &copy; 2007-2012  CEA/DEN, EDF R&amp;D, OPEN CASCADE<br>
  Copyright &copy; 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, EDF R&amp;D, LEG, PRINCIPIA R&amp;D, BUREAU VERITAS<br>
  </div>
  </div>
index 1d620d416fa30f32aa1dc15cb4aee143adaa7ea0..ac4647872305261eb40bcad6b7ebac4297b1969e 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index d8d72f7e0adf880f0a636376b7272057ce9a3b5b..bd58106b1d57dc31f7417d1124cc9ca68cb30cef 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index 7fec95f17e520c5a018ac3bb2d37998b58dff496..88f84b6c0f18b366cb2127ce5ae63ae68714461e 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index c8d6de221b923bcf96e1508b08c48f6d86392021..7a3c472c12289a96583676d0c1933abc3c004d77 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -38,4 +38,11 @@ install-data-local:
        fi;
 
 uninstall-local:
-       rm -rf $(DESTDIR)$(docdir)/tui/MED
\ No newline at end of file
+       @test -d $(DESTDIR)$(tuidocdir) && chmod -R +w $(DESTDIR)$(tuidocdir) ; \
+       for filen in `find $(DESTDIR)$(tuidocdir) -mindepth 1 -maxdepth 1` dummy ; do \
+         case $${filen} in \
+           dummy ) ;; \
+           $(DESTDIR)$(tuidocdir)/head.png ) ;; \
+           * ) echo "removing $${filen}" && rm -rf $${filen} ;; \
+         esac ; \
+       done
index ba4cdebc0220a7a6df790a2ae77079a1e928e13d..ba7a2ca9b444671839afe66217809457e3b5e30f 100755 (executable)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
 #
 # Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@ -246,7 +246,7 @@ INCLUDED_BY_GRAPH      = NO
 CALL_GRAPH             = NO
 GRAPHICAL_HIERARCHY    = YES
 DIRECTORY_GRAPH        = YES
-DOT_IMAGE_FORMAT       = jpg
+DOT_IMAGE_FORMAT       = png
 DOT_FONTNAME           = Arial
 DOT_PATH               = 
 DOTFILE_DIRS           = 
index d77ef0a328196410fae34ea5516d10e7398fa66b..5b030c0214278fc821e3965b3c7d23de85f9c743 100755 (executable)
@@ -6,7 +6,7 @@
 <div class="footer1">
 <!--hr style="width: 100%; height: 2px;"-->
 <div style="text-align: center;">
-Copyright &copy; 2007-2011  CEA/DEN, EDF R&amp;D, OPEN CASCADE<br>
+Copyright &copy; 2007-2012  CEA/DEN, EDF R&amp;D, OPEN CASCADE<br>
 Copyright &copy; 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, EDF R&amp;D, LEG, PRINCIPIA R&amp;D, BUREAU VERITAS<br>
 </div>
 </div>
index a6f1878af58fe7e4fbc5e1ad65f9da941bd26077..9fcd6ceea22b474e07e02393128c3c0fc044eca1 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index 1bc91a233418186763cd6e9a9b8f0430728afc67..96987ebd947616e469483e425e97e77b7f0a69fb 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index d8a7c6a260660da4e231dee5c33f18d2629bf574..a041dbf109455de494342cb61530139f7a1310cd 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index 7b4616d2480613a9279bf51ccb3aa8f0df783f03..7b3d037825b49320d73732cd822032e503beab5e 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 59198946b8b950cc85933cd0be186a0d479a76e2..4100a4d05b92705fb2c761eb3ea56ff2bb69201a 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 8f5b22546181c61432f27a2561a9a21189b4a60d..35483a8ccc75470c7dcc2bf6bd6be6ba16617707 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 6482d3864b93a4152cd04ae4bcaa6c417e794942..c2aa9e32f39f6c08075112cc61f291df6e90fe58 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index fb047120cdb801bb704546e5dc3e1240aabbc393..b946364b8a459e3dd85f899aeed89ff1277bed37 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 4421cd65bd9fe417130b806c143f822f1396f257..5e9ee7543dd3e7dcc555029455c09928a35cdd34 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index a194d7067c7abaf749613bcca53c5b3b93a46938..5a1114394ad68d5dc885eca4e715cda98bae9943 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 4ff2c334389fbe6dbb23dc856cbd42c2ad552676..ab5f5bbfe5f1ab61218eb75479827cb6a60dab92 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index f56122589eb35688587b2abd262b51616ec166bc..7e35c0d347acb064092ccb95dd3a66fc3b1abe09 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index f57dcab21a47175a78303e6792dd74d04b9423b8..687901388566c672f5135cb0022730edc81bbea2 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
@@ -99,6 +99,7 @@ namespace INTERP_KERNEL
     _map_of_unique_instance.insert(std::make_pair(NORM_POLYHED,CellModel(NORM_POLYHED)));
     _map_of_unique_instance.insert(std::make_pair(NORM_QPOLYG,CellModel(NORM_QPOLYG)));
     _map_of_unique_instance.insert(std::make_pair(NORM_POLYL,CellModel(NORM_POLYL)));
+    _map_of_unique_instance.insert(std::make_pair(NORM_ERROR,CellModel(NORM_ERROR)));
   }
 
   CellModel::CellModel(NormalizedCellType type):_type(type)
index 4a07066461cc47003a157062631d6537b31b788f..f9d19c981015a55abc3f01dd606f5507761a6321 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 90fc4d4349497cecca7480e5e40bbe4185904f0f..10755efa2cb0c13c8cf348b615e8bffce708e43d 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 3c1cccb5f3bc91eec9c3fa0a77bc17e2c3ba904e..44836c63910dec29d0136fdc15b9cd5ea8b64b36 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 3264f9d1175e3f4c16d6617fc551255654bbe581..14035f13a36a0bbf952188d5b76f4be756929069 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index d0fb5f4e33c7de8d196bbbe71f6b7899869adfda..38dfa9920730d74fc6ef911153ba2010a9aea0e6 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 23cdb9f3b24aea459420af4042b11817adbc329d..761dc2dc3202949a1eeaaaa573da952f6882dfab 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 2a823880e07402167293a20adf3bc05a9dd5f51b..3981d1218f2b1bd311b2708a4c775d159a50892e 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index de14457a83aa34a105524cfab8ac8414cc2e9e95..42dbd758bb7c18e01d227edb994f602e76f9d6e3 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index d6bed1d7917ea414008c9e20eeb3c6fe694164a5..91bb236d498c301acd9484f4eb6b54784069952e 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 4fd5a92854a5c86208b018a889296af2ccf65b33..7a5d3d6cfae183e46e516880ac1fc21e629b2cba 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index b3f39e21b77512f9ba5d62047da341395bdde705..2a41ee145b4d67558a7f33362e81e3aa0a9e724f 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 41025289e9f6776dd85105db0a790cb0c293d51d..f09e5143ff78a1c048091af308aad450b9ae557b 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index d03a707c10d6ed57c0c87968bd68b2fd151fdb68..efd1f855a1a047c3df08cfba56e502b0ae45087c 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 98ebf830ad2bf280a472f775aa0746fe88058e1a..60912ed37b2fc582937c755f796a8d4ab8c4b0b4 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2009-2011  OPEN CASCADE
+// Copyright (C) 2009-2012  OPEN CASCADE
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
index d03d5aadfe922def4ace7a23dbecdaad34e001f3..3224b6675413bddef64d87df31104c2c63737be4 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2009-2011  OPEN CASCADE
+// Copyright (C) 2009-2012  OPEN CASCADE
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
index cafd86973a3d7113a73d329fc3242b27cd5f2542..db4496f72f19a67b6799864b5eaf98cb416b1128 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index e1c2bf3e7a479f142d7c4a41d87aeeca6bfa324c..d305da4b8fa6d29bbb6f4c18b5a3e32897d76ebc 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 184e9ba24357c3e514f59f59a197bc5c21fc5be3..a8867850ccfec61ab465639621334efd1cd03992 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index a9b095593298579db5b52d51a396b9493a41db52..0d01bad10eb7b5a5d8acf95b66ce8f1301d45fbd 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index c307a446069d2e96c153b06f7cc9b771a81e23e8..4979adc058beda2963ace8dd2ba1d9fc5cee44a8 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 0dc3b47097af5dcf163c92f252b87a53ebee261c..cfd4bf692a1be1ccae5c98c82c3c776db84b2533 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 3ff74c7451a30319440d49e59aae5f871d8e56f1..c719b5e739cabfa0994a87bf5bf145b93bbf9811 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index e1783a39b9c5bcdd3ea9c7ec89d929ad1ed5bc47..a3f33b76a624dc952299aecccdc5d3fb49d0fb55 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index de1c8fdf86c01495755bce3ac010e5e069c7ef06..5a97db3ddb95c4365d9f2070bf4e8bec0ea0184a 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 44912a73b2322ad7c661aca6d7aeaa7ae30de408..01581024db67327c2963c54f9ab7200ee409bcdb 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 519977f8a68fd0c72505df15e10e9995a78d2247..57e9c936aea16eeba53c0f24320cb1297f2a6371 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 2cb6c3b6c4bc5ab71c05ef89d837ce89c20d5474..c045279d262248bc88eade712c9501c2c29cfde6 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 99504bd7ef389ae5ad5c92e6d9885e7ed3da0f15..95c78f3d50d77abd73f5c29742cd798e7551a111 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 790eafcfe876b563fd557227f852cfa6ee0cef77..694ebd113ab5fe7c04958a8f214070d025dcc919 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index abb86bb322360efea626ffe5fbd8ceeeca35dc66..37a3fb51df8cfdfc4f4361f80e08c691ecef106d 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index d450601dacbabdf4129acfec6d4933f59067583d..e4c5f9187984eb3a9787fd54d13f54a3f3d943c7 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 8bd084a88980b141c44d2ffbc3d449c7c31eef3f..77e0095433809db53f191384de2155eec5b61b63 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index b960f0aa0fb17125cff8a28aef18ddd3d659822f..c57210de9e049d6b22169eaa9c78f5d4d0c7cb98 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 0842387931bcac19ed31acf01b296aaca3ab9aa3..62b56d7fb1d2aafd62d0fba5ba33264868351548 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 43ba9fdd3a9dfc558de785d636f678d8790c5e03..257667df8cc4258254c2e6436ddcc41a9000317d 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index f8ec78822fd8f83dd9577fea51ceb52510a197f0..bc8a1dcb70e4329ca7d24ede751fec2dd7ef5ea7 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index bddb26aee83050c4c15dc56e185caabe3a8ea1b0..ed9dc5298f7348e01bfb504b0ba7e2ed035773d7 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 8c6343740f4699767b4d7e71c47330bed3f8de1e..551056cecc4d05c83ee251d6d92cc37b7048c2b8 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 3c3e48fbe6571e492c8e67887132a11193a66094..921723688bd75ca982c3fb4305d759d4b98c8c2c 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index c8348aebe4a06af8a518b7d3c21f3c6a172b7cae..dceb2addc3d1430d24eff8170a0609b9653c3c95 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index af24ff9bb72603b32939552813bf4b3185c367e6..dffd43d4c5281b6d9facf0f32c507279b89384a4 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index a61d85ec18d8bce1cfbb345e4bff3312716d82b7..1a7b3cc3b40d3dbec346292fe21860d66dcc5bb2 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 299e98bf92a399a7cac250a08a73e0327ccbdc08..d5b212bcf2b7e2678d928a39158e6c58c2ce0c29 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 59100475a5a8a6a210cdc2c070cc18cbefd22300..a2a222f70b26a0f0677272baefc403df8fb7c17c 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 7a2cf1f238015370c9891e86fe20281927aff017..8611fe1730d785f5527ec9260f72297e8bb748c9 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index c45939aa6167da664523a12bfea49b3d564f7e8e..03c3445f9a02190db137e3c1d2f0f891b416cee6 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 0faeb239753b1f4fedff24d59f6f10cf7a9a3d59..2d1a9d5e386bd44d66b693436dc14f1caa1ab46a 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 0605f693bf0e9d258a9ec69a35f1e2f6b6ebd391..e5e453f7f6911456549aa8978e49f0ca36855ee7 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 90d35cca39459c41f454bcf39692b4e9bf1bb2c8..83504ea8b9525502c6e9312cf984b15260b729c1 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index e1d4f86a4adbd3f3b46c655d46b253b404f7e03c..c85d413c56a2da71472a951384097816392d022c 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
@@ -131,6 +131,19 @@ void QuadraticPolygon::circularPermute()
     }
 }
 
+bool QuadraticPolygon::isButterflyAbs()
+{
+  INTERP_KERNEL::Bounds b;
+  double xBary,yBary;
+  b.prepareForAggregation();
+  fillBounds(b); 
+  double dimChar=b.getCaracteristicDim();
+  b.getBarycenter(xBary,yBary);
+  applyGlobalSimilarity(xBary,yBary,dimChar);
+  //
+  return isButterfly();
+}
+
 bool QuadraticPolygon::isButterfly() const
 {
   for(std::list<ElementaryEdge *>::const_iterator it=_sub_edges.begin();it!=_sub_edges.end();it++)
index e24ee3b12d0386d0bf23b3a49892c5cc91df8cf1..a7beda997e8009cba1a0bc16e776c48bd676ad94 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
@@ -46,6 +46,7 @@ namespace INTERP_KERNEL
     ~QuadraticPolygon();
     void closeMe() const;
     void circularPermute();
+    bool isButterflyAbs();
     bool isButterfly() const;
     void dumpInXfigFile(const char *fileName) const;
     void dumpInXfigFileWithOther(const ComposedEdge& other, const char *fileName) const;
index f62625105895c96b8d87db5b6f3f5abec3e69d35..69879f51b2a0c97b11d2f4d4b9862dec3544bafa 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 4c0e1768bae5afe2a45aed4176a0f1bdb1882b93..35cb6967850f081cda11eadbeadafd5e15814c13 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 7a18f8516e175293f53108816c25ce1b0ae943e8..c89457dbb223d07aa4c3cde5bf5eeec744a7863c 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 41c53a87d6ac1d7cab50d9375e6737aa66ba4aa2..71cfebb7de3907e708fed0b48aa17d3fb482d410 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 1bc36d840f8a46a08ee77b6aa55677fb07c48b2a..0d46d983e0309f97223b9ae3292316c5eeb44f33 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 15f0c6858515fd47a70bf02977589194cf7129ba..4daceef0f67acd33a1659e61b12c1993446a3650 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 1cf3d7bb99f4b0411807d566ad5f31fdf6748997..34585260ede2dc24d526c4d02c5803ac6fad935e 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index a0e2476a82e5d230e32e1a4c7cab75e40e3fde50..660eef399aaab039db5d1e05f550b6d03cc15cf5 100755 (executable)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 0d060a11f71d990c8f1b43ac9642d3f5a68e6874..c3f27f1aba950a1991a87fcf134bbcbf963f7ef9 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index ebba8a1af4ce99788ec8ffad2013d01c9273a370..95e30f5c27c76d06725e0c61cff9eea87d87b523 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index e847ac773bed9060b52c8859f26cf02f0c99d4c7..4075c4d88edfdcd17fd4f929c9ef1654c1a9b588 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 4a34b863ab2a87da9f336937154c800c64ef6d12..38951463cb199bf7d55051f55574b50bcb2f254b 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index a5bdca7e4e406a3127b8db73d1078058db2cda02..3ac70163fd6182d0c2a3f21e5a1b0665dbae14ac 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 49dde9e64a18943d30a9e6f67c9e16608b00fa2a..37e36de45167f0e5e3c000626b3d113f175e0c81 100755 (executable)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 2d676a48150f0a9127bee27bb00ea215ff0af3c0..174c18291d28e2bc6da38b5ebff8990b0f3acbd4 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index fb748e8890193aceddb4cc87b108233e943f5876..6551ebda4ec8dcc4490318769c128b7552654276 100755 (executable)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 8fcb207b115074fc31d9c53d715fb6ff313080e9..aa44100963158c7805b7789089406e6129da8b61 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index c9809ee513bf334f0fc6db48bf31d98c6b918c2c..f1a0b76f4bfd632df8f93515e71f68b1157331a2 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 62e921708497b01fb3ca97988964ff513ec1ddaa..e84d07dec7238add8ee7636a470c526231371b4e 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index dcb61303a798ee10e7af41d8928b3d42bc8834a4..c1cfa381c2b94ff054df81a742ea8cc32599b19b 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 8a3f09b2aa6b5dbc12a5f42734f99d8b1c3ff4ab..d1c2f76533ec524b5de90a690dae7cf69b7c66fc 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index d5c9f6c86e7c696179f7f9e670852da79a631cef..d2401e3d1d8eecaec02e6c3ee8ecf012c1e5d7d0 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 31579ceaaaaac506570e12546133e01d2920548d..247ca14a202102fb786d98d387cd3b1e702a355f 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 9e90fe447f1cbaab176b487ec866621bce2d8f69..248207e02e07b8e0f457a0e1a5208967990dd59b 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index d29392342f35d99813780e6eae2107841a8040de..040e654f71f31085679f4f8d53ecec810590e34a 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index f4fc8997bf704351fce86fafcd994b36ede3575c..50dea59abc40ab83fc50b3a9c9612c04f2ed6fef 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 27ddb7e8f95136a7a5aba7dedf192e60ad52dc3e..b971d8978cbf282a5360446e5789f60f5e4de933 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 957816859216ec32e35191e42f86ad91396183f7..488ca2b857548f202efbcc517de5793919209b13 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 3ad619279e7941b188c0d6da2674a276694f342d..ede723162bd3f2a737b2c476e404b6c33bf2be2a 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 1992fe74e6eff32a969111e6be35da2110e23be1..88bbc00a1cdb7ec43e721258f990081a642396de 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2009-2011  OPEN CASCADE
+// Copyright (C) 2009-2012  OPEN CASCADE
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
index 3f9c8152ed374cdba2ebafafd76eaedf7777724d..da4ec44f157227a147fabc34358d39243b7ad78e 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2009-2011  OPEN CASCADE
+// Copyright (C) 2009-2012  OPEN CASCADE
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
index 9efa4ebe89831f976a4d01be1adab262251b86bf..e2fef426ff702ff117a8bf87de57727e30cb4bb5 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2009-2011  OPEN CASCADE
+// Copyright (C) 2009-2012  OPEN CASCADE
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
index 7b7c2415fdf506239586c7677a6d9f025d2be044..f9528e1857062d5e157a4e2e47fe87e1fe09aeaa 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2009-2011  OPEN CASCADE
+// Copyright (C) 2009-2012  OPEN CASCADE
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
index bc359e6227207c1f29d7b374ae0d771a50d785f0..35dbd6799f3654138ce76c392f3b8abcd475e5ff 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index ae8978e4c7090482770d460bed12502a92349ad8..86ec617440b4e54b9c519f0d1fd85dc579cbc3df 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 61afd78fd8cd66d0c0292e85c911cf0f94ee8a06..2e2e7def7193764f69bdde32a9ff52399fafbe4b 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 4e1e01bcb082b3fe3dc10f1320196a800610f138..d9c51d70af1883a1716c823a516a920ef3211f38 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
@@ -33,6 +33,13 @@ namespace INTERP_KERNEL
   /// that result from the split.
   typedef enum  { PLANAR_FACE_5 = 5, PLANAR_FACE_6 = 6, GENERAL_24 = 24, GENERAL_48 = 48 } SplittingPolicy;
   
+  /*!
+   * \class InterpolationOptions
+   * Class defining the options for all interpolation algorithms.
+   * 
+   * List of options, possible values and default values can be found on this page:
+   * \ref InterpKerIntersectors
+   */
   class INTERPKERNEL_EXPORT InterpolationOptions
   {
   private:
index 5699fbc48eb268d53400334fb79b141395c02539..c30cd81f44002fafae6db004726d68c102a9b2e8 100755 (executable)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index a8ea915f79682f64a1bc6f277d85947ef6f80f78..2ba5aafe895925c0ada0894dbae513575392c8a1 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index a271d201275ad5d4249ea8bcf03d5215da3146ba..af7fdfcc93aad5cd681a39820d0be5e55e0f89e2 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 59e70cb8bd4796b1326699d4fa8304fc2e04cb68..9ab3f7b7836d3601a53261029643f41328d48647 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index ee9b36aee92b5eeab90eb1aef84c3aaf9c15f306..05b5c94094ff4bb571bf1c56833f3fa6fe292eeb 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index a5fcfb6d914e8524c27f4c22d06329df597bed75..243ce6ff4d19207451f83c6573ff3e3ff3a904be 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 90a52c067a47691272c4c7ac48fb95c740cd1561..1ab4b5a44055a01923258a10c46bc8602f3e0e8d 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 480d4d4eb27295206424d5d9a353e5c16776a1ab..98a2476148fc0994d5eda30cc3a4443487c6c5fd 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index e0455f433bf4515dfe8cb5bdf2c23146b20a011a..50dc45eac35c47d54a62ef8b99e1206f59cfcd74 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index ef98a9cc2f3fc8b540307ffb4e96de6cc7271ed5..cc7f494c87f6874a76a6009e21f9cd0c4a8a5809 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 9c53fc9f3947ceee0c26d81373a5f928d57001ac..e302323f55d2e79801f0dd42afc1cd18f78ee54e 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 52cafb685c932e562728cf67559e0b883da3b082..a08948afe27f1b6340fccc93ad7d1958c8f0a92a 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index b4bd89d6fe43f854203885c1cd74fd12a8f8de23..de36ddd78ecc1d6bc657704be38195fcefd4a797 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index e4d8b2ef2fc7be230976d8f26af569ebb2a57257..13c495aefddcc0ca63c288045323bdeffaf595d5 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 03dab3b81af31edeb953975a54c34d3071638fff..03698f4d62c0d9ccda8909fbfbe0bc95d5d4c2eb 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 9fe5b4a90f3dd32626a921554f77fe33b3f10246..fac8c96c55a9448e862130b3d0ef7d277730ba40 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2009-2011  OPEN CASCADE
+// Copyright (C) 2009-2012  OPEN CASCADE
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
index 432d45a7a544892406ad6356b260c8f3a961cfd1..1d4d1451c2c11cc2fac64f90d95f2b28ae651240 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2009-2011  OPEN CASCADE
+// Copyright (C) 2009-2012  OPEN CASCADE
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
index 2caafbb0cc447a2bceb15b14b18ef4d4bbe1d2ec..ec0a9d874585a080ef58cdd8429c5b68c79579a7 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2009-2011  OPEN CASCADE
+// Copyright (C) 2009-2012  OPEN CASCADE
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
index 056581c025fb7e7b48eec70c847d2e5b3636718d..751e94fe02cc896b57a8475b1496b892a6ba590f 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2009-2011  OPEN CASCADE
+// Copyright (C) 2009-2012  OPEN CASCADE
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
index aa4a88d2206dbacb6422f359b2b813ac7f2a43bc..816fa1b35ebe01762d5938fd07e90769da061943 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2009-2011  OPEN CASCADE
+// Copyright (C) 2009-2012  OPEN CASCADE
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
index b1b30d0fc335df3a4a5fdd60792737ec7ec4e242..ee2d36c250e5d0ee7cd08d37102718c2faa7ac13 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2009-2011  OPEN CASCADE
+// Copyright (C) 2009-2012  OPEN CASCADE
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
index a011d111f01c797659c3d31759d51e02f4766464..2e48dafa17714b78abd7072f35aa5c51590e44fb 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2009-2011  OPEN CASCADE
+// Copyright (C) 2009-2012  OPEN CASCADE
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
index c08e751cbd1003402a1346b5d049e8dd5fedb011..81ff0046a82bcb882c77b58154d61d33692b0d60 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2009-2011  OPEN CASCADE
+// Copyright (C) 2009-2012  OPEN CASCADE
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
index f6abeda2c892b033d71e85226b6dc369a5817f05..a994d5541554f0e46bcc93b0b3cc42c285b5685b 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 734a0dee2212b5b72cc72d6be04b38bed15d25c7..17412e8a5053bc15f8b0021a438abd3f43582e28 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index c328c61344dd2b31b7e799a3ab5e8dcabcb356a9..9d44bc7c7ee38c3a675a7771f013c034317d21c1 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 4068324be246e219ea9fbbe28ed3d1e56aa3d2bd..484d9f92062156fde9ff8846b61c2249b319739a 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 800ebcdaa7f778bb73bf0959e10bd0bb8737a392..0388a4e5d38462124b845446a934fee635f5f59a 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 7ce43f5dab7ba72d026a227d4fc06cd5a7bbc543..d1e51f9cc44ec67b8a6c1f3eb45abf9f2b700a62 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index cf213672c4ebeee32eb68723c20d5d10dc91f589..4b79b2fddeb92933ecfe4dd819e0564c0b5a6973 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 4291799ddabbda5fb0485d98eef48aae1fb7192b..908c0d03ab3fca4afed3430a274d7001880f5497 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 3a79ad04cd03e594da45c2d7188dc5eae05cd396..b159689f27424d8dfa1dce9c66488efd50cb0f8b 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index d0cd946479bdeecba0b83fc6af505c2dd1a4efeb..758df4d5595785a763e0ef6f1cd4c32703bb14a5 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 395ff8b39990f6355b97f33ba46a856d6723399b..d25b81d4f71a9ddb41b94f66be0ce5bd5a7ccdbe 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index a739f9f609ed1df158ba74b8405598e1c9735343..5323eda430d69f5ae6361779d1e9a9f63a0f4edb 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 704f3f52db4f5ee90f1c0ab36026a217b51b6674..9e5249d629499f6d35b6f7ee1c0ee7b933337562 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index f15e5dce66be220239c6b97f8a4b1bb27bd0733d..f698b984dd78dcc4fe956497eed5e5c8b0fc4479 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 00985606e0e142f8bfb23770260a6d4ea7817196..c6083a228f2e37385c4b5d88cf720a78bd682ff8 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 43ce316d1b05adfbfe0fbbcf11be45da2671b9cc..48343d92af343c47d43cda83ff8de72ad55154d5 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 7e082f998fa97769e8bf4d0fd8172356c2f6bf96..10b47cfc85bdf56054c7c18129b13368312c663d 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 8678f85c77567cb0fd39fd3dac4198235f25ba57..6537c7bf4bd9a1a72c9d8135a5223729adbd6fb7 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 7779a56dc887b48db9237055eae857e7fb22fce9..29459a510b858b53803fcd5de9d6c109955cd248 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 5cd13a6921c8374f0571e6a90cde762c2bc32a1f..27f598702ae6c0181253b1f1c55bd75c20369746 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index ea92461bf9129da8355467198a850a9326f74d00..1ea4f480f82f3788d8fcbbda3f44bb04c14e9acf 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 58c82c6accdc8c3e39ae9f74687a611606e0cde4..a9079580b440c2a9934b59a04e71ca99b8f9d6e2 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 91793a29a517b3051972b3cc45449fb4da1a6278..fe82a84e771f8010d33b02eef5d0fe3a0c9d0df4 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 0d40ef83e1d2a5fd22b435d9b7acdde551e8154d..311c724de94616284a594eb886f1da3d27c1689d 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index f4639c9285346822f6f8bdf27c31ba1ef77ff3e5..1168345d847357a538cd62e7d6a87727da7ceec3 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 8284e59457eeefd62aa4d68505aba43ab8f2b5a1..707cafeb2ab210866ccf44fc2a29d1d9e92b8fd2 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index fd899c2905bcc8b1531c2f5421c6ae50372daa3a..f2e9c6190c297f1363fa3f1ee9588f7e12ef5dd2 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 70d2fd31146504919f2322a7c0e2a51e82898490..353240def9a1b2fa6cf06594fc6594443c1fb33f 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 66197f137235c5a2e775b1d9a030569ee015c3e2..a45ee36853d475079445e6a0ed72432541349104 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index ab470829dd8963d5bba28e24737e21e9f06fa4d8..080dc9c4e0bedef46e4f871bd922c68174493bee 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 9ba8bacc38b4ca08caa62f4e15023ac77f3d5ef0..1831ff9088a99d5b3eb4e6346327d748ce8b4990 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 7b74aabb8f247e1c17e7e520cbf4487c94739985..043df337e97a433844ca0a290e7be196df876705 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index e2f2edef698b4df3248bbfe874914795515479fa..13bc98cac733d6d508369784df91d6ed04ae6e6f 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 399974864d4b13a64c65fe29efc7cc8306d35d0b..0ea7ddc804c66adeb772ff7a1d30f9f273708601 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 2bd8994df782e6503298968f6518c22a79d97152..4dd3f26ca25ed971e08e9b849038518b3827b27e 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index a360665b7ba345d7d5268fe9bab9293bd162df2a..3a941337d517d00a370afc71d4a410deb3631979 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 4b1b2d31d0bd3b305dead89bbbd23083a7f45adc..9951eea526339ded0ef0ac281e8765323496c09f 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 620088815787fe2d86b8f9958dccd68c04b6711e..1cffba133b94f52ce6b4096df72c9531000eb6f4 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 2164c64b690036042eef44d8fcda976260c058d7..d30ea1540f155a46b3e32983f4f41aba4c06fcff 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index d09ba1755f0b61f2f1c40571c9198d53698eb7dd..dc072352e79a4b1544467274b8858cb7b24ae2a9 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 516e41c29378e2b9c293ed29f886ea2d1953da77..3f1bf175feb6d730ab57b50b6ab37506cd569ede 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index c94c51cb07dd2b28d2f4cf10e6588678734b3d22..519660000d6843b52fb4df38840466c58fc3478c 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 59b46f9210e2614167e92350ca4f5c00c48ddaa1..92418804d093d86ae2b47267eee5660f4aa0975f 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 828c61dad03630cee0cc606af1f0a1ffb2b91d7f..6e746ef055c1fc17bad4adecfc3e18fcf9294978 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 260a4c11043c3068081be28ba0398963ba2c6f62..61011e735222e1511c115b864c2d22c0e093f389 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index a6bd815d02ef809e0ae5307bf43e14af32abd760..024ce9b68dc1b5fbbe44b3dfbcd31d8d3dd72200 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 4dbf72dc94cc73cc6870db8e08afc979c6b3bdef..8786b3f769f4890574de1003b35b8f2aa86f90e6 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 483b3b166f040d925e834cc79a27c33c3e052dc4..c3e257d22cb13f47456a251bc0e102304c2a5684 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 43ca2840a9fa4558a14743deba8f7ec38d6ce54f..962fd76e5cdd017d631a25699166bf6114167439 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 136e198cf62eed5c435e052fffb1f9fb4c09bf8d..b6d6f7c15566287fddccd5d86ff8530dc32f1f89 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index d3ae2560fd74f9598ff16b87c653440b3a2f1132..884adf1fd93f129eb4d5b67ace41484cd0ddc7b2 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index e32d813f03e7b313336a2277cb3984b9f6e9f10a..fc65a7f10b7443bf1073800941cafb6fde682457 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index f98dca96149fdae733cf4d2d6ca58d7656a7292a..31a26e7df5413c062199bb10f6270a71502b1061 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index e894260daa439fac90d486ed3d9795230ee192fb..14d482e284be9d842c06efabbc90135a7797ff77 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 808520cc2f9887d4b02b257657e9685c58e03545..d535b9c3787ed855b1d4e216cd500e5e964e64fc 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 5f5dd3a7efec148d5de7fc8aff4785955e4d96b1..e36dd0ae55170ba11f1371a016aedc3f76eeeae8 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index f41c3d498f65960fd7fc1b87d564ca2d63a14e9b..1023394af8683ae09dbbb2e8464a2349b135b7f2 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index e4309fa47da0dd3f6dbd3181aa31a2d2df427fc4..5c8ac1b6e19cc20d74ddc9f9c031f33d0e8247f6 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index dfdc39c6636fdffd24e86a3377b9f3182dbd86f4..303c8f9b43173457260e0428ddffdb70e980d30d 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 21dacb129b2b83c535dd6fecf80a98f94cb5536a..1e3f6a484718e3268c9028e423058c5398a6a5da 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index a396b2bebf1dd483523e5976a4d42e5ffecf2457..d7f7a4e32def8b7281ca27744fce273a379192d6 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index e6de1e3e6d7166b462ee5809650cb306c811dc46..1576ad804f7d090db7b3527d55b288d9a36b20c5 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 02a43a4738ddb1a9c3c99b8d1136376191444275..37cf82551248baa2972a5bc77e3b21bd204c4e37 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index fd8674986c1ddfe2414577bc87fe0404d257d682..5d7cf02abd6fa18f7eb4ba774836e42457352776 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 0aa8ba3857fd8e57688efd712a9e8de23f125363..3c28c132065d60caba7843cc8a870437c27f7556 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 08f3ba9f461e3bf6bfe0f3e2282045b5b0366f09..e2186fc540df167749bf93b8ac52748c973ea0b6 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 69e72e93de6d8e2e11631b666dd497f15bfc396c..99959cd2cc22eeb31b8ea6399f75b7490bbed257 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 1ca2bfd5f51c4f24baaf568066e5ed68f2ff853f..3cc53f66eca0394769a936e026ddd286c7a2b11b 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 49cc67e62535bf0aabeafe5c2ffd376b23be0c72..f087eb58443228126aebad58b5659c880eb5af2e 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 726dfdef7d83310dda17a9974d9cb89ebfa89d60..0e7f70b085387bcfb857d3f1dd6ad1445b72a047 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 7bdd6b2c24d75661c72df098dab6b09b16abe5c7..49bf127f9600f84dd682cc8ee20324d86de18a67 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 65c6ecdde67c0dc09d535a3b340fc3028ee1235f..3baae70f2591da16c7881d0a5a2953e50bbebcd9 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 084508c5d3765e70d718a4223e8a2e2bec60d47d..3c6832344e10d6c68f4f7539a126018857ead032 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index ac88c255d188b621092084e01999c626d7a281f1..b1e815effbc233790c0069e2d884d0ea89f8672a 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 77d46e932380e3949d9d68b4b386f3d47bcfc93c..09fe9967afbe1ed1bd4d7c2eb6cca0020a6c4632 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 4ed9976ecb81abb2afa3184d1f46242c4fe33fc0..0b673eb09a1d44e9d688654973823db5aba643c3 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 1bbcb4a9f5373ce10e93adb8fd91e924d1e962e1..b827bea2fdb546f653014f455b30a162bf15a95e 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 9d8f689cb8112677678cff0ca84c8d71754d97af..85faf0f5d1014ac867399be5e049354f7381dfb9 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 3caa454a037a8f4bfe5d1181f5372d69bb26833a..914473eb82ae0a38da34a9280aaeffd7ca96ccbe 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index d516f422df69637cac91988b4710c6f209ba029a..54576bbd2b243c49459c24812adc2eead134bb33 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index 4b130f038ef2e3a6a0f4b126f3216b4785074d23..192122225947cba38b2a4f5495483e6bda6575fc 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 2214e80830d2b819490a25cb02074fbfc478d532..8764fa66546aed78d7e5c9a62e536b69d5284caf 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 0bbf29cf036432e31ac5a9f3e5ae7f2f7d28e0c8..075c004531f715e3dea474cbcad17e7d98573913 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 15baa922af5d91b294af8090b2d2777bc08506c2..f631cb25095b4b42857b4b19c374c433d21dff55 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index e9043a84288b86cffb315df901ecb6018dc0c1bc..f5fad8094db510c61551af0b8839f10b58e03426 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index d7470d7665a0c86003c08b3a218353201c216f00..93e49afbde4078468ca5a80a00b99e5842c16336 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 26d0e32ca442eb7f611e0ed3ee165946a6d3b0fa..5b6376e06ef6a5fe7bebac67fbbe0e52a52c484a 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index c81bd4c98974ec496a4469ae2dfad6c86811a412..c76c582c5704f85cad4ae65601e7a6f1bd3903ec 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 1ac07673b870874c485d609dfa7f6172260c61f7..b053d9058b07ed04cf48ce3a98a403239ba89e6b 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 3ac0b16afa17c21338b3d01a6ec0678df1c84bcd..6c4fc8602b9f0452df27204f014c100b070bf566 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 913794cfc1f017c428ca122e11cfe652d0fa03be..658975c4a9b85edfeb58b83ccec40ca630b9d19d 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 05a27c929faab2dcfcaf8cfa2c9c167ff31cd77c..4629e894db8651d55a2b53033d2a8a68cf1ecb79 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 18fc6695f12de2f46c791d4d5eba35a540afeb34..d82c32c3aae81e1e9332480d44aac987ad442d35 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index dfddec84e315d7b3a7aec37d1f023b9da2bae3d4..1595a9eb9791268c917c207eb4b3846b3666aceb 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 52fe6e3deb909d7d95e9b2ed1e6ad7d999c48803..93dc410d70650e7a890c52d98cbbcb7cb446817b 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index 61d0db78a64091fe812fb373a90d22df5d1afb6b..161d11b1de68c71c2d866b20b60fae6b26a19c51 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index d31d402a91acc40159a75f0a95ba93ea2884dfc8..e656cad6275fad75dd7436cd6919c0f214eb16fe 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 543ebac4794654580272b543c3f5b910de462b08..566026d6772e901184c383005d74523a01fd6c9c 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 90f4eed15e2db94f1f208cb25b0a1d7e5e346487..f3b6732aadd5b8111ad574549c8be00b71b4d83a 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index e8e02bbb395f948ca42a4570d3ae2a83d18966af..8610e652d20f28e3bbb285eb52399110e464e699 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 69f2b960b477a814741c5d163868489d4a23d6d2..fd139bc9addbeccf5eef84da5ca60b9c06bfaa59 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 60cb916bcf40b1e3fcced4d7abe62c5f71063916..0dd2bfa706d837a8a370c589291e758e39fbcde1 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 2193f42caf76d3e3619bdbb6065aa918934eff56..d918387ca7db3c9ec2a16853c286cfbcd094e1ae 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 5105b3f376fb77920567b9aeb4a096945018ed76..a58f32b14c79987178708e6a9b68097019c86e6b 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index eabd8a70ae8bfd0bbef04d4902a64b23d6708dd1..8024a21ac68cd9a901cd7c14e6ffa8026a594d7e 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index b7205ad17406f02ba2d8e3d356d80381366b2f28..8eae1b8a8fd62c9bbeba9b45f900e9a1f0ef77ab 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index b08cae9ac7f41b7cc1729d19bc0630aa928cd3e9..a249d3a1360ad7519333739fd4d2ad897badd796 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index f164fec79be6195d993df58187183777207f4019..9210694b4a8e56f1b73de12ad9109f712a2ea6cd 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 2e9f8e8a626f97b1041cfc6cff82f566d66f0fb5..329ce0f84397abb06e69e39ed37a00d364abc756 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 30eae64e4a0d5ab173b580cd12d1b5e2cd1a401f..8002c73b37cb792406d00abe2dc50ce04ac65722 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 2681d1df00a7a588dd947f5c9fdc89f1cda8efd2..a8b13882ec99cf977b4f594b227ab267553cf83b 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index d2698aa0857d8e0fff3a8156f5f2d80b899fa6f6..4ac48cd1344f5757353e7241bf23393ffeb36e56 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index b0690b69e3b93d39be853f28f232c46ba7c83fa6..e419b6b9640fcdac2350ce180b7f39549f0adefd 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 45a2772c6fc1bbc47e1c6c6e15b239fa97022185..6272fd3e71f372e16f616847d7a16a1e5b18190c 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index e935fcfe5ba5e0b632cc5d578b61b0d3e4f0d86b..7573e85cf565908b26e52cbc97a0b205678e8e6a 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index c5a0b6c07a3010e6fb82e3759f12dc589dc32c27..ab186341357aad449497b0c46b7c0d4ccbd646f6 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 0cb667d4247189f128acf67d5e9cb3cc03723966..503ca0c119a8e34981f9bb2f6fabc1ae190f163d 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index a71c9fffe88e93f543380699795a6eccd5a0ea80..2306f12d28c51de55321fa5b491250cc8831b984 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 8dc8dc13b92002c73b573959aa1bc25415e46884..ab6ec1acfe2e6a166537316aad72e0138d43e283 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 231109dfabd1c056c2f8fc3caedc2b760c7e28f0..3051dcf1eaa5208b92e0a8f76ad4a6056e26aea6 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index bda896e425de75bdb01ae902da27b46fcd1ac0a4..f9ad9377412b2cb2202d0a1fbf879534b7466eb2 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 91b0b1b43e9459ebc31242bee9356446bdf959f0..366d40ca67df25e9417fe3026c82c6e1d939e8f5 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index d1fc4689e0eaac3ff2e752c6e48e4a2060f72404..a7dd33ca7250778e026d3a8ca6054de320fa7896 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 0ffedd9508fdb05a2c0755d785cffc27ae848b08..4a15c5bdb4cd1c4835119a356e11733ab207254d 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 6b49ce8951592d33ef63a7d1e09d89231e54b48c..c17bfcc302156ba23a03e746ad0bd4b5fc4ce9be 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 1f1dfde2ffe816366531bf083d519db597e319cd..9efe10d58342fdc4ea4496e2c8740fc9844c01de 100755 (executable)
@@ -1,5 +1,5 @@
 #! /bin/env python
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index 5b9227ffdc081db850f717e2b985121755f23e43..4af7041318e884437a2e628f5469f327ef51473f 100755 (executable)
@@ -1,5 +1,5 @@
 #!/bin/bash
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index 577648e02a9f9c0fce64aadf33a297a6b110a710..ee4c211090b2e691a134317cd5286cab4e11df6f 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index 3ad68037f34494abf9880fb2c04edd4a07f76aa5..c6495ff256b840042fc18b22ddf20d6a82aea3cb 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index b28b4c755c2f2075f3d49e3f0afa2b9b6ba72483..d223d1bc2aec1eee64662d4bcc705fd014578675 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index 9d5d3dba3a495f37316fa71c7fa54614d0c87c5b..139584f3892559f9ee2405002e8ef07c7f09ed09 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index 0ed6c295a552e434561334868981b8206638a191..047589fa89695702b9f107bb6eb2da3b40c03a55 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index 41a31c5ce2f83381afa3c3d68e083c70985a503a..d732798dedba48184141616b869c400d292b6e3e 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 512591b7acc4c7c5a99f029cc011c5bb2e17fd9d..f9dc0efe3978676f3b9f5d80185a2171d6231c1b 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 69b2db7c4fba22aa7ee19d8b50172cd37f80744b..03e27a72f2a31c85c57b75a593a20c4fba759bf2 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
@@ -393,10 +393,33 @@ int MEDCouplingCMesh::getNumberOfCellsWithType(INTERP_KERNEL::NormalizedCellType
 
 void MEDCouplingCMesh::getNodeIdsOfCell(int cellId, std::vector<int>& conn) const
 {
-  //not implemented yet
+  int spaceDim=getSpaceDimension();
+  int tmpCell[3],tmpNode[3];
+  getSplitCellValues(tmpCell);
+  getSplitNodeValues(tmpNode);
+  int tmp2[3];
+  GetPosFromId(cellId,spaceDim,tmpCell,tmp2);
+  switch(spaceDim)
+    {
+    case 1:
+      conn.push_back(tmp2[0]); conn.push_back(tmp2[0]+1);
+      break;
+    case 2:
+      conn.push_back(tmp2[1]*tmpCell[1]+tmp2[0]); conn.push_back(tmp2[1]*tmpCell[1]+tmp2[0]+1);
+      conn.push_back((tmp2[1]+1)*(tmpCell[1]+1)+tmp2[0]+1); conn.push_back((tmp2[1]+1)*(tmpCell[1]+1)+tmp2[0]);
+      break;
+    case 3:
+      conn.push_back(tmp2[1]*tmpCell[1]+tmp2[0]+tmp2[2]*tmpNode[2]); conn.push_back(tmp2[1]*tmpCell[1]+tmp2[0]+1+tmp2[2]*tmpNode[2]);
+      conn.push_back((tmp2[1]+1)*tmpNode[1]+tmp2[0]+1+tmp2[2]*tmpNode[2]); conn.push_back((tmp2[1]+1)*tmpNode[1]+tmp2[0]+tmp2[2]*tmpNode[2]);
+      conn.push_back(tmp2[1]*tmpCell[1]+tmp2[0]+(tmp2[2]+1)*tmpNode[2]); conn.push_back(tmp2[1]*tmpCell[1]+tmp2[0]+1+(tmp2[2]+1)*tmpNode[2]);
+      conn.push_back((tmp2[1]+1)*tmpNode[1]+tmp2[0]+1+(tmp2[2]+1)*tmpNode[2]); conn.push_back((tmp2[1]+1)*tmpNode[1]+tmp2[0]+(tmp2[2]+1)*tmpNode[2]);
+      break;
+    default:
+      throw INTERP_KERNEL::Exception("MEDCouplingCMesh::getNodeIdsOfCell : big problem spacedim must be in 1,2 or 3 !");
+    };
 }
 
-void MEDCouplingCMesh::getCoordinatesOfNode(int nodeId, std::vector<double>& coo) const
+void MEDCouplingCMesh::getCoordinatesOfNode(int nodeId, std::vector<double>& coo) const throw(INTERP_KERNEL::Exception)
 {
   int tmp[3];
   int spaceDim=getSpaceDimension();
@@ -695,10 +718,17 @@ int MEDCouplingCMesh::getCellContainingPoint(const double *pos, double eps) cons
       const double *d=getCoordsAt(i)->getConstPointer();
       int nbOfNodes=getCoordsAt(i)->getNbOfElems();
       double ref=pos[i];
-      const double *w=std::find_if(d,d+nbOfNodes,std::bind2nd(std::greater<double>(),ref));
+      const double *w=std::find_if(d,d+nbOfNodes,std::bind2nd(std::greater_equal<double>(),ref));
       int w2=(int)std::distance(d,w);
-      if(w2<nbOfNodes && w2!=0)
+      if(w2<nbOfNodes)
         {
+          if(w2==0)
+            {
+              if(ref>d[0]-eps)
+                w2=1;
+              else
+                return -1;
+            }
           ret+=coeff*(w2-1);
           coeff*=nbOfNodes-1;
         }
index 33d316249f3c94a7bbcb96dd91b4722f2ec2482c..204299178dc96f84fe24d8649b59b63c0d61eb25 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
@@ -57,7 +57,7 @@ namespace ParaMEDMEM
     std::set<INTERP_KERNEL::NormalizedCellType> getAllGeoTypes() const;
     int getNumberOfCellsWithType(INTERP_KERNEL::NormalizedCellType type) const;
     void getNodeIdsOfCell(int cellId, std::vector<int>& conn) const;
-    void getCoordinatesOfNode(int nodeId, std::vector<double>& coo) const;
+    void getCoordinatesOfNode(int nodeId, std::vector<double>& coo) const throw(INTERP_KERNEL::Exception);
     std::string simpleRepr() const;
     std::string advancedRepr() const;
     const DataArrayDouble *getCoordsAt(int i) const throw(INTERP_KERNEL::Exception);
index 5583fe3e29164b7b82f19489ac260edda5aa6fd9..a43312d902d3ac47378101ff1c328776dd325a21 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index deb7b3a77cdb8247a5d93cfaa2aca4b92263b4d8..26ef19667d8286f6f2a2b022d7db1a7405e89500 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index d34898c83729dd1effbd222c2133a46faba86f82..68a4688747827f9e55a3ed80de15451e6dc82c41 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
@@ -44,7 +44,7 @@ using namespace ParaMEDMEM;
  * because the mesh is aggregated and potentially modified by rotate or translate method.
  * @param cell2DId Id of cell in mesh2D mesh where the computation of 1D mesh will be done.
  */
-MEDCouplingExtrudedMesh *MEDCouplingExtrudedMesh::New(const MEDCouplingUMesh *mesh3D, MEDCouplingUMesh *mesh2D, int cell2DId) throw(INTERP_KERNEL::Exception)
+MEDCouplingExtrudedMesh *MEDCouplingExtrudedMesh::New(const MEDCouplingUMesh *mesh3D, const MEDCouplingUMesh *mesh2D, int cell2DId) throw(INTERP_KERNEL::Exception)
 {
   return new MEDCouplingExtrudedMesh(mesh3D,mesh2D,cell2DId);
 }
@@ -77,8 +77,8 @@ void MEDCouplingExtrudedMesh::copyTinyStringsFrom(const MEDCouplingMesh *other)
   _mesh1D->copyTinyStringsFrom(otherC->_mesh1D);
 }
 
-MEDCouplingExtrudedMesh::MEDCouplingExtrudedMesh(const MEDCouplingUMesh *mesh3D, MEDCouplingUMesh *mesh2D, int cell2DId) throw(INTERP_KERNEL::Exception)
-try:_mesh2D(mesh2D),_mesh1D(MEDCouplingUMesh::New()),_mesh3D_ids(0),_cell_2D_id(cell2DId)
+MEDCouplingExtrudedMesh::MEDCouplingExtrudedMesh(const MEDCouplingUMesh *mesh3D, const MEDCouplingUMesh *mesh2D, int cell2DId) throw(INTERP_KERNEL::Exception)
+try:_mesh2D(const_cast<MEDCouplingUMesh *>(mesh2D)),_mesh1D(MEDCouplingUMesh::New()),_mesh3D_ids(0),_cell_2D_id(cell2DId)
 {
   if(_mesh2D!=0)
     _mesh2D->incrRef();
@@ -248,7 +248,7 @@ void MEDCouplingExtrudedMesh::getNodeIdsOfCell(int cellId, std::vector<int>& con
   conn.insert(conn.end(),tmp2.begin(),tmp2.end());
 }
 
-void MEDCouplingExtrudedMesh::getCoordinatesOfNode(int nodeId, std::vector<double>& coo) const
+void MEDCouplingExtrudedMesh::getCoordinatesOfNode(int nodeId, std::vector<double>& coo) const throw(INTERP_KERNEL::Exception)
 {
   int nbOfNodes2D=_mesh2D->getNumberOfNodes();
   int locId=nodeId%nbOfNodes2D;
index 01aedf9ea6988ee7518358f176ba3c949830c59a..1f97c9b32c3dd8e76b0c95bffa70211cb37d7c41 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
@@ -35,7 +35,7 @@ namespace ParaMEDMEM
   class MEDCOUPLING_EXPORT MEDCouplingExtrudedMesh : public MEDCouplingMesh
   {
   public:
-    static MEDCouplingExtrudedMesh *New(const MEDCouplingUMesh *mesh3D, MEDCouplingUMesh *mesh2D, int cell2DId) throw(INTERP_KERNEL::Exception);
+    static MEDCouplingExtrudedMesh *New(const MEDCouplingUMesh *mesh3D, const MEDCouplingUMesh *mesh2D, int cell2DId) throw(INTERP_KERNEL::Exception);
     static MEDCouplingExtrudedMesh *New();
     MEDCouplingMeshType getType() const;
     void copyTinyStringsFrom(const MEDCouplingMesh *other) throw(INTERP_KERNEL::Exception);
@@ -55,7 +55,7 @@ namespace ParaMEDMEM
     std::set<INTERP_KERNEL::NormalizedCellType> getAllGeoTypes() const;
     int getNumberOfCellsWithType(INTERP_KERNEL::NormalizedCellType type) const;
     void getNodeIdsOfCell(int cellId, std::vector<int>& conn) const;
-    void getCoordinatesOfNode(int nodeId, std::vector<double>& coo) const;
+    void getCoordinatesOfNode(int nodeId, std::vector<double>& coo) const throw(INTERP_KERNEL::Exception);
     std::string simpleRepr() const;
     std::string advancedRepr() const;
     void checkCoherency() const throw (INTERP_KERNEL::Exception);
@@ -96,7 +96,7 @@ namespace ParaMEDMEM
     void unserialization(const std::vector<double>& tinyInfoD, const std::vector<int>& tinyInfo, const DataArrayInt *a1, DataArrayDouble *a2,
                          const std::vector<std::string>& littleStrings);
   private:
-    MEDCouplingExtrudedMesh(const MEDCouplingUMesh *mesh3D, MEDCouplingUMesh *mesh2D, int cell2DId) throw(INTERP_KERNEL::Exception);
+    MEDCouplingExtrudedMesh(const MEDCouplingUMesh *mesh3D, const MEDCouplingUMesh *mesh2D, int cell2DId) throw(INTERP_KERNEL::Exception);
     MEDCouplingExtrudedMesh(const MEDCouplingExtrudedMesh& other, bool deepCopy);
     MEDCouplingExtrudedMesh();
     void computeExtrusion(const MEDCouplingUMesh *mesh3D) throw(INTERP_KERNEL::Exception);
index 865d4e5b1b2ab53668d287c02be635bd6f9a4c98..46f4f5b293bd0b227e9c043dead90f588aceab81 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
@@ -99,6 +99,21 @@ TypeOfField MEDCouplingField::getTypeOfField() const
   return _type->getEnum();
 }
 
+/*!
+ * This method returns the nature of field. This information is very important during interpolation process using ParaMEDMEM::MEDCouplingRemapper or ParaMEDMEM::InterpKernelDEC.
+ * In other context than the two mentioned before this attribute of the field is not sensitive. This attribute is not store in MED file in MEDLoader.
+ * More information of the semantic, and the consequence of this attribute in the result of the interpolation, is available \ref NatureOfField "here".
+ */
+NatureOfField MEDCouplingField::getNature() const
+{
+  return _nature;
+}
+
+/*!
+ * This method set the nature of field in \b this.This  information is very important during interpolation process using ParaMEDMEM::MEDCouplingRemapper or ParaMEDMEM::InterpKernelDEC.
+ * In other context than the two mentioned before this attribute of the field is not sensitive. This attribute is not store in MED file in MEDLoader.
+ * More information of the semantic, and the consequence of this attribute in the result of the interpolation, is available \ref TableNatureOfField "here".
+ */
 void MEDCouplingField::setNature(NatureOfField nat) throw(INTERP_KERNEL::Exception)
 {
   _nature=nat;
index 1b27c032c911da2385ba34f0d65d221f75392a7b..50e1ad397e248739d62a47403bbe597d95ea0153 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
@@ -54,7 +54,7 @@ namespace ParaMEDMEM
     void setDescription(const char *desc) { _desc=desc; }
     const char *getName() const { return _name.c_str(); }
     TypeOfField getTypeOfField() const;
-    NatureOfField getNature() const { return _nature; }
+    NatureOfField getNature() const;
     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);
index c8eb4d47b47d21132eda466fc40f4639e245313e..acbd40f3f0daa13e0f3a2ea846356e5a1b5519fd 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index a85cde832675c7405ac574015f061551b6dd9550..87c81c6928e45c01ba50d988c0df44466a11bb55 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 070680bc3e3d98bc78eb03468dec48c8349f4e90..dd1ba78c7296a63548d7f1b97928b51a393db2b4 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
@@ -53,10 +53,19 @@ const char *MEDCouplingFieldDouble::getTimeUnit() const
 }
 
 /*!
- * This method performs a copy of 'this'. The copy is deep if 'recDeepCpy' equals to true, soft if 'recDeepCpy' equals to false.
- * \b WARNING \b the \b underlying \b mesh of the returned field \b is \b the \b same (same pointer) \b than \b 'this'. It allows the user to perform methods
- * MEDCouplingFieldDouble::AddFields, MEDCouplingFieldDouble::MultiplyFields with 'this' and the returned field.
+ * This method performs a copy of \b this \b without \b any \b copy \b of \b the \b underlying \b mesh ( see warning section of this method).
+ * The copy of arrays is deep if \b recDeepCpy equals to true, no copy of arrays is done if \b recDeepCpy equals to false.
+ *
+ * \c clone(false) is rather dedicated for advanced users that want to limit the amount of memory.
+ * 
+ * It allows the user to perform methods
+ * MEDCouplingFieldDouble::AddFields, MEDCouplingFieldDouble::MultiplyFields with \b this and the returned field.
+ * 
+ * \warning The \b underlying \b mesh of the returned field is \b always the same (same pointer) than \b this \b whatever \b the \b value \b of \b recDeepCpy \b parameter.
  * If the user wants to duplicated deeply the underlying mesh he should call MEDCouplingFieldDouble::cloneWithMesh method or MEDCouplingFieldDouble::deepCpy instead.
+ *
+ * \param [in] recDeepCpy specifies if underlying arrays in \b this should be copied of only attached to the returned field.
+ * \return a newly allocated MEDCouplingFieldDouble instance that the caller should deal with.
  */
 MEDCouplingFieldDouble *MEDCouplingFieldDouble::clone(bool recDeepCpy) const
 {
@@ -65,8 +74,10 @@ MEDCouplingFieldDouble *MEDCouplingFieldDouble::clone(bool recDeepCpy) const
 
 /*!
  * This method behaves exactly like MEDCouplingFieldDouble::clone method \b except \b that \b here \b the \b underlying \b mesh \b is \b systematically
- * (whatever the value of the input parameter 'recDeepCpy') \b deeply \b duplicated.
- * So the resulting field of this call cannot be called with 'this' with following methods MEDCouplingFieldDouble::AddFields, MEDCouplingFieldDouble::MultiplyFields ...
+ * (whatever the value of the input parameter 'recDeepCpy') \b deeply \b duplicated.\n \n
+ * The result of \c cloneWithMesh(true) is exactly the same than calling \ref MEDCouplingFieldDouble::deepCpy "deepCpy".
+ * 
+ * So the resulting field of this call cannot be called with \b this with the following methods MEDCouplingFieldDouble::AddFields, MEDCouplingFieldDouble::MultiplyFields ...
  * To avoid to deep copy the underlying mesh the user should call MEDCouplingFieldDouble::clone method instead.
  */
 MEDCouplingFieldDouble *MEDCouplingFieldDouble::cloneWithMesh(bool recDeepCpy) const
index 520d9942abcfad12910a03c124323316989239c0..2a2936c2fbec9d5d1ee4f72b9c50e320873fd327 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 960fd0d0e7c26b270b8d887ae658b424162c43a0..eed9db85b54872ce5ae1db1a358c63b98a57681c 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 10711d637f52be67b14d083c8f0e5d2668c6197a..4c353c8e68ce1fd8d4a6b6ab7fb98a9aa87575d7 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index a72922c2b82245e6e04e0978282fc192bb8f394a..2a77f785fb571e9bbdaac526be79d35e46191cae 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 3b7fba334c6bc45cb009fa1a413ec50ee868c4e4..7c731463e1770ab061489f4d7523af19b4ccb42d 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index dfeb5f1f3610f8e391995fe3f39b1cf0288ae02c..eae9beab48a823397d28176d7da4836808c06668 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 1e275d024722605f0d354ec8a1c05d1069c55657..2660f946e67599de9222480025f1a15efe69ac93 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 21a682366c666bcc68d01eb7d80cdd300bf802e5..76a475b4efdb7ab04189f6128fad5cb5c6208e9e 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
@@ -315,6 +315,26 @@ int DataArray::GetNumberOfItemGivenBES(int begin, int end, int step, const char
   return (end-1-begin)/step+1;
 }
 
+int DataArray::GetNumberOfItemGivenBESRelative(int begin, int end, int step, const char *msg) throw(INTERP_KERNEL::Exception)
+{
+  if(step==0)
+    throw INTERP_KERNEL::Exception("DataArray::GetNumberOfItemGivenBES : step=0 is not allowed !");
+  if(end<begin && step>0)
+    {
+      std::ostringstream oss; oss << msg << " : end before begin whereas step is positive !";
+      throw INTERP_KERNEL::Exception(oss.str().c_str());
+    }
+  if(begin<end && step<0)
+    {
+      std::ostringstream oss; oss << msg << " : invalid step should be > 0 !";
+      throw INTERP_KERNEL::Exception(oss.str().c_str());
+    }
+  if(begin!=end)
+    return (std::max(begin,end)-1-std::min(begin,end))/std::abs(step)+1;
+  else
+    return 0;
+}
+
 DataArrayDouble *DataArrayDouble::New()
 {
   return new DataArrayDouble;
@@ -423,8 +443,10 @@ void DataArrayDouble::allocIfNecessary(int nbOfTuple, int nbOfCompo)
     alloc(nbOfTuple,nbOfCompo);
 }
 
-void DataArrayDouble::alloc(int nbOfTuple, int nbOfCompo)
+void DataArrayDouble::alloc(int nbOfTuple, int nbOfCompo) throw(INTERP_KERNEL::Exception)
 {
+  if(nbOfTuple<0 || nbOfCompo<0)
+    throw INTERP_KERNEL::Exception("DataArrayDouble::alloc : request for negative length of data !");
   _nb_of_tuples=nbOfTuple;
   _info_on_compo.resize(nbOfCompo);
   _mem.alloc(nbOfCompo*_nb_of_tuples);
@@ -943,6 +965,18 @@ void DataArrayDouble::rearrange(int newNbOfCompo) throw(INTERP_KERNEL::Exception
   declareAsNew();
 }
 
+/*!
+ * This method makes the assumption that \b this is allocated. If not an INTERP_KERNEL::Exception will be raised.
+ * This method does not echange the values stored in \b this. Simply, the number of components before the call becomes the number of
+ * tuples and inversely the number of tuples becomes the number of components. \b WARNING the info on components can be alterated by this method.
+ */
+void DataArrayDouble::transpose() throw(INTERP_KERNEL::Exception)
+{
+  checkAllocated();
+  int nbOfTuples=getNumberOfTuples();
+  rearrange(nbOfTuples);
+}
+
 DataArrayDouble *DataArrayDouble::keepSelectedComponents(const std::vector<int>& compoIds) const throw(INTERP_KERNEL::Exception)
 {
   checkAllocated();
@@ -1387,6 +1421,27 @@ void DataArrayDouble::setContigPartOfSelectedValues2(int tupleIdStart, const Dat
     }
 }
 
+/*!
+ * This method is equivalent to DataArrayDouble::getIJ except that here \b tupleId is checked to be in [0,this->getNumberOfTuples()) and compoId to be in [0,this->getNumberOfComponents()).
+ * If one of these check fails an INTERP_KERNEL::Exception will be thrown.
+ * So this method is safe but expensive if used to go through all data of \b this.
+ */
+double DataArrayDouble::getIJSafe(int tupleId, int compoId) const throw(INTERP_KERNEL::Exception)
+{
+  checkAllocated();
+  if(tupleId<0 || tupleId>=getNumberOfTuples())
+    {
+      std::ostringstream oss; oss << "DataArrayDouble::getIJSafe : request for tupleId " << tupleId << " should be in [0," << getNumberOfTuples() << ") !";
+      throw INTERP_KERNEL::Exception(oss.str().c_str());
+    }
+  if(compoId<0 || compoId>=getNumberOfComponents())
+    {
+      std::ostringstream oss; oss << "DataArrayDouble::getIJSafe : request for compoId " << compoId << " should be in [0," << getNumberOfComponents() << ") !";
+      throw INTERP_KERNEL::Exception(oss.str().c_str());
+    }
+  return _mem[tupleId*((int)_info_on_compo.size())+compoId];
+}
+
 /*!
  * This method returns the last element in 'this'. So this method makes the hypothesis that 'this' is allocated.
  * This method works only for arrays that have exactly number of components equal to 1. If not an exception is thrown.
@@ -1432,6 +1487,41 @@ void DataArrayDouble::checkNoNullValues() const throw(INTERP_KERNEL::Exception)
     throw INTERP_KERNEL::Exception("A value 0.0 have been detected !");
 }
 
+/*!
+ * This method assume that \b this is allocated. If not an INTERP_KERNEL::Exception will be thrown.
+ * This method fills \b bounds params like that : \b bounds[0]=XMin, \b bounds[1]=XMax, \b bounds[2]=YMin, \b bounds[3]=YMax...
+ * Where X refers to component #0, and Y to component #1...
+ * This method set 2*this->getNumberOfComponents() elements in \b bounds, so it is up to the caller to allocated enough space before calling this method.
+ *
+ * @param [out] bounds array of size 2*this->getNumberOfComponents().
+ */
+void DataArrayDouble::getMinMaxPerComponent(double *bounds) const throw(INTERP_KERNEL::Exception)
+{
+  checkAllocated();
+  int dim=getNumberOfComponents();
+  for (int idim=0; idim<dim; idim++)
+    {
+      bounds[idim*2]=std::numeric_limits<double>::max();
+      bounds[idim*2+1]=-std::numeric_limits<double>::max();
+    } 
+  const double *ptr=getConstPointer();
+  int nbOfTuples=getNumberOfTuples();
+  for(int i=0;i<nbOfTuples;i++)
+    {
+      for(int idim=0;idim<dim;idim++)
+        {
+          if(bounds[idim*2]>ptr[i*dim+idim])
+            {
+              bounds[idim*2]=ptr[i*dim+idim];
+            }
+          if(bounds[idim*2+1]<ptr[i*dim+idim])
+            {
+              bounds[idim*2+1]=ptr[i*dim+idim];
+            }
+        }
+    }
+}
+
 double DataArrayDouble::getMaxValue(int& tupleId) const throw(INTERP_KERNEL::Exception)
 {
   if(getNumberOfComponents()!=1)
@@ -1889,6 +1979,23 @@ void DataArrayDouble::applyInv(double numerator) throw(INTERP_KERNEL::Exception)
   declareAsNew();
 }
 
+/*!
+ * This method returns a newly allocated array containing the application of negate on \b this.
+ * This method throws an INTERP_KERNEL::Exception if \b this is not allocated.
+ */
+DataArrayDouble *DataArrayDouble::negate() const throw(INTERP_KERNEL::Exception)
+{
+  checkAllocated();
+  DataArrayDouble *newArr=DataArrayDouble::New();
+  int nbOfTuples=getNumberOfTuples();
+  int nbOfComp=getNumberOfComponents();
+  newArr->alloc(nbOfTuples,nbOfComp);
+  const double *cptr=getConstPointer();
+  std::transform(cptr,cptr+nbOfTuples*nbOfComp,newArr->getPointer(),std::negate<double>());
+  newArr->copyStringInfoFrom(*this);
+  return newArr;
+}
+
 DataArrayDouble *DataArrayDouble::applyFunc(int nbOfComp, FunctionToEvaluate func) const throw(INTERP_KERNEL::Exception)
 {
   checkAllocated();
@@ -2300,22 +2407,88 @@ DataArrayDouble *DataArrayDouble::Min(const DataArrayDouble *a1, const DataArray
 
 DataArrayDouble *DataArrayDouble::Add(const DataArrayDouble *a1, const DataArrayDouble *a2) throw(INTERP_KERNEL::Exception)
 {
-  int nbOfTuple=a2->getNumberOfTuples();
-  int nbOfComp=a2->getNumberOfComponents();
-  a1->checkNbOfTuplesAndComp(nbOfTuple,nbOfComp,"Nb of components mismatch for array Add !");
-  DataArrayDouble *ret=DataArrayDouble::New();
-  ret->alloc(nbOfTuple,nbOfComp);
-  std::transform(a1->begin(),a1->end(),a2->begin(),ret->getPointer(),std::plus<double>());
-  ret->copyStringInfoFrom(*a1);
+  int nbOfTuple=a1->getNumberOfTuples();
+  int nbOfTuple2=a2->getNumberOfTuples();
+  int nbOfComp=a1->getNumberOfComponents();
+  int nbOfComp2=a2->getNumberOfComponents();
+  if(nbOfTuple!=nbOfTuple2)
+    throw INTERP_KERNEL::Exception("Nb of tuples mismatch for array Add !");
+  DataArrayDouble *ret=0;
+  if(nbOfComp==nbOfComp2)
+    {
+      ret=DataArrayDouble::New();
+      ret->alloc(nbOfTuple,nbOfComp);
+      std::transform(a1->begin(),a1->end(),a2->begin(),ret->getPointer(),std::plus<double>());
+      ret->copyStringInfoFrom(*a1);
+    }
+  else
+    {
+      int nbOfCompMin,nbOfCompMax;
+      const DataArrayDouble *aMin, *aMax;
+      if(nbOfComp>nbOfComp2)
+        {
+          nbOfCompMin=nbOfComp2; nbOfCompMax=nbOfComp;
+          aMin=a2; aMax=a1;
+        }
+      else
+        {
+          nbOfCompMin=nbOfComp; nbOfCompMax=nbOfComp2;
+          aMin=a1; aMax=a2;
+        }
+      if(nbOfCompMin==1)
+        {
+          ret=DataArrayDouble::New();
+          ret->alloc(nbOfTuple,nbOfCompMax);
+          const double *aMinPtr=aMin->getConstPointer();
+          const double *aMaxPtr=aMax->getConstPointer();
+          double *res=ret->getPointer();
+          for(int i=0;i<nbOfTuple;i++)
+            res=std::transform(aMaxPtr+i*nbOfCompMax,aMaxPtr+(i+1)*nbOfCompMax,res,std::bind2nd(std::plus<double>(),aMinPtr[i]));
+          ret->copyStringInfoFrom(*aMax);
+        }
+      else
+        throw INTERP_KERNEL::Exception("Nb of components mismatch for array Add !");
+    }
   return ret;
 }
 
 void DataArrayDouble::addEqual(const DataArrayDouble *other) throw(INTERP_KERNEL::Exception)
 {
-  int nbOfTuple=other->getNumberOfTuples();
-  int nbOfComp=other->getNumberOfComponents();
-  checkNbOfTuplesAndComp(nbOfTuple,nbOfComp,"Nb of components mismatch for array add equal !");
-  std::transform(begin(),end(),other->begin(),getPointer(),std::plus<double>());
+  const char *msg="Nb of tuples mismatch for DataArrayDouble::addEqual  !";
+  int nbOfTuple=getNumberOfTuples();
+  int nbOfTuple2=other->getNumberOfTuples();
+  int nbOfComp=getNumberOfComponents();
+  int nbOfComp2=other->getNumberOfComponents();
+  if(nbOfTuple==nbOfTuple2)
+    {
+      if(nbOfComp==nbOfComp2)
+        {
+          std::transform(begin(),end(),other->begin(),getPointer(),std::plus<double>());
+        }
+      else if(nbOfComp2==1)
+        {
+          double *ptr=getPointer();
+          const double *ptrc=other->getConstPointer();
+          for(int i=0;i<nbOfTuple;i++)
+            std::transform(ptr+i*nbOfComp,ptr+(i+1)*nbOfComp,ptr+i*nbOfComp,std::bind2nd(std::plus<double>(),*ptrc++));
+        }
+      else
+        throw INTERP_KERNEL::Exception(msg);
+    }
+  else if(nbOfTuple2==1)
+    {
+      if(nbOfComp2==nbOfComp)
+        {
+          double *ptr=getPointer();
+          const double *ptrc=other->getConstPointer();
+          for(int i=0;i<nbOfTuple;i++)
+            std::transform(ptr+i*nbOfComp,ptr+(i+1)*nbOfComp,ptrc,ptr+i*nbOfComp,std::plus<double>());
+        }
+      else
+        throw INTERP_KERNEL::Exception(msg);
+    }
+  else
+    throw INTERP_KERNEL::Exception(msg);
   declareAsNew();
 }
 
@@ -2333,10 +2506,41 @@ DataArrayDouble *DataArrayDouble::Substract(const DataArrayDouble *a1, const Dat
 
 void DataArrayDouble::substractEqual(const DataArrayDouble *other) throw(INTERP_KERNEL::Exception)
 {
-  int nbOfTuple=other->getNumberOfTuples();
-  int nbOfComp=other->getNumberOfComponents();
-  checkNbOfTuplesAndComp(nbOfTuple,nbOfComp,"Nb of components mismatch for array substract equal !");
-  std::transform(begin(),end(),other->begin(),getPointer(),std::minus<double>());
+  const char *msg="Nb of tuples mismatch for DataArrayDouble::substractEqual  !";
+  int nbOfTuple=getNumberOfTuples();
+  int nbOfTuple2=other->getNumberOfTuples();
+  int nbOfComp=getNumberOfComponents();
+  int nbOfComp2=other->getNumberOfComponents();
+  if(nbOfTuple==nbOfTuple2)
+    {
+      if(nbOfComp==nbOfComp2)
+        {
+          std::transform(begin(),end(),other->begin(),getPointer(),std::minus<double>());
+        }
+      else if(nbOfComp2==1)
+        {
+          double *ptr=getPointer();
+          const double *ptrc=other->getConstPointer();
+          for(int i=0;i<nbOfTuple;i++)
+            std::transform(ptr+i*nbOfComp,ptr+(i+1)*nbOfComp,ptr+i*nbOfComp,std::bind2nd(std::minus<double>(),*ptrc++)); 
+        }
+      else
+        throw INTERP_KERNEL::Exception(msg);
+    }
+  else if(nbOfTuple2==1)
+    {
+      if(nbOfComp2==nbOfComp)
+        {
+          double *ptr=getPointer();
+          const double *ptrc=other->getConstPointer();
+          for(int i=0;i<nbOfTuple;i++)
+            std::transform(ptr+i*nbOfComp,ptr+(i+1)*nbOfComp,ptrc,ptr+i*nbOfComp,std::minus<double>());
+        }
+      else
+        throw INTERP_KERNEL::Exception(msg);
+    }
+  else
+    throw INTERP_KERNEL::Exception(msg);
   declareAsNew();
 }
 
@@ -2389,28 +2593,41 @@ DataArrayDouble *DataArrayDouble::Multiply(const DataArrayDouble *a1, const Data
 
 void DataArrayDouble::multiplyEqual(const DataArrayDouble *other) throw(INTERP_KERNEL::Exception)
 {
+  const char *msg="Nb of tuples mismatch for DataArrayDouble::multiplyEqual !";
   int nbOfTuple=getNumberOfTuples();
   int nbOfTuple2=other->getNumberOfTuples();
   int nbOfComp=getNumberOfComponents();
   int nbOfComp2=other->getNumberOfComponents();
-  if(nbOfTuple!=nbOfTuple2)
-    throw INTERP_KERNEL::Exception("Nb of tuples mismatch for array multiplyEqual !");
-  if(nbOfComp==nbOfComp2)
+  if(nbOfTuple==nbOfTuple2)
     {
-      std::transform(begin(),end(),other->begin(),getPointer(),std::multiplies<double>());
+      if(nbOfComp==nbOfComp2)
+        {
+          std::transform(begin(),end(),other->begin(),getPointer(),std::multiplies<double>());
+        }
+      else if(nbOfComp2==1)
+        {
+          double *ptr=getPointer();
+          const double *ptrc=other->getConstPointer();
+          for(int i=0;i<nbOfTuple;i++)
+            std::transform(ptr+i*nbOfComp,ptr+(i+1)*nbOfComp,ptr+i*nbOfComp,std::bind2nd(std::multiplies<double>(),*ptrc++));
+        }
+      else
+        throw INTERP_KERNEL::Exception(msg);
     }
-  else
+  else if(nbOfTuple2==1)
     {
-      if(nbOfComp2==1)
+      if(nbOfComp2==nbOfComp)
         {
-          const double *ptr=other->getConstPointer();
-          double *myPtr=getPointer();
+          double *ptr=getPointer();
+          const double *ptrc=other->getConstPointer();
           for(int i=0;i<nbOfTuple;i++)
-            myPtr=std::transform(myPtr,myPtr+nbOfComp,myPtr,std::bind2nd(std::multiplies<double>(),ptr[i]));
+            std::transform(ptr+i*nbOfComp,ptr+(i+1)*nbOfComp,ptrc,ptr+i*nbOfComp,std::multiplies<double>());
         }
       else
-        throw INTERP_KERNEL::Exception("Nb of components mismatch for array multiplyEqual !");
+        throw INTERP_KERNEL::Exception(msg);
     }
+  else
+    throw INTERP_KERNEL::Exception(msg);
   declareAsNew();
 }
 
@@ -2451,28 +2668,41 @@ DataArrayDouble *DataArrayDouble::Divide(const DataArrayDouble *a1, const DataAr
 
 void DataArrayDouble::divideEqual(const DataArrayDouble *other) throw(INTERP_KERNEL::Exception)
 {
+  const char *msg="Nb of tuples mismatch for DataArrayDouble::divideEqual !";
   int nbOfTuple=getNumberOfTuples();
   int nbOfTuple2=other->getNumberOfTuples();
   int nbOfComp=getNumberOfComponents();
   int nbOfComp2=other->getNumberOfComponents();
-  if(nbOfTuple!=nbOfTuple2)
-    throw INTERP_KERNEL::Exception("Nb of tuples mismatch for array divideEqual !");
-  if(nbOfComp==nbOfComp2)
+  if(nbOfTuple==nbOfTuple2)
     {
-      std::transform(begin(),end(),other->begin(),getPointer(),std::divides<double>());
+      if(nbOfComp==nbOfComp2)
+        {
+          std::transform(begin(),end(),other->begin(),getPointer(),std::divides<double>());
+        }
+      else if(nbOfComp2==1)
+        {
+          double *ptr=getPointer();
+          const double *ptrc=other->getConstPointer();
+          for(int i=0;i<nbOfTuple;i++)
+            std::transform(ptr+i*nbOfComp,ptr+(i+1)*nbOfComp,ptr+i*nbOfComp,std::bind2nd(std::divides<double>(),*ptrc++));
+        }
+      else
+        throw INTERP_KERNEL::Exception(msg);
     }
-  else
+  else if(nbOfTuple2==1)
     {
-      if(nbOfComp2==1)
+      if(nbOfComp2==nbOfComp)
         {
-          const double *ptr=other->getConstPointer();
-          double *myPtr=getPointer();
+          double *ptr=getPointer();
+          const double *ptrc=other->getConstPointer();
           for(int i=0;i<nbOfTuple;i++)
-            myPtr=std::transform(myPtr,myPtr+nbOfComp,myPtr,std::bind2nd(std::divides<double>(),ptr[i]));
+            std::transform(ptr+i*nbOfComp,ptr+(i+1)*nbOfComp,ptrc,ptr+i*nbOfComp,std::divides<double>());
         }
       else
-        throw INTERP_KERNEL::Exception("Nb of components mismatch for array divideEqual !");
+        throw INTERP_KERNEL::Exception(msg);
     }
+  else
+    throw INTERP_KERNEL::Exception(msg);
   declareAsNew();
 }
 
@@ -2600,6 +2830,28 @@ double DataArrayDoubleTuple::doubleValue() const throw(INTERP_KERNEL::Exception)
   throw INTERP_KERNEL::Exception("DataArrayDoubleTuple::doubleValue : DataArrayDoubleTuple instance has not exactly 1 component -> Not possible to convert it into a double precision float !");
 }
 
+/*!
+ * This method returns a newly allocated instance the caller should dealed with by a ParaMEDMEM::DataArrayDouble::decrRef.
+ * This method performs \b no copy of data. The content is only referenced using ParaMEDMEM::DataArrayDouble::useArray with ownership set to \b false.
+ * This method throws an INTERP_KERNEL::Exception is it is impossible to match sizes of \b this that is too say \b nbOfCompo=this->_nb_of_elem and \bnbOfTuples==1 or
+ * \b nbOfCompo=1 and \bnbOfTuples==this->_nb_of_elem.
+ */
+DataArrayDouble *DataArrayDoubleTuple::buildDADouble(int nbOfTuples, int nbOfCompo) const throw(INTERP_KERNEL::Exception)
+{
+  if((_nb_of_compo==nbOfCompo && nbOfTuples==1) || (_nb_of_compo==nbOfTuples && nbOfCompo==1))
+    {
+      DataArrayDouble *ret=DataArrayDouble::New();
+      ret->useArray(_pt,false,CPP_DEALLOC,nbOfTuples,nbOfCompo);
+      return ret;
+    }
+  else
+    {
+      std::ostringstream oss; oss << "DataArrayDoubleTuple::buildDADouble : unable to build a requested DataArrayDouble instance with nbofTuple=" << nbOfTuples << " and nbOfCompo=" << nbOfCompo;
+      oss << ".\nBecause the number of elements in this is " << _nb_of_compo << " !";
+      throw INTERP_KERNEL::Exception(oss.str().c_str());
+    }
+}
+
 DataArrayInt *DataArrayInt::New()
 {
   return new DataArrayInt;
@@ -2657,6 +2909,24 @@ int DataArrayInt::intValue() const throw(INTERP_KERNEL::Exception)
     throw INTERP_KERNEL::Exception("DataArrayInt::intValue : DataArrayInt instance is not allocated !");
 }
 
+/*!
+ * This method expects that \b this is well allocated. If not an INTERP_KERNEL::Exception will be thrown. This method is useful for a quick comparison of many instances of DataArrayInt.
+ */
+int DataArrayInt::getHashCode() const throw(INTERP_KERNEL::Exception)
+{
+  checkAllocated();
+  int nbOfElems=getNbOfElems();
+  int ret=nbOfElems*65536;
+  int delta=3;
+  if(nbOfElems>48)
+    delta=nbOfElems/8;
+  int ret0=0;
+  const int *pt=begin();
+  for(int i=0;i<nbOfElems;i+=delta)
+    ret0+=pt[i] & 0x1FFF;
+  return ret+ret0;
+}
+
 /*!
  * This method should be called on an allocated DataArrayInt instance. If not an exception will be throw !
  * This method checks the number of tupes. If it is equal to 0, it returns true, if not false is returned.
@@ -2708,8 +2978,10 @@ void DataArrayInt::allocIfNecessary(int nbOfTuple, int nbOfCompo)
     alloc(nbOfTuple,nbOfCompo);
 }
 
-void DataArrayInt::alloc(int nbOfTuple, int nbOfCompo)
+void DataArrayInt::alloc(int nbOfTuple, int nbOfCompo) throw(INTERP_KERNEL::Exception)
 {
+  if(nbOfTuple<0 || nbOfCompo<0)
+    throw INTERP_KERNEL::Exception("DataArrayDouble::alloc : request for negative length of data !");
   _nb_of_tuples=nbOfTuple;
   _info_on_compo.resize(nbOfCompo);
   _mem.alloc(nbOfCompo*_nb_of_tuples);
@@ -3514,6 +3786,18 @@ void DataArrayInt::rearrange(int newNbOfCompo) throw(INTERP_KERNEL::Exception)
   declareAsNew();
 }
 
+/*!
+ * This method makes the assumption that \b this is allocated. If not an INTERP_KERNEL::Exception will be raised.
+ * This method does not echange the values stored in \b this. Simply, the number of components before the call becomes the number of
+ * tuples and inversely the number of tuples becomes the number of components. \b WARNING the info on components can be alterated by this method.
+ */
+void DataArrayInt::transpose() throw(INTERP_KERNEL::Exception)
+{
+  checkAllocated();
+  int nbOfTuples=getNumberOfTuples();
+  rearrange(nbOfTuples);
+}
+
 /*!
  * This method builds a new instance of DataArrayInt (to deal with) that is reduction or an extension of 'this'.
  * if 'newNbOfComp' < this->getNumberOfComponents() a reduction is done and for each tuple 'newNbOfComp' first components are kept.
@@ -3916,6 +4200,27 @@ void DataArrayInt::setContigPartOfSelectedValues2(int tupleIdStart, const DataAr
     }
 }
 
+/*!
+ * This method is equivalent to DataArrayInt::getIJ except that here \b tupleId is checked to be in [0,this->getNumberOfTuples()) and compoId to be in [0,this->getNumberOfComponents()).
+ * If one of these check fails an INTERP_KERNEL::Exception will be thrown.
+ * So this method is safe but expensive if used to go through all data of \b this.
+ */
+int DataArrayInt::getIJSafe(int tupleId, int compoId) const throw(INTERP_KERNEL::Exception)
+{
+  checkAllocated();
+  if(tupleId<0 || tupleId>=getNumberOfTuples())
+    {
+      std::ostringstream oss; oss << "DataArrayInt::getIJSafe : request for tupleId " << tupleId << " should be in [0," << getNumberOfTuples() << ") !";
+      throw INTERP_KERNEL::Exception(oss.str().c_str());
+    }
+  if(compoId<0 || compoId>=getNumberOfComponents())
+    {
+      std::ostringstream oss; oss << "DataArrayInt::getIJSafe : request for compoId " << compoId << " should be in [0," << getNumberOfComponents() << ") !";
+      throw INTERP_KERNEL::Exception(oss.str().c_str());
+    }
+  return _mem[tupleId*((int)_info_on_compo.size())+compoId];
+}
+
 /*!
  * This method returns the last element in 'this'. So this method makes the hypothesis that 'this' is allocated.
  * This method works only for arrays that have exactly number of components equal to 1. If not an exception is thrown.
@@ -4170,6 +4475,23 @@ void DataArrayInt::applyLin(int a, int b) throw(INTERP_KERNEL::Exception)
   declareAsNew();
 }
 
+/*!
+ * This method returns a newly allocated array containing the application of negate on \b this.
+ * This method throws an INTERP_KERNEL::Exception if \b this is not allocated.
+ */
+DataArrayInt *DataArrayInt::negate() const throw(INTERP_KERNEL::Exception)
+{
+  checkAllocated();
+  DataArrayInt *newArr=DataArrayInt::New();
+  int nbOfTuples=getNumberOfTuples();
+  int nbOfComp=getNumberOfComponents();
+  newArr->alloc(nbOfTuples,nbOfComp);
+  const int *cptr=getConstPointer();
+  std::transform(cptr,cptr+nbOfTuples*nbOfComp,newArr->getPointer(),std::negate<int>());
+  newArr->copyStringInfoFrom(*this);
+  return newArr;
+}
+
 /*!
  * This method applies the operation 'numerator/x' for each element 'x' in 'this'.
  * If there is a value in 'this' exactly equal to 0. an exception is thrown.
@@ -4603,22 +4925,88 @@ std::set<int> DataArrayInt::getDifferentValues() const throw(INTERP_KERNEL::Exce
 
 DataArrayInt *DataArrayInt::Add(const DataArrayInt *a1, const DataArrayInt *a2) throw(INTERP_KERNEL::Exception)
 {
-  int nbOfTuple=a2->getNumberOfTuples();
-  int nbOfComp=a2->getNumberOfComponents();
-  a1->checkNbOfTuplesAndComp(nbOfTuple,nbOfComp,"Nb of components mismatch for array Add !");
-  DataArrayInt *ret=DataArrayInt::New();
-  ret->alloc(nbOfTuple,nbOfComp);
-  std::transform(a1->begin(),a1->end(),a2->begin(),ret->getPointer(),std::plus<int>());
-  ret->copyStringInfoFrom(*a1);
+  int nbOfTuple=a1->getNumberOfTuples();
+  int nbOfTuple2=a2->getNumberOfTuples();
+  int nbOfComp=a1->getNumberOfComponents();
+  int nbOfComp2=a2->getNumberOfComponents();
+  if(nbOfTuple!=nbOfTuple2)
+    throw INTERP_KERNEL::Exception("Nb of tuples mismatch for array Add !");
+  DataArrayInt *ret=0;
+  if(nbOfComp==nbOfComp2)
+    {
+      ret=DataArrayInt::New();
+      ret->alloc(nbOfTuple,nbOfComp);
+      std::transform(a1->begin(),a1->end(),a2->begin(),ret->getPointer(),std::plus<int>());
+      ret->copyStringInfoFrom(*a1);
+    }
+  else
+    {
+      int nbOfCompMin,nbOfCompMax;
+      const DataArrayInt *aMin, *aMax;
+      if(nbOfComp>nbOfComp2)
+        {
+          nbOfCompMin=nbOfComp2; nbOfCompMax=nbOfComp;
+          aMin=a2; aMax=a1;
+        }
+      else
+        {
+          nbOfCompMin=nbOfComp; nbOfCompMax=nbOfComp2;
+          aMin=a1; aMax=a2;
+        }
+      if(nbOfCompMin==1)
+        {
+          ret=DataArrayInt::New();
+          ret->alloc(nbOfTuple,nbOfCompMax);
+          const int *aMinPtr=aMin->getConstPointer();
+          const int *aMaxPtr=aMax->getConstPointer();
+          int *res=ret->getPointer();
+          for(int i=0;i<nbOfTuple;i++)
+            res=std::transform(aMaxPtr+i*nbOfCompMax,aMaxPtr+(i+1)*nbOfCompMax,res,std::bind2nd(std::plus<int>(),aMinPtr[i]));
+          ret->copyStringInfoFrom(*aMax);
+        }
+      else
+        throw INTERP_KERNEL::Exception("Nb of components mismatch for array Add !");
+    }
   return ret;
 }
 
 void DataArrayInt::addEqual(const DataArrayInt *other) throw(INTERP_KERNEL::Exception)
 {
-  int nbOfTuple=other->getNumberOfTuples();
-  int nbOfComp=other->getNumberOfComponents();
-  checkNbOfTuplesAndComp(nbOfTuple,nbOfComp,"Nb of components mismatch for array add equal !");
-  std::transform(begin(),end(),other->begin(),getPointer(),std::plus<int>());
+  const char *msg="Nb of tuples mismatch for DataArrayInt::addEqual  !";
+  int nbOfTuple=getNumberOfTuples();
+  int nbOfTuple2=other->getNumberOfTuples();
+  int nbOfComp=getNumberOfComponents();
+  int nbOfComp2=other->getNumberOfComponents();
+  if(nbOfTuple==nbOfTuple2)
+    {
+      if(nbOfComp==nbOfComp2)
+        {
+          std::transform(begin(),end(),other->begin(),getPointer(),std::plus<int>());
+        }
+      else if(nbOfComp2==1)
+        {
+          int *ptr=getPointer();
+          const int *ptrc=other->getConstPointer();
+          for(int i=0;i<nbOfTuple;i++)
+            std::transform(ptr+i*nbOfComp,ptr+(i+1)*nbOfComp,ptr+i*nbOfComp,std::bind2nd(std::plus<int>(),*ptrc++));
+        }
+      else
+        throw INTERP_KERNEL::Exception(msg);
+    }
+  else if(nbOfTuple2==1)
+    {
+      if(nbOfComp2==nbOfComp)
+        {
+          int *ptr=getPointer();
+          const int *ptrc=other->getConstPointer();
+          for(int i=0;i<nbOfTuple;i++)
+            std::transform(ptr+i*nbOfComp,ptr+(i+1)*nbOfComp,ptrc,ptr+i*nbOfComp,std::plus<int>());
+        }
+      else
+        throw INTERP_KERNEL::Exception(msg);
+    }
+  else
+    throw INTERP_KERNEL::Exception(msg);
   declareAsNew();
 }
 
@@ -4636,10 +5024,36 @@ DataArrayInt *DataArrayInt::Substract(const DataArrayInt *a1, const DataArrayInt
 
 void DataArrayInt::substractEqual(const DataArrayInt *other) throw(INTERP_KERNEL::Exception)
 {
-  int nbOfTuple=other->getNumberOfTuples();
-  int nbOfComp=other->getNumberOfComponents();
-  checkNbOfTuplesAndComp(nbOfTuple,nbOfComp,"Nb of components mismatch for array substract equal !");
-  std::transform(begin(),end(),other->begin(),getPointer(),std::minus<int>());
+  const char *msg="Nb of tuples mismatch for DataArrayInt::substractEqual  !";
+  int nbOfTuple=getNumberOfTuples();
+  int nbOfTuple2=other->getNumberOfTuples();
+  int nbOfComp=getNumberOfComponents();
+  int nbOfComp2=other->getNumberOfComponents();
+  if(nbOfTuple==nbOfTuple2)
+    {
+      if(nbOfComp==nbOfComp2)
+        {
+          std::transform(begin(),end(),other->begin(),getPointer(),std::minus<int>());
+        }
+      else if(nbOfComp2==1)
+        {
+          int *ptr=getPointer();
+          const int *ptrc=other->getConstPointer();
+          for(int i=0;i<nbOfTuple;i++)
+            std::transform(ptr+i*nbOfComp,ptr+(i+1)*nbOfComp,ptr+i*nbOfComp,std::bind2nd(std::minus<int>(),*ptrc++));
+        }
+      else
+        throw INTERP_KERNEL::Exception(msg);
+    }
+  else if(nbOfTuple2==1)
+    {
+      int *ptr=getPointer();
+      const int *ptrc=other->getConstPointer();
+      for(int i=0;i<nbOfTuple;i++)
+        std::transform(ptr+i*nbOfComp,ptr+(i+1)*nbOfComp,ptrc,ptr+i*nbOfComp,std::minus<int>());
+    }
+  else
+    throw INTERP_KERNEL::Exception(msg);
   declareAsNew();
 }
 
@@ -4692,28 +5106,41 @@ DataArrayInt *DataArrayInt::Multiply(const DataArrayInt *a1, const DataArrayInt
 
 void DataArrayInt::multiplyEqual(const DataArrayInt *other) throw(INTERP_KERNEL::Exception)
 {
+  const char *msg="Nb of tuples mismatch for DataArrayInt::multiplyEqual !";
   int nbOfTuple=getNumberOfTuples();
   int nbOfTuple2=other->getNumberOfTuples();
   int nbOfComp=getNumberOfComponents();
   int nbOfComp2=other->getNumberOfComponents();
-  if(nbOfTuple!=nbOfTuple2)
-    throw INTERP_KERNEL::Exception("Nb of tuples mismatch for array multiplyEqual !");
-  if(nbOfComp==nbOfComp2)
+  if(nbOfTuple==nbOfTuple2)
     {
-      std::transform(begin(),end(),other->begin(),getPointer(),std::multiplies<int>());
+      if(nbOfComp==nbOfComp2)
+        {
+          std::transform(begin(),end(),other->begin(),getPointer(),std::multiplies<int>());
+        }
+      else if(nbOfComp2==1)
+        {
+          int *ptr=getPointer();
+          const int *ptrc=other->getConstPointer();
+          for(int i=0;i<nbOfTuple;i++)
+            std::transform(ptr+i*nbOfComp,ptr+(i+1)*nbOfComp,ptr+i*nbOfComp,std::bind2nd(std::multiplies<int>(),*ptrc++));    
+        }
+      else
+        throw INTERP_KERNEL::Exception(msg);
     }
-  else
+  else if(nbOfTuple2==1)
     {
-      if(nbOfComp2==1)
+      if(nbOfComp2==nbOfComp)
         {
-          const int *ptr=other->getConstPointer();
-          int *myPtr=getPointer();
+          int *ptr=getPointer();
+          const int *ptrc=other->getConstPointer();
           for(int i=0;i<nbOfTuple;i++)
-            myPtr=std::transform(myPtr,myPtr+nbOfComp,myPtr,std::bind2nd(std::multiplies<int>(),ptr[i]));
+            std::transform(ptr+i*nbOfComp,ptr+(i+1)*nbOfComp,ptrc,ptr+i*nbOfComp,std::multiplies<int>());
         }
       else
-        throw INTERP_KERNEL::Exception("Nb of components mismatch for array multiplyEqual !");
+        throw INTERP_KERNEL::Exception(msg);
     }
+  else
+    throw INTERP_KERNEL::Exception(msg);
   declareAsNew();
 }
 
@@ -4754,28 +5181,41 @@ DataArrayInt *DataArrayInt::Divide(const DataArrayInt *a1, const DataArrayInt *a
 
 void DataArrayInt::divideEqual(const DataArrayInt *other) throw(INTERP_KERNEL::Exception)
 {
+  const char *msg="Nb of tuples mismatch for DataArrayInt::divideEqual !";
   int nbOfTuple=getNumberOfTuples();
   int nbOfTuple2=other->getNumberOfTuples();
   int nbOfComp=getNumberOfComponents();
   int nbOfComp2=other->getNumberOfComponents();
-  if(nbOfTuple!=nbOfTuple2)
-    throw INTERP_KERNEL::Exception("Nb of tuples mismatch for array divideEqual !");
-  if(nbOfComp==nbOfComp2)
+  if(nbOfTuple==nbOfTuple2)
     {
-      std::transform(begin(),end(),other->begin(),getPointer(),std::divides<int>());
+      if(nbOfComp==nbOfComp2)
+        {
+          std::transform(begin(),end(),other->begin(),getPointer(),std::divides<int>());
+        }
+      else if(nbOfComp2==1)
+        {
+          int *ptr=getPointer();
+          const int *ptrc=other->getConstPointer();
+          for(int i=0;i<nbOfTuple;i++)
+            std::transform(ptr+i*nbOfComp,ptr+(i+1)*nbOfComp,ptr+i*nbOfComp,std::bind2nd(std::divides<int>(),*ptrc++));
+        }
+      else
+        throw INTERP_KERNEL::Exception(msg);
     }
-  else
+  else if(nbOfTuple2==1)
     {
-      if(nbOfComp2==1)
+      if(nbOfComp2==nbOfComp)
         {
-          const int *ptr=other->getConstPointer();
-          int *myPtr=getPointer();
+          int *ptr=getPointer();
+          const int *ptrc=other->getConstPointer();
           for(int i=0;i<nbOfTuple;i++)
-            myPtr=std::transform(myPtr,myPtr+nbOfComp,myPtr,std::bind2nd(std::divides<int>(),ptr[i]));
+            std::transform(ptr+i*nbOfComp,ptr+(i+1)*nbOfComp,ptrc,ptr+i*nbOfComp,std::divides<int>());
         }
       else
-        throw INTERP_KERNEL::Exception("Nb of components mismatch for array divideEqual !");
+        throw INTERP_KERNEL::Exception(msg);
     }
+  else
+    throw INTERP_KERNEL::Exception(msg);
   declareAsNew();
 }
 
@@ -4793,10 +5233,41 @@ DataArrayInt *DataArrayInt::Modulus(const DataArrayInt *a1, const DataArrayInt *
 
 void DataArrayInt::modulusEqual(const DataArrayInt *other) throw(INTERP_KERNEL::Exception)
 {
-  int nbOfTuple=other->getNumberOfTuples();
-  int nbOfComp=other->getNumberOfComponents();
-  checkNbOfTuplesAndComp(nbOfTuple,nbOfComp,"Nb of components mismatch for array modulus equal");
-  std::transform(begin(),end(),other->begin(),getPointer(),std::modulus<int>());
+  const char *msg="Nb of tuples mismatch for DataArrayInt::modulusEqual !";
+  int nbOfTuple=getNumberOfTuples();
+  int nbOfTuple2=other->getNumberOfTuples();
+  int nbOfComp=getNumberOfComponents();
+  int nbOfComp2=other->getNumberOfComponents();
+  if(nbOfTuple==nbOfTuple2)
+    {
+      if(nbOfComp==nbOfComp2)
+        {
+          std::transform(begin(),end(),other->begin(),getPointer(),std::modulus<int>());
+        }
+      else if(nbOfComp2==1)
+        {
+          if(nbOfComp2==nbOfComp)
+            {
+              int *ptr=getPointer();
+              const int *ptrc=other->getConstPointer();
+              for(int i=0;i<nbOfTuple;i++)
+                std::transform(ptr+i*nbOfComp,ptr+(i+1)*nbOfComp,ptr+i*nbOfComp,std::bind2nd(std::modulus<int>(),*ptrc++));
+            }
+          else
+            throw INTERP_KERNEL::Exception(msg);
+        }
+      else
+        throw INTERP_KERNEL::Exception(msg);
+    }
+  else if(nbOfTuple2==1)
+    {
+      int *ptr=getPointer();
+      const int *ptrc=other->getConstPointer();
+      for(int i=0;i<nbOfTuple;i++)
+        std::transform(ptr+i*nbOfComp,ptr+(i+1)*nbOfComp,ptrc,ptr+i*nbOfComp,std::modulus<int>());
+    }
+  else
+    throw INTERP_KERNEL::Exception(msg);
   declareAsNew();
 }
 
@@ -4820,6 +5291,26 @@ int *DataArrayInt::CheckAndPreparePermutation(const int *start, const int *end)
   return ret;
 }
 
+DataArrayInt *DataArrayInt::Range(int begin, int end, int step) throw(INTERP_KERNEL::Exception)
+{
+  int nbOfTuples=GetNumberOfItemGivenBESRelative(begin,end,step,"DataArrayInt::Range");
+  MEDCouplingAutoRefCountObjectPtr<DataArrayInt> ret=DataArrayInt::New();
+  ret->alloc(nbOfTuples,1);
+  int *ptr=ret->getPointer();
+  if(step>0)
+    {
+      for(int i=begin;i<end;i+=step,ptr++)
+        *ptr=i;
+    }
+  else
+    {
+      for(int i=begin;i>end;i+=step,ptr++)
+        *ptr=i;
+    }
+  ret->incrRef();
+  return ret;
+}
+
 /*!
  * Useless method for end user. Only for MPI/Corba/File serialsation for multi arrays class.
  * Server side.
@@ -4943,3 +5434,25 @@ int DataArrayIntTuple::intValue() const throw(INTERP_KERNEL::Exception)
     return *_pt;
   throw INTERP_KERNEL::Exception("DataArrayIntTuple::intValue : DataArrayIntTuple instance has not exactly 1 component -> Not possible to convert it into an integer !");
 }
+
+/*!
+ * This method returns a newly allocated instance the caller should dealed with by a ParaMEDMEM::DataArrayInt::decrRef.
+ * This method performs \b no copy of data. The content is only referenced using ParaMEDMEM::DataArrayInt::useArray with ownership set to \b false.
+ * This method throws an INTERP_KERNEL::Exception is it is impossible to match sizes of \b this that is too say \b nbOfCompo=this->_nb_of_elem and \bnbOfTuples==1 or
+ * \b nbOfCompo=1 and \bnbOfTuples==this->_nb_of_elem.
+ */
+DataArrayInt *DataArrayIntTuple::buildDAInt(int nbOfTuples, int nbOfCompo) const throw(INTERP_KERNEL::Exception)
+{
+  if((_nb_of_compo==nbOfCompo && nbOfTuples==1) || (_nb_of_compo==nbOfTuples && nbOfCompo==1))
+    {
+      DataArrayInt *ret=DataArrayInt::New();
+      ret->useArray(_pt,false,CPP_DEALLOC,nbOfTuples,nbOfCompo);
+      return ret;
+    }
+  else
+    {
+      std::ostringstream oss; oss << "DataArrayIntTuple::buildDAInt : unable to build a requested DataArrayInt instance with nbofTuple=" << nbOfTuples << " and nbOfCompo=" << nbOfCompo;
+      oss << ".\nBecause the number of elements in this is " << _nb_of_compo << " !";
+      throw INTERP_KERNEL::Exception(oss.str().c_str());
+    }
+}
index b830a99f348dd473dcbf92caeca82b39027453d4..5dafbf608c9c45b5a2f246594c416f3f2e3f4f9f 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
@@ -70,8 +70,8 @@ namespace ParaMEDMEM
     T *toNoInterlace(int nbOfComp) const;
     void sort();
     void reverse();
-    void alloc(int nbOfElements);
-    void reAlloc(int newNbOfElements);
+    void alloc(int nbOfElements) throw(INTERP_KERNEL::Exception);
+    void reAlloc(int newNbOfElements) throw(INTERP_KERNEL::Exception);
     void useArray(const T *array, bool ownership, DeallocType type, int nbOfElem);
     void writeOnPlace(int id, T element0, const T *others, int sizeOfOthers);
     ~MemArray() { destroy(); }
@@ -111,6 +111,7 @@ namespace ParaMEDMEM
     MEDCOUPLING_EXPORT void checkNbOfTuplesAndComp(int nbOfTuples, int nbOfCompo, const char *msg) const throw(INTERP_KERNEL::Exception);
     MEDCOUPLING_EXPORT void checkNbOfElems(int nbOfElems, const char *msg) const throw(INTERP_KERNEL::Exception);
     MEDCOUPLING_EXPORT static int GetNumberOfItemGivenBES(int begin, int end, int step, const char *msg) throw(INTERP_KERNEL::Exception);
+    MEDCOUPLING_EXPORT static int GetNumberOfItemGivenBESRelative(int begin, int end, int step, const char *msg) throw(INTERP_KERNEL::Exception);
     MEDCOUPLING_EXPORT static std::string GetVarNameFromInfo(const std::string& info) throw(INTERP_KERNEL::Exception);
     MEDCOUPLING_EXPORT static std::string GetUnitFromInfo(const std::string& info) throw(INTERP_KERNEL::Exception);
   protected:
@@ -143,7 +144,7 @@ namespace ParaMEDMEM
     MEDCOUPLING_EXPORT DataArrayDouble *deepCpy() const;
     MEDCOUPLING_EXPORT DataArrayDouble *performCpy(bool deepCpy) const;
     MEDCOUPLING_EXPORT void cpyFrom(const DataArrayDouble& other) throw(INTERP_KERNEL::Exception);
-    MEDCOUPLING_EXPORT void alloc(int nbOfTuple, int nbOfCompo);
+    MEDCOUPLING_EXPORT void alloc(int nbOfTuple, int nbOfCompo) throw(INTERP_KERNEL::Exception);
     MEDCOUPLING_EXPORT void allocIfNecessary(int nbOfTuple, int nbOfCompo);
     MEDCOUPLING_EXPORT void fillWithZero() throw(INTERP_KERNEL::Exception);
     MEDCOUPLING_EXPORT void fillWithValue(double val) throw(INTERP_KERNEL::Exception);
@@ -178,6 +179,7 @@ namespace ParaMEDMEM
     MEDCOUPLING_EXPORT DataArrayDouble *selectByTupleRanges(const std::vector<std::pair<int,int> >& ranges) const throw(INTERP_KERNEL::Exception);
     MEDCOUPLING_EXPORT DataArrayDouble *substr(int tupleIdBg, int tupleIdEnd=-1) const throw(INTERP_KERNEL::Exception);
     MEDCOUPLING_EXPORT void rearrange(int newNbOfCompo) throw(INTERP_KERNEL::Exception);
+    MEDCOUPLING_EXPORT void transpose() throw(INTERP_KERNEL::Exception);
     MEDCOUPLING_EXPORT DataArrayDouble *changeNbOfComponents(int newNbOfComp, double dftValue) const throw(INTERP_KERNEL::Exception);
     MEDCOUPLING_EXPORT DataArrayDouble *keepSelectedComponents(const std::vector<int>& compoIds) const throw(INTERP_KERNEL::Exception);
     MEDCOUPLING_EXPORT void meldWith(const DataArrayDouble *other) throw(INTERP_KERNEL::Exception);
@@ -196,6 +198,7 @@ namespace ParaMEDMEM
     MEDCOUPLING_EXPORT void getTuple(int tupleId, double *res) const { std::copy(_mem.getConstPointerLoc(tupleId*((int)_info_on_compo.size())),_mem.getConstPointerLoc((tupleId+1)*((int)_info_on_compo.size())),res); }
     MEDCOUPLING_EXPORT double getIJ(int tupleId, int compoId) const { return _mem[tupleId*((int)_info_on_compo.size())+compoId]; }
     MEDCOUPLING_EXPORT double back() const throw(INTERP_KERNEL::Exception);
+    MEDCOUPLING_EXPORT double getIJSafe(int tupleId, int compoId) const throw(INTERP_KERNEL::Exception);
     MEDCOUPLING_EXPORT void setIJ(int tupleId, int compoId, double newVal) { _mem[tupleId*((int)_info_on_compo.size())+compoId]=newVal; declareAsNew(); }
     MEDCOUPLING_EXPORT void setIJSilent(int tupleId, int compoId, double newVal) { _mem[tupleId*((int)_info_on_compo.size())+compoId]=newVal; }
     MEDCOUPLING_EXPORT double *getPointer() { return _mem.getPointer(); }
@@ -207,6 +210,7 @@ namespace ParaMEDMEM
     MEDCOUPLING_EXPORT void useArray(const double *array, bool ownership, DeallocType type, int nbOfTuple, int nbOfCompo);
     MEDCOUPLING_EXPORT void writeOnPlace(int id, double element0, const double *others, int sizeOfOthers) { _mem.writeOnPlace(id,element0,others,sizeOfOthers); }
     MEDCOUPLING_EXPORT void checkNoNullValues() const throw(INTERP_KERNEL::Exception);
+    MEDCOUPLING_EXPORT void getMinMaxPerComponent(double *bounds) const throw(INTERP_KERNEL::Exception);
     MEDCOUPLING_EXPORT double getMaxValue(int& tupleId) const throw(INTERP_KERNEL::Exception);
     MEDCOUPLING_EXPORT double getMaxValueInArray() const throw(INTERP_KERNEL::Exception);
     MEDCOUPLING_EXPORT double getMinValue(int& tupleId) const throw(INTERP_KERNEL::Exception);
@@ -235,6 +239,7 @@ namespace ParaMEDMEM
     MEDCOUPLING_EXPORT void applyLin(double a, double b, int compoId) throw(INTERP_KERNEL::Exception);
     MEDCOUPLING_EXPORT void applyLin(double a, double b) throw(INTERP_KERNEL::Exception);
     MEDCOUPLING_EXPORT void applyInv(double numerator) throw(INTERP_KERNEL::Exception);
+    MEDCOUPLING_EXPORT DataArrayDouble *negate() const throw(INTERP_KERNEL::Exception);
     MEDCOUPLING_EXPORT DataArrayDouble *applyFunc(int nbOfComp, FunctionToEvaluate func) const throw(INTERP_KERNEL::Exception);
     MEDCOUPLING_EXPORT DataArrayDouble *applyFunc(int nbOfComp, const char *func) const throw(INTERP_KERNEL::Exception);
     MEDCOUPLING_EXPORT DataArrayDouble *applyFunc(const char *func) const throw(INTERP_KERNEL::Exception);
@@ -301,6 +306,7 @@ namespace ParaMEDMEM
     const double *getConstPointer() const { return  _pt; }
     double *getPointer() { return _pt; }
     double doubleValue() const throw(INTERP_KERNEL::Exception);
+    DataArrayDouble *buildDADouble(int nbOfTuples, int nbOfCompo) const throw(INTERP_KERNEL::Exception);
   private:
     double *_pt;
     int _nb_of_compo;
@@ -316,11 +322,12 @@ namespace ParaMEDMEM
     MEDCOUPLING_EXPORT void checkAllocated() const throw(INTERP_KERNEL::Exception);
     MEDCOUPLING_EXPORT void setInfoAndChangeNbOfCompo(const std::vector<std::string>& info) throw(INTERP_KERNEL::Exception);
     MEDCOUPLING_EXPORT int intValue() const throw(INTERP_KERNEL::Exception);
+    MEDCOUPLING_EXPORT int getHashCode() const throw(INTERP_KERNEL::Exception);
     MEDCOUPLING_EXPORT bool empty() const throw(INTERP_KERNEL::Exception);
     MEDCOUPLING_EXPORT DataArrayInt *deepCpy() const;
     MEDCOUPLING_EXPORT DataArrayInt *performCpy(bool deepCpy) const;
     MEDCOUPLING_EXPORT void cpyFrom(const DataArrayInt& other) throw(INTERP_KERNEL::Exception);
-    MEDCOUPLING_EXPORT void alloc(int nbOfTuple, int nbOfCompo);
+    MEDCOUPLING_EXPORT void alloc(int nbOfTuple, int nbOfCompo) throw(INTERP_KERNEL::Exception);
     MEDCOUPLING_EXPORT void allocIfNecessary(int nbOfTuple, int nbOfCompo);
     MEDCOUPLING_EXPORT bool isEqual(const DataArrayInt& other) const;
     MEDCOUPLING_EXPORT bool isEqualWithoutConsideringStr(const DataArrayInt& other) const;
@@ -366,6 +373,7 @@ namespace ParaMEDMEM
     MEDCOUPLING_EXPORT bool isUniform(int val) const throw(INTERP_KERNEL::Exception);
     MEDCOUPLING_EXPORT DataArrayInt *substr(int tupleIdBg, int tupleIdEnd=-1) const throw(INTERP_KERNEL::Exception);
     MEDCOUPLING_EXPORT void rearrange(int newNbOfCompo) throw(INTERP_KERNEL::Exception);
+    MEDCOUPLING_EXPORT void transpose() throw(INTERP_KERNEL::Exception);
     MEDCOUPLING_EXPORT DataArrayInt *changeNbOfComponents(int newNbOfComp, int dftValue) const throw(INTERP_KERNEL::Exception);
     MEDCOUPLING_EXPORT DataArrayInt *keepSelectedComponents(const std::vector<int>& compoIds) const throw(INTERP_KERNEL::Exception);
     MEDCOUPLING_EXPORT void meldWith(const DataArrayInt *other) throw(INTERP_KERNEL::Exception);
@@ -381,6 +389,7 @@ namespace ParaMEDMEM
     MEDCOUPLING_EXPORT void setContigPartOfSelectedValues2(int tupleIdStart, const DataArrayInt *a, int bg, int end2, int step) throw(INTERP_KERNEL::Exception);
     MEDCOUPLING_EXPORT void getTuple(int tupleId, int *res) const { std::copy(_mem.getConstPointerLoc(tupleId*((int)_info_on_compo.size())),_mem.getConstPointerLoc((tupleId+1)*((int)_info_on_compo.size())),res); }
     MEDCOUPLING_EXPORT int getIJ(int tupleId, int compoId) const { return _mem[tupleId*((int)_info_on_compo.size())+compoId]; }
+    MEDCOUPLING_EXPORT int getIJSafe(int tupleId, int compoId) const throw(INTERP_KERNEL::Exception);
     MEDCOUPLING_EXPORT int back() const throw(INTERP_KERNEL::Exception);
     MEDCOUPLING_EXPORT void setIJ(int tupleId, int compoId, int newVal) { _mem[tupleId*((int)_info_on_compo.size())+compoId]=newVal; declareAsNew(); }
     MEDCOUPLING_EXPORT void setIJSilent(int tupleId, int compoId, int newVal) { _mem[tupleId*((int)_info_on_compo.size())+compoId]=newVal; }
@@ -404,6 +413,7 @@ namespace ParaMEDMEM
     MEDCOUPLING_EXPORT void applyLin(int a, int b, int compoId) throw(INTERP_KERNEL::Exception);
     MEDCOUPLING_EXPORT void applyLin(int a, int b) throw(INTERP_KERNEL::Exception);
     MEDCOUPLING_EXPORT void applyInv(int numerator) throw(INTERP_KERNEL::Exception);
+    MEDCOUPLING_EXPORT DataArrayInt *negate() const throw(INTERP_KERNEL::Exception);
     MEDCOUPLING_EXPORT void applyDivideBy(int val) throw(INTERP_KERNEL::Exception);
     MEDCOUPLING_EXPORT void applyModulus(int val) throw(INTERP_KERNEL::Exception);
     MEDCOUPLING_EXPORT void applyRModulus(int val) throw(INTERP_KERNEL::Exception);
@@ -439,6 +449,7 @@ namespace ParaMEDMEM
     MEDCOUPLING_EXPORT void updateTime() const { }
   public:
     MEDCOUPLING_EXPORT static int *CheckAndPreparePermutation(const int *start, const int *end);
+    MEDCOUPLING_EXPORT static DataArrayInt *Range(int begin, int end, int step) throw(INTERP_KERNEL::Exception);
   public:
     MEDCOUPLING_EXPORT void getTinySerializationIntInformation(std::vector<int>& tinyInfo) const;
     MEDCOUPLING_EXPORT void getTinySerializationStrInformation(std::vector<std::string>& tinyInfo) const;
@@ -475,6 +486,7 @@ namespace ParaMEDMEM
     const int *getConstPointer() const { return  _pt; }
     int *getPointer() { return _pt; }
     int intValue() const throw(INTERP_KERNEL::Exception);
+    DataArrayInt *buildDAInt(int nbOfTuples, int nbOfCompo) const throw(INTERP_KERNEL::Exception);
   private:
     int *_pt;
     int _nb_of_compo;
index 8bdccd5fd6e367d54d7f5e3f37ceb917efebced2..90438b3f702353af8f40f5bfadad821228c4fe40 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
@@ -224,9 +224,11 @@ namespace ParaMEDMEM
   }
 
   template<class T>
-  void MemArray<T>::alloc(int nbOfElements)
+  void MemArray<T>::alloc(int nbOfElements) throw(INTERP_KERNEL::Exception)
   {
     destroy();
+    if(nbOfElements<0)
+      throw INTERP_KERNEL::Exception("MemArray::alloc : request for negative length of data !");
     _nb_of_elem=nbOfElements;
     _pointer.setInternal(new T[_nb_of_elem]);
     _ownership=true;
@@ -234,8 +236,10 @@ namespace ParaMEDMEM
   }
   
   template<class T>
-  void MemArray<T>::reAlloc(int newNbOfElements)
+  void MemArray<T>::reAlloc(int newNbOfElements) throw(INTERP_KERNEL::Exception)
   {
+    if(newNbOfElements<0)
+      throw INTERP_KERNEL::Exception("MemArray::reAlloc : request for negative length of data !");
     T *pointer=new T[newNbOfElements];
     std::copy(_pointer.getConstPointer(),_pointer.getConstPointer()+std::min<int>(_nb_of_elem,newNbOfElements),pointer);
     if(_ownership)
@@ -262,7 +266,7 @@ namespace ParaMEDMEM
           return ;
         }
       default:
-        std::stringstream stream;
+        std::ostringstream stream;
         stream << "Invalid deallocation requested for pointer " << pt;
         throw INTERP_KERNEL::Exception(stream.str().c_str());
       }
index 84c4e7a65215290688635a8e72efc3e358a990b2..e6996122ef8404189fb1538ecf5f6bf3188c813e 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
@@ -18,6 +18,7 @@
 //
 
 #include "MEDCouplingMesh.hxx"
+#include "MEDCouplingUMesh.hxx"
 #include "MEDCouplingMemArray.hxx"
 #include "MEDCouplingFieldDouble.hxx"
 #include "MEDCouplingFieldDiscretization.hxx"
@@ -295,13 +296,45 @@ MEDCouplingFieldDouble *MEDCouplingMesh::fillFromAnalytic3(TypeOfField t, int nb
 
 /*!
  * retruns a newly created mesh with counter=1 
- * that is the union of mesh1 and mesh2 if possible. The cells of mesh2 will appear after cells of 'mesh1'. Idem for nodes.
+ * that is the union of \b mesh1 and \b mesh2 if possible. The cells of \b mesh2 will appear after cells of \b mesh1. Idem for nodes.
+ * The only contraint is that \b mesh1 an \b mesh2 have the same mesh types. If it is not the case please use the other API of MEDCouplingMesh::MergeMeshes,
+ * with input vector of meshes.
  */
-MEDCouplingMesh *MEDCouplingMesh::MergeMeshes(const MEDCouplingMesh *mesh1, const MEDCouplingMesh *mesh2)
+MEDCouplingMesh *MEDCouplingMesh::MergeMeshes(const MEDCouplingMesh *mesh1, const MEDCouplingMesh *mesh2) throw(INTERP_KERNEL::Exception)
 {
+  if(!mesh1)
+    throw INTERP_KERNEL::Exception("MEDCouplingMesh::MergeMeshes : first parameter is an empty mesh !");
+  if(!mesh2)
+    throw INTERP_KERNEL::Exception("MEDCouplingMesh::MergeMeshes : second parameter is an empty mesh !");
   return mesh1->mergeMyselfWith(mesh2);
 }
 
+/*!
+ * retruns a newly created mesh with counter=1 
+ * that is the union of meshes if possible. The cells of \b meshes[1] will appear after cells of \b meshes[0]. Idem for nodes.
+ * This method performs a systematic conversion to unstructured meshes before performing aggregation contrary to the other ParaMEDMEM::MEDCouplingMesh::MergeMeshes with
+ * two parameters that work only on the same type of meshes. So here it is possible to mix different type of meshes.
+ */
+MEDCouplingMesh *MEDCouplingMesh::MergeMeshes(std::vector<const MEDCouplingMesh *>& meshes) throw(INTERP_KERNEL::Exception)
+{
+  std::vector< MEDCouplingAutoRefCountObjectPtr<MEDCouplingUMesh> > ms1(meshes.size());
+  std::vector< const MEDCouplingUMesh * > ms2(meshes.size());
+  for(std::size_t i=0;i<meshes.size();i++)
+    {
+      if(meshes[i])
+        {
+          MEDCouplingUMesh *cur=meshes[i]->buildUnstructured();
+          ms1[i]=cur;  ms2[i]=cur;
+        }
+      else
+        {
+          std::ostringstream oss; oss << "MEDCouplingMesh::MergeMeshes(std::vector<const MEDCouplingMesh *>& meshes) : mesh at pos #" << i << " of input vector of size " << meshes.size() << " is empty !";
+          throw INTERP_KERNEL::Exception(oss.str().c_str());
+        }
+    }
+  return MEDCouplingUMesh::MergeUMeshes(ms2);
+}
+
 void MEDCouplingMesh::getCellsContainingPoint(const double *pos, double eps, std::vector<int>& elts) const
 {
   int ret=getCellContainingPoint(pos,eps);
index 31399a09b20f2eb0c5036272a249eb63eec71e76..9724ca3e6c37a01175f5a2a422f2a4c904de6c5e 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
@@ -85,7 +85,7 @@ namespace ParaMEDMEM
     virtual std::set<INTERP_KERNEL::NormalizedCellType> getAllGeoTypes() const = 0;
     virtual void getNodeIdsOfCell(int cellId, std::vector<int>& conn) const = 0;
     virtual DataArrayInt *getCellIdsFullyIncludedInNodeIds(const int *partBg, const int *partEnd) const;
-    virtual void getCoordinatesOfNode(int nodeId, std::vector<double>& coo) const = 0;
+    virtual void getCoordinatesOfNode(int nodeId, std::vector<double>& coo) const throw(INTERP_KERNEL::Exception) = 0;
     virtual std::string simpleRepr() const = 0;
     virtual std::string advancedRepr() const = 0;
     // tools
@@ -113,7 +113,8 @@ namespace ParaMEDMEM
     virtual MEDCouplingUMesh *buildUnstructured() const throw(INTERP_KERNEL::Exception) = 0;
     virtual DataArrayInt *simplexize(int policy) throw(INTERP_KERNEL::Exception) = 0;
     virtual bool areCompatibleForMerge(const MEDCouplingMesh *other) const;
-    static MEDCouplingMesh *MergeMeshes(const MEDCouplingMesh *mesh1, const MEDCouplingMesh *mesh2);
+    static MEDCouplingMesh *MergeMeshes(const MEDCouplingMesh *mesh1, const MEDCouplingMesh *mesh2) throw(INTERP_KERNEL::Exception);
+    static MEDCouplingMesh *MergeMeshes(std::vector<const MEDCouplingMesh *>& meshes) throw(INTERP_KERNEL::Exception);
     //serialisation-unserialization
     virtual void getTinySerializationInformation(std::vector<double>& tinyInfoD, std::vector<int>& tinyInfo, std::vector<std::string>& littleStrings) const = 0;
     virtual void resizeForUnserialization(const std::vector<int>& tinyInfo, DataArrayInt *a1, DataArrayDouble *a2, std::vector<std::string>& littleStrings) const = 0;
index c15e41404abcfb59cc187fb8e1d926876839dc5c..3586308b75a63752920aea2597379b9bcbcc10a9 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index ea1613d02b1784bcfadd6890beb9c91b27c61d7f..69445a724b76379db93ff5ada59685da48b962d3 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index b057c3f170cfccfa599d19ec3a8dda894173353d..8344d7588bb6c3f81311695901d3b6eb20db35f8 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index ff4f34aa27b36184555748f04d8744320d97cb5a..314c62131822437a134165f3cd36eba9bec8334c 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 66f7c612b42d2d71e3ac37071cd37693ec7ae4b6..60cbfdb34d7b1246dc22c698ae2940767a776021 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 71ff988291771cf40de2ac58a678949ff649eebe..bb54d196596cc63efdabab80d56cf0b2ced098bb 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 98ac6724e29603b153916c964ce270a58d26eb05..cffd88a3ab5ee2e4135d53825e507339a25ab481 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index eb4188c987c13d9c4bd62ad61938ae7b370acbd0..4ad2677b6e1a4e5c7c85c537f368f4c7159d2f05 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index d76908c76e68a89a6b2ee5af4fb5a3a07132e8cc..597f71a006b88e1d234423ebef29bbf4e64c5662 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
@@ -153,6 +153,27 @@ bool MEDCouplingPointSet::areCoordsEqualWithoutConsideringStr(const MEDCouplingP
   return _coords->isEqualWithoutConsideringStr(*other._coords,prec);
 }
 
+/*!
+ * Returns coordinates of node with id 'nodeId' and append it in 'coo'.
+ */
+void MEDCouplingPointSet::getCoordinatesOfNode(int nodeId, std::vector<double>& coo) const throw(INTERP_KERNEL::Exception)
+{
+  if(!_coords)
+    throw INTERP_KERNEL::Exception("MEDCouplingPointSet::getCoordinatesOfNode : no coordinates array set !");
+  int nbNodes=getNumberOfNodes();
+  if(nodeId>=0 && nodeId<nbNodes)
+    {
+      const double *cooPtr=_coords->getConstPointer();
+      int spaceDim=getSpaceDimension();
+      coo.insert(coo.end(),cooPtr+spaceDim*nodeId,cooPtr+spaceDim*(nodeId+1));
+    }
+  else
+    {
+      std::ostringstream oss; oss << "MEDCouplingPointSet::getCoordinatesOfNode : request of nodeId \"" << nodeId << "\" but it should be in [0,"<< nbNodes << ") !";
+      throw INTERP_KERNEL::Exception(oss.str().c_str());
+    }
+}
+
 /*!
  * This method is typically the base method used for implementation of mergeNodes. This method computes this permutation array using as input,
  * This method is const ! So this method simply computes the array, no permutation of nodes is done.
@@ -301,30 +322,11 @@ void MEDCouplingPointSet::renumberNodes2(const int *newNodeNumbers, int newNbOfN
  * The returned bounding box is arranged along trihedron.
  * @param bbox out array of size 2*this->getSpaceDimension().
  */
-void MEDCouplingPointSet::getBoundingBox(double *bbox) const
+void MEDCouplingPointSet::getBoundingBox(double *bbox) const throw(INTERP_KERNEL::Exception)
 {
-  int dim=getSpaceDimension();
-  for (int idim=0; idim<dim; idim++)
-    {
-      bbox[idim*2]=std::numeric_limits<double>::max();
-      bbox[idim*2+1]=-std::numeric_limits<double>::max();
-    } 
-  const double *coords=_coords->getConstPointer();
-  int nbnodes=getNumberOfNodes();
-  for (int i=0; i<nbnodes; i++)
-    {
-      for (int idim=0; idim<dim;idim++)
-        {
-          if ( bbox[idim*2] > coords[i*dim+idim] )
-            {
-              bbox[idim*2] = coords[i*dim+idim] ;
-            }
-          if ( bbox[idim*2+1] < coords[i*dim+idim] )
-            {
-              bbox[idim*2+1] = coords[i*dim+idim] ;
-            }
-        }
-    }
+  if(!_coords)
+    throw INTERP_KERNEL::Exception("MEDCouplingPointSet::getBoundingBox : Coordinates not set !");
+  _coords->getMinMaxPerComponent(bbox);
 }
 
 /*!
@@ -891,7 +893,7 @@ void MEDCouplingPointSet::project2DCellOnXY(const int *startConn, const int *end
 /*!
  * low level method that checks that the 2D cell is not a butterfly cell.
  */
-bool MEDCouplingPointSet::isButterfly2DCell(const std::vector<double>& res, bool isQuad)
+bool MEDCouplingPointSet::isButterfly2DCell(const std::vector<double>& res, bool isQuad, double eps)
 {
   std::size_t nbOfNodes=res.size()/2;
   std::vector<INTERP_KERNEL::Node *> nodes(nbOfNodes);
@@ -900,12 +902,14 @@ bool MEDCouplingPointSet::isButterfly2DCell(const std::vector<double>& res, bool
       INTERP_KERNEL::Node *tmp=new INTERP_KERNEL::Node(res[2*i],res[2*i+1]);
       nodes[i]=tmp;
     }
+  INTERP_KERNEL::QUADRATIC_PLANAR::_precision=eps;
+  INTERP_KERNEL::QUADRATIC_PLANAR::_arc_detection_precision=eps;
   INTERP_KERNEL::QuadraticPolygon *pol=0;
   if(isQuad)
     pol=INTERP_KERNEL::QuadraticPolygon::BuildArcCirclePolygon(nodes);
   else
     pol=INTERP_KERNEL::QuadraticPolygon::BuildLinearPolygon(nodes);
-  bool ret=pol->isButterfly();
+  bool ret=pol->isButterflyAbs();
   delete pol;
   return ret;
 }
index 92440c4c8f8b76cfad2662ce15b9f5dfa253187b..43e7235945d399a8bc4d09d6f60bab8d08d3c9ca 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
@@ -66,13 +66,14 @@ namespace ParaMEDMEM
     bool areCoordsEqualWithoutConsideringStr(const MEDCouplingPointSet& other, double prec) const;
     virtual DataArrayInt *mergeNodes(double precision, bool& areNodesMerged, int& newNbOfNodes) = 0;
     virtual DataArrayInt *mergeNodes2(double precision, bool& areNodesMerged, int& newNbOfNodes) = 0;
+    void getCoordinatesOfNode(int nodeId, std::vector<double>& coo) const throw(INTERP_KERNEL::Exception);
     DataArrayInt *buildPermArrayForMergeNode(double precision, int limitNodeId, bool& areNodesMerged, int& newNbOfNodes) const;
     std::vector<int> getNodeIdsNearPoint(const double *pos, double eps) const throw(INTERP_KERNEL::Exception);
     void getNodeIdsNearPoints(const double *pos, int nbOfNodes, double eps, std::vector<int>& c, std::vector<int>& cI) const throw(INTERP_KERNEL::Exception);
     void findCommonNodes(double prec, int limitNodeId, DataArrayInt *&comm, DataArrayInt *&commIndex) const;
     DataArrayInt *buildNewNumberingFromCommonNodesFormat(const DataArrayInt *comm, const DataArrayInt *commIndex,
                                                          int& newNbOfNodes) const;
-    void getBoundingBox(double *bbox) const;
+    void getBoundingBox(double *bbox) const throw(INTERP_KERNEL::Exception);
     void zipCoords();
     double getCaracteristicDimension() const;
     void rotate(const double *center, const double *vector, double angle);
@@ -114,7 +115,7 @@ namespace ParaMEDMEM
     void rotate2D(const double *center, double angle);
     void rotate3D(const double *center, const double *vect, double angle);
     void project2DCellOnXY(const int *startConn, const int *endConn, std::vector<double>& res) const;
-    static bool isButterfly2DCell(const std::vector<double>& res, bool isQuad);
+    static bool isButterfly2DCell(const std::vector<double>& res, bool isQuad, double eps);
     template<int SPACEDIM>
     void findNodeIdsNearPointAlg(std::vector<double>& bbox, const double *pos, int nbNodes, double eps,
                                  std::vector<int>& c, std::vector<int>& cI) const;
index c1a2b47816d371aaaa76149369d970272881bc4e..8d041acd852673f4c7fb756bef15c11ea3c80e12 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 30b46baa1189ac1076bab0ed9314abb5e73638f9..ab245084ef27624e3b15d4a6b72bcbf05f640412 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index e80d5d852f9b7e517924eb4b8a906d7b0c04a668..e011a19eb01610c70f7e479b2d2ad084a6621458 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index aadf86a4259ae1ef11d4c1ede2258e459f3ee6ba..3c5fa11f23cffa0d2084fc7ab4d3506ab56a16c9 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
@@ -68,32 +68,30 @@ int MEDCouplingRemapper::prepareEx(const MEDCouplingFieldTemplate *src, const ME
   return prepare(src->getMesh(),target->getMesh(),meth.c_str());
 }
 
+/*!
+ * This method performs the operation source to target using matrix computed in ParaMEDMEM::MEDCouplingRemapper::prepare method.
+ * If meshes of \b srcField and \b targetField do not match exactly those given into \ref ParaMEDMEM::MEDCouplingRemapper::prepare "prepare method" an exception will be thrown.
+ * 
+ * \param [in] srcField is the source field from which the interpolation will be done. The mesh into \b srcField should be the same than those specified on ParaMEDMEM::MEDCouplingRemapper::prepare.
+ * \param [out] targetField the destination field with the allocated array in which all tuples will be overwritten.
+ */
 void MEDCouplingRemapper::transfer(const MEDCouplingFieldDouble *srcField, MEDCouplingFieldDouble *targetField, double dftValue) throw(INTERP_KERNEL::Exception)
 {
-  if(_src_method!=srcField->getDiscretization()->getStringRepr())
-    throw INTERP_KERNEL::Exception("Incoherency with prepare call for source field");
-  if(_target_method!=targetField->getDiscretization()->getStringRepr())
-    throw INTERP_KERNEL::Exception("Incoherency with prepare call for target field");
-  if(srcField->getNature()!=targetField->getNature())
-    throw INTERP_KERNEL::Exception("Natures of fields mismatch !");
-  DataArrayDouble *array=targetField->getArray();
-  int srcNbOfCompo=srcField->getNumberOfComponents();
-  if(array)
-    {
-      if(srcNbOfCompo!=targetField->getNumberOfComponents())
-        throw INTERP_KERNEL::Exception("Number of components mismatch !");
-    }
-  else
-    {
-      array=DataArrayDouble::New();
-      array->alloc(targetField->getNumberOfTuples(),srcNbOfCompo);
-      targetField->setArray(array);
-      array->decrRef();
-    }
-  computeDeno(srcField->getNature(),srcField,targetField);
-  double *resPointer=array->getPointer();
-  const double *inputPointer=srcField->getArray()->getConstPointer();
-  computeProduct(inputPointer,srcNbOfCompo,dftValue,resPointer);
+  transferUnderground(srcField,targetField,true,dftValue);
+}
+
+/*!
+ * This method is equivalent to ParaMEDMEM::MEDCouplingRemapper::transfer except that here \b targetField is a in/out parameter.
+ * If an entity (cell for example) in targetField is not fetched by any entity (cell for example) of \b srcField, the value in targetField is
+ * let unchanged.
+ * This method requires that \b targetField was fully defined and allocated. If the array is not allocated an exception will be thrown.
+ * 
+ * \param [in] srcField is the source field from which the interpolation will be done. The mesh into \b srcField should be the same than those specified on ParaMEDMEM::MEDCouplingRemapper::prepare.
+ * \param [in,out] targetField the destination field with the allocated array in which only tuples whose entities are fetched by interpolation will be overwritten only.
+ */
+void MEDCouplingRemapper::partialTransfer(const MEDCouplingFieldDouble *srcField, MEDCouplingFieldDouble *targetField) throw(INTERP_KERNEL::Exception)
+{
+  transferUnderground(srcField,targetField,false,std::numeric_limits<double>::max());
 }
 
 void MEDCouplingRemapper::reverseTransfer(MEDCouplingFieldDouble *srcField, const MEDCouplingFieldDouble *targetField, double dftValue) throw(INTERP_KERNEL::Exception)
@@ -447,6 +445,36 @@ void MEDCouplingRemapper::releaseData(bool matrixSuppression)
     }
 }
 
+void MEDCouplingRemapper::transferUnderground(const MEDCouplingFieldDouble *srcField, MEDCouplingFieldDouble *targetField, bool isDftVal, double dftValue) throw(INTERP_KERNEL::Exception)
+{
+  if(_src_method!=srcField->getDiscretization()->getStringRepr())
+    throw INTERP_KERNEL::Exception("Incoherency with prepare call for source field");
+  if(_target_method!=targetField->getDiscretization()->getStringRepr())
+    throw INTERP_KERNEL::Exception("Incoherency with prepare call for target field");
+  if(srcField->getNature()!=targetField->getNature())
+    throw INTERP_KERNEL::Exception("Natures of fields mismatch !");
+  DataArrayDouble *array=targetField->getArray();
+  int srcNbOfCompo=srcField->getNumberOfComponents();
+  if(array)
+    {
+      if(srcNbOfCompo!=targetField->getNumberOfComponents())
+        throw INTERP_KERNEL::Exception("Number of components mismatch !");
+    }
+  else
+    {
+      if(!isDftVal)
+        throw INTERP_KERNEL::Exception("MEDCouplingRemapper::partialTransfer : This method requires that the array of target field exists ! Allocate it or call MEDCouplingRemapper::transfer instead !");
+      array=DataArrayDouble::New();
+      array->alloc(targetField->getNumberOfTuples(),srcNbOfCompo);
+      targetField->setArray(array);
+      array->decrRef();
+    }
+  computeDeno(srcField->getNature(),srcField,targetField);
+  double *resPointer=array->getPointer();
+  const double *inputPointer=srcField->getArray()->getConstPointer();
+  computeProduct(inputPointer,srcNbOfCompo,isDftVal,dftValue,resPointer);
+}
+
 void MEDCouplingRemapper::computeDeno(NatureOfField nat, const MEDCouplingFieldDouble *srcField, const MEDCouplingFieldDouble *trgField)
 {
   if(nat==NoNature)
@@ -532,7 +560,7 @@ void MEDCouplingRemapper::computeDenoFromScratch(NatureOfField nat, const MEDCou
     }
 }
 
-void MEDCouplingRemapper::computeProduct(const double *inputPointer, int inputNbOfCompo, double dftValue, double *resPointer)
+void MEDCouplingRemapper::computeProduct(const double *inputPointer, int inputNbOfCompo, bool isDftVal, double dftValue, double *resPointer)
 {
   int idx=0;
   double *tmp=new double[inputNbOfCompo];
@@ -540,7 +568,8 @@ void MEDCouplingRemapper::computeProduct(const double *inputPointer, int inputNb
     {
       if((*iter1).empty())
         {
-          std::fill(resPointer+idx*inputNbOfCompo,resPointer+(idx+1)*inputNbOfCompo,dftValue);
+          if(isDftVal)
+            std::fill(resPointer+idx*inputNbOfCompo,resPointer+(idx+1)*inputNbOfCompo,dftValue);
           continue;
         }
       else
index 81251b1cf27c2c87317d6147fe56e75445bd9d9e..b09539ec405af3653dedee3f876729613d9028ab 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
@@ -47,6 +47,7 @@ namespace ParaMEDMEM
     MEDCOUPLINGREMAPPER_EXPORT int prepare(const MEDCouplingMesh *srcMesh, const MEDCouplingMesh *targetMesh, const char *method) throw(INTERP_KERNEL::Exception);
     MEDCOUPLINGREMAPPER_EXPORT int prepareEx(const MEDCouplingFieldTemplate *src, const MEDCouplingFieldTemplate *target) throw(INTERP_KERNEL::Exception);
     MEDCOUPLINGREMAPPER_EXPORT void transfer(const MEDCouplingFieldDouble *srcField, MEDCouplingFieldDouble *targetField, double dftValue) throw(INTERP_KERNEL::Exception);
+    MEDCOUPLINGREMAPPER_EXPORT void partialTransfer(const MEDCouplingFieldDouble *srcField, MEDCouplingFieldDouble *targetField) throw(INTERP_KERNEL::Exception);
     MEDCOUPLINGREMAPPER_EXPORT void reverseTransfer(MEDCouplingFieldDouble *srcField, const MEDCouplingFieldDouble *targetField, double dftValue) throw(INTERP_KERNEL::Exception);
     MEDCOUPLINGREMAPPER_EXPORT MEDCouplingFieldDouble *transferField(const MEDCouplingFieldDouble *srcField, double dftValue) throw(INTERP_KERNEL::Exception);
     MEDCOUPLINGREMAPPER_EXPORT MEDCouplingFieldDouble *reverseTransferField(const MEDCouplingFieldDouble *targetField, double dftValue) throw(INTERP_KERNEL::Exception);
@@ -61,9 +62,10 @@ namespace ParaMEDMEM
     int prepareEE(const char *method) throw(INTERP_KERNEL::Exception);
     void updateTime() const;
     void releaseData(bool matrixSuppression);
+    void transferUnderground(const MEDCouplingFieldDouble *srcField, MEDCouplingFieldDouble *targetField, bool isDftVal, double dftValue) throw(INTERP_KERNEL::Exception);
     void computeDeno(NatureOfField nat, const MEDCouplingFieldDouble *srcField, const MEDCouplingFieldDouble *trgField);
     void computeDenoFromScratch(NatureOfField nat, const MEDCouplingFieldDouble *srcField, const MEDCouplingFieldDouble *trgField) throw(INTERP_KERNEL::Exception);
-    void computeProduct(const double *inputPointer, int inputNbOfCompo, double dftValue, double *resPointer);
+    void computeProduct(const double *inputPointer, int inputNbOfCompo, bool isDftVal, double dftValue, double *resPointer);
     void computeReverseProduct(const double *inputPointer, int inputNbOfCompo, double dftValue, double *resPointer);
     void buildFinalInterpolationMatrixByConvolution(const std::vector< std::map<int,double> >& m1D,
                                                     const std::vector< std::map<int,double> >& m2D,
index 717bd159d6f8e4de4fd3d68df69cf90e539ddd98..a8079146ab0edf898156e7beb8e49df8790d916e 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 513f4179d4a77674e0459602de69c90a796f6fa1..65eefb1053d732e05ff50695a39ac5cccfe2426f 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index d6f8c151e895e18d35e906d7907122fa1d115e61..e91f08a4e76f546428a2c0ec830194b4edce0ee3 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 1024778a4d2ddbc25c564736078a6cd4f01aaebf..c334ffdbdd1c3375537ed51c42bd504a0c9bcbc4 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 4cef4ca74a41f9e426ebec6fea837da023f2ba48..ae6a410d31b9f501c26f50cf51e47635bcf14c26 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
@@ -567,6 +567,52 @@ MEDCouplingUMesh *MEDCouplingUMesh::buildDescendingConnectivity2(DataArrayInt *d
   return buildDescendingConnectivityGen(desc,descIndx,revDesc,revDescIndx,MEDCouplingOrientationSensitiveNbrer);
 }
 
+/*!
+ * \b WARNING this method do the assumption that connectivity lies on the coordinates set.
+ * For speed reasons no check of this will be done. This method calls MEDCouplingUMesh::buildDescendingConnectivity to compute the result.
+ * This method lists cell by cell in \b this which are its neighbors. To compute the result only connectivities are considered.
+ * The a cell with id 'cellId' its neighbors are neighbors[neighborsIdx[cellId]:neighborsIdx[cellId+1]].
+ *
+ * \param [out] neighbors is an array storing all the neighbors of all cells in \b this. This array is newly allocated and should be dealt by the caller. \b neighborsIdx 2nd output
+ *                        parameter allows to select the right part in this array. The number of tuples is equal to the last values in \b neighborsIdx.
+ * \param [out] neighborsIdx is an array of size this->getNumberOfCells()+1 newly allocated and should be dealt by the caller. This arrays allow to use the first output parameter \b neighbors.
+ */
+void MEDCouplingUMesh::computeNeighborsOfCells(DataArrayInt *&neighbors, DataArrayInt *&neighborsIdx) const throw(INTERP_KERNEL::Exception)
+{
+  MEDCouplingAutoRefCountObjectPtr<DataArrayInt> desc=DataArrayInt::New();
+  MEDCouplingAutoRefCountObjectPtr<DataArrayInt> descIndx=DataArrayInt::New();
+  MEDCouplingAutoRefCountObjectPtr<DataArrayInt> revDesc=DataArrayInt::New();
+  MEDCouplingAutoRefCountObjectPtr<DataArrayInt> revDescIndx=DataArrayInt::New();
+  MEDCouplingAutoRefCountObjectPtr<MEDCouplingUMesh> meshDM1=buildDescendingConnectivity(desc,descIndx,revDesc,revDescIndx);
+  meshDM1=0;
+  const int *descPtr=desc->getConstPointer();
+  const int *descIPtr=descIndx->getConstPointer();
+  const int *revDescPtr=revDesc->getConstPointer();
+  const int *revDescIPtr=revDescIndx->getConstPointer();
+  //
+  int nbCells=getNumberOfCells();
+  MEDCouplingAutoRefCountObjectPtr<DataArrayInt> out0=DataArrayInt::New();
+  MEDCouplingAutoRefCountObjectPtr<DataArrayInt> out1=DataArrayInt::New(); out1->alloc(nbCells+1,1);
+  int *out1Ptr=out1->getPointer();
+  *out1Ptr++=0;
+  std::vector<int> out0v;
+  out0v.reserve(desc->getNumberOfTuples());
+  for(int i=0;i<nbCells;i++,descIPtr++,out1Ptr++)
+    {
+      for(const int *w1=descPtr+descIPtr[0];w1!=descPtr+descIPtr[1];w1++)
+        {
+          std::set<int> s(revDescPtr+revDescIPtr[*w1],revDescPtr+revDescIPtr[(*w1)+1]);
+          s.erase(i);
+          out0v.insert(out0v.end(),s.begin(),s.end());
+        }
+      *out1Ptr=out0v.size();
+    }
+  out0->alloc((int)out0v.size(),1);
+  std::copy(out0v.begin(),out0v.end(),out0->getPointer());
+  neighbors=out0; out0->incrRef();
+  neighborsIdx=out1; out1->incrRef();
+}
+
 /// @cond INTERNAL
 
 /*!
@@ -987,7 +1033,9 @@ bool MEDCouplingUMesh::areCellsEqual0(int cell1, int cell2) const
 {
   const int *conn=getNodalConnectivity()->getConstPointer();
   const int *connI=getNodalConnectivityIndex()->getConstPointer();
-  return std::equal(conn+connI[cell1],conn+connI[cell1+1],conn+connI[cell2]);
+  if(connI[cell1+1]-connI[cell1]==connI[cell2+1]-connI[cell2])
+    return std::equal(conn+connI[cell1]+1,conn+connI[cell1+1],conn+connI[cell2]+1);
+  return false;
 }
 
 /*!
@@ -995,7 +1043,35 @@ bool MEDCouplingUMesh::areCellsEqual0(int cell1, int cell2) const
  */
 bool MEDCouplingUMesh::areCellsEqual1(int cell1, int cell2) const
 {
-  throw INTERP_KERNEL::Exception("Policy comparison, not implemented yet !");
+  const int *conn=getNodalConnectivity()->getConstPointer();
+  const int *connI=getNodalConnectivityIndex()->getConstPointer();
+  int sz=connI[cell1+1]-connI[cell1];
+  if(sz==connI[cell2+1]-connI[cell2])
+    {
+      if(conn[connI[cell1]]==conn[connI[cell2]])
+        {
+          const INTERP_KERNEL::CellModel& cm=INTERP_KERNEL::CellModel::GetCellModel((INTERP_KERNEL::NormalizedCellType)conn[connI[cell1]]);
+          unsigned dim=cm.getDimension();
+          if(dim!=3)
+            {
+              if(dim!=1)
+                {
+                  int sz1=2*(sz-1);
+                  int *tmp=new int[sz1];
+                  int *work=std::copy(conn+connI[cell1]+1,conn+connI[cell1+1],tmp);
+                  std::copy(conn+connI[cell1]+1,conn+connI[cell1+1],work);
+                  work=std::search(tmp,tmp+sz1,conn+connI[cell2]+1,conn+connI[cell2+1]);
+                  delete [] tmp;
+                  return work!=tmp+sz1;
+                }
+              else
+                return std::equal(conn+connI[cell1]+1,conn+connI[cell1+1],conn+connI[cell2]+1);//case of SEG2 and SEG3
+            }
+          else
+            throw INTERP_KERNEL::Exception("MEDCouplingUMesh::areCellsEqual1 : not implemented yet for meshdim == 3 !");
+        }
+    }
+  return false;
 }
 
 /*!
@@ -1005,9 +1081,16 @@ bool MEDCouplingUMesh::areCellsEqual2(int cell1, int cell2) const
 {
   const int *conn=getNodalConnectivity()->getConstPointer();
   const int *connI=getNodalConnectivityIndex()->getConstPointer();
-  std::set<int> s1(conn+connI[cell1],conn+connI[cell1+1]);
-  std::set<int> s2(conn+connI[cell2],conn+connI[cell2+1]);
-  return s1==s2;
+  if(connI[cell1+1]-connI[cell1]==connI[cell2+1]-connI[cell2])
+    {
+      if(conn[connI[cell1]]==conn[connI[cell2]])
+        {
+          std::set<int> s1(conn+connI[cell1]+1,conn+connI[cell1+1]);
+          std::set<int> s2(conn+connI[cell2]+1,conn+connI[cell2+1]);
+          return s1==s2;
+        }
+    }
+  return false;
 }
 
 /*!
@@ -1134,9 +1217,11 @@ void MEDCouplingUMesh::findCommonCellsBase(int compType, std::vector<int>& res,
  * This method keeps the coordiantes of 'this'.
  *
  * @param compType input specifying the technique used to compare cells each other.
- *                 0 : exactly. A cell is detected to be the same if and only if the connectivity is exactly the same without permutation and types same too. This is the strongest policy.
- *                 1 : permutation. cell1 and cell2 are equal if and the connectivity of cell2 can be deduced by those of cell1 by direct permutation and their type equal.
- *                 2 : nodal. cell1 and cell2 are equal if and only if cell1 and cell2 have same type and have the same nodes constituting connectivity. This is the laziest policy.
+ *   - 0 : exactly. A cell is detected to be the same if and only if the connectivity is exactly the same without permutation and types same too. This is the strongest policy.
+ *   - 1 : permutation same orientation. cell1 and cell2 are considered equal if the connectivity of cell2 can be deduced by those of cell1 by direct permutation (with exactly the same orientation)
+ * and their type equal. For 1D mesh the policy 1 is equivalent to 0.
+ *   - 2 : nodal. cell1 and cell2 are equal if and only if cell1 and cell2 have same type and have the same nodes constituting connectivity. This is the laziest policy. This policy
+ * can be used for users not sensitive to orientation of cell
  * @return the correspondance array old to new.
  */
 DataArrayInt *MEDCouplingUMesh::zipConnectivityTraducer(int compType) throw(INTERP_KERNEL::Exception)
@@ -1538,12 +1623,40 @@ void MEDCouplingUMesh::renumberNodes2(const int *newNodeNumbers, int newNbOfNode
 }
 
 /*!
- * This method renumbers nodes in connectivity only without any reference with coords.
- * Use it with care !
- * @param 'newNodeNumbers' in old2New convention
+ * This method renumbers nodes \b in \b connectivity \b only \b without \b any \b reference \b to \b coords.
+ * This method performs no check on the fact that new coordinate ids are valid. \b Use \b it \b with \b care !
+ * This method is an generalization of \ref ParaMEDMEM::MEDCouplingUMesh::shiftNodeNumbersInConn "shiftNodeNumbersInConn method".
+ * @param [in] newNodeNumbers in old2New convention
  */
-void MEDCouplingUMesh::renumberNodesInConn(const int *newNodeNumbers)
+void MEDCouplingUMesh::renumberNodesInConn(const int *newNodeNumbersO2N)
 {
+  checkConnectivityFullyDefined();
+  int *conn=getNodalConnectivity()->getPointer();
+  const int *connIndex=getNodalConnectivityIndex()->getConstPointer();
+  int nbOfCells=getNumberOfCells();
+  for(int i=0;i<nbOfCells;i++)
+    for(int iconn=connIndex[i]+1;iconn!=connIndex[i+1];iconn++)
+      {
+        int& node=conn[iconn];
+        if(node>=0)//avoid polyhedron separator
+          {
+            node=newNodeNumbersO2N[node];
+          }
+      }
+  _nodal_connec->declareAsNew();
+  updateTime();
+}
+
+/*!
+ * This method renumbers nodes \b in \b connectivity \b only \b without \b any \b reference \b to \b coords.
+ * This method performs no check on the fact that new coordinate ids are valid. \b Use \b it \b with \b care !
+ * This method is an specialization of \ref ParaMEDMEM::MEDCouplingUMesh::renumberNodesInConn "renumberNodesInConn method".
+ * 
+ * @param [in] delta specifies the shift size applied to nodeId in nodal connectivity in \b this.
+ */
+void MEDCouplingUMesh::shiftNodeNumbersInConn(int delta) throw(INTERP_KERNEL::Exception)
+{
+  checkConnectivityFullyDefined();
   int *conn=getNodalConnectivity()->getPointer();
   const int *connIndex=getNodalConnectivityIndex()->getConstPointer();
   int nbOfCells=getNumberOfCells();
@@ -1553,7 +1666,7 @@ void MEDCouplingUMesh::renumberNodesInConn(const int *newNodeNumbers)
         int& node=conn[iconn];
         if(node>=0)//avoid polyhedron separator
           {
-            node=newNodeNumbers[node];
+            node+=delta;
           }
       }
   _nodal_connec->declareAsNew();
@@ -1755,16 +1868,6 @@ void MEDCouplingUMesh::getNodeIdsOfCell(int cellId, std::vector<int>& conn) cons
       conn.push_back(*w);
 }
 
-/*!
- * Returns coordinates of node with id 'nodeId' and append it in 'coo'.
- */
-void MEDCouplingUMesh::getCoordinatesOfNode(int nodeId, std::vector<double>& coo) const
-{
-  const double *cooPtr=_coords->getConstPointer();
-  int spaceDim=getSpaceDimension();
-  coo.insert(coo.end(),cooPtr+spaceDim*nodeId,cooPtr+spaceDim*(nodeId+1));
-}
-
 std::string MEDCouplingUMesh::simpleRepr() const
 {
   static const char msg0[]="No coordinates specified !";
@@ -2923,7 +3026,7 @@ void MEDCouplingUMesh::getCellsContainingPoints(const double *pos, int nbOfPoint
  * A 2D cell is considered to be butterfly if it exists at least one pair of distinct edges of it that intersect each other
  * anywhere excepted their extremities. An INTERP_KERNEL::NORM_NORI3 could \b not be butterfly.
  */
-void MEDCouplingUMesh::checkButterflyCells(std::vector<int>& cells) const
+void MEDCouplingUMesh::checkButterflyCells(std::vector<int>& cells, double eps) const
 {
   const char msg[]="Butterfly detection work only for 2D cells with spaceDim==2 or 3!";
   if(getMeshDimension()!=2)
@@ -2943,7 +3046,7 @@ void MEDCouplingUMesh::checkButterflyCells(std::vector<int>& cells) const
         continue;
       bool isQuad=INTERP_KERNEL::CellModel::GetCellModel((INTERP_KERNEL::NormalizedCellType)conn[offset]).isQuadratic();
       project2DCellOnXY(conn+offset+1,conn+connI[i+1],cell2DinS2);
-      if(isButterfly2DCell(cell2DinS2,isQuad))
+      if(isButterfly2DCell(cell2DinS2,isQuad,eps))
         cells.push_back(i);
       cell2DinS2.clear();
     }
@@ -4837,7 +4940,7 @@ MEDCouplingUMesh *MEDCouplingUMesh::MergeUMeshes(const MEDCouplingUMesh *mesh1,
 
 /*!
  * This method returns in case of success a mesh constitued from union of all meshes in 'a'.
- * There should be \b no presence of null pointer into 'a'.
+ * There should be \b no presence of null pointer into 'a'. If any an INTERP_KERNEL::Exception will be thrown.
  * The returned mesh will contain aggregation of nodes in 'a' (in the same order) and aggregation of
  * cells in meshes in 'a' (in the same order too).
  */
@@ -4846,17 +4949,18 @@ MEDCouplingUMesh *MEDCouplingUMesh::MergeUMeshes(std::vector<const MEDCouplingUM
   std::size_t sz=a.size();
   if(sz==0)
     return MergeUMeshesLL(a);
+  for(std::size_t ii=0;ii<sz;ii++)
+    if(!a[ii])
+      {
+        std::ostringstream oss; oss << "MEDCouplingUMesh::MergeUMeshes : item #" << ii << " in input array of size "<< sz << " is empty !";
+        throw INTERP_KERNEL::Exception(oss.str().c_str());
+      }
   std::vector< MEDCouplingAutoRefCountObjectPtr<MEDCouplingUMesh> > bb(sz);
   std::vector< const MEDCouplingUMesh * > aa(sz);
   int spaceDim=-3;
   for(std::size_t i=0;i<sz && spaceDim==-3;i++)
     {
       const MEDCouplingUMesh *cur=a[i];
-      if(!cur)
-        {
-          std::ostringstream oss; oss << "MEDCouplingUMesh::MergeUMeshes : item #" << i << " in input array is empty !";
-          throw INTERP_KERNEL::Exception(oss.str().c_str());
-        }
       const DataArrayDouble *coo=cur->getCoords();
       if(coo)
         spaceDim=coo->getNumberOfComponents();
@@ -4953,6 +5057,12 @@ MEDCouplingUMesh *MEDCouplingUMesh::MergeUMeshesOnSameCoords(const std::vector<c
 {
   if(meshes.empty())
     throw INTERP_KERNEL::Exception("meshes input parameter is expected to be non empty.");
+  for(std::size_t ii=0;ii<meshes.size();ii++)
+    if(!meshes[ii])
+      {
+        std::ostringstream oss; oss << "MEDCouplingUMesh::MergeUMeshesOnSameCoords : item #" << ii << " in input array of size "<< meshes.size() << " is empty !";;
+        throw INTERP_KERNEL::Exception(oss.str().c_str());
+      }
   const DataArrayDouble *coords=meshes.front()->getCoords();
   int meshDim=meshes.front()->getMeshDimension();
   std::vector<const MEDCouplingUMesh *>::const_iterator iter=meshes.begin();
@@ -5032,6 +5142,114 @@ MEDCouplingUMesh *MEDCouplingUMesh::FuseUMeshesOnSameCoords(const std::vector<co
   return ret;
 }
 
+/*!
+ * This method takes in input meshes \b meshes containing no null reference. If any an INTERP_KERNEL::Exception will be thrown.
+ * \b meshes should have a good coherency (connectivity and coordinates well defined).
+ * All mesh in \b meshes must have the same space dimension. If not an INTERP_KERNEL:Exception will be thrown.
+ * But mesh in \b meshes \b can \b have \b different \b mesh \b dimension \b each \b other.
+ *
+ * This method performs nothing if size of \b meshes is in [0,1].
+ * This method is particulary usefull in MEDLoader context to build a \ref ParaMEDMEM::MEDFileUMesh "MEDFileUMesh" instance that expects that underlying
+ * coordinates DataArrayDouble instance.
+ *
+ * \param [in,out] meshes : vector containing no null instance of MEDCouplingUMesh that in case of success of this method will be modified.
+ */
+void MEDCouplingUMesh::PutUMeshesOnSameAggregatedCoords(const std::vector<MEDCouplingUMesh *>& meshes) throw(INTERP_KERNEL::Exception)
+{
+  std::size_t sz=meshes.size();
+  if(sz==0 || sz==1)
+    return;
+  std::vector< const DataArrayDouble * > coords(meshes.size());
+  std::vector< const DataArrayDouble * >::iterator it2=coords.begin();
+  for(std::vector<MEDCouplingUMesh *>::const_iterator it=meshes.begin();it!=meshes.end();it++,it2++)
+    {
+      if((*it))
+        {
+          (*it)->checkConnectivityFullyDefined();
+          const DataArrayDouble *coo=(*it)->getCoords();
+          if(coo)
+            *it2=coo;
+          else
+            {
+              std::ostringstream oss; oss << " MEDCouplingUMesh::PutUMeshesOnSameAggregatedCoords : Item #" << std::distance(meshes.begin(),it) << " inside the vector of length " << meshes.size();
+              oss << " has no coordinate array defined !";
+              throw INTERP_KERNEL::Exception(oss.str().c_str());
+            }
+        }
+      else
+        {
+          std::ostringstream oss; oss << " MEDCouplingUMesh::PutUMeshesOnSameAggregatedCoords : Item #" << std::distance(meshes.begin(),it) << " inside the vector of length " << meshes.size();
+          oss << " is null !";
+          throw INTERP_KERNEL::Exception(oss.str().c_str());
+        }
+    }
+  MEDCouplingAutoRefCountObjectPtr<DataArrayDouble> res=DataArrayDouble::Aggregate(coords);
+  std::vector<MEDCouplingUMesh *>::const_iterator it=meshes.begin();
+  int offset=(*it)->getNumberOfNodes();
+  (*it++)->setCoords(res);
+  for(;it!=meshes.end();it++)
+    {
+      int oldNumberOfNodes=(*it)->getNumberOfNodes();
+      (*it)->setCoords(res);
+      (*it)->shiftNodeNumbersInConn(offset);
+      offset+=oldNumberOfNodes;
+    }
+}
+
+/*!
+ * This method takes in input meshes \b meshes containing no null reference. If any an INTERP_KERNEL::Exception will be thrown.
+ * \b meshes should have a good coherency (connectivity and coordinates well defined).
+ * All mesh in \b meshes must have the same space dimension. If not an INTERP_KERNEL:Exception will be thrown.
+ * But mesh in \b meshes \b can \b have \b different \b mesh \b dimension \b each \b other.
+ * If \b meshes share the same instance of DataArrayDouble as coordinates and that this instance is null, this method do nothing and no exception will be thrown.
+ *
+ * This method performs nothing if size of \b meshes is empty.
+ * This method is particulary usefull in MEDLoader context to perform a treatment of a MEDFileUMesh instance on different levels.
+ * coordinates DataArrayDouble instance.
+ *
+ * \param [in,out] meshes :vector containing no null instance of MEDCouplingUMesh sharing the same DataArrayDouble instance of coordinates, that in case of success of this method will be modified.
+ * \param [in] eps is the distance in absolute (that should be positive !), so that 2 or more points within a distance of eps will be merged into a single point.
+ */
+void MEDCouplingUMesh::MergeNodesOnUMeshesSharingSameCoords(const std::vector<MEDCouplingUMesh *>& meshes, double eps) throw(INTERP_KERNEL::Exception)
+{
+  if(meshes.empty())
+    return ;
+  std::set<const DataArrayDouble *> s;
+  for(std::vector<MEDCouplingUMesh *>::const_iterator it=meshes.begin();it!=meshes.end();it++)
+    {
+      if(*it)
+        s.insert((*it)->getCoords());
+      else
+        {
+          std::ostringstream oss; oss << "MEDCouplingUMesh::MergeNodesOnUMeshesSharingSameCoords : In input vector of unstructured meshes of size " << meshes.size() << " the element #" << std::distance(meshes.begin(),it) << " is null !";
+          throw INTERP_KERNEL::Exception(oss.str().c_str());
+        }
+    }
+  if(s.size()!=1)
+    {
+      std::ostringstream oss; oss << "MEDCouplingUMesh::MergeNodesOnUMeshesSharingSameCoords : In input vector of unstructured meshes of size " << meshes.size() << ", it appears that they do not share the same instance of DataArrayDouble for coordiantes ! tryToShareSameCoordsPermute method can help to reach that !";
+      throw INTERP_KERNEL::Exception(oss.str().c_str());
+    }
+  const DataArrayDouble *coo=*(s.begin());
+  if(!coo)
+    return;
+  //
+  DataArrayInt *comm,*commI;
+  coo->findCommonTuples(eps,-1,comm,commI);
+  MEDCouplingAutoRefCountObjectPtr<DataArrayInt> tmp1(comm),tmp2(commI);
+  int oldNbOfNodes=coo->getNumberOfTuples();
+  int newNbOfNodes;
+  MEDCouplingAutoRefCountObjectPtr<DataArrayInt> o2n=DataArrayInt::BuildOld2NewArrayFromSurjectiveFormat2(oldNbOfNodes,comm,commI,newNbOfNodes);
+  if(oldNbOfNodes==newNbOfNodes)
+    return ;
+  MEDCouplingAutoRefCountObjectPtr<DataArrayDouble> newCoords=coo->renumberAndReduce(o2n->getConstPointer(),newNbOfNodes);
+  for(std::vector<MEDCouplingUMesh *>::const_iterator it=meshes.begin();it!=meshes.end();it++)
+    {
+      (*it)->renumberNodesInConn(o2n->getConstPointer());
+      (*it)->setCoords(newCoords);
+    } 
+}
+
 /*!
  * This method takes in input a cell defined by its MEDcouplingUMesh connectivity [connBg,connEnd) and returns its extruded cell by inserting the result at the end of ret.
  * @param nbOfNodesPerLev in parameter that specifies the number of nodes of one slice of global dataset
@@ -5238,6 +5456,8 @@ void MEDCouplingUMesh::FillInCompact3DMode(int spaceDim, int nbOfNodesInCell, co
 
 void MEDCouplingUMesh::writeVTKLL(std::ostream& ofs, const std::string& cellData, const std::string& pointData) const throw(INTERP_KERNEL::Exception)
 {
+  if(getNumberOfCells()<=0)
+    throw INTERP_KERNEL::Exception("MEDCouplingUMesh::writeVTK : the unstructured mesh has no cells !");
   static const int PARAMEDMEM2VTKTYPETRADUCER[INTERP_KERNEL::NORM_MAXTYPE+1]={1,3,21,5,9,7,22,-1,23,-1,-1,-1,-1,-1,10,14,13,-1,12,-1,24,-1,16,27,-1,26,-1,-1,-1,-1,25,42,-1,4};
   ofs << "  <" << getVTKDataSetType() << ">\n";
   ofs << "    <Piece NumberOfPoints=\"" << getNumberOfNodes() << "\" NumberOfCells=\"" << getNumberOfCells() << "\">\n";
index b6a9982c0635faab0e1f145682fa748a4b81e46a..163a8ccf93796119d36215ba865773a914c4dd2e 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
@@ -70,7 +70,6 @@ namespace ParaMEDMEM
     MEDCOUPLING_EXPORT int getNumberOfCellsWithType(INTERP_KERNEL::NormalizedCellType type) const;
     MEDCOUPLING_EXPORT void getNodeIdsOfCell(int cellId, std::vector<int>& conn) const;
     MEDCOUPLING_EXPORT DataArrayInt *getCellIdsFullyIncludedInNodeIds(const int *partBg, const int *partEnd) const;
-    MEDCOUPLING_EXPORT void getCoordinatesOfNode(int nodeId, std::vector<double>& coo) const;
     MEDCOUPLING_EXPORT std::string simpleRepr() const;
     MEDCOUPLING_EXPORT std::string advancedRepr() const;
     MEDCOUPLING_EXPORT std::string reprConnectivityOfThis() const;
@@ -105,6 +104,7 @@ namespace ParaMEDMEM
     MEDCOUPLING_EXPORT void getReverseNodalConnectivity(DataArrayInt *revNodal, DataArrayInt *revNodalIndx) const throw(INTERP_KERNEL::Exception);
     MEDCOUPLING_EXPORT MEDCouplingUMesh *buildDescendingConnectivity(DataArrayInt *desc, DataArrayInt *descIndx, DataArrayInt *revDesc, DataArrayInt *revDescIndx) const throw(INTERP_KERNEL::Exception);
     MEDCOUPLING_EXPORT MEDCouplingUMesh *buildDescendingConnectivity2(DataArrayInt *desc, DataArrayInt *descIndx, DataArrayInt *revDesc, DataArrayInt *revDescIndx) const throw(INTERP_KERNEL::Exception);
+    MEDCOUPLING_EXPORT void computeNeighborsOfCells(DataArrayInt *&neighbors, DataArrayInt *&neighborsIdx) const throw(INTERP_KERNEL::Exception);
     MEDCOUPLING_EXPORT DataArrayInt *mergeNodes(double precision, bool& areNodesMerged, int& newNbOfNodes);
     MEDCOUPLING_EXPORT DataArrayInt *mergeNodes2(double precision, bool& areNodesMerged, int& newNbOfNodes);
     MEDCOUPLING_EXPORT void tryToShareSameCoordsPermute(const MEDCouplingPointSet& other, double epsilon) throw(INTERP_KERNEL::Exception);
@@ -118,6 +118,8 @@ namespace ParaMEDMEM
     MEDCOUPLING_EXPORT DataArrayInt *findCellsIdsOnBoundary() const throw(INTERP_KERNEL::Exception);
     MEDCOUPLING_EXPORT void renumberNodes(const int *newNodeNumbers, int newNbOfNodes);
     MEDCOUPLING_EXPORT void renumberNodes2(const int *newNodeNumbers, int newNbOfNodes);
+    MEDCOUPLING_EXPORT void renumberNodesInConn(const int *newNodeNumbersO2N);
+    MEDCOUPLING_EXPORT void shiftNodeNumbersInConn(int delta) throw(INTERP_KERNEL::Exception);
     MEDCOUPLING_EXPORT void renumberCells(const int *old2NewBg, bool check) throw(INTERP_KERNEL::Exception);
     MEDCOUPLING_EXPORT void getCellsInBoundingBox(const double *bbox, double eps, std::vector<int>& elems) const;
     MEDCOUPLING_EXPORT void getCellsInBoundingBox(const INTERP_KERNEL::DirectedBoundingBox& bbox, double eps, std::vector<int>& elems);
@@ -135,7 +137,7 @@ namespace ParaMEDMEM
     MEDCOUPLING_EXPORT int getCellContainingPoint(const double *pos, double eps) const;
     MEDCOUPLING_EXPORT void getCellsContainingPoint(const double *pos, double eps, std::vector<int>& elts) const;
     MEDCOUPLING_EXPORT void getCellsContainingPoints(const double *pos, int nbOfPoints, double eps, std::vector<int>& elts, std::vector<int>& eltsIndex) const;
-    MEDCOUPLING_EXPORT void checkButterflyCells(std::vector<int>& cells) const;
+    MEDCOUPLING_EXPORT void checkButterflyCells(std::vector<int>& cells, double eps=1e-12) const;
     MEDCOUPLING_EXPORT void findAndCorrectBadOriented3DExtrudedCells(std::vector<int>& cells) throw(INTERP_KERNEL::Exception);
     MEDCOUPLING_EXPORT void getBoundingBoxForBBTree(std::vector<double>& bbox) const;
     MEDCOUPLING_EXPORT MEDCouplingUMesh *buildExtrudedMesh(const MEDCouplingUMesh *mesh1D, int policy);
@@ -183,6 +185,8 @@ namespace ParaMEDMEM
     MEDCOUPLING_EXPORT static MEDCouplingUMesh *MergeUMeshesOnSameCoords(const MEDCouplingUMesh *mesh1, const MEDCouplingUMesh *mesh2) throw(INTERP_KERNEL::Exception);
     MEDCOUPLING_EXPORT static MEDCouplingUMesh *MergeUMeshesOnSameCoords(const std::vector<const MEDCouplingUMesh *>& meshes);
     MEDCOUPLING_EXPORT static MEDCouplingUMesh *FuseUMeshesOnSameCoords(const std::vector<const MEDCouplingUMesh *>& meshes, int compType, std::vector<DataArrayInt *>& corr);
+    MEDCOUPLING_EXPORT static void PutUMeshesOnSameAggregatedCoords(const std::vector<MEDCouplingUMesh *>& meshes) throw(INTERP_KERNEL::Exception);
+    MEDCOUPLING_EXPORT static void MergeNodesOnUMeshesSharingSameCoords(const std::vector<MEDCouplingUMesh *>& meshes, double eps) throw(INTERP_KERNEL::Exception);
     MEDCOUPLING_EXPORT static bool IsPolygonWellOriented(bool isQuadratic, const double *vec, const int *begin, const int *end, const double *coords);
     MEDCOUPLING_EXPORT static bool IsPolyhedronWellOriented(const int *begin, const int *end, const double *coords);
     MEDCOUPLING_EXPORT static void TryToCorrectPolyhedronOrientation(int *begin, int *end, const double *coords) throw(INTERP_KERNEL::Exception);
@@ -200,7 +204,6 @@ namespace ParaMEDMEM
     DataArrayInt *simplexizePol0() throw(INTERP_KERNEL::Exception);
     DataArrayInt *simplexizePol1() throw(INTERP_KERNEL::Exception);
     void subDivide2DMesh(const int *nodeSubdived, const int *nodeIndxSubdived, const int *desc, const int *descIndex) throw(INTERP_KERNEL::Exception);
-    void renumberNodesInConn(const int *newNodeNumbers);
     void fillCellIdsToKeepFromNodeIds(const int *begin, const int *end, bool fullyIn, std::vector<int>& cellIdsKept) const;
     void split3DCurveWithPlane(const double *origin, const double *vec, double eps, std::vector<int>& cut3DCurve) throw(INTERP_KERNEL::Exception);
     MEDCouplingUMesh *buildExtrudedMeshFromThisLowLev(int nbOfNodesOf1Lev, bool isQuad) const;
index e0627080a833512e5e6a2fa66df00a8ad4bba617..893b547ca5565bd2394995313ea91eb9455b48c0 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
@@ -56,11 +56,9 @@ MEDCouplingUMeshDesc *MEDCouplingUMeshDesc::New(const char *meshName, int meshDi
   return ret;
 }
 
-/*!
- * not implemented
- */
 MEDCouplingMesh *MEDCouplingUMeshDesc::deepCpy() const
 {
+  throw INTERP_KERNEL::Exception("Not implemented yet !");
   return 0;
 }
 
@@ -157,12 +155,7 @@ int MEDCouplingUMeshDesc::getNumberOfCellsWithType(INTERP_KERNEL::NormalizedCell
 
 void MEDCouplingUMeshDesc::getNodeIdsOfCell(int cellId, std::vector<int>& conn) const
 {
-  //not implemented yet.
-}
-
-void MEDCouplingUMeshDesc::getCoordinatesOfNode(int nodeId, std::vector<double>& coo) const
-{
-  //not implemented yet.
+  throw INTERP_KERNEL::Exception("Not implemented yet !");
 }
 
 std::string MEDCouplingUMeshDesc::simpleRepr() const
@@ -364,14 +357,14 @@ void MEDCouplingUMeshDesc::getCellsInBoundingBox(const INTERP_KERNEL::DirectedBo
 
 DataArrayInt *MEDCouplingUMeshDesc::mergeNodes(double precision, bool& areNodesMerged, int& newNbOfNodes)
 {
-  //not implemented yet.
+  throw INTERP_KERNEL::Exception("Not implemented yet !");
   areNodesMerged=false;
   return 0;
 }
 
 DataArrayInt *MEDCouplingUMeshDesc::mergeNodes2(double precision, bool& areNodesMerged, int& newNbOfNodes)
 {
-  //not implemented yet.
+  throw INTERP_KERNEL::Exception("Not implemented yet !");
   areNodesMerged=false;
   return 0;
 }
@@ -383,19 +376,19 @@ void MEDCouplingUMeshDesc::tryToShareSameCoordsPermute(const MEDCouplingPointSet
 
 MEDCouplingPointSet *MEDCouplingUMeshDesc::buildPartOfMySelf(const int *start, const int *end, bool keepCoords) const
 {
-  //not implemented yet.
+  throw INTERP_KERNEL::Exception("Not implemented yet !");
   return 0;
 }
 
 MEDCouplingPointSet *MEDCouplingUMeshDesc::buildPartOfMySelfNode(const int *start, const int *end, bool fullyIn) const
 {
-  //not implemented yet
+  throw INTERP_KERNEL::Exception("Not implemented yet !");
   return 0;
 }
 
 MEDCouplingPointSet *MEDCouplingUMeshDesc::buildFacePartOfMySelfNode(const int *start, const int *end, bool fullyIn) const
 {
-  //not implemented yet
+  throw INTERP_KERNEL::Exception("Not implemented yet !");
   return 0;
 }
 
@@ -406,12 +399,12 @@ DataArrayInt *MEDCouplingUMeshDesc::simplexize(int policy) throw(INTERP_KERNEL::
 
 void MEDCouplingUMeshDesc::findBoundaryNodes(std::vector<int>& nodes) const
 {
-  //not implemented yet
+  throw INTERP_KERNEL::Exception("Not implemented yet !");
 }
 
 MEDCouplingPointSet *MEDCouplingUMeshDesc::buildBoundaryMesh(bool keepCoords) const
 {
-  //not implemented yet
+  throw INTERP_KERNEL::Exception("Not implemented yet !");
   return 0;
 }
 
@@ -428,18 +421,18 @@ void MEDCouplingUMeshDesc::renumberCells(const int *old2NewBg, bool check) throw
 void MEDCouplingUMeshDesc::renumberNodes(const int *newNodeNumbers, int newNbOfNodes)
 {
   MEDCouplingPointSet::renumberNodes(newNodeNumbers,newNbOfNodes);
-  //not implemented yet
+  throw INTERP_KERNEL::Exception("Not implemented yet !");
 }
 
 MEDCouplingFieldDouble *MEDCouplingUMeshDesc::getMeasureField(bool isAbs) const
 {
-  //not implemented yet.
+  throw INTERP_KERNEL::Exception("Not implemented yet !");
   return 0;
 }
 
 MEDCouplingFieldDouble *MEDCouplingUMeshDesc::getMeasureFieldOnNode(bool isAbs) const
 {
-  //not implemented yet.
+  throw INTERP_KERNEL::Exception("Not implemented yet !");
   return 0;
 }
 
@@ -447,13 +440,13 @@ MEDCouplingFieldDouble *MEDCouplingUMeshDesc::buildOrthogonalField() const
 {
   if(getMeshDimension()!=2)
     throw INTERP_KERNEL::Exception("Expected a cmesh with meshDim == 2 !");
-  //not implemented yet !
+  throw INTERP_KERNEL::Exception("Not implemented yet !");
   return 0;
 }
 
 DataArrayInt *MEDCouplingUMeshDesc::zipCoordsTraducer()
 {
-  //not implemented yet.
+  throw INTERP_KERNEL::Exception("Not implemented yet !");
   return 0;
 }
 
@@ -478,13 +471,13 @@ void MEDCouplingUMeshDesc::checkFullyDefined() const throw(INTERP_KERNEL::Except
 
 MEDCouplingMesh *MEDCouplingUMeshDesc::mergeMyselfWith(const MEDCouplingMesh *other) const
 {  
-  //not implemented yet.
+  throw INTERP_KERNEL::Exception("Not implemented yet !");
   return 0;
 }
 
 DataArrayDouble *MEDCouplingUMeshDesc::getBarycenterAndOwner() const
 {
-  //not implemented yet.
+  throw INTERP_KERNEL::Exception("Not implemented yet !");
   return 0;
 }
 
index d2d8d06136c08009736fee1bbba924264f2946e7..ffbeebf2b64f524bb80dbd0ae6987b58c2fcb103 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
@@ -51,7 +51,6 @@ namespace ParaMEDMEM
     MEDCOUPLING_EXPORT std::set<INTERP_KERNEL::NormalizedCellType> getAllGeoTypes() const;
     MEDCOUPLING_EXPORT int getNumberOfCellsWithType(INTERP_KERNEL::NormalizedCellType type) const;
     MEDCOUPLING_EXPORT void getNodeIdsOfCell(int cellId, std::vector<int>& conn) const;
-    MEDCOUPLING_EXPORT void getCoordinatesOfNode(int nodeId, std::vector<double>& coo) const;
     MEDCOUPLING_EXPORT std::string simpleRepr() const;
     MEDCOUPLING_EXPORT std::string advancedRepr() const;
     MEDCOUPLING_EXPORT MEDCouplingMeshType getType() const { return UNSTRUCTURED_DESC; }
index 0699799ce5cabeea5f66f60ff5cb87028fea2854..10ec42d3c761630af84887288a23dd3caa0a20a9 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index 4ad1e3e7cfd231a7da2ccb0b74dbdaf9e378d870..f7535d9051a94b29fc1c335e1d66be42fce8202c 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index 99168c6bd53a743a51a5ac3ec822cee71fd65578..3e7a7844849fcd0f4cbf3c9dcb4d00585ee93f36 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 9847e48869c167813467b45b1ea2d8828a3c1025..bcd2fc326cdc1e6e10df0c0a7bb9ab534b31fe44 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 00e68c5b0d182b3bf9c8557c90d84f83c1dbb50e..ba6ae4027a6521945d4dc6f86f06857958e44a76 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 8d456f1579681dbd48206dc4b598d6f40f5f767f..6cea32d74735e39d30516346e13cb137acb77987 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 9afa39e05a4228e4f83da6a4bbc14cfa18085076..fd90286e875159a0adc7fd78a6bafb5ee1eb37ed 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index d0da201878ad73db4542ef9969f9948a8b5178f3..4a8d58c45c23e5cb8776afbcea909f3cb8340c4d 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index b0ed88eedf0fe0f216b9a32c2a884f0088b27b1b..c5cb3096715954edc5bfdd90f121aee535ea0a0e 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
@@ -2386,7 +2386,9 @@ void MEDCouplingBasicsTest3::testMergeUMeshes2()
   MEDCouplingUMesh *m3_2=(MEDCouplingUMesh *)m3->buildPartOfMySelf(vec2,vec2+2,false);
   //
   std::vector<const MEDCouplingUMesh *> ms(3);
+  std::vector<const MEDCouplingMesh *> ms2(3);
   ms[0]=m1; ms[1]=m2_2; ms[2]=m3_2;
+  ms2[0]=m1; ms2[1]=m2_2; ms2[2]=m3_2;
   //
   MEDCouplingUMesh *m4=MEDCouplingUMesh::MergeUMeshes(ms);
   m4->checkCoherency();
@@ -2394,6 +2396,10 @@ void MEDCouplingBasicsTest3::testMergeUMeshes2()
   CPPUNIT_ASSERT_EQUAL(20,m4->getNumberOfNodes());
   CPPUNIT_ASSERT_EQUAL(45,m4->getMeshLength());
   //
+  MEDCouplingMesh *m4bis=MEDCouplingMesh::MergeMeshes(ms2);
+  CPPUNIT_ASSERT(m4->isEqual(m4bis,1e-12));
+  m4bis->decrRef();
+  //
   const int vec3[5]={0,1,2,3,4};
   MEDCouplingUMesh *m4_1=(MEDCouplingUMesh *)m4->buildPartOfMySelf(vec3,vec3+5,false);
   m4_1->setName(m1->getName());
index ce5a60944d5550dcbf67c93fae2689359424409e..b6d04e3bc9d7e5c50e58f8e17e5aebc5207cf5fe 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 1075bcb9f874b88636c0d937bad6282ebf2f1ae6..d412fde11601ceeb25b6347c71e09d71f9567395 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index bd4bc47c392f1b44d06357e2a0d680fcaa918734..e8ad9fcbcbe9725cb2edb74b3a5e877353b76c68 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 617ae1de42e4f41f287b939cd13a14b3941f682d..4cf00f253f00b34d9f89a1045d027c01e1079df4 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
@@ -590,3 +590,486 @@ void MEDCouplingBasicsTest5::testDataArrayAbs1()
   d2->decrRef();
   d1->decrRef();
 }
+
+void MEDCouplingBasicsTest5::testGetValueOn3()
+{
+  const double v[4]={0.,1.,1.5,2.};
+  const double v2[5]={0.7,1.25,0.,2.,1.5};
+  const double disp[12]={5.,50.,500.,6.,60.,600.,7.,70.,700.,8.,80.,800.};
+  MEDCouplingUMesh *m=MEDCouplingUMesh::New("myMesh",1);
+  const int nbNodes=4;
+  const int nbCells=nbNodes-1;
+  m->allocateCells(nbCells);
+  DataArrayDouble *coords=DataArrayDouble::New();
+  coords->alloc(nbNodes,1);
+  std::copy(v,v+nbNodes,coords->getPointer());
+  m->setCoords(coords);
+  coords->decrRef();
+  const int conn[6]={0,1,2,1,2,3};
+  m->insertNextCell(INTERP_KERNEL::NORM_SEG2,2,conn);
+  m->insertNextCell(INTERP_KERNEL::NORM_SEG2,2,conn+2);
+  m->insertNextCell(INTERP_KERNEL::NORM_SEG2,2,conn+4);
+  m->finishInsertingCells();
+  MEDCouplingFieldDouble *f=MEDCouplingFieldDouble::New(ON_NODES);
+  f->setMesh(m);
+  DataArrayDouble *array=DataArrayDouble::New();
+  array->alloc(m->getNumberOfNodes(),3);
+  std::copy(disp,disp+12,array->getPointer());
+  f->setArray(array);
+  array->decrRef();
+  DataArrayDouble *arr1=f->getValueOnMulti(v2,5);
+  CPPUNIT_ASSERT_EQUAL(5,arr1->getNumberOfTuples());
+  CPPUNIT_ASSERT_EQUAL(3,arr1->getNumberOfComponents());
+  const double expected1[15]={5.7,57.,570.,6.5,65.,650.,5.,50.,500.,8.,80.,800.,7.,70.,700.};
+  for(int i=0;i<15;i++)
+    CPPUNIT_ASSERT_DOUBLES_EQUAL(expected1[i],arr1->getIJ(0,i),1e-14);
+  arr1->decrRef();
+  f->decrRef();
+  m->decrRef();
+}
+
+void MEDCouplingBasicsTest5::testGetNodeIdsOfCell2()
+{
+  MEDCouplingCMesh *m1c=MEDCouplingCMesh::New();
+  DataArrayDouble *coordsX=DataArrayDouble::New();
+  double arrX[5] = { -1., 1., 2., 4., 4.5 };
+  coordsX->useArray(arrX,false, CPP_DEALLOC,5,1);
+  DataArrayDouble *coordsY=DataArrayDouble::New();
+  double arrY[4] = { -2., 2., 4., 8. };
+  coordsY->useArray(arrY,false, CPP_DEALLOC,4,1);
+  DataArrayDouble *coordsZ=DataArrayDouble::New();
+  double arrZ[3] = { -2., 2., 4. };
+  coordsZ->useArray(arrZ,false, CPP_DEALLOC,3,1);  
+  // test in 1D
+  m1c->setCoordsAt(0,coordsX);
+  CPPUNIT_ASSERT_EQUAL(4,m1c->getNumberOfCells());
+  const int expected1[4][2]={{0,1},{1,2},{2,3},{3,4}};
+  for(int i=0;i<4;i++)
+    {
+      std::vector<int> v;
+      m1c->getNodeIdsOfCell(i,v);
+      CPPUNIT_ASSERT((int)v.size()==2);
+      std::equal(v.begin(),v.end(),expected1[i]);
+    }
+  // test in 2D
+  m1c->setCoordsAt(1,coordsY);
+  CPPUNIT_ASSERT_EQUAL(12,m1c->getNumberOfCells());
+  const int expected2[12][4]={{0,1,6,5},{1,2,7,6},{2,3,8,7},{3,4,9,8},{4,5,11,10},{5,6,12,11},{6,7,13,12},{7,8,14,13},{8,9,16,15},{9,10,17,16},{10,11,18,17},{11,12,19,18}};
+  for(int i=0;i<12;i++)
+    {
+      std::vector<int> v;
+      m1c->getNodeIdsOfCell(i,v);
+      CPPUNIT_ASSERT((int)v.size()==4);
+      std::equal(v.begin(),v.end(),expected2[i]);
+    }
+  // test in 3D
+  m1c->setCoordsAt(2,coordsZ);
+  CPPUNIT_ASSERT_EQUAL(24,m1c->getNumberOfCells());
+  const int expected3[24][8]={{0,1,6,5,20,21,26,25},{1,2,7,6,21,22,27,26},{2,3,8,7,22,23,28,27},{3,4,9,8,23,24,29,28},{4,5,11,10,24,25,31,30},{5,6,12,11,25,26,32,31},{6,7,13,12,26,27,33,32},{7,8,14,13,27,28,34,33},{8,9,16,15,28,29,36,35},{9,10,17,16,29,30,37,36},{10,11,18,17,30,31,38,37},{11,12,19,18,31,32,39,38},{20,21,26,25,40,41,46,45},{21,22,27,26,41,42,47,46},{22,23,28,27,42,43,48,47},{23,24,29,28,43,44,49,48},{24,25,31,30,44,45,51,50},{25,26,32,31,45,46,52,51},{26,27,33,32,46,47,53,52},{27,28,34,33,47,48,54,53},{28,29,36,35,48,49,56,55},{29,30,37,36,49,50,57,56},{30,31,38,37,50,51,58,57},{31,32,39,38,51,52,59,58}};
+  for(int i=0;i<12;i++)
+    {
+      std::vector<int> v;
+      m1c->getNodeIdsOfCell(i,v);
+      CPPUNIT_ASSERT((int)v.size()==8);
+      std::equal(v.begin(),v.end(),expected3[i]);
+    }
+  //
+  coordsX->decrRef();
+  coordsY->decrRef();
+  coordsZ->decrRef();
+  m1c->decrRef();
+}
+
+void MEDCouplingBasicsTest5::testRenumberNodesInConn1()
+{
+  double mesh2DCoords[27]={-0.3,-0.3,0., 0.2,-0.3,0., 0.7,-0.3,0., -0.3,0.2,0., 0.2,0.2,0., 0.7,0.2,0., -0.3,0.7,0., 0.2,0.7,0., 0.7,0.7,0. };
+  int mesh2DConn[18]={1,4,2, 4,5,2, 0,3,4,1, 6,7,4,3, 7,8,5,4};
+  MEDCouplingUMesh *mesh2D=MEDCouplingUMesh::New("mesh",2);
+  mesh2D->allocateCells(5);
+  mesh2D->insertNextCell(INTERP_KERNEL::NORM_TRI3,3,mesh2DConn);
+  mesh2D->insertNextCell(INTERP_KERNEL::NORM_TRI3,3,mesh2DConn+3);
+  mesh2D->insertNextCell(INTERP_KERNEL::NORM_QUAD4,4,mesh2DConn+6);
+  mesh2D->insertNextCell(INTERP_KERNEL::NORM_QUAD4,4,mesh2DConn+10);
+  mesh2D->insertNextCell(INTERP_KERNEL::NORM_QUAD4,4,mesh2DConn+14);
+  mesh2D->finishInsertingCells();
+  DataArrayDouble *myCoords=DataArrayDouble::New();
+  myCoords->alloc(9,3);
+  std::copy(mesh2DCoords,mesh2DCoords+27,myCoords->getPointer());
+  mesh2D->setCoords(myCoords);
+  myCoords->decrRef();
+  mesh2D->checkCoherency();
+  //
+  double mesh3DCoords[24]={-0.3,-0.3,0., -0.3,0.2,0., 0.2,0.2,0., 0.2,-0.3,0., -0.3,-0.3,1., -0.3,0.2,1., 0.2,0.2,1., 0.2,-0.3,1. };
+  int mesh3DConn[8]={0,1,2,3,4,5,6,7};
+  MEDCouplingUMesh *mesh3D=MEDCouplingUMesh::New("mesh",3);
+  mesh3D->allocateCells(1);
+  mesh3D->insertNextCell(INTERP_KERNEL::NORM_HEXA8,8,mesh3DConn);
+  mesh3D->finishInsertingCells();
+  DataArrayDouble *myCoords3D=DataArrayDouble::New();
+  myCoords3D->alloc(8,3);
+  std::copy(mesh3DCoords,mesh3DCoords+24,myCoords3D->getPointer());
+  mesh3D->setCoords(myCoords3D);
+  myCoords3D->decrRef();
+  mesh3D->checkCoherency();
+  //
+  MEDCouplingUMesh *mesh3D_2=dynamic_cast<MEDCouplingUMesh *>(mesh3D->deepCpy());
+  MEDCouplingUMesh *mesh2D_2=dynamic_cast<MEDCouplingUMesh *>(mesh2D->deepCpy());
+  MEDCouplingUMesh *mesh3D_4=dynamic_cast<MEDCouplingUMesh *>(mesh3D->deepCpy());
+  MEDCouplingUMesh *mesh2D_4=dynamic_cast<MEDCouplingUMesh *>(mesh2D->deepCpy());
+  DataArrayInt *renumNodes=DataArrayInt::New();
+  int oldNbOf3DNodes=mesh3D->getNumberOfNodes();
+  renumNodes->alloc(mesh2D->getNumberOfNodes(),1);
+  renumNodes->iota(oldNbOf3DNodes);
+  DataArrayDouble *coo=DataArrayDouble::Aggregate(mesh3D->getCoords(),mesh2D->getCoords());
+  mesh3D->setCoords(coo);
+  mesh2D->setCoords(coo);
+  coo->decrRef();
+  MEDCouplingUMesh *mesh2D_3=dynamic_cast<MEDCouplingUMesh *>(mesh2D->deepCpy());
+  mesh2D_3->shiftNodeNumbersInConn(oldNbOf3DNodes);
+  mesh2D->renumberNodesInConn(renumNodes->getConstPointer());
+  renumNodes->decrRef();
+  CPPUNIT_ASSERT(mesh2D_3->isEqual(mesh2D,1e-12));
+  mesh2D_3->decrRef();
+  //
+  DataArrayInt *da1,*da2;
+  mesh3D->checkGeoEquivalWith(mesh3D_2,10,1e-12,da1,da2);
+  CPPUNIT_ASSERT(da1==0);
+  CPPUNIT_ASSERT_EQUAL(8,da2->getNumberOfTuples());
+  CPPUNIT_ASSERT_EQUAL(1,da2->getNumberOfComponents());
+  const int expected1[8]={8,11,12,9,4,5,6,7};
+  for(int i=0;i<8;i++)
+    CPPUNIT_ASSERT_EQUAL(expected1[i],da2->getIJ(i,0));
+  da2->decrRef();
+  //
+  mesh2D->checkGeoEquivalWith(mesh2D_2,10,1e-12,da1,da2);
+  CPPUNIT_ASSERT(da1==0);
+  CPPUNIT_ASSERT_EQUAL(9,da2->getNumberOfTuples());
+  CPPUNIT_ASSERT_EQUAL(1,da2->getNumberOfComponents());
+  for(int i=0;i<9;i++)
+    CPPUNIT_ASSERT_EQUAL(8+i,da2->getIJ(i,0));
+  da2->decrRef();
+  //
+  const double vect[3]={1.,0.,0.};
+  MEDCouplingUMesh *mesh2D_5=dynamic_cast<MEDCouplingUMesh *>(mesh2D_4->deepCpy());
+  mesh2D_5->translate(vect);
+  std::vector<MEDCouplingUMesh *> meshes(3);
+  meshes[0]=mesh3D_4; meshes[1]=mesh2D_4; meshes[2]=mesh2D_5;
+  MEDCouplingUMesh::PutUMeshesOnSameAggregatedCoords(meshes);
+  CPPUNIT_ASSERT(mesh3D_4->getCoords()==mesh2D_4->getCoords());
+  CPPUNIT_ASSERT(mesh2D_4->getCoords()==mesh2D_5->getCoords());
+  mesh3D_4->checkCoherency(); mesh2D_4->checkCoherency(); mesh2D_5->checkCoherency();
+  CPPUNIT_ASSERT_EQUAL(26,mesh3D_4->getNumberOfNodes());
+  CPPUNIT_ASSERT_EQUAL(3,mesh3D_4->getSpaceDimension());
+  CPPUNIT_ASSERT_EQUAL(9,mesh3D_4->getNodalConnectivity()->getNumberOfTuples());
+  CPPUNIT_ASSERT_EQUAL(23,mesh2D_4->getNodalConnectivity()->getNumberOfTuples());
+  CPPUNIT_ASSERT_EQUAL(23,mesh2D_5->getNodalConnectivity()->getNumberOfTuples());
+  const int expected2[9]={18,0,1,2,3,4,5,6,7};
+  const int expected3[23]={3,9,12,10, 3,12,13,10, 4,8,11,12,9, 4,14,15,12,11, 4,15,16,13,12};
+  const int expected4[23]={3,18,21,19, 3,21,22,19, 4,17,20,21,18, 4,23,24,21,20, 4,24,25,22,21};
+  const double expected5[78]={-0.3,-0.3,0., -0.3,0.2,0., 0.2,0.2,0., 0.2,-0.3,0., -0.3,-0.3,1., -0.3,0.2,1., 0.2,0.2,1., 0.2,-0.3,1., -0.3,-0.3,0., 0.2,-0.3,0., 0.7,-0.3,0., -0.3,0.2,0., 0.2,0.2,0., 0.7,0.2,0., -0.3,0.7,0., 0.2,0.7,0., 0.7,0.7,0., 0.7, -0.3, 0.0, 1.2, -0.3, 0.0, 1.7, -0.3, 0.0, 0.7, 0.2, 0.0, 1.2, 0.2, 0.0, 1.7, 0.2, 0.0, 0.7, 0.7, 0.0, 1.2, 0.7, 0.0, 1.7, 0.7, 0.0};
+  CPPUNIT_ASSERT(std::equal(expected2,expected2+9,mesh3D_4->getNodalConnectivity()->getConstPointer()));
+  CPPUNIT_ASSERT(std::equal(expected3,expected3+23,mesh2D_4->getNodalConnectivity()->getConstPointer()));
+  CPPUNIT_ASSERT(std::equal(expected4,expected4+23,mesh2D_5->getNodalConnectivity()->getConstPointer()));
+  for(int i=0;i<78;i++)
+    CPPUNIT_ASSERT_DOUBLES_EQUAL(expected5[i],mesh3D_4->getCoords()->getIJ(0,i),1e-12);
+  //
+  MEDCouplingUMesh::MergeNodesOnUMeshesSharingSameCoords(meshes,1e-12);
+  mesh3D_4->checkCoherency(); mesh2D_4->checkCoherency(); mesh2D_5->checkCoherency();
+  CPPUNIT_ASSERT(mesh3D_4->getCoords()==mesh2D_4->getCoords());
+  CPPUNIT_ASSERT(mesh2D_4->getCoords()==mesh2D_5->getCoords());
+  CPPUNIT_ASSERT_EQUAL(19,mesh3D_4->getNumberOfNodes());
+  CPPUNIT_ASSERT_EQUAL(3,mesh3D_4->getSpaceDimension());
+  CPPUNIT_ASSERT_EQUAL(9,mesh3D_4->getNodalConnectivity()->getNumberOfTuples());
+  CPPUNIT_ASSERT_EQUAL(23,mesh2D_4->getNodalConnectivity()->getNumberOfTuples());
+  CPPUNIT_ASSERT_EQUAL(23,mesh2D_5->getNodalConnectivity()->getNumberOfTuples());
+  const int expected6[9]={18,0,1,2,3,4,5,6,7};
+  const int expected7[23]={3,3,2,8, 3,2,9,8, 4,0,1,2,3, 4,10,11,2,1, 4,11,12,9,2};
+  const int expected8[23]={3,13,15,14, 3,15,16,14, 4,8,9,15,13, 4,12,17,15,9, 4,17,18,16,15};
+  const double expected9[57]={-0.3, -0.3, 0., -0.3, 0.2, 0., 0.2, 0.2, 0., 0.2, -0.3, 0., -0.3, -0.3, 1., -0.3, 0.2, 1., 
+                              0.2, 0.2, 1., 0.2, -0.3, 1., 0.7, -0.3, 0., 0.7, 0.2, 0., -0.3, 0.7, 0., 0.2, 0.7, 0., 
+                              0.7, 0.7, 0., 1.2, -0.3, 0., 1.7, -0.3, 0., 1.2, 0.2, 0., 1.7, 0.2, 0., 1.2, 0.7, 0., 1.7, 0.7, 0.};
+  CPPUNIT_ASSERT(std::equal(expected6,expected6+9,mesh3D_4->getNodalConnectivity()->getConstPointer()));
+  CPPUNIT_ASSERT(std::equal(expected7,expected7+23,mesh2D_4->getNodalConnectivity()->getConstPointer()));
+  CPPUNIT_ASSERT(std::equal(expected8,expected8+23,mesh2D_5->getNodalConnectivity()->getConstPointer()));
+  for(int i=0;i<57;i++)
+    CPPUNIT_ASSERT_DOUBLES_EQUAL(expected9[i],mesh3D_4->getCoords()->getIJ(0,i),1e-12);
+  mesh2D_5->decrRef();
+  //
+  mesh3D_4->decrRef();
+  mesh2D_4->decrRef();
+  mesh3D_2->decrRef();
+  mesh2D_2->decrRef();
+  //
+  mesh3D->decrRef();
+  mesh2D->decrRef();
+}
+
+void MEDCouplingBasicsTest5::testComputeNeighborsOfCells1()
+{
+  MEDCouplingUMesh *m=build2DTargetMesh_1();
+  DataArrayInt *d1=0,*d2=0;
+  m->computeNeighborsOfCells(d1,d2);
+  CPPUNIT_ASSERT_EQUAL(6,d2->getNumberOfTuples());
+  CPPUNIT_ASSERT_EQUAL(10,d1->getNumberOfTuples());
+  const int expected1[6]={0,2,4,6,8,10};
+  const int expected2[10]={3,1,0,2,4,1,4,0,2,3};
+  CPPUNIT_ASSERT(std::equal(expected1,expected1+6,d2->getConstPointer()));
+  CPPUNIT_ASSERT(std::equal(expected2,expected2+10,d1->getConstPointer()));
+  d1->decrRef();
+  d2->decrRef();
+  m->decrRef();
+}
+
+void MEDCouplingBasicsTest5::testCheckButterflyCellsBug1()
+{
+  double mesh2DCoords[10]={323.85,120.983748908684,317.5,131.982271536747,336.55,120.983748908686,330.2,131.982271536751,323.85,142.98079416481};
+  int mesh2DConn[5]={4,1,0,2,3};
+  MEDCouplingUMesh *mesh2D=MEDCouplingUMesh::New("mesh",2);
+  mesh2D->allocateCells(1);
+  mesh2D->insertNextCell(INTERP_KERNEL::NORM_POLYGON,5,mesh2DConn);
+  mesh2D->finishInsertingCells();
+  DataArrayDouble *myCoords=DataArrayDouble::New();
+  myCoords->alloc(5,2);
+  std::copy(mesh2DCoords,mesh2DCoords+10,myCoords->getPointer());
+  mesh2D->setCoords(myCoords);
+  myCoords->decrRef();
+  mesh2D->checkCoherency();
+  //
+  std::vector<int> v;
+  mesh2D->checkButterflyCells(v);
+  CPPUNIT_ASSERT_EQUAL(0,(int)v.size());
+  //
+  mesh2D->decrRef();
+}
+
+void MEDCouplingBasicsTest5::testDataArrayIntRange1()
+{
+  DataArrayInt *d=DataArrayInt::Range(2,17,7);
+  const int expected1[3]={2,9,16};
+  CPPUNIT_ASSERT_EQUAL(3,d->getNumberOfTuples());
+  CPPUNIT_ASSERT_EQUAL(1,d->getNumberOfComponents());
+  CPPUNIT_ASSERT(std::equal(expected1,expected1+3,d->getConstPointer()));
+  d->decrRef();
+  //
+  d=DataArrayInt::Range(2,23,7);
+  CPPUNIT_ASSERT_EQUAL(3,d->getNumberOfTuples());
+  CPPUNIT_ASSERT_EQUAL(1,d->getNumberOfComponents());
+  CPPUNIT_ASSERT(std::equal(expected1,expected1+3,d->getConstPointer()));
+  d->decrRef();
+  //
+  d=DataArrayInt::Range(2,24,7);
+  const int expected2[4]={2,9,16,23};
+  CPPUNIT_ASSERT_EQUAL(4,d->getNumberOfTuples());
+  CPPUNIT_ASSERT_EQUAL(1,d->getNumberOfComponents());
+  CPPUNIT_ASSERT(std::equal(expected2,expected2+4,d->getConstPointer()));
+  d->decrRef();
+  //
+  d=DataArrayInt::Range(24,2,-7);
+  const int expected3[4]={24,17,10,3};
+  CPPUNIT_ASSERT_EQUAL(4,d->getNumberOfTuples());
+  CPPUNIT_ASSERT_EQUAL(1,d->getNumberOfComponents());
+  CPPUNIT_ASSERT(std::equal(expected3,expected3+4,d->getConstPointer()));
+  d->decrRef();
+  //
+  d=DataArrayInt::Range(23,2,-7);
+  const int expected4[3]={23,16,9};
+  CPPUNIT_ASSERT_EQUAL(3,d->getNumberOfTuples());
+  CPPUNIT_ASSERT_EQUAL(1,d->getNumberOfComponents());
+  CPPUNIT_ASSERT(std::equal(expected4,expected4+3,d->getConstPointer()));
+  d->decrRef();
+  //
+  d=DataArrayInt::Range(23,22,-7);
+  CPPUNIT_ASSERT_EQUAL(1,d->getNumberOfTuples());
+  CPPUNIT_ASSERT_EQUAL(1,d->getNumberOfComponents());
+  CPPUNIT_ASSERT_EQUAL(23,d->getIJ(0,0));
+  d->decrRef();
+  //
+  d=DataArrayInt::Range(22,23,7);
+  CPPUNIT_ASSERT_EQUAL(1,d->getNumberOfTuples());
+  CPPUNIT_ASSERT_EQUAL(1,d->getNumberOfComponents());
+  CPPUNIT_ASSERT_EQUAL(22,d->getIJ(0,0));
+  d->decrRef();
+  //
+  d=DataArrayInt::Range(22,22,7);
+  CPPUNIT_ASSERT_EQUAL(0,d->getNumberOfTuples());
+  CPPUNIT_ASSERT_EQUAL(1,d->getNumberOfComponents());
+  d->decrRef();
+  //
+  d=DataArrayInt::Range(22,22,-7);
+  CPPUNIT_ASSERT_EQUAL(0,d->getNumberOfTuples());
+  CPPUNIT_ASSERT_EQUAL(1,d->getNumberOfComponents());
+  d->decrRef();
+  //
+  CPPUNIT_ASSERT_THROW(DataArrayInt::Range(22,23,-7),INTERP_KERNEL::Exception);
+  CPPUNIT_ASSERT_THROW(DataArrayInt::Range(23,22,7),INTERP_KERNEL::Exception);
+  CPPUNIT_ASSERT_THROW(DataArrayInt::Range(23,22,0),INTERP_KERNEL::Exception);
+  CPPUNIT_ASSERT_THROW(DataArrayInt::Range(22,23,0),INTERP_KERNEL::Exception);
+}
+
+void MEDCouplingBasicsTest5::testDataArrayDoubleGetMinMaxPerComponent1()
+{
+  const double values1[12]={1.,2.,3.,-0.9,2.1,3.,1.3,1.7,3.,1.,1.8,3.};
+  DataArrayDouble *d1=DataArrayDouble::New();
+  double *res=new double[2*3];
+  CPPUNIT_ASSERT_THROW(d1->getMinMaxPerComponent(res),INTERP_KERNEL::Exception);
+  d1->alloc(4,3);
+  std::copy(values1,values1+12,d1->getPointer());
+  d1->getMinMaxPerComponent(res);
+  const double expected1[6]={-0.9,1.3,1.7,2.1,3.,3.};
+  for(int i=0;i<6;i++)
+    CPPUNIT_ASSERT_DOUBLES_EQUAL(expected1[i],res[i],1e-14);
+  delete [] res;
+  //
+  d1->rearrange(2);
+  res=new double[2*2];
+  d1->getMinMaxPerComponent(res);
+  const double expected2[4]={1.,3.,-0.9,3.};
+  for(int i=0;i<4;i++)
+    CPPUNIT_ASSERT_DOUBLES_EQUAL(expected2[i],res[i],1e-14);
+  delete [] res;
+  //
+  d1->rearrange(1);
+  res=new double[2*1];
+  d1->getMinMaxPerComponent(res);
+  const double expected3[2]={-0.9,3.};
+  for(int i=0;i<2;i++)
+    CPPUNIT_ASSERT_DOUBLES_EQUAL(expected3[i],res[i],1e-14);
+  delete [] res;
+  d1->decrRef();
+}
+
+void MEDCouplingBasicsTest5::testDataArrayIntGetHashCode1()
+{
+  DataArrayInt *d1=DataArrayInt::New(); d1->alloc(3545,1); d1->iota(0);
+  DataArrayInt *d2=DataArrayInt::New(); d2->alloc(3545,1); d2->iota(0);
+  //
+  CPPUNIT_ASSERT_EQUAL(d1->getHashCode(),d2->getHashCode());
+  CPPUNIT_ASSERT_EQUAL(232341068,d1->getHashCode());
+  d1->setIJ(886,0,6);
+  CPPUNIT_ASSERT_EQUAL(232340188,d1->getHashCode());
+  //
+  d1->decrRef();
+  d2->decrRef();
+}
+
+void MEDCouplingBasicsTest5::testZipConnectivityPol1()
+{
+  MEDCouplingUMesh *m1=build2DTargetMesh_1();
+  const int cells1[3]={2,3,4};
+  MEDCouplingPointSet *m2_1=m1->buildPartOfMySelf(cells1,cells1+3,true);
+  MEDCouplingUMesh *m2=dynamic_cast<MEDCouplingUMesh *>(m2_1);
+  DataArrayInt *arr=0;
+  CPPUNIT_ASSERT(m2);
+  // no permutation policy 0
+  CPPUNIT_ASSERT(m1->areCellsIncludedIn(m2,0,arr));
+  CPPUNIT_ASSERT_EQUAL(3,arr->getNumberOfTuples());
+  CPPUNIT_ASSERT_EQUAL(1,arr->getNumberOfComponents());
+  CPPUNIT_ASSERT(std::equal(cells1,cells1+3,arr->getConstPointer()));
+  arr->decrRef();
+  // no permutation policy 1
+  CPPUNIT_ASSERT(m1->areCellsIncludedIn(m2,1,arr));
+  CPPUNIT_ASSERT_EQUAL(3,arr->getNumberOfTuples());
+  CPPUNIT_ASSERT_EQUAL(1,arr->getNumberOfComponents());
+  CPPUNIT_ASSERT(std::equal(cells1,cells1+3,arr->getConstPointer()));
+  arr->decrRef();
+  // no permutation policy 2
+  CPPUNIT_ASSERT(m1->areCellsIncludedIn(m2,2,arr));
+  CPPUNIT_ASSERT_EQUAL(3,arr->getNumberOfTuples());
+  CPPUNIT_ASSERT_EQUAL(1,arr->getNumberOfComponents());
+  CPPUNIT_ASSERT(std::equal(cells1,cells1+3,arr->getConstPointer()));
+  arr->decrRef();
+  // some modification into m2
+  const int modif1[3]={2,4,5};
+  std::copy(modif1,modif1+3,m2->getNodalConnectivity()->getPointer()+1);
+  //policy 0 fails because cell0 in m2 has same orientation be not same connectivity
+  const int expected1[3]={5,3,4};
+  CPPUNIT_ASSERT(!m1->areCellsIncludedIn(m2,0,arr));
+  CPPUNIT_ASSERT_EQUAL(3,arr->getNumberOfTuples());
+  CPPUNIT_ASSERT_EQUAL(1,arr->getNumberOfComponents());
+  CPPUNIT_ASSERT(std::equal(expected1,expected1+3,arr->getConstPointer()));
+  arr->decrRef();
+  //policy 1 succeeds because cell0 in m2 has not exactly the same conn
+  CPPUNIT_ASSERT(m1->areCellsIncludedIn(m2,1,arr));
+  CPPUNIT_ASSERT_EQUAL(3,arr->getNumberOfTuples());
+  CPPUNIT_ASSERT_EQUAL(1,arr->getNumberOfComponents());
+  CPPUNIT_ASSERT(std::equal(cells1,cells1+3,arr->getConstPointer()));
+  arr->decrRef();
+  //policy 2 succeeds because cell0 in m2 has same nodes in connectivity
+  CPPUNIT_ASSERT(m1->areCellsIncludedIn(m2,2,arr));
+  CPPUNIT_ASSERT_EQUAL(3,arr->getNumberOfTuples());
+  CPPUNIT_ASSERT_EQUAL(1,arr->getNumberOfComponents());
+  CPPUNIT_ASSERT(std::equal(cells1,cells1+3,arr->getConstPointer()));
+  arr->decrRef();
+  //some new modification into m2
+  const int modif2[3]={2,5,4};
+  std::copy(modif2,modif2+3,m2->getNodalConnectivity()->getPointer()+1);
+  //policy 0 fails because cell0 in m2 has not exactly the same conn
+  CPPUNIT_ASSERT(!m1->areCellsIncludedIn(m2,0,arr));
+  CPPUNIT_ASSERT_EQUAL(3,arr->getNumberOfTuples());
+  CPPUNIT_ASSERT_EQUAL(1,arr->getNumberOfComponents());
+  CPPUNIT_ASSERT(std::equal(expected1,expected1+3,arr->getConstPointer()));
+  arr->decrRef();
+  //policy 1 fails too because cell0 in m2 has not same orientation
+  CPPUNIT_ASSERT(!m1->areCellsIncludedIn(m2,1,arr));
+  CPPUNIT_ASSERT_EQUAL(3,arr->getNumberOfTuples());
+  CPPUNIT_ASSERT_EQUAL(1,arr->getNumberOfComponents());
+  CPPUNIT_ASSERT(std::equal(expected1,expected1+3,arr->getConstPointer()));
+  arr->decrRef();
+  //policy 2 succeeds because cell0 in m2 has same nodes in connectivity
+  CPPUNIT_ASSERT(m1->areCellsIncludedIn(m2,2,arr));
+  CPPUNIT_ASSERT_EQUAL(3,arr->getNumberOfTuples());
+  CPPUNIT_ASSERT_EQUAL(1,arr->getNumberOfComponents());
+  CPPUNIT_ASSERT(std::equal(cells1,cells1+3,arr->getConstPointer()));
+  arr->decrRef();
+  m1->decrRef();
+  m2->decrRef();
+  // Now 1D
+  const int cells2[2]={3,2};
+  m1=build1DSourceMesh_2();
+  m2_1=m1->buildPartOfMySelf(cells2,cells2+2,true);
+  m2=dynamic_cast<MEDCouplingUMesh *>(m2_1);
+  CPPUNIT_ASSERT(m2);
+  arr=0;
+  // no permutation policy 0
+  CPPUNIT_ASSERT(m1->areCellsIncludedIn(m2,0,arr));
+  CPPUNIT_ASSERT_EQUAL(2,arr->getNumberOfTuples());
+  CPPUNIT_ASSERT_EQUAL(1,arr->getNumberOfComponents());
+  CPPUNIT_ASSERT(std::equal(cells2,cells2+2,arr->getConstPointer()));
+  arr->decrRef();
+  // no permutation policy 1
+  CPPUNIT_ASSERT(m1->areCellsIncludedIn(m2,1,arr));
+  CPPUNIT_ASSERT_EQUAL(2,arr->getNumberOfTuples());
+  CPPUNIT_ASSERT_EQUAL(1,arr->getNumberOfComponents());
+  CPPUNIT_ASSERT(std::equal(cells2,cells2+2,arr->getConstPointer()));
+  arr->decrRef();
+  // no permutation policy 2
+  CPPUNIT_ASSERT(m1->areCellsIncludedIn(m2,2,arr));
+  CPPUNIT_ASSERT_EQUAL(2,arr->getNumberOfTuples());
+  CPPUNIT_ASSERT_EQUAL(1,arr->getNumberOfComponents());
+  CPPUNIT_ASSERT(std::equal(cells2,cells2+2,arr->getConstPointer()));
+  arr->decrRef();
+  // some modification into m2
+  const int modif3[2]={4,3};
+  std::copy(modif3,modif3+2,m2->getNodalConnectivity()->getPointer()+1);
+  //policy 0 fails because cell0 in m2 has not exactly the same conn
+  const int expected2[2]={4,2};
+  CPPUNIT_ASSERT(!m1->areCellsIncludedIn(m2,0,arr));
+  CPPUNIT_ASSERT_EQUAL(2,arr->getNumberOfTuples());
+  CPPUNIT_ASSERT_EQUAL(1,arr->getNumberOfComponents());
+  CPPUNIT_ASSERT(std::equal(expected2,expected2+2,arr->getConstPointer()));
+  arr->decrRef();
+  //policy 1 fails too because cell0 in m2 has not same orientation
+  CPPUNIT_ASSERT(!m1->areCellsIncludedIn(m2,1,arr));
+  CPPUNIT_ASSERT_EQUAL(2,arr->getNumberOfTuples());
+  CPPUNIT_ASSERT_EQUAL(1,arr->getNumberOfComponents());
+  CPPUNIT_ASSERT(std::equal(expected2,expected2+2,arr->getConstPointer()));
+  arr->decrRef();
+  //policy 2 succeeds because cell0 in m2 has same nodes in connectivity
+  CPPUNIT_ASSERT(m1->areCellsIncludedIn(m2,2,arr));
+  CPPUNIT_ASSERT_EQUAL(2,arr->getNumberOfTuples());
+  CPPUNIT_ASSERT_EQUAL(1,arr->getNumberOfComponents());
+  CPPUNIT_ASSERT(std::equal(cells2,cells2+2,arr->getConstPointer()));
+  arr->decrRef();
+  m1->decrRef();
+  m2->decrRef();
+}
index 8be6bfed66c3f03e51f0c7c409e420387ace4f27..e0d63f2e1f73411506930a08aec08ffa1790783e 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
@@ -45,6 +45,15 @@ namespace ParaMEDMEM
     CPPUNIT_TEST( testBuildDescendingConnec2Of3DMesh1 );
     CPPUNIT_TEST( testAre2DCellsNotCorrectlyOriented1 );
     CPPUNIT_TEST( testDataArrayAbs1 );
+    CPPUNIT_TEST( testGetValueOn3 );
+    CPPUNIT_TEST( testGetNodeIdsOfCell2 );
+    CPPUNIT_TEST( testRenumberNodesInConn1 );
+    CPPUNIT_TEST( testComputeNeighborsOfCells1 );
+    CPPUNIT_TEST( testCheckButterflyCellsBug1 );
+    CPPUNIT_TEST( testDataArrayIntRange1 );
+    CPPUNIT_TEST( testDataArrayDoubleGetMinMaxPerComponent1 );
+    CPPUNIT_TEST( testDataArrayIntGetHashCode1 );
+    CPPUNIT_TEST( testZipConnectivityPol1 );
     CPPUNIT_TEST_SUITE_END();
   public:
     void testUMeshTessellate2D1();
@@ -57,6 +66,15 @@ namespace ParaMEDMEM
     void testBuildDescendingConnec2Of3DMesh1();
     void testAre2DCellsNotCorrectlyOriented1();
     void testDataArrayAbs1();
+    void testGetValueOn3();
+    void testGetNodeIdsOfCell2();
+    void testRenumberNodesInConn1();
+    void testComputeNeighborsOfCells1();
+    void testCheckButterflyCellsBug1();
+    void testDataArrayIntRange1();
+    void testDataArrayDoubleGetMinMaxPerComponent1();
+    void testDataArrayIntGetHashCode1();
+    void testZipConnectivityPol1();
   };
 }
 
index ce11c44338f0454c39ed242e9230e35a1158e7c8..14541f4cfa34000d116f8a05baacd170fd2754e0 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 3194bf28cb14f6391b66e09d2113bc9496754ddf..33c4a793de5791661641b77a722826b827f11b5a 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 671cac7201b5929ed4173bf84eefcb8ab545a610..96a6781ebed7e03213ec395dac8b3596ff351db5 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index ac14dfe68dfb03bf3be0e5dff4b6077c873650bd..032beb4032137e993610d8f093354f31594aa6f2 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
@@ -43,7 +43,6 @@ void CppExampleFieldDoubleBuildSubPart1()
   ParaMEDMEM::MEDCouplingFieldDouble *f2=f1->buildSubPart(part1,part1+3);
   //! [CppSnippetFieldDoubleBuildSubPart1_2]
   f2->zipCoords();
-  const double expected1[6]={5.,105.,4.,104.,7.,107.};
   CPPUNIT_ASSERT_EQUAL(3,f2->getMesh()->getNumberOfCells());
   CPPUNIT_ASSERT_EQUAL(6,f2->getMesh()->getNumberOfNodes());
   CPPUNIT_ASSERT_EQUAL(2,f2->getMesh()->getSpaceDimension());
index 3bbb7e2e46c54dd22553aaba8a2036d1bbce6dd9..e348d8e51584605c360bf4a7aed9b6953396d425 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
@@ -1234,3 +1234,40 @@ MEDCouplingUMesh *MEDCouplingRemapperTest::build3DExtrudedUMesh_1(MEDCouplingUMe
   myCoords->decrRef();
   return ret;
 }
+
+void MEDCouplingRemapperTest::testPartialTransfer1()
+{
+  MEDCouplingRemapper remapper;
+  MEDCouplingUMesh *sourceMesh=build1DTargetMesh_2();
+  MEDCouplingUMesh *targetMesh=MEDCouplingBasicsTest::build2DTargetMesh_1();
+  remapper.setIntersectionType(INTERP_KERNEL::PointLocator);
+  CPPUNIT_ASSERT_EQUAL(1,remapper.prepare(sourceMesh,targetMesh,"P0P0"));
+  MEDCouplingFieldDouble *srcField=MEDCouplingFieldDouble::New(ON_CELLS);
+  srcField->setNature(ConservativeVolumic);
+  srcField->setMesh(sourceMesh);
+  DataArrayDouble *array=DataArrayDouble::New();
+  array->alloc(sourceMesh->getNumberOfCells(),1);
+  srcField->setArray(array);
+  double *ptr=array->getPointer();
+  for(int i=0;i<sourceMesh->getNumberOfCells();i++)
+    ptr[i]=(double)(i+7);
+  array->decrRef();
+  MEDCouplingFieldDouble *trgField=MEDCouplingFieldDouble::New(ON_CELLS);
+  trgField->setNature(ConservativeVolumic);
+  trgField->setMesh(targetMesh);
+  array=DataArrayDouble::New();
+  array->alloc(targetMesh->getNumberOfCells(),1);
+  ptr=array->getPointer();
+  std::fill(ptr,ptr+targetMesh->getNumberOfCells(),96.3);
+  trgField->setArray(array);
+  array->decrRef();
+  remapper.partialTransfer(srcField,trgField);
+  const double valuesExpected9[5]={10.,8.,7.,96.3,10.};
+  const double *values=trgField->getArray()->getConstPointer();
+  for(int i0=0;i0<5;i0++)
+    CPPUNIT_ASSERT_DOUBLES_EQUAL(valuesExpected9[i0],values[i0],1e-12);
+  trgField->decrRef();
+  srcField->decrRef();
+  sourceMesh->decrRef();
+  targetMesh->decrRef();
+}
index 5085cda9a5e87b6ea678e647c5cca6ba2d5732e2..44c4bc31274de4ecdec313d63447bd30230aa889 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
@@ -41,6 +41,7 @@ namespace ParaMEDMEM
     CPPUNIT_TEST( testExtruded );
     CPPUNIT_TEST( testExtruded2 );
     CPPUNIT_TEST( testPrepareEx1 );
+    CPPUNIT_TEST( testPartialTransfer1 );
     CPPUNIT_TEST_SUITE_END();
   public:
     void test2DInterpP0P0_1();
@@ -52,6 +53,7 @@ namespace ParaMEDMEM
     void testExtruded();
     void testExtruded2();
     void testPrepareEx1();
+    void testPartialTransfer1();
   private:
     static MEDCouplingUMesh *build1DTargetMesh_2();
     static MEDCouplingUMesh *build2DTargetMesh_3();
index 22fd4a8b61f936a4973ce8fc6c5c07fa36d67511..1e0cd1d0c14608fe50bd16971b70da471c851d8b 100755 (executable)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index 27407cdd45d43d336e1b215a0158f816fb5d5def..50ba034934db7c58513df3c02c0b4de579a0d5ca 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 007041a5f39330e47cf80efd043498d18d2411df..35ff0082859bd124415e968b8be6f9e140ac3484 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 0cf4b88966beb94842120efe61eb9c2e45e4d46c..898dfe21656d71bd0dbb8ae8fcfc2b2745024e49 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index ac7c16d01b4a09936883a33ea209c47d67ddb666..d3e8b7e761364286629b3041bd10f23000326c67 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index dc396e00678ac65b8e6880b99713857f9bf1b15b..f13326f5c3be3f538ed449dd3c16fa70c1da4b80 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index 8ae48166af55166315d3055a853170d6cdd02760..c8bddc650a7f4c4e6685ff5c2fe31b4f9e4b9ccd 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index f707dd7f5b167a27c55fed8f382f625986725e97..afee9be39faf41d2ad53b92f5290fd93d2ce7349 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index 1490d516d625886d10a861b32e52a4c9a7016f1b..9b3bdf02d508f9906b346f5004a43c03081e5b69 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index bfc770e221c210aeab2eb301b13bca831bd2ba13..95568c7f79346ab8667e3d442089038f6ed8ff9d 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
@@ -137,6 +137,7 @@ using namespace INTERP_KERNEL;
 %newobject ParaMEDMEM::DataArrayInt::getIdsNotEqual;
 %newobject ParaMEDMEM::DataArrayInt::getIdsEqualList;
 %newobject ParaMEDMEM::DataArrayInt::getIdsNotEqualList;
+%newobject ParaMEDMEM::DataArrayInt::negate;
 %newobject ParaMEDMEM::DataArrayInt::Aggregate;
 %newobject ParaMEDMEM::DataArrayInt::Meld;
 %newobject ParaMEDMEM::DataArrayInt::Add;
@@ -145,6 +146,7 @@ using namespace INTERP_KERNEL;
 %newobject ParaMEDMEM::DataArrayInt::Divide;
 %newobject ParaMEDMEM::DataArrayInt::BuildUnion;
 %newobject ParaMEDMEM::DataArrayInt::BuildIntersection;
+%newobject ParaMEDMEM::DataArrayInt::Range;
 %newobject ParaMEDMEM::DataArrayInt::fromNoInterlace;
 %newobject ParaMEDMEM::DataArrayInt::toNoInterlace;
 %newobject ParaMEDMEM::DataArrayInt::buildComplement;
@@ -155,7 +157,7 @@ using namespace INTERP_KERNEL;
 %newobject ParaMEDMEM::DataArrayInt::buildExplicitArrByRanges;
 %newobject ParaMEDMEM::DataArrayInt::buildPermutationArr;
 %newobject ParaMEDMEM::DataArrayInt::buildPermArrPerLevel;
-%newobject ParaMEDMEM::DataArrayInt::__getitem__;
+%newobject ParaMEDMEM::DataArrayInt::__neg__;
 %newobject ParaMEDMEM::DataArrayInt::__add__;
 %newobject ParaMEDMEM::DataArrayInt::__radd__;
 %newobject ParaMEDMEM::DataArrayInt::__sub__;
@@ -166,6 +168,7 @@ using namespace INTERP_KERNEL;
 %newobject ParaMEDMEM::DataArrayInt::__rdiv__;
 %newobject ParaMEDMEM::DataArrayInt::__mod__;
 %newobject ParaMEDMEM::DataArrayInt::__rmod__;
+%newobject ParaMEDMEM::DataArrayIntTuple::buildDAInt;
 %newobject ParaMEDMEM::DataArrayDouble::New;
 %newobject ParaMEDMEM::DataArrayDouble::__iter__;
 %newobject ParaMEDMEM::DataArrayDouble::convertToIntArr;
@@ -187,6 +190,7 @@ using namespace INTERP_KERNEL;
 %newobject ParaMEDMEM::DataArrayDouble::selectByTupleIdSafe;
 %newobject ParaMEDMEM::DataArrayDouble::selectByTupleId2;
 %newobject ParaMEDMEM::DataArrayDouble::selectByTupleRanges;
+%newobject ParaMEDMEM::DataArrayDouble::negate;
 %newobject ParaMEDMEM::DataArrayDouble::applyFunc;
 %newobject ParaMEDMEM::DataArrayDouble::applyFunc2;
 %newobject ParaMEDMEM::DataArrayDouble::applyFunc3;
@@ -208,7 +212,7 @@ using namespace INTERP_KERNEL;
 %newobject ParaMEDMEM::DataArrayDouble::fromCylToCart;
 %newobject ParaMEDMEM::DataArrayDouble::fromSpherToCart;
 %newobject ParaMEDMEM::DataArrayDouble::getDifferentValues;
-%newobject ParaMEDMEM::DataArrayDouble::__getitem__;
+%newobject ParaMEDMEM::DataArrayDouble::__neg__;
 %newobject ParaMEDMEM::DataArrayDouble::__add__;
 %newobject ParaMEDMEM::DataArrayDouble::__radd__;
 %newobject ParaMEDMEM::DataArrayDouble::__sub__;
@@ -217,6 +221,7 @@ using namespace INTERP_KERNEL;
 %newobject ParaMEDMEM::DataArrayDouble::__rmul__;
 %newobject ParaMEDMEM::DataArrayDouble::__div__;
 %newobject ParaMEDMEM::DataArrayDouble::__rdiv__;
+%newobject ParaMEDMEM::DataArrayDoubleTuple::buildDADouble;
 %newobject ParaMEDMEM::MEDCouplingMesh::deepCpy;
 %newobject ParaMEDMEM::MEDCouplingMesh::checkTypeConsistencyAndContig;
 %newobject ParaMEDMEM::MEDCouplingMesh::getCoordinatesAndOwner;
@@ -240,6 +245,7 @@ using namespace INTERP_KERNEL;
 %newobject ParaMEDMEM::MEDCouplingUMesh::getNodalConnectivityIndex;
 %newobject ParaMEDMEM::MEDCouplingUMesh::clone;
 %newobject ParaMEDMEM::MEDCouplingUMesh::__iter__;
+%newobject ParaMEDMEM::MEDCouplingUMesh::__getitem__;
 %newobject ParaMEDMEM::MEDCouplingUMesh::cellsByType;
 %newobject ParaMEDMEM::MEDCouplingUMesh::zipConnectivityTraducer;
 %newobject ParaMEDMEM::MEDCouplingUMesh::buildDescendingConnectivity;
@@ -422,10 +428,8 @@ namespace ParaMEDMEM
          int getCellContainingPoint(PyObject *p, double eps) const throw(INTERP_KERNEL::Exception)
          {
            int sz;
-           double *pos=convertPyToNewDblArr2(p,&sz);
-           int ret=self->getCellContainingPoint(pos,eps);
-           delete [] pos;
-           return ret;
+           INTERP_KERNEL::AutoPtr<double> pos=convertPyToNewDblArr2(p,&sz);
+           return self->getCellContainingPoint(pos,eps);
          }
 
          PyObject *getCellsContainingPoints(PyObject *p, int nbOfPoints, double eps) const throw(INTERP_KERNEL::Exception)
@@ -525,18 +529,16 @@ namespace ParaMEDMEM
          void scale(PyObject *point, double factor) throw(INTERP_KERNEL::Exception)
          {
            int sz;
-           double *p=convertPyToNewDblArr2(point,&sz);
+           INTERP_KERNEL::AutoPtr<double> p=convertPyToNewDblArr2(point,&sz);
            self->scale(p,factor);
-           delete [] p;
          }
 
          PyObject *getBoundingBox() const throw(INTERP_KERNEL::Exception)
          {
            int spaceDim=self->getSpaceDimension();
-           double *tmp=new double[2*spaceDim];
+           INTERP_KERNEL::AutoPtr<double> tmp=new double[2*spaceDim];
            self->getBoundingBox(tmp);
            PyObject *ret=convertDblArrToPyListOfTuple(tmp,2,spaceDim);
-           delete [] tmp;
            return ret;
          }
 
@@ -631,6 +633,12 @@ namespace ParaMEDMEM
          {
            int sz;
            INTERP_KERNEL::AutoPtr<double> v=convertPyToNewDblArr2(vector,&sz);
+           if(sz!=self->getSpaceDimension())
+             {
+               std::ostringstream oss; oss << "Python wrap of MEDCouplingPointSet::translate : the space dimension is " << self->getSpaceDimension() << " and the input array size is " << sz;
+               oss << " ! The size of the input list or tuple must be equal to " << self->getSpaceDimension() << " !";
+               throw INTERP_KERNEL::Exception(oss.str().c_str());
+             }
            self->translate(v);
          }
 
@@ -655,6 +663,13 @@ namespace ParaMEDMEM
              PyList_SetItem(res,i,PyInt_FromLong(*iL));
            return res;
          }
+         
+         static MEDCouplingMesh *MergeMeshes(PyObject *li) throw(INTERP_KERNEL::Exception)
+         {
+            std::vector<const ParaMEDMEM::MEDCouplingMesh *> tmp;
+            convertPyObjToVecMeshesCst(li,tmp);
+            return MEDCouplingMesh::MergeMeshes(tmp);
+         }
        }
   };
 }
@@ -803,7 +818,7 @@ namespace ParaMEDMEM
            void renumberNodes(PyObject *li, int newNbOfNodes) throw(INTERP_KERNEL::Exception)
            {
              void *da=0;
-             int res1=SWIG_ConvertPtr(li,&da,SWIGTYPE_p_ParaMEDMEM__DataArrayInt, 0 |  0 );
+             int res1=SWIG_ConvertPtr(li,&da,SWIGTYPE_p_ParaMEDMEM__DataArrayInt, 0 | 0 );
              if (!SWIG_IsOK(res1))
                {
                  int size;
@@ -822,7 +837,7 @@ namespace ParaMEDMEM
            void renumberNodes2(PyObject *li, int newNbOfNodes) throw(INTERP_KERNEL::Exception)
            {
              void *da=0;
-             int res1=SWIG_ConvertPtr(li,&da,SWIGTYPE_p_ParaMEDMEM__DataArrayInt, 0 |  0 );
+             int res1=SWIG_ConvertPtr(li,&da,SWIGTYPE_p_ParaMEDMEM__DataArrayInt, 0 | 0 );
              if (!SWIG_IsOK(res1))
                {
                  int size;
@@ -843,13 +858,11 @@ namespace ParaMEDMEM
                std::vector<int> nodes;
                int spaceDim=self->getSpaceDimension();
                int sz1,sz2;
-               double *p=convertPyToNewDblArr2(pt,&sz1);
-               double *v=convertPyToNewDblArr2(vec,&sz2);
+               INTERP_KERNEL::AutoPtr<double> p=convertPyToNewDblArr2(pt,&sz1);
+               INTERP_KERNEL::AutoPtr<double> v=convertPyToNewDblArr2(vec,&sz2);
                if(sz1!=spaceDim || sz2!=spaceDim)
                  throw INTERP_KERNEL::Exception("Mismatch of spaceDimension and the length of the input array point and vector !");
                self->findNodesOnLine(p,v,eps,nodes);
-               delete [] v;
-               delete [] p;
                DataArrayInt *ret=DataArrayInt::New();
                ret->alloc((int)nodes.size(),1);
                std::copy(nodes.begin(),nodes.end(),ret->getPointer());
@@ -859,11 +872,9 @@ namespace ParaMEDMEM
              {
                std::vector<int> nodes;
                int sz;
-               double *p=convertPyToNewDblArr2(pt,&sz);
-               double *v=convertPyToNewDblArr2(vec,&sz);
+               INTERP_KERNEL::AutoPtr<double> p=convertPyToNewDblArr2(pt,&sz);
+               INTERP_KERNEL::AutoPtr<double> v=convertPyToNewDblArr2(vec,&sz);
                self->findNodesOnPlane(p,v,eps,nodes);
-               delete [] v;
-               delete [] p;
                DataArrayInt *ret=DataArrayInt::New();
                ret->alloc((int)nodes.size(),1);
                std::copy(nodes.begin(),nodes.end(),ret->getPointer());
@@ -908,9 +919,8 @@ namespace ParaMEDMEM
            {
              std::vector<int> elems;
              int size;
-             double *tmp=convertPyToNewDblArr2(bbox,&size);
+             INTERP_KERNEL::AutoPtr<double> tmp=convertPyToNewDblArr2(bbox,&size);
              self->getCellsInBoundingBox(tmp,eps,elems);
-             delete [] tmp;
              DataArrayInt *ret=DataArrayInt::New();
              ret->alloc((int)elems.size(),1);
              std::copy(elems.begin(),elems.end(),ret->getPointer());
@@ -920,25 +930,21 @@ namespace ParaMEDMEM
            static void Rotate2DAlg(PyObject *center, double angle, int nbNodes, PyObject *coords) throw(INTERP_KERNEL::Exception)
            {
              int sz;
-             double *c=convertPyToNewDblArr2(center,&sz);
-             double *coo=convertPyToNewDblArr2(coords,&sz);
+             INTERP_KERNEL::AutoPtr<double> c=convertPyToNewDblArr2(center,&sz);
+             INTERP_KERNEL::AutoPtr<double> coo=convertPyToNewDblArr2(coords,&sz);
              ParaMEDMEM::MEDCouplingPointSet::Rotate2DAlg(c,angle,nbNodes,coo);
              for(int i=0;i<sz;i++)
                PyList_SetItem(coords,i,PyFloat_FromDouble(coo[i]));
-             delete [] coo;
-             delete [] c;
            }
            static void Rotate3DAlg(PyObject *center, PyObject *vect, double angle, int nbNodes, PyObject *coords) throw(INTERP_KERNEL::Exception)
            {
              int sz,sz2;
-             double *c=convertPyToNewDblArr2(center,&sz);
-             double *coo=convertPyToNewDblArr2(coords,&sz);
+             INTERP_KERNEL::AutoPtr<double> c=convertPyToNewDblArr2(center,&sz);
+             INTERP_KERNEL::AutoPtr<double> coo=convertPyToNewDblArr2(coords,&sz);
              double *v=convertPyToNewDblArr2(vect,&sz2);
              ParaMEDMEM::MEDCouplingPointSet::Rotate3DAlg(c,v,angle,nbNodes,coo);
              for(int i=0;i<sz;i++)
                PyList_SetItem(coords,i,PyFloat_FromDouble(coo[i]));
-             delete [] coo;
-             delete [] c;
            }
          }
     };
@@ -1052,6 +1058,7 @@ namespace ParaMEDMEM
     std::string reprConnectivityOfThis() const throw(INTERP_KERNEL::Exception);
     MEDCouplingUMesh *buildSetInstanceFromThis(int spaceDim) const throw(INTERP_KERNEL::Exception);
     //tools
+    void shiftNodeNumbersInConn(int delta) throw(INTERP_KERNEL::Exception);
     std::vector<bool> getQuadraticStatus() const throw(INTERP_KERNEL::Exception);
     DataArrayInt *findCellsIdsOnBoundary() const throw(INTERP_KERNEL::Exception);
     bool checkConsecutiveCellTypes() const throw(INTERP_KERNEL::Exception);
@@ -1088,12 +1095,82 @@ namespace ParaMEDMEM
         return self->cellIterator();
       }
 
+      MEDCouplingPointSet *__getitem__(PyObject *listOrDataArrI) throw(INTERP_KERNEL::Exception)
+      {
+        int sw;
+        int singleVal;
+        std::vector<int> multiVal;
+        std::pair<int, std::pair<int,int> > slic;
+        ParaMEDMEM::DataArrayInt *daIntTyypp=0;
+        int nbc=self->getNumberOfCells();
+        convertObjToPossibleCpp2(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<MEDCouplingUMesh *>(self->buildPartOfMySelf(&multiVal[0],&multiVal[0]+multiVal.size(),true));
+            }
+          case 3:
+            {
+              MEDCouplingAutoRefCountObjectPtr<DataArrayInt> d0=DataArrayInt::Range(slic.first,slic.second.first,slic.second.second);
+              return self->buildPartOfMySelf(d0->begin(),d0->end(),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 !");
+          }
+      }
+
       void insertNextCell(INTERP_KERNEL::NormalizedCellType type, int size, PyObject *li) throw(INTERP_KERNEL::Exception)
       {
         int sz;
         INTERP_KERNEL::AutoPtr<int> tmp=convertPyToNewIntArr2(li,&sz);
+        if(size>sz)
+          {
+            std::ostringstream oss; oss << "Wrap of MEDCouplingUMesh::insertNextCell : request of connectivity with length " << size << " whereas the length of input is " << sz << " !";
+            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 sz;
+        INTERP_KERNEL::AutoPtr<int> tmp=convertPyToNewIntArr2(li,&sz);
+        self->insertNextCell(type,sz,tmp);
+      }
+      
       DataArrayInt *getNodalConnectivity() throw(INTERP_KERNEL::Exception)
       {
         DataArrayInt *ret=self->getNodalConnectivity();
@@ -1139,10 +1216,10 @@ namespace ParaMEDMEM
         PyList_SetItem(res,2,SWIG_From_int(ret2));
         return res;
       }
-      PyObject *checkButterflyCells() throw(INTERP_KERNEL::Exception)
+      PyObject *checkButterflyCells(double eps=1e-12) throw(INTERP_KERNEL::Exception)
       {
         std::vector<int> cells;
-        self->checkButterflyCells(cells);
+        self->checkButterflyCells(cells,eps);
         DataArrayInt *ret=DataArrayInt::New();
         ret->alloc((int)cells.size(),1);
         std::copy(cells.begin(),cells.end(),ret->getPointer());
@@ -1183,6 +1260,26 @@ namespace ParaMEDMEM
         return ret;
       }
 
+      void renumberNodesInConn(PyObject *li) throw(INTERP_KERNEL::Exception)
+      {
+        void *da=0;
+        int res1=SWIG_ConvertPtr(li,&da,SWIGTYPE_p_ParaMEDMEM__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());
+          }
+      }
+
       PyObject *getLevArrPerCellTypes(PyObject *li) const throw(INTERP_KERNEL::Exception)
       {
         int sz;
@@ -1220,21 +1317,26 @@ namespace ParaMEDMEM
         return ret;
       }
 
+      static void PutUMeshesOnSameAggregatedCoords(PyObject *ms) throw(INTERP_KERNEL::Exception)
+      {
+        std::vector<MEDCouplingUMesh *> meshes;
+        convertPyObjToVecUMeshes(ms,meshes);
+        MEDCouplingUMesh::PutUMeshesOnSameAggregatedCoords(meshes);
+      }
+
+      static void MergeNodesOnUMeshesSharingSameCoords(PyObject *ms, double eps) throw(INTERP_KERNEL::Exception)
+      {
+        std::vector<MEDCouplingUMesh *> meshes;
+        convertPyObjToVecUMeshes(ms,meshes);
+        MEDCouplingUMesh::MergeNodesOnUMeshesSharingSameCoords(meshes,eps);
+      }
+
       PyObject *are2DCellsNotCorrectlyOriented(PyObject *vec, bool polyOnly) const throw(INTERP_KERNEL::Exception)
       {
         std::vector<int> cells;
         int sz;
-        double *v=convertPyToNewDblArr2(vec,&sz);
-        try
-          {
-            self->are2DCellsNotCorrectlyOriented(v,polyOnly,cells);
-          }
-        catch(INTERP_KERNEL::Exception& e)
-          {
-            delete [] v;
-            throw e;
-          }
-        delete [] v;
+        INTERP_KERNEL::AutoPtr<double> v=convertPyToNewDblArr2(vec,&sz);
+        self->are2DCellsNotCorrectlyOriented(v,polyOnly,cells);
         DataArrayInt *ret=DataArrayInt::New();
         ret->alloc((int)cells.size(),1);
         std::copy(cells.begin(),cells.end(),ret->getPointer());
@@ -1244,17 +1346,8 @@ namespace ParaMEDMEM
       void orientCorrectly2DCells(PyObject *vec, bool polyOnly) throw(INTERP_KERNEL::Exception)
       {
         int sz;
-        double *v=convertPyToNewDblArr2(vec,&sz);
-        try
-          {
-            self->orientCorrectly2DCells(v,polyOnly);
-          }
-        catch(INTERP_KERNEL::Exception& e)
-          {
-            delete [] v;
-            throw e;
-          }
-        delete [] v;
+        INTERP_KERNEL::AutoPtr<double> v=convertPyToNewDblArr2(vec,&sz);
+        self->orientCorrectly2DCells(v,polyOnly);
       }
       
       PyObject *arePolyhedronsNotCorrectlyOriented() const throw(INTERP_KERNEL::Exception)
@@ -1347,6 +1440,16 @@ namespace ParaMEDMEM
         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_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 ));
+        PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(neighborsIdx),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 ));
+        return ret;
+      }
+
       PyObject *emulateMEDMEMBDC(const MEDCouplingUMesh *nM1LevMesh)
       {
         MEDCouplingAutoRefCountObjectPtr<DataArrayInt> d0=DataArrayInt::New();
@@ -1519,7 +1622,8 @@ namespace ParaMEDMEM
         int pos1;
         std::vector<int> pos2;
         DataArrayInt *pos3=0;
-        convertObjToPossibleCpp1(li,sw,pos1,pos2,pos3);
+        DataArrayIntTuple *pos4=0;
+        convertObjToPossibleCpp1(li,sw,pos1,pos2,pos3,pos4);
         switch(sw)
           {
           case 1:
@@ -1553,7 +1657,7 @@ namespace ParaMEDMEM
   class MEDCouplingExtrudedMesh : public ParaMEDMEM::MEDCouplingMesh
   {
   public:
-    static MEDCouplingExtrudedMesh *New(const MEDCouplingUMesh *mesh3D, MEDCouplingUMesh *mesh2D, int cell2DId) throw(INTERP_KERNEL::Exception);
+    static MEDCouplingExtrudedMesh *New(const MEDCouplingUMesh *mesh3D, const MEDCouplingUMesh *mesh2D, int cell2DId) throw(INTERP_KERNEL::Exception);
     MEDCouplingUMesh *build3DUnstructuredMesh() const throw(INTERP_KERNEL::Exception);
     %extend {
       std::string __str__() const
@@ -1649,6 +1753,11 @@ namespace ParaMEDMEM
   {
     return self->doubleValue();
   }
+
+  DataArrayDouble *buildDADouble()
+  {
+    return self->buildDADouble(1,self->getNumberOfCompo());
+  }
   
   PyObject *__getitem__(PyObject *obj) throw(INTERP_KERNEL::Exception)
   {
@@ -1868,6 +1977,103 @@ namespace ParaMEDMEM
 
 %extend ParaMEDMEM::DataArrayDouble
  {
+   static DataArrayDouble *New(PyObject *elt0, PyObject *elt1=0, PyObject *elt2=0) throw(INTERP_KERNEL::Exception)
+   {
+     const char *msg="ParaMEDMEM::DataArrayDouble::New : Available API are : \n-DataArrayDouble.New()\n--DataArrayDouble.New([1.,3.,4.])\n-DataArrayDouble.New([1.,3.,4.],3)\n-DataArrayDouble.New([1.,3.,4.,5.],2,2)\n-DataArrayDouble.New(5)\n-DataArrayDouble.New(5,2) !";
+     if(PyList_Check(elt0) || PyTuple_Check(elt0))
+       {
+         if(elt1)
+           {
+             if(PyInt_Check(elt1))
+               {
+                 int nbOfTuples=PyInt_AS_LONG(elt1);
+                 if(nbOfTuples<0)
+                   throw INTERP_KERNEL::Exception("DataArrayDouble::New : should be a positive set of allocated memory !");
+                 if(elt2)
+                   {
+                     if(PyInt_Check(elt2))
+                       {//DataArrayDouble.New([1.,3.,4.,5.],2,2)
+                         int nbOfCompo=PyInt_AS_LONG(elt2);
+                         if(nbOfCompo<0)
+                           throw INTERP_KERNEL::Exception("DataArrayDouble::New : should be a positive number of components !");
+                         MEDCouplingAutoRefCountObjectPtr<DataArrayDouble> ret=DataArrayDouble::New();
+                         double *tmp=new double[nbOfTuples*nbOfCompo];
+                         try { fillArrayWithPyListDbl(elt0,tmp,nbOfTuples*nbOfCompo,0.,true); }
+                         catch(INTERP_KERNEL::Exception& e) { delete [] tmp; throw e; }
+                         ret->useArray(tmp,true,CPP_DEALLOC,nbOfTuples,nbOfCompo);
+                         ret->incrRef();
+                         return ret;
+                       }
+                     else
+                       throw INTERP_KERNEL::Exception(msg);
+                   }
+                 else
+                   {//DataArrayDouble.New([1.,3.,4.],3)
+                     MEDCouplingAutoRefCountObjectPtr<DataArrayDouble> ret=DataArrayDouble::New();
+                     double *tmp=new double[nbOfTuples];
+                     try { fillArrayWithPyListDbl(elt0,tmp,nbOfTuples,0.,true); }
+                     catch(INTERP_KERNEL::Exception& e) { delete [] tmp; throw e; }
+                     ret->useArray(tmp,true,CPP_DEALLOC,nbOfTuples,1);
+                     ret->incrRef();
+                     return ret;
+                   }
+               }
+             else
+               throw INTERP_KERNEL::Exception(msg);
+           }
+         else
+           {// DataArrayDouble.New([1.,3.,4.])
+             int szz=-1;
+             if(PyList_Check(elt0))
+               szz=PyList_Size(elt0);
+             else
+               szz=PyTuple_Size(elt0);
+             MEDCouplingAutoRefCountObjectPtr<DataArrayDouble> ret=DataArrayDouble::New();
+             double *tmp=new double[szz];
+             try { fillArrayWithPyListDbl(elt0,tmp,szz,0.,true); }
+             catch(INTERP_KERNEL::Exception& e) { delete [] tmp; throw e; }
+             ret->useArray(tmp,true,CPP_DEALLOC,szz,1);
+             ret->incrRef();
+             return ret;
+           }
+       }
+     else if(PyInt_Check(elt0))
+       {
+         int nbOfTuples=PyInt_AS_LONG(elt0);
+         if(nbOfTuples<0)
+           throw INTERP_KERNEL::Exception("DataArrayDouble::New : should be a positive set of allocated memory !");
+         if(elt1)
+           {
+             if(!elt2)
+               {
+                 if(PyInt_Check(elt1))
+                   {//DataArrayDouble.New(5,2)
+                     int nbOfCompo=PyInt_AS_LONG(elt1);
+                     if(nbOfCompo<0)
+                       throw INTERP_KERNEL::Exception("DataArrayDouble::New : should be a positive number of components !");
+                     MEDCouplingAutoRefCountObjectPtr<DataArrayDouble> ret=DataArrayDouble::New();
+                     ret->alloc(nbOfTuples,nbOfCompo);
+                     ret->incrRef();
+                     return ret;
+                   }
+                 else
+                   throw INTERP_KERNEL::Exception(msg);
+               }
+             else
+               throw INTERP_KERNEL::Exception(msg);
+           }
+         else
+           {//DataArrayDouble.New(5)
+             MEDCouplingAutoRefCountObjectPtr<DataArrayDouble> ret=DataArrayDouble::New();
+             ret->alloc(nbOfTuples,1);
+             ret->incrRef();
+             return ret;
+           }
+       }
+     else
+       throw INTERP_KERNEL::Exception(msg);
+   }
+
    std::string __str__() const
    {
      return self->repr();
@@ -1900,7 +2106,7 @@ namespace ParaMEDMEM
      double *tmp=new double[nbOfTuples*nbOfElsPerTuple];
      try
        {
-         fillArrayWithPyListDbl(li,tmp,nbOfTuples*nbOfElsPerTuple,0.);
+         fillArrayWithPyListDbl(li,tmp,nbOfTuples*nbOfElsPerTuple,0.,false);
        }
      catch(INTERP_KERNEL::Exception& e)
        {
@@ -2149,22 +2355,21 @@ namespace ParaMEDMEM
      return ret;
    }
 
+   PyObject *getMinMaxPerComponent() const throw(INTERP_KERNEL::Exception)
+   {
+     int nbOfCompo=self->getNumberOfComponents();
+     INTERP_KERNEL::AutoPtr<double> tmp=new double[2*nbOfCompo];
+     self->getMinMaxPerComponent(tmp);
+     PyObject *ret=convertDblArrToPyListOfTuple(tmp,2,nbOfCompo);
+     return ret;
+   }
+
    PyObject *accumulate() const throw(INTERP_KERNEL::Exception)
    {
      int sz=self->getNumberOfComponents();
-     double *tmp=new double[sz];
-     try
-       {
-         self->accumulate(tmp);
-       }
-     catch(INTERP_KERNEL::Exception& e)
-       {
-         delete [] tmp;
-         throw e;
-       }
-     PyObject *ret=convertDblArrToPyList(tmp,sz);
-     delete [] tmp;
-     return ret;
+     INTERP_KERNEL::AutoPtr<double> tmp=new double[sz];
+     self->accumulate(tmp);
+     return convertDblArrToPyList(tmp,sz);
    }
    
    DataArrayDouble *keepSelectedComponents(PyObject *li) const throw(INTERP_KERNEL::Exception)
@@ -2220,9 +2425,9 @@ namespace ParaMEDMEM
      return self->selectByTupleRanges(ranges);
    }
 
-   DataArrayDouble *__getitem__(PyObject *obj) throw(INTERP_KERNEL::Exception)
+   PyObject *__getitem__(PyObject *obj) throw(INTERP_KERNEL::Exception)
    {
-     const char msg[]="Unexpected situation in __getitem__ !";
+     const char msg[]="Unexpected situation in DataArrayDouble::__getitem__ !";
      self->checkAllocated();
      int nbOfTuples=self->getNumberOfTuples();
      int nbOfComponents=self->getNumberOfComponents();
@@ -2236,56 +2441,54 @@ namespace ParaMEDMEM
      switch(sw)
        {
        case 1:
-         return self->selectByTupleIdSafe(&it1,&it1+1);
+         if(nbOfComponents==1)
+           return PyFloat_FromDouble(self->getIJSafe(it1,0));
+         return SWIG_NewPointerObj(SWIG_as_voidptr(self->selectByTupleIdSafe(&it1,&it1+1)),SWIGTYPE_p_ParaMEDMEM__DataArrayDouble, SWIG_POINTER_OWN | 0 );
        case 2:
-         return self->selectByTupleIdSafe(&vt1[0],&vt1[0]+vt1.size());
+         return SWIG_NewPointerObj(SWIG_as_voidptr(self->selectByTupleIdSafe(&vt1[0],&vt1[0]+vt1.size())),SWIGTYPE_p_ParaMEDMEM__DataArrayDouble, SWIG_POINTER_OWN | 0 );
        case 3:
-         return self->selectByTupleId2(pt1.first,pt1.second.first,pt1.second.second);
+         return SWIG_NewPointerObj(SWIG_as_voidptr(self->selectByTupleId2(pt1.first,pt1.second.first,pt1.second.second)),SWIGTYPE_p_ParaMEDMEM__DataArrayDouble, SWIG_POINTER_OWN | 0 );
        case 4:
-         return self->selectByTupleIdSafe(dt1->getConstPointer(),dt1->getConstPointer()+dt1->getNbOfElems());
+         return SWIG_NewPointerObj(SWIG_as_voidptr(self->selectByTupleIdSafe(dt1->getConstPointer(),dt1->getConstPointer()+dt1->getNbOfElems())),SWIGTYPE_p_ParaMEDMEM__DataArrayDouble, SWIG_POINTER_OWN | 0 );
        case 5:
-         {
-           ret=self->selectByTupleIdSafe(&it1,&it1+1);
-           std::vector<int> v2(1,ic1);
-           return ret->keepSelectedComponents(v2);
-         }
+         return PyFloat_FromDouble(self->getIJSafe(it1,ic1));
        case 6:
          {
            ret=self->selectByTupleIdSafe(&vt1[0],&vt1[0]+vt1.size());
            std::vector<int> v2(1,ic1);
-           return ret->keepSelectedComponents(v2);
+           return SWIG_NewPointerObj(SWIG_as_voidptr(ret->keepSelectedComponents(v2)),SWIGTYPE_p_ParaMEDMEM__DataArrayDouble, SWIG_POINTER_OWN | 0 );
          }
        case 7:
          {
            ret=self->selectByTupleId2(pt1.first,pt1.second.first,pt1.second.second);
            std::vector<int> v2(1,ic1);
-           return ret->keepSelectedComponents(v2);
+           return SWIG_NewPointerObj(SWIG_as_voidptr(ret->keepSelectedComponents(v2)),SWIGTYPE_p_ParaMEDMEM__DataArrayDouble, SWIG_POINTER_OWN | 0 );
          }
        case 8:
          {
            ret=self->selectByTupleIdSafe(dt1->getConstPointer(),dt1->getConstPointer()+dt1->getNbOfElems());
            std::vector<int> v2(1,ic1);
-           return ret->keepSelectedComponents(v2);
+           return SWIG_NewPointerObj(SWIG_as_voidptr(ret->keepSelectedComponents(v2)),SWIGTYPE_p_ParaMEDMEM__DataArrayDouble, SWIG_POINTER_OWN | 0 );
          }
        case 9:
          {
            ret=self->selectByTupleIdSafe(&it1,&it1+1);
-           return ret->keepSelectedComponents(vc1);
+           return SWIG_NewPointerObj(SWIG_as_voidptr(ret->keepSelectedComponents(vc1)),SWIGTYPE_p_ParaMEDMEM__DataArrayDouble, SWIG_POINTER_OWN | 0 );
          }
        case 10:
          {
            ret=self->selectByTupleIdSafe(&vt1[0],&vt1[0]+vt1.size());
-           return ret->keepSelectedComponents(vc1);
+           return SWIG_NewPointerObj(SWIG_as_voidptr(ret->keepSelectedComponents(vc1)),SWIGTYPE_p_ParaMEDMEM__DataArrayDouble, SWIG_POINTER_OWN | 0 );
          }
        case 11:
          {
            ret=self->selectByTupleId2(pt1.first,pt1.second.first,pt1.second.second);
-           return ret->keepSelectedComponents(vc1);
+           return SWIG_NewPointerObj(SWIG_as_voidptr(ret->keepSelectedComponents(vc1)),SWIGTYPE_p_ParaMEDMEM__DataArrayDouble, SWIG_POINTER_OWN | 0 );
          }
        case 12:
          {
            ret=self->selectByTupleIdSafe(dt1->getConstPointer(),dt1->getConstPointer()+dt1->getNbOfElems());
-           return ret->keepSelectedComponents(vc1);
+           return SWIG_NewPointerObj(SWIG_as_voidptr(ret->keepSelectedComponents(vc1)),SWIGTYPE_p_ParaMEDMEM__DataArrayDouble, SWIG_POINTER_OWN | 0 );
          }
        case 13:
          {
@@ -2294,7 +2497,7 @@ namespace ParaMEDMEM
            std::vector<int> v2(nbOfComp);
            for(int i=0;i<nbOfComp;i++)
              v2[i]=pc1.first+i*pc1.second.second;
-           return ret->keepSelectedComponents(v2);
+           return SWIG_NewPointerObj(SWIG_as_voidptr(ret->keepSelectedComponents(v2)),SWIGTYPE_p_ParaMEDMEM__DataArrayDouble, SWIG_POINTER_OWN | 0 );
          }
        case 14:
          {
@@ -2303,7 +2506,7 @@ namespace ParaMEDMEM
            std::vector<int> v2(nbOfComp);
            for(int i=0;i<nbOfComp;i++)
              v2[i]=pc1.first+i*pc1.second.second;
-           return ret->keepSelectedComponents(v2);
+           return SWIG_NewPointerObj(SWIG_as_voidptr(ret->keepSelectedComponents(v2)),SWIGTYPE_p_ParaMEDMEM__DataArrayDouble, SWIG_POINTER_OWN | 0 );
          }
        case 15:
          {
@@ -2312,7 +2515,7 @@ namespace ParaMEDMEM
            std::vector<int> v2(nbOfComp);
            for(int i=0;i<nbOfComp;i++)
              v2[i]=pc1.first+i*pc1.second.second;
-           return ret->keepSelectedComponents(v2);
+           return SWIG_NewPointerObj(SWIG_as_voidptr(ret->keepSelectedComponents(v2)),SWIGTYPE_p_ParaMEDMEM__DataArrayDouble, SWIG_POINTER_OWN | 0 );
          }
        case 16:
          {
@@ -2321,7 +2524,7 @@ namespace ParaMEDMEM
            std::vector<int> v2(nbOfComp);
            for(int i=0;i<nbOfComp;i++)
              v2[i]=pc1.first+i*pc1.second.second;
-           return ret->keepSelectedComponents(v2);
+           return SWIG_NewPointerObj(SWIG_as_voidptr(ret->keepSelectedComponents(v2)),SWIGTYPE_p_ParaMEDMEM__DataArrayDouble, SWIG_POINTER_OWN | 0 );
          }
        default:
          throw INTERP_KERNEL::Exception(msg);
@@ -2682,13 +2885,20 @@ namespace ParaMEDMEM
      return self;
    }
 
+   DataArrayDouble *__neg__() const throw(INTERP_KERNEL::Exception)
+   {
+     return self->negate();
+   }
+
    DataArrayDouble *__add__(PyObject *obj) throw(INTERP_KERNEL::Exception)
    {
      const char msg[]="Unexpected situation in __add__ !";
      double val;
      DataArrayDouble *a;
+     DataArrayDoubleTuple *aa;
+     std::vector<double> bb;
      int sw;
-     convertObjToPossibleCpp5(obj,sw,val,a);
+     convertObjToPossibleCpp5(obj,sw,val,a,aa,bb);
      switch(sw)
        {
        case 1:
@@ -2702,6 +2912,11 @@ namespace ParaMEDMEM
          {
            return DataArrayDouble::Add(self,a);
          }
+       case 3:
+         {
+           MEDCouplingAutoRefCountObjectPtr<DataArrayDouble> aaa=aa->buildDADouble(1,self->getNumberOfComponents());
+           return DataArrayDouble::Add(self,aaa);
+         }
        default:
          throw INTERP_KERNEL::Exception(msg);
        }
@@ -2712,8 +2927,10 @@ namespace ParaMEDMEM
      const char msg[]="Unexpected situation in __radd__ !";
      double val;
      DataArrayDouble *a;
+     DataArrayDoubleTuple *aa;
+     std::vector<double> bb;
      int sw;
-     convertObjToPossibleCpp5(obj,sw,val,a);
+     convertObjToPossibleCpp5(obj,sw,val,a,aa,bb);
      switch(sw)
        {
        case 1:
@@ -2723,6 +2940,11 @@ namespace ParaMEDMEM
            ret->incrRef();
            return ret;
          }
+       case 3:
+         {
+           MEDCouplingAutoRefCountObjectPtr<DataArrayDouble> aaa=aa->buildDADouble(1,self->getNumberOfComponents());
+           return DataArrayDouble::Add(self,aaa);
+         }
        default:
          throw INTERP_KERNEL::Exception(msg);
        }
@@ -2733,8 +2955,10 @@ namespace ParaMEDMEM
      const char msg[]="Unexpected situation in __iadd__ !";
      double val;
      DataArrayDouble *a;
+     DataArrayDoubleTuple *aa;
+     std::vector<double> bb;
      int sw;
-     convertObjToPossibleCpp5(obj,sw,val,a);
+     convertObjToPossibleCpp5(obj,sw,val,a,aa,bb);
      switch(sw)
        {
        case 1:
@@ -2747,6 +2971,18 @@ namespace ParaMEDMEM
            self->addEqual(a);
            return self;
          }
+       case 3:
+         {
+           MEDCouplingAutoRefCountObjectPtr<DataArrayDouble> aaa=aa->buildDADouble(1,self->getNumberOfComponents());
+           self->addEqual(aaa);
+           return self;
+         }
+       case 4:
+         {
+           MEDCouplingAutoRefCountObjectPtr<DataArrayDouble> aaa=DataArrayDouble::New(); aaa->useArray(&bb[0],false,CPP_DEALLOC,1,(int)bb.size());
+           self->addEqual(aaa);
+           return self;
+         }
        default:
          throw INTERP_KERNEL::Exception(msg);
        }
@@ -2757,8 +2993,10 @@ namespace ParaMEDMEM
      const char msg[]="Unexpected situation in __sub__ !";
      double val;
      DataArrayDouble *a;
+     DataArrayDoubleTuple *aa;
+     std::vector<double> bb;
      int sw;
-     convertObjToPossibleCpp5(obj,sw,val,a);
+     convertObjToPossibleCpp5(obj,sw,val,a,aa,bb);
      switch(sw)
        {
        case 1:
@@ -2772,6 +3010,16 @@ namespace ParaMEDMEM
          {
            return DataArrayDouble::Substract(self,a);
          }
+       case 3:
+         {
+           MEDCouplingAutoRefCountObjectPtr<DataArrayDouble> aaa=aa->buildDADouble(1,self->getNumberOfComponents());
+           return DataArrayDouble::Substract(self,aaa);
+         }
+       case 4:
+         {
+           MEDCouplingAutoRefCountObjectPtr<DataArrayDouble> aaa=DataArrayDouble::New(); aaa->useArray(&bb[0],false,CPP_DEALLOC,1,(int)bb.size());
+           return DataArrayDouble::Substract(self,aaa);
+         }
        default:
          throw INTERP_KERNEL::Exception(msg);
        }
@@ -2782,8 +3030,10 @@ namespace ParaMEDMEM
      const char msg[]="Unexpected situation in __rsub__ !";
      double val;
      DataArrayDouble *a;
+     DataArrayDoubleTuple *aa;
+     std::vector<double> bb;
      int sw;
-     convertObjToPossibleCpp5(obj,sw,val,a);
+     convertObjToPossibleCpp5(obj,sw,val,a,aa,bb);
      switch(sw)
        {
        case 1:
@@ -2793,6 +3043,16 @@ namespace ParaMEDMEM
            ret->incrRef();
            return ret;
          }
+       case 3:
+         {
+           MEDCouplingAutoRefCountObjectPtr<DataArrayDouble> aaa=aa->buildDADouble(1,self->getNumberOfComponents());
+           return DataArrayDouble::Substract(aaa,self);
+         }
+       case 4:
+         {
+           MEDCouplingAutoRefCountObjectPtr<DataArrayDouble> aaa=DataArrayDouble::New(); aaa->useArray(&bb[0],false,CPP_DEALLOC,1,(int)bb.size());
+           return DataArrayDouble::Substract(aaa,self);
+         }
        default:
          throw INTERP_KERNEL::Exception(msg);
        }
@@ -2803,8 +3063,10 @@ namespace ParaMEDMEM
      const char msg[]="Unexpected situation in __isub__ !";
      double val;
      DataArrayDouble *a;
+     DataArrayDoubleTuple *aa;
+     std::vector<double> bb;
      int sw;
-     convertObjToPossibleCpp5(obj,sw,val,a);
+     convertObjToPossibleCpp5(obj,sw,val,a,aa,bb);
      switch(sw)
        {
        case 1:
@@ -2817,6 +3079,18 @@ namespace ParaMEDMEM
            self->substractEqual(a);
            return self;
          }
+       case 3:
+         {
+           MEDCouplingAutoRefCountObjectPtr<DataArrayDouble> aaa=aa->buildDADouble(1,self->getNumberOfComponents());
+           self->substractEqual(aaa);
+           return self;
+         }
+       case 4:
+         {
+           MEDCouplingAutoRefCountObjectPtr<DataArrayDouble> aaa=DataArrayDouble::New(); aaa->useArray(&bb[0],false,CPP_DEALLOC,1,(int)bb.size());
+           self->substractEqual(aaa);
+           return self;
+         }
        default:
          throw INTERP_KERNEL::Exception(msg);
        }
@@ -2827,8 +3101,10 @@ namespace ParaMEDMEM
      const char msg[]="Unexpected situation in __mul__ !";
      double val;
      DataArrayDouble *a;
+     DataArrayDoubleTuple *aa;
+     std::vector<double> bb;
      int sw;
-     convertObjToPossibleCpp5(obj,sw,val,a);
+     convertObjToPossibleCpp5(obj,sw,val,a,aa,bb);
      switch(sw)
        {
        case 1:
@@ -2842,6 +3118,16 @@ namespace ParaMEDMEM
          {
            return DataArrayDouble::Multiply(self,a);
          }
+       case 3:
+         {
+           MEDCouplingAutoRefCountObjectPtr<DataArrayDouble> aaa=aa->buildDADouble(1,self->getNumberOfComponents());
+           return DataArrayDouble::Multiply(self,aaa);
+         }
+       case 4:
+         {
+           MEDCouplingAutoRefCountObjectPtr<DataArrayDouble> aaa=DataArrayDouble::New(); aaa->useArray(&bb[0],false,CPP_DEALLOC,1,(int)bb.size());
+           return DataArrayDouble::Multiply(self,aaa);
+         }
        default:
          throw INTERP_KERNEL::Exception(msg);
        }
@@ -2852,8 +3138,10 @@ namespace ParaMEDMEM
      const char msg[]="Unexpected situation in __rmul__ !";
      double val;
      DataArrayDouble *a;
+     DataArrayDoubleTuple *aa;
+     std::vector<double> bb;
      int sw;
-     convertObjToPossibleCpp5(obj,sw,val,a);
+     convertObjToPossibleCpp5(obj,sw,val,a,aa,bb);
      switch(sw)
        {
        case 1:
@@ -2863,6 +3151,16 @@ namespace ParaMEDMEM
            ret->incrRef();
            return ret;
          }
+       case 3:
+         {
+           MEDCouplingAutoRefCountObjectPtr<DataArrayDouble> aaa=aa->buildDADouble(1,self->getNumberOfComponents());
+           return DataArrayDouble::Multiply(self,aaa);
+         }
+       case 4:
+         {
+           MEDCouplingAutoRefCountObjectPtr<DataArrayDouble> aaa=DataArrayDouble::New(); aaa->useArray(&bb[0],false,CPP_DEALLOC,1,(int)bb.size());
+           return DataArrayDouble::Multiply(self,aaa);
+         }
        default:
          throw INTERP_KERNEL::Exception(msg);
        }
@@ -2873,8 +3171,10 @@ namespace ParaMEDMEM
      const char msg[]="Unexpected situation in __imul__ !";
      double val;
      DataArrayDouble *a;
+     DataArrayDoubleTuple *aa;
+     std::vector<double> bb;
      int sw;
-     convertObjToPossibleCpp5(obj,sw,val,a);
+     convertObjToPossibleCpp5(obj,sw,val,a,aa,bb);
      switch(sw)
        {
        case 1:
@@ -2887,6 +3187,18 @@ namespace ParaMEDMEM
            self->multiplyEqual(a);
            return self;
          }
+       case 3:
+         {
+           MEDCouplingAutoRefCountObjectPtr<DataArrayDouble> aaa=aa->buildDADouble(1,self->getNumberOfComponents());
+           self->multiplyEqual(aaa);
+           return self;
+         }
+       case 4:
+         {
+           MEDCouplingAutoRefCountObjectPtr<DataArrayDouble> aaa=DataArrayDouble::New(); aaa->useArray(&bb[0],false,CPP_DEALLOC,1,(int)bb.size());
+           self->multiplyEqual(aaa);
+           return self;
+         }
        default:
          throw INTERP_KERNEL::Exception(msg);
        }
@@ -2897,8 +3209,10 @@ namespace ParaMEDMEM
      const char msg[]="Unexpected situation in __div__ !";
      double val;
      DataArrayDouble *a;
+     DataArrayDoubleTuple *aa;
+     std::vector<double> bb;
      int sw;
-     convertObjToPossibleCpp5(obj,sw,val,a);
+     convertObjToPossibleCpp5(obj,sw,val,a,aa,bb);
      switch(sw)
        {
        case 1:
@@ -2914,6 +3228,16 @@ namespace ParaMEDMEM
          {
            return DataArrayDouble::Divide(self,a);
          }
+       case 3:
+         {
+           MEDCouplingAutoRefCountObjectPtr<DataArrayDouble> aaa=aa->buildDADouble(1,self->getNumberOfComponents());
+           return DataArrayDouble::Divide(self,aaa);
+         }
+       case 4:
+         {
+           MEDCouplingAutoRefCountObjectPtr<DataArrayDouble> aaa=DataArrayDouble::New(); aaa->useArray(&bb[0],false,CPP_DEALLOC,1,(int)bb.size());
+           return DataArrayDouble::Divide(self,aaa);
+         }
        default:
          throw INTERP_KERNEL::Exception(msg);
        }
@@ -2924,8 +3248,10 @@ namespace ParaMEDMEM
      const char msg[]="Unexpected situation in __rdiv__ !";
      double val;
      DataArrayDouble *a;
+     DataArrayDoubleTuple *aa;
+     std::vector<double> bb;
      int sw;
-     convertObjToPossibleCpp5(obj,sw,val,a);
+     convertObjToPossibleCpp5(obj,sw,val,a,aa,bb);
      switch(sw)
        {
        case 1:
@@ -2935,6 +3261,16 @@ namespace ParaMEDMEM
            ret->incrRef();
            return ret;
          }
+       case 3:
+         {
+           MEDCouplingAutoRefCountObjectPtr<DataArrayDouble> aaa=aa->buildDADouble(1,self->getNumberOfComponents());
+           return DataArrayDouble::Divide(aaa,self);
+         }
+       case 4:
+         {
+           MEDCouplingAutoRefCountObjectPtr<DataArrayDouble> aaa=DataArrayDouble::New(); aaa->useArray(&bb[0],false,CPP_DEALLOC,1,(int)bb.size());
+           return DataArrayDouble::Divide(aaa,self);
+         }
        default:
          throw INTERP_KERNEL::Exception(msg);
        }
@@ -2945,8 +3281,10 @@ namespace ParaMEDMEM
      const char msg[]="Unexpected situation in __imul__ !";
      double val;
      DataArrayDouble *a;
+     DataArrayDoubleTuple *aa;
+     std::vector<double> bb;
      int sw;
-     convertObjToPossibleCpp5(obj,sw,val,a);
+     convertObjToPossibleCpp5(obj,sw,val,a,aa,bb);
      switch(sw)
        {
        case 1:
@@ -2961,6 +3299,18 @@ namespace ParaMEDMEM
            self->divideEqual(a);
            return self;
          }
+       case 3:
+         {
+           MEDCouplingAutoRefCountObjectPtr<DataArrayDouble> aaa=aa->buildDADouble(1,self->getNumberOfComponents());
+           self->divideEqual(aaa);
+           return self;
+         }
+       case 4:
+         {
+           MEDCouplingAutoRefCountObjectPtr<DataArrayDouble> aaa=DataArrayDouble::New(); aaa->useArray(&bb[0],false,CPP_DEALLOC,1,(int)bb.size());
+           self->divideEqual(aaa);
+           return self;
+         }
        default:
          throw INTERP_KERNEL::Exception(msg);
        }
@@ -2978,6 +3328,11 @@ namespace ParaMEDMEM
   {
     return self->intValue();
   }
+
+  DataArrayInt *buildDAInt()
+  {
+    return self->buildDAInt(1,self->getNumberOfCompo());
+  }
   
   PyObject *__getitem__(PyObject *obj) throw(INTERP_KERNEL::Exception)
   {
@@ -3213,6 +3568,103 @@ namespace ParaMEDMEM
 
 %extend ParaMEDMEM::DataArrayInt
  {
+   static DataArrayInt *New(PyObject *elt0, PyObject *elt1=0, PyObject *elt2=0) throw(INTERP_KERNEL::Exception)
+   {
+     const char *msg="ParaMEDMEM::DataArrayInt::New : Available API are : \n-DataArrayInt.New()\n--DataArrayInt.New([1,3,4])\n-DataArrayInt.New([1,3,4],3)\n-DataArrayInt.New([1,3,4,5],2,2)\n-DataArrayInt.New(5)\n-DataArrayInt.New(5,2) !";
+     if(PyList_Check(elt0) || PyTuple_Check(elt0))
+       {
+         if(elt1)
+           {
+             if(PyInt_Check(elt1))
+               {
+                 int nbOfTuples=PyInt_AS_LONG(elt1);
+                 if(nbOfTuples<0)
+                   throw INTERP_KERNEL::Exception("DataArrayInt::New : should be a positive set of allocated memory !");
+                 if(elt2)
+                   {
+                     if(PyInt_Check(elt2))
+                       {//DataArrayInt.New([1,3,4,5],2,2)
+                         int nbOfCompo=PyInt_AS_LONG(elt2);
+                         if(nbOfCompo<0)
+                           throw INTERP_KERNEL::Exception("DataArrayInt::New : should be a positive number of components !");
+                         MEDCouplingAutoRefCountObjectPtr<DataArrayInt> ret=DataArrayInt::New();
+                         int *tmp=new int[nbOfTuples*nbOfCompo];
+                         try { fillArrayWithPyListInt(elt0,tmp,nbOfTuples*nbOfCompo,0,true); }
+                         catch(INTERP_KERNEL::Exception& e) { delete [] tmp; throw e; }
+                         ret->useArray(tmp,true,CPP_DEALLOC,nbOfTuples,nbOfCompo);
+                         ret->incrRef();
+                         return ret;
+                       }
+                     else
+                       throw INTERP_KERNEL::Exception(msg);
+                   }
+                 else
+                   {//DataArrayInt.New([1,3,4],3)
+                     MEDCouplingAutoRefCountObjectPtr<DataArrayInt> ret=DataArrayInt::New();
+                     int *tmp=new int[nbOfTuples];
+                     try { fillArrayWithPyListInt(elt0,tmp,nbOfTuples,0,true); }
+                     catch(INTERP_KERNEL::Exception& e) { delete [] tmp; throw e; }
+                     ret->useArray(tmp,true,CPP_DEALLOC,nbOfTuples,1);
+                     ret->incrRef();
+                     return ret;
+                   }
+               }
+             else
+               throw INTERP_KERNEL::Exception(msg);
+           }
+         else
+           {// DataArrayInt.New([1,3,4])
+             int szz=-1;
+             if(PyList_Check(elt0))
+               szz=PyList_Size(elt0);
+             else
+               szz=PyTuple_Size(elt0);
+             MEDCouplingAutoRefCountObjectPtr<DataArrayInt> ret=DataArrayInt::New();
+             int *tmp=new int[szz];
+             try { fillArrayWithPyListInt(elt0,tmp,szz,0,true); }
+             catch(INTERP_KERNEL::Exception& e) { delete [] tmp; throw e; }
+             ret->useArray(tmp,true,CPP_DEALLOC,szz,1);
+             ret->incrRef();
+             return ret;
+           }
+       }
+     else if(PyInt_Check(elt0))
+       {
+         int nbOfTuples=PyInt_AS_LONG(elt0);
+         if(nbOfTuples<0)
+           throw INTERP_KERNEL::Exception("DataArrayInt::New : should be a positive set of allocated memory !");
+         if(elt1)
+           {
+             if(!elt2)
+               {
+                 if(PyInt_Check(elt1))
+                   {//DataArrayInt.New(5,2)
+                     int nbOfCompo=PyInt_AS_LONG(elt1);
+                     if(nbOfCompo<0)
+                       throw INTERP_KERNEL::Exception("DataArrayInt::New : should be a positive number of components !");
+                     MEDCouplingAutoRefCountObjectPtr<DataArrayInt> ret=DataArrayInt::New();
+                     ret->alloc(nbOfTuples,nbOfCompo);
+                     ret->incrRef();
+                     return ret;
+                   }
+                 else
+                   throw INTERP_KERNEL::Exception(msg);
+               }
+             else
+               throw INTERP_KERNEL::Exception(msg);
+           }
+         else
+           {//DataArrayInt.New(5)
+             MEDCouplingAutoRefCountObjectPtr<DataArrayInt> ret=DataArrayInt::New();
+             ret->alloc(nbOfTuples,1);
+             ret->incrRef();
+             return ret;
+           }
+       }
+     else
+       throw INTERP_KERNEL::Exception(msg);
+   }
+
    std::string __str__() const
    {
      return self->repr();
@@ -3261,7 +3713,7 @@ namespace ParaMEDMEM
      int *tmp=new int[nbOfTuples*nbOfElsPerTuple];
      try
        {
-         fillArrayWithPyListInt(li,tmp,nbOfTuples*nbOfElsPerTuple,0);
+         fillArrayWithPyListInt(li,tmp,nbOfTuples*nbOfElsPerTuple,0,false);
        }
      catch(INTERP_KERNEL::Exception& e)
        {
@@ -3635,9 +4087,9 @@ namespace ParaMEDMEM
      return ret;
    }
 
-   DataArrayInt *__getitem__(PyObject *obj) throw(INTERP_KERNEL::Exception)
+   PyObject *__getitem__(PyObject *obj) throw(INTERP_KERNEL::Exception)
    {
-     const char msg[]="Unexpected situation in __getitem__ !";
+     const char msg[]="Unexpected situation in DataArrayInt::__getitem__ !";
      self->checkAllocated();
      int nbOfTuples=self->getNumberOfTuples();
      int nbOfComponents=self->getNumberOfComponents();
@@ -3651,56 +4103,56 @@ namespace ParaMEDMEM
      switch(sw)
        {
        case 1:
-         return self->selectByTupleIdSafe(&it1,&it1+1);
+         {
+           if(nbOfComponents==1)
+             return PyInt_FromLong(self->getIJSafe(it1,0));
+           return SWIG_NewPointerObj(SWIG_as_voidptr(self->selectByTupleIdSafe(&it1,&it1+1)),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 );
+         }
        case 2:
-         return self->selectByTupleIdSafe(&vt1[0],&vt1[0]+vt1.size());
+         return SWIG_NewPointerObj(SWIG_as_voidptr(self->selectByTupleIdSafe(&vt1[0],&vt1[0]+vt1.size())),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 );
        case 3:
-         return self->selectByTupleId2(pt1.first,pt1.second.first,pt1.second.second);
+         return SWIG_NewPointerObj(SWIG_as_voidptr(self->selectByTupleId2(pt1.first,pt1.second.first,pt1.second.second)),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 );
        case 4:
-         return self->selectByTupleIdSafe(dt1->getConstPointer(),dt1->getConstPointer()+dt1->getNbOfElems());
+         return SWIG_NewPointerObj(SWIG_as_voidptr(self->selectByTupleIdSafe(dt1->getConstPointer(),dt1->getConstPointer()+dt1->getNbOfElems())),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 );
        case 5:
-         {
-           ret=self->selectByTupleIdSafe(&it1,&it1+1);
-           std::vector<int> v2(1,ic1);
-           return ret->keepSelectedComponents(v2);
-         }
+         return PyInt_FromLong(self->getIJSafe(it1,ic1));
        case 6:
          {
            ret=self->selectByTupleIdSafe(&vt1[0],&vt1[0]+vt1.size());
            std::vector<int> v2(1,ic1);
-           return ret->keepSelectedComponents(v2);
+           return SWIG_NewPointerObj(SWIG_as_voidptr(ret->keepSelectedComponents(v2)),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 );
          }
        case 7:
          {
            ret=self->selectByTupleId2(pt1.first,pt1.second.first,pt1.second.second);
            std::vector<int> v2(1,ic1);
-           return ret->keepSelectedComponents(v2);
+           return SWIG_NewPointerObj(SWIG_as_voidptr(ret->keepSelectedComponents(v2)),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 );
          }
        case 8:
          {
            ret=self->selectByTupleIdSafe(dt1->getConstPointer(),dt1->getConstPointer()+dt1->getNbOfElems());
            std::vector<int> v2(1,ic1);
-           return ret->keepSelectedComponents(v2);
+           return SWIG_NewPointerObj(SWIG_as_voidptr(ret->keepSelectedComponents(v2)),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 );
          }
        case 9:
          {
            ret=self->selectByTupleIdSafe(&it1,&it1+1);
-           return ret->keepSelectedComponents(vc1);
+           return SWIG_NewPointerObj(SWIG_as_voidptr(ret->keepSelectedComponents(vc1)),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 );
          }
        case 10:
          {
            ret=self->selectByTupleIdSafe(&vt1[0],&vt1[0]+vt1.size());
-           return ret->keepSelectedComponents(vc1);
+           return SWIG_NewPointerObj(SWIG_as_voidptr(ret->keepSelectedComponents(vc1)),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 );
          }
        case 11:
          {
            ret=self->selectByTupleId2(pt1.first,pt1.second.first,pt1.second.second);
-           return ret->keepSelectedComponents(vc1);
+           return SWIG_NewPointerObj(SWIG_as_voidptr(ret->keepSelectedComponents(vc1)),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 );
          }
        case 12:
          {
            ret=self->selectByTupleIdSafe(dt1->getConstPointer(),dt1->getConstPointer()+dt1->getNbOfElems());
-           return ret->keepSelectedComponents(vc1);
+           return SWIG_NewPointerObj(SWIG_as_voidptr(ret->keepSelectedComponents(vc1)),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 );
          }
        case 13:
          {
@@ -3709,7 +4161,7 @@ namespace ParaMEDMEM
            std::vector<int> v2(nbOfComp);
            for(int i=0;i<nbOfComp;i++)
              v2[i]=pc1.first+i*pc1.second.second;
-           return ret->keepSelectedComponents(v2);
+           return SWIG_NewPointerObj(SWIG_as_voidptr(ret->keepSelectedComponents(v2)),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 );
          }
        case 14:
          {
@@ -3718,7 +4170,7 @@ namespace ParaMEDMEM
            std::vector<int> v2(nbOfComp);
            for(int i=0;i<nbOfComp;i++)
              v2[i]=pc1.first+i*pc1.second.second;
-           return ret->keepSelectedComponents(v2);
+           return SWIG_NewPointerObj(SWIG_as_voidptr(ret->keepSelectedComponents(v2)),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 );
          }
        case 15:
          {
@@ -3727,7 +4179,7 @@ namespace ParaMEDMEM
            std::vector<int> v2(nbOfComp);
            for(int i=0;i<nbOfComp;i++)
              v2[i]=pc1.first+i*pc1.second.second;
-           return ret->keepSelectedComponents(v2);
+           return SWIG_NewPointerObj(SWIG_as_voidptr(ret->keepSelectedComponents(v2)),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 );
          }
        case 16:
          {
@@ -3736,7 +4188,7 @@ namespace ParaMEDMEM
            std::vector<int> v2(nbOfComp);
            for(int i=0;i<nbOfComp;i++)
              v2[i]=pc1.first+i*pc1.second.second;
-           return ret->keepSelectedComponents(v2);
+           return SWIG_NewPointerObj(SWIG_as_voidptr(ret->keepSelectedComponents(v2)),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 );
          }
        default:
          throw INTERP_KERNEL::Exception(msg);
@@ -3753,7 +4205,8 @@ namespace ParaMEDMEM
      int i1;
      std::vector<int> v1;
      DataArrayInt *d1=0;
-     convertObjToPossibleCpp1(value,sw1,i1,v1,d1);
+     DataArrayIntTuple *dd1=0;
+     convertObjToPossibleCpp1(value,sw1,i1,v1,d1,dd1);
      int it1,ic1;
      std::vector<int> vt1,vc1;
      std::pair<int, std::pair<int,int> > pt1,pc1;
@@ -3777,6 +4230,10 @@ namespace ParaMEDMEM
              case 3:
                self->setPartOfValues1(d1,it1,it1+1,1,0,nbOfComponents,1);
                return self;
+             case 4:
+               tmp=dd1->buildDAInt(1,self->getNumberOfComponents());
+               self->setPartOfValues1(tmp,it1,it1+1,1,0,nbOfComponents,1);
+               return self;
              default:
                throw INTERP_KERNEL::Exception(msg);
              }
@@ -3797,6 +4254,10 @@ namespace ParaMEDMEM
              case 3:
                self->setPartOfValues3(d1,&vt1[0],&vt1[0]+vt1.size(),0,nbOfComponents,1);
                return self;
+             case 4:
+               tmp=dd1->buildDAInt(1,self->getNumberOfComponents());
+               self->setPartOfValues3(tmp,&vt1[0],&vt1[0]+vt1.size(),0,nbOfComponents,1);
+               return self;
              default:
                throw INTERP_KERNEL::Exception(msg);
              }
@@ -3817,6 +4278,10 @@ namespace ParaMEDMEM
              case 3:
                self->setPartOfValues1(d1,pt1.first,pt1.second.first,pt1.second.second,0,nbOfComponents,1);
                return self;
+             case 4:
+               tmp=dd1->buildDAInt(1,self->getNumberOfComponents());
+               self->setPartOfValues1(tmp,pt1.first,pt1.second.first,pt1.second.second,0,nbOfComponents,1);
+               return self;
              default:
                throw INTERP_KERNEL::Exception(msg);
              }
@@ -3837,6 +4302,10 @@ namespace ParaMEDMEM
              case 3:
                self->setPartOfValues3(d1,dt1->getConstPointer(),dt1->getConstPointer()+dt1->getNbOfElems(),0,nbOfComponents,1);
                return self;
+             case 4:
+               tmp=dd1->buildDAInt(1,self->getNumberOfComponents());
+               self->setPartOfValues3(tmp,dt1->getConstPointer(),dt1->getConstPointer()+dt1->getNbOfElems(),0,nbOfComponents,1);
+               return self;
              default:
                throw INTERP_KERNEL::Exception(msg);
              }
@@ -3857,6 +4326,10 @@ namespace ParaMEDMEM
              case 3:
                self->setPartOfValues1(d1,it1,it1+1,1,ic1,ic1+1,1);
                return self;
+             case 4:
+               tmp=dd1->buildDAInt(1,self->getNumberOfComponents());
+               self->setPartOfValues1(tmp,it1,it1+1,1,ic1,ic1+1,1);
+               return self;
              default:
                throw INTERP_KERNEL::Exception(msg);
              }
@@ -3877,6 +4350,10 @@ namespace ParaMEDMEM
              case 3:
                self->setPartOfValues3(d1,&vt1[0],&vt1[0]+vt1.size(),ic1,ic1+1,1);
                return self;
+             case 4:
+               tmp=dd1->buildDAInt(1,self->getNumberOfComponents());
+               self->setPartOfValues3(tmp,&vt1[0],&vt1[0]+vt1.size(),ic1,ic1+1,1);
+               return self;
              default:
                throw INTERP_KERNEL::Exception(msg);
              }
@@ -3897,6 +4374,10 @@ namespace ParaMEDMEM
              case 3:
                self->setPartOfValues1(d1,pt1.first,pt1.second.first,pt1.second.second,ic1,ic1+1,1);
                return self;
+             case 4:
+               tmp=dd1->buildDAInt(1,self->getNumberOfComponents());
+               self->setPartOfValues1(tmp,pt1.first,pt1.second.first,pt1.second.second,ic1,ic1+1,1);
+               return self;
              default:
                throw INTERP_KERNEL::Exception(msg);
              }
@@ -3917,6 +4398,10 @@ namespace ParaMEDMEM
              case 3:
                self->setPartOfValues3(d1,dt1->getConstPointer(),dt1->getConstPointer()+dt1->getNbOfElems(),ic1,ic1+1,1);
                return self;
+             case 4:
+               tmp=dd1->buildDAInt(1,self->getNumberOfComponents());
+               self->setPartOfValues3(tmp,dt1->getConstPointer(),dt1->getConstPointer()+dt1->getNbOfElems(),ic1,ic1+1,1);
+               return self;
              default:
                throw INTERP_KERNEL::Exception(msg);
              }
@@ -3937,6 +4422,10 @@ namespace ParaMEDMEM
              case 3:
                self->setPartOfValues2(d1,&it1,&it1+1,&vc1[0],&vc1[0]+vc1.size());
                return self;
+             case 4:
+               tmp=dd1->buildDAInt(1,self->getNumberOfComponents());
+               self->setPartOfValues2(tmp,&it1,&it1+1,&vc1[0],&vc1[0]+vc1.size());
+               return self;
              default:
                throw INTERP_KERNEL::Exception(msg);
              }
@@ -3957,6 +4446,10 @@ namespace ParaMEDMEM
              case 3:
                self->setPartOfValues2(d1,&vt1[0],&vt1[0]+vt1.size(),&vc1[0],&vc1[0]+vc1.size());
                return self;
+             case 4:
+               tmp=dd1->buildDAInt(1,self->getNumberOfComponents());
+               self->setPartOfValues2(tmp,&vt1[0],&vt1[0]+vt1.size(),&vc1[0],&vc1[0]+vc1.size());
+               return self;
              default:
                throw INTERP_KERNEL::Exception(msg);
              }
@@ -3986,6 +4479,10 @@ namespace ParaMEDMEM
              case 3:
                self->setPartOfValues2(d1,&nv[0],&nv[0]+nv.size(),&vc1[0],&vc1[0]+vc1.size());
                return self;
+             case 4:
+               tmp=dd1->buildDAInt(1,self->getNumberOfComponents());
+               self->setPartOfValues2(tmp,&nv[0],&nv[0]+nv.size(),&vc1[0],&vc1[0]+vc1.size());
+               return self;
              default:
                throw INTERP_KERNEL::Exception(msg);
              }
@@ -4006,6 +4503,10 @@ namespace ParaMEDMEM
              case 3:
                self->setPartOfValues2(d1,dt1->getConstPointer(),dt1->getConstPointer()+dt1->getNbOfElems(),&vc1[0],&vc1[0]+vc1.size());
                return self;
+             case 4:
+               tmp=dd1->buildDAInt(1,self->getNumberOfComponents());
+               self->setPartOfValues2(tmp,dt1->getConstPointer(),dt1->getConstPointer()+dt1->getNbOfElems(),&vc1[0],&vc1[0]+vc1.size());
+               return self;
              default:
                throw INTERP_KERNEL::Exception(msg);
              }
@@ -4026,6 +4527,10 @@ namespace ParaMEDMEM
              case 3:
                self->setPartOfValues1(d1,it1,it1+1,1,pc1.first,pc1.second.first,pc1.second.second);
                return self;
+             case 4:
+               tmp=dd1->buildDAInt(1,self->getNumberOfComponents());
+               self->setPartOfValues1(tmp,it1,it1+1,1,pc1.first,pc1.second.first,pc1.second.second);
+               return self;
              default:
                throw INTERP_KERNEL::Exception(msg);
              }
@@ -4046,6 +4551,10 @@ namespace ParaMEDMEM
              case 3:
                self->setPartOfValues3(d1,&vt1[0],&vt1[0]+vt1.size(),pc1.first,pc1.second.first,pc1.second.second);
                return self;
+             case 4:
+               tmp=dd1->buildDAInt(1,self->getNumberOfComponents());
+               self->setPartOfValues3(tmp,&vt1[0],&vt1[0]+vt1.size(),pc1.first,pc1.second.first,pc1.second.second);
+               return self;
              default:
                throw INTERP_KERNEL::Exception(msg);
              }
@@ -4066,6 +4575,10 @@ namespace ParaMEDMEM
              case 3:
                self->setPartOfValues1(d1,pt1.first,pt1.second.first,pt1.second.second,pc1.first,pc1.second.first,pc1.second.second);
                return self;
+             case 4:
+               tmp=dd1->buildDAInt(1,self->getNumberOfComponents());
+               self->setPartOfValues1(tmp,pt1.first,pt1.second.first,pt1.second.second,pc1.first,pc1.second.first,pc1.second.second);
+               return self;
              default:
                throw INTERP_KERNEL::Exception(msg);
              }
@@ -4086,6 +4599,10 @@ namespace ParaMEDMEM
              case 3:
                self->setPartOfValues3(d1,dt1->getConstPointer(),dt1->getConstPointer()+dt1->getNbOfElems(),pc1.first,pc1.second.first,pc1.second.second);
                return self;
+             case 4:
+               tmp=dd1->buildDAInt(1,self->getNumberOfComponents());
+               self->setPartOfValues3(tmp,dt1->getConstPointer(),dt1->getConstPointer()+dt1->getNbOfElems(),pc1.first,pc1.second.first,pc1.second.second);
+               return self;
              default:
                throw INTERP_KERNEL::Exception(msg);
              }
@@ -4097,14 +4614,20 @@ namespace ParaMEDMEM
      return self;
    }
 
+   DataArrayInt *__neg__() const throw(INTERP_KERNEL::Exception)
+   {
+     return self->negate();
+   }
    DataArrayInt *__add__(PyObject *obj) throw(INTERP_KERNEL::Exception)
    {
      const char msg[]="Unexpected situation in __add__ !";
      int val;
      DataArrayInt *a;
      std::vector<int> aa;
+     DataArrayIntTuple *aaa;
      int sw;
-     convertObjToPossibleCpp1(obj,sw,val,aa,a);
+     convertObjToPossibleCpp1(obj,sw,val,aa,a,aaa);
      switch(sw)
        {
        case 1:
@@ -4118,6 +4641,11 @@ namespace ParaMEDMEM
          {
            return DataArrayInt::Add(self,a);
          }
+       case 4:
+         {
+           MEDCouplingAutoRefCountObjectPtr<DataArrayInt> aaaa=aaa->buildDAInt(1,self->getNumberOfComponents());
+           return DataArrayInt::Add(self,aaaa);
+         }
        default:
          throw INTERP_KERNEL::Exception(msg);
        }
@@ -4129,8 +4657,9 @@ namespace ParaMEDMEM
      int val;
      DataArrayInt *a;
      std::vector<int> aa;
+     DataArrayIntTuple *aaa;
      int sw;
-     convertObjToPossibleCpp1(obj,sw,val,aa,a);
+     convertObjToPossibleCpp1(obj,sw,val,aa,a,aaa);
      switch(sw)
        {
        case 1:
@@ -4140,6 +4669,11 @@ namespace ParaMEDMEM
            ret->incrRef();
            return ret;
          }
+       case 4:
+         {
+           MEDCouplingAutoRefCountObjectPtr<DataArrayInt> aaaa=aaa->buildDAInt(1,self->getNumberOfComponents());
+           return DataArrayInt::Add(self,aaaa);
+         }
        default:
          throw INTERP_KERNEL::Exception(msg);
        }
@@ -4151,8 +4685,9 @@ namespace ParaMEDMEM
      int val;
      DataArrayInt *a;
      std::vector<int> aa;
+     DataArrayIntTuple *aaa;
      int sw;
-     convertObjToPossibleCpp1(obj,sw,val,aa,a);
+     convertObjToPossibleCpp1(obj,sw,val,aa,a,aaa);
      switch(sw)
        {
        case 1:
@@ -4160,11 +4695,23 @@ namespace ParaMEDMEM
            self->applyLin(1,val);
            return self;
          }
+       case 2:
+         {
+           MEDCouplingAutoRefCountObjectPtr<DataArrayInt> bb=DataArrayInt::New(); bb->useArray(&aa[0],false,CPP_DEALLOC,1,(int)aa.size());
+           self->addEqual(bb);
+           return self;
+         }
        case 3:
          {
            self->addEqual(a);
            return self;
          }
+       case 4:
+         {
+           MEDCouplingAutoRefCountObjectPtr<DataArrayInt> aaaa=aaa->buildDAInt(1,self->getNumberOfComponents());
+           self->addEqual(aaaa);
+           return self;
+         }
        default:
          throw INTERP_KERNEL::Exception(msg);
        }
@@ -4176,8 +4723,9 @@ namespace ParaMEDMEM
      int val;
      DataArrayInt *a;
      std::vector<int> aa;
+     DataArrayIntTuple *aaa;
      int sw;
-     convertObjToPossibleCpp1(obj,sw,val,aa,a);
+     convertObjToPossibleCpp1(obj,sw,val,aa,a,aaa);
      switch(sw)
        {
        case 1:
@@ -4191,6 +4739,11 @@ namespace ParaMEDMEM
          {
            return DataArrayInt::Substract(self,a);
          }
+       case 4:
+         {
+           MEDCouplingAutoRefCountObjectPtr<DataArrayInt> aaaa=aaa->buildDAInt(1,self->getNumberOfComponents());
+           return DataArrayInt::Substract(self,aaaa);
+         }
        default:
          throw INTERP_KERNEL::Exception(msg);
        }
@@ -4202,8 +4755,9 @@ namespace ParaMEDMEM
      int val;
      DataArrayInt *a;
      std::vector<int> aa;
+     DataArrayIntTuple *aaa;
      int sw;
-     convertObjToPossibleCpp1(obj,sw,val,aa,a);
+     convertObjToPossibleCpp1(obj,sw,val,aa,a,aaa);
      switch(sw)
        {
        case 1:
@@ -4213,6 +4767,11 @@ namespace ParaMEDMEM
            ret->incrRef();
            return ret;
          }
+       case 4:
+         {
+           MEDCouplingAutoRefCountObjectPtr<DataArrayInt> aaaa=aaa->buildDAInt(1,self->getNumberOfComponents());
+           return DataArrayInt::Substract(aaaa,self);
+         }
        default:
          throw INTERP_KERNEL::Exception(msg);
        }
@@ -4224,8 +4783,9 @@ namespace ParaMEDMEM
      int val;
      DataArrayInt *a;
      std::vector<int> aa;
+     DataArrayIntTuple *aaa;
      int sw;
-     convertObjToPossibleCpp1(obj,sw,val,aa,a);
+     convertObjToPossibleCpp1(obj,sw,val,aa,a,aaa);
      switch(sw)
        {
        case 1:
@@ -4233,11 +4793,23 @@ namespace ParaMEDMEM
            self->applyLin(1,-val);
            return self;
          }
+       case 2:
+         {
+           MEDCouplingAutoRefCountObjectPtr<DataArrayInt> bb=DataArrayInt::New(); bb->useArray(&aa[0],false,CPP_DEALLOC,1,(int)aa.size());
+           self->substractEqual(bb);
+           return self;
+         }
        case 3:
          {
            self->substractEqual(a);
            return self;
          }
+       case 4:
+         {
+           MEDCouplingAutoRefCountObjectPtr<DataArrayInt> aaaa=aaa->buildDAInt(1,self->getNumberOfComponents());
+           self->substractEqual(aaaa);
+           return self;
+         }
        default:
          throw INTERP_KERNEL::Exception(msg);
        }
@@ -4249,8 +4821,9 @@ namespace ParaMEDMEM
      int val;
      DataArrayInt *a;
      std::vector<int> aa;
+     DataArrayIntTuple *aaa;
      int sw;
-     convertObjToPossibleCpp1(obj,sw,val,aa,a);
+     convertObjToPossibleCpp1(obj,sw,val,aa,a,aaa);
      switch(sw)
        {
        case 1:
@@ -4264,6 +4837,11 @@ namespace ParaMEDMEM
          {
            return DataArrayInt::Multiply(self,a);
          }
+       case 4:
+         {
+           MEDCouplingAutoRefCountObjectPtr<DataArrayInt> aaaa=aaa->buildDAInt(1,self->getNumberOfComponents());
+           return DataArrayInt::Multiply(self,aaaa);
+         }
        default:
          throw INTERP_KERNEL::Exception(msg);
        }
@@ -4275,8 +4853,9 @@ namespace ParaMEDMEM
      int val;
      DataArrayInt *a;
      std::vector<int> aa;
+     DataArrayIntTuple *aaa;
      int sw;
-     convertObjToPossibleCpp1(obj,sw,val,aa,a);
+     convertObjToPossibleCpp1(obj,sw,val,aa,a,aaa);
      switch(sw)
        {
        case 1:
@@ -4286,6 +4865,11 @@ namespace ParaMEDMEM
            ret->incrRef();
            return ret;
          }
+       case 4:
+         {
+           MEDCouplingAutoRefCountObjectPtr<DataArrayInt> aaaa=aaa->buildDAInt(1,self->getNumberOfComponents());
+           return DataArrayInt::Multiply(self,aaaa);
+         }
        default:
          throw INTERP_KERNEL::Exception(msg);
        }
@@ -4297,8 +4881,9 @@ namespace ParaMEDMEM
      int val;
      DataArrayInt *a;
      std::vector<int> aa;
+     DataArrayIntTuple *aaa;
      int sw;
-     convertObjToPossibleCpp1(obj,sw,val,aa,a);
+     convertObjToPossibleCpp1(obj,sw,val,aa,a,aaa);
      switch(sw)
        {
        case 1:
@@ -4306,11 +4891,23 @@ namespace ParaMEDMEM
            self->applyLin(val,0);
            return self;
          }
+       case 2:
+         {
+           MEDCouplingAutoRefCountObjectPtr<DataArrayInt> bb=DataArrayInt::New(); bb->useArray(&aa[0],false,CPP_DEALLOC,1,(int)aa.size());
+           self->multiplyEqual(bb);
+           return self;
+         }
        case 3:
          {
            self->multiplyEqual(a);
            return self;
          }
+       case 4:
+         {
+           MEDCouplingAutoRefCountObjectPtr<DataArrayInt> aaaa=aaa->buildDAInt(1,self->getNumberOfComponents());
+           self->multiplyEqual(aaaa);
+           return self;
+         }
        default:
          throw INTERP_KERNEL::Exception(msg);
        }
@@ -4322,8 +4919,9 @@ namespace ParaMEDMEM
      int val;
      DataArrayInt *a;
      std::vector<int> aa;
+     DataArrayIntTuple *aaa;
      int sw;
-     convertObjToPossibleCpp1(obj,sw,val,aa,a);
+     convertObjToPossibleCpp1(obj,sw,val,aa,a,aaa);
      switch(sw)
        {
        case 1:
@@ -4337,6 +4935,11 @@ namespace ParaMEDMEM
          {
            return DataArrayInt::Divide(self,a);
          }
+       case 4:
+         {
+           MEDCouplingAutoRefCountObjectPtr<DataArrayInt> aaaa=aaa->buildDAInt(1,self->getNumberOfComponents());
+           return DataArrayInt::Divide(self,aaaa);
+         }
        default:
          throw INTERP_KERNEL::Exception(msg);
        }
@@ -4348,8 +4951,9 @@ namespace ParaMEDMEM
      int val;
      DataArrayInt *a;
      std::vector<int> aa;
+     DataArrayIntTuple *aaa;
      int sw;
-     convertObjToPossibleCpp1(obj,sw,val,aa,a);
+     convertObjToPossibleCpp1(obj,sw,val,aa,a,aaa);
      switch(sw)
        {
        case 1:
@@ -4359,6 +4963,11 @@ namespace ParaMEDMEM
            ret->incrRef();
            return ret;
          }
+       case 4:
+         {
+           MEDCouplingAutoRefCountObjectPtr<DataArrayInt> aaaa=aaa->buildDAInt(1,self->getNumberOfComponents());
+           return DataArrayInt::Divide(aaaa,self);
+         }
        default:
          throw INTERP_KERNEL::Exception(msg);
        }
@@ -4370,8 +4979,9 @@ namespace ParaMEDMEM
      int val;
      DataArrayInt *a;
      std::vector<int> aa;
+     DataArrayIntTuple *aaa;
      int sw;
-     convertObjToPossibleCpp1(obj,sw,val,aa,a);
+     convertObjToPossibleCpp1(obj,sw,val,aa,a,aaa);
      switch(sw)
        {
        case 1:
@@ -4379,11 +4989,23 @@ namespace ParaMEDMEM
            self->applyDivideBy(val);
            return self;
          }
+       case 2:
+         {
+           MEDCouplingAutoRefCountObjectPtr<DataArrayInt> bb=DataArrayInt::New(); bb->useArray(&aa[0],false,CPP_DEALLOC,1,(int)aa.size());
+           self->divideEqual(bb);
+           return self;
+         }
        case 3:
          {
            self->divideEqual(a);
            return self;
          }
+       case 4:
+         {
+           MEDCouplingAutoRefCountObjectPtr<DataArrayInt> aaaa=aaa->buildDAInt(1,self->getNumberOfComponents());
+           self->divideEqual(aaaa);
+           return self;
+         }
        default:
          throw INTERP_KERNEL::Exception(msg);
        }
@@ -4395,8 +5017,9 @@ namespace ParaMEDMEM
      int val;
      DataArrayInt *a;
      std::vector<int> aa;
+     DataArrayIntTuple *aaa;
      int sw;
-     convertObjToPossibleCpp1(obj,sw,val,aa,a);
+     convertObjToPossibleCpp1(obj,sw,val,aa,a,aaa);
      switch(sw)
        {
        case 1:
@@ -4410,6 +5033,11 @@ namespace ParaMEDMEM
          {
            return DataArrayInt::Modulus(self,a);
          }
+       case 4:
+         {
+           MEDCouplingAutoRefCountObjectPtr<DataArrayInt> aaaa=aaa->buildDAInt(1,self->getNumberOfComponents());
+           return DataArrayInt::Modulus(self,aaaa);
+         }
        default:
          throw INTERP_KERNEL::Exception(msg);
        }
@@ -4421,8 +5049,9 @@ namespace ParaMEDMEM
      int val;
      DataArrayInt *a;
      std::vector<int> aa;
+     DataArrayIntTuple *aaa;
      int sw;
-     convertObjToPossibleCpp1(obj,sw,val,aa,a);
+     convertObjToPossibleCpp1(obj,sw,val,aa,a,aaa);
      switch(sw)
        {
        case 1:
@@ -4434,7 +5063,12 @@ namespace ParaMEDMEM
          }
        case 3:
          {
-           return DataArrayInt::Modulus(self,a);
+           return DataArrayInt::Modulus(a,self);
+         }
+       case 4:
+         {
+           MEDCouplingAutoRefCountObjectPtr<DataArrayInt> aaaa=aaa->buildDAInt(1,self->getNumberOfComponents());
+           return DataArrayInt::Modulus(aaaa,self);
          }
        default:
          throw INTERP_KERNEL::Exception(msg);
@@ -4447,8 +5081,9 @@ namespace ParaMEDMEM
      int val;
      DataArrayInt *a;
      std::vector<int> aa;
+     DataArrayIntTuple *aaa;
      int sw;
-     convertObjToPossibleCpp1(obj,sw,val,aa,a);
+     convertObjToPossibleCpp1(obj,sw,val,aa,a,aaa);
      switch(sw)
        {
        case 1:
@@ -4461,6 +5096,12 @@ namespace ParaMEDMEM
            self->modulusEqual(a);
            return self;
          }
+       case 4:
+         {
+           MEDCouplingAutoRefCountObjectPtr<DataArrayInt> aaaa=aaa->buildDAInt(1,self->getNumberOfComponents());
+           self->modulusEqual(aaaa);
+           return self;
+         }
        default:
          throw INTERP_KERNEL::Exception(msg);
        }
@@ -4620,6 +5261,8 @@ namespace ParaMEDMEM
     void sortPerTuple(bool asc) throw(INTERP_KERNEL::Exception);
     MEDCouplingFieldDouble &operator=(double value) throw(INTERP_KERNEL::Exception);
     void fillFromAnalytic(int nbOfComp, const char *func) throw(INTERP_KERNEL::Exception);
+    void fillFromAnalytic2(int nbOfComp, const char *func) throw(INTERP_KERNEL::Exception);
+    void fillFromAnalytic3(int nbOfComp, const std::vector<std::string>& varsOrder, const char *func) throw(INTERP_KERNEL::Exception);
     void applyFunc(int nbOfComp, const char *func) throw(INTERP_KERNEL::Exception);
     void applyFunc2(int nbOfComp, const char *func) throw(INTERP_KERNEL::Exception);
     void applyFunc3(int nbOfComp, const std::vector<std::string>& varsOrder, const char *func) throw(INTERP_KERNEL::Exception);
index a15e9a8678c906ffe0aee381c2ef1b4daca64d98..17812f5c5c3a4ebf610b2aa7d0814a2b4fdc93ab 100644 (file)
@@ -1,5 +1,5 @@
 #  -*- coding: iso-8859-1 -*-
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
@@ -1421,7 +1421,7 @@ class MEDCouplingBasicsTest(unittest.TestCase):
         expected1=[0,1]
         self.assertEqual(2,arr1.getNumberOfTuples());
         self.assertEqual(1,arr1.getNumberOfComponents());
-        self.assertTrue(expected1,arr1.getValues());
+        self.assertEqual(expected1,arr1.getValues());
         expected2=[0,3,4,1,2]
         arr1=m2_1.rearrange2ConsecutiveCellTypes();
         self.assertEqual(5,arr1.getNumberOfTuples());
@@ -1520,7 +1520,7 @@ class MEDCouplingBasicsTest(unittest.TestCase):
         targetMesh=MEDCouplingUMesh.New();
         targetMesh.setMeshDimension(2);
         targetMesh.allocateCells(1);
-        targetMesh.insertNextCell(NORM_QUAD4,4,targetConn[0:4])
+        targetMesh.insertNextCell(NORM_QUAD4,targetConn[0:4])
         targetMesh.finishInsertingCells();
         myCoords=DataArrayDouble.New();
         myCoords.setValues(targetCoords,4,3);
@@ -2596,7 +2596,7 @@ class MEDCouplingBasicsTest(unittest.TestCase):
         self.assertEqual(5,len(types));
         expected1=[NORM_POLYGON, NORM_TRI3, NORM_QUAD4, NORM_TRI6, NORM_QUAD8]
         expected1.sort()
-        self.assertTrue(expected1==types);
+        self.assertEqual(expected1,types);
         self.assertTrue(mesh.isPresenceOfQuadratic());
         self.assertEqual(62,mesh.getMeshLength());
         f1=mesh.getMeasureField(False);
@@ -2613,7 +2613,7 @@ class MEDCouplingBasicsTest(unittest.TestCase):
         self.assertEqual(3,len(types2));
         expected2=[NORM_POLYGON, NORM_TRI3, NORM_QUAD4]
         expected2.sort()
-        self.assertTrue(expected2==types2);
+        self.assertEqual(expected2,types2);
         pass
 
     def testCheckGeoEquivalWith(self):
@@ -2796,7 +2796,7 @@ class MEDCouplingBasicsTest(unittest.TestCase):
         m2=MEDCouplingUMesh.New();
         m2.setMeshDimension(2);
         m2.allocateCells(1);
-        m2.insertNextCell(NORM_QUAD4,4,targetConn[0:4])
+        m2.insertNextCell(NORM_QUAD4,targetConn[0:4])
         m2.finishInsertingCells();
         myCoords=DataArrayDouble.New();
         myCoords.setValues(targetCoords,4,2);
@@ -3813,7 +3813,8 @@ class MEDCouplingBasicsTest(unittest.TestCase):
         #
         tmpConn=[0,1,2,3,4,5,6,7]
         mesh.allocateCells(3);
-        mesh.insertNextCell(NORM_HEXA8,8,tmpConn[0:8])
+        self.assertRaises(InterpKernelException,mesh.insertNextCell,NORM_HEXA8,9,tmpConn[0:8])
+        mesh.insertNextCell(NORM_HEXA8,tmpConn[0:8])
         mesh.insertNextCell(NORM_PENTA6,6,[i+8 for i in tmpConn])
         mesh.insertNextCell(NORM_PYRA5,5,[i+14 for i in tmpConn])
         mesh.finishInsertingCells();
@@ -4285,11 +4286,11 @@ class MEDCouplingBasicsTest(unittest.TestCase):
         da.setValues(discX,4,1);
         m.setCoordsAt(0,da);
         m.checkCoherency();
-        self.assertEqual(0,m.getCellContainingPoint([2.4],12));
-        self.assertEqual(1,m.getCellContainingPoint([3.7],12));
-        self.assertEqual(2,m.getCellContainingPoint([5.9],12));
-        self.assertEqual(-1,m.getCellContainingPoint([10.3],12));
-        self.assertEqual(-1,m.getCellContainingPoint([1.3],12));
+        self.assertEqual(0,m.getCellContainingPoint([2.4],1e-12));
+        self.assertEqual(1,m.getCellContainingPoint([3.7],1e-12));
+        self.assertEqual(2,m.getCellContainingPoint([5.9],1e-12));
+        self.assertEqual(-1,m.getCellContainingPoint([10.3],1e-12));
+        self.assertEqual(-1,m.getCellContainingPoint([1.3],1e-12));
         #
         m2=m.buildUnstructured();
         m2.checkCoherency();
@@ -5509,7 +5510,7 @@ class MEDCouplingBasicsTest(unittest.TestCase):
         self.assertTrue(tmp2);
         self.assertEqual(37,tmp3);
         i.convertDegeneratedCells();
-        vec1=[10.,0.,0.]
+        vec1=[10.,0]
         i.translate(vec1);
         g2=h.applyFunc(3,"13.5/3.5*x*IVec+0*JVec+13.5/3.5*y*KVec");
         f.setCoords(g2);
@@ -6940,11 +6941,16 @@ class MEDCouplingBasicsTest(unittest.TestCase):
         #
         ms=[m1,m2_2,m3_2];
         #
+        self.assertRaises(InterpKernelException,MEDCouplingUMesh.MergeUMeshes,ms+[None]);
+        self.assertRaises(InterpKernelException,MEDCouplingUMesh.MergeUMeshes,ms+[3.4])
         m4=MEDCouplingUMesh.MergeUMeshes(ms);
         m4.checkCoherency();
         self.assertEqual(10,m4.getNumberOfCells());
         self.assertEqual(20,m4.getNumberOfNodes());
         self.assertEqual(45,m4.getMeshLength());
+        m4bis=MEDCouplingMesh.MergeMeshes(ms);
+        self.assertTrue(m4.isEqual(m4bis,1e-12))
+        del m4bis
         #
         vec3=[0,1,2,3,4]
         m4_1=m4.buildPartOfMySelf(vec3,False);
@@ -8512,7 +8518,7 @@ class MEDCouplingBasicsTest(unittest.TestCase):
         self.assertEqual(10,ret.getNbOfElems());
         self.assertEqual(7,newNbTuple);
         self.assertEqual(1,ret.getNumberOfComponents());
-        self.assertTrue(expected,ret.getValues());
+        self.assertEqual(expected,ret.getValues());
         pass
 
     def testDADIReverse1(self):
@@ -8524,7 +8530,7 @@ class MEDCouplingBasicsTest(unittest.TestCase):
         for i in xrange(6):
             self.assertEqual(arr[5-i],a.getIJ(i,0));
             pass
-        a.setValues(arr,5,1);
+        a.setValues(arr[:-1],5,1);
         a.reverse();
         for i in xrange(5):
             self.assertEqual(arr[4-i],a.getIJ(i,0));
@@ -8792,8 +8798,8 @@ class MEDCouplingBasicsTest(unittest.TestCase):
             pass
         self.assertEqual(60,m12.getNodalConnectivity().getNumberOfTuples());
         self.assertEqual(9,m12.getNodalConnectivityIndex().getNumberOfTuples());
-        self.assertTrue(expected3,m12.getNodalConnectivity().getValues());
-        self.assertTrue(expected4,m12.getNodalConnectivityIndex().getValues());
+        self.assertEqual(expected3,m12.getNodalConnectivity().getValues());
+        self.assertEqual(expected4,m12.getNodalConnectivityIndex().getValues());
         pass
 
     def testIntersect2DMeshesTmp4(self):
@@ -9238,7 +9244,858 @@ class MEDCouplingBasicsTest(unittest.TestCase):
             self.assertAlmostEqual(expected1[i],arr1.getIJ(0,i),14);
             pass
         pass
+
+    def testGetNodeIdsOfCell2(self):
+        m1c=MEDCouplingCMesh.New();
+        coordsX=DataArrayDouble.New();
+        arrX=[ -1., 1., 2., 4., 4.5 ]
+        coordsX.setValues(arrX,5,1);
+        coordsY=DataArrayDouble.New();
+        arrY=[ -2., 2., 4., 8.]
+        coordsY.setValues(arrY,4,1);
+        coordsZ=DataArrayDouble.New();
+        arrZ=[ -2., 2., 4.]
+        coordsZ.setValues(arrZ,3,1);
+        # test in 1D
+        m1c.setCoordsAt(0,coordsX);
+        expected1=[[0,1],[1,2],[2,3],[3,4]]
+        self.assertEqual(4,m1c.getNumberOfCells())
+        for i in xrange(m1c.getNumberOfCells()):
+            self.assertEqual(expected1[i],m1c.getNodeIdsOfCell(i))
+            pass
+        # test in 2D
+        m1c.setCoordsAt(1,coordsY);
+        self.assertEqual(12,m1c.getNumberOfCells())
+        expected2=[[0,1,6,5],[1,2,7,6],[2,3,8,7],[3,4,9,8],[4,5,11,10],[5,6,12,11],[6,7,13,12],[7,8,14,13],[8,9,16,15],[9,10,17,16],[10,11,18,17],[11,12,19,18]]
+        for i in xrange(m1c.getNumberOfCells()):
+            self.assertEqual(expected2[i],m1c.getNodeIdsOfCell(i))
+            pass
+        # test in 3D
+        m1c.setCoordsAt(2,coordsZ);
+        expected3=[[0,1,6,5,20,21,26,25],[1,2,7,6,21,22,27,26],[2,3,8,7,22,23,28,27],[3,4,9,8,23,24,29,28],[4,5,11,10,24,25,31,30],[5,6,12,11,25,26,32,31],[6,7,13,12,26,27,33,32],[7,8,14,13,27,28,34,33],[8,9,16,15,28,29,36,35],[9,10,17,16,29,30,37,36],[10,11,18,17,30,31,38,37],[11,12,19,18,31,32,39,38],[20,21,26,25,40,41,46,45],[21,22,27,26,41,42,47,46],[22,23,28,27,42,43,48,47],[23,24,29,28,43,44,49,48],[24,25,31,30,44,45,51,50],[25,26,32,31,45,46,52,51],[26,27,33,32,46,47,53,52],[27,28,34,33,47,48,54,53],[28,29,36,35,48,49,56,55],[29,30,37,36,49,50,57,56],[30,31,38,37,50,51,58,57],[31,32,39,38,51,52,59,58]]
+        self.assertEqual(24,m1c.getNumberOfCells())
+        for i in xrange(m1c.getNumberOfCells()):
+            self.assertEqual(expected3[i],m1c.getNodeIdsOfCell(i))
+            pass
+        pass
+    
+    def testSwigDADOp4(self):
+        da=DataArrayDouble.New(range(6,30),12,2)
+        self.assertEqual(12,da.getNumberOfTuples());
+        self.assertEqual(2,da.getNumberOfComponents());
+        for i in xrange(24):
+            self.assertAlmostEqual(da.getIJ(0,i),float(i+6),13)
+            pass
+        # operator transpose
+        da.transpose()
+        self.assertEqual(2,da.getNumberOfTuples());
+        self.assertEqual(12,da.getNumberOfComponents());
+        for i in xrange(24):
+            self.assertAlmostEqual(da.getIJ(0,i),float(i+6),13)
+            pass
+        da.transpose()
+        # operator __neg__
+        da2=DataArrayDouble.New(12,1)
+        da2.iota(0.)
+        dabis=-da
+        for i in xrange(24):
+            self.assertAlmostEqual(dabis.getIJ(0,i),-float(i+6),13)
+            pass
+        # operator+=
+        da+=da2
+        expected1=[6.,7.,9.,10.,12.,13.,15.,16.,18.,19.,21.,22.,24.,25.,27.,28.,30.,31.,33.,34.,36.,37.,39.,40.]
+        for i in xrange(24):
+            self.assertAlmostEqual(da.getIJ(0,i),expected1[i],13)
+            pass
+        da=-dabis
+        da+=[100.,101.]
+        expected2=[106.,108.,108.,110.,110.,112.,112.,114.,114.,116.,116.,118.,118.,120.,120.,122.,122.,124.,124.,126.,126.,128.,128.,130.]
+        self.assertEqual(12,da.getNumberOfTuples());
+        self.assertEqual(2,da.getNumberOfComponents());
+        for i in xrange(24):
+            self.assertAlmostEqual(da.getIJ(0,i),expected2[i],13)
+            pass
+        for pos,elt in enumerate(dabis):
+            da[pos]+=elt
+            pass
+        self.assertEqual(12,da.getNumberOfTuples());
+        self.assertEqual(2,da.getNumberOfComponents());
+        for elt in da:
+            li=elt[:]
+            self.assertAlmostEqual(li[0],100.,13) ; self.assertAlmostEqual(li[1],101.,13)
+            pass
+        # operator-=
+        da=DataArrayDouble.New(range(6,30),12,2)
+        da2=DataArrayDouble.New(range(12),12,1)
+        dabis=-da
+        da-=da2
+        expected1=[6.,7.,7.,8.,8.,9.,9.,10.,10.,11.,11.,12.,12.,13.,13.,14.,14.,15.,15.,16.,16.,17.,17.,18.]
+        for i in xrange(24):
+            self.assertAlmostEqual(da.getIJ(0,i),expected1[i],13)
+            pass
+        da=-dabis
+        da-=[100.,101.]
+        expected2=[-94.,-94.,-92.,-92.,-90.,-90.,-88.,-88.,-86.,-86.,-84.,-84.,-82.,-82.,-80.,-80.,-78.,-78.,-76.,-76.,-74.,-74.,-72.,-72.]
+        self.assertEqual(12,da.getNumberOfTuples());
+        self.assertEqual(2,da.getNumberOfComponents());
+        for i in xrange(24):
+            self.assertAlmostEqual(da.getIJ(0,i),expected2[i],13)
+            pass
+        for pos,elt in enumerate(dabis):
+            da[pos]-=elt
+            pass
+        self.assertEqual(12,da.getNumberOfTuples());
+        self.assertEqual(2,da.getNumberOfComponents());
+        expected3=[-88.,-87.,-84.,-83.,-80.,-79.,-76.,-75.,-72.,-71.,-68.,-67.,-64.,-63.,-60.,-59.,-56.,-55.,-52.,-51.,-48.,-47.,-44.,-43.]
+        for i in xrange(24):
+            self.assertAlmostEqual(da.getIJ(0,i),expected3[i],13)
+            pass
+        # operator*=
+        da=DataArrayDouble.New(range(6,30),12,2)
+        da2=DataArrayDouble.New(range(12),12,1)
+        dabis=-da
+        da*=da2
+        expected1=[0.,0.,8.,9.,20.,22.,36.,39.,56.,60.,80.,85.,108.,114.,140.,147.,176.,184.,216.,225.,260.,270.,308.,319.]
+        for i in xrange(24):
+            self.assertAlmostEqual(da.getIJ(0,i),expected1[i],13)
+            pass
+        da=-dabis
+        da*=[100.,101.]
+        expected2=[600.,707.,800.,909.,1000.,1111.,1200.,1313.,1400.,1515.,1600.,1717.,1800.,1919.,2000.,2121.,2200.,2323.,2400.,2525.,2600.,2727.,2800.,2929.]
+        self.assertEqual(12,da.getNumberOfTuples());
+        self.assertEqual(2,da.getNumberOfComponents());
+        for i in xrange(24):
+            self.assertAlmostEqual(da.getIJ(0,i),expected2[i],13)
+            pass
+        for pos,elt in enumerate(dabis):
+            da[pos]*=elt
+            pass
+        self.assertEqual(12,da.getNumberOfTuples());
+        self.assertEqual(2,da.getNumberOfComponents());
+        expected3=[-3600.,-4949.,-6400.,-8181.,-10000.,-12221.,-14400.,-17069.,-19600.,-22725.,-25600.,-29189.,-32400.,-36461.,-40000.,-44541.,-48400.,-53429.,-57600.,-63125.,-67600.,-73629.,-78400.,-84941.0]
+        for i in xrange(24):
+            self.assertAlmostEqual(da.getIJ(0,i),expected3[i],13)
+            pass
+        # operator/=
+        da=DataArrayDouble.New(range(6,30),12,2)
+        da2=DataArrayDouble.New(range(1,13),12,1)
+        dabis=-da
+        da/=da2
+        expected1=[6.0,7.0,4.0,4.5,3.3333333333333335,3.6666666666666665,3.0,3.25,2.8,3.0,2.6666666666666665,2.8333333333333335,2.5714285714285716,2.7142857142857144,2.5,2.625,2.4444444444444446,2.5555555555555554,2.4,2.5,2.3636363636363638,2.4545454545454546,2.3333333333333335,2.4166666666666665]
+        for i in xrange(24):
+            self.assertAlmostEqual(da.getIJ(0,i),expected1[i],13)
+            pass
+        da=-dabis
+        da/=[100.,101.]
+        expected2=[0.06,0.06930693069306931,0.08,0.0891089108910891,0.1,0.10891089108910891,0.12,0.12871287128712872,0.14,0.1485148514851485,0.16,0.16831683168316833,0.18,0.18811881188118812,0.2,0.2079207920792079,0.22,0.22772277227722773,0.24,0.24752475247524752,0.26,0.26732673267326734,0.28,0.2871287128712871]
+        self.assertEqual(12,da.getNumberOfTuples());
+        self.assertEqual(2,da.getNumberOfComponents());
+        for i in xrange(24):
+            self.assertAlmostEqual(da.getIJ(0,i),expected2[i],13)
+            pass
+        for pos,elt in enumerate(dabis):
+            da[pos]/=elt
+            pass
+        self.assertEqual(12,da.getNumberOfTuples());
+        self.assertEqual(2,da.getNumberOfComponents());
+        expected3=[-0.01, -0.009900990099009901, -0.01, -0.009900990099009901, -0.01, -0.009900990099009901, -0.01, -0.009900990099009901, -0.01, -0.009900990099009901, -0.01, -0.009900990099009901, -0.01, -0.009900990099009901, -0.01, -0.009900990099009901, -0.01, -0.009900990099009901, -0.01, -0.009900990099009901, -0.01, -0.009900990099009901, -0.01, -0.0099009900990099]
+        for i in xrange(24):
+            self.assertAlmostEqual(da.getIJ(0,i),expected3[i],13)
+            pass
+        pass
+
+    def testSwigDAIOp4(self):
+        da=DataArrayInt.New(range(6,30),12,2)
+        self.assertEqual(12,da.getNumberOfTuples());
+        self.assertEqual(2,da.getNumberOfComponents());
+        for i in xrange(24):
+            self.assertEqual(da.getIJ(0,i),i+6)
+            pass
+        # operator transpose
+        da.transpose()
+        self.assertEqual(2,da.getNumberOfTuples());
+        self.assertEqual(12,da.getNumberOfComponents());
+        for i in xrange(24):
+            self.assertEqual(da.getIJ(0,i),i+6)
+            pass
+        da.transpose()
+        # operator __neg__
+        da2=DataArrayInt.New(12,1)
+        da2.iota(0)
+        dabis=-da
+        for i in xrange(24):
+            self.assertEqual(dabis.getIJ(0,i),-(i+6))
+            pass
+        # operator+=
+        da+=da2
+        expected1=[6,7,9,10,12,13,15,16,18,19,21,22,24,25,27,28,30,31,33,34,36,37,39,40]
+        for i in xrange(24):
+            self.assertEqual(da.getIJ(0,i),expected1[i])
+            pass
+        da=-dabis
+        da+=[100,101]
+        expected2=[106,108,108,110,110,112,112,114,114,116,116,118,118,120,120,122,122,124,124,126,126,128,128,130]
+        self.assertEqual(12,da.getNumberOfTuples());
+        self.assertEqual(2,da.getNumberOfComponents());
+        for i in xrange(24):
+            self.assertEqual(da.getIJ(0,i),expected2[i])
+            pass
+        for pos,elt in enumerate(dabis):
+            da[pos]+=elt
+            pass
+        self.assertEqual(12,da.getNumberOfTuples());
+        self.assertEqual(2,da.getNumberOfComponents());
+        for elt in da:
+            li=elt[:]
+            self.assertEqual(li[0],100) ; self.assertEqual(li[1],101)
+            pass
+        # operator-=
+        da=DataArrayInt.New(range(6,30),12,2)
+        da2=DataArrayInt.New(range(12),12,1)
+        dabis=-da
+        da-=da2
+        expected1=[6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,17,18]
+        for i in xrange(24):
+            self.assertEqual(da.getIJ(0,i),expected1[i])
+            pass
+        da=-dabis
+        da-=[100,101]
+        expected2=[-94,-94,-92,-92,-90,-90,-88,-88,-86,-86,-84,-84,-82,-82,-80,-80,-78,-78,-76,-76,-74,-74,-72,-72]
+        self.assertEqual(12,da.getNumberOfTuples());
+        self.assertEqual(2,da.getNumberOfComponents());
+        for i in xrange(24):
+            self.assertEqual(da.getIJ(0,i),expected2[i])
+            pass
+        for pos,elt in enumerate(dabis):
+            da[pos]-=elt
+            pass
+        self.assertEqual(12,da.getNumberOfTuples());
+        self.assertEqual(2,da.getNumberOfComponents());
+        expected3=[-88,-87,-84,-83,-80,-79,-76,-75,-72,-71,-68,-67,-64,-63,-60,-59,-56,-55,-52,-51,-48,-47,-44,-43]
+        for i in xrange(24):
+            self.assertEqual(da.getIJ(0,i),expected3[i])
+            pass
+        # operator*=
+        da=DataArrayInt.New(range(6,30),12,2)
+        da2=DataArrayInt.New(range(12),12,1)
+        dabis=-da
+        da*=da2
+        expected1=[0,0,8,9,20,22,36,39,56,60,80,85,108,114,140,147,176,184,216,225,260,270,308,319]
+        for i in xrange(24):
+            self.assertEqual(da.getIJ(0,i),expected1[i])
+            pass
+        da=-dabis
+        da*=[100,101]
+        expected2=[600,707,800,909,1000,1111,1200,1313,1400,1515,1600,1717,1800,1919,2000,2121,2200,2323,2400,2525,2600,2727,2800,2929]
+        self.assertEqual(12,da.getNumberOfTuples());
+        self.assertEqual(2,da.getNumberOfComponents());
+        for i in xrange(24):
+            self.assertEqual(da.getIJ(0,i),expected2[i])
+            pass
+        for pos,elt in enumerate(dabis):
+            da[pos]*=elt
+            pass
+        self.assertEqual(12,da.getNumberOfTuples());
+        self.assertEqual(2,da.getNumberOfComponents());
+        expected3=[-3600,-4949,-6400,-8181,-10000,-12221,-14400,-17069,-19600,-22725,-25600,-29189,-32400,-36461,-40000,-44541,-48400,-53429,-57600,-63125,-67600,-73629,-78400,-84941.0]
+        for i in xrange(24):
+            self.assertEqual(da.getIJ(0,i),expected3[i])
+            pass
+        # operator/=
+        da=DataArrayInt.New(range(6,30),12,2)
+        da2=DataArrayInt.New(range(1,13),12,1)
+        dabis=-da
+        da/=da2
+        expected1=[6,7,4,4,3,3,3,3,2,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2]
+        for i in xrange(24):
+            self.assertEqual(da.getIJ(0,i),expected1[i])
+            pass
+        da=-dabis
+        da/=DataArrayInt.New([2,3],1,2)
+        self.assertEqual(12,da.getNumberOfTuples());
+        self.assertEqual(2,da.getNumberOfComponents());
+        expected2=[3,2,4,3,5,3,6,4,7,5,8,5,9,6,10,7,11,7,12,8,13,9,14,9]
+        for i in xrange(24):
+            self.assertEqual(da.getIJ(0,i),expected2[i])
+            pass
+        pass
+
+    def testSwigDADOp5(self):
+        da=DataArrayDouble.New([5,6,7,8,9,6,7,-2,3,9,8,10])
+        da.rearrange(3)
+        da2=DataArrayDouble.New([5.,8.,10.,12])
+        self.assertEqual(4,da2.getNumberOfTuples());
+        self.assertEqual(1,da2.getNumberOfComponents());
+        da3=da+da2
+        self.assertEqual(4,da3.getNumberOfTuples());
+        self.assertEqual(3,da3.getNumberOfComponents());
+        expected1=[10.,11.,12.,16.,17.,14.,17.,8.,13.,21.,20.,22.]
+        for i in xrange(12):
+            self.assertAlmostEqual(da3.getIJ(0,i),expected1[i],13)
+            pass
+        da3=da2+da
+        self.assertEqual(4,da3.getNumberOfTuples());
+        self.assertEqual(3,da3.getNumberOfComponents());
+        for i in xrange(12):
+            self.assertAlmostEqual(da3.getIJ(0,i),expected1[i],13)
+            pass
+        # Test new API of classmethod DataArrayDouble.New
+        vals=[5,6,7,8,9,6,7,-2,3,9,8,10]
+        da=DataArrayDouble.New(vals)
+        self.assertEqual(12,da.getNumberOfTuples());
+        self.assertEqual(1,da.getNumberOfComponents());
+        for i in xrange(12):
+            self.assertAlmostEqual(da.getIJ(0,i),vals[i],13)
+            pass
+        da=DataArrayDouble.New(vals,12)
+        self.assertEqual(12,da.getNumberOfTuples());
+        self.assertEqual(1,da.getNumberOfComponents());
+        for i in xrange(12):
+            self.assertAlmostEqual(da.getIJ(0,i),vals[i],13)
+            pass
+        da=DataArrayDouble.New(vals,1,12)
+        self.assertEqual(1,da.getNumberOfTuples());
+        self.assertEqual(12,da.getNumberOfComponents());
+        for i in xrange(12):
+            self.assertAlmostEqual(da.getIJ(0,i),vals[i],13)
+            pass
+        da=DataArrayDouble.New(vals,6,2)
+        self.assertEqual(6,da.getNumberOfTuples());
+        self.assertEqual(2,da.getNumberOfComponents());
+        for i in xrange(12):
+            self.assertAlmostEqual(da.getIJ(0,i),vals[i],13)
+            pass
+        da=DataArrayDouble.New(vals,4,3)
+        self.assertEqual(4,da.getNumberOfTuples());
+        self.assertEqual(3,da.getNumberOfComponents());
+        for i in xrange(12):
+            self.assertAlmostEqual(da.getIJ(0,i),vals[i],13)
+            pass
+        self.assertRaises(InterpKernelException,DataArrayDouble.New,vals,11);
+        self.assertRaises(InterpKernelException,DataArrayDouble.New,vals,13);
+        self.assertRaises(InterpKernelException,DataArrayDouble.New,vals,5,2);
+        self.assertRaises(InterpKernelException,DataArrayDouble.New,vals,7,2);
+        pass
+
+    def testSwigDADOp6(self):
+        da=DataArrayInt.New([5,6,7,8,9,6,7,-2,3,9,8,10])
+        da.rearrange(3)
+        da2=DataArrayInt.New([5,8,10,12])
+        self.assertEqual(4,da2.getNumberOfTuples());
+        self.assertEqual(1,da2.getNumberOfComponents());
+        da3=da+da2
+        self.assertEqual(4,da3.getNumberOfTuples());
+        self.assertEqual(3,da3.getNumberOfComponents());
+        expected1=[10,11,12,16,17,14,17,8,13,21,20,22]
+        for i in xrange(12):
+            self.assertEqual(da3.getIJ(0,i),expected1[i])
+            pass
+        da3=da2+da
+        self.assertEqual(4,da3.getNumberOfTuples());
+        self.assertEqual(3,da3.getNumberOfComponents());
+        for i in xrange(12):
+            self.assertEqual(da3.getIJ(0,i),expected1[i])
+            pass
+        da3=da+DataArrayInt.New(da2.getValues())
+        # Test new API of classmethod DataArrayInt.New
+        vals=[5,6,7,8,9,6,7,-2,3,9,8,10]
+        da=DataArrayDouble.New(vals)
+        self.assertEqual(12,da.getNumberOfTuples());
+        self.assertEqual(1,da.getNumberOfComponents());
+        for i in xrange(12):
+            self.assertEqual(da.getIJ(0,i),vals[i])
+            pass
+        da=DataArrayDouble.New(vals,12)
+        self.assertEqual(12,da.getNumberOfTuples());
+        self.assertEqual(1,da.getNumberOfComponents());
+        for i in xrange(12):
+            self.assertEqual(da.getIJ(0,i),vals[i])
+            pass
+        da=DataArrayDouble.New(vals,1,12)
+        self.assertEqual(1,da.getNumberOfTuples());
+        self.assertEqual(12,da.getNumberOfComponents());
+        for i in xrange(12):
+            self.assertEqual(da.getIJ(0,i),vals[i])
+            pass
+        da=DataArrayDouble.New(vals,6,2)
+        self.assertEqual(6,da.getNumberOfTuples());
+        self.assertEqual(2,da.getNumberOfComponents());
+        for i in xrange(12):
+            self.assertEqual(da.getIJ(0,i),vals[i])
+            pass
+        da=DataArrayDouble.New(vals,4,3)
+        self.assertEqual(4,da.getNumberOfTuples());
+        self.assertEqual(3,da.getNumberOfComponents());
+        for i in xrange(12):
+            self.assertEqual(da.getIJ(0,i),vals[i])
+            pass
+        self.assertRaises(InterpKernelException,DataArrayDouble.New,vals,11);
+        self.assertRaises(InterpKernelException,DataArrayDouble.New,vals,13);
+        self.assertRaises(InterpKernelException,DataArrayDouble.New,vals,5,2);
+        self.assertRaises(InterpKernelException,DataArrayDouble.New,vals,7,2);
+        pass
+
+    def testRenumberNodesInConn1(self):
+        mesh2DCoords=[-0.3,-0.3,0., 0.2,-0.3,0., 0.7,-0.3,0., -0.3,0.2,0., 0.2,0.2,0., 0.7,0.2,0., -0.3,0.7,0., 0.2,0.7,0., 0.7,0.7,0. ]
+        mesh2DConn=[1,4,2, 4,5,2, 0,3,4,1, 6,7,4,3, 7,8,5,4]
+        mesh2D=MEDCouplingUMesh.New("mesh",2);
+        mesh2D.allocateCells(5);
+        mesh2D.insertNextCell(NORM_TRI3,3,mesh2DConn[0:3])
+        mesh2D.insertNextCell(NORM_TRI3,3,mesh2DConn[3:6])
+        mesh2D.insertNextCell(NORM_QUAD4,4,mesh2DConn[6:10])
+        mesh2D.insertNextCell(NORM_QUAD4,4,mesh2DConn[10:14])
+        mesh2D.insertNextCell(NORM_QUAD4,4,mesh2DConn[14:18])
+        mesh2D.finishInsertingCells();
+        myCoords=DataArrayDouble.New(mesh2DCoords,9,3);
+        mesh2D.setCoords(myCoords);
+        mesh2D.checkCoherency();
+        #
+        mesh3DCoords=[-0.3,-0.3,0., -0.3,0.2,0., 0.2,0.2,0., 0.2,-0.3,0., -0.3,-0.3,1., -0.3,0.2,1., 0.2,0.2,1., 0.2,-0.3,1. ]
+        mesh3DConn=[0,1,2,3,4,5,6,7]
+        mesh3D=MEDCouplingUMesh.New("mesh",3);
+        mesh3D.allocateCells(1);
+        mesh3D.insertNextCell(NORM_HEXA8,8,mesh3DConn[:])
+        mesh3D.finishInsertingCells();
+        myCoords3D=DataArrayDouble.New(mesh3DCoords,8,3);
+        mesh3D.setCoords(myCoords3D);
+        mesh3D.checkCoherency();
+        #
+        mesh3D_2=mesh3D.deepCpy();
+        mesh2D_2=mesh2D.deepCpy();
+        mesh3D_4=mesh3D.deepCpy();
+        mesh2D_4=mesh2D.deepCpy();
+        oldNbOf3DNodes=mesh3D.getNumberOfNodes();
+        renumNodes=DataArrayInt.New();
+        renumNodes.alloc(mesh2D.getNumberOfNodes(),1);
+        renumNodes.iota(oldNbOf3DNodes);
+        coo=DataArrayDouble.Aggregate(mesh3D.getCoords(),mesh2D.getCoords());
+        mesh3D.setCoords(coo);
+        mesh2D.setCoords(coo);
+        mesh2DCpy=mesh2D.deepCpy()
+        mesh2D_3=mesh2D.deepCpy();
+        mesh2D_3.shiftNodeNumbersInConn(oldNbOf3DNodes);
+        mesh2D.renumberNodesInConn(renumNodes);
+        mesh2DCpy.renumberNodesInConn(renumNodes.getValues());
+        self.assertTrue(mesh2D.isEqual(mesh2DCpy,1e-12))
+        self.assertTrue(mesh2D.isEqual(mesh2D_3,1e-12))
+        #
+        da1,da2=mesh3D.checkGeoEquivalWith(mesh3D_2,10,1e-12);
+        self.assertTrue(da1==None);
+        self.assertEqual(8,da2.getNumberOfTuples());
+        self.assertEqual(1,da2.getNumberOfComponents());
+        expected1=[8,11,12,9,4,5,6,7]
+        for i in xrange(8):
+            self.assertEqual(expected1[i],da2.getIJ(i,0));
+            pass
+        #
+        da1,da2=mesh2D.checkGeoEquivalWith(mesh2D_2,10,1e-12);
+        self.assertTrue(da1==None);
+        self.assertEqual(9,da2.getNumberOfTuples());
+        self.assertEqual(1,da2.getNumberOfComponents());
+        for i in xrange(9):
+            self.assertEqual(8+i,da2.getIJ(i,0));
+            pass
+        #
+        mesh2D_5=mesh2D_4.deepCpy();
+        mesh2D_5.translate([1.,0.,0.]);
+        meshes=[mesh3D_4,mesh2D_4,mesh2D_5];
+        MEDCouplingUMesh.PutUMeshesOnSameAggregatedCoords(meshes);
+        self.assertTrue(mesh3D_4.getCoords().getHiddenCppPointer()==mesh2D_4.getCoords().getHiddenCppPointer());
+        self.assertTrue(mesh2D_4.getCoords().getHiddenCppPointer()==mesh2D_5.getCoords().getHiddenCppPointer());
+        mesh3D_4.checkCoherency(); mesh2D_4.checkCoherency(); mesh2D_5.checkCoherency();
+        self.assertEqual(26,mesh3D_4.getNumberOfNodes());
+        self.assertEqual(3,mesh3D_4.getSpaceDimension());
+        self.assertEqual(9,mesh3D_4.getNodalConnectivity().getNumberOfTuples());
+        self.assertEqual(23,mesh2D_4.getNodalConnectivity().getNumberOfTuples());
+        self.assertEqual(23,mesh2D_5.getNodalConnectivity().getNumberOfTuples());
+        expected2=[18,0,1,2,3,4,5,6,7]
+        expected3=[3,9,12,10, 3,12,13,10, 4,8,11,12,9, 4,14,15,12,11, 4,15,16,13,12]
+        expected4=[3,18,21,19, 3,21,22,19, 4,17,20,21,18, 4,23,24,21,20, 4,24,25,22,21]
+        expected5=[-0.3,-0.3,0., -0.3,0.2,0., 0.2,0.2,0., 0.2,-0.3,0., -0.3,-0.3,1., -0.3,0.2,1., 0.2,0.2,1., 0.2,-0.3,1., -0.3,-0.3,0., 0.2,-0.3,0., 0.7,-0.3,0., -0.3,0.2,0., 0.2,0.2,0., 0.7,0.2,0., -0.3,0.7,0., 0.2,0.7,0., 0.7,0.7,0., 0.7, -0.3, 0.0, 1.2, -0.3, 0.0, 1.7, -0.3, 0.0, 0.7, 0.2, 0.0, 1.2, 0.2, 0.0, 1.7, 0.2, 0.0, 0.7, 0.7, 0.0, 1.2, 0.7, 0.0, 1.7, 0.7, 0.0]
+        self.assertEqual(expected2,mesh3D_4.getNodalConnectivity().getValues());
+        self.assertEqual(expected3,mesh2D_4.getNodalConnectivity().getValues());
+        self.assertEqual(expected4,mesh2D_5.getNodalConnectivity().getValues());
+        for i in xrange(78):
+            self.assertAlmostEqual(expected5[i],mesh3D_4.getCoords().getIJ(0,i),12);
+            pass
+        #
+        MEDCouplingUMesh.MergeNodesOnUMeshesSharingSameCoords(meshes,1e-12);
+        mesh3D_4.checkCoherency(); mesh2D_4.checkCoherency(); mesh2D_5.checkCoherency();
+        self.assertTrue(mesh3D_4.getCoords().getHiddenCppPointer()==mesh2D_4.getCoords().getHiddenCppPointer());
+        self.assertTrue(mesh2D_4.getCoords().getHiddenCppPointer()==mesh2D_5.getCoords().getHiddenCppPointer());
+        self.assertEqual(19,mesh3D_4.getNumberOfNodes());
+        self.assertEqual(3,mesh3D_4.getSpaceDimension());
+        self.assertEqual(9,mesh3D_4.getNodalConnectivity().getNumberOfTuples());
+        self.assertEqual(23,mesh2D_4.getNodalConnectivity().getNumberOfTuples());
+        self.assertEqual(23,mesh2D_5.getNodalConnectivity().getNumberOfTuples());
+        expected6=[18,0,1,2,3,4,5,6,7]
+        expected7=[3,3,2,8, 3,2,9,8, 4,0,1,2,3, 4,10,11,2,1, 4,11,12,9,2]
+        expected8=[3,13,15,14, 3,15,16,14, 4,8,9,15,13, 4,12,17,15,9, 4,17,18,16,15]
+        expected9=[-0.3, -0.3, 0., -0.3, 0.2, 0., 0.2, 0.2, 0., 0.2, -0.3, 0., -0.3, -0.3, 1., -0.3, 0.2, 1.,
+                    0.2, 0.2, 1., 0.2, -0.3, 1., 0.7, -0.3, 0., 0.7, 0.2, 0., -0.3, 0.7, 0., 0.2, 0.7, 0.,
+                    0.7, 0.7, 0., 1.2, -0.3, 0., 1.7, -0.3, 0., 1.2, 0.2, 0., 1.7, 0.2, 0., 1.2, 0.7, 0., 1.7, 0.7, 0.]
+        self.assertEqual(expected6,mesh3D_4.getNodalConnectivity().getValues());
+        self.assertEqual(expected7,mesh2D_4.getNodalConnectivity().getValues());
+        self.assertEqual(expected8,mesh2D_5.getNodalConnectivity().getValues());
+        for i in xrange(57):
+            self.assertAlmostEqual(expected9[i],mesh3D_4.getCoords().getIJ(0,i),1e-12);
+            pass
+        #
+        pass
+    
+    def testComputeNeighborsOfCells1(self):
+        m=MEDCouplingDataForTest.build2DTargetMesh_1();
+        d1,d2=m.computeNeighborsOfCells();
+        self.assertEqual(6,d2.getNumberOfTuples());
+        self.assertEqual(10,d1.getNumberOfTuples());
+        expected1=[0,2,4,6,8,10]
+        expected2=[3,1,0,2,4,1,4,0,2,3]
+        self.assertEqual(expected1,d2.getValues());
+        self.assertEqual(expected2,d1.getValues());
+        pass
+
+    def testCheckButterflyCellsBug1(self):
+        mesh2DCoords=[323.85,120.983748908684,317.5,131.982271536747,336.55,120.983748908686,330.2,131.982271536751,323.85,142.98079416481]
+        mesh2DConn=[4,1,0,2,3]
+        mesh2D=MEDCouplingUMesh.New("mesh",2);
+        mesh2D.allocateCells(1);
+        mesh2D.insertNextCell(NORM_POLYGON,5,mesh2DConn[0:5])
+        mesh2D.finishInsertingCells();
+        myCoords=DataArrayDouble.New(mesh2DCoords,5,2);
+        mesh2D.setCoords(myCoords);
+        mesh2D.checkCoherency();
+        #
+        v=mesh2D.checkButterflyCells();
+        self.assertTrue(v.empty());
+        pass
+
+    def testDataArrayIntRange1(self):
+        d=DataArrayInt.Range(2,17,7);
+        expected1=[2,9,16]
+        self.assertEqual(3,d.getNumberOfTuples());
+        self.assertEqual(1,d.getNumberOfComponents());
+        self.assertEqual(expected1,d.getValues());
+        #
+        d=DataArrayInt.Range(2,23,7);
+        self.assertEqual(3,d.getNumberOfTuples());
+        self.assertEqual(1,d.getNumberOfComponents());
+        self.assertEqual(expected1,d.getValues());
+        #
+        d=DataArrayInt.Range(2,24,7);
+        expected2=[2,9,16,23]
+        self.assertEqual(4,d.getNumberOfTuples());
+        self.assertEqual(1,d.getNumberOfComponents());
+        self.assertEqual(expected2,d.getValues());
+        #
+        d=DataArrayInt.Range(24,2,-7);
+        expected3=[24,17,10,3]
+        self.assertEqual(4,d.getNumberOfTuples());
+        self.assertEqual(1,d.getNumberOfComponents());
+        self.assertEqual(expected3,d.getValues());
+        #
+        d=DataArrayInt.Range(23,2,-7);
+        expected4=[23,16,9]
+        self.assertEqual(3,d.getNumberOfTuples());
+        self.assertEqual(1,d.getNumberOfComponents());
+        self.assertEqual(expected4,d.getValues());
+        #
+        d=DataArrayInt.Range(23,22,-7);
+        self.assertEqual(1,d.getNumberOfTuples());
+        self.assertEqual(1,d.getNumberOfComponents());
+        self.assertEqual(23,d.getIJ(0,0));
+        #
+        d=DataArrayInt.Range(22,23,7);
+        self.assertEqual(1,d.getNumberOfTuples());
+        self.assertEqual(1,d.getNumberOfComponents());
+        self.assertEqual(22,d.getIJ(0,0));
+        #
+        d=DataArrayInt.Range(22,22,7);
+        self.assertEqual(0,d.getNumberOfTuples());
+        self.assertEqual(1,d.getNumberOfComponents());
+        #
+        d=DataArrayInt.Range(22,22,-7);
+        self.assertEqual(0,d.getNumberOfTuples());
+        self.assertEqual(1,d.getNumberOfComponents());
+        #
+        self.assertRaises(InterpKernelException,DataArrayInt.Range,22,23,-7);
+        self.assertRaises(InterpKernelException,DataArrayInt.Range,23,22,7);
+        self.assertRaises(InterpKernelException,DataArrayInt.Range,23,22,0);
+        self.assertRaises(InterpKernelException,DataArrayInt.Range,22,23,0);
+        pass
+
+    def testSwigUMeshGetItem1(self):
+        m=MEDCouplingDataForTest.build2DTargetMesh_1();
+        subMesh=m.buildPartOfMySelf([1,3],True);
+        self.assertTrue(isinstance(subMesh,MEDCouplingUMesh))
+        m1=m[[1,3]]
+        self.assertTrue(isinstance(m1,MEDCouplingUMesh))
+        m2=m[(1,3)]
+        self.assertTrue(isinstance(m2,MEDCouplingUMesh))
+        m3=m[1::2]
+        self.assertTrue(isinstance(m3,MEDCouplingUMesh))
+        m4=m[DataArrayInt.New([1,3])]
+        m5_1=m[1]
+        self.assertTrue(isinstance(m5_1,MEDCouplingUMesh))
+        m5_2=m[3]
+        self.assertTrue(isinstance(m5_2,MEDCouplingUMesh))
+        m5=MEDCouplingUMesh.MergeUMeshesOnSameCoords([m5_1,m5_2]);
+        m5.setName(subMesh.getName())
+        self.assertTrue(isinstance(m4,MEDCouplingUMesh))
+        self.assertTrue(subMesh.isEqual(m1,1e-12))
+        self.assertTrue(subMesh.isEqual(m2,1e-12))
+        self.assertTrue(subMesh.isEqual(m3,1e-12))
+        self.assertTrue(subMesh.isEqual(m4,1e-12))
+        self.assertTrue(subMesh.isEqual(m5,1e-12))
+        self.assertRaises(InterpKernelException,m.buildPartOfMySelf,[1,5],True);
+        pass
     
+    def testSwigGetItem3(self):
+        da=DataArrayInt.New([4,5,6])
+        self.assertEqual(5,da[1])
+        self.assertRaises(InterpKernelException,da.__getitem__,-1)
+        self.assertRaises(InterpKernelException,da.__getitem__,3)
+        da=DataArrayInt.New([4,5,6,7,8,9],2,3)
+        self.assertEqual(9,da[1,2])
+        da=DataArrayDouble.New([4.1,5.2,6.3])
+        self.assertAlmostEqual(5.2,da[1],12)
+        self.assertRaises(InterpKernelException,da.__getitem__,-1)
+        self.assertRaises(InterpKernelException,da.__getitem__,3)
+        da=DataArrayDouble.New([4.12,5.12,6.12,7.12,8.12,9.12],2,3)
+        self.assertAlmostEqual(9.12,da[1,2],12)
+        pass
+
+    def testSwigDADISub1(self):
+        mesh3D,mesh2D=MEDCouplingDataForTest.build3DExtrudedUMesh_1();
+        bary=mesh3D.getBarycenterAndOwner()
+        bary=bary[:,:2]
+        pts=bary.getDifferentValues(1e-12)
+        expected=[[0,6,12],[1,7,13],[2,8,14],[3,9,15],[4,10,16],[5,11,17]]
+        for pos,pt in enumerate(pts):
+            bary2=bary[:,:2]
+            bary2[:]-=pt
+            norm=bary2.magnitude()
+            self.assertEqual(expected[pos],norm.getIdsInRange(-1.,1e-5).getValues())
+            pass
+        expected2=[[3.,54.],[-141.,180.],[21.,54.],[39.,72.],[-15.,90.],[21.,90.]]
+        for pos,pt in enumerate(pts):
+            bary2=bary[:,:2]
+            bary2[:]+=pt
+            self.assertAlmostEqual(expected2[pos][0],bary2.accumulate()[0],12);
+            self.assertAlmostEqual(expected2[pos][1],bary2.accumulate()[1],12);
+            pass
+        expected3=[[-3.,22.5],[45.,337.5],[-9., 22.5],[-15.,67.5],[3.,112.5],[-9.,112.5]]
+        for pos,pt in enumerate(pts):
+            bary2=bary[:,:2]
+            bary2[:]*=pt
+            self.assertAlmostEqual(expected3[pos][0],bary2.accumulate()[0],12);
+            self.assertAlmostEqual(expected3[pos][1],bary2.accumulate()[1],12);
+            pass
+        expected4=[[-12.,90.],[0.8,6.],[-4,90.],[-2.4,30.],[12.,18],[-4,18.]]
+        for pos,pt in enumerate(pts):
+            bary2=bary[:,:2]
+            bary2[:]/=pt
+            self.assertAlmostEqual(expected4[pos][0],bary2.accumulate()[0],12);
+            self.assertAlmostEqual(expected4[pos][1],bary2.accumulate()[1],12);
+            pass
+        #
+        d=DataArrayInt.New([1,2,0,1,0,2],3,2)
+        e=DataArrayInt.New([1,11,101,2,12,102,3,13,103,4,14,104],4,3)
+        expected5=[[1,11,101,77,77,77,77,77,77,4,14,104],[77,77,77,77,77,77,3,13,103,4,14,104],[77,77,77,2,12,102,77,77,77,4,14,104]]
+        expected6=[[1,77,77,2,77,77,3,77,77,4,77,77],[77,77,101,77,77,102,77,77,103,77,77,104],[77,11,77,77,12,77,77,13,77,77,14,77]]
+        for pos,tup in enumerate(d):
+            f=e[:]
+            self.assertTrue(isinstance(f,DataArrayInt))
+            f[tup]=77
+            self.assertEqual(expected5[pos],f.getValues())
+            self.assertEqual(6*[77],f[tup].getValues())
+            f=e[:]
+            f[:,tup]=77
+            self.assertEqual(expected6[pos],f.getValues())
+            self.assertEqual(8*[77],f[:,tup].getValues())
+            pass
+        #
+        e=e.convertToDblArr()
+        for pos,tup in enumerate(d):
+            f=e[:]
+            self.assertTrue(isinstance(f,DataArrayDouble))
+            f[tup]=77.
+            self.assertEqual(expected5[pos],f.convertToIntArr().getValues())
+            self.assertEqual(6*[77],f[tup].convertToIntArr().getValues())
+            f=e[:]
+            f[:,tup]=77.
+            self.assertEqual(expected6[pos],f.convertToIntArr().getValues())
+            self.assertEqual(8*[77],f[:,tup].convertToIntArr().getValues())
+            pass
+        pass
+
+    def testDataArrayDoubleGetMinMaxPerComponent1(self):
+        values1=[1.,2.,3.,-0.9,2.1,3.,1.3,1.7,3.,1.,1.8,3.]
+        d1=DataArrayDouble.New();
+        self.assertRaises(InterpKernelException,d1.getMinMaxPerComponent)
+        d1=DataArrayDouble.New(values1,4,3);
+        res=d1.getMinMaxPerComponent();
+        self.assertTrue(isinstance(res,list))
+        self.assertEqual(3,len(res))
+        for i in xrange(3):
+            self.assertTrue(isinstance(res[i],tuple))
+            self.assertEqual(2,len(res[i]))
+            pass
+        expected1=[-0.9,1.3,1.7,2.1,3.,3.]
+        for i in xrange(6):
+            self.assertAlmostEqual(expected1[i],res[i/2][i%2],14)
+            pass
+        #
+        d1.rearrange(2);
+        res=d1.getMinMaxPerComponent();
+        self.assertTrue(isinstance(res,list))
+        self.assertEqual(2,len(res))
+        for i in xrange(2):
+            self.assertTrue(isinstance(res[i],tuple))
+            self.assertEqual(2,len(res[i]))
+            pass
+        expected2=[1.,3.,-0.9,3.]
+        for i in xrange(4):
+            self.assertAlmostEqual(expected2[i],res[i/2][i%2],14)
+            pass
+        #
+        d1.rearrange(1);
+        res=d1.getMinMaxPerComponent();
+        self.assertTrue(isinstance(res,list))
+        self.assertEqual(1,len(res))
+        for i in xrange(1):
+            self.assertTrue(isinstance(res[i],tuple))
+            self.assertEqual(2,len(res[i]))
+            pass
+        expected3=[-0.9,3.]
+        for i in xrange(2):
+            self.assertAlmostEqual(expected3[i],res[i/2][i%2],14)
+            pass
+        pass
+
+    def testDataArrayIntGetHashCode1(self):
+        d1=DataArrayInt.New(range(3545))
+        d2=DataArrayInt.New(range(3545))
+        self.assertEqual(d2.getHashCode(),d1.getHashCode())
+        self.assertEqual(232341068,d1.getHashCode())
+        d1[886]=6
+        self.assertEqual(232340188,d1.getHashCode())
+        pass
+
+    def testZipConnectivityPol1(self):
+        m1=MEDCouplingDataForTest.build2DTargetMesh_1();
+        cells1=[2,3,4]
+        m2_1=m1.buildPartOfMySelf(cells1,True);
+        m2=m2_1
+        self.assertTrue(isinstance(m2,MEDCouplingUMesh))
+        # no permutation policy 0
+        isOk,arr=m1.areCellsIncludedIn(m2,0)
+        self.assertTrue(isOk);
+        self.assertEqual(3,arr.getNumberOfTuples());
+        self.assertEqual(1,arr.getNumberOfComponents());
+        self.assertEqual(cells1,arr.getValues())
+        # no permutation policy 1
+        isOk,arr=m1.areCellsIncludedIn(m2,1)
+        self.assertTrue(isOk);
+        self.assertEqual(3,arr.getNumberOfTuples());
+        self.assertEqual(1,arr.getNumberOfComponents());
+        self.assertEqual(cells1,arr.getValues())
+        # no permutation policy 2
+        isOk,arr=m1.areCellsIncludedIn(m2,2)
+        self.assertTrue(isOk);
+        self.assertEqual(3,arr.getNumberOfTuples());
+        self.assertEqual(1,arr.getNumberOfComponents());
+        self.assertEqual(cells1,arr.getValues())
+        # some modification into m2
+        modif1=[2,4,5]
+        m2.getNodalConnectivity()[1:4]=modif1
+        #policy 0 fails because cell0 in m2 has same orientation be not same connectivity
+        expected1=[5,3,4]
+        isOk,arr=m1.areCellsIncludedIn(m2,0)
+        self.assertTrue(not isOk);
+        self.assertEqual(3,arr.getNumberOfTuples());
+        self.assertEqual(1,arr.getNumberOfComponents());
+        self.assertEqual(expected1,arr.getValues())
+        #policy 1 succeeds because cell0 in m2 has not exactly the same conn
+        isOk,arr=m1.areCellsIncludedIn(m2,1)
+        self.assertTrue(isOk);
+        self.assertEqual(3,arr.getNumberOfTuples());
+        self.assertEqual(1,arr.getNumberOfComponents());
+        self.assertEqual(cells1,arr.getValues())
+        #policy 2 succeeds because cell0 in m2 has same nodes in connectivity
+        isOk,arr=m1.areCellsIncludedIn(m2,2)
+        self.assertTrue(isOk);
+        self.assertEqual(3,arr.getNumberOfTuples());
+        self.assertEqual(1,arr.getNumberOfComponents());
+        self.assertEqual(cells1,arr.getValues())
+        #some new modification into m2
+        modif2=[2,5,4]
+        m2.getNodalConnectivity()[1:4]=modif2
+        #policy 0 fails because cell0 in m2 has not exactly the same conn
+        isOk,arr=m1.areCellsIncludedIn(m2,0)
+        self.assertTrue(not isOk);
+        self.assertEqual(3,arr.getNumberOfTuples());
+        self.assertEqual(1,arr.getNumberOfComponents());
+        self.assertEqual(expected1,arr.getValues())
+        #policy 1 fails too because cell0 in m2 has not same orientation
+        isOk,arr=m1.areCellsIncludedIn(m2,1)
+        self.assertTrue(not isOk);
+        self.assertEqual(3,arr.getNumberOfTuples());
+        self.assertEqual(1,arr.getNumberOfComponents());
+        self.assertEqual(expected1,arr.getValues())
+        #policy 2 succeeds because cell0 in m2 has same nodes in connectivity
+        isOk,arr=m1.areCellsIncludedIn(m2,2)
+        self.assertTrue(isOk);
+        self.assertEqual(3,arr.getNumberOfTuples());
+        self.assertEqual(1,arr.getNumberOfComponents());
+        self.assertEqual(cells1,arr.getValues())
+        # Now 1D
+        cells2=[3,2]
+        m1=MEDCouplingDataForTest.build1DSourceMesh_2();
+        m2_1=m1.buildPartOfMySelf(cells2,True);
+        m2=m2_1
+        self.assertTrue(isinstance(m2,MEDCouplingUMesh))
+        # no permutation policy 0
+        isOk,arr=m1.areCellsIncludedIn(m2,0)
+        self.assertTrue(isOk);
+        self.assertEqual(2,arr.getNumberOfTuples());
+        self.assertEqual(1,arr.getNumberOfComponents());
+        self.assertEqual(cells2,arr.getValues())
+        # no permutation policy 1
+        isOk,arr=m1.areCellsIncludedIn(m2,1)
+        self.assertTrue(isOk);
+        self.assertEqual(2,arr.getNumberOfTuples());
+        self.assertEqual(1,arr.getNumberOfComponents());
+        self.assertEqual(cells2,arr.getValues())
+        # no permutation policy 2
+        isOk,arr=m1.areCellsIncludedIn(m2,2)
+        self.assertTrue(isOk);
+        self.assertEqual(2,arr.getNumberOfTuples());
+        self.assertEqual(1,arr.getNumberOfComponents());
+        self.assertEqual(cells2,arr.getValues())
+        # some modification into m2
+        modif3=[4,3]
+        m2.getNodalConnectivity()[1:3]=modif3
+        #policy 0 fails because cell0 in m2 has not exactly the same conn
+        expected2=[4,2]
+        isOk,arr=m1.areCellsIncludedIn(m2,0)
+        self.assertTrue(not isOk);
+        self.assertEqual(2,arr.getNumberOfTuples());
+        self.assertEqual(1,arr.getNumberOfComponents());
+        self.assertEqual(expected2,arr.getValues())
+        #policy 1 fails too because cell0 in m2 has not same orientation
+        isOk,arr=m1.areCellsIncludedIn(m2,1)
+        self.assertTrue(not isOk);
+        self.assertEqual(2,arr.getNumberOfTuples());
+        self.assertEqual(1,arr.getNumberOfComponents());
+        self.assertEqual(expected2,arr.getValues())
+        #policy 2 succeeds because cell0 in m2 has same nodes in connectivity
+        isOk,arr=m1.areCellsIncludedIn(m2,2)
+        self.assertTrue(isOk);
+        self.assertEqual(2,arr.getNumberOfTuples());
+        self.assertEqual(1,arr.getNumberOfComponents());
+        self.assertEqual(cells2,arr.getValues())
+        pass
+        
     def setUp(self):
         pass
     pass
index 8c4c197b240c51c171ce2b7291bf5aadf4ad0054..1c0bab110262438d8dcb98b9a5b0185f3ddd23df 100644 (file)
@@ -1,5 +1,5 @@
 #  -*- coding: iso-8859-1 -*-
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
@@ -278,6 +278,18 @@ class MEDCouplingDataForTest:
         myCoords.setValues(targetCoords,9,2);
         targetMesh.setCoords(myCoords);
         return targetMesh;
+    
+    def build1DSourceMesh_2(cls):
+        ret=MEDCouplingUMesh.New("1DSourceMesh",1);
+        ret.allocateCells(4);
+        conn=[0,1,2,3,1,2,3,4]
+        for i in xrange(4):
+            ret.insertNextCell(NORM_SEG2,2,conn[2*i:2*i+2]);
+            pass
+        ret.finishInsertingCells();
+        myCoords=DataArrayDouble.New([0.3,0.7,0.9,1.0,1.12],5,1);
+        ret.setCoords(myCoords);
+        return ret
 
     def build1DTargetMesh_3(cls):
         ret=MEDCouplingUMesh.New("1DMesh_3",1);
@@ -575,6 +587,7 @@ class MEDCouplingDataForTest:
     build3DTargetMeshMergeNode_1=classmethod(build3DTargetMeshMergeNode_1)
     build2DTargetMeshMerged_1=classmethod(build2DTargetMeshMerged_1)
     build2DTargetMesh_2=classmethod(build2DTargetMesh_2)
+    build1DSourceMesh_2=classmethod(build1DSourceMesh_2)
     build1DTargetMesh_3=classmethod(build1DTargetMesh_3)
     build2DCurveTargetMesh_3=classmethod(build2DCurveTargetMesh_3)
     build2DTargetMesh_3=classmethod(build2DTargetMesh_3)
index ad328820cc8b10ae291d66b9368e68f4741cb7c9..b127750ac5d7c41d56f6941270de71687fe64499 100644 (file)
@@ -1,5 +1,5 @@
 #  -*- coding: iso-8859-1 -*-
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index 650ff55bd3040ff681d547740eddd62f24be65c6..40642506726d16fc99dc3407bb66147b32fcf235 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
@@ -52,6 +52,7 @@ namespace ParaMEDMEM
       int prepare(const MEDCouplingMesh *srcMesh, const MEDCouplingMesh *targetMesh, const char *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);
index a1561e7b4ed7f88e11824e99c710cefc6aa89fdf..1e7727e3fec1599f81d597447f334ccdba8d5cf0 100644 (file)
@@ -1,5 +1,5 @@
 #  -*- coding: iso-8859-1 -*-
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
@@ -80,6 +80,48 @@ class MEDCouplingBasicsTest(unittest.TestCase):
             self.assertAlmostEqual(valuesExpected[i0],values[i0],12);
             pass
         pass
+
+    def testPartialTransfer1(self):
+        sourceMesh=self.build2DSourceMesh_1();
+        targetMesh=self.build2DTargetMesh_3();
+        #
+        remapper=MEDCouplingRemapper();
+        remapper.setPrecision(1e-12);
+        remapper.setIntersectionType(Triangulation);
+        srcFt=MEDCouplingFieldTemplate.New(ON_CELLS);
+        trgFt=MEDCouplingFieldTemplate.New(ON_CELLS);
+        srcFt.setMesh(sourceMesh);
+        trgFt.setMesh(targetMesh);
+        self.assertEqual(1,remapper.prepareEx(srcFt,trgFt));
+        srcField=MEDCouplingFieldDouble.New(ON_CELLS);
+        srcField.setNature(ConservativeVolumic);
+        srcField.setMesh(sourceMesh);
+        array=DataArrayDouble.New();
+        ptr=sourceMesh.getNumberOfCells()*[None]
+        for i in xrange(sourceMesh.getNumberOfCells()):
+            ptr[i]=float(i+7);
+            pass
+        array.setValues(ptr,sourceMesh.getNumberOfCells(),1);
+        srcField.setArray(array);
+        trgfield=MEDCouplingFieldDouble.New(ON_CELLS);
+        trgfield.setNature(ConservativeVolumic);
+        trgfield.setMesh(targetMesh);
+        array=DataArrayDouble.New();
+        ptr=targetMesh.getNumberOfCells()*[None]
+        for i in xrange(targetMesh.getNumberOfCells()):
+            ptr[i]=4.220173;
+            pass
+        array.setValues(ptr,targetMesh.getNumberOfCells(),1);
+        trgfield.setArray(array);
+        remapper.partialTransfer(srcField,trgfield);
+        values=trgfield.getArray().getValues();
+        valuesExpected=[7.75, 7.0625, 4.220173,8.0]
+        self.assertEqual(4,trgfield.getArray().getNumberOfTuples());
+        self.assertEqual(1,trgfield.getArray().getNumberOfComponents());
+        for i0 in xrange(4):
+            self.assertAlmostEqual(valuesExpected[i0],values[i0],12);
+            pass
+        pass
     
     def build2DSourceMesh_1(self):
         sourceCoords=[-0.3,-0.3, 0.7,-0.3, -0.3,0.7, 0.7,0.7]
index f116a9945ddf32ab20303118a4316983af599d3e..419f82f88ec524c271b220a57b25c8e06356842d 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
@@ -297,11 +297,17 @@ static void convertPyToNewIntArr3(PyObject *pyLi, std::vector<int>& arr) throw(I
     }
 }
 
-static void fillArrayWithPyListInt(PyObject *pyLi, int *arrToFill, int sizeOfArray, int dftVal) throw(INTERP_KERNEL::Exception)
+static void fillArrayWithPyListInt(PyObject *pyLi, int *arrToFill, int sizeOfArray, int dftVal, bool chckSize) throw(INTERP_KERNEL::Exception)
 {
   if(PyList_Check(pyLi))
     {
       int size=PyList_Size(pyLi);
+      if(chckSize)
+        if(size!=sizeOfArray)
+          {
+            std::ostringstream oss; oss << "fillArrayWithPyListInt : List expected to be of size " << sizeOfArray << " but the size is " << size << " !";
+            throw INTERP_KERNEL::Exception(oss.str().c_str());
+          }
       for(int i=0;i<size;i++)
         {
           PyObject *o=PyList_GetItem(pyLi,i);
@@ -312,11 +318,7 @@ static void fillArrayWithPyListInt(PyObject *pyLi, int *arrToFill, int sizeOfArr
                 arrToFill[i]=val;
             }
           else
-            {
-              const char msg[]="list must contain integers only";
-              PyErr_SetString(PyExc_TypeError,msg);
-              throw INTERP_KERNEL::Exception(msg);
-            }
+            throw INTERP_KERNEL::Exception("fillArrayWithPyListInt : List must contain integers only !");
         }
       for(int i=size;i<sizeOfArray;i++)
         arrToFill[i]=dftVal;
@@ -326,6 +328,12 @@ static void fillArrayWithPyListInt(PyObject *pyLi, int *arrToFill, int sizeOfArr
   else if(PyTuple_Check(pyLi))
     {
       int size=PyTuple_Size(pyLi);
+      if(chckSize)
+        if(size!=sizeOfArray)
+          {
+            std::ostringstream oss; oss << "fillArrayWithPyListInt : Tuple expected to be of size " << sizeOfArray << " but the size is " << size << " !";
+            throw INTERP_KERNEL::Exception(oss.str().c_str());
+          }
       for(int i=0;i<size;i++)
         {
           PyObject *o=PyTuple_GetItem(pyLi,i);
@@ -450,11 +458,17 @@ static double *convertPyToNewDblArr2(PyObject *pyLi, int *size) throw(INTERP_KER
     }
 }
 
-static void fillArrayWithPyListDbl(PyObject *pyLi, double *arrToFill, int sizeOfArray, double dftVal) throw(INTERP_KERNEL::Exception)
+static void fillArrayWithPyListDbl(PyObject *pyLi, double *arrToFill, int sizeOfArray, double dftVal, bool chckSize) throw(INTERP_KERNEL::Exception)
 {
   if(PyList_Check(pyLi))
     {
       int size=PyList_Size(pyLi);
+      if(chckSize)
+        if(size!=sizeOfArray)
+          {
+            std::ostringstream oss; oss << "fillArrayWithPyListDbl : List expected to be of size " << sizeOfArray << " but the size is " << size << " !";
+            throw INTERP_KERNEL::Exception(oss.str().c_str());
+          }
       for(int i=0;i<size;i++)
         {
           PyObject *o=PyList_GetItem(pyLi,i);
@@ -485,6 +499,12 @@ static void fillArrayWithPyListDbl(PyObject *pyLi, double *arrToFill, int sizeOf
   else if(PyTuple_Check(pyLi))
     {
       int size=PyTuple_Size(pyLi);
+      if(chckSize)
+        if(size!=sizeOfArray)
+          {
+            std::ostringstream oss; oss << "fillArrayWithPyListDbl : Tuple expected to be of size " << sizeOfArray << " but the size is " << size << " !";
+            throw INTERP_KERNEL::Exception(oss.str().c_str());
+          }
       for(int i=0;i<size;i++)
         {
           PyObject *o=PyTuple_GetItem(pyLi,i);
@@ -531,7 +551,7 @@ void convertPyObjToVecUMeshesCst(PyObject *ms, std::vector<const ParaMEDMEM::MED
           int status=SWIG_ConvertPtr(obj,&argp,SWIGTYPE_p_ParaMEDMEM__MEDCouplingUMesh,0|0);
           if(!SWIG_IsOK(status))
             {
-              const char msg[]="list must contain only MEDCouplingUMesh";
+              const char msg[]="list must contain only instance of MEDCouplingUMesh";
               PyErr_SetString(PyExc_TypeError,msg);
               throw INTERP_KERNEL::Exception(msg);
             }
@@ -547,6 +567,64 @@ void convertPyObjToVecUMeshesCst(PyObject *ms, std::vector<const ParaMEDMEM::MED
     }
 }
 
+void convertPyObjToVecUMeshes(PyObject *ms, std::vector<ParaMEDMEM::MEDCouplingUMesh *>& v) throw(INTERP_KERNEL::Exception)
+{
+  if(PyList_Check(ms))
+    {
+      int size=PyList_Size(ms);
+      v.resize(size);
+      for(int i=0;i<size;i++)
+        {
+          PyObject *obj=PyList_GetItem(ms,i);
+          void *argp;
+          int status=SWIG_ConvertPtr(obj,&argp,SWIGTYPE_p_ParaMEDMEM__MEDCouplingUMesh,0|0);
+          if(!SWIG_IsOK(status))
+            {
+              const char msg[]="list must contain only instance of MEDCouplingUMesh";
+              PyErr_SetString(PyExc_TypeError,msg);
+              throw INTERP_KERNEL::Exception(msg);
+            }
+          ParaMEDMEM::MEDCouplingUMesh *arg=reinterpret_cast< ParaMEDMEM::MEDCouplingUMesh * >(argp);
+          v[i]=arg;
+        }
+    }
+  else
+    {
+      const char msg[]="convertPyObjToVecUMeshes : not a list";
+      PyErr_SetString(PyExc_TypeError,msg);
+      throw INTERP_KERNEL::Exception(msg);
+    }
+}
+
+void convertPyObjToVecMeshesCst(PyObject *ms, std::vector<const ParaMEDMEM::MEDCouplingMesh *>& v) throw(INTERP_KERNEL::Exception)
+{
+  if(PyList_Check(ms))
+    {
+      int size=PyList_Size(ms);
+      v.resize(size);
+      for(int i=0;i<size;i++)
+        {
+          PyObject *obj=PyList_GetItem(ms,i);
+          void *argp;
+          int status=SWIG_ConvertPtr(obj,&argp,SWIGTYPE_p_ParaMEDMEM__MEDCouplingMesh,0|0);
+          if(!SWIG_IsOK(status))
+            {
+              const char msg[]="list must contain only instance of MEDCouplingMesh";
+              PyErr_SetString(PyExc_TypeError,msg);
+              throw INTERP_KERNEL::Exception(msg);
+            }
+          const ParaMEDMEM::MEDCouplingMesh *arg=reinterpret_cast< const ParaMEDMEM::MEDCouplingMesh * >(argp);
+          v[i]=arg;
+        }
+    }
+  else
+    {
+      const char msg[]="convertPyObjToVecUMeshesCst : not a list";
+      PyErr_SetString(PyExc_TypeError,msg);
+      throw INTERP_KERNEL::Exception(msg);
+    }
+}
+
 void convertPyObjToVecDataArrayDblCst(PyObject *ms, std::vector<const ParaMEDMEM::DataArrayDouble *>& v) throw(INTERP_KERNEL::Exception)
 {
   if(PyList_Check(ms))
@@ -589,7 +667,7 @@ void convertPyObjToVecFieldDblCst(PyObject *ms, std::vector<const ParaMEDMEM::ME
           int status=SWIG_ConvertPtr(obj,&argp,SWIGTYPE_p_ParaMEDMEM__MEDCouplingFieldDouble,0|0);
           if(!SWIG_IsOK(status))
             {
-              const char msg[]="list must contain only MEDCouplingFieldDouble";
+              const char msg[]="list must contain only instance of MEDCouplingFieldDouble";
               PyErr_SetString(PyExc_TypeError,msg);
               throw INTERP_KERNEL::Exception(msg);
             }
@@ -618,7 +696,7 @@ void convertPyObjToVecDataArrayIntCst(PyObject *ms, std::vector<const ParaMEDMEM
           int status=SWIG_ConvertPtr(obj,&argp,SWIGTYPE_p_ParaMEDMEM__DataArrayInt,0|0);
           if(!SWIG_IsOK(status))
             {
-              const char msg[]="list must contain only DataArrayInt";
+              const char msg[]="list must contain only instance of DataArrayInt";
               PyErr_SetString(PyExc_TypeError,msg);
               throw INTERP_KERNEL::Exception(msg);
             }
@@ -639,10 +717,11 @@ void convertPyObjToVecDataArrayIntCst(PyObject *ms, std::vector<const ParaMEDMEM
  * if python list[int] -> cpp vector<int> sw=2
  * if python tuple[int] -> cpp vector<int> sw=2
  * if python DataArrayInt -> cpp DataArrayInt sw=3
+ * if python DataArrayIntTuple -> cpp DataArrayIntTuple sw=4
  *
  * switch between (int,vector<int>,DataArrayInt)
  */
-static void convertObjToPossibleCpp1(PyObject *value, int& sw, int& iTyypp, std::vector<int>& stdvecTyypp, ParaMEDMEM::DataArrayInt *& daIntTyypp) throw(INTERP_KERNEL::Exception)
+static void convertObjToPossibleCpp1(PyObject *value, int& sw, int& iTyypp, std::vector<int>& stdvecTyypp, ParaMEDMEM::DataArrayInt *& daIntTyypp, ParaMEDMEM::DataArrayIntTuple *&daIntTuple) throw(INTERP_KERNEL::Exception)
 {
   sw=-1;
   if(PyInt_Check(value))
@@ -689,10 +768,20 @@ static void convertObjToPossibleCpp1(PyObject *value, int& sw, int& iTyypp, std:
     }
   void *argp;
   int status=SWIG_ConvertPtr(value,&argp,SWIGTYPE_p_ParaMEDMEM__DataArrayInt,0|0);
-  if(!SWIG_IsOK(status))
-    throw INTERP_KERNEL::Exception("4 types accepted : integer, tuple of integer, list of integer, DataArrayInt");
-  daIntTyypp=reinterpret_cast< ParaMEDMEM::DataArrayInt * >(argp);
-  sw=3;
+  if(SWIG_IsOK(status))
+    {
+      daIntTyypp=reinterpret_cast< ParaMEDMEM::DataArrayInt * >(argp);
+      sw=3;
+      return;
+    }
+  status=SWIG_ConvertPtr(value,&argp,SWIGTYPE_p_ParaMEDMEM__DataArrayIntTuple,0|0);
+  if(SWIG_IsOK(status))
+    {  
+      daIntTuple=reinterpret_cast< ParaMEDMEM::DataArrayIntTuple * >(argp);
+      sw=4;
+      return ;
+    }
+  throw INTERP_KERNEL::Exception("5 types accepted : integer, tuple of integer, list of integer, DataArrayInt, DataArrayIntTuple");
 }
 
 /*!
@@ -854,6 +943,7 @@ static void convertObjToPossibleCpp44(PyObject *value, int& sw, double& iTyypp,
  */
 static void convertObjToPossibleCpp2(PyObject *value, int nbelem, int& sw, int& iTyypp, std::vector<int>& stdvecTyypp, std::pair<int, std::pair<int,int> >& p, ParaMEDMEM::DataArrayInt *& daIntTyypp) throw(INTERP_KERNEL::Exception)
 {
+  const char *msg="5 types accepted : integer, tuple of integer, list of integer, slice, DataArrayInt, DataArrayIntTuple";
   sw=-1;
   if(PyInt_Check(value))
     {
@@ -914,10 +1004,32 @@ static void convertObjToPossibleCpp2(PyObject *value, int nbelem, int& sw, int&
     }
   void *argp;
   int status=SWIG_ConvertPtr(value,&argp,SWIGTYPE_p_ParaMEDMEM__DataArrayInt,0|0);
-  if(!SWIG_IsOK(status))
-    throw INTERP_KERNEL::Exception("4 types accepted : integer, tuple of integer, list of integer, slice, DataArrayInt");
-  daIntTyypp=reinterpret_cast< ParaMEDMEM::DataArrayInt * >(argp);
-  sw=4;
+  if(SWIG_IsOK(status))
+    {
+      daIntTyypp=reinterpret_cast< ParaMEDMEM::DataArrayInt * >(argp);
+      if(!daIntTyypp)
+        {
+          std::ostringstream oss; oss << msg << " Instance in null !";
+          throw INTERP_KERNEL::Exception(oss.str().c_str());
+        }
+      sw=4;
+      return ;
+    }
+  status=SWIG_ConvertPtr(value,&argp,SWIGTYPE_p_ParaMEDMEM__DataArrayIntTuple,0|0);;
+  if(SWIG_IsOK(status))
+    {
+      ParaMEDMEM::DataArrayIntTuple *tmp=reinterpret_cast< ParaMEDMEM::DataArrayIntTuple * >(argp);
+      if(!tmp)
+        {
+          std::ostringstream oss; oss << msg << " Instance in null !";
+          throw INTERP_KERNEL::Exception(oss.str().c_str());
+        }
+      stdvecTyypp.resize(tmp->getNumberOfCompo());
+      std::copy(tmp->getConstPointer(),tmp->getConstPointer()+tmp->getNumberOfCompo(),stdvecTyypp.begin());
+      sw=2;
+      return ;
+    }
+  throw INTERP_KERNEL::Exception(msg);
 }
 
 static void convertObjToPossibleCpp22(PyObject *value, int nbelem, int& sw, int& iTyypp, std::vector<int>& stdvecTyypp, std::pair<int, std::pair<int,int> >& p, ParaMEDMEM::DataArrayIntTuple *& daIntTyypp) throw(INTERP_KERNEL::Exception)
@@ -1044,8 +1156,11 @@ static void convertObjToPossibleCpp3(PyObject *value, int nbTuple, int nbCompo,
  * if value int -> cpp val sw=1
  * if value double -> cpp val sw=1
  * if value DataArrayDouble -> cpp DataArrayDouble sw=2
+ * if value DataArrayDoubleTuple -> cpp DataArrayDoubleTuple sw=3
+ * if value list[int,double] -> cpp std::vector<double> sw=4
+ * if value tuple[int,double] -> cpp std::vector<double> sw=4
  */
-static void convertObjToPossibleCpp5(PyObject *value, int& sw, double& val, ParaMEDMEM::DataArrayDouble *&d)
+static void convertObjToPossibleCpp5(PyObject *value, int& sw, double& val, ParaMEDMEM::DataArrayDouble *&d, ParaMEDMEM::DataArrayDoubleTuple *&e, std::vector<double>& f)
 {
   sw=-1;
   if(PyFloat_Check(value))
@@ -1060,10 +1175,60 @@ static void convertObjToPossibleCpp5(PyObject *value, int& sw, double& val, Para
       sw=1;
       return;
     }
+  if(PyTuple_Check(value))
+    {
+      int size=PyTuple_Size(value);
+      f.resize(size);
+      for(int i=0;i<size;i++)
+        {
+          PyObject *o=PyTuple_GetItem(value,i);
+          if(PyFloat_Check(o))
+            f[i]=PyFloat_AS_DOUBLE(o);
+          else if(PyInt_Check(o))
+            f[i]=(double)PyInt_AS_LONG(o);
+          else
+            {
+              std::ostringstream oss; oss << "Tuple as been detected but element #" << i << " is not double ! only tuples of doubles accepted or integer !";
+              throw INTERP_KERNEL::Exception(oss.str().c_str());
+            }
+        }
+      sw=4;
+      return;
+    }
+  if(PyList_Check(value))
+    {
+      int size=PyList_Size(value);
+      f.resize(size);
+      for(int i=0;i<size;i++)
+        {
+          PyObject *o=PyList_GetItem(value,i);
+          if(PyFloat_Check(o))
+            f[i]=PyFloat_AS_DOUBLE(o);
+          else if(PyInt_Check(o))
+            f[i]=(double)PyInt_AS_LONG(o);
+          else
+            {
+              std::ostringstream oss; oss << "List as been detected but element #" << i << " is not double ! only lists of doubles accepted or integer !";
+              throw INTERP_KERNEL::Exception(oss.str().c_str());
+            }
+        }
+      sw=4;
+      return;
+    }
   void *argp;
   int status=SWIG_ConvertPtr(value,&argp,SWIGTYPE_p_ParaMEDMEM__DataArrayDouble,0|0);
-  if(!SWIG_IsOK(status))
-    throw INTERP_KERNEL::Exception("3 types accepted : integer, double, DataArrayDouble");
-  d=reinterpret_cast< ParaMEDMEM::DataArrayDouble * >(argp);
-  sw=2;
+  if(SWIG_IsOK(status))
+    {  
+      d=reinterpret_cast< ParaMEDMEM::DataArrayDouble * >(argp);
+      sw=2;
+      return ;
+    }
+  status=SWIG_ConvertPtr(value,&argp,SWIGTYPE_p_ParaMEDMEM__DataArrayDoubleTuple,0|0);
+  if(SWIG_IsOK(status))
+    {  
+      e=reinterpret_cast< ParaMEDMEM::DataArrayDoubleTuple * >(argp);
+      sw=3;
+      return ;
+    }
+  throw INTERP_KERNEL::Exception("4 types accepted : integer, double, DataArrayDouble, DataArrayDoubleTuple");
 }
index f6b096a92a1959560b1f373b17fb0690c28515ad..cc06dc64a76998a80d6f5fa9bc538346a9ce34e2 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index bad586db1ac64c9512fd61c13d978eb691ff80c9..dcf64b76de6ad7d12ea8a5afc36e1a16d81a3d65 100644 (file)
@@ -1,5 +1,5 @@
 #  -*- coding: iso-8859-1 -*-
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index a74795233cf3ccd80a158cc37180fd7400327679..5cb654278db86ce8e9aa96cae8af0b6699c365e0 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  CEA/DEN, EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -38,6 +38,7 @@ QT4_WRAP_UI(MEDGUI_FORMS_HEADERS ${MEDGUI_FORMS})
 INCLUDE_DIRECTORIES(
   ${OMNIORB_INCLUDES_DIR}
   ${CAS_INCLUDES_DIR}
+  ${BOOST_INCLUDES_DIR}
   ${KERNEL_ROOT_DIR}/include/salome
   ${GUI_ROOT_DIR}/include/salome
   ${CMAKE_CURRENT_BINARY_DIR}
@@ -57,7 +58,7 @@ SET(MEDGUITS_SOURCES
   )
 
 ADD_LIBRARY(MEDGUI SHARED ${MEDGUI_SOURCES} ${MEDGUI_HEADERS_MOC} ${MEDGUI_FORMS_HEADERS})
-SET_TARGET_PROPERTIES(MEDGUI PROPERTIES COMPILE_FLAGS "${HDF5_FLAGS} ${MED3_FLAGS} ${XDR_FLAGS} ${CAS_FLAGS}")
+SET_TARGET_PROPERTIES(MEDGUI PROPERTIES COMPILE_FLAGS "${HDF5_FLAGS} ${MED3_FLAGS} ${XDR_FLAGS} ${CAS_FLAGS} ${BOOST_FLAGS}")
 TARGET_LINK_LIBRARIES(MEDGUI medcalculator ${QT_MT_LIBS} ${CAS_KERNEL} ${BOOST_LIBS} ${GUI_LDFLAGS} ${SalomeApp} ${CAM} ${LightApp} ${qtx} ${suit} ${SalomeObject})
 INSTALL(TARGETS MEDGUI DESTINATION ${MED_salomelib_LIBS})
 QT4_INSTALL_TS_RESOURCES("${MEDGUITS_SOURCES}" "${MED_salomeres_DATA}")
index 26f5d1c17ddc43469a7722eb70c5e7e6aaa0b721..04a26227c85bf4d090e3ce0399e5b0e03d1120b3 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
@@ -48,7 +48,7 @@ SET(medloader_SOURCES
 
 ADD_LIBRARY(medloader SHARED ${medloader_SOURCES})
 SET_TARGET_PROPERTIES(medloader PROPERTIES COMPILE_FLAGS "${HDF5_FLAGS} ${MED3_FLAGS}")
-TARGET_LINK_LIBRARIES(medloader medcoupling ${MED3_LIBS_C_ONLY})
+TARGET_LINK_LIBRARIES(medloader medcoupling ${MED3_LIBS_C_ONLY} ${HDF5_LIBS})
 INSTALL(TARGETS medloader DESTINATION ${MED_salomelib_LIBS})
 
 FILE(GLOB medloader_HEADERS_HXX "${CMAKE_CURRENT_SOURCE_DIR}/*.hxx")
index abe2d0b298e5a278fbab8030261aca05c87683a2..aa856a49277636b50ba2211ed92a8d8fdebee971 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index f42daa58a95ba438e9e9f81fa833159a7953fb82..24de3909aa58f7d0e91124612d97fc3364c03d97 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index cdeb5f137b351139a734ea2ded58d223c3edb085..f82a56dac8959e8c674b0eba52a7b597a68a4225 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 468f063a3bfd6cc092b94027aeb596a649187b31..b7a4a5c7ade459d649191b5b8097dbce21251ee5 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 7c05cabfb2660687df21601ca698f2e43971eb87..e993e283ac570626eb1db498a81ecd30d3c642ca 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
@@ -112,6 +112,11 @@ void MEDFileFieldLoc::simpleRepr(std::ostream& oss) const
   oss << "GaussPtsCoords="; std::copy(_gs_coo.begin(),_gs_coo.end(),std::ostream_iterator<double>(oss," ")); oss << std::endl;
 }
 
+void MEDFileFieldLoc::setName(const char *name)
+{
+  _name=name;
+}
+
 bool MEDFileFieldLoc::isEqual(const MEDFileFieldLoc& other, double eps) const
 {
   if(_name!=other._name)
@@ -493,11 +498,45 @@ std::string MEDFileFieldPerMeshPerTypePerDisc::getProfile() const
   return _profile;
 }
 
+void MEDFileFieldPerMeshPerTypePerDisc::setProfile(const char *newPflName)
+{
+  _profile=newPflName;
+}
+
 std::string MEDFileFieldPerMeshPerTypePerDisc::getLocalization() const
 {
   return _localization;
 }
 
+void MEDFileFieldPerMeshPerTypePerDisc::setLocalization(const char *newLocName)
+{
+  _localization=newLocName;
+}
+
+void MEDFileFieldPerMeshPerTypePerDisc::changePflsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception)
+{
+  for(std::vector< std::pair<std::vector<std::string>, std::string > >::const_iterator it2=mapOfModif.begin();it2!=mapOfModif.end();it2++)
+    {
+      if(std::find((*it2).first.begin(),(*it2).first.end(),_profile)!=(*it2).first.end())
+        {
+          _profile=(*it2).second;
+          return;
+        }
+    }
+}
+
+void MEDFileFieldPerMeshPerTypePerDisc::changeLocsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception)
+{
+  for(std::vector< std::pair<std::vector<std::string>, std::string > >::const_iterator it2=mapOfModif.begin();it2!=mapOfModif.end();it2++)
+    {
+      if(std::find((*it2).first.begin(),(*it2).first.end(),_localization)!=(*it2).first.end())
+        {
+          _localization=(*it2).second;
+          return;
+        }
+    }
+}
+
 void MEDFileFieldPerMeshPerTypePerDisc::getFieldAtLevel(TypeOfField type, const MEDFieldFieldGlobsReal *glob, std::vector< std::pair<int,int> >& dads, std::vector<const DataArrayInt *>& pfls, std::vector<int>& locs, std::vector<INTERP_KERNEL::NormalizedCellType>& geoTypes) const
 {
   if(type!=_type)
@@ -884,16 +923,51 @@ const std::vector<std::string>& MEDFileFieldPerMeshPerType::getInfo() const
 std::vector<std::string> MEDFileFieldPerMeshPerType::getPflsReallyUsed() const
 {
   std::vector<std::string> ret;
+  std::set<std::string> ret2;
   for(std::vector< MEDCouplingAutoRefCountObjectPtr<MEDFileFieldPerMeshPerTypePerDisc> >::const_iterator it1=_field_pm_pt_pd.begin();it1!=_field_pm_pt_pd.end();it1++)
     {
       std::string tmp=(*it1)->getProfile();
       if(!tmp.empty())
-        ret.push_back(tmp);
+        if(ret2.find(tmp)==ret2.end())
+          {
+            ret.push_back(tmp);
+            ret2.insert(tmp);
+          }
     }
   return ret;
 }
 
 std::vector<std::string> MEDFileFieldPerMeshPerType::getLocsReallyUsed() const
+{
+  std::vector<std::string> ret;
+  std::set<std::string> ret2;
+  for(std::vector< MEDCouplingAutoRefCountObjectPtr<MEDFileFieldPerMeshPerTypePerDisc> >::const_iterator it1=_field_pm_pt_pd.begin();it1!=_field_pm_pt_pd.end();it1++)
+    {
+      std::string tmp=(*it1)->getLocalization();
+      if(!tmp.empty() && tmp!=MED_GAUSS_ELNO)
+        if(ret2.find(tmp)==ret2.end())
+          {
+            ret.push_back(tmp);
+            ret2.insert(tmp);
+          }
+    }
+  return ret;
+}
+
+std::vector<std::string> MEDFileFieldPerMeshPerType::getPflsReallyUsedMulti() const
+{
+  std::vector<std::string> ret;
+  std::set<std::string> ret2;
+  for(std::vector< MEDCouplingAutoRefCountObjectPtr<MEDFileFieldPerMeshPerTypePerDisc> >::const_iterator it1=_field_pm_pt_pd.begin();it1!=_field_pm_pt_pd.end();it1++)
+    {
+      std::string tmp=(*it1)->getProfile();
+      if(!tmp.empty())
+        ret.push_back(tmp);
+    }
+  return ret;
+}
+
+std::vector<std::string> MEDFileFieldPerMeshPerType::getLocsReallyUsedMulti() const
 {
   std::vector<std::string> ret;
   for(std::vector< MEDCouplingAutoRefCountObjectPtr<MEDFileFieldPerMeshPerTypePerDisc> >::const_iterator it1=_field_pm_pt_pd.begin();it1!=_field_pm_pt_pd.end();it1++)
@@ -905,6 +979,52 @@ std::vector<std::string> MEDFileFieldPerMeshPerType::getLocsReallyUsed() const
   return ret;
 }
 
+void MEDFileFieldPerMeshPerType::changePflsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception)
+{
+  for(std::vector< MEDCouplingAutoRefCountObjectPtr<MEDFileFieldPerMeshPerTypePerDisc> >::iterator it1=_field_pm_pt_pd.begin();it1!=_field_pm_pt_pd.end();it1++)
+    (*it1)->changePflsRefsNamesGen(mapOfModif);
+}
+
+void MEDFileFieldPerMeshPerType::changeLocsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception)
+{
+  for(std::vector< MEDCouplingAutoRefCountObjectPtr<MEDFileFieldPerMeshPerTypePerDisc> >::iterator it1=_field_pm_pt_pd.begin();it1!=_field_pm_pt_pd.end();it1++)
+    (*it1)->changeLocsRefsNamesGen(mapOfModif);
+}
+
+MEDFileFieldPerMeshPerTypePerDisc *MEDFileFieldPerMeshPerType::getLeafGivenLocId(int locId) throw(INTERP_KERNEL::Exception)
+{
+  if(_field_pm_pt_pd.empty())
+    {
+      const INTERP_KERNEL::CellModel& cm=INTERP_KERNEL::CellModel::GetCellModel(_geo_type);
+      std::ostringstream oss; oss << "MEDFileFieldPerMeshPerType::getLeafGivenLocId : no localizations for geotype \"" << cm.getRepr() << "\" !";
+      throw INTERP_KERNEL::Exception(oss.str().c_str());
+    }
+  if(locId>=0 && locId<(int)_field_pm_pt_pd.size())
+    return _field_pm_pt_pd[locId];
+  const INTERP_KERNEL::CellModel& cm=INTERP_KERNEL::CellModel::GetCellModel(_geo_type);
+  std::ostringstream oss2; oss2 << "MEDFileFieldPerMeshPerType::getLeafGivenLocId : no such locId available (" << locId;
+  oss2 << ") for geometric type \"" << cm.getRepr() << "\" It should be in [0," << _field_pm_pt_pd.size() << ") !";
+  throw INTERP_KERNEL::Exception(oss2.str().c_str());
+  return static_cast<MEDFileFieldPerMeshPerTypePerDisc*>(0);
+}
+
+const MEDFileFieldPerMeshPerTypePerDisc *MEDFileFieldPerMeshPerType::getLeafGivenLocId(int locId) const throw(INTERP_KERNEL::Exception)
+{
+  if(_field_pm_pt_pd.empty())
+    {
+      const INTERP_KERNEL::CellModel& cm=INTERP_KERNEL::CellModel::GetCellModel(_geo_type);
+      std::ostringstream oss; oss << "MEDFileFieldPerMeshPerType::getLeafGivenLocId : no localizations for geotype \"" << cm.getRepr() << "\" !";
+      throw INTERP_KERNEL::Exception(oss.str().c_str());
+    }
+  if(locId>=0 && locId<(int)_field_pm_pt_pd.size())
+    return _field_pm_pt_pd[locId];
+  const INTERP_KERNEL::CellModel& cm=INTERP_KERNEL::CellModel::GetCellModel(_geo_type);
+  std::ostringstream oss2; oss2 << "MEDFileFieldPerMeshPerType::getLeafGivenLocId : no such locId available (" << locId;
+  oss2 << ") for geometric type \"" << cm.getRepr() << "\" It should be in [0," << _field_pm_pt_pd.size() << ") !";
+  throw INTERP_KERNEL::Exception(oss2.str().c_str());
+  return static_cast<const MEDFileFieldPerMeshPerTypePerDisc*>(0);
+}
+
 void MEDFileFieldPerMeshPerType::getFieldAtLevel(int meshDim, TypeOfField type, const MEDFieldFieldGlobsReal *glob, std::vector< std::pair<int,int> >& dads, std::vector<const DataArrayInt *>& pfls, std::vector<int>& locs, std::vector<INTERP_KERNEL::NormalizedCellType>& geoTypes) const
 {
   if(_geo_type!=INTERP_KERNEL::NORM_ERROR)
@@ -1280,6 +1400,17 @@ std::vector<std::string> MEDFileFieldPerMesh::getPflsReallyUsed() const
   return ret;
 }
 
+std::vector<std::string> MEDFileFieldPerMesh::getPflsReallyUsedMulti() const
+{
+  std::vector<std::string> ret;
+  for(std::vector< MEDCouplingAutoRefCountObjectPtr< MEDFileFieldPerMeshPerType > >::const_iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
+    {
+      std::vector<std::string> tmp=(*it)->getPflsReallyUsedMulti();
+      ret.insert(ret.end(),tmp.begin(),tmp.end());
+    }
+  return ret;
+}
+
 std::vector<std::string> MEDFileFieldPerMesh::getLocsReallyUsed() const
 {
   std::vector<std::string> ret;
@@ -1297,6 +1428,29 @@ std::vector<std::string> MEDFileFieldPerMesh::getLocsReallyUsed() const
   return ret;
 }
 
+std::vector<std::string> MEDFileFieldPerMesh::getLocsReallyUsedMulti() const
+{
+  std::vector<std::string> ret;
+  for(std::vector< MEDCouplingAutoRefCountObjectPtr< MEDFileFieldPerMeshPerType > >::const_iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
+    {
+      std::vector<std::string> tmp=(*it)->getLocsReallyUsedMulti();
+      ret.insert(ret.end(),tmp.begin(),tmp.end());
+    }
+  return ret;
+}
+
+void MEDFileFieldPerMesh::changePflsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception)
+{
+  for(std::vector< MEDCouplingAutoRefCountObjectPtr< MEDFileFieldPerMeshPerType > >::iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
+    (*it)->changePflsRefsNamesGen(mapOfModif);
+}
+
+void MEDFileFieldPerMesh::changeLocsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception)
+{
+  for(std::vector< MEDCouplingAutoRefCountObjectPtr< MEDFileFieldPerMeshPerType > >::iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
+    (*it)->changeLocsRefsNamesGen(mapOfModif);
+}
+
 MEDCouplingFieldDouble *MEDFileFieldPerMesh::getFieldOnMeshAtLevel(TypeOfField type, const MEDFieldFieldGlobsReal *glob, const MEDCouplingMesh *mesh, bool& isPfl) const throw(INTERP_KERNEL::Exception)
 {
   if(_field_pm_pt.empty())
@@ -1413,6 +1567,42 @@ DataArrayDouble *MEDFileFieldPerMesh::getUndergroundDataArrayExt(std::vector< st
   return _father->getUndergroundDataArray();
 }
 
+MEDFileFieldPerMeshPerTypePerDisc *MEDFileFieldPerMesh::getLeafGivenTypeAndLocId(INTERP_KERNEL::NormalizedCellType typ, int locId) throw(INTERP_KERNEL::Exception)
+{
+  for(std::vector< MEDCouplingAutoRefCountObjectPtr< MEDFileFieldPerMeshPerType > >::iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
+    {
+      if((*it)->getGeoType()==typ)
+        return (*it)->getLeafGivenLocId(locId);
+    }
+  const INTERP_KERNEL::CellModel& cm=INTERP_KERNEL::CellModel::GetCellModel(typ);
+  std::ostringstream oss; oss << "MEDFileFieldPerMesh::getLeafGivenTypeAndLocId : no such geometric type \"" << cm.getRepr() << "\" in this !" << std::endl;
+  oss << "Possiblities are : ";
+  for(std::vector< MEDCouplingAutoRefCountObjectPtr< MEDFileFieldPerMeshPerType > >::const_iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
+    {
+      const INTERP_KERNEL::CellModel& cm2=INTERP_KERNEL::CellModel::GetCellModel((*it)->getGeoType());
+      oss << "\"" << cm2.getRepr() << "\", ";
+    }
+  throw INTERP_KERNEL::Exception(oss.str().c_str());
+}
+
+const MEDFileFieldPerMeshPerTypePerDisc *MEDFileFieldPerMesh::getLeafGivenTypeAndLocId(INTERP_KERNEL::NormalizedCellType typ, int locId) const throw(INTERP_KERNEL::Exception)
+{
+  for(std::vector< MEDCouplingAutoRefCountObjectPtr< MEDFileFieldPerMeshPerType > >::const_iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
+    {
+      if((*it)->getGeoType()==typ)
+        return (*it)->getLeafGivenLocId(locId);
+    }
+  const INTERP_KERNEL::CellModel& cm=INTERP_KERNEL::CellModel::GetCellModel(typ);
+  std::ostringstream oss; oss << "MEDFileFieldPerMesh::getLeafGivenTypeAndLocId : no such geometric type \"" << cm.getRepr() << "\" in this !" << std::endl;
+  oss << "Possiblities are : ";
+  for(std::vector< MEDCouplingAutoRefCountObjectPtr< MEDFileFieldPerMeshPerType > >::const_iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
+    {
+      const INTERP_KERNEL::CellModel& cm2=INTERP_KERNEL::CellModel::GetCellModel((*it)->getGeoType());
+      oss << "\"" << cm2.getRepr() << "\", ";
+    }
+  throw INTERP_KERNEL::Exception(oss.str().c_str());
+}
+
 int MEDFileFieldPerMesh::addNewEntryIfNecessary(INTERP_KERNEL::NormalizedCellType type)
 {
   int i=0;
@@ -1512,6 +1702,27 @@ MEDCouplingFieldDouble *MEDFileFieldPerMesh::finishField3(const MEDFieldFieldGlo
       if(nbOfTuples==ComputeNbOfElems(glob,ON_NODES,geoTypes2,dads,locs))//No problem for NORM_ERROR because it is in context of node
         return finishField(ON_NODES,glob,dads,locs,mesh,isPfl);
     }
+  // Treatment of particular case where nodal field on pfl is requested with a meshDimRelToMax=1.
+  const MEDCouplingUMesh *meshu=dynamic_cast<const MEDCouplingUMesh *>(mesh);
+  if(meshu)
+    {
+      if(meshu->getNodalConnectivity()==0)
+        {
+          MEDCouplingAutoRefCountObjectPtr<MEDCouplingFieldDouble> ret=finishField(ON_CELLS,glob,dads,locs,mesh,isPfl);
+          int nb=da->getNbOfElems();
+          const int *ptr=da->getConstPointer();
+          MEDCouplingUMesh *meshuc=const_cast<MEDCouplingUMesh *>(meshu);
+          meshuc->allocateCells(nb);
+          for(int i=0;i<nb;i++)
+            meshuc->insertNextCell(INTERP_KERNEL::NORM_POINT1,1,ptr+i);
+          meshuc->finishInsertingCells();
+          ret->setMesh(meshuc);
+          ret->checkCoherency();
+          ret->incrRef();
+          return ret;
+        }
+    }
+  //
   MEDCouplingAutoRefCountObjectPtr<MEDCouplingFieldDouble> ret=finishField(ON_NODES,glob,dads,locs,mesh,isPfl);
   isPfl=true;
   DataArrayInt *arr2=0;
@@ -1532,8 +1743,9 @@ MEDCouplingFieldDouble *MEDFileFieldPerMesh::finishField3(const MEDFieldFieldGlo
     {
       std::ostringstream oss; oss << "MEDFileFieldPerMesh::finishField3 : The field on nodes lies on a node profile so that it is impossible to find a submesh having exactly the same nodes of that profile !!!";
       oss << "So it is impossible to return a well definied MEDCouplingFieldDouble instance on specified mesh on a specified meshDim !" << std::endl;
-      oss << "To retrieve correctly such a field you have 2 possibilities :" << std::endl;
+      oss << "To retrieve correctly such a field you have 3 possibilities :" << std::endl;
       oss << " - use an another meshDim compatible with the field on nodes (MED file does not have such information)" << std::endl;
+      oss << " - use an another a meshDimRelToMax equal to 1 -> it will return a mesh with artificial cell POINT1 containing the profile !" << std::endl;
       oss << " - if definitely the node profile has no link with mesh connectivity use MEDFileField1TS::getFieldWithProfile or MEDFileFieldMultiTS::getFieldWithProfile methods instead !";
       throw INTERP_KERNEL::Exception(oss.str().c_str());
     }
@@ -1766,6 +1978,46 @@ void MEDFieldFieldGlobs::setFileName(const char *fileName)
   _file_name=fileName;
 }
 
+void MEDFieldFieldGlobs::changePflsNamesInStruct(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception)
+{
+  for(std::vector< MEDCouplingAutoRefCountObjectPtr<DataArrayInt> >::iterator it=_pfls.begin();it!=_pfls.end();it++)
+    {
+      DataArrayInt *elt(*it);
+      if(elt)
+        {
+          std::string name(elt->getName());
+          for(std::vector< std::pair<std::vector<std::string>, std::string > >::const_iterator it2=mapOfModif.begin();it2!=mapOfModif.end();it2++)
+            {
+              if(std::find((*it2).first.begin(),(*it2).first.end(),name)!=(*it2).first.end())
+                {
+                  elt->setName((*it2).second.c_str());
+                  return;
+                }
+            }
+        }
+    }
+}
+
+void MEDFieldFieldGlobs::changeLocsNamesInStruct(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception)
+{
+  for(std::vector< MEDCouplingAutoRefCountObjectPtr<MEDFileFieldLoc> >::iterator it=_locs.begin();it!=_locs.end();it++)
+    {
+      MEDFileFieldLoc *elt(*it);
+      if(elt)
+        {
+          std::string name(elt->getName());
+          for(std::vector< std::pair<std::vector<std::string>, std::string > >::const_iterator it2=mapOfModif.begin();it2!=mapOfModif.end();it2++)
+            {
+              if(std::find((*it2).first.begin(),(*it2).first.end(),name)!=(*it2).first.end())
+                {
+                  elt->setName((*it2).second.c_str());
+                  return;
+                }
+            }
+        }
+    }
+}
+
 int MEDFieldFieldGlobs::getNbOfGaussPtPerCell(int locId) const throw(INTERP_KERNEL::Exception)
 {
   if(locId<0 || locId>=(int)_locs.size())
@@ -1773,9 +2025,9 @@ int MEDFieldFieldGlobs::getNbOfGaussPtPerCell(int locId) const throw(INTERP_KERN
   return _locs[locId]->getNbOfGaussPtPerCell();
 }
 
-const MEDFileFieldLoc& MEDFieldFieldGlobs::getLocalization(const char *pflName) const throw(INTERP_KERNEL::Exception)
+const MEDFileFieldLoc& MEDFieldFieldGlobs::getLocalization(const char *locName) const throw(INTERP_KERNEL::Exception)
 {
-  return getLocalizationFromId(getLocalizationId(pflName));
+  return getLocalizationFromId(getLocalizationId(locName));
 }
 
 const MEDFileFieldLoc& MEDFieldFieldGlobs::getLocalizationFromId(int locId) const throw(INTERP_KERNEL::Exception)
@@ -1819,12 +2071,13 @@ int MEDFieldFieldGlobs::getLocalizationId(const char *loc) const throw(INTERP_KE
   return std::distance(_locs.begin(),it);
 }
 
-const DataArrayInt *MEDFieldFieldGlobs::getProfile(const std::string& pflName) const throw(INTERP_KERNEL::Exception)
+const DataArrayInt *MEDFieldFieldGlobs::getProfile(const char *pflName) const throw(INTERP_KERNEL::Exception)
 {
-  std::vector< MEDCouplingAutoRefCountObjectPtr<DataArrayInt> >::const_iterator it=std::find_if(_pfls.begin(),_pfls.end(),ParaMEDMEMImpl::PflFinder(pflName));
+  std::string pflNameCpp(pflName);
+  std::vector< MEDCouplingAutoRefCountObjectPtr<DataArrayInt> >::const_iterator it=std::find_if(_pfls.begin(),_pfls.end(),ParaMEDMEMImpl::PflFinder(pflNameCpp));
   if(it==_pfls.end())
     {
-      std::ostringstream oss; oss << "MEDFieldFieldGlobs::getProfile: no such profile name : \"" << pflName << "\" Possible profiles are : ";
+      std::ostringstream oss; oss << "MEDFieldFieldGlobs::getProfile: no such profile name : \"" << pflNameCpp << "\" Possible profiles are : ";
       for(it=_pfls.begin();it!=_pfls.end();it++)
         oss << "\"" << (*it)->getName() << "\", ";
       throw INTERP_KERNEL::Exception(oss.str().c_str());
@@ -1832,6 +2085,70 @@ const DataArrayInt *MEDFieldFieldGlobs::getProfile(const std::string& pflName) c
   return *it;
 }
 
+const DataArrayInt *MEDFieldFieldGlobs::getProfileFromId(int pflId) const throw(INTERP_KERNEL::Exception)
+{
+  if(pflId<0 || pflId>=(int)_pfls.size())
+    throw INTERP_KERNEL::Exception("MEDFieldFieldGlobs::getProfileFromId : Invalid profile id !");
+  return _pfls[pflId];
+}
+
+MEDFileFieldLoc& MEDFieldFieldGlobs::getLocalizationFromId(int locId) throw(INTERP_KERNEL::Exception)
+{
+  if(locId<0 || locId>=(int)_locs.size())
+    throw INTERP_KERNEL::Exception("MEDFieldFieldGlobs::getLocalizationFromId : Invalid localization id !");
+  return *_locs[locId];
+}
+
+MEDFileFieldLoc& MEDFieldFieldGlobs::getLocalization(const char *locName) throw(INTERP_KERNEL::Exception)
+{
+  return getLocalizationFromId(getLocalizationId(locName));
+}
+
+DataArrayInt *MEDFieldFieldGlobs::getProfile(const char *pflName) throw(INTERP_KERNEL::Exception)
+{
+  std::string pflNameCpp(pflName);
+  std::vector< MEDCouplingAutoRefCountObjectPtr<DataArrayInt> >::iterator it=std::find_if(_pfls.begin(),_pfls.end(),ParaMEDMEMImpl::PflFinder(pflNameCpp));
+  if(it==_pfls.end())
+    {
+      std::ostringstream oss; oss << "MEDFieldFieldGlobs::getProfile: no such profile name : \"" << pflNameCpp << "\" Possible profiles are : ";
+      for(it=_pfls.begin();it!=_pfls.end();it++)
+        oss << "\"" << (*it)->getName() << "\", ";
+      throw INTERP_KERNEL::Exception(oss.str().c_str());
+    }
+  return *it;
+}
+
+DataArrayInt *MEDFieldFieldGlobs::getProfileFromId(int pflId) throw(INTERP_KERNEL::Exception)
+{
+  if(pflId<0 || pflId>=(int)_pfls.size())
+    throw INTERP_KERNEL::Exception("MEDFieldFieldGlobs::getProfileFromId : Invalid profile id !");
+  return _pfls[pflId];
+}
+
+void MEDFieldFieldGlobs::killProfileIds(const std::vector<int>& pflIds) throw(INTERP_KERNEL::Exception)
+{
+  std::vector< MEDCouplingAutoRefCountObjectPtr<DataArrayInt> > newPfls;
+  int i=0;
+  for(std::vector< MEDCouplingAutoRefCountObjectPtr<DataArrayInt> >::const_iterator it=_pfls.begin();it!=_pfls.end();it++,i++)
+    {
+      if(std::find(pflIds.begin(),pflIds.end(),i)==pflIds.end())
+        newPfls.push_back(*it);
+    }
+  _pfls=newPfls;
+}
+
+void MEDFieldFieldGlobs::killLocalizationIds(const std::vector<int>& locIds) throw(INTERP_KERNEL::Exception)
+{
+  std::vector< MEDCouplingAutoRefCountObjectPtr<MEDFileFieldLoc> > newLocs;
+  int i=0;
+  for(std::vector< MEDCouplingAutoRefCountObjectPtr<MEDFileFieldLoc> >::const_iterator it=_locs.begin();it!=_locs.end();it++,i++)
+    {
+      if(std::find(locIds.begin(),locIds.end(),i)==locIds.end())
+        newLocs.push_back(*it);
+    }
+  _locs=newLocs;
+}
+
 std::vector<std::string> MEDFieldFieldGlobs::getPfls() const
 {
   int sz=_pfls.size();
@@ -1850,6 +2167,65 @@ std::vector<std::string> MEDFieldFieldGlobs::getLocs() const
   return ret;
 }
 
+bool MEDFieldFieldGlobs::existsPfl(const char *pflName) const
+{
+  std::vector<std::string> v=getPfls();
+  std::string s(pflName);
+  return std::find(v.begin(),v.end(),s)!=v.end();
+}
+
+bool MEDFieldFieldGlobs::existsLoc(const char *locName) const
+{
+  std::vector<std::string> v=getLocs();
+  std::string s(locName);
+  return std::find(v.begin(),v.end(),s)!=v.end();
+}
+
+std::vector< std::vector<int> > MEDFieldFieldGlobs::whichAreEqualProfiles() const
+{
+  std::map<int,std::vector<int> > m;
+  int i=0;
+  for(std::vector< MEDCouplingAutoRefCountObjectPtr<DataArrayInt> >::const_iterator it=_pfls.begin();it!=_pfls.end();it++,i++)
+    {
+      const DataArrayInt *tmp=(*it);
+      if(tmp)
+        {
+          m[tmp->getHashCode()].push_back(i);
+        }
+    }
+  std::vector< std::vector<int> > ret;
+  for(std::map<int,std::vector<int> >::const_iterator it2=m.begin();it2!=m.end();it2++)
+    {
+      if((*it2).second.size()>1)
+        {
+          std::vector<int> ret0;
+          bool equalityOrNot=false;
+          for(std::vector<int>::const_iterator it3=(*it2).second.begin();it3!=(*it2).second.end();it3++)
+            {
+              std::vector<int>::const_iterator it4=it3; it4++;
+              for(;it4!=(*it2).second.end();it4++)
+                {
+                  if(_pfls[*it3]->isEqualWithoutConsideringStr(*_pfls[*it4]))
+                    {
+                      if(!equalityOrNot)
+                        ret0.push_back(*it3);
+                      ret0.push_back(*it4);
+                      equalityOrNot=true;
+                    }
+                }
+            }
+          if(!ret0.empty())
+            ret.push_back(ret0);
+        }
+    }
+  return ret;
+}
+
+std::vector< std::vector<int> > MEDFieldFieldGlobs::whichAreEqualLocs(double eps) const
+{
+  throw INTERP_KERNEL::Exception("MEDFieldFieldGlobs::whichAreEqualLocs : no implemented yet ! Sorry !");
+}
+
 void MEDFieldFieldGlobs::appendProfile(DataArrayInt *pfl) throw(INTERP_KERNEL::Exception)
 {
   std::string name(pfl->getName());
@@ -1953,11 +2329,125 @@ std::vector<std::string> MEDFieldFieldGlobsReal::getLocs() const
   return _globals->getLocs();
 }
 
+bool MEDFieldFieldGlobsReal::existsPfl(const char *pflName) const
+{
+  return _globals->existsPfl(pflName);
+}
+
+bool MEDFieldFieldGlobsReal::existsLoc(const char *locName) const
+{
+  return _globals->existsLoc(locName);
+}
+
 void MEDFieldFieldGlobsReal::setFileName(const char *fileName)
 {
   _globals->setFileName(fileName);
 }
 
+std::vector< std::vector<int> > MEDFieldFieldGlobsReal::whichAreEqualProfiles() const
+{
+  return _globals->whichAreEqualProfiles();
+}
+
+std::vector< std::vector<int> > MEDFieldFieldGlobsReal::whichAreEqualLocs(double eps) const
+{
+  return _globals->whichAreEqualLocs(eps);
+}
+
+void MEDFieldFieldGlobsReal::changePflsNamesInStruct(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception)
+{
+  _globals->changePflsNamesInStruct(mapOfModif);
+}
+
+void MEDFieldFieldGlobsReal::changeLocsNamesInStruct(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception)
+{
+  _globals->changeLocsNamesInStruct(mapOfModif);
+}
+
+/*!
+ * This method is a generalization of MEDFieldFieldGlobsReal::changePflName.
+ * This method contrary to abstract method MEDFieldFieldGlobsReal::changePflsRefsNamesGen updates in addition of MEDFieldFieldGlobsReal::changePflsRefsNamesGen,
+ * the profiles themselves and not only leaves of field.
+ */
+void MEDFieldFieldGlobsReal::changePflsNames(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception)
+{
+  changePflsRefsNamesGen(mapOfModif);
+  changePflsNamesInStruct(mapOfModif);
+}
+
+/*!
+ * This method is a generalization of MEDFieldFieldGlobsReal::changePflName.
+ * This method contrary to abstract method MEDFieldFieldGlobsReal::changeLocsRefsNamesGen updates in addition of MEDFieldFieldGlobsReal::changeLocsRefsNamesGen,
+ * the localizations themselves and not only leaves of field.
+ */
+void MEDFieldFieldGlobsReal::changeLocsNames(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception)
+{
+  changeLocsRefsNamesGen(mapOfModif);
+  changeLocsNamesInStruct(mapOfModif);
+}
+
+/*!
+ * This method is a more friendly API but less general method than MEDFieldFieldGlobsReal::changePflsNames.
+ */
+void MEDFieldFieldGlobsReal::changePflName(const char *oldName, const char *newName) throw(INTERP_KERNEL::Exception)
+{
+  std::vector< std::pair<std::vector<std::string>, std::string > > mapOfModif(1);
+  std::pair<std::vector<std::string>, std::string > p(std::vector<std::string>(1,std::string(oldName)),std::string(newName));
+  mapOfModif[0]=p;
+  changePflsNames(mapOfModif);
+}
+
+/*!
+ * This method is a more friendly API but less general method than MEDFieldFieldGlobsReal::changeLocsNames.
+ */
+void MEDFieldFieldGlobsReal::changeLocName(const char *oldName, const char *newName) throw(INTERP_KERNEL::Exception)
+{
+  std::vector< std::pair<std::vector<std::string>, std::string > > mapOfModif(1);
+  std::pair<std::vector<std::string>, std::string > p(std::vector<std::string>(1,std::string(oldName)),std::string(newName));
+  mapOfModif[0]=p;
+  changeLocsNames(mapOfModif);
+}
+
+std::vector< std::pair<std::vector<std::string>, std::string > > MEDFieldFieldGlobsReal::zipPflsNames() throw(INTERP_KERNEL::Exception)
+{
+  std::vector< std::vector<int> > pseudoRet=whichAreEqualProfiles();
+  std::vector< std::pair<std::vector<std::string>, std::string > > ret(pseudoRet.size());
+  int i=0;
+  for(std::vector< std::vector<int> >::const_iterator it=pseudoRet.begin();it!=pseudoRet.end();it++,i++)
+    {
+      std::vector< std::string > tmp((*it).size());
+      int j=0;
+      for(std::vector<int>::const_iterator it2=(*it).begin();it2!=(*it).end();it2++,j++)
+        tmp[j]=std::string(getProfileFromId(*it2)->getName());
+      std::pair<std::vector<std::string>, std::string > p(tmp,tmp.front());
+      ret[i]=p;
+      std::vector<int> tmp2((*it).begin()+1,(*it).end());
+      killProfileIds(tmp2);
+    }
+  changePflsRefsNamesGen(ret);
+  return ret;
+}
+
+std::vector< std::pair<std::vector<std::string>, std::string > > MEDFieldFieldGlobsReal::zipLocsNames(double eps) throw(INTERP_KERNEL::Exception)
+{
+  std::vector< std::vector<int> > pseudoRet=whichAreEqualLocs(eps);
+  std::vector< std::pair<std::vector<std::string>, std::string > > ret(pseudoRet.size());
+  int i=0;
+  for(std::vector< std::vector<int> >::const_iterator it=pseudoRet.begin();it!=pseudoRet.end();it++,i++)
+    {
+      std::vector< std::string > tmp((*it).size());
+      int j=0;
+      for(std::vector<int>::const_iterator it2=(*it).begin();it2!=(*it).end();it2++,j++)
+        tmp[j]=std::string(getLocalizationFromId(*it2).getName());
+      std::pair<std::vector<std::string>, std::string > p(tmp,tmp.front());
+      ret[i]=p;
+      std::vector<int> tmp2((*it).begin()+1,(*it).end());
+      killLocalizationIds(tmp2);
+    }
+  changeLocsRefsNamesGen(ret);
+  return ret;
+}
+
 int MEDFieldFieldGlobsReal::getNbOfGaussPtPerCell(int locId) const throw(INTERP_KERNEL::Exception)
 {
   return _globals->getNbOfGaussPtPerCell(locId);
@@ -1978,9 +2468,9 @@ std::string MEDFieldFieldGlobsReal::getFileName2() const
   return _globals->getFileName2();
 }
 
-const MEDFileFieldLoc& MEDFieldFieldGlobsReal::getLocalization(const char *pflName) const throw(INTERP_KERNEL::Exception)
+const MEDFileFieldLoc& MEDFieldFieldGlobsReal::getLocalization(const char *locName) const throw(INTERP_KERNEL::Exception)
 {
-  return _globals->getLocalization(pflName);
+  return _globals->getLocalization(locName);
 }
 
 const MEDFileFieldLoc& MEDFieldFieldGlobsReal::getLocalizationFromId(int locId) const throw(INTERP_KERNEL::Exception)
@@ -1988,11 +2478,46 @@ const MEDFileFieldLoc& MEDFieldFieldGlobsReal::getLocalizationFromId(int locId)
   return _globals->getLocalizationFromId(locId);
 }
 
-const DataArrayInt *MEDFieldFieldGlobsReal::getProfile(const std::string& pflName) const throw(INTERP_KERNEL::Exception)
+const DataArrayInt *MEDFieldFieldGlobsReal::getProfile(const char *pflName) const throw(INTERP_KERNEL::Exception)
 {
   return _globals->getProfile(pflName);
 }
 
+const DataArrayInt *MEDFieldFieldGlobsReal::getProfileFromId(int pflId) const throw(INTERP_KERNEL::Exception)
+{
+  return _globals->getProfileFromId(pflId);
+}
+
+MEDFileFieldLoc& MEDFieldFieldGlobsReal::getLocalizationFromId(int locId) throw(INTERP_KERNEL::Exception)
+{
+  return _globals->getLocalizationFromId(locId);
+}
+
+MEDFileFieldLoc& MEDFieldFieldGlobsReal::getLocalization(const char *locName) throw(INTERP_KERNEL::Exception)
+{
+  return _globals->getLocalization(locName);
+}
+
+DataArrayInt *MEDFieldFieldGlobsReal::getProfile(const char *pflName) throw(INTERP_KERNEL::Exception)
+{
+  return _globals->getProfile(pflName);
+}
+
+DataArrayInt *MEDFieldFieldGlobsReal::getProfileFromId(int pflId) throw(INTERP_KERNEL::Exception)
+{
+  return _globals->getProfileFromId(pflId);
+}
+
+void MEDFieldFieldGlobsReal::killProfileIds(const std::vector<int>& pflIds) throw(INTERP_KERNEL::Exception)
+{
+  _globals->killProfileIds(pflIds);
+}
+
+void MEDFieldFieldGlobsReal::killLocalizationIds(const std::vector<int>& locIds) throw(INTERP_KERNEL::Exception)
+{
+  _globals->killLocalizationIds(locIds);
+}
+
 void MEDFieldFieldGlobsReal::appendProfile(DataArrayInt *pfl) throw(INTERP_KERNEL::Exception)
 {
   _globals->appendProfile(pfl);
@@ -2386,6 +2911,41 @@ std::vector<std::string> MEDFileField1TSWithoutDAS::getLocsReallyUsed2() const
   return ret;
 }
 
+std::vector<std::string> MEDFileField1TSWithoutDAS::getPflsReallyUsedMulti2() const
+{
+  std::vector<std::string> ret;
+  for(std::vector< MEDCouplingAutoRefCountObjectPtr< MEDFileFieldPerMesh > >::const_iterator it=_field_per_mesh.begin();it!=_field_per_mesh.end();it++)
+    {
+      std::vector<std::string> tmp=(*it)->getPflsReallyUsedMulti();
+      ret.insert(ret.end(),tmp.begin(),tmp.end());
+    }
+  return ret;
+}
+
+std::vector<std::string> MEDFileField1TSWithoutDAS::getLocsReallyUsedMulti2() const
+{
+  std::vector<std::string> ret;
+  std::set<std::string> ret2;
+  for(std::vector< MEDCouplingAutoRefCountObjectPtr< MEDFileFieldPerMesh > >::const_iterator it=_field_per_mesh.begin();it!=_field_per_mesh.end();it++)
+    {
+      std::vector<std::string> tmp=(*it)->getLocsReallyUsedMulti();
+      ret.insert(ret.end(),tmp.begin(),tmp.end());
+    }
+  return ret;
+}
+
+void MEDFileField1TSWithoutDAS::changePflsRefsNamesGen2(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception)
+{
+  for(std::vector< MEDCouplingAutoRefCountObjectPtr< MEDFileFieldPerMesh > >::iterator it=_field_per_mesh.begin();it!=_field_per_mesh.end();it++)
+    (*it)->changePflsRefsNamesGen(mapOfModif);
+}
+
+void MEDFileField1TSWithoutDAS::changeLocsRefsNamesGen2(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception)
+{
+  for(std::vector< MEDCouplingAutoRefCountObjectPtr< MEDFileFieldPerMesh > >::iterator it=_field_per_mesh.begin();it!=_field_per_mesh.end();it++)
+    (*it)->changeLocsRefsNamesGen(mapOfModif);
+}
+
 void MEDFileField1TSWithoutDAS::writeLL(med_idt fid) const throw(INTERP_KERNEL::Exception)
 {
   if(_field_per_mesh.empty())
@@ -2465,10 +3025,11 @@ MEDCouplingFieldDouble *MEDFileField1TSWithoutDAS::getFieldAtLevel(TypeOfField t
 
 MEDCouplingFieldDouble *MEDFileField1TSWithoutDAS::getFieldOnMeshAtLevel(TypeOfField type, int meshDimRelToMax, int renumPol, const MEDFieldFieldGlobsReal *glob, const MEDFileMesh *mesh) const throw(INTERP_KERNEL::Exception)
 {
-  CheckMeshDimRel(meshDimRelToMax);
   MEDCouplingAutoRefCountObjectPtr<MEDCouplingMesh> m=mesh->getGenMeshAtLevel(meshDimRelToMax,false);
   const DataArrayInt *d=mesh->getNumberFieldAtLevel(meshDimRelToMax);
   const DataArrayInt *e=mesh->getNumberFieldAtLevel(1);
+  if(meshDimRelToMax==1)
+    (static_cast<MEDCouplingUMesh *>((MEDCouplingMesh *)m))->setMeshDimension(0);
   return MEDFileField1TSWithoutDAS::getFieldOnMeshAtLevel(type,renumPol,glob,m,d,e);
 }
 
@@ -2612,6 +3173,9 @@ int MEDFileField1TSWithoutDAS::addNewEntryIfNecessary(const MEDCouplingMesh *mes
   return sz;
 }
 
+/*!
+ * \param [in] mName specifies the underlying mesh name. This value can be pointer 0 for users that do not deal with fields on multi mesh.
+ */
 int MEDFileField1TSWithoutDAS::getMeshIdFromMeshName(const char *mName) const throw(INTERP_KERNEL::Exception)
 {
   if(_field_per_mesh.empty())
@@ -2633,6 +3197,30 @@ int MEDFileField1TSWithoutDAS::getMeshIdFromMeshName(const char *mName) const th
   throw INTERP_KERNEL::Exception(oss.str().c_str());
 }
 
+/*!
+ * \param [in] mName specifies the underlying mesh name. This value can be pointer 0 for users that do not deal with fields on multi mesh.
+ * \param [in] typ is for the geometric cell type (or INTERP_KERNEL::NORM_ERROR for node field) entry to find the right MEDFileFieldPerMeshPerTypePerDisc instance to set.
+ * \param [in] locId is the localization id to find the right MEDFileFieldPerMeshPerTypePerDisc instance to set. It corresponds to the position of 
+ *             \c pfls[std::distance(types.begin(),std::find(types.begin(),typ)] vector in MEDFileField1TSWithoutDAS::getFieldSplitedByType. For non gausspoints field users, the value is 0.
+ */
+MEDFileFieldPerMeshPerTypePerDisc *MEDFileField1TSWithoutDAS::getLeafGivenMeshAndTypeAndLocId(const char *mName, INTERP_KERNEL::NormalizedCellType typ, int locId) throw(INTERP_KERNEL::Exception)
+{
+  int mid=getMeshIdFromMeshName(mName);
+  return _field_per_mesh[mid]->getLeafGivenTypeAndLocId(typ,locId);
+}
+
+/*!
+ * \param [in] mName specifies the underlying mesh name. This value can be pointer 0 for users that do not deal with fields on multi mesh.
+ * \param [in] typ is for the geometric cell type (or INTERP_KERNEL::NORM_ERROR for node field) entry to find the right MEDFileFieldPerMeshPerTypePerDisc instance to set.
+ * \param [in] locId is the localization id to find the right MEDFileFieldPerMeshPerTypePerDisc instance to set. It corresponds to the position of 
+ *             \c pfls[std::distance(types.begin(),std::find(types.begin(),typ)] vector in MEDFileField1TSWithoutDAS::getFieldSplitedByType. For non gausspoints field users, the value is 0.
+ */
+const MEDFileFieldPerMeshPerTypePerDisc *MEDFileField1TSWithoutDAS::getLeafGivenMeshAndTypeAndLocId(const char *mName, INTERP_KERNEL::NormalizedCellType typ, int locId) const throw(INTERP_KERNEL::Exception)
+{
+  int mid=getMeshIdFromMeshName(mName);
+  return _field_per_mesh[mid]->getLeafGivenTypeAndLocId(typ,locId);
+}
+
 DataArrayDouble *MEDFileField1TSWithoutDAS::getOrCreateAndGetArray()
 {
   DataArrayDouble *ret=_arr;
@@ -2773,16 +3361,53 @@ MEDFileField1TS::MEDFileField1TS()
 {
 }
 
+/*!
+ * This method returns all profiles whose name is non empty used.
+ * \b WARNING If profile is used several times it will be reported \b only \b once.
+ * To get non empty name profiles as time as they appear in \b this call MEDFileField1TS::getPflsReallyUsedMulti instead.
+ */
 std::vector<std::string> MEDFileField1TS::getPflsReallyUsed() const
 {
   return getPflsReallyUsed2();
 }
 
+/*!
+ * This method returns all localizations whose name is non empty used.
+ * \b WARNING If localization is used several times it will be reported \b only \b once.
+ */
 std::vector<std::string> MEDFileField1TS::getLocsReallyUsed() const
 {
   return getLocsReallyUsed2();
 }
 
+/*!
+ * This method returns all profiles whose name is non empty used.
+ * \b WARNING contrary to MEDFileField1TS::getPflsReallyUsed, if profile is used several times it will be reported as time as it appears.
+ */
+std::vector<std::string> MEDFileField1TS::getPflsReallyUsedMulti() const
+{
+  return getPflsReallyUsedMulti2();
+}
+
+/*!
+ * This method returns all localizations whose name is non empty used.
+ * \b WARNING contrary to MEDFileField1TS::getLocsReallyUsed if localization is used several times it will be reported as time as it appears.
+ */
+std::vector<std::string> MEDFileField1TS::getLocsReallyUsedMulti() const
+{
+  return getLocsReallyUsedMulti2();
+}
+
+void MEDFileField1TS::changePflsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception)
+{
+  changePflsRefsNamesGen2(mapOfModif);
+}
+
+void MEDFileField1TS::changeLocsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception)
+{
+  changeLocsRefsNamesGen2(mapOfModif);
+}
+
 /*!
  * This method requests underlying file to perform the job, for mesh reading. If the current instance is not coming from a file and has been constructed from scratch
  * an exception will be thrown. In this case you should use MEDFileField1TS::getFieldOnMeshAtLevel method instead.
@@ -2871,6 +3496,81 @@ void MEDFileField1TS::setFieldProfile(const MEDCouplingFieldDouble *field, const
   MEDFileField1TSWithoutDAS::setFieldProfile(field,mesh,meshDimRelToMax,profile,*this);
 }
 
+/*!
+ * This method as MEDFileField1TSW::setLocNameOnLeaf, is dedicated for advanced user that a want a very fine control on their data structure
+ * without overhead. This method can be called only regarding information returned by MEDFileField1TSWithoutDAS::getFieldSplitedByType or MEDFileField1TSWithoutDAS::getFieldSplitedByType2.
+ * This method changes the attribute (here it's profile name) of the leaf datastructure (MEDFileFieldPerMeshPerTypePerDisc instance).
+ * It is the responsability of the caller to invoke MEDFieldFieldGlobs::appendProfile or MEDFieldFieldGlobs::getProfile
+ * to keep a valid instance.
+ * If \b this do not have any leaf that correspond to the request of the input parameter (\b mName, \b typ, \b locId) an INTERP_KERNEL::Exception will be thrown.
+ * If \b newPflName profile name does not already exist the profile with old name will be renamed with name \b newPflName.
+ * If \b newPflName already exists and that \b forceRenameOnGlob is false (the default) an INTERP_KERNEL::Exception will be thrown to avoid big confusion. In this case the called should rename before the profile name with name \b newPflName.
+ *
+ * \param [in] mName specifies the underlying mesh name. This value can be pointer 0 for users that do not deal with fields on multi mesh.
+ * \param [in] typ is for the geometric cell type (or INTERP_KERNEL::NORM_ERROR for node field) entry to find the right MEDFileFieldPerMeshPerTypePerDisc instance to set.
+ * \param [in] locId is the localization id to find the right MEDFileFieldPerMeshPerTypePerDisc instance to set. It corresponds to the position of 
+ *             \c pfls[std::distance(types.begin(),std::find(types.begin(),typ)] vector in MEDFileField1TSWithoutDAS::getFieldSplitedByType. For non gausspoints field users, the value is 0.
+ * \param [in] newLocName is the new localization name.
+ * \param [in] forceRenameOnGlob specifies the behaviour in case of profile \b newPflName already exists. If true, the renaming is done without check. It can lead to major bug.
+ *             If false, an exception will be thrown to force user to change previously the name of the profile with name \b newPflName
+ */
+void MEDFileField1TS::setProfileNameOnLeaf(const char *mName, INTERP_KERNEL::NormalizedCellType typ, int locId, const char *newPflName, bool forceRenameOnGlob) throw(INTERP_KERNEL::Exception)
+{
+  MEDFileFieldPerMeshPerTypePerDisc *disc=getLeafGivenMeshAndTypeAndLocId(mName,typ,locId);
+  std::string oldPflName=disc->getProfile();
+  std::vector<std::string> vv=getPflsReallyUsedMulti();
+  int nbOfOcc=std::count(vv.begin(),vv.end(),oldPflName);
+  if(forceRenameOnGlob || (!existsPfl(newPflName) && nbOfOcc==1))
+    {
+      disc->setProfile(newPflName);
+      DataArrayInt *pfl=getProfile(oldPflName.c_str());
+      pfl->setName(newPflName);
+    }
+  else
+    {
+      std::ostringstream oss; oss << "MEDFileField1TS::setProfileNameOnLeaf : Profile \"" << newPflName << "\" already exists or referenced more than one !";
+      throw INTERP_KERNEL::Exception(oss.str().c_str());
+    }
+}
+
+/*!
+ * This method as MEDFileField1TSW::setProfileNameOnLeaf, is dedicated for advanced user that a want a very fine control on their data structure
+ * without overhead. This method can be called only regarding information returned by MEDFileField1TSWithoutDAS::getFieldSplitedByType or MEDFileField1TSWithoutDAS::getFieldSplitedByType2.
+ * This method changes the attribute (here it's localization name) of the leaf datastructure (MEDFileFieldPerMeshPerTypePerDisc instance).
+ * It is the responsability of the caller to invoke MEDFieldFieldGlobs::appendProfile or MEDFieldFieldGlobs::getProfile
+ * to keep a valid instance.
+ * If \b this do not have any leaf that correspond to the request of the input parameter (\b mName, \b typ, \b locId) an INTERP_KERNEL::Exception will be thrown.
+ * This method is an extension of MEDFileField1TSWithoutDAS::setProfileNameOnLeafExt method because it performs a modification of global info.
+ * If \b newLocName profile name does not already exist the localization with old name will be renamed with name \b newLocName.
+ * If \b newLocName already exists an INTERP_KERNEL::Exception will be thrown to avoid big confusion. In this case the called should rename before the profile name with name \b newLocName.
+ *
+ * \param [in] mName specifies the underlying mesh name. This value can be pointer 0 for users that do not deal with fields on multi mesh.
+ * \param [in] typ is for the geometric cell type (or INTERP_KERNEL::NORM_ERROR for node field) entry to find the right MEDFileFieldPerMeshPerTypePerDisc instance to set.
+ * \param [in] locId is the localization id to find the right MEDFileFieldPerMeshPerTypePerDisc instance to set. It corresponds to the position of 
+ *             \c pfls[std::distance(types.begin(),std::find(types.begin(),typ)] vector in MEDFileField1TSWithoutDAS::getFieldSplitedByType. For non gausspoints field users, the value is 0.
+ * \param [in] newLocName is the new localization name.
+ * \param [in] forceRenameOnGlob specifies the behaviour in case of profile \b newLocName already exists. If true, the renaming is done without check. It can lead to major bug.
+ *             If false, an exception will be thrown to force user to change previously the name of the profile with name \b newLocName
+ */
+void MEDFileField1TS::setLocNameOnLeaf(const char *mName, INTERP_KERNEL::NormalizedCellType typ, int locId, const char *newLocName, bool forceRenameOnGlob) throw(INTERP_KERNEL::Exception)
+{
+  MEDFileFieldPerMeshPerTypePerDisc *disc=getLeafGivenMeshAndTypeAndLocId(mName,typ,locId);
+  std::string oldLocName=disc->getLocalization();
+  std::vector<std::string> vv=getLocsReallyUsedMulti();
+  int nbOfOcc=std::count(vv.begin(),vv.end(),oldLocName);
+  if(forceRenameOnGlob || (!existsLoc(newLocName) && nbOfOcc==1))
+    {
+      disc->setLocalization(newLocName);
+      MEDFileFieldLoc& loc=getLocalization(oldLocName.c_str());
+      loc.setName(newLocName);
+    }
+  else
+    {
+      std::ostringstream oss; oss << "MEDFileField1TS::setLocNameOnLeaf : Localization \"" << newLocName << "\" already exists or referenced more than one !";
+      throw INTERP_KERNEL::Exception(oss.str().c_str());
+    }
+}
+
 MEDFileFieldMultiTSWithoutDAS *MEDFileFieldMultiTSWithoutDAS::New(med_idt fid, const char *fieldName, int id, int ft, const std::vector<std::string>& infos, int nbOfStep) throw(INTERP_KERNEL::Exception)
 {
   return new MEDFileFieldMultiTSWithoutDAS(fid,fieldName,id,ft,infos,nbOfStep);
@@ -3194,6 +3894,40 @@ std::vector<std::string> MEDFileFieldMultiTSWithoutDAS::getLocsReallyUsed2() con
   return ret;
 }
 
+std::vector<std::string> MEDFileFieldMultiTSWithoutDAS::getPflsReallyUsedMulti2() const
+{
+  std::vector<std::string> ret;
+  for(std::vector< MEDCouplingAutoRefCountObjectPtr< MEDFileField1TSWithoutDAS > >::const_iterator it=_time_steps.begin();it!=_time_steps.end();it++)
+    {
+      std::vector<std::string> tmp=(*it)->getPflsReallyUsedMulti2();
+      ret.insert(ret.end(),tmp.begin(),tmp.end());
+    }
+  return ret;
+}
+
+std::vector<std::string> MEDFileFieldMultiTSWithoutDAS::getLocsReallyUsedMulti2() const
+{
+  std::vector<std::string> ret;
+  for(std::vector< MEDCouplingAutoRefCountObjectPtr< MEDFileField1TSWithoutDAS > >::const_iterator it=_time_steps.begin();it!=_time_steps.end();it++)
+    {
+      std::vector<std::string> tmp=(*it)->getLocsReallyUsedMulti2();
+      ret.insert(ret.end(),tmp.begin(),tmp.end());
+    }
+  return ret;
+}
+
+void MEDFileFieldMultiTSWithoutDAS::changePflsRefsNamesGen2(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception)
+{
+  for(std::vector< MEDCouplingAutoRefCountObjectPtr< MEDFileField1TSWithoutDAS > >::iterator it=_time_steps.begin();it!=_time_steps.end();it++)
+    (*it)->changePflsRefsNamesGen2(mapOfModif);
+}
+
+void MEDFileFieldMultiTSWithoutDAS::changeLocsRefsNamesGen2(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception)
+{
+  for(std::vector< MEDCouplingAutoRefCountObjectPtr< MEDFileField1TSWithoutDAS > >::iterator it=_time_steps.begin();it!=_time_steps.end();it++)
+    (*it)->changeLocsRefsNamesGen2(mapOfModif);
+}
+
 MEDFileFieldMultiTS *MEDFileFieldMultiTS::New()
 {
   return new MEDFileFieldMultiTS;
@@ -3384,6 +4118,26 @@ std::vector<std::string> MEDFileFieldMultiTS::getLocsReallyUsed() const
   return getLocsReallyUsed2();
 }
 
+std::vector<std::string> MEDFileFieldMultiTS::getPflsReallyUsedMulti() const
+{
+  return getPflsReallyUsedMulti2();
+}
+
+std::vector<std::string> MEDFileFieldMultiTS::getLocsReallyUsedMulti() const
+{
+  return getLocsReallyUsedMulti2();
+}
+
+void MEDFileFieldMultiTS::changePflsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception)
+{
+  changePflsRefsNamesGen2(mapOfModif);
+}
+
+void MEDFileFieldMultiTS::changeLocsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception)
+{
+  changeLocsRefsNamesGen2(mapOfModif);
+}
+
 MEDFileFields *MEDFileFields::New()
 {
   return new MEDFileFields;
@@ -3558,6 +4312,40 @@ std::vector<std::string> MEDFileFields::getLocsReallyUsed() const
   return ret;
 }
 
+std::vector<std::string> MEDFileFields::getPflsReallyUsedMulti() const
+{
+  std::vector<std::string> ret;
+  for(std::vector< MEDCouplingAutoRefCountObjectPtr< MEDFileFieldMultiTSWithoutDAS > >::const_iterator it=_fields.begin();it!=_fields.end();it++)
+    {
+      std::vector<std::string> tmp=(*it)->getPflsReallyUsedMulti2();
+      ret.insert(ret.end(),tmp.begin(),tmp.end());
+    }
+  return ret;
+}
+
+std::vector<std::string> MEDFileFields::getLocsReallyUsedMulti() const
+{
+  std::vector<std::string> ret;
+  for(std::vector< MEDCouplingAutoRefCountObjectPtr< MEDFileFieldMultiTSWithoutDAS > >::const_iterator it=_fields.begin();it!=_fields.end();it++)
+    {
+      std::vector<std::string> tmp=(*it)->getLocsReallyUsed2();
+      ret.insert(ret.end(),tmp.begin(),tmp.end());
+    }
+  return ret;
+}
+
+void MEDFileFields::changePflsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception)
+{
+  for(std::vector< MEDCouplingAutoRefCountObjectPtr< MEDFileFieldMultiTSWithoutDAS > >::iterator it=_fields.begin();it!=_fields.end();it++)
+    (*it)->changePflsRefsNamesGen2(mapOfModif);
+}
+
+void MEDFileFields::changeLocsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception)
+{
+  for(std::vector< MEDCouplingAutoRefCountObjectPtr< MEDFileFieldMultiTSWithoutDAS > >::iterator it=_fields.begin();it!=_fields.end();it++)
+    (*it)->changeLocsRefsNamesGen2(mapOfModif);
+}
+
 void MEDFileFields::resize(int newSize) throw(INTERP_KERNEL::Exception)
 {
   _fields.resize(newSize);
index 32e9df5ab28a1ab3e3865787e8a68cf818ce9007..53ce150056a8d006b125c53193d6d15ccc27800c 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 #include <vector>
 #include <string>
 
-extern "C"
-{
 #include "med.h"
-}
 
 namespace ParaMEDMEM
 {
@@ -51,6 +48,7 @@ namespace ParaMEDMEM
   public:
     void MEDLOADER_EXPORT simpleRepr(std::ostream& oss) const;
     const MEDLOADER_EXPORT std::string& getName() const { return _name; }
+    void MEDLOADER_EXPORT setName(const char *name);
     static MEDFileFieldLoc *New(med_idt fid, const char *locName);
     static MEDFileFieldLoc *New(med_idt fid, int id);
     static MEDFileFieldLoc *New(const char *locName, INTERP_KERNEL::NormalizedCellType geoType, const std::vector<double>& refCoo, const std::vector<double>& gsCoo, const std::vector<double>& w);
@@ -114,8 +112,12 @@ namespace ParaMEDMEM
     const DataArrayDouble *getArray() const;
     const std::vector<std::string>& getInfo() const;
     std::string getProfile() const;
+    void setProfile(const char *newPflName);
     std::string getLocalization() const;
+    void setLocalization(const char *newLocName);
     int getLocId() const { return _loc_id; }
+    void changePflsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception);
+    void changeLocsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception);
     void getFieldAtLevel(TypeOfField type, const MEDFieldFieldGlobsReal *glob, std::vector< std::pair<int,int> >& dads, std::vector<const DataArrayInt *>& pfls, std::vector<int>& locs,
                          std::vector<INTERP_KERNEL::NormalizedCellType>& geoTypes) const;
     void fillValues(int discId, int& startEntryId, std::vector< std::pair<std::pair<INTERP_KERNEL::NormalizedCellType,int>,std::pair<int,int> > >& entries) const;
@@ -128,8 +130,7 @@ namespace ParaMEDMEM
     MEDFileFieldPerMeshPerType *_father;
     int _start;
     int _end;
-    //MEDCouplingAutoRefCountObjectPtr< DataArrayDouble > _arr;
-    //! _nval is different than end-start in case of ON_GAUSS_PT and ON_GAUSS_NE ! (_nval=(end-start)/nbi)
+    //! _nval is different than end-start in case of ON_GAUSS_PT and ON_GAUSS_NE ! (_nval=(_end-_start)/nbi)
     int _nval;
     int _profile_it;
     std::string _profile;
@@ -168,6 +169,12 @@ namespace ParaMEDMEM
     const std::vector<std::string>& getInfo() const;
     std::vector<std::string> getPflsReallyUsed() const;
     std::vector<std::string> getLocsReallyUsed() const;
+    std::vector<std::string> getPflsReallyUsedMulti() const;
+    std::vector<std::string> getLocsReallyUsedMulti() const;
+    void changePflsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception);
+    void changeLocsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception);
+    MEDFileFieldPerMeshPerTypePerDisc *getLeafGivenLocId(int locId) throw(INTERP_KERNEL::Exception);
+    const MEDFileFieldPerMeshPerTypePerDisc *getLeafGivenLocId(int locId) const throw(INTERP_KERNEL::Exception);
     void getFieldAtLevel(int meshDim, TypeOfField type, const MEDFieldFieldGlobsReal *glob, std::vector< std::pair<int,int> >& dads, std::vector<const DataArrayInt *>& pfls, std::vector<int>& locs, std::vector<INTERP_KERNEL::NormalizedCellType>& geoTypes) const;
     void fillValues(int& startEntryId, std::vector< std::pair<std::pair<INTERP_KERNEL::NormalizedCellType,int>,std::pair<int,int> > >& entries) const;
     static med_entity_type ConvertIntoMEDFileType(TypeOfField ikType, INTERP_KERNEL::NormalizedCellType ikGeoType, med_geometry_type& medfGeoType);
@@ -216,9 +223,15 @@ namespace ParaMEDMEM
     const std::vector<std::string>& getInfo() const;
     std::vector<std::string> getPflsReallyUsed() const;
     std::vector<std::string> getLocsReallyUsed() const;
+    std::vector<std::string> getPflsReallyUsedMulti() const;
+    std::vector<std::string> getLocsReallyUsedMulti() const;
+    void changePflsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception);
+    void changeLocsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception);
     MEDCouplingFieldDouble *getFieldOnMeshAtLevel(TypeOfField type, const MEDFieldFieldGlobsReal *glob, const MEDCouplingMesh *mesh, bool& isPfl) const throw(INTERP_KERNEL::Exception);
     DataArrayDouble *getFieldOnMeshAtLevelWithPfl(TypeOfField type, const MEDCouplingMesh *mesh, DataArrayInt *&pfl, const MEDFieldFieldGlobsReal *glob) const throw(INTERP_KERNEL::Exception);
     DataArrayDouble *getUndergroundDataArrayExt(std::vector< std::pair<std::pair<INTERP_KERNEL::NormalizedCellType,int>,std::pair<int,int> > >& entries) const throw(INTERP_KERNEL::Exception);
+    MEDFileFieldPerMeshPerTypePerDisc *getLeafGivenTypeAndLocId(INTERP_KERNEL::NormalizedCellType typ, int locId) throw(INTERP_KERNEL::Exception);
+    const MEDFileFieldPerMeshPerTypePerDisc *getLeafGivenTypeAndLocId(INTERP_KERNEL::NormalizedCellType typ, int locId) const throw(INTERP_KERNEL::Exception);
   private:
     int addNewEntryIfNecessary(INTERP_KERNEL::NormalizedCellType type);
     MEDCouplingFieldDouble *finishField(TypeOfField type, const MEDFieldFieldGlobsReal *glob,
@@ -262,14 +275,27 @@ namespace ParaMEDMEM
     void writeGlobals(med_idt fid, const MEDFileWritable& opt) const throw(INTERP_KERNEL::Exception);
     std::vector<std::string> getPfls() const;
     std::vector<std::string> getLocs() const;
+    bool existsPfl(const char *pflName) const;
+    bool existsLoc(const char *locName) const;
+    std::vector< std::vector<int> > whichAreEqualProfiles() const;
+    std::vector< std::vector<int> > whichAreEqualLocs(double eps) const;
     void setFileName(const char *fileName);
+    void changePflsNamesInStruct(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception);
+    void changeLocsNamesInStruct(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception);
     int getNbOfGaussPtPerCell(int locId) const throw(INTERP_KERNEL::Exception);
     int getLocalizationId(const char *loc) const throw(INTERP_KERNEL::Exception);
     const char *getFileName() const { return _file_name.c_str(); }
     std::string getFileName2() const { return _file_name; }
     const MEDFileFieldLoc& getLocalizationFromId(int locId) const throw(INTERP_KERNEL::Exception);
-    const MEDFileFieldLoc& getLocalization(const char *pflName) const throw(INTERP_KERNEL::Exception);
-    const DataArrayInt *getProfile(const std::string& pflName) const throw(INTERP_KERNEL::Exception); 
+    const MEDFileFieldLoc& getLocalization(const char *locName) const throw(INTERP_KERNEL::Exception);
+    const DataArrayInt *getProfileFromId(int pflId) const throw(INTERP_KERNEL::Exception);
+    const DataArrayInt *getProfile(const char *pflName) const throw(INTERP_KERNEL::Exception);
+    MEDFileFieldLoc& getLocalizationFromId(int locId) throw(INTERP_KERNEL::Exception);
+    MEDFileFieldLoc& getLocalization(const char *locName) throw(INTERP_KERNEL::Exception);
+    DataArrayInt *getProfile(const char *pflName) throw(INTERP_KERNEL::Exception);
+    DataArrayInt *getProfileFromId(int pflId) 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 appendProfile(DataArrayInt *pfl) throw(INTERP_KERNEL::Exception);
     void appendLoc(const char *locName, INTERP_KERNEL::NormalizedCellType geoType, const std::vector<double>& refCoo, const std::vector<double>& gsCoo, const std::vector<double>& w) throw(INTERP_KERNEL::Exception);
@@ -295,6 +321,10 @@ namespace ParaMEDMEM
     void appendGlobs(const MEDFieldFieldGlobsReal& other, double eps) throw(INTERP_KERNEL::Exception);
     virtual std::vector<std::string> getPflsReallyUsed() const = 0;
     virtual std::vector<std::string> getLocsReallyUsed() const = 0;
+    virtual std::vector<std::string> getPflsReallyUsedMulti() const = 0;
+    virtual std::vector<std::string> getLocsReallyUsedMulti() const = 0;
+    virtual void changePflsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception) = 0;
+    virtual void changeLocsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception) = 0;
     virtual ~MEDFieldFieldGlobsReal();
     //
     void loadProfileInFile(med_idt fid, int id, const char *pflName) throw(INTERP_KERNEL::Exception);
@@ -304,14 +334,33 @@ namespace ParaMEDMEM
     void writeGlobals(med_idt fid, const MEDFileWritable& opt) const throw(INTERP_KERNEL::Exception);
     std::vector<std::string> getPfls() const;
     std::vector<std::string> getLocs() const;
+    bool existsPfl(const char *pflName) const;
+    bool existsLoc(const char *locName) const;
+    std::vector< std::vector<int> > whichAreEqualProfiles() const;
+    std::vector< std::vector<int> > whichAreEqualLocs(double eps) const;
     void setFileName(const char *fileName);
+    void changePflsNamesInStruct(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception);
+    void changeLocsNamesInStruct(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception);
+    void changePflsNames(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception);
+    void changeLocsNames(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception);
+    void changePflName(const char *oldName, const char *newName) throw(INTERP_KERNEL::Exception);
+    void changeLocName(const char *oldName, const char *newName) throw(INTERP_KERNEL::Exception);
+    std::vector< std::pair<std::vector<std::string>, std::string > > zipPflsNames() throw(INTERP_KERNEL::Exception);
+    std::vector< std::pair<std::vector<std::string>, std::string > > zipLocsNames(double eps) throw(INTERP_KERNEL::Exception);
     int getNbOfGaussPtPerCell(int locId) const throw(INTERP_KERNEL::Exception);
     int getLocalizationId(const char *loc) const throw(INTERP_KERNEL::Exception);
     const char *getFileName() const;
     std::string getFileName2() const;
     const MEDFileFieldLoc& getLocalizationFromId(int locId) const throw(INTERP_KERNEL::Exception);
-    const MEDFileFieldLoc& getLocalization(const char *pflName) const throw(INTERP_KERNEL::Exception);
-    const DataArrayInt *getProfile(const std::string& pflName) const throw(INTERP_KERNEL::Exception);
+    const MEDFileFieldLoc& getLocalization(const char *locName) const throw(INTERP_KERNEL::Exception);
+    MEDFileFieldLoc& getLocalizationFromId(int locId) throw(INTERP_KERNEL::Exception);
+    MEDFileFieldLoc& getLocalization(const char *locName) throw(INTERP_KERNEL::Exception);
+    const DataArrayInt *getProfile(const char *pflName) const throw(INTERP_KERNEL::Exception);
+    const DataArrayInt *getProfileFromId(int pflId) const throw(INTERP_KERNEL::Exception);
+    DataArrayInt *getProfile(const char *pflName) throw(INTERP_KERNEL::Exception);
+    DataArrayInt *getProfileFromId(int pflId) 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 appendProfile(DataArrayInt *pfl) throw(INTERP_KERNEL::Exception);
     void appendLoc(const char *locName, INTERP_KERNEL::NormalizedCellType geoType, const std::vector<double>& refCoo, const std::vector<double>& gsCoo, const std::vector<double>& w) throw(INTERP_KERNEL::Exception);
@@ -319,6 +368,9 @@ namespace ParaMEDMEM
     MEDCouplingAutoRefCountObjectPtr< MEDFieldFieldGlobs > _globals;
   };
 
+  /*!
+   * DAS is for Shared Data Arrays such as profiles.
+   */
   class MEDLOADER_EXPORT MEDFileField1TSWithoutDAS : public RefCountObject, public MEDFileWritable
   {
   public:
@@ -348,6 +400,10 @@ namespace ParaMEDMEM
     virtual void writeLL(med_idt fid) const throw(INTERP_KERNEL::Exception);
     std::vector<std::string> getPflsReallyUsed2() const;
     std::vector<std::string> getLocsReallyUsed2() const;
+    std::vector<std::string> getPflsReallyUsedMulti2() const;
+    std::vector<std::string> getLocsReallyUsedMulti2() const;
+    void changePflsRefsNamesGen2(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception);
+    void changeLocsRefsNamesGen2(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception);
     static void CheckMeshDimRel(int meshDimRelToMax) throw(INTERP_KERNEL::Exception);
     static std::vector<int> CheckSBTMesh(const MEDCouplingMesh *mesh) throw(INTERP_KERNEL::Exception);
     //
@@ -368,6 +424,8 @@ namespace ParaMEDMEM
   protected:
     int addNewEntryIfNecessary(const MEDCouplingMesh *mesh) throw(INTERP_KERNEL::Exception);
     int getMeshIdFromMeshName(const char *mName) const throw(INTERP_KERNEL::Exception);
+    MEDFileFieldPerMeshPerTypePerDisc *getLeafGivenMeshAndTypeAndLocId(const char *mName, INTERP_KERNEL::NormalizedCellType typ, int locId) throw(INTERP_KERNEL::Exception);
+    const MEDFileFieldPerMeshPerTypePerDisc *getLeafGivenMeshAndTypeAndLocId(const char *mName, INTERP_KERNEL::NormalizedCellType typ, int locId) const throw(INTERP_KERNEL::Exception);
     MEDFileField1TSWithoutDAS(const char *fieldName, int csit, int fieldtype, int iteration, int order, const std::vector<std::string>& infos);
   public:
     MEDFileField1TSWithoutDAS();
@@ -405,10 +463,19 @@ namespace ParaMEDMEM
     //
     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);
+  public:
+    //! underground method see MEDFileField1TSWithoutDAS::setProfileNameOnLeaf
+    void setProfileNameOnLeaf(const char *mName, INTERP_KERNEL::NormalizedCellType typ, int locId, const char *newPflName, bool forceRenameOnGlob=false) throw(INTERP_KERNEL::Exception);
+    //! underground method see MEDFileField1TSWithoutDAS::setLocNameOnLeaf
+    void setLocNameOnLeaf(const char *mName, INTERP_KERNEL::NormalizedCellType typ, int locId, const char *newLocName, bool forceRenameOnGlob=false) throw(INTERP_KERNEL::Exception);
   private:
     void writeLL(med_idt fid) const throw(INTERP_KERNEL::Exception);
     std::vector<std::string> getPflsReallyUsed() const;
     std::vector<std::string> getLocsReallyUsed() const;
+    std::vector<std::string> getPflsReallyUsedMulti() const;
+    std::vector<std::string> getLocsReallyUsedMulti() const;
+    void changePflsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception);
+    void changeLocsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception);
     MEDFileField1TS(const char *fileName, const char *fieldName, int iteration, int order) throw(INTERP_KERNEL::Exception);
     MEDFileField1TS();
   };
@@ -434,6 +501,10 @@ namespace ParaMEDMEM
   public:
     std::vector<std::string> getPflsReallyUsed2() const;
     std::vector<std::string> getLocsReallyUsed2() const;
+    std::vector<std::string> getPflsReallyUsedMulti2() const;
+    std::vector<std::string> getLocsReallyUsedMulti2() const;
+    void changePflsRefsNamesGen2(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception);
+    void changeLocsRefsNamesGen2(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception);
   protected:
     const MEDFileField1TSWithoutDAS& getTimeStepEntry(int iteration, int order) const throw(INTERP_KERNEL::Exception);
     MEDFileField1TSWithoutDAS& getTimeStepEntry(int iteration, int order) throw(INTERP_KERNEL::Exception);
@@ -476,6 +547,10 @@ namespace ParaMEDMEM
   private:
     std::vector<std::string> getPflsReallyUsed() const;
     std::vector<std::string> getLocsReallyUsed() const;
+    std::vector<std::string> getPflsReallyUsedMulti() const;
+    std::vector<std::string> getLocsReallyUsedMulti() const;
+    void changePflsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception);
+    void changeLocsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception);
   private:
     MEDFileFieldMultiTS();
     MEDFileFieldMultiTS(const MEDFileFieldMultiTSWithoutDAS& other);
@@ -507,6 +582,10 @@ namespace ParaMEDMEM
     int getPosFromFieldName(const char *fieldName) const throw(INTERP_KERNEL::Exception);
     std::vector<std::string> getPflsReallyUsed() const;
     std::vector<std::string> getLocsReallyUsed() const;
+    std::vector<std::string> getPflsReallyUsedMulti() const;
+    std::vector<std::string> getLocsReallyUsedMulti() const;
+    void changePflsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception);
+    void changeLocsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception);
   private:
     MEDFileFields();
     MEDFileFields(const char *fileName) throw(INTERP_KERNEL::Exception);
index dff6bf526e57d8fc4964b855e00c62aff1ab872d..6fb0a0535ddd7ea6beabca6e9f44550c3958a6ec 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
@@ -1582,6 +1582,7 @@ MEDCouplingUMesh *MEDFileUMesh::getMeshAtLevel(int meshDimRelToMaxExt, bool renu
           MEDCouplingAutoRefCountObjectPtr<DataArrayDouble> cc=_coords->deepCpy();
           umesh->setCoords(cc);
           MEDFileUMeshSplitL1::ClearNonDiscrAttributes(umesh);
+          umesh->setName(getName());
           return umesh;
         }
     }
index f25b1ef0e09eca73b72514c79766c95defb6339b..b10e3a671a7f22f5ebb8c9e026fa62f70c60e48f 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 88fa052e5e5d6d96fa025648eb804bc483dd9186..456397918b82163416ca447df83bbaf9ff12a931 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 699bc121a5921417606ac5e50f034f1a2a1be3ad..7cf22da69748a5752ee6e7b74948971b4e2802f2 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 
 #include "NormalizedUnstructuredMesh.hxx"
 
-extern "C"
-{
 #include "med.h"
-}
 
 namespace ParaMEDMEM
 {
index 6b9992bc9aa77dcbbfeafdb73a7115d6248acf73..028511608d65281776b588f9562249b4becb84e1 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 6c20a72f1b6cae370f223c816cb4bf79ad90b57b..37ed23d4d65308f04c70f403cdc0af841257e22a 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 #include "MEDCouplingCMesh.hxx"
 #include "MEDCouplingAutoRefCountObjectPtr.hxx"
 
-extern "C"
-{
 #include "med.h"
-}
 
 #include <map>
 
index 49784d087b1e3d30d7f4cd21591b8fdd41460ff8..6114e0ea7086164a35c9ed0f90fa80cf7e98c347 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 0e636b592396b49234e7f3dd4dc7dec05eb5d894..b814c12828b1ad737ec5da7b085edce09bfcfd43 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 #include "InterpKernelException.hxx"
 #include "MEDLoaderDefines.hxx"
 
-extern "C"
-{
 #include "med.h"
-}
 
 namespace MEDFileUtilities
 {
index 8a408b3b456f384770346abd0bce7825e9af9b4e..c613a1c737f0aa908a693dcd1fedd868ab0c6f12 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 
 #include "InterpKernelAutoPtr.hxx"
 
-extern "C"
-{
 #include "med.h"
-}
 
 #include <string>
 #include <limits>
index f2fd1c0a1348bd353cf885e8289fbe77a8be5998..33907f2197dd951d33402d7191946bbb1df151e6 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 3ff67c2e378e035fd37f53d1faf969b60b21d4b2..129c027b83088d76bd212c2bd60654977d708b73 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 15333d228b60eeb51f28fdc2607e3f1f2cb9b6f3..d23a9b5374f9db9ad54bec5d13d565759e950980 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 33fd69dbeca9d9cf876a3ba3567d8c74e317f51c..f1a0874576ea51109f50b674a5971e91f27dbda5 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index f9fb66ad33fc182158c0bb4fd443caed64a9a6d8..1edb2c85f79a0d95a840c60fbe608d28505962ae 100755 (executable)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index 0357275a5f2640eb49e4f0a0b4a2a18c59188404..0345cb1803e037f41105a357fb5b1c360ea1c756 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index b189e9216d466613f361399bbf815a8b2209d2a6..a50ac34ae4c29f110b74a385137acbb5245a329c 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index ca3c924ce47ee7c01fcfa80ac68adc97e858b88d..720d34b657309ce845956276b8483f92fee5279d 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index db41704df7b2917db12d9ef99352dfcbe55f19ad..eaf49c7a1493b8c9aee46e60a846988128a406d4 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 19c822f771dd6afe5aa0b152bdea9f06d66007c2..40c36422869dfc7c8f3e78a2013e94cc71dacb91 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index fb41ea3a60776814909d898f473c425181efc8ea..60dc249288b5650709051ec16b463b2babe55f34 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
@@ -469,7 +469,7 @@ void SauvWriter::fillProfileSubMeshes()
                   if ( !pfl2sm->second )
                     {
                       SubMesh* sm = pfl2sm->second = addSubMesh( "", dimRelExt ); // no names for profiles
-                      const DataArrayInt * pfl = isOnAll ? 0 : fields[i]->getProfile( pfls[iType][iPfl] );
+                      const DataArrayInt * pfl = isOnAll ? 0 : fields[i]->getProfile( pfls[iType][iPfl].c_str() );
                       makeProfileIDs( sm, types[iType], pfl );
                     }
                 }
index 0fe1513403bbd2ac52d40e5fee1e8afab53695c5..7ba8a6a76024ca8531dffcfb06d16f7638e71501 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 8525be191fdac045166fd37b75eff347e2759f78..80d6046d56df4ae493a01de30bd72664a4d318da 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index d0903d3c3ba7cf1ff5a7a3181c1e102c87f2def5..148c2a1b66cb342f3f74bea091f9a1cddd727100 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
@@ -642,9 +642,15 @@ namespace ParaMEDMEM
     std::vector<std::string> getLocs() const;
     virtual std::vector<std::string> getPflsReallyUsed() const = 0;
     virtual std::vector<std::string> getLocsReallyUsed() const = 0;
+    virtual std::vector<std::string> getPflsReallyUsedMulti() const = 0;
+    virtual std::vector<std::string> getLocsReallyUsedMulti() const = 0;
+    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 char *oldName, const char *newName) throw(INTERP_KERNEL::Exception);
+    void changeLocName(const char *oldName, const char *newName) throw(INTERP_KERNEL::Exception);
   %extend
      {
-       PyObject *getProfile(const std::string& pflName) const throw(INTERP_KERNEL::Exception)
+       PyObject *getProfile(const char *pflName) const throw(INTERP_KERNEL::Exception)
        {
          const DataArrayInt *ret=self->getProfile(pflName);
          if(ret)
@@ -652,6 +658,14 @@ namespace ParaMEDMEM
          return SWIG_NewPointerObj(SWIG_as_voidptr(ret),SWIGTYPE_p_ParaMEDMEM__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_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 );
+       }
+
        PyObject *getLocalizationFromId(int locId) const throw(INTERP_KERNEL::Exception)
        {
          const MEDFileFieldLoc *loc=&self->getLocalizationFromId(locId);
@@ -659,12 +673,60 @@ namespace ParaMEDMEM
          return SWIG_NewPointerObj(SWIG_as_voidptr(loc),SWIGTYPE_p_ParaMEDMEM__MEDFileFieldLoc, SWIG_POINTER_OWN | 0 );
        }
        
-       PyObject *getLocalization(const char *pflName) const throw(INTERP_KERNEL::Exception)
+       PyObject *getLocalization(const char *locName) const throw(INTERP_KERNEL::Exception)
        {
-         const MEDFileFieldLoc *loc=&self->getLocalization(pflName);
+         const MEDFileFieldLoc *loc=&self->getLocalization(locName);
          loc->incrRef();
          return SWIG_NewPointerObj(SWIG_as_voidptr(loc),SWIGTYPE_p_ParaMEDMEM__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);
+       }
      }
   };
 
@@ -843,6 +905,8 @@ namespace ParaMEDMEM
     //
     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 char *mName, INTERP_KERNEL::NormalizedCellType typ, int locId, const char *newPflName, bool forceRenameOnGlob=false) throw(INTERP_KERNEL::Exception);
+    void setLocNameOnLeaf(const char *mName, INTERP_KERNEL::NormalizedCellType typ, int locId, const char *newLocName, bool forceRenameOnGlob=false) throw(INTERP_KERNEL::Exception);
     %extend
        {
          std::string __str__() const
@@ -859,6 +923,16 @@ namespace ParaMEDMEM
              PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(ret1),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 ));
              return ret;
            }
+
+         void setProfileNameOnLeaf(INTERP_KERNEL::NormalizedCellType typ, int locId, const char *newPflName, bool forceRenameOnGlob=false) throw(INTERP_KERNEL::Exception)
+           {
+             self->setProfileNameOnLeaf(0,typ,locId,newPflName,forceRenameOnGlob);
+           }
+         
+         void setLocNameOnLeaf(INTERP_KERNEL::NormalizedCellType typ, int locId, const char *newLocName, bool forceRenameOnGlob=false) throw(INTERP_KERNEL::Exception)
+           {
+             self->setLocNameOnLeaf(0,typ,locId,newLocName,forceRenameOnGlob);
+           }
        }
   };
 
index 3436e073b33318c017b286b2ce53a0879f706aa5..d7ea584e43de8b6eed70b0f5d5588f970ec0edfc 100644 (file)
@@ -1,5 +1,5 @@
 #  -*- coding: iso-8859-1 -*-
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index 7eb90e9335bec1da15d87543a33bbe8f321da10c..2e31afb65a94f19cf0f8a88dc7cb11096119bef5 100644 (file)
@@ -1,5 +1,5 @@
 #  -*- coding: iso-8859-1 -*-
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index c7e72e4b33fcda87b168a0b1d145b5acb0a6831a..4e7a94760f530b593a8f4b008da9145a1a02529f 100644 (file)
@@ -1,5 +1,5 @@
 #  -*- coding: iso-8859-1 -*-
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index 15f3afaf815bed5dc49d6cce442fe138af87457c..c224c6bbd7b3c79be9e6c9d6047efeed072bf466 100644 (file)
@@ -1,5 +1,5 @@
 #  -*- coding: iso-8859-1 -*-
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
@@ -610,6 +610,7 @@ class MEDLoaderTest(unittest.TestCase):
         da=DataArrayInt.New(); da.alloc(9,1) ; da.iota(0) ; da.setName("sup1")
         #
         ff1.setFieldProfile(f1,mm1,0,da)
+        ff1.changePflsNames([(["sup1_NORM_QUAD4"],"ForV650")])
         ff1.write(fname,0)
         #
         vals,pfl=ff1.getFieldWithProfile(ON_CELLS,0,mm1) ; vals.setName("")
@@ -624,7 +625,7 @@ class MEDLoaderTest(unittest.TestCase):
         self.assertEqual([7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18],sbt[0][1][0][1].getValues())# values for TRI3
         self.assertEqual(4,sbt[1][0])#QUAD4
         self.assertEqual(0,sbt[1][1][0][0])#CELL For QUAD4
-        self.assertEqual("sup1_NORM_QUAD4",sbt[1][1][0][2])# profile For QUAD4
+        self.assertEqual("ForV650",sbt[1][1][0][2])# profile For QUAD4
         self.assertEqual([19, 20, 21, 22, 23, 24],sbt[1][1][0][1].getValues())# values for QUAD4
         self.assertEqual([0],ff2.getTypesOfFieldAvailable())
         vals,pfl=ff2.getFieldWithProfile(ON_CELLS,0,mm1) ; vals.setName("")
@@ -1064,7 +1065,91 @@ class MEDLoaderTest(unittest.TestCase):
         self.assertEqual(ff2.getNonEmptyLevels(),(1, [0,-1]))
         self.assertEqual(ff2.getFieldSplitedByType(),[(0, [(0, (0, 4), '', '')]), (1, [(0, (4, 84), '', '')])])
         pass
+
+    def testFieldOnPflRetrieveOnMdimRelMax1(self):
+        fname="Pyfile43.med"
+        m2,m1,m0,f2,f1,f0,p,n2,n1,n0,fns,fids,grpns,famIdsPerGrp=MEDLoaderDataForTest.buildMultiLevelMesh_1()
+        m=MEDFileUMesh.New()
+        m.setMeshAtLevel(0,m2)
+        m.setMeshAtLevel(-1,m1)
+        m.setMeshAtLevel(-2,m0)
+        f=MEDFileField1TS.New()
+        ff=MEDCouplingFieldDouble.New(ON_NODES,ONE_TIME)
+        ff.setName("NodeFieldPfl")
+        arr=DataArrayDouble.New() ; arr.setValues([1.,10.,100.,2.,20.,200.],2,3)
+        ff.setArray(arr)
+        pfl=DataArrayInt.New() ; pfl.setValues([2,3],2,1) ; pfl.setName("PflNode")
+        f.setFieldProfile(ff,m,-2,pfl)
+        tes0=f.getFieldOnMeshAtLevel(ON_NODES,-1,m)
+        self.assertEqual(ON_NODES,tes0.getTypeOfField())
+        self.assertEqual(1,tes0.getMesh().getMeshDimension())
+        self.assertEqual(1,tes0.getMesh().getNumberOfCells())
+        self.assertEqual(2,tes0.getMesh().getNumberOfNodes())
+        self.assertEqual([1,0,1],tes0.getMesh().getNodalConnectivity().getValues())
+        self.assertEqual([0,3],tes0.getMesh().getNodalConnectivityIndex().getValues())
+        self.assertEqual(2,tes0.getArray().getNumberOfTuples())
+        self.assertEqual(3,tes0.getArray().getNumberOfComponents())
+        expected1=[1.,10.,100.,2.,20.,200.]
+        nodeCoordsWithValue1=[10.,2.5,0.]
+        nodeCoordsWithValue2=[10.,3.75,0.]
+        for i in xrange(3):
+            self.assertAlmostEqual(nodeCoordsWithValue1[i],tes0.getMesh().getCoordinatesOfNode(0)[i],13);
+            self.assertAlmostEqual(nodeCoordsWithValue2[i],tes0.getMesh().getCoordinatesOfNode(1)[i],13);
+            pass
+        for i in xrange(6):
+            self.assertAlmostEqual(expected1[i],tes0.getArray().getIJ(0,i),13);
+            pass
+        del tes0
+        #
+        tes1=f.getFieldOnMeshAtLevel(ON_NODES,1,m)
+        self.assertEqual(ON_CELLS,tes1.getTypeOfField())# it is not a bug even if ON_NODES has been sepecified
+        self.assertEqual(0,tes1.getMesh().getMeshDimension())
+        self.assertEqual(2,tes1.getMesh().getNumberOfCells())
+        self.assertEqual(135,tes1.getMesh().getNumberOfNodes())
+        self.assertEqual([0,2,0,3],tes1.getMesh().getNodalConnectivity().getValues())
+        self.assertEqual([0,2,4],tes1.getMesh().getNodalConnectivityIndex().getValues())
+        self.assertEqual(2,tes1.getArray().getNumberOfTuples())
+        self.assertEqual(3,tes1.getArray().getNumberOfComponents())
+        for i in xrange(6):
+            self.assertAlmostEqual(expected1[i],tes1.getArray().getIJ(0,i),13);
+            pass
+        m.write(fname,2)
+        f.write(fname,0)
+        #
+        pfl=DataArrayInt.New() ; pfl.setValues([3,2],2,1) ; pfl.setName("PflNode")
+        f=MEDFileField1TS.New()
+        f.setFieldProfile(ff,m,-2,pfl)
+        tes2=f.getFieldOnMeshAtLevel(ON_NODES,-1,m)
+        self.assertEqual(ON_NODES,tes2.getTypeOfField())
+        self.assertEqual(1,tes2.getMesh().getMeshDimension())
+        self.assertEqual(1,tes2.getMesh().getNumberOfCells())
+        self.assertEqual(2,tes2.getMesh().getNumberOfNodes())
+        self.assertEqual([1,0,1],tes2.getMesh().getNodalConnectivity().getValues())
+        self.assertEqual([0,3],tes2.getMesh().getNodalConnectivityIndex().getValues())
+        self.assertEqual(2,tes2.getArray().getNumberOfTuples())
+        self.assertEqual(3,tes2.getArray().getNumberOfComponents())
+        expected2=[2.,20.,200.,1.,10.,100.]
+        for i in xrange(3):
+            self.assertAlmostEqual(nodeCoordsWithValue1[i],tes2.getMesh().getCoordinatesOfNode(0)[i],13);
+            self.assertAlmostEqual(nodeCoordsWithValue2[i],tes2.getMesh().getCoordinatesOfNode(1)[i],13);
+            pass
+        for i in xrange(6):
+            self.assertAlmostEqual(expected2[i],tes2.getArray().getIJ(0,i),13);#compare tes2 and tes3
+            pass
+        #
+        tes3=f.getFieldOnMeshAtLevel(ON_NODES,1,m)
+        self.assertEqual(ON_CELLS,tes3.getTypeOfField())# it is not a bug even if ON_NODES has been sepecified
+        self.assertEqual(0,tes3.getMesh().getMeshDimension())
+        self.assertEqual(2,tes3.getMesh().getNumberOfCells())
+        self.assertEqual(135,tes3.getMesh().getNumberOfNodes())
+        self.assertEqual([0,3,0,2],tes3.getMesh().getNodalConnectivity().getValues())
+        self.assertEqual([0,2,4],tes3.getMesh().getNodalConnectivityIndex().getValues())
+        self.assertEqual(2,tes3.getArray().getNumberOfTuples())
+        self.assertEqual(3,tes3.getArray().getNumberOfComponents())
+        for i in xrange(6):
+            self.assertAlmostEqual(expected1[i],tes3.getArray().getIJ(0,i),13);
+            pass
+        pass
     pass
 
 unittest.main()
-
index 73e598e958582af3c23390101cfe407a47f7b3bb..493c0cda508bc9654d6ca2a048159918290c1467 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
@@ -186,3 +186,71 @@ static std::vector<const ParaMEDMEM::MEDCouplingUMesh *> convertUMeshVecFromPy(P
     }
   return ret;
 }
+
+PyObject *convertVecPairVecStToPy(const std::vector< std::pair<std::vector<std::string>, std::string > >& vec)
+{
+  int sz=(int)vec.size();
+  PyObject *ret=PyList_New(sz);
+  for(int i=0;i<sz;i++)
+    {
+      PyObject *t=PyTuple_New(2);
+      int sz2=(int)vec[i].first.size();
+      PyObject *ll=PyList_New(sz2);
+      for(int j=0;j<sz2;j++)
+        PyList_SetItem(ll,j,PyString_FromString(vec[i].first[j].c_str()));
+      PyTuple_SetItem(t,0,ll);
+      PyTuple_SetItem(t,1,PyString_FromString(vec[i].second.c_str()));
+      PyList_SetItem(ret,i,t);
+    }
+  return ret;
+}
+
+std::vector< std::pair<std::vector<std::string>, std::string > > convertVecPairVecStFromPy(PyObject *pyLi)
+{
+  std::vector< std::pair<std::vector<std::string>, std::string > > ret;
+  const char *msg="convertVecPairVecStFromPy : Expecting PyList of Tuples of size 2 ! The first elt in tupe is a list of strings and the 2nd one a string !";
+  if(PyList_Check(pyLi))
+    {
+      int size=PyList_Size(pyLi);
+      ret.resize(size);
+      for(int i=0;i<size;i++)
+        {
+          PyObject *o=PyList_GetItem(pyLi,i);
+          if(PyTuple_Check(o))
+            {
+              std::pair<std::vector<std::string>, std::string> p;
+              int size2=PyTuple_Size(o);
+              if(size2!=2)
+                throw INTERP_KERNEL::Exception(msg);
+              PyObject *o0=PyTuple_GetItem(o,0);
+              if(PyList_Check(o0))
+                {
+                  int size2=PyList_Size(o0);
+                  p.first.resize(size2);
+                  for(int j=0;j<size2;j++)
+                    {
+                      PyObject *o0j=PyList_GetItem(o0,j);
+                      if(PyString_Check(o0j))
+                        {
+                          p.first[j]=std::string(PyString_AsString(o0j));
+                        }
+                      else
+                        throw INTERP_KERNEL::Exception(msg);
+                    }
+                }
+              else
+                throw INTERP_KERNEL::Exception(msg);
+              PyObject *o1=PyTuple_GetItem(o,1);
+              if(PyString_Check(o1))
+                p.second=std::string(PyString_AsString(o1));
+              else
+                throw INTERP_KERNEL::Exception(msg);
+              ret[i]=p;
+            }
+          else
+            throw INTERP_KERNEL::Exception(msg);
+        }
+      return ret;
+    }
+  throw INTERP_KERNEL::Exception(msg);
+}
index 5c8996fe8ff34720e5b9276ad1e0bc7f35c4fa49..ef7f4fc529e47e5eb03e7f6b68bb35a9f6164dd4 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index 1b0a07a7ee6320fdd42418d2f1cc6663b0b13c39..d5c8035e8bf4a7dbe8f3756516701cdc0947bf15 100644 (file)
@@ -1,5 +1,5 @@
 #  -*- coding: iso-8859-1 -*-
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index c27d98dc8e9ae0642bdb1e6c8b07097aa54d7c5c..25e57944be5dcbb8da96b9cb8cada0a7668e7ac4 100644 (file)
@@ -1,5 +1,5 @@
 #  -*- coding: iso-8859-1 -*-
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index fcb585183762d302a30b1bdfda533807104a97b2..26ec5f933965155f672822a4848b30657c6f0ad5 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index e3c2ccc9ebe2d5b549a19a5c2bd5ce342c6fec4c..f4f7362fc2dec5149a522c28ad808bb36282fb70 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 4605e9e362c88c4554d8132efa388cc4e1690e77..bdd7278d6e27023e26fccbd298cd3df7a70d7621 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index fedd8645a22b6b51653a6feec84833b2e9b62d3a..aced95abda0f9146529eb7ea579dec9c6ca9b5c9 100755 (executable)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index 029aa4af7ed1c77cf260dd9f75eea683d705e920..abed31512c68dd77d0258b86242ea9fd66a22a0f 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index eea9b4638ffe30eca45d3b74025934144d7cd9ad..eea4c594984024ad923a5601fab0e3051372eb7a 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 8deeb7a32582fd4a6110d8f0c935541a80f5edce..9e9b6d872660eee7695fc744f87baf1fe3d01f13 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index b9fe7f34f84dad36922b245811abbb1248762d4b..1d93eab89bbfe6154fa143c6542a0ec3f6cd43f0 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 2fa633a8c0ef6c228c09a5fdf3308076436d1a3e..4587373353685da0a3ad57026e5dffe4e107c40e 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index 053c9d013f1d59a731f03c06c4f6c3647b1245a9..8a806345aaac92a76885fdaf73a3b9193069df5a 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index d1690ca5d30569ef44f7953bb591125bd8fac035..9359d06af3100ecba36d338d32c042654958d025 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index 7a02533a7d16af99b1c4bc0ac96ef445d04f2726..e44c6dcec1ae84017d914a11ed243b86f4f4793b 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index 9e5080b68f3e5b2725467850d0c0ef6f0aedb91e..533d82326a19e4ae24c661403f4a190caa6230a4 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index 69badeafe542ca82bd51fd179f1caca45379fbb4..90ff170f045796c763c7ddd73a5f933ab08a20ab 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
@@ -88,6 +88,13 @@ IF(MPI_IS_OK)
     SET(medpartitionercpp_HEADERS_HXX ${medpartitionercpp_HEADERS_HXX} MEDPARTITIONER_JointFinder.hxx MEDPARTITIONER_MetisGraph.hxx)
     SET(medpartitionercpp_FLAGS "${medpartitionercpp_FLAGS} ${MPI_FLAGS} ${PARMETIS_FLAGS}")
     SET(medpartitionercpp_LDFLAGS ${medpartitionercpp_LDFLAGS} ${PARMETIS_LIBS} ${MPI_LIBS})
+  ELSE(MED_ENABLE_PARMETIS)
+    SET(medpartitionercpp_SOURCES ${medpartitionercpp_SOURCES}
+      MEDPARTITIONER_UtilsPara.cxx
+      MEDPARTITIONER_JointFinder.cxx
+      )
+    SET(medpartitionercpp_FLAGS "${medpartitionercpp_FLAGS} ${MPI_FLAGS}")
+    SET(medpartitionercpp_LDFLAGS ${medpartitionercpp_LDFLAGS} ${MPI_LIBS})
   ENDIF(MED_ENABLE_PARMETIS)
 ELSE(MPI_IS_OK)
   IF(MED_ENABLE_METIS)
index dd26c4193e242f5f11b5da0bec10e09b0753de45..87310b46a9fe7deeef7d35db94e4a18146271320 100755 (executable)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index ed685f2ccae4a1ed06230dc8b758f63c795fb069..d98f89ebc82c951a52cc2391c25e5a8d6d28588f 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index da81a19ac07996662cec1a781743473ab0bcbc44..713216e9277bf0f3630b11cdf1237c589f95b82a 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index c6d67b0577be1795907fb30d17e7fbfe06fb996c..80f92217997447bf5bd8f21775c439d62bbbef18 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index d36fb0c64546f9c86b07a86a0a08f2fdf281588d..71e06d3a47a994ed406a5cd34f3d069ff864f787 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 9f513ce2d949b0813764a720cd9e64f768c65b02..87dbc36beb496bdcc63dc62b2b8bf06732c26ea7 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index ebaeb6d7feb8e184a8c1b0afbcb7de0d59d6160f..e1714f0823457a1e17c64a93dc1f341e2441d9c5 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index aeca871811f02205f326a0294439da4e7accc18d..2368d0cd8f6d40193bc4674aa64a07dde0bfa156 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index cd964147a4e18fe693162ea427c2df7aac028e95..4ff58ddd623f482bb7d3da8e6c55682771f6f24e 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index bc217001badbd8eeea3df50d8b5eb9cabb194243..c2c997d0e060d096b196ddc4ccd7113cd872f0e5 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 #include <libxml/xpath.h>
 #include <libxml/xpathInternals.h>
 
-extern "C"
-{
 #include "med.h"
-}
 
 using namespace MEDPARTITIONER;
 
index bebac0d9145fcd3ccd6d4e7574de522f7520e84c..af6a8758a7f7ada18d89d0bc001ecf55ace151aa 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 57ea4f540f9a9def088f0e5ab15cc08a00968980..edae2e9818dc7f21fe77ecb0efdc52aa2869a474 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 13b72dd5a9c270023e5462e905a3931ae78fc28d..06674a8fcefee8a58ac59f1736d0c5b9828853c4 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 2406505c99a50b2431914df37ab30ca18107d446..9a7df8f5c94531acfd83922c2fda1aed794c83f4 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 #include <fstream>
 #include <sstream>
 #include <iostream>
+#ifdef WIN32
+#include <time.h>
+#include <windows.h>
+#endif
+
 
 #include <libxml/tree.h>
 #include <libxml/parser.h>
@@ -194,13 +199,22 @@ void MeshCollectionMedXmlDriver::write(const char* filename, ParaDomainSelector*
   xmlNewProp(node, BAD_CAST "ver", BAD_CAST "1");
 
   //Description tag
-  time_t present;
+  time_t present; 
+  char date[6];
+#ifndef WIN32
   time( &present);
   struct tm *time_asc = localtime(&present);
-  char date[6];
   sprintf(date,"%02d%02d%02d",time_asc->tm_year
           ,time_asc->tm_mon+1
           ,time_asc->tm_mday);
+#else
+  SYSTEMTIME    st;
+  GetLocalTime ( &st );
+  sprintf(date,"%02d%02d%02d",
+          st.wYear
+          ,st.wMonth
+          ,st.wDay);
+#endif
 
   node = xmlNewChild(root_node,0, BAD_CAST "description",0);
 
index 2b269960e9fc71c1080360e72c68594c2968a90e..7990fa4104cd87ddee4b8207270651f6590bba95 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index dda41050b5aa7ff96e613c6eadaa1bc5a3b5f48d..5f89b9573ba69d1f07ab7803c48f3f26efbd4d4a 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index e7e3b12d76697ee683b0b7ff87f7530db436940b..6a0f80ecb09dfa9f9c459930b0bfbe9fb46fe3d3 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 5046ac4edc2efb5eec56e6b70ab0a4fcc0eacd7a..5e85a6f94bf59bd07da938dbf5fc63837e359ba9 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 820544859ccf7a72d5a4987023afc163866afba0..48f7a6ca66eb84dc488d4ce393cffb5c95ec9dbf 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index ac33e6a152c8d58c571a2331b871e6712330c2d7..cfe465a9a8d10a89992b10d3b379ff3a7eefeaa8 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 82254607ea2c2324f020fd914a1af9d256bbfebc..a97f22089d2232e823a12907ee01637d310499ab 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 8dcf1207d051d8e14157d4815007ed164d6893b6..72eaeab73b56d0550738302f5cae15134a248387 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 99b542707de05efaccd0d975657ddcb1a7ef0c29..0aa821cdffab56904f954d1e3d740d260d0ec073 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index b8ef1f3474dbf96d7fc2091d517e6ab79f5092ed..762afbc52f6c75f04ef1e4998b862f3d4959813b 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index da02771abe6ce238a1b819a29e34ade6dfc213c0..e50a55b56a916ff797e51812d6e69d0c7991d70c 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index e0b9707ff9d293bc3716cc41b821593d05a8857f..32574736eef2471334f4d1be28c9391b1900f324 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 2253ce1cb6695342bdc43a731a60356207f50535..4ac6173b91f064e652655d159cb04cca11b72df3 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 203a496a6aee55d2569b5aaca4316370f468af2f..f3ef8bcbc1be13d443807932de25112e37b77609 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index fc1583aa835237c76f05e935c421956a9fda834a..160940347a480bedd3cb883759260062b15611d6 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index cc5c874823252a6a530246e703d42f465ec70f7f..6bbe1a86c2b6e3bf54e65dd28de5aebd07bff9a2 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index e69cfe91e932366837c10be2239ce98c07933c3c..02b74cf2855573bfb6055a2b0108e6725dea3601 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index fa63df8ba41530fb1e2ebae42bc71a45a4311e86..aa4967cae60c42877555dacfdbe4590c6f02c6c9 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index c8e7e5ae0e75b528c8ca6ff14da07b4955ad0782..c6039a03070dc2679fcd957a8009ffd8906d44b9 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index 751ea2cca6a65d341bfeb53022052dec99f07035..8e2b10f54313c12027f34fb3ce740b9b97daa498 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index 155e0bfafc877018fc6b35e83223a17ec0f52974..1a377236333fa069aaaafc4779fb85d3bc5f99e8 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
@@ -80,6 +80,25 @@ void MEDPARTITIONERTest::setbigSize()
   setSize(200,300,500); //nb of hexa9
 }
 
+std::string MEDPARTITIONERTest::getPartitionerExe() const
+{
+  std::string execName;
+  if ( getenv("top_builddir")) // make distcheck
+    {
+      execName = getenv("top_builddir");
+      execName += "/src/MEDPartitioner/medpartitioner";
+    }
+  else if ( getenv("MED_ROOT_DIR") )
+    {
+      execName=getenv("MED_ROOT_DIR");  //.../INSTALL/MED
+      execName+="/bin/salome/medpartitioner";
+    }
+  else
+    {
+      CPPUNIT_FAIL("Can't find medpartitioner, neither MED_ROOT_DIR nor top_builddir is set");
+    }
+  return execName;
+}
 
 // ============================================================================
 /*!
@@ -971,12 +990,11 @@ void MEDPARTITIONERTest::launchMetisOrScotchMedpartitionerOnTestMeshes(std::stri
   int res;
   string cmd,execName,sourceName,targetName;
   
-  execName=getenv("MED_ROOT_DIR");  //.../INSTALL/MED
-  execName+="/bin/salome/medpartitioner";
+  execName=getPartitionerExe();
   
   cmd="which "+execName+" 2>/dev/null 1>/dev/null";  //no trace
   res=system(cmd.c_str());
-  CPPUNIT_ASSERT_EQUAL(0, res);
+  CPPUNIT_ASSERT_EQUAL_MESSAGE(execName + " - INVALID PATH TO medpartitioner", 0, res);
   
   cmd=execName+" --ndomains=2 --split-method="+MetisOrScotch;  //on same proc
   sourceName=_file_name;
@@ -1019,8 +1037,7 @@ void MEDPARTITIONERTest::verifyMetisOrScotchMedpartitionerOnSmallSizeForMesh(std
 {
   int res;
   string fileName,cmd,execName,sourceName,targetName,input;
-  execName=getenv("MED_ROOT_DIR");  //.../INSTALL/MED
-  execName+="/bin/salome/medpartitioner";
+  execName=getPartitionerExe();
   fileName=_file_name_with_faces;
   
   ParaMEDMEM::MEDFileUMesh* initialMesh=ParaMEDMEM::MEDFileUMesh::New(fileName.c_str(),_mesh_name.c_str());
@@ -1117,8 +1134,7 @@ void MEDPARTITIONERTest::verifyMetisOrScotchMedpartitionerOnSmallSizeForFieldOnC
 {
   int res;
   string fileName,cmd,execName,sourceName,targetName,input;
-  execName=getenv("MED_ROOT_DIR");  //.../INSTALL/MED
-  execName+="/bin/salome/medpartitioner";
+  execName=getPartitionerExe();
   fileName=_file_name;
   fileName.replace(fileName.find(".med"),4,"_WithVecFieldOnCells.med");
   
@@ -1205,8 +1221,7 @@ void MEDPARTITIONERTest::verifyMetisOrScotchMedpartitionerOnSmallSizeForFieldOnG
 {
   int res;
   string fileName,cmd,execName,sourceName,targetName,input;
-  execName=getenv("MED_ROOT_DIR");  //.../INSTALL/MED
-  execName+="/bin/salome/medpartitioner";
+  execName=getPartitionerExe();
   fileName=_file_name;
   fileName.replace(fileName.find(".med"),4,"_WithVecFieldOnGaussNe.med");
   
index 0a182195c71f87f79912ac00bde7f85bf2b5551b..5d1445ec8c65f2a8974a91ea86cb631f83c20b0e 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
 #ifndef __MEDPARTITIONERTEST_HXX__
 #define __MEDPARTITIONERTEST_HXX__
 
+#ifdef WIN32
+# if defined MEDPARTITIONERTEST_EXPORTS || defined MEDPARTITIONERTest_EXPORTS
+#  define MEDPARTITIONERTEST_EXPORT __declspec( dllexport )
+# else
+#  define MEDPARTITIONERTEST_EXPORT __declspec( dllimport )
+# endif
+#else
+# define MEDPARTITIONERTEST_EXPORT
+#endif
+
+
 #include <cppunit/extensions/HelperMacros.h>
 
 #include <set>
@@ -30,7 +41,7 @@
 #include "MEDCouplingExtrudedMesh.hxx"
 #include "MEDCouplingFieldDouble.hxx"
 
-class MEDPARTITIONERTest : public CppUnit::TestFixture
+class MEDPARTITIONERTEST_EXPORT MEDPARTITIONERTest : public CppUnit::TestFixture
 {
   CPPUNIT_TEST_SUITE( MEDPARTITIONERTest );
   CPPUNIT_TEST( testMeshCollectionSingle );
@@ -78,6 +89,7 @@ public:
   void setSmallSize();
   void setMedianSize();
   void setbigSize();
+  std::string getPartitionerExe() const;
   ParaMEDMEM::MEDCouplingUMesh * buildCUBE3DMesh();
   ParaMEDMEM::MEDCouplingUMesh * buildFACE3DMesh();
   ParaMEDMEM::MEDCouplingUMesh * buildCARRE3DMesh();
index 4671c179f6a64eb2776387993b0baa0d2c8969b2..a6bebba040eab7e5e54c7c1f648fcfb19a55a47d 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 68dbbdaee29277a61fa8df12506d959d59a8ec89..19dcc228349d2f92c4625d0351d3b12a34a040c8 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index 3b00f7c4d6d8c2dd3d9b5fe7c80c2ed4fd2b63ff..6a2551e4fb99b44ebe6ba477f552b84b9ede64e9 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 470d8164d31ec443872364ee3d1943597e77c79f..29073b76e9db96242c6f87dbe642f71b843166c6 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 1628e863b8d1678a39698f9c5d07a29fb3137342..236e8c6651c0f1bada4ebde5a3206678839ce9ed 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 650d4355bd5cd4ca7a160605912000177b37cacb..3cc23b634a5f155a24ff12004bd9ac3c9bce939b 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index 7c5541a5cf07279d7c6743cd5edd0297310cbb49..6a2e5adeafc19622d21e685d2f449e489aa035bd 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index c1b1b2be2d8aaa6cfd367f8fab1d77d686e6dd7f..14f1e76df801b1a6ceef5fe49728b2d9f7eadacb 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
@@ -28,6 +28,7 @@ INCLUDE_DIRECTORIES(
   ${PYTHON_INCLUDES_DIR}
   ${MED3_INCLUDES_DIR}
   ${HDF5_INCLUDES_DIR}
+  ${BOOST_INCLUDES_DIR}
   ${CMAKE_CURRENT_SOURCE_DIR}
   ${CMAKE_CURRENT_SOURCE_DIR}/../MEDSPLITTER
   ${CMAKE_CURRENT_SOURCE_DIR}/../MEDMEM
@@ -41,6 +42,7 @@ INCLUDE_DIRECTORIES(
 
 SWIG_ADD_MODULE(libMEDSPLITTER_Swig python libMEDSPLITTER_Swig.i)
 SWIG_LINK_LIBRARIES(libMEDSPLITTER_Swig ${PYTHON_LIBRARIES} medsplittercpp)
+SET_TARGET_PROPERTIES(_libMEDSPLITTER_Swig PROPERTIES COMPILE_FLAGS "${BOOST_FLAGS}")
 
 INSTALL(TARGETS _libMEDSPLITTER_Swig DESTINATION ${MED_salomepythondir})
 INSTALL(FILES libMEDSPLITTER_Swig.i DESTINATION ${MED_salomeinclude_HEADERS})
index d9db94162cb4a1897fd22cf22aa53608c16ce18c..2e6cb5ab1b8339b6ef625d1167fe8af642a2842d 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index 35ed7d3b74e755b31f8f329ed338c1db51d3c3e7..c07bedcc6fd52cadd63eee0a25fecfb6b588d161 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index 4c056b1057ff43317fe2d50f66824611dde75071..5f0b15f9184ec56bee51e402440ee829b547bcfd 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index 912fd13a0d3d00beef1ac495c46069b8333e4697..6257a508960bf32a8d39e8b296473b54523d0aa2 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index 53ceafeefac85e5b70c1c16f5e97fb57c3139262..34d9ff3aa6b545f3083f32620dfce973abb85fbc 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index 4ff7dfd33ab9df12942b47bc3babceda63b43f6d..1d8f71c12511d8d2cb6b543a7311d3879ba0f5d6 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index 0edaf8dac7c100296f5c5c8124ea72c4f5da6a63..dc3424c49f609188d8458582b462f7cb25e785a4 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index 90ef19962909c4569279e4461d8fe912fafeb98a..cdd2ac2a3441335c677a0dd372058b070a5a9199 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index d7bbf9320f5a961058edeb915e8b6a7911560dbd..ba7fd6885d33153999dd7cb493f0d37c23d50e97 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index 9865205e030b49766c06be6cb4183092064b906a..19438c548f02d453c2646d2a67ab0d32ac0793b8 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index aeb5e6ce3bcfb9a986cad222fa28135a6735f078..6a8eef9815b65745ad26db7bd28276ac37b18e6b 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index f614f26459b712d7d8c2e7ef546b62deeaaff356..9bb5cc1eafa43b266794fd38b361533e4d5a731b 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index e328cff4c866d17840a45c784743708ca84245e6..cadb4bd7496afcdfff85810e3b4906fa03c8cec3 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index d5c2445ef6e7e97953c52f07e2fc94e77c95d74a..0e09e6f244d6de06b103172e6eeb92670ee15ade 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index fef9b76b1a95dcefc482b19e6f15cdc82da54d1a..496938fd1f0913636a0702fa2a122903a1a8622e 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index a3b9e0a18607c064be62d119e32a523cea9486c2..4f811e2cf28011b0aaea5e13908d401bdf1f0c46 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index 78e71762a175b6a3fb193753a25dd05f9457a561..aa9ce8488e0d33c2c75ec7b4c140d1d90cf5e9db 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index 0399885f35e98830b53f07367061e4d1a42464b3..42359231303e0214eff4ecca559c51275e8be223 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index ac48b8531615c0866ab2561c1d969bd2e05f2558..184f2309f9d17f4ec1720ff76c11e0778ee10550 100755 (executable)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index d0d9b44da328811776920b6db3f00a9829e8dc32..f751551f591647117932fef5c9c8765def82f1e6 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index fd03d89fb024ce3e24cb57ebd4ce32ece4058a60..aedacc93d2dcef19dbcc6f58b7e80e09dd3e64dc 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 5bf9f4034542cb5300c428cdc8440c382f2801aa..20d4c8b1ad872159763aed030365a280b4dcb196 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index a148fdec33bf39df0ca51e058a22957277f02744..0f045a1525e8b45e922c259330a52411a54150a0 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index c86206805ddb615c382c85dd286f0a51f9db8639..874cb15112317631df4a7e6ead0ab8448a88314e 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index 902daded702cc609cbd486d7d67520bc97648ffc..3978e48d3d41308410dc8ad1986e45f601d1249c 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index e04391b1741b38ce2f10b7e5282e9b5e35372b80..3ffdc26a6c377903acde21cf8766e1b9b804feaf 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index ce9ee31950cf87f1867698546b6a030d334193a6..8b4949466b575f2a11470e1d88fc291efb0f3db2 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 13d6f70b74de69d59d14f62101a6b17a22986d2b..fd1a5c2991ba6a5c14d3233c673709796ed41034 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 18a699bed561766c58a12837a28dc36bb6835af5..07e75714f2855b704c91a43e844d924be5a3414f 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index b6f292a9a3cf18861ab593b37713c2447b82de10..709790499b2edcb6a26c922762303526011a624e 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index c39d7dd4a899e03115bd611649744a2f80545cb1..14453b882ded36e9850f65f9cd825b60973a7aea 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 81cea18e02d88939cab4e5ed7a71e5b70e893558..e601cb4814aa46723b33dafe41a4351fcbb072c7 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 9644a9e57e421f831e2697138e740b411ba9018e..b012e9a07e28583e8d0d603b8cdfd2680b7d19ed 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 4c23391e403b53f13ab5488ec1d7252164ce1eb0..8af351d7638b3e3ade27cbc2709d4e009073a1f0 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 4e38ed227cbdd0f6471e06dfbe9bfad08cb10ec7..7d38ccaf506ea90afaa805038904a63e74668117 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 6a84eb5fa0f50a081ca510c34d9e123d5ca2f0ba..433cb7c72565682870ac24bd1cf004b2464da56c 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 20eaffe01363dc57ba5164069f2d6871002387f7..d8597c4d0b8ff988ef1f95376b9a1d1e1f5d6efd 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 76e2a076b4193e9afc27fa81645fb2294e136d23..b55199b3f6556b67e691aba125d76695258a919c 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 35e44262113119956a1e50105f700fa007c5b5c1..8d63e65f31a679ebf0a944eb3fcce12d35260ab8 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 9376266f1a5bbe0c35aa280ecbddef96da3d8933..3bf0c84bf9138043155a70fd665e6dd117ec0771 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index ff021f07db457a775aa4a37d2540b2565647cda6..bb68db75372838ac5629aeb388d79521f4f41bb6 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 63d93b8ba98f8edf16402d08b39b4d671af60f25..676ab9598c6e25bde436ee22c08acba751aa5643 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index d73c59c890384bcacfe9de25ad9d0f3f93682abe..1d6f9b3a3abf40c026bee912446102ccbc4e225a 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index bc9f1a9e481eb6c4e56cb3daf5177a62bca3a741..ec9c5d426dc3941d4d4005a707981dd6ea2c700f 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index a1b1a2a8d51a4dab61caa5f5a8241e83c9bca093..33494e33ed36c9ea68bcbce628855d36abfb1632 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index f084440dcb15c12ba61e3ddc4c921d84bc6df708..78b94284275366d5c9f4fdd2be8706d6e9bfca77 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index c360aa9ac4d9fedf96d039f3768a941f898d3c84..30367258933a5d48f0a2bb8b13ddca2057d9712a 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index efe9103dadbf9aa53cbdb544ab002541d6ef6a65..aceb50a246083d986eebfe249960ab09469ccca9 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 038425c54cfaae4a56d10b3046bd719a258d6ab6..fc6f4161070f8e7dcb0c09a09d34c6b80a67bd9a 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 4228f156a451859df47cb6b690848be20c017dcb..7cc187e7a35764b13e1a5250ebdeb07d2184989e 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index c07191c23a87ff5d6a959611c143ac4824bd4d55..9703da3b61bd334bd3549dddf25693df8c2a17c5 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index f154a11447fe2482c01235db83b9fe4adb486d73..b684f2d0dceb8dc99ab7101e760ab1b616b7eb66 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 634f15163910dbc0acafcb36a620e21ec720625b..75b0cabaf76a47e4d7420221e31184e08f3818fc 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 98284dc53798441001af49e80e40c45f37ba9036..87426ac15dd68eafa6672c0334ab840f2709fa13 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index e1b94bd5a2e511d0ec63d6414b3ca5c93c650ffd..d0338f343b84482dbfeb2c295ac9cc55447f4d30 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index d5fe4e2ec3abcdcf6b90dd6579d65b90071c8275..c049813efe04eb99beed0f34e1abc359ba02c55c 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 342e07413cf5e14f3e19d2b4dff7a354606b5b5f..2a492e73bceda9721ebc825f9e42a85bd4e78d7f 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 1783cdba9afd0a8c08256d7ee10e573bf7c5fe90..2575c55dd18182be4b8c69c07ad66a37724eb561 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 0eea65601072ebf47f080911332ad085c8a68431..4f0910f185f6817c1a8c7096a6f46b84aec7a3da 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index bd169744d1fa827a9b1c4724857bba92555745c4..c378a16960652909bceefc73280d5bdfcee7ef94 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 74575b7b5fd9a5576cc0855faa74fe5cec2c7bfb..85039451b65b80192a5a9fe8ca4a47a739824e83 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 6375ce7bf78f866ebd2ae2c9f7a6b34bbafe1a03..4a11f9f3a449a12747b99e492bdbf7b6986b955c 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 36038faed3c21f59dabce3f61b160798f3ba9fd1..b96814c216d2f6437943d457198c607b41b6aeb5 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index b9458fda98dd0bc6370f0e122cffba6b485fbddb..06a06d663b422847d39e954f0b6aeb38865b99c3 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 81f01a91f44b770022735f7b6e0a22a7b5594fad..c483d2b07c3ba239fe220fe34b927f8551ec0162 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 9262c36025a1917ae808971f4bb86961cce86ded..ece659ec34fad25b22c494e75336fbe5ee2b1d7d 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 5ffa58fc8e06610c42f6db457072394659faf75e..c779a49e905ba527b8de59523c34cadef67a8b71 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 75b075c2d76786c5b6533b4cadd8bc72247f5e37..f8bb14137def8e56a1eaf193a35fb83711e3f2cc 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 52b9cc1a0ffe9e5cf71abeff37a2e7494b23d977..da3acd4f287a2384eff111343de5815cf5b24754 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 515e9626fff819ffca36418fa631ca5bf87e83b9..bdb975a5b0bc8f73a98f2a737b92221dbc6ba1f1 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index b9d12be5118c2fb635639ed67c968f781e7a093f..ca756b3346c146d08d1aa9ceb59f0fa13a9ef1ed 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 409579384be87b5e6b48f6571bf51d93e9788549..8a15cfa7a514fe4c226f2c9651a45d3d132eb5ea 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 33b5d215bb67d7658a761e0defc3b69931e466c0..2ef1c513223eeeca464b86b488b12b38bc2ad23b 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 9c94c0b7614f491305500d55b0871e39eac7328e..4e0299054b929c8619328ffd37d1ff0bf441486a 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 8bd43242912630b5a04a55cdf2b312b536173a84..b13d3828fea816575ed6464d33bc440a97554884 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 410f3f691c3e239409799e6aaa81c0f7d9173cca..a4819739f8242f73eb26c178899db49a7be4bd52 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index b43c4a473b7ab62d047c3680a81c234179dafe25..5d6a01c4d8075b6fcdfcb17b3a890f7cecd0b1c6 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index ca4ded225830732c222b789277aace1da52770dc..a17514d5e703afd4c9a38d1bde02adc7b521e482 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 3c233108940fb79b2a178f94b1b297f29b337ef6..5757d93401c17c9e14f4caf57d9abbe9d5105481 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index b1e3aca4e10201809d70dff3182cd92deabc4a49..a2db4734389a6950b82549fff3355679134c51bf 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 0abc1dd6b813448d690f7c0b954b977e928ab9f6..0ef87b27fa90868e9b9244bd04f9504b756f290d 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 66b6e36a74b81a74fdf3a300f6dc3de4e67b1723..d2f6ca9b130ca4d7c798fe681ddba150dc737055 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index dccac62327fec9bc59ec0ae0eaa23b9177c56602..be9e7966a1d5acaa08bb642b8026ba8e3bcf5e9a 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index bc9f4c3abb6328c25bc3e11e46742aa6e2973cea..430e4ec04b3f8adba9385f9ccb069ee139c237ff 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index f85104e15856a10dd5304c3cfc1692b0fd7f3304..2eed6076acc85212c773eb7b7ee17b010f304e4f 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index dd72eecf6d3849e4f678ad15fe9a18eecc1facc7..ec9e621f1a7edf6b648d0da8f50a4f130d05af64 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index 774b4154ec10b0da1377d24bfff6fe0b7efa9a86..3c0767f2223d4f2e0cc2b9e3628b7fb07f36261d 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index 01ec7797962137b7eab839d5f6e9e8f7239a51ef..376a9347d8cf4ada5860e22a1c046d2662e2926c 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 43ec14766a9120ec1a6f0de7c5383f57a101eae9..7766cb2d5733610af5cad9ee3d9ed15f2075e5b2 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 6d26d2a4e700e6d1303ab7a6db06ad2282dec5ef..deef24002ac21869d9ef0bb2122727e4a2933f32 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 8f2980c23bfb022174323638d1a47f1f10ac53f7..6b594e3bde1ef7798af4cc9d80cc5a7cdd899fad 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index c5a43875417971cd2b72b5173d603d623b094135..125ded85a9afd84adae6a694cd7a98ef5575cf14 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 57cd8f8a5f82b6e93966e348c4570d56a2ccbb79..22108d361b6421ac7944cd185a555e3b1d6999ea 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index fea6078442b395b756fe6903697aa6fda8d3685a..d7948458451c340bacd732b5c543fe84d0bd2d6b 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 60f1e2c86f602613a23ce85a5ffbe91a494f34bf..0bf55d2bf9ba8ff971b4ab6444c2bc5c70bf694d 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index 1526ce906892d92e9b2e7bfaec827f9889a6827e..34d71fb9b3670ea1ade9f892afb87a4575b70f17 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index e65e67429039980b5bcd7283da214ec71b6f3f07..ab62d870419eb7a86b039932e274c69831d844b8 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 7510854d4c42494769e4aee3385989c56fe4dfb0..609727d9ce27fd88f9be5852e85a0a8ab4f03b14 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 5ba80a21543996fa83d0e9d622b05a507e1636ea..e9ced97f1faa503fc8a1278a6aaeb03d78b20574 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 124d165b7b5b93cb87f49eaa1724fd7e76577a1b..ad3baf7f736edc586ecc420c12b079bf265c2415 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 17917b06ad5fd635cedeb6bea8aaaf71649b290b..1ec6fce0c1d49cfec2ed788db81a00b9b570fee9 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 92940b73a24d9f5bde7292cf1e64d90e252bfdc4..d76417fecf0363821399c985e6752c7d4d34d1f8 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 072e3761ebd2cae93bbb19e79fc451c4ad9fd14b..19b446cfa613e8a2ff6923deddc865d01e357a89 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 296b94018d78fd36c8d65d4fb6e1fdeabf2a71a5..555ffdada4fce9d94d79fbec7f9525a6b19c9451 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index ec3893402a0dedf06bf2afe1fe471d89dedcfbd5..de07c5c12eac0da9d0b0fbd30185db0cddf5cba4 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index e42204ef9b77279520a0aa10b5ae54b9a7e0185b..64b68cc6b51740155c6938cf30f4b0ba564a201b 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 09d2e93f10d8656a86835d116cdeb19102ec65a0..9155cd1c884aa1541de00bc965bc8f7083427e5f 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index bd8e826ff18c78cbd57cd08b218e964af3a9eea6..e620f25e7e8fd297953465d79e5c3995664c8bdb 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index b4d06b4dfd82c626b84b1bfd5611de2282007e58..537e47e4c3bdfbca40a32eead844fe3193ca75a6 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 67df9f2c0d6df46f393c85f5f0552eeba0432631..e343f2d8074bc37c27bae827ab23f2e44b252eee 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index f1ab84f62bcbd3e3bc4c5960b3a62f65c309951c..5cbd5d3c822f932a53b9b591cdb46712b5f24490 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 0a33046e62711b1c46d39ccfd8cd83301e72457f..4fd8e16f65466d7b71d65df22d18356916277b53 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index deae00fe5d7384220e78d0b768bebb214cadb215..bc59f994b5aa65c099e3d12ad52b832b3f6cd863 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index dad05cbdf8b6b568eccc68afde6f1d5efdf200c3..9b3d1eaccd70d379af6f5b7dbf45ef53c43b06db 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index b1145d2a5a69b5e982763fe155e9510841bfa63f..70603ea806034260bcae4ac5f544a50c1e117733 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 5c5fdbb8cc311fb2cf883f990254cd8afb0974a4..f35f8083416924c2b2b6ef5434c760af581fa41c 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 74b8627bfd32e3ccb3b62881bae7357f721a8823..cc7741bda5335b24620b3028440c49fe2c1040a4 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index fed215a563eb630946e061d36c29a76d539e1b82..2cda2fa2515035a558c26d80a4eb5b279e4feeb0 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 74384dca848f56e7fefed63ada6ac66a3bfb0864..b51f53e61c4d705a0b6f8448a0f1987db891266b 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index c56c6c57fa6ca590427a88ba6e11a2a2197a47bc..5ff0c75726a41fbea562e53056825bec23dc6faa 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 505be972b0e01e44582f34cce78fe4bb21f3a739..f355f1bf188172ccde51751f39ad61e75a8311da 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index c37952089a7d3b387d018815e9c58682d76d2065..c0e5904796fabac86a9de4e6cd17faed97d500d4 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 87400106d8f86f6079778eafcbb37eb2b9088089..2d9feba3325c889a500444f540154f6cc8439290 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 2d04d2e056775c3ce482e97c39562d91b28dc5d1..5333678f45350b03f11b4c3efe98d682c4eb63bf 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 92d4ac05ce0a8b4af4c13a939d04325cea86aa4a..61af0ca31825bc73f481aaddef525b21e80baf5a 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 5df7cff360f01fb9fd760f657f08c8fc8400ccd2..2642bafdcaa753f6c0a8d2f6611c22fdf41a01de 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 3507d5d90b39b72d2cfda3c456e5ed87d95e9064..3f3e82d91aec73a40cbf81a4c43f0107364fa9a6 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index c5b5a262f020492cffc3ce12f7f22d654521ab33..286831130b404cc89dcd4250d5210639e2e2518b 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 055a639d72647627381740024c0ecc72b47704e6..4e3acad7199fde2c650933b892b1890000b5318e 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 9806436f2d4a88ff4742c7d17847cef96a590dd2..6ad84eac23bca032e384844f19986b21f37dad28 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index ad53976a127fdf6a20da172a0ad11ddc5ae5e304..a889bea1fc82abb910d2e44de7b3687ed554e121 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 667cb4f8fc123718b05e0e3d808dfd297c7d35e6..8c1bd4d4fb3a19e4b86905d2deac338d48bfba51 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 640431b233c03c5b90da611b3156d754e11b21fe..413b363cf775d980f3bdacc245ad0236629a95e2 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 40aeaea353c55924eca0856ea0ab1e1279d8cd75..d4de72f067131cb59a0177b2cc69d0f3c064685d 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index 1230c2a69834d422f2a488037011f9c08ed848b4..59ed6b1d45c06a9d08ce1b08d9b005305581aeec 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index 9effbf41592fbfe9b48b76d5f656aa506471c319..58aae1138d967787a8ecc3495ca0ddddfc94b227 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 9f5a35314b459aa1225e2861f62f5725f8689d64..89819e4a5fcbfa63dd3d384f6f6f25ebed4c784e 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index e227588a3b44f04450008753faee1bcfada80b6b..b46496b8629e8490e2db55ba9bfd49ee4b451c73 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/env python
 #  -*- coding: iso-8859-1 -*-
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index f6a2781115a2b489d993429f9bcc427e1b3b71e9..ffb9974e7f46524ea8b293902e99b8512acff271 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/env python
 #  -*- coding: iso-8859-1 -*-
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index 856622bb5b91c3763446954647be25da5ec87116..4dccdee64098ed3a1b021b2a8dbdbd151ba85b32 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/env python
 #  -*- coding: iso-8859-1 -*-
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index d6e32ff3c1e42677122606e5448b78b98af0cc25..62db787271f91e2ea7b60fdf50d5cb8c5222edef 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
@@ -45,17 +45,20 @@ SET(renumber_SOURCES
   renumbering.cxx
   )
 
+SET(renumbercpp_LDFLAGS medmem)
 SET(renumber_FLAGS "${HDF5_FLAGS} ${MED3_FLAGS} ${BOOST_FLAGS}")
 
 IF(MED_ENABLE_METIS)
   SET(renumbercpp_SOURCES ${renumbercpp_SOURCES} RENUMBER_METISRenumbering.cxx)
   SET(renumbercpp_HEADERS_HXX ${renumbercpp_HEADERS_HXX} RENUMBER_METISRenumbering.hxx)
+  SET(renumbercpp_LDFLAGS ${renumbercpp_LDFLAGS} ${METIS_LIBS})
   SET(renumber_FLAGS "${renumber_FLAGS} ${METIS_FLAGS}")
 ENDIF(MED_ENABLE_METIS)
 
 IF(BOOST_STATUS)
   SET(renumbercpp_SOURCES ${renumbercpp_SOURCES} RENUMBER_BOOSTRenumbering.cxx)
   SET(renumbercpp_HEADERS_HXX ${renumbercpp_HEADERS_HXX} RENUMBER_BOOSTRenumbering.hxx)
+  SET(renumbercpp_LDFLAGS ${renumbercpp_LDFLAGS} ${BOOST_LIBS})
   SET(renumber_FLAGS "${renumber_FLAGS} ${BOOST_FLAGS} -DENABLE_BOOST")
 ENDIF(BOOST_STATUS)
 
@@ -66,7 +69,7 @@ INSTALL(TARGETS renumber DESTINATION ${MED_salomebin_BINS})
 
 ADD_LIBRARY(renumbercpp SHARED ${renumbercpp_SOURCES})
 SET_TARGET_PROPERTIES(renumbercpp PROPERTIES COMPILE_FLAGS "${renumber_FLAGS}")
-TARGET_LINK_LIBRARIES(renumbercpp medmem)
+TARGET_LINK_LIBRARIES(renumbercpp ${renumbercpp_LDFLAGS})
 INSTALL(TARGETS renumbercpp DESTINATION ${MED_salomelib_LIBS})
 
 INSTALL(FILES ${renumbercpp_HEADERS_HXX} DESTINATION ${MED_salomeinclude_HEADERS})
index edcae61dc97dce5167ce4e63f02bc552b99a6af3..021ba4b9bcd5562c6bd04e627b76ec8c8230e53a 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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
index b5e7e89dfdc820408e3400367dfa16af39ea28be..e3c74701c22d113b80ef8473f90f7c35e98a8fe6 100755 (executable)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 4b2ea5d3083b48cd1d2346fa24602fff2e5d77b5..17bb550f65f7b389e455bf6fb422114f58cf3ff7 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index fc3753f35d3536751f6bdc831861584e6450f2d6..070723b78d245f7e31742b8bdde179028cea9ce6 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 0f0a46d5d0ab72fd61219a8067e5f6e34ac032fd..7373fc8cfe39c9b4973749f169dea1891a30ab65 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 20d7f3474944c300942f7c0116b0ac5a9a3536bf..8a2d05bd154f053c7e77e6cf771f99952659b189 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 838f07bbc213a4e53f8d24300ab1d27acfd4816a..202b8ccb2de583e7b70a8d160a0c06fa839c3be7 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 76f8604b18cc801ebd1da25efc6164a3e18f5742..22496a770f8f68814d08b74ec2b7971c6836e6e3 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 2bd11dcdb718d294b8649393830813130f4c5ef7..a0548cf85dd7f5b8bee0af39ce02e9517fce06cb 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index e998c5f60ce5dc87236f10f93f97b4f4f89b8baf..a7bab20d235ec2c1741bbbfc46f303737a86ac1e 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 24bab76a056c8a173f7c22a1f985c98fe83b05b5..8f0dc24cfb5fd48194fe27e9b211355a28d3758c 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  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
index 0454aff8afb4d07f16fbc654483c8519ec4b9bdf..249f2d4bda2d513e16c1a31ceeef6643c65a0672 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/env python
 #  -*- coding: iso-8859-1 -*-
-# Copyright (C) 2007-2011  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2012  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