# -*- coding: iso-8859-1 -*-
-# Copyright (C) 2007-2016 CEA/DEN, EDF R&D
+# Copyright (C) 2007-2019 CEA/DEN, EDF R&D
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
#
-from MEDCoupling import *
+
+import sys
+if sys.platform == "win32":
+ from MEDCouplingCompat import *
+else:
+ from medcoupling import *
import unittest
from math import pi, sqrt
fileName = "testExample_MEDCouplingFieldDouble_WriteVTK"
fs = [ field1, field2, field3 ] # field series
writtenFileName=MEDCouplingFieldDouble.WriteVTK( fileName, fs )
- print "The file name with correct extension is : %s"%(writtenFileName)
+ print("The file name with correct extension is : %s"%(writtenFileName))
#! [PySnippet_MEDCouplingFieldDouble_WriteVTK_1]
import os
os.remove( writtenFileName )
field2 = MEDCouplingFieldDouble( ON_NODES )
field2.setArray( valsArr2 )
- # max field
+ # max field
fieldMax = MEDCouplingFieldDouble.MaxFields( field1, field2 )
self.assertTrue( fieldMax.getArray().getValues() == valsMax )
- # min field
+ # min field
fieldMin = MEDCouplingFieldDouble.MinFields( field1, field2 )
self.assertTrue( fieldMin.getArray().getValues() == valsMin )
#! [PySnippet_MEDCouplingFieldDouble_MaxFields_1]
# transform the field to a 3D vector field
func = "IVec * b + JVec * a + KVec * sqrt( a*a + b*b ) + 10"
varNames=["a","b"] # names used to refer to X and Y components
- field.applyFuncNamedCompo( 3, varNames, func ) # require 3 components
+ field.applyFuncNamedCompo( 3, varNames, func ) # require 3 components
self.assertTrue( field.getNumberOfComponents() == 3 ) # 3 components as required
#! [PySnippet_MEDCouplingFieldDouble_applyFunc3_1]
#! [PySnippet_MEDCouplingFieldDouble_applyFunc3_2]
field.setArray( array )
# transform the field to a 3D vector field
func = "IVec * b + JVec * a + KVec * sqrt( a*a + b*b ) + 10"
- field.applyFuncCompo( 3, func ) # require 3 components
+ field.applyFuncCompo( 3, func ) # require 3 components
self.assertTrue( field.getNumberOfComponents() == 3 ) # 3 components as required
#! [PySnippet_MEDCouplingFieldDouble_applyFunc2_1]
#! [PySnippet_MEDCouplingFieldDouble_applyFunc2_2]
field.setArray( array )
# transform the field to a 3D vector field
func = "IVec * b + JVec * a + KVec * sqrt( a*a + b*b ) + 10"
- field.applyFunc( 3, func ) # require 3 components
+ field.applyFunc( 3, func ) # require 3 components
self.assertTrue( field.getNumberOfComponents() == 3 ) # 3 components as required
#! [PySnippet_MEDCouplingFieldDouble_applyFunc_1]
#! [PySnippet_MEDCouplingFieldDouble_applyFunc_2]
mesh.setMeshDimension(2)
mesh.allocateCells(5)
conn=[0,3,4,1, 1,2,4, 4,5,2, 6,7,4,3, 7,8,5,4]
- mesh.insertNextCell(NORM_QUAD4,4,conn[0:4])
- mesh.insertNextCell(NORM_TRI3,3, conn[4:7])
- mesh.insertNextCell(NORM_TRI3,3, conn[7:10])
+ mesh.insertNextCell(NORM_QUAD4,4,conn[0:4])
+ mesh.insertNextCell(NORM_TRI3,3, conn[4:7])
+ mesh.insertNextCell(NORM_TRI3,3, conn[7:10])
mesh.insertNextCell(NORM_QUAD4,4,conn[10:14])
mesh.insertNextCell(NORM_QUAD4,4,conn[14:18])
mesh.finishInsertingCells()
mesh.setMeshDimension(2)
mesh.allocateCells(5)
conn=[0,3,4,1, 1,4,2, 4,5,2, 6,7,4,3, 7,8,5,4]
- mesh.insertNextCell(NORM_QUAD4,4,conn[0:4])
- mesh.insertNextCell(NORM_TRI3,3, conn[4:7])
- mesh.insertNextCell(NORM_TRI3,3, conn[7:10])
+ mesh.insertNextCell(NORM_QUAD4,4,conn[0:4])
+ mesh.insertNextCell(NORM_TRI3,3, conn[4:7])
+ mesh.insertNextCell(NORM_TRI3,3, conn[7:10])
mesh.insertNextCell(NORM_QUAD4,4,conn[10:14])
mesh.insertNextCell(NORM_QUAD4,4,conn[14:18])
mesh.finishInsertingCells()
#! [PySnippet_MEDCouplingUMesh_findBoundaryNodes_1]
#! [PySnippet_MEDCouplingUMesh_findBoundaryNodes_2]
nodeIdsArr=mesh.findBoundaryNodes()
- assert nodeIdsArr.getNumberOfTuples() == mesh.getNumberOfNodes() - 1
+ assert nodeIdsArr.getNumberOfTuples() == mesh.getNumberOfNodes() - 1
#! [PySnippet_MEDCouplingUMesh_findBoundaryNodes_2]
return
mesh.setMeshDimension(2)
mesh.allocateCells(5)
conn=[0,3,4,1, 1,4,2, 4,5,2, 6,7,4,3, 7,8,5,4]
- mesh.insertNextCell(NORM_QUAD4,4,conn[0:4])
- mesh.insertNextCell(NORM_TRI3,3, conn[4:7])
- mesh.insertNextCell(NORM_TRI3,3, conn[7:10])
+ mesh.insertNextCell(NORM_QUAD4,4,conn[0:4])
+ mesh.insertNextCell(NORM_TRI3,3, conn[4:7])
+ mesh.insertNextCell(NORM_TRI3,3, conn[7:10])
mesh.insertNextCell(NORM_QUAD4,4,conn[10:14])
mesh.insertNextCell(NORM_QUAD4,4,conn[14:18])
mesh.finishInsertingCells()
mesh.setMeshDimension(2)
mesh.allocateCells(5)
conn=[0,3,4,1, 1,4,2, 4,5,2, 6,7,4,3, 7,8,5,4]
- mesh.insertNextCell(NORM_QUAD4,4,conn[0:4])
- mesh.insertNextCell(NORM_TRI3,3, conn[4:7])
- mesh.insertNextCell(NORM_TRI3,3, conn[7:10])
+ mesh.insertNextCell(NORM_QUAD4,4,conn[0:4])
+ mesh.insertNextCell(NORM_TRI3,3, conn[4:7])
+ mesh.insertNextCell(NORM_TRI3,3, conn[7:10])
mesh.insertNextCell(NORM_QUAD4,4,conn[10:14])
mesh.insertNextCell(NORM_QUAD4,4,conn[14:18])
mesh.finishInsertingCells()
mesh.setMeshDimension(2)
mesh.allocateCells(5)
conn=[0,3,4,1, 1,4,2, 4,5,2]
- mesh.insertNextCell(NORM_QUAD4,4,conn[0:4])
- mesh.insertNextCell(NORM_TRI3,3, conn[4:7])
+ mesh.insertNextCell(NORM_QUAD4,4,conn[0:4])
+ mesh.insertNextCell(NORM_TRI3,3, conn[4:7])
mesh.insertNextCell(NORM_TRI3,3, conn[7:10])
mesh.finishInsertingCells()
coords=[0.3,-0.301, # 0
mesh.setMeshDimension(2)
mesh.allocateCells(5)
conn=[0,3,4,1, 1,4,2, 4,5,2, 6,7,4,3, 7,8,5,4]
- mesh.insertNextCell(NORM_QUAD4,4,conn[0:4])
- mesh.insertNextCell(NORM_TRI3,3, conn[4:7])
- mesh.insertNextCell(NORM_TRI3,3, conn[7:10])
+ mesh.insertNextCell(NORM_QUAD4,4,conn[0:4])
+ mesh.insertNextCell(NORM_TRI3,3, conn[4:7])
+ mesh.insertNextCell(NORM_TRI3,3, conn[7:10])
mesh.insertNextCell(NORM_QUAD4,4,conn[10:14])
mesh.insertNextCell(NORM_QUAD4,4,conn[14:18])
mesh.finishInsertingCells()
mesh.setMeshDimension(2)
mesh.allocateCells(5)
conn=[0,3,4,1, 1,4,2, 4,5,2, 6,7,4,3, 7,8,5,4]
- mesh.insertNextCell(NORM_QUAD4,4,conn[0:4])
- mesh.insertNextCell(NORM_TRI3,3, conn[4:7])
- mesh.insertNextCell(NORM_TRI3,3, conn[7:10])
+ mesh.insertNextCell(NORM_QUAD4,4,conn[0:4])
+ mesh.insertNextCell(NORM_TRI3,3, conn[4:7])
+ mesh.insertNextCell(NORM_TRI3,3, conn[7:10])
mesh.insertNextCell(NORM_QUAD4,4,conn[10:14])
mesh.insertNextCell(NORM_QUAD4,4,conn[14:18])
mesh.finishInsertingCells()
#! [Snippet_DataArrayInt_getTuple_1]
#! [Snippet_DataArrayInt_getTuple_2]
for tpl in dv:
- print tpl
+ print(tpl)
#! [Snippet_DataArrayInt_getTuple_2]
return
da.setValues(arr1,6,1)
da2=da.invertArrayO2N2N2O(6)
expected1=[1,3,0,5,2,4]
- for i in xrange(6):
+ for i in range(6):
self.assertEqual(expected1[i],da2.getIJ(i,0))
pass
#! [PySnippet_DataArrayInt_invertArrayO2N2N2O_1]
da.setValues(arr1,6,1)
da2=da.invertArrayN2O2O2N(7)
expected1=[1,3,0,5,2,4,-1]
- for i in xrange(6):
+ for i in range(6):
self.assertEqual(expected1[i],da2.getIJ(i,0))
pass
#! [PySnippet_DataArrayInt_invertArrayN2O2O2N_1]
#! [PySnippet_DataArrayDouble_getIdsInRange_1]
da=DataArrayDouble()
da.alloc( 10, 1 )
- da[ :, :] = range(10)
+ da[ :, :] = list(range(10))
da2 = da.findIdsInRange( 2.5, 6 )
#! [PySnippet_DataArrayDouble_getIdsInRange_1]
return
dv=da.getDifferentValues(2e-1)
expected2=[2.301,1.3,0.8]
self.assertEqual(3,dv.getNbOfElems())
- for i in xrange(3):
+ for i in range(3):
self.assertAlmostEqual(expected2[i],dv.getIJ(i,0),14)
pass
#! [Snippet_DataArrayDouble_getDifferentValues1]
def testExample_DataArrayDouble_findCommonTuples1(self):
#! [PySnippet_DataArrayDouble_findCommonTuples1]
array2=[2.3,2.3, 1.2,1.2, 1.3,1.3, 2.3,2.3, 2.301,2.301, 0.8,0.8]
- da=DataArrayDouble(array2,6,2)
+ da=DataArrayDouble(array2,6,2)
#! [PySnippet_DataArrayDouble_findCommonTuples1]
#! [PySnippet_DataArrayDouble_findCommonTuples2]
c,cI=da.findCommonTuples(1.01e-1)
#! [SnippeDataArrayIntKeepSelectedComponents1_1]
arr1=[1,2,3,4, # tuple 0
11,12,13,14, # tuple 1
- 21,22,23,24, #
+ 21,22,23,24, #
31,32,33,34,
41,42,43,44]
a1=DataArrayInt()
self.assertEqual(3,f2.getNumberOfTuples())
self.assertEqual(2,f2.getNumberOfComponents())
expected1=[5.,105.,4.,104.,7.,107.]
- for i in xrange(6):
+ for i in range(6):
self.assertAlmostEqual(f2.getIJ(0,i),expected1[i],12)
pass
self.assertEqual(3,f2.getMesh().getNumberOfCells())
m2C=f2.getMesh()
self.assertEqual(13,m2C.getNodalConnectivityArrayLen())
expected2=[0.2, -0.3, 0.7, -0.3, 0.2, 0.2, 0.7, 0.2, 0.2, 0.7, 0.7, 0.7]
- for i in xrange(12):
+ for i in range(12):
self.assertAlmostEqual(expected2[i],m2C.getCoords().getIJ(0,i),12)
pass
expected3=[3,2,3,1,3,0,2,1,4,4,5,3,2]
self.assertEqual(4,f2.getNumberOfTuples())
self.assertEqual(2,f2.getNumberOfComponents())
expected5=[4.,104.,5.,105.,7.,107.,8.,108.]
- for i in xrange(8):
+ for i in range(8):
self.assertAlmostEqual(f2.getIJ(0,i),expected5[i],12)
pass
self.assertEqual(2,f2.getMesh().getNumberOfCells())
self.assertEqual(2,f2.getMesh().getMeshDimension())
m2C=f2.getMesh()
self.assertEqual(8,m2C.getNodalConnectivityArrayLen())
- for i in xrange(8):#8 is not an error
+ for i in range(8): # 8 is not an error
self.assertAlmostEqual(expected2[i],m2C.getCoords().getIJ(0,i),12)
pass
self.assertEqual(expected3[:4],[int(i) for i in m2C.getNodalConnectivity()][4:])
f2=f1.buildSubPart(arrr)
self.assertEqual(4,f2.getNumberOfTuples())
self.assertEqual(2,f2.getNumberOfComponents())
- for i in xrange(8):
+ for i in range(8):
self.assertAlmostEqual(f2.getIJ(0,i),expected5[i],12)
pass
self.assertEqual(2,f2.getMesh().getNumberOfCells())
self.assertEqual(2,f2.getMesh().getMeshDimension())
m2C=f2.getMesh()
self.assertEqual(8,m2C.getNodalConnectivityArrayLen())
- for i in xrange(8):#8 is not an error
+ for i in range(8): # 8 is not an error
self.assertAlmostEqual(expected2[i],m2C.getCoords().getIJ(0,i),12)
pass
self.assertEqual(expected3[:4],[int(i) for i in m2C.getNodalConnectivity()][4:8])
self.assertEqual(6,f2.getNumberOfTuples())
self.assertEqual(2,f2.getNumberOfComponents())
expected6=[4.,104.,5.,105.,7.,107.,8.,108.,10.,110.,11.,111.]
- for i in xrange(12):
+ for i in range(12):
self.assertAlmostEqual(f2.getIJ(0,i),expected6[i],12)
pass
self.assertEqual(3,f2.getMesh().getNumberOfCells())
self.assertEqual(2,f2.getMesh().getMeshDimension())
m2C=f2.getMesh()
self.assertEqual(13,m2C.getNodalConnectivityArrayLen())
- for i in xrange(12):
+ for i in range(12):
self.assertAlmostEqual(expected2[i],m2C.getCoords().getIJ(0,i),12)
pass
self.assertEqual(expected3[0:4],m2C.getNodalConnectivity().getValues()[4:8])
def testExampleUMeshStdBuild1(self):
# ! [PySnippetUMeshStdBuild1_1]
- coords=[-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.,
+ coords=[-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. ]
nodalConnPerCell=[0,3,4,1, 1,4,2, 4,5,2, 6,7,4,3, 7,8,5,4]
# ! [PySnippetUMeshStdBuild1_1]
# ! [PySnippetUMeshStdBuild1_2]
# ! [PySnippetUMeshStdBuild1_3]
mesh.allocateCells(5)#You can put more than 5 if you want but not less.
+ # adding cells
mesh.insertNextCell(NORM_QUAD4,nodalConnPerCell[:4])
mesh.insertNextCell(NORM_TRI3,nodalConnPerCell[4:7])
mesh.insertNextCell(NORM_TRI3,nodalConnPerCell[7:10])
mesh.insertNextCell(NORM_QUAD4,nodalConnPerCell[10:14])
mesh.insertNextCell(NORM_QUAD4,nodalConnPerCell[14:])
+ # compacting
mesh.finishInsertingCells()
# ! [PySnippetUMeshStdBuild1_3]
# ! [PySnippetUMeshStdBuild1_4]
- coordsArr=DataArrayDouble(coords,9,3)#here coordsArr are declared to have 3 components, mesh will deduce that its spaceDim==3.
+ coordsArr=DataArrayDouble(coords,9,3)#here coordsArr are declared to have 3 components, mesh will deduce that its spaceDim==3.
mesh.setCoords(coordsArr)#coordsArr contains 9 tuples, that is to say mesh contains 9 nodes.
# ! [PySnippetUMeshStdBuild1_4]
-# ! [PySnippetUMeshStdBuild1_5]
# ! [PySnippetUMeshStdBuild1_5]
mesh.checkConsistencyLight()
+# ! [PySnippetUMeshStdBuild1_5]
return
def testExampleCMeshStdBuild1(self):
def testExampleUMeshAdvBuild1(self):
# ! [PySnippetUMeshAdvBuild1_1]
- coords=[-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.,
+ coords=[-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. ]
nodalConnPerCell=[4,0,3,4,1, 3,1,4,2, 3,4,5,2, 4,6,7,4,3, 4,7,8,5,4]
nodalConnPerCellIndex=[0,5,9,13,18,23]
fieldOnCells.setName("MyTensorFieldOnCellNoTime")
fieldOnCells.setMesh(mesh)
array=DataArrayDouble()
- array.alloc(fieldOnCells.getMesh().getNumberOfCells(),9) # Implicitely fieldOnCells will be a 9 components field.
+ array.alloc(fieldOnCells.getMesh().getNumberOfCells(),9) # Implicitly fieldOnCells will be a 9 components field.
array.fillWithValue(7.)
fieldOnCells.setArray(array)
# fieldOnCells is now usable
fieldOnNodes.setName("MyScalarFieldOnNodeNoTime")
fieldOnNodes.setMesh(mesh)
array=DataArrayDouble()
- array.alloc(fieldOnNodes.getMesh().getNumberOfNodes(),1) # Implicitely fieldOnNodes will be a 1 component field.
+ array.alloc(fieldOnNodes.getMesh().getNumberOfNodes(),1) # Implicitly fieldOnNodes will be a 1 component field.
array.fillWithValue(7.)
fieldOnNodes.setArray(array)
# fieldOnNodes is now usable
fieldOnCells.setTime(4.22,2,-1) # Time attached is 4.22 ms, iteration id is 2 and order id (or sub iteration id) is -1
fieldOnCells.setMesh(mesh)
array=DataArrayDouble()
- array.alloc(fieldOnCells.getMesh().getNumberOfCells(),2) # Implicitely fieldOnCells will be a 2 components field.
+ array.alloc(fieldOnCells.getMesh().getNumberOfCells(),2) # Implicitly fieldOnCells will be a 2 components field.
array.fillWithValue(7.)
fieldOnCells.setArray(array)
# fieldOnCells is now usable
fieldOnNodes.setEndTime(6.44,4,-1)# fieldOnNodes is defined in interval [4.22 ms,6.44 ms]
fieldOnNodes.setMesh(mesh)
array=DataArrayDouble()
- array.alloc(fieldOnNodes.getMesh().getNumberOfNodes(),3) # Implicitely fieldOnNodes will be a 3 components field.
+ array.alloc(fieldOnNodes.getMesh().getNumberOfNodes(),3) # Implicitly fieldOnNodes will be a 3 components field.
array.fillWithValue(7.)
fieldOnNodes.setArray(array)
# fieldOnNodes is now usable