Salome HOME
MEDCoupling becomes medcoupling in tests.
[tools/medcoupling.git] / src / MEDCoupling_Swig / MEDCouplingExamplesTest.py
index 549fab780f3b87d7dc567db790b050f1d1f4662a..26499420cc05b4ccc5df82fe420bc3c48fd3c8c3 100644 (file)
@@ -1,5 +1,5 @@
 #  -*- coding: iso-8859-1 -*-
-# Copyright (C) 2007-2015  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
 
@@ -43,7 +48,7 @@ class MEDCouplingBasicsTest(unittest.TestCase):
         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 )
@@ -67,11 +72,11 @@ class MEDCouplingBasicsTest(unittest.TestCase):
         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]
@@ -177,7 +182,7 @@ class MEDCouplingBasicsTest(unittest.TestCase):
         # 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]
@@ -200,7 +205,7 @@ class MEDCouplingBasicsTest(unittest.TestCase):
         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]
@@ -221,7 +226,7 @@ class MEDCouplingBasicsTest(unittest.TestCase):
         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]
@@ -725,9 +730,9 @@ class MEDCouplingBasicsTest(unittest.TestCase):
         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()
@@ -871,9 +876,9 @@ class MEDCouplingBasicsTest(unittest.TestCase):
         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()
@@ -883,7 +888,7 @@ class MEDCouplingBasicsTest(unittest.TestCase):
         #! [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
 
@@ -893,9 +898,9 @@ class MEDCouplingBasicsTest(unittest.TestCase):
         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()
@@ -998,9 +1003,9 @@ class MEDCouplingBasicsTest(unittest.TestCase):
         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()
@@ -1053,8 +1058,8 @@ class MEDCouplingBasicsTest(unittest.TestCase):
         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
@@ -1116,9 +1121,9 @@ class MEDCouplingBasicsTest(unittest.TestCase):
         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()
@@ -1141,9 +1146,9 @@ class MEDCouplingBasicsTest(unittest.TestCase):
         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()
@@ -1478,7 +1483,7 @@ class MEDCouplingBasicsTest(unittest.TestCase):
 #! [Snippet_DataArrayInt_getTuple_1]
 #! [Snippet_DataArrayInt_getTuple_2]
         for tpl in dv:
-            print tpl
+            print(tpl)
 #! [Snippet_DataArrayInt_getTuple_2]
         return
 
@@ -1500,7 +1505,7 @@ class MEDCouplingBasicsTest(unittest.TestCase):
         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]
@@ -1513,7 +1518,7 @@ class MEDCouplingBasicsTest(unittest.TestCase):
         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]
@@ -1524,7 +1529,7 @@ class MEDCouplingBasicsTest(unittest.TestCase):
 #! [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
@@ -1890,7 +1895,7 @@ class MEDCouplingBasicsTest(unittest.TestCase):
         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]
@@ -1899,7 +1904,7 @@ class MEDCouplingBasicsTest(unittest.TestCase):
     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)
@@ -1971,7 +1976,7 @@ class MEDCouplingBasicsTest(unittest.TestCase):
 #! [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()
@@ -2009,7 +2014,7 @@ class MEDCouplingBasicsTest(unittest.TestCase):
         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())
@@ -2019,7 +2024,7 @@ class MEDCouplingBasicsTest(unittest.TestCase):
         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]
@@ -2042,7 +2047,7 @@ class MEDCouplingBasicsTest(unittest.TestCase):
         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())
@@ -2051,7 +2056,7 @@ class MEDCouplingBasicsTest(unittest.TestCase):
         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:])
@@ -2064,7 +2069,7 @@ class MEDCouplingBasicsTest(unittest.TestCase):
         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())
@@ -2073,7 +2078,7 @@ class MEDCouplingBasicsTest(unittest.TestCase):
         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])
@@ -2084,7 +2089,7 @@ class MEDCouplingBasicsTest(unittest.TestCase):
         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())
@@ -2093,7 +2098,7 @@ class MEDCouplingBasicsTest(unittest.TestCase):
         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])
@@ -2106,7 +2111,7 @@ class MEDCouplingBasicsTest(unittest.TestCase):
 
     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]
@@ -2115,20 +2120,22 @@ class MEDCouplingBasicsTest(unittest.TestCase):
 # ! [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):
@@ -2165,7 +2172,7 @@ class MEDCouplingBasicsTest(unittest.TestCase):
 
     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]
@@ -2220,7 +2227,7 @@ class MEDCouplingBasicsTest(unittest.TestCase):
         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
@@ -2252,7 +2259,7 @@ class MEDCouplingBasicsTest(unittest.TestCase):
         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
@@ -2272,7 +2279,7 @@ class MEDCouplingBasicsTest(unittest.TestCase):
         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
@@ -2293,7 +2300,7 @@ class MEDCouplingBasicsTest(unittest.TestCase):
         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