1 # -*- coding: iso-8859-1 -*-
2 # Copyright (C) 2007-2012 CEA/DEN, EDF R&D
4 # This library is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU Lesser General Public
6 # License as published by the Free Software Foundation; either
7 # version 2.1 of the License.
9 # This library is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 # Lesser General Public License for more details.
14 # You should have received a copy of the GNU Lesser General Public
15 # License along with this library; if not, write to the Free Software
16 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21 from MEDCoupling import *
23 from math import pi,e,sqrt,cos,sin
24 from MEDCouplingDataForTest import MEDCouplingDataForTest
26 class MEDCouplingBasicsTest(unittest.TestCase):
28 arr=DataArrayDouble.New()
29 arr.setValues([12.,11.,10.,9.,8.,7.,6.,5.,4.,3.,2.,1.],3,4)
30 arr.setInfoOnComponent(0,"ggg");
31 arr.setInfoOnComponent(1,"hhhh");
32 arr.setInfoOnComponent(2,"jj");
33 arr.setInfoOnComponent(3,"kkkkkk");
34 arr2=arr.convertToIntArr();
35 arr3=arr2.convertToDblArr();
36 self.assertTrue(arr.isEqual(arr3,1e-14))
40 arr1=DataArrayInt.New();
41 arr1Ref=[0,10,1,11,2,12,3,13,4,14,5,15,6,16]
42 arr1.setValues(arr1Ref,7,2);
43 self.assertEqual(7,arr1.getNumberOfTuples());
44 self.assertEqual(2,arr1.getNumberOfComponents());
45 self.assertEqual(arr1Ref,list(arr1.getValues()));
47 self.assertEqual(4,arr2.getNumberOfTuples());
48 self.assertEqual(2,arr2.getNumberOfComponents());
49 self.assertEqual(arr1Ref[6:],list(arr2.getValues()));
50 arr3=arr1.substr(2,5);
51 self.assertEqual(3,arr3.getNumberOfTuples());
52 self.assertEqual(2,arr3.getNumberOfComponents());
53 self.assertEqual(arr1Ref[4:10],list(arr3.getValues()));
55 arr4=DataArrayDouble.New();
56 arr4Ref=[0.8,10.8,1.9,11.9,2.1,12.1,3.2,13.2,4.3,14.3,5.4,15.4,6.5,16.5]
57 arr4.setValues(arr4Ref,7,2);
58 self.assertEqual(7,arr4.getNumberOfTuples());
59 self.assertEqual(2,arr4.getNumberOfComponents());
62 self.assertTrue(abs(arr4Ref[i]-tmp[i])<1e-14);
65 self.assertEqual(4,arr5.getNumberOfTuples());
66 self.assertEqual(2,arr5.getNumberOfComponents());
69 self.assertTrue(abs(arr4Ref[6+i]-tmp[i])<1e-14);
71 arr6=arr4.substr(2,5);
72 self.assertEqual(3,arr6.getNumberOfTuples());
73 self.assertEqual(2,arr6.getNumberOfComponents());
76 self.assertTrue(abs(arr4Ref[4+i]-tmp[i])<1e-14);
81 tab4=[1, 2, 8, 7, 2, 3, 9, 8, 3,
82 4, 10, 9, 4, 5, 11, 10, 5,
83 0, 6, 11, 0, 1, 7, 6 ]
86 coords=[ 0.024155, 0.04183768725682622, -0.305, 0.04831000000000001, -1.015761910347357e-17,
87 -0.305, 0.09662000000000001, -1.832979297858306e-18, -0.305, 0.120775, 0.04183768725682623,
88 -0.305, 0.09662000000000001, 0.08367537451365245, -0.305, 0.04831000000000001, 0.08367537451365246,
89 -0.305, 0.024155, 0.04183768725682622, -0.2863, 0.04831000000000001, -1.015761910347357e-17, -0.2863,
90 0.09662000000000001, -1.832979297858306e-18, -0.2863, 0.120775, 0.04183768725682623, -0.2863, 0.09662000000000001,
91 0.08367537451365245, -0.2863, 0.04831000000000001, 0.08367537451365246, -0.2863 ]
92 mesh=MEDCouplingUMesh.New()
93 mesh.setMeshDimension(2)
94 mesh.allocateCells(8);
96 self.assertTrue(mesh.getName()=="mesh1")
97 for i in range(nbOfCells):
98 mesh.insertNextCell(NORM_QUAD4,4,tab4[4*i:4*(i+1)]);
100 mesh.finishInsertingCells()
101 self.assertTrue(mesh.getNumberOfCells()==nbOfCells)
102 self.assertTrue(mesh.getNodalConnectivity().getNbOfElems()==30)
103 self.assertTrue(mesh.getNodalConnectivityIndex().getNbOfElems()==nbOfCells+1)
104 myCoords=DataArrayDouble.New()
105 myCoords.setValues(coords,nbOfNodes,3);
106 self.assertTrue(myCoords.getIJ(3,2)==-0.305)
107 mesh.setCoords(myCoords);
108 mesh.checkCoherency();
109 self.assertTrue(mesh.getAllTypes()==[4])
110 myFalseConn=DataArrayInt.New()
111 myFalseConn.setValues(tab4,6,4)
112 self.assertTrue(myFalseConn.getIJ(1,1)==3)
114 field=MEDCouplingFieldDouble.New(ON_CELLS)
116 field.setNature(Integral)
117 myCoords=DataArrayDouble.New()
119 for i in range(nbOfCells*9):
120 sampleTab.append(float(i))
121 myCoords.setValues(sampleTab,nbOfCells,9);
122 field.setArray(myCoords)
123 self.assertTrue(3==mesh.getSpaceDimension())
124 field.checkCoherency()
125 mesh2=mesh.clone(False)
126 mesh3=mesh.clone(True)
129 ## deep full recursively copy of field -> both field and mesh underneath copied
130 field2=field.clone(True)
131 field2.setMesh(field.getMesh().clone(True))
132 mesh3=mesh.clone(True)
133 field3=mesh3.fillFromAnalytic(ON_CELLS,2,"x*IVec+(y+z)*JVec")
134 field3.applyFunc("u*u*u+cos(u)")
137 def testMeshPointsCloud(self):
138 targetCoords=[-0.3,-0.3,0.5, 0.2,-0.3,1., 0.7,-0.3,1.5,
139 -0.3,0.2,0.5, 0.2,0.2,1., 0.7,0.2,1.5, -0.3,0.7,0.5, 0.2,0.7,1., 0.7,0.7,1.5]
140 targetMesh=MEDCouplingUMesh.New();
141 targetMesh.setMeshDimension(0);
142 targetMesh.allocateCells(8);
143 targetMesh.insertNextCell(NORM_POINT1,1,[0]);
144 targetMesh.insertNextCell(NORM_POINT1,1,[1]);
145 targetMesh.insertNextCell(NORM_POINT1,1,[2]);
146 targetMesh.insertNextCell(NORM_POINT1,1,[3]);
147 targetMesh.insertNextCell(NORM_POINT1,1,[4]);
148 targetMesh.insertNextCell(NORM_POINT1,1,[5]);
149 targetMesh.insertNextCell(NORM_POINT1,1,[7]);
150 targetMesh.insertNextCell(NORM_POINT1,1,[6]);
151 targetMesh.finishInsertingCells();
152 self.assertRaises(InterpKernelException,targetMesh.checkCoherency);
153 myCoords=DataArrayDouble.New();
154 myCoords.setValues(targetCoords,9,3);
155 targetMesh.setCoords(myCoords);
156 self.assertEqual(targetMesh.getSpaceDimension(),3)
157 self.assertEqual(targetMesh.getNumberOfCells(),8)
158 self.assertEqual(targetMesh.getNumberOfNodes(),9)
159 self.assertEqual(targetMesh.getMeshDimension(),0)
162 def testMeshM1D(self):
163 meshM1D=MEDCouplingUMesh.New();
164 self.assertRaises(InterpKernelException,meshM1D.getMeshDimension);
165 self.assertRaises(InterpKernelException,meshM1D.getNumberOfNodes);
166 self.assertRaises(InterpKernelException,meshM1D.getNumberOfCells);
167 self.assertRaises(InterpKernelException,meshM1D.setMeshDimension,-2)
168 self.assertRaises(InterpKernelException,meshM1D.setMeshDimension,-10)
169 meshM1D.setMeshDimension(-1);
170 meshM1D.checkCoherency();
171 self.assertEqual(meshM1D.getMeshDimension(),-1);
172 self.assertEqual(meshM1D.getNumberOfCells(),1);
173 self.assertRaises(InterpKernelException,meshM1D.getNumberOfNodes);
174 self.assertRaises(InterpKernelException,meshM1D.getSpaceDimension);
175 cpy=meshM1D.clone(True);
176 self.assertTrue(cpy.isEqual(meshM1D,1e-12));
177 fieldOnCells=MEDCouplingFieldDouble.New(ON_CELLS);
178 fieldOnCells.setMesh(meshM1D);
179 array=DataArrayDouble.New();
180 array.setValues(6*[7.],1,6);
181 fieldOnCells.setArray(array);
182 fieldOnCells.checkCoherency();
185 def testDeepCopy(self):
186 array=DataArrayDouble.New();
187 array.setValues(5*3*[7.],5,3);
188 self.assertEqual(array.getIJ(3,2),7.);
189 array2=array.deepCpy();
190 self.assertEqual(array2.getIJ(3,2),7.)
192 array3=DataArrayInt.New();
193 array3.setValues(5*3*[17],5,3);
194 self.assertEqual(array3.getIJ(3,2),17);
195 array4=array3.deepCpy();
196 self.assertEqual(array4.getIJ(3,2),17);
199 def testRevNodal(self):
200 mesh=MEDCouplingDataForTest.build2DTargetMesh_1()
201 revNodal,revNodalIndx=mesh.getReverseNodalConnectivity();
202 revNodalExpected=[0,0,1,1,2,0,3,0,1,2,3,4,2,4,3,3,4,4];
203 revNodalIndexExpected=[0,1,3,5,7,12,14,15,17,18];
204 self.assertEqual(revNodal.getNbOfElems(),18)
205 self.assertEqual(revNodalIndx.getNbOfElems(),10)
206 self.assertEqual(list(revNodal.getValues()),revNodalExpected)
207 self.assertEqual(list(revNodalIndx.getValues()),revNodalIndexExpected)
210 def testConvertToPolyTypes(self):
211 mesh=MEDCouplingDataForTest.build2DTargetMesh_1();
213 mesh.convertToPolyTypes(elts);
214 mesh.checkCoherency();
215 self.assertEqual(5,mesh.getNumberOfCells());
216 self.assertEqual(23,mesh.getNodalConnectivity().getNumberOfTuples());
217 expected1=[4, 0, 3, 4, 1, 5, 1, 4, 2, 3, 4, 5, 2, 5, 6, 7, 4, 3, 4, 7, 8, 5, 4]
218 self.assertEqual(expected1,list(mesh.getNodalConnectivity().getValues()));
220 mesh=MEDCouplingDataForTest.build3DTargetMesh_1();
221 mesh.convertToPolyTypes(elts);
222 mesh.checkCoherency();
223 self.assertEqual(8,mesh.getNumberOfCells());
224 self.assertEqual(114,mesh.getNodalConnectivity().getNumberOfTuples());
225 mesh.convertToPolyTypes(elts);
226 mesh.checkCoherency();
227 self.assertEqual(8,mesh.getNumberOfCells());
228 self.assertEqual(114,mesh.getNodalConnectivity().getNumberOfTuples());
231 def testDescConn2D(self):
232 mesh=MEDCouplingDataForTest.build2DTargetMesh_1();
233 desc=DataArrayInt.New();
234 descIndx=DataArrayInt.New();
235 revDesc=DataArrayInt.New();
236 revDescIndx=DataArrayInt.New();
237 mesh2=mesh.buildDescendingConnectivity(desc,descIndx,revDesc,revDescIndx);
238 mesh2.checkCoherency();
239 self.assertEqual(1,mesh2.getMeshDimension());
240 self.assertEqual(13,mesh2.getNumberOfCells());
241 self.assertEqual(14,revDescIndx.getNbOfElems()); self.assertEqual(14,revDescIndx.getNumberOfTuples());
242 self.assertEqual(6,descIndx.getNbOfElems()); self.assertEqual(6,descIndx.getNumberOfTuples());
243 self.assertEqual(18,desc.getNbOfElems()); self.assertEqual(18,desc.getNumberOfTuples());
244 self.assertEqual(18,revDesc.getNbOfElems()); self.assertEqual(18,revDesc.getNumberOfTuples());
245 expected1=[0,1,2,3, 2,4,5, 6,7,4, 8,9,1,10, 11,12,6,9];
246 self.assertEqual(expected1,list(desc.getValues()));
247 expected2=[0,4,7,10,14,18];
248 self.assertEqual(expected2,list(descIndx.getValues()));
249 expected3=[0,1,3,5,6,8,9,11,12,13,15,16,17,18];
250 self.assertEqual(expected3,list(revDescIndx.getValues()));
251 expected4=[0, 0,3, 0,1, 0, 1,2, 1, 2,4, 2, 3, 3,4, 3, 4, 4];
252 self.assertEqual(expected4,list(revDesc.getValues()));
253 conn=mesh2.getNodalConnectivity();
254 connIndex=mesh2.getNodalConnectivityIndex();
255 expected5=[0,3,6,9,12,15,18,21,24,27,30,33,36,39];
256 self.assertEqual(expected5,list(connIndex.getValues()));
257 expected6=[1, 0, 3, 1, 3, 4, 1, 4, 1, 1, 1, 0, 1, 4, 2, 1, 2, 1, 1, 4, 5, 1, 5, 2, 1, 6, 7, 1, 7, 4, 1, 3, 6, 1, 7, 8, 1, 8, 5];
258 self.assertEqual(expected6,list(conn.getValues()));
261 mesh.convertToPolyTypes(eltsV);
262 mesh.checkCoherency();
264 desc=DataArrayInt.New();
265 descIndx=DataArrayInt.New();
266 revDesc=DataArrayInt.New();
267 revDescIndx=DataArrayInt.New();
269 mesh2=mesh.buildDescendingConnectivity(desc,descIndx,revDesc,revDescIndx);
270 mesh2.checkCoherency();
271 self.assertEqual(1,mesh2.getMeshDimension());
272 self.assertEqual(13,mesh2.getNumberOfCells());
273 self.assertEqual(14,revDescIndx.getNbOfElems()); self.assertEqual(14,revDescIndx.getNumberOfTuples());
274 self.assertEqual(6,descIndx.getNbOfElems()); self.assertEqual(6,descIndx.getNumberOfTuples());
275 self.assertEqual(18,desc.getNbOfElems()); self.assertEqual(18,desc.getNumberOfTuples());
276 self.assertEqual(18,revDesc.getNbOfElems()); self.assertEqual(18,revDesc.getNumberOfTuples());
277 self.assertEqual(expected1,list(desc.getValues()));
278 self.assertEqual(expected2,list(descIndx.getValues()));
279 self.assertEqual(expected3,list(revDescIndx.getValues()));
280 self.assertEqual(expected4,list(revDesc.getValues()));
281 conn=mesh2.getNodalConnectivity();
282 connIndex=mesh2.getNodalConnectivityIndex();
283 self.assertEqual(expected5,list(connIndex.getValues()));
284 self.assertEqual(expected6,list(conn.getValues()));
287 def testDescConn3D(self):
288 mesh=MEDCouplingDataForTest.build3DTargetMesh_1();
289 desc=DataArrayInt.New();
290 descIndx=DataArrayInt.New();
291 revDesc=DataArrayInt.New();
292 revDescIndx=DataArrayInt.New();
294 mesh2=mesh.buildDescendingConnectivity(desc,descIndx,revDesc,revDescIndx);
295 mesh2.checkCoherency();
296 self.assertEqual(2,mesh2.getMeshDimension());
297 self.assertEqual(36,mesh2.getNumberOfCells());
298 self.assertEqual(37,revDescIndx.getNbOfElems()); self.assertEqual(37,revDescIndx.getNumberOfTuples());
299 self.assertEqual(9,descIndx.getNbOfElems()); self.assertEqual(9,descIndx.getNumberOfTuples());
300 self.assertEqual(48,desc.getNbOfElems()); self.assertEqual(48,desc.getNumberOfTuples());
301 self.assertEqual(48,revDesc.getNbOfElems()); self.assertEqual(48,revDesc.getNumberOfTuples());
302 expected1=[0, 6, 12, 18, 24, 30, 36, 42, 48]
303 expected2=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 3, 11, 12, 4, 13, 14, 15, 16, 17, 10, 18, 19, 13, 1, 20, 21, 22, 23, 24, 7, 25, 26, 27, 28, 22, 12, 29, 23, 30, 31, 32, 17, 33, 28, 34, 35, 30]
304 expected3=[0, 1, 3, 4, 6, 8, 9, 10, 12, 13, 14, 16, 17, 19, 21, 22, 23, 24, 26, 27, 28, 29, 30, 32, 34, 35, 36, 37, 38, 40, 41, 43, 44, 45, 46, 47, 48]
305 expected4=[0, 0, 4, 0, 0, 1, 0, 2, 0, 1, 1, 5, 1, 1, 1, 3, 2, 2, 6, 2, 3, 2, 2, 3, 3, 7, 3, 3, 4, 4, 4, 5, 4, 6, 4, 5, 5, 5, 5, 7, 6, 6, 7, 6, 6, 7, 7, 7]
306 expected5=[0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100, 105, 110, 115, 120, 125, 130, 135, 140, 145, 150, 155, 160, 165, 170, 175, 180]
307 expected6=[4, 0, 1, 4, 3, 4, 9, 12, 13, 10, 4, 0, 9, 10, 1, 4, 1, 10, 13, 4, 4, 4, 13, 12, 3, 4, 3, 12, 9, 0, 4, 1, 2, 5, 4, 4, 10, 13, 14, 11, 4, 1, 10, 11, 2, 4, 2, 11, 14,
308 5, 4, 5, 14, 13, 4, 4, 3, 4, 7, 6, 4, 12, 15, 16, 13, 4, 4, 13, 16, 7, 4, 7, 16, 15, 6, 4, 6, 15, 12, 3, 4, 4, 5, 8, 7, 4, 13, 16, 17, 14, 4, 5, 14, 17, 8, 4, 8,
309 17, 16, 7, 4, 18, 21, 22, 19, 4, 9, 18, 19, 10, 4, 10, 19, 22, 13, 4, 13, 22, 21, 12, 4, 12, 21, 18, 9, 4, 19, 22, 23, 20, 4, 10, 19, 20, 11, 4, 11, 20, 23, 14, 4,
310 14, 23, 22, 13, 4, 21, 24, 25, 22, 4, 13, 22, 25, 16, 4, 16, 25, 24, 15, 4, 15, 24, 21, 12, 4, 22, 25, 26, 23, 4, 14, 23, 26, 17, 4, 17, 26, 25, 16]
311 expected7=[4, 0, 1, 4, 3, 4, 9, 12, 13, 10, 4, 0, 9, 10, 1, 4, 1, 10, 13, 4, 4, 4, 13, 12, 3, 4, 3, 12, 9, 0, 5, 1, 2, 5, 4, 5, 10, 13, 14, 11, 5, 1, 10, 11, 2, 5, 2, 11, 14,
312 5, 5, 5, 14, 13, 4, 4, 3, 4, 7, 6, 4, 12, 15, 16, 13, 4, 4, 13, 16, 7, 4, 7, 16, 15, 6, 4, 6, 15, 12, 3, 5, 4, 5, 8, 7, 5, 13, 16, 17, 14, 5, 5, 14, 17, 8, 5, 8,
313 17, 16, 7, 4, 18, 21, 22, 19, 4, 9, 18, 19, 10, 4, 10, 19, 22, 13, 4, 13, 22, 21, 12, 4, 12, 21, 18, 9, 4, 19, 22, 23, 20, 4, 10, 19, 20, 11, 4, 11, 20, 23, 14, 4,
314 14, 23, 22, 13, 4, 21, 24, 25, 22, 4, 13, 22, 25, 16, 4, 16, 25, 24, 15, 4, 15, 24, 21, 12, 4, 22, 25, 26, 23, 4, 14, 23, 26, 17, 4, 17, 26, 25, 16]
316 self.assertEqual(expected1,list(descIndx.getValues()));
317 self.assertEqual(expected2,list(desc.getValues()));
318 self.assertEqual(expected3,list(revDescIndx.getValues()));
319 self.assertEqual(expected4,list(revDesc.getValues()));
320 self.assertEqual(expected5,list(mesh2.getNodalConnectivityIndex().getValues()));
321 self.assertEqual(expected6,list(mesh2.getNodalConnectivity().getValues()));
324 mesh.convertToPolyTypes(eltsV);
325 mesh.checkCoherency();
326 desc=DataArrayInt.New();
327 descIndx=DataArrayInt.New();
328 revDesc=DataArrayInt.New();
329 revDescIndx=DataArrayInt.New();
330 mesh2=mesh.buildDescendingConnectivity(desc,descIndx,revDesc,revDescIndx);
331 mesh2.checkCoherency();
332 self.assertEqual(2,mesh2.getMeshDimension());
333 self.assertEqual(36,mesh2.getNumberOfCells());
334 self.assertEqual(37,revDescIndx.getNbOfElems()); self.assertEqual(37,revDescIndx.getNumberOfTuples());
335 self.assertEqual(9,descIndx.getNbOfElems()); self.assertEqual(9,descIndx.getNumberOfTuples());
336 self.assertEqual(48,desc.getNbOfElems()); self.assertEqual(48,desc.getNumberOfTuples());
337 self.assertEqual(48,revDesc.getNbOfElems()); self.assertEqual(48,revDesc.getNumberOfTuples());
338 self.assertEqual(expected1,list(descIndx.getValues()));
339 self.assertEqual(expected2,list(desc.getValues()));
340 self.assertEqual(expected3,list(revDescIndx.getValues()));
341 self.assertEqual(expected4,list(revDesc.getValues()));
342 self.assertEqual(expected5,list(mesh2.getNodalConnectivityIndex().getValues()));
343 self.assertEqual(expected7,list(mesh2.getNodalConnectivity().getValues()));
346 def testFindBoundaryNodes(self):
347 mesh=MEDCouplingDataForTest.build3DTargetMesh_1();
348 boundaryNodes=mesh.findBoundaryNodes();
349 expected1=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26];
350 self.assertEqual(expected1,boundaryNodes.getValues());
353 def testBoundaryMesh(self):
354 mesh=MEDCouplingDataForTest.build3DTargetMesh_1();
355 mesh2=mesh.buildBoundaryMesh(False);
356 self.assertEqual(24,mesh2.getNumberOfCells());
357 self.assertEqual(26,mesh2.getNumberOfNodes());
360 def testBuildPartOfMySelf(self):
361 mesh=MEDCouplingDataForTest.build2DTargetMesh_1();
362 mesh.setName("Toto");
366 subMesh=mesh.buildPart(tab1)
367 self.assertTrue(isinstance(subMesh,MEDCouplingUMesh))
368 subMesh=mesh.buildPartOfMySelf(tab1,True);
369 self.assertTrue(isinstance(subMesh,MEDCouplingUMesh))
370 name=subMesh.getName();
371 self.assertEqual(2,len(mesh.getAllTypes()));
372 self.assertEqual(NORM_TRI3,mesh.getAllTypes()[0]);
373 self.assertEqual(NORM_QUAD4,mesh.getAllTypes()[1]);
374 self.assertEqual(1,len(subMesh.getAllTypes()));
375 self.assertEqual(NORM_QUAD4,subMesh.getAllTypes()[0]);
376 self.assertEqual(name,"Toto");
377 self.assertEqual(2,subMesh.getNumberOfCells());
378 subConn=[4,0,3,4,1,4,7,8,5,4];
379 subConnIndex=[0,5,10];
380 self.assertEqual(10,subMesh.getNodalConnectivity().getNbOfElems());
381 self.assertEqual(3,subMesh.getNodalConnectivityIndex().getNbOfElems());
382 self.assertEqual(subConn[0:10],list(subMesh.getNodalConnectivity().getValues()));
383 self.assertEqual(subConnIndex[0:3],list(subMesh.getNodalConnectivityIndex().getValues()));
385 subMesh=mesh.buildPartOfMySelf(tab2[0:3],True);
386 self.assertTrue(isinstance(subMesh,MEDCouplingUMesh));
387 name=subMesh.getName();
388 self.assertEqual(2,len(subMesh.getAllTypes()));
389 self.assertEqual(NORM_TRI3,subMesh.getAllTypes()[0]);
390 self.assertEqual(NORM_QUAD4,subMesh.getAllTypes()[1]);
391 self.assertEqual(name,"Toto");
392 self.assertEqual(3,subMesh.getNumberOfCells());
393 subConn2=[4,0,3,4,1,3,4,5,2,4,6,7,4,3]
394 subConnIndex2=[0,5,9,14]
395 self.assertEqual(14,subMesh.getNodalConnectivity().getNbOfElems());
396 self.assertEqual(4,subMesh.getNodalConnectivityIndex().getNbOfElems());
397 self.assertEqual(subConn2[0:14],list(subMesh.getNodalConnectivity().getValues()));
398 self.assertEqual(subConnIndex2[0:4],list(subMesh.getNodalConnectivityIndex().getValues()));
399 dd=DataArrayInt.New()
403 subMesh=subMesh.buildPartOfMySelf(dd,True);
404 self.assertEqual("coucou",subMesh.getName());
407 def testBuildPartOfMySelfNode(self):
408 mesh=MEDCouplingDataForTest.build2DTargetMesh_1();
410 subMesh=mesh.buildPartOfMySelfNode(tab1[0:4],True);
411 self.assertTrue(isinstance(subMesh,MEDCouplingUMesh))
412 self.assertEqual(1,len(subMesh.getAllTypes()));
413 self.assertEqual(NORM_QUAD4,subMesh.getAllTypes()[0]);
414 self.assertEqual(1,subMesh.getNumberOfCells());
415 self.assertEqual(5,subMesh.getNodalConnectivity().getNbOfElems());
416 self.assertEqual(2,subMesh.getNodalConnectivityIndex().getNbOfElems());
419 self.assertEqual(subConn[0:5],list(subMesh.getNodalConnectivity().getValues()));
420 self.assertEqual(subConnIndex[0:2],list(subMesh.getNodalConnectivityIndex().getValues()));
422 ddd=DataArrayInt.New()
423 ddd.setValues(tab1[0:2],2,1)
425 subMesh=mesh.buildPartOfMySelfNode(ddd,False);
426 self.assertEqual("ddd",subMesh.getName())
427 self.assertTrue(isinstance(subMesh,MEDCouplingUMesh))
428 self.assertEqual(2,len(subMesh.getAllTypes()));
429 self.assertEqual(NORM_TRI3,subMesh.getAllTypes()[0]);
430 self.assertEqual(NORM_QUAD4,subMesh.getAllTypes()[1]);
431 self.assertEqual(3,subMesh.getNumberOfCells());
432 self.assertEqual(14,subMesh.getNodalConnectivity().getNbOfElems());
433 self.assertEqual(4,subMesh.getNodalConnectivityIndex().getNbOfElems());
434 subConn2=[3,4,5,2,4,6,7,4,3,4,7,8,5,4]
435 subConnIndex2=[0,4,9,14]
436 self.assertEqual(subConn2[0:14],list(subMesh.getNodalConnectivity().getValues()));
437 self.assertEqual(subConnIndex2[0:4],list(subMesh.getNodalConnectivityIndex().getValues()));
438 #testing the case where length of tab2 is greater than max number of node per cell.
440 subMesh=mesh.buildPartOfMySelfNode(tab2[0:7],True);
441 self.assertTrue(isinstance(subMesh,MEDCouplingUMesh))
442 self.assertEqual(2,len(subMesh.getAllTypes()));
443 self.assertEqual(NORM_TRI3,subMesh.getAllTypes()[0]);
444 self.assertEqual(NORM_QUAD4,subMesh.getAllTypes()[1]);
445 self.assertEqual(3,subMesh.getNumberOfCells());
448 def testZipCoords(self):
449 mesh=MEDCouplingDataForTest.build2DTargetMesh_1();
450 self.assertEqual(2,len(mesh.getAllTypes()));
451 self.assertEqual(2,mesh.getSpaceDimension());
452 self.assertEqual(9,mesh.getNumberOfNodes());
453 self.assertEqual(5,mesh.getNumberOfCells());
454 oldConn=mesh.getNodalConnectivity().getValues()[0:mesh.getNodalConnectivity().getNbOfElems()];
455 oldConnIndex=mesh.getNodalConnectivityIndex().getValues()[0:mesh.getNumberOfCells()+1]
456 oldCoords=mesh.getCoords();
458 self.assertEqual(2,len(mesh.getAllTypes()));
459 self.assertEqual(2,mesh.getSpaceDimension());
460 self.assertEqual(9,mesh.getNumberOfNodes());
461 self.assertEqual(5,mesh.getNumberOfCells());
462 self.assertEqual(mesh.getCoords().getValues()[0:2*9],oldCoords.getValues());
463 self.assertEqual(list(oldConn),list(mesh.getNodalConnectivity().getValues()));
464 self.assertEqual(list(oldConnIndex),list(mesh.getNodalConnectivityIndex().getValues()));
467 subMesh=mesh.buildPartOfMySelf(tab1,True);
468 self.assertTrue(isinstance(subMesh,MEDCouplingUMesh))
469 traducer=subMesh.zipCoordsTraducer();
470 expectedTraducer=[0, 1, -1, 2, 3, 4, -1, 5, 6]
471 self.assertEqual(expectedTraducer,list(traducer.getValues()));
472 self.assertEqual(NORM_QUAD4,subMesh.getAllTypes()[0]);
473 self.assertEqual(2,subMesh.getNumberOfCells());
474 subConn=[4,0,2,3,1,4,5,6,4,3]
475 subConnIndex=[0,5,10]
476 self.assertEqual(7,subMesh.getNumberOfNodes());
477 self.assertEqual(10,subMesh.getNodalConnectivity().getNbOfElems());
478 self.assertEqual(3,subMesh.getNodalConnectivityIndex().getNbOfElems());
479 self.assertEqual(subConn,list(subMesh.getNodalConnectivity().getValues()));
480 self.assertEqual(subConnIndex,list(subMesh.getNodalConnectivityIndex().getValues()));
482 subMesh=mesh.buildPartOfMySelf(tab1,False);
483 self.assertTrue(isinstance(subMesh,MEDCouplingUMesh))
484 self.assertEqual(NORM_QUAD4,subMesh.getAllTypes()[0]);
485 self.assertEqual(2,subMesh.getNumberOfCells());
486 self.assertEqual(7,subMesh.getNumberOfNodes());
487 self.assertEqual(10,subMesh.getNodalConnectivity().getNbOfElems());
488 self.assertEqual(3,subMesh.getNodalConnectivityIndex().getNbOfElems());
489 self.assertEqual(subConn,list(subMesh.getNodalConnectivity().getValues()));
490 self.assertEqual(subConnIndex,list(subMesh.getNodalConnectivityIndex().getValues()));
493 def testZipConnectivity(self):
494 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
495 m2=MEDCouplingDataForTest.build2DTargetMesh_1();
497 m3=m2.buildPartOfMySelf(cells1,True);
498 self.assertTrue(isinstance(m3,MEDCouplingUMesh))
499 m4=MEDCouplingDataForTest.build2DSourceMesh_1();
500 m5=MEDCouplingUMesh.MergeUMeshes(m1,m3);
501 m6=MEDCouplingUMesh.MergeUMeshes(m5,m4);
503 self.assertEqual(10,m6.getNumberOfCells());
504 self.assertEqual(22,m6.getNumberOfNodes());
505 (arr,areNodesMerged,newNbOfNodes)=m6.mergeNodes(1e-13);
506 self.assertTrue(areNodesMerged);
507 self.assertEqual(10,m6.getNumberOfCells());
508 self.assertEqual(9,m6.getNumberOfNodes());
510 arr=m6.zipConnectivityTraducer(0);
511 self.assertEqual(7,m6.getNumberOfCells());
513 arr=m6.zipConnectivityTraducer(0);
514 self.assertTrue(m7.isEqual(m6,1e-12));
515 self.assertEqual(7,m6.getNumberOfCells());
518 def testEqualMesh(self):
519 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
520 mesh2=MEDCouplingDataForTest.build2DTargetMesh_1();
522 self.assertTrue(mesh1.isEqual(mesh1,1e-12));
524 self.assertTrue(mesh1.isEqual(mesh2,1e-12));
525 self.assertTrue(mesh2.isEqual(mesh1,1e-12));
526 pt=mesh2.getCoords().getValues();
528 mesh2.getCoords().setIJ(0,1,5.999);
529 self.assertTrue(not mesh1.isEqual(mesh2,1e-12));
530 self.assertTrue(not mesh2.isEqual(mesh1,1e-12));
531 mesh2.getCoords().setIJ(0,1,tmp);
532 self.assertTrue(mesh1.isEqual(mesh2,1e-12));
533 self.assertTrue(mesh2.isEqual(mesh1,1e-12));
535 pt2=mesh1.getNodalConnectivity().getValues();
536 mesh1.getNodalConnectivity().setIJ(5,0,int(pt2[5])+1);
537 self.assertTrue(not mesh1.isEqual(mesh2,1e-12));
538 self.assertTrue(not mesh2.isEqual(mesh1,1e-12));
539 mesh1.getNodalConnectivity().setIJ(5,0,int(pt2[5]));
540 self.assertTrue(mesh1.isEqual(mesh2,1e-12));
541 self.assertTrue(mesh2.isEqual(mesh1,1e-12));
543 pt2=mesh1.getNodalConnectivityIndex().getValues();
544 mesh1.getNodalConnectivityIndex().setIJ(1,0,int(pt2[1]+1));
545 self.assertTrue(not mesh1.isEqual(mesh2,1e-12));
546 self.assertTrue(not mesh2.isEqual(mesh1,1e-12));
547 mesh1.getNodalConnectivityIndex().setIJ(1,0,int(pt2[1]));
548 self.assertTrue(mesh1.isEqual(mesh2,1e-12));
549 self.assertTrue(mesh2.isEqual(mesh1,1e-12));
551 tmp3=mesh1.getName();
552 mesh1.setName("lllll");
553 self.assertTrue(not mesh1.isEqual(mesh2,1e-12));
554 self.assertTrue(not mesh2.isEqual(mesh1,1e-12));
556 self.assertTrue(mesh1.isEqual(mesh2,1e-12));
557 self.assertTrue(mesh2.isEqual(mesh1,1e-12));
559 tmp3=mesh2.getCoords().getInfoOnComponent(1);
560 mesh2.getCoords().setInfoOnComponent(1,"kkkkkk");
561 self.assertTrue(not mesh1.isEqual(mesh2,1e-12));
562 self.assertTrue(not mesh2.isEqual(mesh1,1e-12));
563 mesh2.getCoords().setInfoOnComponent(1,tmp3);
564 self.assertTrue(mesh1.isEqual(mesh2,1e-12));
565 self.assertTrue(mesh2.isEqual(mesh1,1e-12));
568 def testEqualFieldDouble(self):
569 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
570 mesh2=MEDCouplingDataForTest.build2DTargetMesh_1();
572 fieldOnCells1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
573 fieldOnCells1.setMesh(mesh1);
574 fieldOnCells2=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
575 fieldOnCells2.setMesh(mesh2);
577 self.assertTrue(fieldOnCells1.isEqual(fieldOnCells2,1e-12,1e-15));
578 self.assertTrue(fieldOnCells2.isEqual(fieldOnCells1,1e-12,1e-15));
580 fieldOnNodes1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
581 self.assertTrue(not fieldOnCells1.isEqual(fieldOnNodes1,1e-12,1e-15));
582 self.assertTrue(not fieldOnNodes1.isEqual(fieldOnCells1,1e-12,1e-15));
584 fieldOnCells2=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
585 self.assertTrue(not fieldOnCells1.isEqual(fieldOnCells2,1e-12,1e-15));
586 self.assertTrue(not fieldOnCells2.isEqual(fieldOnCells1,1e-12,1e-15));
587 fieldOnCells1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
588 self.assertTrue(fieldOnCells1.isEqual(fieldOnCells2,1e-12,1e-15));
589 self.assertTrue(fieldOnCells2.isEqual(fieldOnCells1,1e-12,1e-15));
590 fieldOnCells1.setTime(4.,6,7);
591 self.assertTrue(not fieldOnCells1.isEqual(fieldOnCells2,1e-12,1e-15));
592 self.assertTrue(not fieldOnCells2.isEqual(fieldOnCells1,1e-12,1e-15));
593 fieldOnCells2.setTime(4.,6,7);
594 self.assertTrue(fieldOnCells1.isEqual(fieldOnCells2,1e-12,1e-15));
595 self.assertTrue(fieldOnCells2.isEqual(fieldOnCells1,1e-12,1e-15));
596 fieldOnCells1.setName("Power");
597 self.assertTrue(not fieldOnCells1.isEqual(fieldOnCells2,1e-12,1e-15));
598 self.assertTrue(not fieldOnCells2.isEqual(fieldOnCells1,1e-12,1e-15));
599 fieldOnCells2.setName("Power");
600 self.assertTrue(fieldOnCells1.isEqual(fieldOnCells2,1e-12,1e-15));
601 self.assertTrue(fieldOnCells2.isEqual(fieldOnCells1,1e-12,1e-15));
603 fieldOnCells1.setMesh(mesh1);
604 self.assertTrue(not fieldOnCells1.isEqual(fieldOnCells2,1e-12,1e-15));
605 self.assertTrue(not fieldOnCells2.isEqual(fieldOnCells1,1e-12,1e-15));
606 fieldOnCells2.setMesh(mesh1);
607 self.assertTrue(fieldOnCells1.isEqual(fieldOnCells2,1e-12,1e-15));
608 self.assertTrue(fieldOnCells2.isEqual(fieldOnCells1,1e-12,1e-15));
609 arr=DataArrayDouble.New();
611 arr.setValues(mesh1.getNumberOfCells()*3*[6.],mesh1.getNumberOfCells(),3);
612 fieldOnCells1.setArray(arr);
613 self.assertTrue(not fieldOnCells1.isEqual(fieldOnCells2,1e-12,1e-15));
614 self.assertTrue(not fieldOnCells2.isEqual(fieldOnCells1,1e-12,1e-15));
615 fieldOnCells2.setArray(arr);
616 self.assertTrue(fieldOnCells1.isEqual(fieldOnCells2,1e-12,1e-15));
617 self.assertTrue(fieldOnCells2.isEqual(fieldOnCells1,1e-12,1e-15));
620 fieldOnCells2.setArray(arr2);
621 self.assertTrue(fieldOnCells1.isEqual(fieldOnCells2,1e-12,1e-15));
622 self.assertTrue(fieldOnCells2.isEqual(fieldOnCells1,1e-12,1e-15));
624 self.assertTrue(not fieldOnCells1.isEqual(fieldOnCells2,1e-12,1e-15));
625 self.assertTrue(not fieldOnCells2.isEqual(fieldOnCells1,1e-12,1e-15));
627 self.assertTrue(fieldOnCells1.isEqual(fieldOnCells2,1e-12,1e-15));
628 self.assertTrue(fieldOnCells2.isEqual(fieldOnCells1,1e-12,1e-15));
629 arr2.setName("popo2");
630 self.assertTrue(not fieldOnCells1.isEqual(fieldOnCells2,1e-12,1e-15));
631 self.assertTrue(not fieldOnCells2.isEqual(fieldOnCells1,1e-12,1e-15));
633 arr2.setName("popo");
634 self.assertTrue(fieldOnCells1.isEqual(fieldOnCells2,1e-12,1e-15));
635 self.assertTrue(fieldOnCells2.isEqual(fieldOnCells1,1e-12,1e-15));
637 arr2.setInfoOnComponent(2,"jjj");
638 self.assertTrue(not fieldOnCells1.isEqual(fieldOnCells2,1e-12,1e-15));
639 self.assertTrue(not fieldOnCells2.isEqual(fieldOnCells1,1e-12,1e-15));
640 arr.setInfoOnComponent(2,"jjj");
641 self.assertTrue(fieldOnCells1.isEqual(fieldOnCells2,1e-12,1e-15));
642 self.assertTrue(fieldOnCells2.isEqual(fieldOnCells1,1e-12,1e-15));
645 def testNatureChecking(self):
646 field=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
647 field.setNature(Integral);
648 field.setNature(ConservativeVolumic);
649 field.setNature(IntegralGlobConstraint);
650 field=MEDCouplingFieldDouble.New(ON_NODES,NO_TIME);
651 field.setNature(ConservativeVolumic);
652 self.assertRaises(InterpKernelException,field.setNature,Integral);
653 self.assertRaises(InterpKernelException,field.setNature,IntegralGlobConstraint);
656 def testBuildSubMeshData(self):
657 targetMesh=MEDCouplingDataForTest.build2DTargetMesh_1()
658 #check buildSubMesh on field on cells
659 fieldCells=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
660 fieldCells.setMesh(targetMesh);
662 ret1,di=fieldCells.buildSubMeshData(elts);
663 self.assertTrue(isinstance(ret1,MEDCouplingUMesh))
664 self.assertEqual(3,ret1.getNumberOfCells());
665 self.assertEqual(9,ret1.getNumberOfNodes());
666 self.assertEqual(3,di.getNumberOfTuples());
667 self.assertEqual(1,di.getNumberOfComponents());
668 toCheck=di.getValues();
669 self.assertTrue(elts,toCheck);
670 #check buildSubMesh on field on nodes
671 fieldNodes=MEDCouplingFieldDouble.New(ON_NODES,NO_TIME);
672 fieldNodes.setMesh(targetMesh);
673 ret2,di=fieldNodes.buildSubMeshData(elts);
674 self.assertTrue(isinstance(ret2,MEDCouplingUMesh))
675 self.assertEqual(3,ret2.getNumberOfCells());
676 self.assertEqual(6,ret2.getNumberOfNodes());
677 self.assertEqual(6,di.getNumberOfTuples());
678 self.assertEqual(1,di.getNumberOfComponents());
679 toCheck=di.getValues();
680 expected=[1,2,4,5,7,8]
681 self.assertEqual(expected,list(toCheck));
684 def testExtrudedMesh1(self):
685 mesh3D,mesh2D=MEDCouplingDataForTest.build3DExtrudedUMesh_1();
686 ext=MEDCouplingExtrudedMesh.New(mesh3D,mesh2D,1);
687 self.assertEqual(18,ext.getNumberOfCells());
688 self.assertEqual(60,ext.getNumberOfNodes());
689 ids3D=ext.getMesh3DIds();
690 ids3DExpected=[5,4,3,2,1,0, 11,10,9,8,7,6, 17,16,15,14,13,12]
691 self.assertEqual(18,ids3D.getNumberOfTuples());
692 self.assertEqual(1,ids3D.getNumberOfComponents());
693 self.assertEqual(ids3DExpected,list(ids3D.getValues()));
694 mesh1D=ext.getMesh1D();
695 self.assertEqual(4,mesh1D.getNumberOfNodes());
696 self.assertEqual(3,mesh1D.getNumberOfCells());
697 mesh1DExpected=[0.66666666666666663, 1.4583333333333333, 0, 0.66666666666666663,
698 1.4583333333333333, 1, 0.66666666666666663, 1.4583333333333333,
699 2, 0.66666666666666663, 1.4583333333333333, 3]
700 mesh1DCoords=mesh1D.getCoords();
701 self.assertEqual(4,mesh1DCoords.getNumberOfTuples());
702 self.assertEqual(3,mesh1DCoords.getNumberOfComponents());
703 self.assertEqual(mesh1DExpected,mesh1DCoords.getValues());
704 conn1D=mesh1D.getNodalConnectivity();
705 self.assertEqual(9,conn1D.getNumberOfTuples());
706 self.assertEqual(1,conn1D.getNumberOfComponents());
707 conn1DExpected=[1,0,1,1,1,2,1,2,3]
708 self.assertEqual(conn1DExpected,list(conn1D.getValues()));
711 def testExtrudedMesh3(self):
712 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
713 m1.changeSpaceDimension(3);
714 m2=MEDCouplingDataForTest.buildCU1DMesh_U();
715 m2.changeSpaceDimension(3);
718 m2.rotate(center,vector,-pi/2.);
719 m3=m1.buildExtrudedMesh(m2,0);
721 m4=MEDCouplingExtrudedMesh.New(m3,m1,0);
722 self.assertEqual(15,m4.getNumberOfCells());
723 self.assertEqual(5,m4.getMesh2D().getNumberOfCells());
724 self.assertEqual(3,m4.getMesh1D().getNumberOfCells());
725 m3DIds=m4.getMesh3DIds().getValues();
726 self.assertEqual(range(15),list(m3DIds));
727 #some random in cells to check that extrusion alg find it correctly
728 expected1=[1,3,2,0,6,5,7,10,11,8,12,9,14,13,4]
729 m3.renumberCells(expected1,False);
730 m4=MEDCouplingExtrudedMesh.New(m3,m1,0);
731 self.assertEqual(15,m4.getNumberOfCells());
732 self.assertEqual(5,m4.getMesh2D().getNumberOfCells());
733 self.assertEqual(3,m4.getMesh1D().getNumberOfCells());
734 m3DIds=m4.getMesh3DIds().getValues();
735 self.assertEqual(expected1,list(m3DIds));
736 #play with polygons and polyedrons
738 m1.convertToPolyTypes(cells);
739 m3=m1.buildExtrudedMesh(m2,0);
740 self.assertEqual(NORM_HEXA8,m3.getTypeOfCell(0));
741 self.assertEqual(NORM_PENTA6,m3.getTypeOfCell(1));
742 self.assertEqual(NORM_POLYHED,m3.getTypeOfCell(2));
743 self.assertEqual(NORM_POLYHED,m3.getTypeOfCell(3));
744 self.assertEqual(NORM_HEXA8,m3.getTypeOfCell(4));
745 m3.renumberCells(expected1,False);
746 m4=MEDCouplingExtrudedMesh.New(m3,m1,0);
747 self.assertEqual(15,m4.getNumberOfCells());
748 self.assertEqual(5,m4.getMesh2D().getNumberOfCells());
749 self.assertEqual(3,m4.getMesh1D().getNumberOfCells());
750 m3DIds=m4.getMesh3DIds().getValues();
751 self.assertEqual(expected1,list(m3DIds));
754 def testExtrudedMesh4(self):
755 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
757 m1.convertToPolyTypes(cells);
758 m1.changeSpaceDimension(3);
759 m2=MEDCouplingDataForTest.buildCU1DMesh_U();
760 m2.changeSpaceDimension(3);
763 m2.rotate(center,vector,-pi/2.);
764 m3=m1.buildExtrudedMesh(m2,0);
765 expected1=[1,3,2,0,6,5,7,10,11,8,12,9,14,13,4]
766 rexpected1=[3, 0, 2, 1, 14, 5, 4, 6, 9, 11, 7, 8, 10, 13, 12]
767 m3.renumberCells(expected1,False);
768 m4=MEDCouplingExtrudedMesh.New(m3,m1,0);
769 self.assertEqual(NORM_HEXA8,m4.getTypeOfCell(0));
770 self.assertEqual(NORM_HEXA8,m4.getTypeOfCell(1));
771 self.assertEqual(NORM_POLYHED,m4.getTypeOfCell(2));
772 self.assertEqual(NORM_PENTA6,m4.getTypeOfCell(7));
773 f=m4.getMeasureField(True);
775 self.assertEqual(15,arr.getNumberOfTuples());
776 self.assertEqual(1,arr.getNumberOfComponents());
777 arrPtr=arr.getValues();
778 expected2=[0.075,0.0375,0.0375,0.075,0.075,
779 0.1125,0.05625,0.05625,0.1125,0.1125,
780 0.0625,0.03125,0.03125,0.0625,0.0625]
782 self.assertAlmostEqual(expected2[rexpected1[i]],arrPtr[i],16);
784 m5=m4.build3DUnstructuredMesh();
785 self.assertTrue(m5.isEqual(m3,1e-12));
786 f=m5.getMeasureField(True);
788 self.assertTrue(isinstance(f.getMesh(),MEDCouplingExtrudedMesh))
790 arrPtr=arr.getValues();
792 self.assertAlmostEqual(expected2[rexpected1[i]],arrPtr[i],15);
796 def testFindCommonNodes(self):
797 targetMesh=MEDCouplingDataForTest.build3DTargetMesh_1();
798 comm,commI=targetMesh.findCommonNodes(1e-10,-1);
799 self.assertEqual(1,commI.getNumberOfTuples());
800 self.assertEqual(0,comm.getNumberOfTuples());
801 o2n,newNbOfNodes=targetMesh.buildNewNumberingFromCommonNodesFormat(comm,commI);
802 self.assertEqual(27,newNbOfNodes);
803 self.assertEqual(27,o2n.getNumberOfTuples());
805 self.assertEqual(o2nExp1,list(o2n.getValues()));
807 targetMesh=MEDCouplingDataForTest.build3DTargetMeshMergeNode_1();
808 self.assertEqual(31,targetMesh.getNumberOfNodes());
809 comm,commI=targetMesh.findCommonNodes(1e-10);# testing default parameter
810 self.assertEqual(3,commI.getNumberOfTuples());
811 self.assertEqual(6,comm.getNumberOfTuples());
812 commExpected=[1,27,28,29,23,30]
813 commIExpected=[0,4,6]
814 self.assertEqual(commExpected,list(comm.getValues()));
815 self.assertEqual(commIExpected,list(commI.getValues()));
816 o2n,newNbOfNodes=targetMesh.buildNewNumberingFromCommonNodesFormat(comm,commI);
817 self.assertEqual(31,o2n.getNumberOfTuples());
818 self.assertEqual(27,newNbOfNodes);
819 o2nExp2=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,
820 21,22,23,24,25,26,1,1,1,23]
821 self.assertEqual(o2nExp2,list(o2n.getValues()));
823 targetMesh=MEDCouplingDataForTest.build3DTargetMesh_1();
824 time=targetMesh.getTimeOfThis();
825 o2n,areNodesMerged,newNbOfNodes=targetMesh.mergeNodes(1e-10);
826 targetMesh.updateTime();
827 self.assertEqual(time,targetMesh.getTimeOfThis());
828 self.assertTrue(not areNodesMerged);
830 targetMesh=MEDCouplingDataForTest.build3DTargetMeshMergeNode_1();
831 time=targetMesh.getTimeOfThis();
832 o2n,areNodesMerged,newNbOfNodes=targetMesh.mergeNodes(1e-10);
833 targetMesh.updateTime();
834 self.assertTrue(time!=targetMesh.getTimeOfThis());
835 self.assertTrue(areNodesMerged);
836 connExp=[18,0,1,4,3,9,10,13,12, 18,1,2,5,4,10,11,14,13, 18,3,4,7,6,12,13,16,15,
837 18,4,5,8,7,13,14,17,16,
838 18,9,10,13,12,18,19,22,21, 18,10,11,14,13,19,20,23,22, 18,12,13,16,15,21,22,25,24,
839 18,13,14,17,16,22,23,26,25]
840 self.assertEqual(72,targetMesh.getNodalConnectivity().getNumberOfTuples());
841 self.assertEqual(connExp,list(targetMesh.getNodalConnectivity().getValues()));
842 self.assertEqual(27,targetMesh.getCoords().getNumberOfTuples());
843 coordsExp=[ 0., 0., 0., 50., 0., 0. , 200., 0., 0. , 0., 50., 0., 50., 50., 0. ,
844 200., 50., 0., 0., 200., 0., 50., 200., 0. , 200., 200., 0. ,
845 0., 0., 50., 50., 0., 50. , 200., 0., 50. , 0., 50., 50., 50.,
846 50., 50. , 200., 50., 50., 0., 200., 50., 50., 200., 50. ,
847 200., 200., 50. , 0., 0., 200., 50., 0., 200. , 200., 0., 200.
848 , 0., 50., 200., 50., 50., 200. , 200., 50., 200.,
849 0., 200., 200., 50., 200., 200. , 200., 200., 200. ]
850 self.assertEqual(coordsExp,targetMesh.getCoords().getValues());
852 targetMesh=MEDCouplingDataForTest.build2DTargetMeshMergeNode_1();
853 self.assertEqual(18,targetMesh.getNumberOfNodes());
854 time=targetMesh.getTimeOfThis();
855 o2n,areNodesMerged,newNbOfNodes=targetMesh.mergeNodes(1e-10);
856 self.assertTrue(time!=targetMesh.getTimeOfThis());
857 self.assertTrue(areNodesMerged);
858 self.assertEqual(9,targetMesh.getNumberOfNodes());
859 connExp2=[4,0,4,3,1, 3,1,3,2, 3,3,5,2, 4,4,6,7,3, 4,7,8,5,3]
860 self.assertEqual(23,targetMesh.getNodalConnectivity().getNumberOfTuples());
861 self.assertEqual(connExp2,list(targetMesh.getNodalConnectivity().getValues()));
862 coordsExp2=[-0.3,-0.3, 0.2,-0.3, 0.7,-0.3, 0.2,0.2, -0.3,0.2, 0.7,0.2, -0.3,0.7, 0.2,0.7, 0.7,0.7]
863 self.assertEqual(9,targetMesh.getCoords().getNumberOfTuples());
864 self.assertEqual(coordsExp2,targetMesh.getCoords().getValues());
867 def testCheckButterflyCells(self):
868 sourceMesh=MEDCouplingDataForTest.build2DTargetMesh_1();
869 cells=sourceMesh.checkButterflyCells();
870 self.assertEqual(0,len(cells));
871 conn=sourceMesh.getNodalConnectivity()
873 conn.setIJ(15,0,conn.getIJ(16,0))
875 cells=sourceMesh.checkButterflyCells();
876 self.assertEqual(1,len(cells));
877 self.assertEqual([3],cells.getValues());
879 conn.setIJ(15,0,conn.getIJ(16,0))
881 cells=sourceMesh.checkButterflyCells();
882 self.assertEqual(0,len(cells));
884 sourceMesh=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
885 cells=sourceMesh.checkButterflyCells();
886 self.assertEqual(0,len(cells));
887 conn=sourceMesh.getNodalConnectivity()
889 conn.setIJ(15,0,conn.getIJ(16,0))
891 cells=sourceMesh.checkButterflyCells();
892 self.assertEqual(1,len(cells));
893 self.assertEqual([3],cells.getValues());
895 conn.setIJ(15,0,conn.getIJ(16,0))
897 cells=sourceMesh.checkButterflyCells();
898 self.assertEqual(0,len(cells));
901 def testMergeMesh1(self):
902 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
903 m2=MEDCouplingDataForTest.build2DSourceMesh_1();
906 m3=m1.mergeMyselfWith(m2);
907 self.assertTrue(isinstance(m3,MEDCouplingUMesh));
909 m4=MEDCouplingDataForTest.build2DTargetMeshMerged_1();
910 self.assertTrue(m3.isEqual(m4,1.e-12));
911 da,isMerged,newNbOfNodes=m3.mergeNodes(1.e-12);
912 self.assertEqual(11,m3.getNumberOfNodes());
913 self.assertTrue(isMerged);
916 def testMergeMeshOnSameCoords1(self):
917 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
918 m2=MEDCouplingDataForTest.build2DTargetMesh_1();
920 m2.convertToPolyTypes(cells);
921 m1.tryToShareSameCoords(m2,1e-12);
922 m3=MEDCouplingDataForTest.build2DTargetMesh_1();
923 m3.tryToShareSameCoords(m2,1e-12);
925 m4=MEDCouplingUMesh.MergeUMeshesOnSameCoords(meshes);
927 self.assertEqual(15,m4.getNumberOfCells());
929 m1_1=m4.buildPartOfMySelf(cells1,True);
930 m1_1.setName(m1.getName());
931 self.assertTrue(m1.isEqual(m1_1,1e-12));
933 m2_1=m4.buildPartOfMySelf(cells2,True);
934 m2_1.setName(m2.getName());
935 self.assertTrue(m2.isEqual(m2_1,1e-12));
936 cells3=[10,11,12,13,14]
937 m3_1=m4.buildPartOfMySelf(cells3,True);
938 m3_1.setName(m3.getName());
939 self.assertTrue(m3.isEqual(m3_1,1e-12));
942 def testMergeField1(self):
943 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
944 m2=MEDCouplingDataForTest.build2DSourceMesh_1();
947 f1=m1.getMeasureField(True);
948 f2=m2.getMeasureField(True);
949 f3=MEDCouplingFieldDouble.MergeFields(f1,f2);
951 m4=MEDCouplingDataForTest.build2DTargetMeshMerged_1();
952 self.assertTrue(f3.getMesh().isEqual(m4,1.e-12));
954 self.assertEqual(name,"MeasureOfMesh_");
955 self.assertEqual(f3.getTypeOfField(),ON_CELLS);
956 self.assertEqual(f3.getTimeDiscretization(),ONE_TIME);
957 self.assertEqual(1,f3.getNumberOfComponents());
958 self.assertEqual(7,f3.getNumberOfTuples());
959 values=[0.25,0.125,0.125,0.25,0.25,0.5,0.5]
960 tmp=f3.getArray().getValues();
961 self.assertEqual(len(values),len(tmp))
963 self.assertTrue(abs(values[i]-tmp[i])<1e-12)
967 def testFillFromAnalytic(self):
968 m=MEDCouplingDataForTest.build2DTargetMesh_1();
969 m.setTime(3.4,5,6); m.setTimeUnit("us");
970 f1=m.fillFromAnalytic(ON_CELLS,1,"x+y");
971 self.assertAlmostEqual(3.4,f1.getTime()[0],12) ; self.assertEqual(5,f1.getTime()[1]) ; self.assertEqual(6,f1.getTime()[2])
972 self.assertEqual("us",f1.getTimeUnit())
974 self.assertEqual(f1.getTypeOfField(),ON_CELLS);
975 self.assertEqual(f1.getTimeDiscretization(),ONE_TIME);
976 self.assertEqual(1,f1.getNumberOfComponents());
977 self.assertEqual(5,f1.getNumberOfTuples());
978 values1=[-0.1,0.23333333333333336,0.56666666666666665,0.4,0.9]
979 tmp=f1.getArray().getValues();
980 self.assertEqual(len(values1),len(tmp))
981 for i in xrange(len(tmp)):
982 self.assertTrue(abs(tmp[i]-values1[i])<1.e-12)
985 f1=m.fillFromAnalytic(ON_NODES,1,"x+y");
987 self.assertEqual(f1.getTypeOfField(),ON_NODES);
988 self.assertEqual(f1.getTimeDiscretization(),ONE_TIME);
989 self.assertEqual(1,f1.getNumberOfComponents());
990 self.assertEqual(9,f1.getNumberOfTuples());
991 values2=[-0.6,-0.1,0.4,-0.1,0.4,0.9,0.4,0.9,1.4]
992 tmp=f1.getArray().getValues();
993 self.assertEqual(len(values2),len(tmp))
994 for i in xrange(len(tmp)):
995 self.assertTrue(abs(tmp[i]-values2[i])<1.e-12)
998 f1=m.fillFromAnalytic(ON_NODES,2,"(x+y)*IVec+(2*(x+y))*JVec");
1000 self.assertEqual(f1.getTypeOfField(),ON_NODES);
1001 self.assertEqual(f1.getTimeDiscretization(),ONE_TIME);
1002 self.assertEqual(2,f1.getNumberOfComponents());
1003 self.assertEqual(9,f1.getNumberOfTuples());
1004 values3=[-0.6,-1.2,-0.1,-0.2,0.4,0.8,-0.1,-0.2,0.4,0.8,0.9,1.8,0.4,0.8,0.9,1.8,1.4,2.8]
1005 tmp=f1.getArray().getValues();
1006 self.assertEqual(len(values3),len(tmp))
1007 for i in xrange(len(tmp)):
1008 self.assertTrue(abs(tmp[i]-values3[i])<1.e-12)
1010 values4=f1.accumulate();
1011 self.assertEqual(2,len(values4))
1012 self.assertTrue(abs(3.6-values4[0])<1.e-12);
1013 self.assertTrue(abs(7.2-values4[1])<1.e-12);
1014 values4=f1.integral(True);
1015 self.assertEqual(2,len(values4))
1016 self.assertTrue(abs(0.5-values4[0])<1.e-12);
1017 self.assertTrue(abs(1.-values4[1])<1.e-12);
1019 self.assertRaises(InterpKernelException,m.fillFromAnalytic,ON_NODES,1,"1./(x-0.2)");
1022 def testFillFromAnalytic2(self):
1023 m=MEDCouplingDataForTest.build2DTargetMesh_1();
1024 f1=m.fillFromAnalytic(ON_CELLS,1,"y+x");
1025 f1.checkCoherency();
1026 self.assertEqual(f1.getTypeOfField(),ON_CELLS);
1027 self.assertEqual(f1.getTimeDiscretization(),ONE_TIME);
1028 self.assertEqual(1,f1.getNumberOfComponents());
1029 self.assertEqual(5,f1.getNumberOfTuples());
1030 values1=[-0.1,0.23333333333333336,0.56666666666666665,0.4,0.9]
1031 tmp=f1.getArray().getValues();
1032 self.assertEqual(len(values1),len(tmp))
1033 for i in xrange(len(values1)):
1034 self.assertTrue(abs(values1[i]-tmp[i])<1.e-12);
1037 f1=m.fillFromAnalytic(ON_NODES,1,"y+2*x");
1038 f1.checkCoherency();
1039 self.assertEqual(f1.getTypeOfField(),ON_NODES);
1040 self.assertEqual(f1.getTimeDiscretization(),ONE_TIME);
1041 self.assertEqual(1,f1.getNumberOfComponents());
1042 self.assertEqual(9,f1.getNumberOfTuples());
1043 values2=[-0.9,0.1,1.1,-0.4,0.6,1.6,0.1,1.1,2.1]
1044 tmp=f1.getArray().getValues();
1045 self.assertEqual(len(values2),len(tmp))
1046 for i in xrange(len(values2)):
1047 self.assertTrue(abs(values2[i]-tmp[i])<1.e-12);
1049 f1=m.fillFromAnalytic(ON_NODES,1,"2.*x+y");
1050 f1.checkCoherency();
1051 self.assertEqual(f1.getTypeOfField(),ON_NODES);
1052 self.assertEqual(f1.getTimeDiscretization(),ONE_TIME);
1053 self.assertEqual(1,f1.getNumberOfComponents());
1054 self.assertEqual(9,f1.getNumberOfTuples());
1055 tmp=f1.getArray().getValues();
1056 values2Bis=[-0.9,0.1,1.1,-0.4,0.6,1.6,0.1,1.1,2.1]
1057 self.assertEqual(len(values2Bis),len(tmp))
1058 for i in xrange(len(values2Bis)):
1059 self.assertTrue(abs(values2Bis[i]-tmp[i])<1.e-12);
1062 f1=m.fillFromAnalytic(ON_NODES,2,"(x+y)*IVec+2*(x+y)*JVec");
1063 f1.checkCoherency();
1064 self.assertEqual(f1.getTypeOfField(),ON_NODES);
1065 self.assertEqual(f1.getTimeDiscretization(),ONE_TIME);
1066 self.assertEqual(2,f1.getNumberOfComponents());
1067 self.assertEqual(9,f1.getNumberOfTuples());
1068 values3=[-0.6,-1.2,-0.1,-0.2,0.4,0.8,-0.1,-0.2,0.4,0.8,0.9,1.8,0.4,0.8,0.9,1.8,1.4,2.8]
1069 tmp=f1.getArray().getValues();
1070 self.assertEqual(len(values3),len(tmp))
1071 for i in xrange(len(values3)):
1072 self.assertTrue(abs(values3[i]-tmp[i])<1.e-12);
1074 values4=f1.accumulate();
1075 self.assertTrue(abs(3.6-values4[0])<1.e-12);
1076 self.assertTrue(abs(7.2-values4[1])<1.e-12);
1077 values4=f1.integral(True);
1078 self.assertTrue(abs(0.5-values4[0])<1.e-12);
1079 self.assertTrue(abs(1.-values4[1])<1.e-12);
1082 def testApplyFunc(self):
1083 m=MEDCouplingDataForTest.build2DTargetMesh_1();
1084 f1=m.fillFromAnalytic(ON_NODES,2,"(x+y)*IVec+(2*(x+y))*JVec");
1085 f1.checkCoherency();
1086 self.assertEqual(f1.getTypeOfField(),ON_NODES);
1087 self.assertEqual(f1.getTimeDiscretization(),ONE_TIME);
1088 self.assertEqual(2,f1.getNumberOfComponents());
1089 self.assertEqual(9,f1.getNumberOfTuples());
1090 f1.applyFunc(1,"x+y");
1091 self.assertEqual(f1.getTypeOfField(),ON_NODES);
1092 self.assertEqual(f1.getTimeDiscretization(),ONE_TIME);
1093 self.assertEqual(1,f1.getNumberOfComponents());
1094 self.assertEqual(9,f1.getNumberOfTuples());
1095 values1=[-1.8,-0.3,1.2,-0.3,1.2,2.7,1.2,2.7,4.2]
1096 tmp=f1.getArray().getValues();
1097 self.assertEqual(len(values1),len(tmp))
1098 for i in xrange(len(tmp)):
1099 self.assertTrue(abs(tmp[i]-values1[i])<1.e-12)
1103 def testApplyFunc2(self):
1104 m=MEDCouplingDataForTest.build2DTargetMesh_1();
1105 f1=m.fillFromAnalytic(ON_NODES,2,"(x+y)*IVec+2*(x+y)*JVec");
1106 f1.checkCoherency();
1107 self.assertEqual(f1.getTypeOfField(),ON_NODES);
1108 self.assertEqual(f1.getTimeDiscretization(),ONE_TIME);
1109 self.assertEqual(2,f1.getNumberOfComponents());
1110 self.assertEqual(9,f1.getNumberOfTuples());
1113 self.assertRaises(InterpKernelException, f2.applyFunc, 1, "a+b+c+d");
1114 self.assertRaises(InterpKernelException, f2.applyFunc, 1, "a/0");
1115 self.assertRaises(InterpKernelException, f2.applyFunc, "a/0");
1116 f2.applyFunc("abs(u)^2.4+2*u");
1117 self.assertEqual(f1.getTypeOfField(),ON_NODES);
1118 self.assertEqual(f1.getTimeDiscretization(),ONE_TIME);
1119 self.assertEqual(2,f1.getNumberOfComponents());
1120 self.assertEqual(9,f1.getNumberOfTuples());
1121 values2=[-0.9065304805418678, -0.85105859001709905, -0.19601892829446504, -0.37898777756476987,
1122 0.91090317490482353, 2.1853504664669781, -0.19601892829446504, -0.37898777756476987,
1123 0.91090317490482353, 2.1853504664669781, 2.5765725275664879, 7.6987743736515295,
1124 0.91090317490482353, 2.1853504664669781, 2.5765725275664879, 7.6987743736515295,
1125 5.0423700574830965, 17.435300118916864]
1126 tmp=f2.getArray().getValues();
1127 self.assertEqual(len(tmp),len(values2))
1128 for i in xrange(len(tmp)):
1129 self.assertTrue(abs(tmp[i]-values2[i])<1.e-12)
1132 f1.applyFunc(1,"x+y");
1133 self.assertEqual(f1.getTypeOfField(),ON_NODES);
1134 self.assertEqual(f1.getTimeDiscretization(),ONE_TIME);
1135 self.assertEqual(1,f1.getNumberOfComponents());
1136 self.assertEqual(9,f1.getNumberOfTuples());
1137 values1=[-1.8,-0.3,1.2,-0.3,1.2,2.7,1.2,2.7,4.2]
1138 tmp=f1.getArray().getValues();
1139 self.assertEqual(len(tmp),len(values1))
1140 for i in xrange(len(tmp)):
1141 self.assertTrue(abs(tmp[i]-values1[i])<1.e-12)
1145 def testOperationsOnFields(self):
1146 m=MEDCouplingDataForTest.build2DTargetMesh_1();
1147 f1=m.fillFromAnalytic(ON_NODES,1,"x+y");
1148 f2=m.fillFromAnalytic(ON_NODES,1,"x+y");
1149 f1.checkCoherency();
1150 f2.checkCoherency();
1152 f3.checkCoherency();
1153 self.assertEqual(f3.getTypeOfField(),ON_NODES);
1154 self.assertEqual(f3.getTimeDiscretization(),ONE_TIME);
1155 values1=[-1.2,-0.2,0.8,-0.2,0.8,1.8,0.8,1.8,2.8]
1156 tmp=f3.getArray().getValues();
1157 self.assertEqual(len(values1),len(tmp))
1158 for i in xrange(len(tmp)):
1159 self.assertTrue(abs(tmp[i]-values1[i])<1.e-12)
1163 f3.checkCoherency();
1164 self.assertEqual(f3.getTypeOfField(),ON_NODES);
1165 self.assertEqual(f3.getTimeDiscretization(),ONE_TIME);
1166 values2=[0.36,0.01,0.16,0.01,0.16,0.81,0.16,0.81,1.96]
1167 tmp=f3.getArray().getValues();
1168 self.assertEqual(len(values2),len(tmp))
1169 for i in xrange(len(tmp)):
1170 self.assertTrue(abs(tmp[i]-values2[i])<1.e-12)
1175 f4.checkCoherency();
1176 self.assertEqual(f4.getTypeOfField(),ON_NODES);
1177 self.assertEqual(f4.getTimeDiscretization(),ONE_TIME);
1178 values3=[0.6,0.1,-0.4,0.1,-0.4,-0.9,-0.4,-0.9,-1.4]
1179 tmp=f4.getArray().getValues();
1180 self.assertEqual(len(values3),len(tmp))
1181 for i in xrange(len(tmp)):
1182 self.assertTrue(abs(tmp[i]-values3[i])<1.e-12)
1187 f4.checkCoherency();
1188 self.assertEqual(f4.getTypeOfField(),ON_NODES);
1189 self.assertEqual(f4.getTimeDiscretization(),ONE_TIME);
1190 tmp=f4.getArray().getValues();
1191 for i in xrange(len(tmp)):
1192 self.assertTrue(abs(tmp[i]-2.)<1.e-12)
1195 f4=f2.buildNewTimeReprFromThis(NO_TIME,False);
1196 f4.checkCoherency();
1197 self.assertEqual(f4.getTypeOfField(),ON_NODES);
1198 self.assertEqual(f4.getTimeDiscretization(),NO_TIME);
1199 self.assertRaises(InterpKernelException,f1.__add__,f4);
1200 f5=f4.buildNewTimeReprFromThis(ONE_TIME,False);
1201 self.assertEqual(f5.getTypeOfField(),ON_NODES);
1202 self.assertEqual(f5.getTimeDiscretization(),ONE_TIME);
1204 tmp=f3.getArray().getValues();
1205 values4=[-1.2,-0.2,0.8,-0.2,0.8,1.8,0.8,1.8,2.8]
1206 self.assertEqual(len(values3),len(tmp))
1207 for i in xrange(len(tmp)):
1208 self.assertTrue(abs(tmp[i]-values4[i])<1.e-12)
1211 f4=f2.buildNewTimeReprFromThis(NO_TIME,True);
1212 f4.checkCoherency();
1213 self.assertEqual(f4.getTypeOfField(),ON_NODES);
1214 self.assertEqual(f4.getTimeDiscretization(),NO_TIME);
1215 self.assertRaises(InterpKernelException,f1.__add__,f4);
1216 f5=f4.buildNewTimeReprFromThis(ONE_TIME,True);
1217 self.assertEqual(f5.getTypeOfField(),ON_NODES);
1218 self.assertEqual(f5.getTimeDiscretization(),ONE_TIME);
1220 tmp=f3.getArray().getValues();
1221 values5=[-1.2,-0.2,0.8,-0.2,0.8,1.8,0.8,1.8,2.8]
1222 self.assertEqual(len(values5),len(tmp))
1223 for i in xrange(len(tmp)):
1224 self.assertTrue(abs(tmp[i]-values5[i])<1.e-12)
1228 def testOperationsOnFields2(self):
1229 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
1230 m.setTime(3.4,5,6); m.setTimeUnit("us");
1231 f1=m.fillFromAnalytic(ON_NODES,1,"x+y+z");
1232 f2=m.fillFromAnalytic(ON_NODES,1,"a*a+b+c*c");
1234 f3.checkCoherency();
1235 self.assertEqual(f3.getTypeOfField(),ON_NODES);
1236 self.assertEqual(f3.getTimeDiscretization(),ONE_TIME);
1237 expected1=[-2.4999999999999991, 1.2162162162162162, 0.77868852459016391,
1238 0.7407407407407407, 1.129032258064516, 0.81632653061224492,
1239 0.86538461538461531, 1.0919540229885056, 0.84302325581395343]
1240 self.assertEqual(1,f3.getNumberOfComponents());
1241 self.assertEqual(9,f3.getNumberOfTuples());
1242 val=f3.getArray().getValues();
1244 self.assertTrue(abs(expected1[i]-val[i])<1.e-12);
1246 f1=m.buildOrthogonalField();
1247 self.assertAlmostEqual(3.4,f1.getTime()[0],12) ; self.assertEqual(5,f1.getTime()[1]) ; self.assertEqual(6,f1.getTime()[2])
1248 self.assertEqual("us",f1.getTimeUnit())
1249 f2=m.fillFromAnalytic(ON_CELLS,1,"x");
1251 expected2=[-0.035355339059327376,0.,0.035355339059327376, 0.2592724864350674,0.,-0.2592724864350674, 0.37712361663282529,0.,-0.37712361663282529, -0.035355339059327376,0.,0.035355339059327376, 0.31819805153394637,0.,-0.31819805153394637]
1252 val=f3.getArray().getValues();
1253 for i in xrange(15):
1254 self.assertTrue(abs(expected2[i]-val[i])<1.e-12);
1258 val=f3.getArray().getValues();
1259 for i in xrange(15):
1260 self.assertTrue(abs(expected2[i]-val[i])<1.e-12);
1264 def testOperationsOnFields3(self):
1265 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
1266 f1=m.fillFromAnalytic(ON_NODES,1,"x+y+z");
1267 f2=m.fillFromAnalytic(ON_NODES,1,"a*a+b+c*c");
1269 f1.checkCoherency();
1270 self.assertEqual(f1.getTypeOfField(),ON_NODES);
1271 self.assertEqual(f1.getTimeDiscretization(),ONE_TIME);
1272 expected1=[-2.4999999999999991, 1.2162162162162162, 0.77868852459016391,
1273 0.7407407407407407, 1.129032258064516, 0.81632653061224492,
1274 0.86538461538461531, 1.0919540229885056, 0.84302325581395343]
1275 self.assertEqual(1,f1.getNumberOfComponents());
1276 self.assertEqual(9,f1.getNumberOfTuples());
1277 val=f1.getArray().getValues();
1279 self.assertTrue(abs(expected1[i]-val[i])<1.e-12);
1282 f1=m.buildOrthogonalField();
1283 f2=m.fillFromAnalytic(ON_CELLS,1,"x");
1285 expected2=[-0.035355339059327376,0.,0.035355339059327376, 0.2592724864350674,0.,-0.2592724864350674, 0.37712361663282529,0.,-0.37712361663282529, -0.035355339059327376,0.,0.035355339059327376, 0.31819805153394637,0.,-0.31819805153394637]
1286 val=f1.getArray().getValues();
1287 for i in xrange(15):
1288 self.assertTrue(abs(expected2[i]-val[i])<1.e-12);
1291 f1=m.buildOrthogonalField();
1292 # to avoid valgrind leaks
1293 # self.assertRaises(InterpKernelException,f2.__imul__,f1);
1296 def testOperationsOnFields4(self):
1297 m=MEDCouplingDataForTest.build2DTargetMesh_1();
1298 nbOfCells=m.getNumberOfCells();
1299 f1=MEDCouplingFieldDouble.New(ON_CELLS,CONST_ON_TIME_INTERVAL);
1301 array=DataArrayDouble.New();
1303 self.assertRaises(InterpKernelException,f1.setEndArray,array);
1304 self.assertRaises(InterpKernelException,f1.getEndArray);
1305 arr1=[0.,10.,20.,1.,11.,21.,2.,12.,22.,3.,13.,23.,4.,14.,24.]
1306 arr2=[5.,15.,25.,6.,16.,26.,7.,17.,27.,8.,18.,28.,9.,19.,29.]
1307 array.setValues(arr1,nbOfCells,3);
1308 f1.setStartTime(2.,0,0);
1309 f1.setEndTime(3.,0,0);
1310 f1.checkCoherency();
1312 res=f1.getValueOn(pos);
1313 self.assertTrue(abs(arr1[3]-res[0])<1.e-12);
1314 self.assertTrue(abs(arr1[4]-res[1])<1.e-12);
1315 self.assertTrue(abs(arr1[5]-res[2])<1.e-12);
1317 res=f1.getValueOn(pos,2.2);
1318 self.assertTrue(abs(arr1[3]-res[0])<1.e-12);
1319 self.assertTrue(abs(arr1[4]-res[1])<1.e-12);
1320 self.assertTrue(abs(arr1[5]-res[2])<1.e-12);
1322 self.assertRaises(InterpKernelException,f1.getValueOn,pos,3.2)
1323 f2=MEDCouplingFieldDouble.New(ON_CELLS,LINEAR_TIME);
1325 f2.setArray(f1.getArray());
1326 f2.setStartTime(2.,3,0);
1327 f2.setEndTime(4.,13,0);
1328 self.assertRaises(InterpKernelException,f2.checkCoherency)
1329 array2=DataArrayDouble.New();
1330 array2.setValues(arr2,nbOfCells,3);
1331 f2.setEndArray(array2);
1332 f2.checkCoherency();
1335 res=f2.getValueOn(pos,3.21);
1336 self.assertTrue(abs(4.025-res[0])<1.e-12);
1337 self.assertTrue(abs(14.025-res[1])<1.e-12);
1338 self.assertTrue(abs(24.025-res[2])<1.e-12);
1340 self.assertTrue(f2.isEqual(f3,1e-12,1e-12));
1341 f3.getEndArray().setIJ(0,0,5.001);
1342 self.assertTrue(not f2.isEqual(f3,1e-12,1e-12));
1343 self.assertTrue(f2.isEqual(f3,1e-12,1e-2));
1344 f3.setStartTime(2.1,3,0);
1345 self.assertTrue(not f2.isEqual(f3,1e-12,1e-2));
1346 f3.setStartTime(2.,3,0);
1347 self.assertTrue(f2.isEqual(f3,1e-12,1e-2));
1348 f3.setStartTime(2.,4,0);
1349 self.assertTrue(not f2.isEqual(f3,1e-12,1e-2));
1350 f3.setStartTime(2.,3,1);
1351 self.assertTrue(not f2.isEqual(f3,1e-12,1e-2));
1352 f3.setStartTime(2.,3,0);
1353 self.assertTrue(f2.isEqual(f3,1e-12,1e-2));
1354 f3.setEndTime(4.1,13,0);
1355 self.assertTrue(not f2.isEqual(f3,1e-12,1e-2));
1356 f3.setEndTime(4.,13,0);
1357 self.assertTrue(f2.isEqual(f3,1e-12,1e-2));
1358 f3.setEndTime(4.,14,0);
1359 self.assertTrue(not f2.isEqual(f3,1e-12,1e-2));
1360 f3.setEndTime(4.,13,1);
1361 self.assertTrue(not f2.isEqual(f3,1e-12,1e-2));
1362 f3.setEndTime(4.,13,0);
1363 self.assertTrue(f2.isEqual(f3,1e-12,1e-2));
1366 res=f4.getValueOn(pos,3.21);
1367 self.assertTrue(abs(8.05-res[0])<1.e-12);
1368 self.assertTrue(abs(28.05-res[1])<1.e-12);
1369 self.assertTrue(abs(48.05-res[2])<1.e-12);
1372 res=f4.getValueOn(pos,3.21);
1373 self.assertTrue(abs(12.075-res[0])<1.e-12);
1374 self.assertTrue(abs(42.075-res[1])<1.e-12);
1375 self.assertTrue(abs(72.075-res[2])<1.e-12);
1378 def testMergeNodesOnField(self):
1379 targetMesh=MEDCouplingDataForTest.build3DTargetMeshMergeNode_1();
1380 f1=targetMesh.fillFromAnalytic(ON_NODES,1,"x+y+z");
1381 f1.mergeNodes(1e-10);
1383 targetMesh=MEDCouplingDataForTest.build3DTargetMeshMergeNode_1();
1384 f1=targetMesh.fillFromAnalytic(ON_NODES,1,"x+y+z");
1386 tmp.setIJ(0,0,1000.);
1387 f1.mergeNodes(1e-10);
1389 targetMesh=MEDCouplingDataForTest.build3DTargetMeshMergeNode_1();
1390 f1=targetMesh.fillFromAnalytic(ON_NODES,1,"x+y+z");
1392 tmp.setIJ(1,0,1000.);
1393 self.assertRaises(InterpKernelException,f1.mergeNodes,1.e-10)
1396 def testCheckConsecutiveCellTypes(self):
1397 sourceMesh=MEDCouplingDataForTest.build2DSourceMesh_1();
1398 targetMesh=MEDCouplingDataForTest.build2DTargetMesh_1();
1399 self.assertTrue(sourceMesh.checkConsecutiveCellTypes());
1400 order1=[NORM_TRI3,NORM_QUAD4]
1401 order2=[NORM_QUAD4,NORM_TRI3]
1402 self.assertTrue(not targetMesh.checkConsecutiveCellTypes());
1403 self.assertTrue(not targetMesh.checkConsecutiveCellTypesAndOrder(order1));
1404 self.assertTrue(not targetMesh.checkConsecutiveCellTypesAndOrder(order2));
1405 da=targetMesh.getRenumArrForConsecutiveCellTypesSpec(order1);
1406 self.assertEqual(5,da.getNumberOfTuples());
1407 self.assertEqual(1,da.getNumberOfComponents());
1408 expected1=[2,0,1,3,4]
1409 self.assertTrue(expected1==list(da.getValues()));
1410 da=targetMesh.getRenumArrForConsecutiveCellTypesSpec(order2);
1411 self.assertEqual(5,da.getNumberOfTuples());
1412 self.assertEqual(1,da.getNumberOfComponents());
1413 expected2=[0,3,4,1,2]
1414 self.assertTrue(expected2==list(da.getValues()));
1415 renumber1=[4,0,1,2,3]
1416 targetMesh.renumberCells(renumber1,False);
1417 self.assertTrue(targetMesh.checkConsecutiveCellTypes());
1418 self.assertTrue(targetMesh.checkConsecutiveCellTypesAndOrder(order1));
1419 self.assertTrue(not targetMesh.checkConsecutiveCellTypesAndOrder(order2));
1422 def testRearrange2ConsecutiveCellTypes(self):
1423 m1_1=MEDCouplingDataForTest.build2DSourceMesh_1();
1424 m2_1=MEDCouplingDataForTest.build2DTargetMesh_1();
1425 arr1=m1_1.rearrange2ConsecutiveCellTypes();
1426 m1_2=MEDCouplingDataForTest.build2DSourceMesh_1();
1427 self.assertTrue(m1_2.isEqual(m1_1,1e-12));
1429 self.assertEqual(2,arr1.getNumberOfTuples());
1430 self.assertEqual(1,arr1.getNumberOfComponents());
1431 self.assertEqual(expected1,arr1.getValues());
1432 expected2=[0,3,4,1,2]
1433 arr1=m2_1.rearrange2ConsecutiveCellTypes();
1434 self.assertEqual(5,arr1.getNumberOfTuples());
1435 self.assertEqual(1,arr1.getNumberOfComponents());
1436 self.assertEqual(expected2,list(arr1.getValues()));
1437 m2_2=MEDCouplingDataForTest.build2DTargetMesh_1();
1438 self.assertEqual(5,arr1.getNumberOfTuples());
1439 self.assertEqual(1,arr1.getNumberOfComponents());
1440 self.assertEqual(expected2,list(arr1.getValues()));
1441 self.assertTrue(not m2_2.isEqual(m2_1,1e-12));
1442 m2_2.renumberCells(expected2,False);
1443 self.assertTrue(m2_2.isEqual(m2_1,1e-12));
1446 def testSplitByType(self):
1447 m1=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
1449 self.assertEqual(3,len(v));
1450 m2=MEDCouplingUMesh.MergeUMeshesOnSameCoords(v);
1451 m2.setName(m1.getName());
1452 self.assertTrue(m1.isEqual(m2,1.e-12));
1455 def testFuseUMeshesOnSameCoords(self):
1456 m2=MEDCouplingDataForTest.build2DTargetMesh_1();
1458 m3=m2.buildPartOfMySelf(cells1,True);
1459 self.assertTrue(isinstance(m3,MEDCouplingUMesh))
1461 m4=m2.buildPartOfMySelf(cells2,True);
1462 self.assertTrue(isinstance(m4,MEDCouplingUMesh))
1464 m5=m2.buildPartOfMySelf(cells3,True);
1465 self.assertTrue(isinstance(m5,MEDCouplingUMesh))
1468 m7,corr=MEDCouplingUMesh.FuseUMeshesOnSameCoords(meshes,0);
1469 self.assertEqual(4,m7.getNumberOfCells());
1470 self.assertEqual(3,len(corr));
1471 expectedVals1=[3,3,2]
1472 expectedVals2=[[0,1,2],[3,0,2],[3,0]]
1475 self.assertEqual(1,arr.getNumberOfComponents());
1476 nbOfVals=expectedVals1[i];
1477 self.assertEqual(nbOfVals,arr.getNumberOfTuples());
1478 vals=arr.getValues();
1479 self.assertEqual(expectedVals2[i],list(vals));
1481 arr2,fidsOfGroups=DataArrayInt.MakePartition(corr,m7.getNumberOfCells());
1483 fidsGrp=[[1,3,5],[3,4,5],[4,5]]
1484 self.assertEqual(3,len(fidsOfGroups));
1485 self.assertEqual(1,arr2.getNumberOfComponents());
1486 self.assertEqual(4,arr2.getNumberOfTuples());
1487 self.assertEqual(fidExp,list(arr2.getValues()));
1489 nbOfVals=expectedVals1[i];
1490 self.assertEqual(list(fidsOfGroups[i]),fidsGrp[i]);
1494 def testFuseUMeshesOnSameCoords2(self):
1495 m1,m2=MEDCouplingDataForTest.build3DExtrudedUMesh_1();
1497 m3=m1.buildPartOfMySelf(part1,True);
1499 m4=m1.buildPartOfMySelf(part2,True);
1500 meshes=[m1,m3,m3,m4]
1501 m5,corr=MEDCouplingUMesh.FuseUMeshesOnSameCoords(meshes,0);
1502 self.assertEqual(18,m5.getNumberOfCells());
1504 [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],
1510 self.assertEqual(exp2[i],list(it.getValues()));
1515 def testBuildOrthogonalField(self):
1516 targetMesh=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
1517 field=targetMesh.buildOrthogonalField();
1518 expected=[0.70710678118654746,0.,-0.70710678118654746]
1519 self.assertEqual(5,field.getNumberOfTuples());
1520 self.assertEqual(3,field.getNumberOfComponents());
1521 vals=field.getArray().getValues();
1522 for i in xrange(15):
1523 self.assertTrue(abs(expected[i%3]-vals[i])<1e-12);
1525 targetCoords=[0.,0.,0.,0.5,0.,0.5,1.,0.,1.,0.,1.,0.]
1526 targetConn=[0,1,2,3]
1527 targetMesh=MEDCouplingUMesh.New();
1528 targetMesh.setMeshDimension(2);
1529 targetMesh.allocateCells(1);
1530 targetMesh.insertNextCell(NORM_QUAD4,targetConn[0:4])
1531 targetMesh.finishInsertingCells();
1532 myCoords=DataArrayDouble.New();
1533 myCoords.setValues(targetCoords,4,3);
1534 targetMesh.setCoords(myCoords);
1535 field=targetMesh.buildOrthogonalField();
1536 self.assertEqual(1,field.getNumberOfTuples());
1537 self.assertEqual(3,field.getNumberOfComponents());
1538 vals=field.getArray().getValues();
1539 self.assertTrue(abs(-0.70710678118654746-vals[0])<1e-12);
1540 self.assertTrue(abs(0.-vals[1])<1e-12);
1541 self.assertTrue(abs(0.70710678118654746-vals[2])<1e-12);
1544 def testGetCellsContainingPoint(self):
1545 targetMesh=MEDCouplingDataForTest.build2DTargetMesh_1();
1546 pos=[0.,0.,0.4,0.4,0.,0.4,0.1,0.1,0.25,0.,0.65,0.]
1548 t1,t2=targetMesh.getCellsContainingPoints(pos,6,1e-12);
1549 self.assertEqual(6,t1.getNumberOfTuples());
1550 self.assertEqual(1,t1.getNumberOfComponents());
1551 self.assertEqual(7,t2.getNumberOfTuples());
1552 self.assertEqual(1,t2.getNumberOfComponents());
1553 expectedValues1=[0,4,3,0,1,2]
1554 expectedValues2=[0,1,2,3,4,5,6]
1555 self.assertEqual(list(t1.getValues()),expectedValues1);
1556 self.assertEqual(list(t2.getValues()),expectedValues2);
1557 #2D with no help of bounding box.
1559 MEDCouplingPointSet.Rotate2DAlg(center,0.78539816339744830962,6,pos);
1560 targetMesh.rotate(center,0.78539816339744830962);
1563 t1,t2=targetMesh.getCellsContainingPoints(pos,1e-12);
1564 self.assertEqual(6,t1.getNumberOfTuples());
1565 self.assertEqual(7,t2.getNumberOfTuples());
1566 self.assertEqual(list(t1.getValues()),expectedValues1);
1567 self.assertEqual(list(t2.getValues()),expectedValues2);
1568 t1,t2=targetMesh.getCellsContainingPoints(DataArrayDouble.New(pos,6,2),1e-12);
1569 self.assertEqual(6,t1.getNumberOfTuples());
1570 self.assertEqual(7,t2.getNumberOfTuples());
1571 self.assertEqual(list(t1.getValues()),expectedValues1);
1572 self.assertEqual(list(t2.getValues()),expectedValues2);
1573 self.assertRaises(InterpKernelException,targetMesh.getCellsContainingPoints,DataArrayDouble.New(pos,4,3),1e-12);
1575 pos1bis=[-0.3303300858899107,-0.11819805153394641]
1576 self.assertEqual(-1,targetMesh.getCellContainingPoint(pos1bis,1e-12));
1578 targetMesh=MEDCouplingDataForTest.build2DTargetMesh_1();
1581 t1=targetMesh.getCellsContainingPoint(pos2,1e-12)
1582 self.assertEqual(2,len(t1));
1583 expectedValues3=[0,1]
1584 self.assertEqual(list(t1.getValues()),expectedValues3);
1587 t1=targetMesh.getCellsContainingPoint(pos3,1e-12);
1588 self.assertEqual(5,len(t1));
1589 expectedValues4=[0,1,2,3,4]
1590 self.assertEqual(list(t1.getValues()),expectedValues4);
1591 self.assertEqual(0,targetMesh.getCellContainingPoint(pos3,1e-12));
1593 targetMesh=MEDCouplingDataForTest.build3DTargetMesh_1();
1595 self.assertEqual(0,targetMesh.getCellContainingPoint(pos4,1e-12));
1598 t1=targetMesh.getCellsContainingPoint(pos5,1e-12);
1599 self.assertEqual(8,len(t1));
1600 expectedValues5=[0,1,2,3,4,5,6,7]
1601 self.assertEqual(list(t1.getValues()),expectedValues5);
1604 t1=targetMesh.getCellsContainingPoint(pos6,1e-12);
1605 self.assertEqual(2,len(t1));
1606 expectedValues6=[0,2]
1607 self.assertEqual(list(t1.getValues()),expectedValues6);
1610 self.assertEqual(-1,targetMesh.getCellContainingPoint(pos7,1e-12));
1614 targetMesh.rotate(center2,vec2,0.78539816339744830962);
1616 self.assertEqual(-1,targetMesh.getCellContainingPoint(pos8,1e-12));
1619 def testGetValueOn1(self):
1620 targetMesh=MEDCouplingDataForTest.build2DTargetMesh_1();
1621 fieldOnCells=MEDCouplingFieldDouble.New(ON_CELLS);
1622 nbOfCells=targetMesh.getNumberOfCells();
1623 fieldOnCells.setMesh(targetMesh);
1624 array=DataArrayDouble.New();
1625 tmp=2*nbOfCells*[None]
1626 for i in xrange(nbOfCells):
1627 tmp[2*i]=7.+float(i);
1628 tmp[2*i+1]=17.+float(i)
1630 array.setValues(tmp,nbOfCells,2);
1631 fieldOnCells.setArray(array);
1634 res=fieldOnCells.getValueOn(pos1);
1635 self.assertEqual(2,len(res))
1636 self.assertTrue(abs(8.-res[0])<1e-12);
1637 self.assertTrue(abs(18.-res[1])<1e-12);
1640 targetMesh=MEDCouplingDataForTest.build2DSourceMesh_1();
1641 fieldOnNodes=MEDCouplingFieldDouble.New(ON_NODES);
1642 nbOfNodes=targetMesh.getNumberOfNodes();
1643 fieldOnNodes.setMesh(targetMesh);
1644 array=DataArrayDouble.New();
1645 tmp=2*nbOfNodes*[None]
1646 for i in xrange(nbOfNodes):
1647 tmp[2*i]=17.+float(i);
1648 tmp[2*i+1]=27.+float(i)
1650 array.setValues(tmp,nbOfNodes,2);
1651 fieldOnNodes.setArray(array);
1653 pos2=[-0.13333333333333333,-0.13333333333333333]
1655 res=fieldOnNodes.getValueOn(pos2);
1656 self.assertEqual(2,len(res))
1657 self.assertTrue(abs(17.5-res[0])<1e-12);
1658 self.assertTrue(abs(27.5-res[1])<1e-12);
1659 pos3=[0.033333333333333326,0.36666666666666664]
1661 res=fieldOnNodes.getValueOn(pos3);
1662 self.assertEqual(2,len(res))
1663 self.assertTrue(abs(18.666666666666667-res[0])<1e-12);
1664 self.assertTrue(abs(28.666666666666667-res[1])<1e-12);
1667 def testCMesh0(self):
1668 mesh=MEDCouplingCMesh.New();
1669 meshEmpty=mesh.clone(True);
1670 self.assertTrue(meshEmpty.isEqual(mesh, 1e-12));
1672 coordsX=DataArrayDouble.New();
1673 arrX=[ -1., 1., 2., 4. ]
1674 coordsX.setValues(arrX, 4, 1);
1675 coordsY=DataArrayDouble.New();
1676 arrY=[ -2., 2., 4., 8. ]
1677 coordsY.setValues(arrY, 4, 1);
1678 coordsZ=DataArrayDouble.New();
1679 arrZ=[ -3., 3., 6., 12. ]
1680 coordsZ.setValues(arrZ, 4, 1);
1681 mesh.setCoords(coordsX, coordsY, coordsZ);
1683 fieldOnNodes=mesh.fillFromAnalytic(ON_NODES, 1, "x+y/2.+z/3.");
1684 self.assertEqual(1, fieldOnNodes.getNumberOfComponents());
1685 self.assertEqual(64, fieldOnNodes.getNumberOfTuples());
1686 expected1=[-3., -1., 0., 2., -1., 1., 2., 4., 0., 2., 3., 5., 2., 4., 5., 7., -1., 1., 2.,
1687 4., 1., 3., 4., 6., 2., 4., 5., 7., 4., 6., 7., 9., 0., 2., 3., 5., 2., 4., 5.,
1688 7., 3., 5., 6., 8., 5., 7., 8., 10., 2., 4., 5.,
1689 7., 4., 6., 7., 9., 5., 7., 8., 10., 7., 9., 10., 12.];
1691 val=fieldOnNodes.getArray().getValues();
1692 for i in xrange(64):
1693 self.assertAlmostEqual(expected1[i], val[i], 12)
1694 res=fieldOnNodes.getValueOnPos(1, 3, 2);
1695 self.assertAlmostEqual(7., res[0], 12);
1697 fieldOnCells=mesh.fillFromAnalytic(ON_CELLS, 1, "x+y/2.+z/3.");
1698 self.assertEqual(1, fieldOnCells.getNumberOfComponents());
1699 self.assertEqual(27, fieldOnCells.getNumberOfTuples());
1700 val=fieldOnCells.getArray().getValues();
1701 expected2=[0, 1.5, 3, 1.5, 3, 4.5, 3, 4.5, 6, 1.5, 3, 4.5, 3, 4.5,
1702 6, 4.5, 6, 7.5, 3, 4.5, 6, 4.5, 6, 7.5, 6, 7.5, 9];
1703 for i in xrange(27):
1704 self.assertAlmostEqual(expected2[i], val[i], 12);
1705 #res=fieldOnCells.getValueOnPos(1,2,1);
1706 #self.assertAlmostEqual(6.,res,12);
1708 meshDeepCopy=mesh.deepCpy();
1709 meshClone=mesh.clone(False);
1711 meshEmpty.copyTinyStringsFrom(mesh);
1712 #no data in meshEmpty, expected False
1713 self.assertTrue(not meshEmpty.isEqual(mesh, 1e-12));
1715 self.assertTrue(meshDeepCopy.isEqual(mesh, 1e-12));
1716 meshDeepCopy.copyTinyStringsFrom(mesh);
1717 self.assertTrue(meshDeepCopy.isEqual(mesh, 1e-12));
1718 self.assertTrue(meshClone.isEqual(mesh, 1e-12));
1720 self.assertEqual(CARTESIAN, mesh.getType());
1721 self.assertEqual(CARTESIAN, meshEmpty.getType());
1722 self.assertEqual(CARTESIAN, meshDeepCopy.getType());
1723 self.assertEqual(CARTESIAN, meshClone.getType());
1726 def testCMesh1(self):
1727 mesh1=MEDCouplingCMesh.New();
1728 coordsX1=DataArrayDouble.New();
1729 arrX1=[ -1., 1., 2., 4. ]
1730 coordsX1.setValues(arrX1, 4, 1);
1731 coordsY1=DataArrayDouble.New();
1732 arrY1=[ -2., 2., 4., 8. ]
1733 coordsY1.setValues(arrY1, 4, 1);
1734 coordsZ1=DataArrayDouble.New();
1735 arrZ1=[ -3., 3., 6., 12. ]
1736 coordsZ1.setValues(arrZ1, 4, 1);
1737 mesh1.setCoords(coordsX1, coordsY1, coordsZ1);
1739 mesh2=MEDCouplingCMesh.New();
1740 coordsX2=DataArrayDouble.New();
1741 arrX2=[ -1., 1., 2., 4. ]
1742 coordsX2.setValues(arrX2, 4, 1);
1743 coordsY2=DataArrayDouble.New();
1744 arrY2=[ -2., 2., 4., 8. ]
1745 coordsY2.setValues(arrY2, 4, 1);
1746 coordsZ2=DataArrayDouble.New();
1747 arrZ2=[ -3., 3., 6., 12.+1e-6 ]
1748 coordsZ2.setValues(arrZ2, 4, 1);
1749 mesh2.setCoords(coordsX2, coordsY2, coordsZ2);
1751 mesh3=MEDCouplingCMesh.New();
1752 coordsX3=DataArrayDouble.New();
1754 coordsX3.setValues(arrX3, 1, 1);
1755 coordsY3=DataArrayDouble.New();
1757 coordsY3.setValues(arrY3, 1, 1);
1758 coordsZ3=DataArrayDouble.New();
1760 coordsZ3.setValues(arrZ3, 1, 1);
1761 mesh3.setCoords(coordsX3, coordsY3, coordsZ3);
1763 self.assertEqual(3, mesh1.getSpaceDimension());
1764 self.assertEqual(3, mesh1.getMeshDimension());
1766 self.assertTrue(not mesh1.isEqual(mesh2, 1e-12));
1767 self.assertTrue(not mesh2.isEqual(mesh1, 1e-12));
1768 self.assertTrue(not mesh2.isEqualWithoutConsideringStr(mesh1, 1e-12));
1769 self.assertTrue(mesh1.isEqual(mesh2, 1e-5));
1770 self.assertTrue(not mesh1.isEqual(mesh2, 1e-7));
1772 self.assertRaises(InterpKernelException, mesh3.checkCoherency1, 1e-12);
1773 mesh1.checkCoherency2(1e-12);
1774 self.assertEqual(NORM_HEXA8, mesh1.getTypeOfCell(1));
1776 self.assertEqual(NORM_HEXA8, mesh1.getAllGeoTypes()[0]);
1777 self.assertEqual(27, mesh1.getNumberOfCellsWithType(NORM_HEXA8));
1778 self.assertRaises(InterpKernelException, mesh1.getNumberOfCellsWithType, NORM_QUAD4);
1780 coo=mesh1.getCoordinatesOfNode(0);
1781 self.assertEqual(3, len(coo));
1782 self.assertAlmostEqual(-1., coo[0], 14);
1783 self.assertAlmostEqual(-2., coo[1], 14);
1784 self.assertAlmostEqual(-3., coo[2], 14);
1785 coo=mesh1.getCoordinatesOfNode(63);
1786 self.assertEqual(3, len(coo));
1787 self.assertAlmostEqual(4., coo[0], 14);
1788 self.assertAlmostEqual(8., coo[1], 14);
1789 self.assertAlmostEqual(12., coo[2], 14);
1792 repr=mesh1.simpleRepr();
1793 repr=mesh1.advancedRepr();
1794 self.assertTrue("Cartesian" in repr);
1795 self.assertTrue("Number of components : 1" in repr);
1796 self.assertTrue("Number of tuples : 4" in repr);
1797 self.assertTrue("Z Array :" in repr);
1800 def testCMesh2(self):
1801 mesh1=MEDCouplingCMesh.New();
1802 coordsX1=DataArrayDouble.New();
1803 arrX1=[ -1., 1., 2., 4. ]
1804 coordsX1.setValues(arrX1, 4, 1);
1805 coordsY1=DataArrayDouble.New();
1806 arrY1=[ -2., 2., 4., 8. ]
1807 coordsY1.setValues(arrY1, 4, 1);
1808 coordsZ1=DataArrayDouble.New();
1809 arrZ1=[ -3., 3., 6., 12. ]
1810 coordsZ1.setValues(arrZ1, 4, 1);
1811 mesh1.setCoords(coordsX1, coordsY1, coordsZ1);
1813 dis=mesh1.getDistributionOfTypes();
1814 self.assertEqual(1, len(dis));
1815 self.assertEqual(NORM_HEXA8, dis[0][0]);
1816 self.assertEqual(27, dis[0][1]);
1817 self.assertEqual(0, dis[0][2]);
1820 self.assertRaises(InterpKernelException, mesh1.checkTypeConsistencyAndContig, dis, idsPerType);
1823 self.assertTrue(not mesh1.checkTypeConsistencyAndContig(dis, idsPerType));
1824 dis[0][0]=NORM_QUAD4;
1825 self.assertRaises(InterpKernelException, mesh1.checkTypeConsistencyAndContig, dis, idsPerType);
1826 dis[0][0]=NORM_HEXA8;
1828 ids=DataArrayInt.New();
1830 ids.fillWithValue(111);
1832 check=mesh1.checkTypeConsistencyAndContig(dis, idsPerType);
1833 self.assertTrue(check);
1834 self.assertTrue(check.isEqual(ids));
1836 code, idsInPflPerType, pfls=mesh1.splitProfilePerType(ids);
1837 self.assertEqual(3, len(code));
1838 self.assertEqual(NORM_HEXA8, code[0]);
1839 self.assertEqual(27, code[1]);
1840 self.assertEqual(0, code[2]);
1841 self.assertEqual(1, len(idsInPflPerType));
1842 self.assertEqual(1, len(pfls));
1843 self.assertTrue(idsInPflPerType[0].isEqual(ids));
1844 self.assertTrue(pfls[0].isEqual(ids));
1846 cells1=[0, 1, 25, 26]
1847 partMesh1=mesh1.buildPart(cells1)
1848 self.assertTrue(isinstance(partMesh1,MEDCouplingMesh))
1849 self.assertEqual(4, partMesh1.getNumberOfCellsWithType(NORM_HEXA8));
1850 self.assertEqual(64, mesh1.getNumberOfNodes());
1851 self.assertEqual(64, partMesh1.getNumberOfNodes());
1854 partMesh2, arr1=mesh1.buildPartAndReduceNodes(cells2)
1855 self.assertTrue(isinstance(partMesh2,MEDCouplingUMesh))
1856 self.assertEqual(2,partMesh2.getNumberOfCellsWithType(NORM_HEXA8));
1857 self.assertEqual(12,partMesh2.getNumberOfNodes());
1860 partMesh3, arr2=partMesh1.buildPartAndReduceNodes(cells3)
1861 self.assertTrue(isinstance(partMesh3,MEDCouplingUMesh))
1862 self.assertEqual(2, partMesh3.getNumberOfCellsWithType(NORM_HEXA8));
1863 self.assertEqual(12, partMesh3.getNumberOfNodes());
1865 self.assertRaises(InterpKernelException, mesh1.simplexize, 0);
1866 self.assertRaises(InterpKernelException, mesh1.getMeasureFieldOnNode, True);
1870 bbox1=mesh1.getBoundingBox(); #[(-1.0, 4.0), (-2.0, 8.0), (-3.0, 12.0)]
1871 bbox2=partMesh1.getBoundingBox();
1872 self.assertTrue(bbox1==bbox2);
1873 bbox1=partMesh3.getBoundingBox();
1874 bbox2=partMesh2.getBoundingBox();
1875 self.assertTrue(bbox1==bbox2);
1877 self.assertRaises(InterpKernelException, mesh1.buildOrthogonalField);
1878 mesh2d=MEDCouplingCMesh.New();
1879 mesh2d.setCoords(coordsX1, coordsY1);
1880 f1=mesh2d.buildOrthogonalField();
1884 def testScale(self):
1885 mesh=MEDCouplingDataForTest.build2DTargetMesh_1();
1887 mesh.scale(pos,0.5);
1888 expected1=[-0.05,-0.05, 0.2,-0.05, 0.45,-0.05, -0.05,0.2, 0.2,0.2, 0.45,0.2,
1889 -0.05,0.45, 0.2,0.45, 0.45,0.45]
1890 val=mesh.getCoords().getValues();
1891 self.assertEqual(18,len(val))
1892 for i in xrange(18):
1893 self.assertTrue(abs(expected1[i]-val[i])<1e-12);
1897 def testTryToShareSameCoords(self):
1898 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
1899 m2=MEDCouplingDataForTest.build2DTargetMesh_1();
1900 self.assertTrue(m1.getCoords().getHiddenCppPointer()!=m2.getCoords().getHiddenCppPointer());
1901 m1.tryToShareSameCoords(m2,1e-12);
1902 self.assertTrue(m1.getCoords().getHiddenCppPointer()==m2.getCoords().getHiddenCppPointer());
1903 m1.tryToShareSameCoords(m2,1e-12);
1904 self.assertTrue(m1.getCoords().getHiddenCppPointer()==m2.getCoords().getHiddenCppPointer());
1905 m2.tryToShareSameCoords(m1,1e-12);
1906 self.assertTrue(m1.getCoords().getHiddenCppPointer()==m2.getCoords().getHiddenCppPointer());
1908 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
1909 m2=MEDCouplingDataForTest.build2DTargetMesh_2();
1910 self.assertTrue(m1.getCoords().getHiddenCppPointer()!=m2.getCoords().getHiddenCppPointer());
1911 m1.tryToShareSameCoords(m2,1e-12);
1912 self.assertTrue(m1.getCoords().getHiddenCppPointer()==m2.getCoords().getHiddenCppPointer());
1913 m1.tryToShareSameCoords(m2,1e-12);
1914 self.assertTrue(m1.getCoords().getHiddenCppPointer()==m2.getCoords().getHiddenCppPointer());
1915 m2.tryToShareSameCoords(m1,1e-12);
1916 self.assertTrue(m1.getCoords().getHiddenCppPointer()==m2.getCoords().getHiddenCppPointer());
1918 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
1919 m2=MEDCouplingDataForTest.build2DSourceMesh_1();
1920 self.assertTrue(m1.getCoords().getHiddenCppPointer()!=m2.getCoords().getHiddenCppPointer());
1921 self.assertRaises(InterpKernelException,m1.tryToShareSameCoords,m2,1e-12)
1924 def testFindNodeOnPlane(self):
1925 mesh=MEDCouplingDataForTest.build3DTargetMesh_1();
1928 n=mesh.findNodesOnPlane(pt,v,1e-12);
1929 self.assertEqual(9,len(n));
1930 m3dSurf=mesh.buildFacePartOfMySelfNode(n,True);
1931 self.assertTrue(isinstance(m3dSurf,MEDCouplingUMesh))
1932 me=MEDCouplingExtrudedMesh.New(mesh,m3dSurf,0);
1933 da=me.getMesh3DIds();
1934 self.assertEqual(8,me.getNumberOfCells());
1935 expected=[0,1,2,3,4,5,6,7]
1937 self.assertEqual(expected,list(val));
1939 m3dSurf=mesh.buildFacePartOfMySelfNode(n,True);
1940 self.assertTrue(isinstance(m3dSurf,MEDCouplingUMesh))
1941 me=MEDCouplingExtrudedMesh.New(mesh,m3dSurf,0);
1942 da=me.getMesh3DIds();
1943 self.assertEqual(8,me.getNumberOfCells());
1944 expected=[0,1,2,3,4,5,6,7]
1946 self.assertEqual(expected,list(val));
1949 def testRenumberCells(self):
1950 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
1951 m2=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
1952 self.assertTrue(m.isEqual(m2,0));
1954 m.renumberCells(arr,True);
1955 self.assertTrue(not m.isEqual(m2,0));
1956 self.assertEqual(NORM_QUAD4,m.getTypeOfCell(0));
1957 self.assertEqual(NORM_TRI3,m.getTypeOfCell(1));
1958 self.assertEqual(NORM_QUAD4,m.getTypeOfCell(2));
1959 self.assertEqual(NORM_TRI3,m.getTypeOfCell(3));
1960 self.assertEqual(NORM_QUAD4,m.getTypeOfCell(4));
1962 m.renumberCells(arr2,True);
1963 self.assertTrue(m.isEqual(m2,0));
1966 def testChangeSpaceDimension(self):
1967 m1=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
1968 m2=MEDCouplingDataForTest.build2DTargetMesh_1();
1970 self.assertEqual(3,m1.getSpaceDimension());
1971 m1.changeSpaceDimension(2);
1972 self.assertEqual(2,m1.getSpaceDimension());
1973 m1.setName(m2.getName());
1974 self.assertTrue(m1.isEqual(m2,1e-12));
1975 m1.changeSpaceDimension(3);
1976 self.assertEqual(3,m1.getSpaceDimension());
1977 expected=[-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.]
1978 val=m1.getCoords().getValues();
1979 for i in xrange(27):
1980 self.assertTrue(abs(expected[i]-val[i])<1e-14);
1984 def testGaussPointField1(self):
1985 _a=0.446948490915965;
1986 _b=0.091576213509771;
1987 _p1=0.11169079483905;
1988 _p2=0.0549758718227661;
1989 refCoo1=[ 0.,0., 1.,0., 0.,1. ]
1990 gsCoo1=[ 2*_b-1, 1-4*_b, 2*_b-1, 2.07*_b-1, 1-4*_b,
1991 2*_b-1, 1-4*_a, 2*_a-1, 2*_a-1, 1-4*_a, 2*_a-1, 2*_a-1 ]
1992 wg1=[ 4*_p2, 4*_p2, 4*_p2, 4*_p1, 4*_p1, 4*_p1 ]
1997 m=MEDCouplingDataForTest.build2DTargetMesh_1();
1998 f=MEDCouplingFieldDouble.New(ON_GAUSS_PT,NO_TIME);
2000 self.assertEqual(5,f.getNumberOfMeshPlacesExpected());
2001 self.assertEqual(0,f.getNbOfGaussLocalization());
2002 f.setGaussLocalizationOnType(NORM_TRI3,_refCoo1,_gsCoo1,_wg1);
2003 f.setGaussLocalizationOnType(NORM_TRI3,_refCoo1,_gsCoo1,_wg1); # not a bug only to check that it works well
2004 self.assertRaises(InterpKernelException,f.setGaussLocalizationOnType,NORM_QUAD4,_refCoo1,_gsCoo1,_wg1)
2005 self.assertEqual(1,f.getNbOfGaussLocalization());
2006 refCoo2=[ 0.,0., 1.,0., 1.,1., 0.,1. ]
2008 _gsCoo1=_gsCoo1[0:4]
2010 f.setGaussLocalizationOnType(NORM_QUAD4,_refCoo2,_gsCoo1,_wg1);
2011 self.assertEqual(2,f.getNbOfGaussLocalization());
2012 array=DataArrayDouble.New();
2014 for i in xrange(18*2):
2016 array.setValues(ptr,18,2);
2017 ptr=array.getPointer();
2019 f.setName("MyFirstFieldOnGaussPoint");
2021 self.assertAlmostEqual(27.,f.getIJK(2,5,0),14);
2022 self.assertAlmostEqual(16.,f.getIJK(1,5,1),14);
2024 f.clearGaussLocalizations();
2025 self.assertEqual(0,f.getNbOfGaussLocalization());
2026 self.assertRaises(InterpKernelException,f.checkCoherency);
2028 self.assertRaises(InterpKernelException,f.setGaussLocalizationOnCells,ids1,_refCoo2,_gsCoo1,_wg1);
2029 self.assertEqual(0,f.getNbOfGaussLocalization());
2031 f.setGaussLocalizationOnCells(ids2,_refCoo2,_gsCoo1,_wg1);
2032 self.assertEqual(1,f.getNbOfGaussLocalization());
2033 self.assertEqual(0,f.getGaussLocalizationIdOfOneCell(0));
2034 self.assertRaises(InterpKernelException,f.getGaussLocalizationIdOfOneCell,1);
2036 f.setGaussLocalizationOnCells(ids3,_refCoo1,_gsCoo1,_wg1);
2037 self.assertEqual(2,f.getNbOfGaussLocalization());
2038 self.assertEqual(0,f.getGaussLocalizationIdOfOneCell(0));
2039 self.assertEqual(1,f.getGaussLocalizationIdOfOneCell(1));
2040 self.assertEqual(1,f.getGaussLocalizationIdOfOneCell(2));
2041 self.assertRaises(InterpKernelException,f.checkCoherency);#<- cell 3 has no localization
2045 _gsCoo2[0]=0.8888777776666;
2046 _wg2[0]=0.1234567892377;
2047 f.setGaussLocalizationOnCells(ids4,_refCoo2,_gsCoo2,_wg2);
2048 self.assertEqual(3,f.getNbOfGaussLocalization());
2049 tmpIds=f.getCellIdsHavingGaussLocalization(0);
2050 self.assertEqual(ids2,list(tmpIds.getValues()));
2051 self.assertRaises(InterpKernelException,f.checkCoherency);#<- it's always not ok because undelying array not with the good size.
2052 array2=f.getArray().substr(0,10);
2054 f.checkCoherency();#<- here it is OK
2056 self.assertTrue(f.isEqual(f2,1e-14,1e-14));
2057 gl1=f2.getGaussLocalization(0);
2058 tmp=gl1.getGaussCoord(1,1);
2059 self.assertAlmostEqual(2.07*_b-1,tmp,14);
2060 gl1.setGaussCoord(1,1,0.07);
2061 self.assertTrue(not f.isEqual(f2,1e-14,1e-14));
2062 gl1.setGaussCoord(1,1,tmp);
2063 self.assertTrue(f.isEqual(f2,1e-14,1e-14));
2064 f2.checkCoherency();
2067 def testGaussPointNEField1(self):
2068 m=MEDCouplingDataForTest.build2DTargetMesh_1();
2069 f=MEDCouplingFieldDouble.New(ON_GAUSS_NE,NO_TIME);
2071 self.assertEqual(5,f.getNumberOfMeshPlacesExpected());
2072 f.setName("MyFirstFieldOnNE");
2073 f.setDescription("MyDescriptionNE");
2074 array=DataArrayDouble.New();
2076 for i in xrange(18*2):
2079 array.setValues(tmp,18,2);
2080 ptr=array.getPointer();
2085 self.assertTrue(f.isEqual(f2,1e-14,1e-14));
2086 self.assertAlmostEqual(21.,f.getIJK(2,0,0),14);
2087 self.assertAlmostEqual(18.,f.getIJK(1,1,1),14);
2090 def testCellOrientation1(self):
2091 m=MEDCouplingDataForTest.build2DTargetMesh_1();
2093 self.assertRaises(InterpKernelException,m.are2DCellsNotCorrectlyOriented,vec,False);
2094 m.changeSpaceDimension(3);
2095 res1=m.are2DCellsNotCorrectlyOriented(vec,False);
2096 self.assertTrue(len(res1)==0);
2098 res1=m.are2DCellsNotCorrectlyOriented(vec,False);
2099 self.assertEqual(5,len(res1));
2102 # connectivity inversion
2103 conn=m.getNodalConnectivity().getValues();
2107 m.getNodalConnectivity().setValues(conn,len(conn),1)
2108 res1=m.are2DCellsNotCorrectlyOriented(vec,False);
2109 self.assertEqual(1,len(res1));
2110 self.assertEqual(2,res1.getValues()[0]);
2111 m.orientCorrectly2DCells(vec,False);
2112 res1=m.are2DCellsNotCorrectlyOriented(vec,False);
2113 self.assertTrue(len(res1)==0);
2114 m2=MEDCouplingDataForTest.build2DTargetMesh_1();
2115 m2.changeSpaceDimension(3);
2116 self.assertTrue(m.isEqual(m2,1e-12));
2119 def testCellOrientation2(self):
2120 m2,m1=MEDCouplingDataForTest.build3DExtrudedUMesh_1();
2121 res1=m2.arePolyhedronsNotCorrectlyOriented();
2122 self.assertEqual(6,len(res1));
2123 m2.orientCorrectlyPolyhedrons();
2124 res1=m2.arePolyhedronsNotCorrectlyOriented();
2125 self.assertTrue(len(res1)==0);
2126 m2.checkCoherency();
2127 self.assertEqual(18,m2.getNumberOfCells());
2129 m2.convertToPolyTypes(cellIds2);
2130 m2.orientCorrectlyPolyhedrons();
2131 res1=m2.arePolyhedronsNotCorrectlyOriented();
2132 self.assertTrue(len(res1)==0);
2133 f2=m2.getMeasureField(False);
2134 f2Ptr=f2.getArray().getValues();
2135 #Test to check global reverse in MEDCouplingUMesh::tryToCorrectPolyhedronOrientation
2136 m3=MEDCouplingDataForTest.build2DTargetMesh_1();
2138 m3.changeSpaceDimension(3);
2140 m3.convertToPolyTypes(ids2);
2141 m3.orientCorrectly2DCells(vec,False);
2142 m4=MEDCouplingDataForTest.buildCU1DMesh_U();
2143 m4.changeSpaceDimension(3);
2146 m4.rotate(center,vector,-pi/2.);
2147 m5=m3.buildExtrudedMesh(m4,0);
2148 res1=m5.arePolyhedronsNotCorrectlyOriented();
2149 self.assertEqual(15,len(res1));
2150 m5.orientCorrectlyPolyhedrons();
2151 res1=m5.arePolyhedronsNotCorrectlyOriented();
2152 self.assertTrue(len(res1)==0);
2153 f3=m5.getMeasureField(False);
2154 self.assertEqual(15,f3.getArray().getNumberOfTuples());
2155 self.assertEqual(1,f3.getNumberOfComponents());
2156 f3Ptr=f3.getArray().getValues();
2157 expected1=[0.075,0.0375,0.0375,0.075,0.075, 0.1125,0.05625,0.05625,0.1125,0.1125, 0.0625,0.03125,0.03125,0.0625,0.0625];
2158 for i in xrange(15):
2159 self.assertTrue(abs(expected1[i]-f3Ptr[i])<1e-12);
2161 f4=m5.getBarycenterAndOwner();
2162 self.assertEqual(15,f4.getNumberOfTuples());
2163 self.assertEqual(3,f4.getNumberOfComponents());
2164 f4Ptr=f4.getValues();
2165 expected2=[-0.05,-0.05,0.15, 0.3666666666666667,-0.13333333333333333,0.15, 0.53333333333333333,0.033333333333333333,0.15, -0.05,0.45,0.15, 0.45,0.45,0.15,-0.05,-0.05,0.525, 0.3666666666666667,-0.13333333333333333,0.525, 0.53333333333333333,0.033333333333333333,0.525, -0.05,0.45,0.525, 0.45,0.45,0.525,-0.05,-0.05,0.875, 0.3666666666666667,-0.13333333333333333,0.875, 0.53333333333333333,0.033333333333333333,0.875, -0.05,0.45,0.875, 0.45,0.45,0.875];
2166 for i in xrange(45):
2167 self.assertTrue(abs(expected2[i]-f4Ptr[i])<1e-12);
2171 def testPolyhedronBarycenter(self):
2172 connN=[0,3,2,1, -1, 4,5,6,7, -1, 0,4,7,3, -1, 3,7,6,2, -1, 2,6,5,1, -1, 1,5,4,0];
2173 coords=[0.,0.,0., 1.,0.,0., 1.,1.,0., 0.,1.,0., 0.,0.,1., 1.,0.,1., 1.,1.,1., 0.,1.,1., 0.5, 0.5, 0.5];
2174 meshN=MEDCouplingUMesh.New();
2175 meshN.setName("ForBary");
2176 meshN.setMeshDimension(3);
2177 meshN.allocateCells(4);
2178 meshN.insertNextCell(NORM_POLYHED,29,connN[0:29])
2179 meshN.finishInsertingCells();
2180 myCoords=DataArrayDouble.New();
2181 myCoords.setValues(coords,9,3);
2182 meshN.setCoords(myCoords);
2183 meshN.checkCoherency();
2185 res1=meshN.arePolyhedronsNotCorrectlyOriented();
2186 meshN.orientCorrectlyPolyhedrons();
2187 self.assertTrue(len(res1)==0);
2188 da=meshN.getBarycenterAndOwner();
2189 self.assertEqual(1,da.getNumberOfTuples());
2190 self.assertEqual(3,da.getNumberOfComponents());
2191 daPtr=da.getValues();
2192 ref=meshN.getCoords().getValues()[24:];
2194 self.assertTrue(abs(ref[i]-daPtr[i])<1e-12);
2199 da=meshN.getBarycenterAndOwner();
2200 daPtr=da.getValues();
2201 ref=meshN.getCoords().getValues()[24:];
2203 self.assertTrue(abs(ref[i]-daPtr[i])<1e-12);
2206 meshN.rotate(center,vec,pi/7.);
2207 meshN.translate(vec);
2208 da=meshN.getBarycenterAndOwner();
2209 daPtr=da.getValues();
2210 ref=meshN.getCoords().getValues()[24:];
2212 self.assertTrue(abs(ref[i]-daPtr[i])<1e-12);
2215 center2=[1.12,3.45,6.78]
2217 meshN.rotate(center2,vec2,e);
2218 meshN.translate(vec2);
2219 da=meshN.getBarycenterAndOwner();
2220 daPtr=da.getValues();
2221 ref=meshN.getCoords().getValues()[24:];
2223 self.assertTrue(abs(ref[i]-daPtr[i])<1e-10);
2227 def testNormL12Integ1D(self):
2228 m1=MEDCouplingDataForTest.build1DTargetMesh_3();
2229 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
2231 array=DataArrayDouble.New();
2232 arr=[-5.23,15.45,-25.56,6.67,-16.78,26.89,-7.91,17.23,-27.43,8.21,-18.63,28.72]
2233 array.setValues(arr,m1.getNumberOfCells(),3);
2236 f3=m1.getBarycenterAndOwner();
2237 self.assertEqual(4,f3.getNumberOfTuples());
2238 self.assertEqual(1,f3.getNumberOfComponents());
2239 expected9=[0.75,5.105,0.8,5.155]
2242 self.assertTrue(abs(expected9[i]-ptr[i])<1e-12);
2245 f2=m1.getMeasureField(False);
2246 self.assertEqual(4,f2.getArray().getNumberOfTuples());
2247 self.assertEqual(1,f2.getNumberOfComponents());
2248 expected1=[0.5,0.21,-0.6,-0.31]
2249 ptr=f2.getArray().getValues();
2251 self.assertTrue(abs(expected1[i]-ptr[i])<1e-12);
2253 expected2=[0.5,0.21,0.6,0.31]
2254 f2=m1.getMeasureField(True);
2255 ptr=f2.getArray().getValues();
2257 self.assertTrue(abs(expected2[i]-ptr[i])<1e-12);
2260 self.assertTrue(4,f1.getNumberOfTuples())
2261 res=f1.integral(False);
2262 self.assertTrue(3,len(res))
2263 expected3=[0.9866,-0.3615,0.4217]
2265 self.assertTrue(abs(expected3[i]-res[i])<1e-12);
2267 self.assertTrue(abs(expected3[0]-f1.integral(0,False))<1e-12);
2268 self.assertTrue(abs(expected3[1]-f1.integral(1,False))<1e-12);
2269 self.assertTrue(abs(expected3[2]-f1.integral(2,False))<1e-12);
2270 res=f1.integral(True);
2271 expected4=[-3.4152,8.7639,-14.6879]
2273 self.assertTrue(abs(expected4[i]-res[i])<1e-12);
2277 self.assertTrue(3,len(res))
2278 expected5=[6.979506172839505, 16.89018518518518, 27.02969135802469]
2280 self.assertTrue(abs(expected5[i]-res[i])<1e-12);
2282 self.assertTrue(abs(expected5[0]-f1.normL1(0))<1e-12);
2283 self.assertTrue(abs(expected5[1]-f1.normL1(1))<1e-12);
2284 self.assertTrue(abs(expected5[2]-f1.normL1(2))<1e-12);
2287 self.assertTrue(3,len(res))
2288 expected7=[7.090910979452395, 16.9275542960123, 27.053271464160858]
2290 self.assertTrue(abs(expected7[i]-res[i])<1e-9);
2292 self.assertTrue(abs(expected7[0]-f1.normL2(0))<1e-9);
2293 self.assertTrue(abs(expected7[1]-f1.normL2(1))<1e-9);
2294 self.assertTrue(abs(expected7[2]-f1.normL2(2))<1e-9);
2296 f4=f1.buildMeasureField(False);
2297 self.assertTrue(abs(-0.2-f4.accumulate(0))<1e-12);
2298 f4=f1.buildMeasureField(True);
2299 self.assertTrue(abs(1.62-f4.accumulate(0))<1e-12);
2300 # Testing with 2D Curve
2301 m1=MEDCouplingDataForTest.build2DCurveTargetMesh_3();
2302 f2=m1.getMeasureField(False);
2303 self.assertEqual(4,f2.getArray().getNumberOfTuples());
2304 self.assertEqual(1,f2.getNumberOfComponents());
2305 ptr=f2.getArray().getValues();
2307 self.assertTrue(abs(sqrt(2.)*expected2[i]-ptr[i])<1e-12);
2309 f2=m1.getMeasureField(True);
2310 self.assertEqual(4,f2.getArray().getNumberOfTuples());
2311 self.assertEqual(1,f2.getNumberOfComponents());
2312 ptr=f2.getArray().getValues();
2314 self.assertTrue(abs(expected2[i]*sqrt(2.)-ptr[i])<1e-12);
2317 f3=m1.getBarycenterAndOwner();
2318 self.assertEqual(4,f3.getNumberOfTuples());
2319 self.assertEqual(2,f3.getNumberOfComponents());
2320 expected10=[0.75,0.75,5.105,5.105,0.8,0.8,5.155,5.155]
2323 self.assertTrue(abs(expected10[i]-ptr[i])<1e-12);
2326 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
2328 array=DataArrayDouble.New();
2329 array.setValues(arr,m1.getNumberOfCells(),3);
2331 res=f1.integral(False);
2333 self.assertTrue(abs(sqrt(2.)*expected4[i]-res[i])<1e-12);
2335 res=f1.integral(True);
2337 self.assertTrue(abs(sqrt(2.)*expected4[i]-res[i])<1e-12);
2341 self.assertTrue(abs(expected5[i]-res[i])<1e-12);
2345 self.assertTrue(abs(expected7[i]-res[i])<1e-12);
2349 def testAreaBary2D(self):
2350 m1=MEDCouplingDataForTest.build2DTargetMesh_3();
2351 f1=m1.getMeasureField(False);
2352 self.assertEqual(10,f1.getArray().getNumberOfTuples());
2353 self.assertEqual(1,f1.getNumberOfComponents());
2354 expected1=[-0.5,-1,-1.5,-0.5,-1, 0.5,1,1.5,0.5,1]
2355 ptr=f1.getArray().getValues();
2356 for i in xrange(10):
2357 self.assertTrue(abs(expected1[i]-ptr[i])<1e-12);
2359 f1=m1.getMeasureField(True);
2360 ptr=f1.getArray().getValues();
2361 for i in xrange(10):
2362 self.assertTrue(abs(abs(expected1[i])-ptr[i])<1e-12);
2364 f2=m1.getBarycenterAndOwner();
2365 self.assertEqual(10,f2.getNumberOfTuples());
2366 self.assertEqual(2,f2.getNumberOfComponents());
2367 expected2=[0.5,0.3333333333333333,0.5,0.5,0.5,0.77777777777777777,0.5,0.3333333333333333,0.5,0.5,0.5,0.3333333333333333,0.5,0.5,0.5,0.77777777777777777,0.5,0.3333333333333333,0.5,0.5]
2369 for i in xrange(20):
2370 self.assertTrue(abs(expected2[i]-ptr[i])<1e-12);
2372 m1.changeSpaceDimension(3);
2373 f1=m1.getMeasureField(False);
2374 self.assertEqual(10,f1.getArray().getNumberOfTuples());
2375 self.assertEqual(1,f1.getNumberOfComponents());
2376 ptr=f1.getArray().getValues();
2377 for i in xrange(10):
2378 self.assertTrue(abs(abs(expected1[i])-ptr[i])<1e-12);
2380 f2=m1.getBarycenterAndOwner();
2381 self.assertEqual(10,f2.getNumberOfTuples());
2382 self.assertEqual(3,f2.getNumberOfComponents());
2384 expected3=[0.5,0.3333333333333333,0.,0.5,0.5,0.,0.5,0.77777777777777777,0.,0.5,0.3333333333333333,0.,0.5,0.5,0., 0.5,0.3333333333333333,0.,0.5,0.5,0.,0.5,0.77777777777777777,0.,0.5,0.3333333333333333,0.,0.5,0.5,0.]
2385 for i in xrange(30):
2386 self.assertTrue(abs(expected3[i]-ptr[i])<1e-12);
2390 def testAreaBary3D(self):
2391 coords=[ 0.241310763507 , 0.0504777305619 , 0.0682283524903 , 0.252501053866 , -0.0625176732937 , 0.137272639894 ,
2392 0.152262663601 , 0.241816569527 , 0.133812556197 , 0.18047750211 , -0.0789949051358 , 0.339098173401 ,
2393 0.151741971857 , 0.238885278571 , 0.137715037333 , 0.242532155481 , -0.0928169086456 , 0.0678043417367 ,
2394 0.240941965335 , -0.015461491464 , 0.0617186345825 , 0.24127650112 , 0.0499427876717 , 0.0679634099148 ,
2395 -0.145828917428 , 0.206291632565 , 0.0310071927543 , 0.0125651775307 , 0.266262085828 , 0.105228430543 ,
2396 -0.0994066533286 , 0.233224271238 , 0.0572213839567 , -0.0951345338317 , 0.234819509426 , 0.0592126284538 ,
2397 0.136580574205 , -0.205486212579 , 0.0572866072014 , 0.0637270784978 , -0.168886355238 , 0.446614057077 ,
2398 0.041337157151 , -0.213402568198 , 0.372407095999 , 0.0411601970268 , -0.202387875756 , 0.411334979491 ,
2399 -0.108355701857 , 0.193636239335 , 0.204886756738 , 0.00639779029829 , 0.155296981517 , 0.252585892979 ,
2400 0.0262473111702 , -0.112919732543 , 0.424286639249 ,-0.224103052733 , -0.139430015438 , -0.0122352295701 ,
2401 -0.0312760589481 , -0.274272003594 , 0.0323959636568 , -0.166663422532 , -0.217754445175 , 0.00392109070364 ,
2402 -0.30586619777 , -0.0475168041091 , -0.0144585228182 , -0.280881480586 , 0.135571293538 , 0.00623923647986 ,
2403 -0.25548538234 , 0.156819217766 , 0.0645277879769 , -0.131567009284 , 0.184133752309 , 0.206021802753 ,
2404 -0.196204010965 , 0.151602971681 , 0.212974777736 , -0.183713879463 , 0.0802946639531 , 0.260115662599 ,
2405 -0.244241178767 , -0.0738873389604 , 0.144590565817 , -0.155804057829 , -0.164892720025 , 0.210613950558 ,
2406 -0.170950800428 , -0.215099334026 , 0.00610122860092 , -0.30552634869 , -0.0490020791904 , -0.0132786533145 ,
2407 0.271831011884 , 0.15105657296 , 0.0230534827908 , 0.281919192283 , 0.0898544306288 , -0.0625201489143 ,
2408 0.260240727276 , -0.0120688706637 , -0.0532316588626 , 0.244947737722 , 0.0197984684293 , 0.0309341209233 ,
2409 0.23439631578 , 0.229825279875 , 0.0508520585381 , 0.160921316875 , 0.265078502128 , 0.121716560626 ,
2410 -0.315088694175 , 0.0747700471918 , -0.245836615071 , -0.327728781776 , 0.0857114674649 , -0.239431905957 ,
2411 -0.308385460634 , 0.145142997084 , -0.149886828433 , 0.0488236045164 , 0.309462801914 , 0.0849169148265 ,
2412 -0.0244964803395 , 0.33145611751 , -0.0476415818061 , 0.0060567994229 , 0.32418412014 , 0.0367779543812 ,
2413 -0.0950221448063 , 0.236675326003 , 0.0572594453983 , 0.248723023186 , 0.0886648784791 , -0.176629430538 ,
2414 0.116796984 , 0.256596599567 , -0.292863523603 , 0.118024552914 , 0.229154257843 , -0.34233232501 ,
2415 0.217507892549 , -0.0417822335742 , -0.176771782888 , -0.224429321304 , 0.0125595300114 , -0.362064725588 ,
2416 0.0937301100955 , -0.0500824832657 , -0.299713548444 , -0.244162220397 , 0.0383853931293 , -0.389856984411 ,
2417 -0.0281989366102 , 0.097392811563 , -0.458244577284 , -0.385010847162 , 0.10122766194 , -0.140052859922 ,
2418 -0.377936358012 , 0.110875172128 , -0.176207095463 , 0.244483045556 , -0.0991073977045 , 0.0575134372934 ,
2419 0.262605120167 , -0.100243191645 , -0.0495620806935 , 0.240306880972 , -0.136153701579 , -0.114745281696 ,
2420 0.215763176129 , -0.0836766059189 , -0.183249640616 , 0.237870396603 , -0.132449578286 , -0.121598854639 ,
2421 -0.0637683083097 , -0.27921020214 , -0.149112321992 , -0.0856211014977 , -0.2973233473 , -0.0446878139589 ,
2422 0.104675342288 , -0.0625908305324 , -0.290346256534 , 0.0248264249186 , -0.247797708548 , -0.165830884019 ,
2423 0.0719302438309 , -0.178468260473 , -0.211432157345 , 0.142871843159 , -0.208769948542 , 0.0454101128246 ,
2424 0.167803379307 , -0.207851396623 , -0.088802726124 , 0.12868717152 , -0.230920439715 , 0.00760508389036 ,
2425 -0.0372812069535 , -0.286740286332 , 0.00963701291166 ]
2427 connN = [ #polyhedron 0
2428 0 , 1 , 3 , 4 , 2 , -1 , 1 , 5 , 6 , 7 , 0 , -1 , 0 , 7 , 8 , 10 , 11 , 9 , 2 , -1 , 1 , 5 , 12 , 14 , 15 , 13 , 3 , -1 , 16 , 9 , 2 , 4 , 17 , -1
2429 , 4 , 3 , 13 , 18 , 17 , -1 , 5 , 6 , 19 , 21 , 20 , 12 , -1 , 6 , 7 , 8 , 23 , 22 , 19 , -1 , 23 , 24 , 10 , 8 , -1 , 25 , 11 , 9 , 16 , -1
2430 , 24 , 26 , 25 , 11 , 10 , -1 , 12 , 14 , 20 , -1 , 27 , 28 , 29 , 15 , 13 , 18 , -1 , 14 , 15 , 29 , 30 , 21 , 20 , -1 , 26 , 27 , 18 , 17 , 16 , 25 , -1
2431 , 22 , 19 , 21 , 30 , 31 , -1 , 22 , 31 , 28 , 27 , 26 , 24 , 23 , -1 , 31 , 30 , 29 , 28,
2433 0 , 7 , 8 , 10 , 11 , 9 , 2 , -1 , 32 , 0 , 7 , 35 , 34 , 33 , -1 , 32 , 0 , 2 , 37 , 36 , -1 , 35 , 7 , 8 , 40 , 39 , 38 , -1
2434 , 2 , 37 , 41 , 9 , -1 , 40 , 8 , 10 , 44 , 43 , 42 , -1 , 41 , 9 , 11 , 44 , 43 , -1 , 44 , 11 , 10 , -1 , 32 , 33 , 45 , 47 , 46 , 36 , -1
2435 , 33 , 34 , 48 , 45 , -1 , 35 , 34 , 48 , 50 , 49 , 38 , -1 , 41 , 43 , 42 , 46 , 36 , 37 , -1 , 38 , 39 , 51 , 49 , -1
2436 , 39 , 40 , 42 , 46 , 47 , 52 , 51 , -1 , 45 , 47 , 52 , 50 , 48 , -1 , 52 , 51 , 49 , 50,
2438 6 , 7 , 8 , 23 , 22 , 19 , -1 , 6 , 35 , 7 , -1 , 6 , 35 , 38 , 19 , -1 , 35 , 7 , 8 , 40 , 39 , 38 , -1 , 53 , 22 , 19 , 38 , 39 , 54 , -1
2439 , 23 , 53 , 54 , 40 , 8 , -1 , 53 , 22 , 23 , -1 , 39 , 54 , 40,
2441 35 , 34 , 48 , 50 , 49 , 38 , -1 , 6 , 35 , 34 , 56 , 55 , 5 , -1 , 6 , 35 , 38 , 19 , -1 , 34 , 56 , 57 , 59 , 58 , 48 , -1
2442 , 60 , 61 , 21 , 19 , 38 , 49 , -1 , 62 , 50 , 48 , 58 , -1 , 60 , 63 , 64 , 62 , 50 , 49 , -1 , 5 , 6 , 19 , 21 , 20 , 12 , -1
2443 , 55 , 5 , 12 , 65 , -1 , 66 , 67 , 65 , 55 , 56 , 57 , -1 , 63 , 66 , 57 , 59 , 64 , -1 , 64 , 62 , 58 , 59 , -1
2444 , 60 , 63 , 66 , 67 , 68 , 61 , -1 , 61 , 68 , 20 , 21 , -1 , 67 , 68 , 20 , 12 , 65]
2446 barys = [ -0.0165220465527 , -0.0190922868195 , 0.158882733414 ,
2447 0.0287618656076 , 0.135874379934 , -0.14601588119 ,
2448 -0.147128055553 , 0.0465995097041 , -0.049391174453 ,
2449 -0.00142506732317 , -0.0996953090351 , -0.115159183132 ]
2450 meshN=MEDCouplingUMesh.New();
2451 meshN.setName("ForBary");
2452 meshN.setMeshDimension(3);
2453 meshN.allocateCells(4);
2454 meshN.insertNextCell(NORM_POLYHED,113,connN);
2455 meshN.insertNextCell(NORM_POLYHED,99,connN[113:]);
2456 meshN.insertNextCell(NORM_POLYHED,43,connN[212:]);
2457 meshN.insertNextCell(NORM_POLYHED,92,connN[255:]);
2458 meshN.finishInsertingCells();
2459 myCoords=DataArrayDouble.New();
2460 myCoords.setValues(coords,69,3);
2461 meshN.setCoords(myCoords);
2462 meshN.checkCoherency();
2463 res1=meshN.arePolyhedronsNotCorrectlyOriented();
2464 meshN.orientCorrectlyPolyhedrons();
2465 res1=meshN.arePolyhedronsNotCorrectlyOriented();
2466 self.assertTrue(len(res1)==0);
2468 da=meshN.getBarycenterAndOwner();
2469 self.assertEqual(4,da.getNumberOfTuples());
2470 self.assertEqual(3,da.getNumberOfComponents());
2471 daPtr=da.getValues();
2472 for i in xrange(12):
2473 self.assertTrue(abs(barys[i]-daPtr[i])<1e-12);
2477 def testRenumberCellsForFields(self):
2478 m=MEDCouplingDataForTest.build2DTargetMesh_1();
2479 f=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
2481 arr=DataArrayDouble.New();
2482 nbOfCells=m.getNumberOfCells();
2483 values1=[7.,107.,10007.,8.,108.,10008.,9.,109.,10009.,10.,110.,10010.,11.,111.,10011.]
2484 arr.setValues(values1,nbOfCells,3);
2486 renumber1=[3,1,0,4,2]
2487 loc=[-0.05,-0.05, 0.55,-0.25, 0.55,0.15, -0.05,0.45, 0.45,0.45]
2489 res=f.getValueOn(loc[2*j:2*j+2]);
2491 self.assertTrue(abs(values1[i+3*j]-res[i])<1e-12);
2494 f.renumberCells(renumber1,False);
2495 ptr=f.getArray().getValues();
2496 expected1=[9.,109.,10009.,8.,108.,10008.,11.,111.,10011.,7.,107.,10007.,10.,110.,10010.]
2497 for i in xrange(15):
2498 self.assertTrue(abs(expected1[i]-ptr[i])<1e-12);
2500 #check that fields remains the same geometrically
2502 res=f.getValueOn(loc[2*j:2*(j+1)]);
2504 self.assertTrue(abs(values1[i+3*j]-res[i])<1e-12);
2508 f=MEDCouplingFieldDouble.New(ON_GAUSS_PT,NO_TIME);
2510 _a=0.446948490915965;
2511 _b=0.091576213509771;
2512 _p1=0.11169079483905;
2513 _p2=0.0549758718227661;
2514 refCoo1=[ 0.,0., 1.,0., 0.,1. ]
2515 gsCoo1=[ 2*_b-1, 1-4*_b, 2*_b-1, 2.07*_b-1, 1-4*_b, 2*_b-1, 1-4*_a, 2*_a-1, 2*_a-1, 1-4*_a, 2*_a-1, 2*_a-1 ];
2516 wg1=[ 4*_p2, 4*_p2, 4*_p2, 4*_p1, 4*_p1, 4*_p1 ]
2517 _refCoo1=refCoo1[0:6];
2518 _gsCoo1=gsCoo1[0:12];
2520 f.setGaussLocalizationOnType(NORM_TRI3,_refCoo1,_gsCoo1,_wg1);
2521 refCoo2=[ 0.,0., 1.,0., 1.,1., 0.,1. ]
2522 _refCoo2=refCoo2[0:8];
2523 _gsCoo1=_gsCoo1[0:4]
2525 f.setGaussLocalizationOnType(NORM_QUAD4,_refCoo2,_gsCoo1,_wg1);
2526 arr=DataArrayDouble.New();
2527 values2=[1.,1001.,2.,1002., 11.,1011.,12.,1012.,13.,1013.,14.,1014.,15.,1015.,16.,1016., 21.,1021.,22.,1022.,23.,1023.,24.,1024.,25.,1025.,26.,1026., 31.,1031.,32.,1032., 41.,1041.,42.,1042.]
2528 arr.setValues(values2,18,2);
2532 self.assertTrue(f.isEqual(fCpy,1e-12,1e-12));
2533 f.renumberCells(renumber1,False);
2534 self.assertTrue(not f.isEqual(fCpy,1e-12,1e-12));
2535 expected2=[21.,1021.,22.,1022.,23.,1023.,24.,1024.,25.,1025.,26.,1026., 11.,1011.,12.,1012.,13.,1013.,14.,1014.,15.,1015.,16.,1016., 41.,1041.,42.,1042., 1.,1001.,2.,1002., 31.,1031.,32.,1032.]
2536 ptr=f.getArray().getValues();
2537 for i in xrange(36):
2538 self.assertTrue(abs(expected2[i]-ptr[i])<1e-12);
2540 renumber2=[2,1,4,0,3]
2541 f.renumberCells(renumber2,False);
2542 self.assertTrue(f.isEqual(fCpy,1e-12,1e-12));
2544 f=MEDCouplingFieldDouble.New(ON_GAUSS_NE,NO_TIME);
2546 arr=DataArrayDouble.New();
2547 values3=[1.,1001.,2.,1002.,3.,1003.,4.,1004., 11.,1011.,12.,1012.,13.,1013., 21.,1021.,22.,1022.,23.,1023., 31.,1031.,32.,1032.,33.,1033.,34.,1034., 41.,1041.,42.,1042.,43.,1043.,44.,1044.]
2548 arr.setValues(values3,18,2);
2552 self.assertTrue(f.isEqual(fCpy,1e-12,1e-12));
2553 f.renumberCells(renumber1,False);
2554 self.assertTrue(not f.isEqual(fCpy,1e-12,1e-12));
2555 expected3=[21.,1021.,22.,1022.,23.,1023.,11.,1011.,12.,1012.,13.,1013.,41.,1041.,42.,1042.,43.,1043.,44.,1044.,1.,1001.,2.,1002.,3.,1003.,4.,1004.,31.,1031.,32.,1032.,33.,1033.,34.,1034.]
2556 ptr=f.getArray().getValues();
2557 for i in xrange(36):
2558 self.assertTrue(abs(expected3[i]-ptr[i])<1e-12);
2560 f.renumberCells(renumber2,False);#perform reverse operation of renumbering to check that the resulting field is equal.
2561 self.assertTrue(f.isEqual(fCpy,1e-12,1e-12));
2565 def testRenumberNodesForFields(self):
2566 m=MEDCouplingDataForTest.build2DTargetMesh_1();
2567 f=MEDCouplingFieldDouble.New(ON_NODES,NO_TIME);
2569 self.assertEqual(9,f.getNumberOfMeshPlacesExpected());
2570 arr=DataArrayDouble.New();
2571 nbOfNodes=m.getNumberOfNodes();
2572 values1=[7.,107.,10007.,8.,108.,10008.,9.,109.,10009.,10.,110.,10010.,11.,111.,10011.,12.,112.,10012.,13.,113.,10013.,14.,114.,10014.,15.,115.,10015.]
2573 arr.setValues(values1,nbOfNodes,3);
2576 renumber1=[0,4,1,3,5,2,6,7,8]
2577 loc=[0.5432,-0.2432, 0.5478,0.1528]
2578 expected1=[9.0272, 109.0272, 10009.0272, 11.4124,111.4124,10011.4124]
2580 res=f.getValueOn(loc[2*j:2*j+2]);
2582 self.assertTrue(abs(expected1[i+3*j]-res[i])<1e-12);
2586 self.assertTrue(f.isEqual(fCpy,1e-12,1e-12));
2587 f.renumberNodes(renumber1);
2588 self.assertTrue(not f.isEqual(fCpy,1e-12,1e-12));
2590 res=f.getValueOn(loc[2*j:2*j+2]);
2592 self.assertTrue(abs(expected1[i+3*j]-res[i])<1e-12);
2595 expected2=[7.,107.,10007.,9.,109.,10009.,12.,112.,10012.,10.,110.,10010.,8.,108.,10008.,11.,111.,10011.,13.,113.,10013.,14.,114.,10014.,15.,115.,10015.]
2596 for i in xrange(27):
2597 self.assertTrue(abs(expected2[i]-f.getArray().getValues()[i])<1e-12);
2599 renumber2=[0,2,5,3,1,4,6,7,8]
2600 f.renumberNodes(renumber2);
2601 self.assertTrue(f.isEqual(fCpy,1e-12,1e-12));
2604 def testConvertQuadraticCellsToLinear(self):
2605 mesh=MEDCouplingDataForTest.build2DTargetMesh_3();
2606 mesh.checkCoherency();
2607 types=mesh.getAllTypes();
2609 self.assertEqual(5,len(types));
2610 expected1=[NORM_POLYGON, NORM_TRI3, NORM_QUAD4, NORM_TRI6, NORM_QUAD8]
2612 self.assertEqual(expected1,types);
2613 self.assertTrue(mesh.isPresenceOfQuadratic());
2614 self.assertEqual(62,mesh.getMeshLength());
2615 f1=mesh.getMeasureField(False);
2617 mesh.convertQuadraticCellsToLinear();
2618 self.assertTrue(not mesh.isPresenceOfQuadratic());
2620 mesh.checkCoherency();
2621 f2=mesh.getMeasureField(False);
2622 self.assertTrue(f1.getArray().isEqual(f2.getArray(),1e-12));
2623 self.assertEqual(48,mesh.getMeshLength());
2624 types2=mesh.getAllTypes();
2626 self.assertEqual(3,len(types2));
2627 expected2=[NORM_POLYGON, NORM_TRI3, NORM_QUAD4]
2629 self.assertEqual(expected2,types2);
2632 def testCheckGeoEquivalWith(self):
2633 mesh1=MEDCouplingDataForTest.build2DTargetMesh_3();
2634 mesh2=MEDCouplingDataForTest.build2DTargetMesh_3();
2636 cellCor,nodeCor=mesh1.checkGeoEquivalWith(mesh1,0,1e-12);#deepEqual
2637 self.assertTrue(cellCor==None);
2638 self.assertTrue(nodeCor==None);
2639 cellCor,nodeCor=mesh1.checkGeoEquivalWith(mesh1,1,1e-12);#fastEqual
2640 self.assertTrue(cellCor==None);
2641 self.assertTrue(nodeCor==None);
2642 cellCor,nodeCor=mesh1.checkGeoEquivalWith(mesh1,10,1e-12);#deepEqual with geo permutations
2643 self.assertTrue(cellCor==None);
2644 self.assertTrue(nodeCor==None);
2645 #Second test mesh1 and mesh2 are 2 different meshes instance
2646 cellCor,nodeCor=mesh1.checkGeoEquivalWith(mesh2,0,1e-12);#deepEqual
2647 self.assertTrue(cellCor==None);
2648 self.assertTrue(nodeCor==None);
2649 cellCor,nodeCor=mesh1.checkGeoEquivalWith(mesh2,1,1e-12);#fastEqual
2650 self.assertTrue(cellCor==None);
2651 self.assertTrue(nodeCor==None);
2652 cellCor,nodeCor=mesh1.checkGeoEquivalWith(mesh2,10,1e-12);#deepEqual with geo permutations
2653 self.assertTrue(cellCor==None);
2654 self.assertTrue(nodeCor==None);
2655 #Third test : cell permutation by keeping the first the middle and the last as it is.
2656 renum=[0,2,1,3,4,5,6,8,7,9]
2657 mesh2.renumberCells(renum,False);
2658 self.assertRaises(InterpKernelException,mesh1.checkGeoEquivalWith,mesh2,0,1e-12);#deepEqual fails
2659 self.assertTrue(cellCor==None);
2660 self.assertTrue(nodeCor==None);
2661 cellCor,nodeCor=mesh1.checkGeoEquivalWith(mesh2,1,1e-12);#fastEqual do not see anything
2662 self.assertTrue(cellCor==None);
2663 self.assertTrue(nodeCor==None);
2664 cellCor,nodeCor=mesh1.checkGeoEquivalWith(mesh2,10,1e-12);#deepEqual with geo permutations
2665 self.assertTrue(cellCor);
2666 self.assertEqual(10,cellCor.getNumberOfTuples());
2667 self.assertEqual(1,cellCor.getNumberOfComponents());
2668 self.assertEqual(renum,list(cellCor.getValues()))
2669 self.assertTrue(nodeCor==None);
2671 self.assertTrue(nodeCor==None);
2672 #4th test : cell and node permutation by keeping the first the middle and the last as it is.
2673 mesh2=MEDCouplingDataForTest.build2DTargetMesh_3();
2674 renum2=[0,2,1,3,4,5,6,8,7,9,10]
2675 mesh2.renumberCells(renum,False);
2676 mesh2.renumberNodes(renum2,11);
2679 self.assertRaises(InterpKernelException,mesh1.checkGeoEquivalWith,mesh2,0,1e-12);#deepEqual fails
2680 self.assertTrue(cellCor==None);
2681 self.assertTrue(nodeCor==None);
2682 cellCor,nodeCor=mesh1.checkGeoEquivalWith(mesh2,1,1e-12);#fastEqual do not see anything
2683 self.assertTrue(cellCor==None);
2684 self.assertTrue(nodeCor==None);
2685 cellCor,nodeCor=mesh1.checkGeoEquivalWith(mesh2,10,1e-12);#deepEqual with geo permutations
2686 self.assertTrue(cellCor);
2687 self.assertEqual(10,cellCor.getNumberOfTuples());
2688 self.assertEqual(1,cellCor.getNumberOfComponents());
2689 self.assertEqual(renum,list(cellCor.getValues()))
2690 self.assertTrue(nodeCor);
2691 self.assertEqual(11,nodeCor.getNumberOfTuples());
2692 self.assertEqual(1,nodeCor.getNumberOfComponents());
2693 self.assertEqual(renum2,list(nodeCor.getValues()))
2696 #5th test : modification of the last cell to check fastCheck detection.
2697 mesh2=MEDCouplingDataForTest.build2DTargetMesh_3();
2698 renum3=[0,2,1,3,4,5,6,8,9,7]
2699 mesh2.renumberCells(renum3,False);
2700 mesh2.renumberNodes(renum2,11);
2703 self.assertRaises(InterpKernelException,mesh1.checkGeoEquivalWith,mesh2,0,1e-12)
2704 self.assertTrue(cellCor==None);
2705 self.assertTrue(nodeCor==None);
2706 self.assertRaises(InterpKernelException,mesh1.checkGeoEquivalWith,mesh2,1,1e-12)
2707 self.assertTrue(cellCor==None);
2708 self.assertTrue(nodeCor==None);
2709 cellCor,nodeCor=mesh2.checkGeoEquivalWith(mesh1,10,1e-12);#deepEqual with geo permutations
2710 self.assertTrue(cellCor!=None);
2711 self.assertEqual(10,cellCor.getNumberOfTuples());
2712 self.assertEqual(1,cellCor.getNumberOfComponents());
2713 self.assertEqual(renum3,list(cellCor.getValues()))
2714 self.assertTrue(nodeCor!=None);
2715 self.assertEqual(11,nodeCor.getNumberOfTuples());
2716 self.assertEqual(1,nodeCor.getNumberOfComponents());
2717 self.assertEqual(renum2,list(nodeCor.getValues()));
2720 def testCheckGeoEquivalWith2(self):
2721 mesh1=MEDCouplingDataForTest.build2DTargetMesh_4();
2722 mesh2=MEDCouplingDataForTest.build2DTargetMesh_1();
2723 cellCor,nodeCor=mesh1.checkGeoEquivalWith(mesh2,10,1e-12);
2724 self.assertEqual(None,cellCor);
2725 self.assertNotEqual(None,nodeCor);
2726 expected1=[0, 1, 3, 4, 5, 6, 7, 8, 9]
2728 self.assertEqual(expected1[i],nodeCor.getIJ(i,0));
2732 def testCopyTinyStringsFromOnFields(self):
2733 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
2734 nbOfCells=m.getNumberOfCells();
2735 f=MEDCouplingFieldDouble.New(ON_CELLS,LINEAR_TIME);
2737 self.assertEqual(5,f.getNumberOfMeshPlacesExpected());
2739 f.setDescription("b");
2740 a1=DataArrayDouble.New();
2741 a1.alloc(nbOfCells,2);
2743 a1.setInfoOnComponent(0,"c");
2744 a1.setInfoOnComponent(1,"d");
2746 a2.setInfoOnComponent(0,"e");
2747 a2.setInfoOnComponent(1,"f");
2750 f.setEndTime(3.,3,4);
2752 m.getCoords().setInfoOnComponent(0,"h");
2753 m.getCoords().setInfoOnComponent(1,"i");
2754 m.getCoords().setInfoOnComponent(2,"j");
2758 self.assertTrue(f2.isEqual(f,1e-12,1e-12));
2760 self.assertTrue(not f2.isEqual(f,1e-12,1e-12));
2761 f2.copyTinyStringsFrom(f);
2762 self.assertTrue(f2.isEqual(f,1e-12,1e-12));
2763 f2.setDescription("GGG");
2764 self.assertTrue(not f2.isEqual(f,1e-12,1e-12));
2765 f2.copyTinyStringsFrom(f);
2766 self.assertTrue(f2.isEqual(f,1e-12,1e-12));
2767 f2.getArray().setInfoOnComponent(0,"mmmm");
2768 self.assertTrue(not f2.isEqual(f,1e-12,1e-12));
2769 f2.copyTinyStringsFrom(f);
2770 self.assertTrue(f2.isEqual(f,1e-12,1e-12));
2771 f2.getEndArray().setInfoOnComponent(1,"mmmm");
2772 self.assertTrue(not f2.isEqual(f,1e-12,1e-12));
2773 f2.copyTinyStringsFrom(f);
2774 self.assertTrue(f2.isEqual(f,1e-12,1e-12));
2776 self.assertTrue(m2.isEqual(m,1e-12));
2778 self.assertTrue(not m2.isEqual(m,1e-12));
2779 m2.copyTinyStringsFrom(m);
2780 self.assertTrue(m2.isEqual(m,1e-12));
2781 m2.getCoords().setInfoOnComponent(1,"eee");
2782 self.assertTrue(not m2.isEqual(m,1e-12));
2783 m2.copyTinyStringsFrom(m);
2784 self.assertTrue(m2.isEqual(m,1e-12));
2787 def testTryToShareSameCoordsPermute(self):
2788 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
2789 m2=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
2790 #self.assertTrue(m.getCoords()!=m2.getCoords());
2791 m.tryToShareSameCoordsPermute(m2,1e-12);
2792 #self.assertTrue(m.getCoords()==m2.getCoords());
2793 self.assertTrue(m2.isEqual(m,1e-12));
2794 renum1=[1,2,0,5,8,7,4,3,6]
2795 r1=DataArrayInt.New()
2796 r1.setValues(renum1,len(renum1),1)
2797 m.renumberNodes(r1,9);
2798 #self.assertTrue(m.getCoords()!=m2.getCoords());
2799 self.assertTrue(not m2.isEqual(m,1e-12));
2800 m.tryToShareSameCoordsPermute(m2,1e-12);
2801 #self.assertTrue(m.getCoords()==m2.getCoords());
2802 self.assertTrue(m2.isEqual(m,1e-12));
2805 def testTryToShareSameCoordsPermute2(self):
2806 m1=MEDCouplingDataForTest.build2DTargetMesh_4();
2807 targetCoords=[-0.3,-0.3, 0.2,-0.3, -0.3,0.2, 0.2,0.2 ]
2808 targetConn=[0,2,3,1]
2809 m2=MEDCouplingUMesh.New();
2810 m2.setMeshDimension(2);
2811 m2.allocateCells(1);
2812 m2.insertNextCell(NORM_QUAD4,targetConn[0:4])
2813 m2.finishInsertingCells();
2814 myCoords=DataArrayDouble.New();
2815 myCoords.setValues(targetCoords,4,2);
2816 m2.setCoords(myCoords);
2817 m2.checkCoherency();
2818 m1.checkCoherency();
2820 expected1=[0.25,0.125,0.125,0.25,0.25]
2821 f1=m1.getMeasureField(False);
2822 f2=m2.getMeasureField(False);
2823 self.assertEqual(5,f1.getArray().getNumberOfTuples());
2824 self.assertEqual(1,f2.getArray().getNumberOfTuples());
2826 self.assertAlmostEqual(expected1[i],f1.getIJ(i,0),12);
2828 self.assertAlmostEqual(expected1[0],f2.getIJ(0,0),12);
2829 self.assertRaises(InterpKernelException,m1.tryToShareSameCoordsPermute,m2,1e-12);# <- here in this order the sharing is impossible.
2830 # Let's go for deeper test of tryToShareSameCoordsPermute
2831 m2.tryToShareSameCoordsPermute(m1,1e-12);
2832 f1=m1.getMeasureField(False);
2833 f2=m2.getMeasureField(False);
2834 self.assertEqual(5,f1.getArray().getNumberOfTuples());
2835 self.assertEqual(1,f2.getArray().getNumberOfTuples());
2837 self.assertAlmostEqual(expected1[i],f1.getIJ(i,0),12);
2839 self.assertAlmostEqual(expected1[0],f2.getIJ(0,0),12);
2842 def testChangeUnderlyingMesh1(self):
2843 mesh1=MEDCouplingDataForTest.build2DTargetMesh_3();
2844 mesh2=MEDCouplingDataForTest.build2DTargetMesh_3();
2845 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
2847 array=DataArrayDouble.New();
2848 arr=[7., 107., 8., 108., 9., 109., 10., 110., 11., 111., 12., 112., 13., 113., 14., 114., 15., 115., 16., 116.]
2849 array.setValues(arr,mesh1.getNumberOfCells(),2);
2852 renum=[0,2,1,3,4,5,6,8,7,9]
2853 mesh2.renumberCells(renum,False);
2854 #self.assertTrue(f1.getMesh()==mesh1);
2855 f1.changeUnderlyingMesh(mesh1,10,1e-12);# nothing done only to check that nothing done.
2856 #self.assertTrue(f1.getMesh()==mesh1);
2857 f1.changeUnderlyingMesh(mesh2,10,1e-12);
2858 #self.assertTrue(f1.getMesh()==mesh2);
2859 expected1=[7.,107.,9.,109.,8.,108.,10.,110.,11.,111.,12.,112.,13.,113.,15.,115.,14.,114.,16.,116.]
2860 for i in xrange(20):
2861 self.assertAlmostEqual(expected1[i],f1.getArray().getIJ(0,i),12);
2864 f1=MEDCouplingFieldDouble.New(ON_NODES,NO_TIME);
2866 array=DataArrayDouble.New();
2867 arr2=[7.,107.,8.,108.,9.,109.,10.,110.,11.,111.,12.,112.,13.,113.,14.,114.,15.,115.,16.,116.,17.,117.]
2868 array.setValues(arr2,mesh1.getNumberOfNodes(),2);
2871 renum2=[0,2,10,3,4,5,6,8,7,9,1]
2872 mesh2.renumberNodes(renum2,11);
2873 #self.assertTrue(f1.getMesh()==mesh1);
2874 f1.changeUnderlyingMesh(mesh2,10,1e-12);
2875 #self.assertTrue(f1.getMesh()==mesh2);
2876 expected2=[7.,107.,17.,117.,8.,108.,10.,110.,11.,111.,12.,112.,13.,113.,15.,115.,14.,114.,16.,116.,9.,109.]
2877 for i in xrange(22):
2878 self.assertAlmostEqual(expected2[i],f1.getArray().getIJ(0,i),12);
2882 def testGetMaxValue1(self):
2883 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
2884 nbOfCells=m.getNumberOfCells();
2885 f=MEDCouplingFieldDouble.New(ON_CELLS,LINEAR_TIME);
2887 a1=DataArrayDouble.New();
2888 val1=[3.,4.,5.,6.,7.]
2889 a1.setValues(val1,nbOfCells,1);
2890 a2=DataArrayDouble.New();
2891 val2=[0.,1.,2.,8.,7.]
2892 a2.setValues(val2,nbOfCells,1);
2895 f.setEndTime(3.,3,4);
2898 self.assertAlmostEqual(8.,f.getMaxValue(),14);
2899 self.assertAlmostEqual(0.,f.getMinValue(),14);
2900 self.assertAlmostEqual(5.,f.getAverageValue(),14);
2901 self.assertAlmostEqual(5.125,f.getWeightedAverageValue(),14);
2903 self.assertAlmostEqual(9.5,f.getMaxValue(),14);
2904 self.assertAlmostEqual(0.,f.getMinValue(),14);
2906 self.assertAlmostEqual(9.5,f.getMaxValue(),14);
2907 self.assertAlmostEqual(1.,f.getMinValue(),14);
2910 def testSubstractInPlaceDM1(self):
2911 mesh1=MEDCouplingDataForTest.build2DTargetMesh_3();
2912 mesh2=MEDCouplingDataForTest.build2DTargetMesh_3();
2913 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
2915 array=DataArrayDouble.New();
2916 arr=[7.,107.,8.,108.,9.,109.,10.,110.,11.,111.,12.,112.,13.,113.,14.,114.,15.,115.,16.,116.]
2917 array.setValues(arr,mesh1.getNumberOfCells(),2);
2920 self.assertEqual(10,f1.getNumberOfTuples());
2921 self.assertEqual(2,f1.getNumberOfComponents());
2922 self.assertEqual(20,f1.getNumberOfValues());
2924 renum=[0,2,3,1,4,5,6,8,7,9]
2925 mesh2.renumberCells(renum,False);
2927 f2=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
2929 array=DataArrayDouble.New();
2930 arr2=[7.1,107.1,10.1,110.1,8.1,108.1,9.1,109.1,11.1,111.1,12.1,112.1,13.1,113.1,15.1,115.1,14.1,114.1,16.1,116.1]
2931 array.setValues(arr2,mesh2.getNumberOfCells(),2);
2934 f1.substractInPlaceDM(f2,10,1e-12);
2935 f1.applyFunc(1,"abs(x+y+0.2)");
2936 self.assertAlmostEqual(0.,f1.getMaxValue(),13);
2939 def testDotCrossProduct1(self):
2940 mesh1=MEDCouplingDataForTest.build2DTargetMesh_3();
2941 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
2942 f1.setTime(2.3,5,6);
2944 array=DataArrayDouble.New();
2945 arr1=[7.,107.,207.,8.,108.,208.,9.,109.,209.,10.,110.,210.,11.,111.,211.,12.,112.,212.,13.,113.,213.,14.,114.,214.,15.,115.,215.,16.,116.,216.]
2946 array.setValues(arr1,mesh1.getNumberOfCells(),3);
2948 f2=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
2949 f2.setTime(7.8,4,5);
2951 array=DataArrayDouble.New();
2952 arr2=[1.,2.,3.,4.,5.,6.,7.,8.,9.,10.,11.,12.,13.,14.,15.,16.,17.,18.,19.,20.,21.,22.,23.,24.,25.,26.,27.,28.,29.,30.]
2953 array.setValues(arr2,mesh1.getNumberOfCells(),3);
2957 expected1=[842.,1820.,2816.,3830.,4862.,5912.,6980.,8066.,9170.,10292.]
2958 for i in xrange(10):
2959 self.assertAlmostEqual(expected1[i],f3.getIJ(i,0),9);
2962 f4=f1.crossProduct(f2);
2963 expected2=[-93., 186., -93., -392., 784., -392., -691., 1382., -691., -990., 1980., -990., -1289., 2578., -1289., -1588., 3176., -1588., -1887., 3774., -1887., -2186., 4372., -2186., -2485., 4970., -2485., -2784., 5568., -2784.]
2964 for i in xrange(30):
2965 self.assertAlmostEqual(expected2[i],f4.getIJ(0,i),9);
2969 def testMinMaxFields1(self):
2970 mesh1=MEDCouplingDataForTest.build2DTargetMesh_3();
2971 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
2972 f1.setTime(2.3,5,6);
2974 array=DataArrayDouble.New();
2975 arr1=[7.,107.,207.,8.,108.,208.,9.,109.,209.,10.,110.,210.,11.,111.,211.,12.,112.,212.,13.,113.,213.,14.,114.,214.,15.,115.,215.,16.,116.,216.]
2976 array.setValues(arr1,mesh1.getNumberOfCells(),3);
2978 f2=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
2979 f2.setTime(7.8,4,5);
2981 array=DataArrayDouble.New();
2982 arr2=[6.,108.,206.,9.,107.,209.,8.,110.,208.,11.,109.,211.,10.,112.,210.,13.,111.,213.,12.,114.,212.,15.,113.,215.,14.,116.,214.,17.,115.,217.]
2983 array.setValues(arr2,mesh1.getNumberOfCells(),3);
2987 expected1=[7.,108.,207.,9.,108.,209.,9.,110.,209.,11.,110.,211.,11.,112.,211.,13.,112.,213.,13.,114.,213.,15.,114.,215.,15.,116.,215.,17.,116.,217.]
2988 for i in xrange(30):
2989 self.assertAlmostEqual(expected1[i],f3.getIJ(0,i),9);
2993 expected2=[6.,107.,206.,8.,107.,208.,8.,109.,208.,10.,109.,210.,10.,111.,210.,12.,111.,212.,12.,113.,212.,14.,113.,214.,14.,115.,214.,16.,115.,216.]
2994 for i in xrange(30):
2995 self.assertAlmostEqual(expected2[i],f4.getIJ(0,i),9);
3000 def testApplyLin1(self):
3001 mesh1=MEDCouplingDataForTest.build2DTargetMesh_3();
3002 f1=MEDCouplingFieldDouble.New(ON_CELLS,LINEAR_TIME);
3004 array=DataArrayDouble.New();
3005 arr=[7.,107.,8.,108.,9.,109.,10.,110.,11.,111.,12.,112.,13.,113.,14.,114.,15.,115.,16.,116.]
3006 array.setValues(arr,mesh1.getNumberOfCells(),2);
3009 f1.applyLin(2.,3.,0);
3010 expected1=[17.,107.,19.,108.,21.,109.,23.,110.,25.,111.,27.,112.,29.,113.,31.,114.,33.,115.,35.,116.]
3011 for i in xrange(20):
3012 self.assertAlmostEqual(expected1[i],f1.getIJ(0,i),9);
3015 arr2=[2.,102.,3.,103.,4.,104.,5.,105.,6.,106.,7.,107.,8.,108.,9.,109.,10.,110.,11.,111.]
3016 array=DataArrayDouble.New();
3017 array.setValues(arr2,mesh1.getNumberOfCells(),2);
3018 f1.setEndArray(array);
3020 f1.applyLin(4.,5.,1);
3022 expected2=[17.,433.,19.,437.,21.,441.,23.,445.,25.,449.,27.,453.,29.,457.,31.,461.,33.,465.,35.,469.]
3023 for i in xrange(20):
3024 self.assertAlmostEqual(expected2[i],f1.getIJ(0,i),9);
3026 expected3=[2.,413.,3.,417.,4.,421.,5.,425.,6.,429.,7.,433.,8.,437.,9.,441.,10.,445.,11.,449.]
3027 for i in xrange(20):
3028 self.assertAlmostEqual(expected3[i],f1.getEndArray().getIJ(0,i),9);
3033 def testGetIdsInRange1(self):
3034 mesh1=MEDCouplingDataForTest.build2DTargetMesh_3();
3035 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
3036 f1.setTime(2.3,5,6);
3038 array=DataArrayDouble.New();
3039 arr1=[2.,8.,6.,5.,11.,7.,9.,3.,10.,4.]
3040 array.setValues(arr1,mesh1.getNumberOfCells(),1);
3043 f1.checkCoherency();
3044 da=f1.getIdsInRange(2.9,7.1);
3045 self.failUnlessEqual(5,da.getNbOfElems());
3046 expected1=[2,3,5,7,9]
3047 self.failUnlessEqual(expected1,list(da.getValues()));
3048 da=f1.getIdsInRange(8.,12.);
3049 self.failUnlessEqual(4,da.getNbOfElems());
3051 self.failUnlessEqual(expected2,list(da.getValues()));
3055 def testBuildSubPart1(self):
3056 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
3057 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
3058 f1.setTime(2.3,5,6);
3060 array=DataArrayDouble.New();
3061 arr1=[3.,103.,4.,104.,5.,105.,6.,106.,7.,107.]
3062 array.setValues(arr1,mesh1.getNumberOfCells(),2);
3068 self.failUnlessEqual(3,f2.getNumberOfTuples());
3069 self.failUnlessEqual(2,f2.getNumberOfComponents());
3070 expected1=[5.,105.,4.,104.,7.,107.]
3072 self.assertAlmostEqual(f2.getIJ(0,i),expected1[i],12);
3074 self.failUnlessEqual(3,f2.getMesh().getNumberOfCells());
3075 self.failUnlessEqual(6,f2.getMesh().getNumberOfNodes());
3076 self.failUnlessEqual(2,f2.getMesh().getSpaceDimension());
3077 self.failUnlessEqual(2,f2.getMesh().getMeshDimension());
3079 self.failUnlessEqual(13,m2C.getMeshLength());
3080 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]
3081 for i in xrange(12):
3082 self.assertAlmostEqual(expected2[i],m2C.getCoords().getIJ(0,i),12);
3084 expected3=[3,2,3,1,3,0,2,1,4,4,5,3,2]
3085 self.failUnlessEqual(expected3,list(m2C.getNodalConnectivity().getValues()));
3086 expected4=[0,4,8,13]
3087 self.failUnlessEqual(expected4,list(m2C.getNodalConnectivityIndex().getValues()));
3088 # Test with field on nodes.
3089 f1=MEDCouplingFieldDouble.New(ON_NODES,ONE_TIME);
3090 f1.setTime(2.3,5,6);
3092 array=DataArrayDouble.New();
3093 arr2=[3.,103.,4.,104.,5.,105.,6.,106.,7.,107.,8.,108.,9.,109.,10.,110.,11.,111.]
3094 array.setValues(arr2,mesh1.getNumberOfNodes(),2);
3097 f2=f1.buildSubPart(part2);
3098 self.failUnlessEqual(4,f2.getNumberOfTuples());
3099 self.failUnlessEqual(2,f2.getNumberOfComponents());
3100 expected5=[4.,104.,5.,105.,7.,107.,8.,108.]
3102 self.assertAlmostEqual(f2.getIJ(0,i),expected5[i],12);
3104 self.failUnlessEqual(2,f2.getMesh().getNumberOfCells());
3105 self.failUnlessEqual(4,f2.getMesh().getNumberOfNodes());
3106 self.failUnlessEqual(2,f2.getMesh().getSpaceDimension());
3107 self.failUnlessEqual(2,f2.getMesh().getMeshDimension());
3109 self.failUnlessEqual(8,m2C.getMeshLength());
3110 for i in xrange(8):#8 is not an error
3111 self.assertAlmostEqual(expected2[i],m2C.getCoords().getIJ(0,i),12);
3113 self.failUnlessEqual(expected3[:4],list(m2C.getNodalConnectivity().getValues())[4:]);
3114 self.failUnlessEqual(expected3[4:8],list(m2C.getNodalConnectivity().getValues())[:4]);
3115 self.failUnlessEqual(expected4[:3],list(m2C.getNodalConnectivityIndex().getValues()));
3116 #idem previous because nodes of cell#4 are not fully present in part3
3118 arrr=DataArrayInt.New();
3119 arrr.setValues(part3,2,1);
3120 f2=f1.buildSubPart(arrr);
3121 self.failUnlessEqual(4,f2.getNumberOfTuples());
3122 self.failUnlessEqual(2,f2.getNumberOfComponents());
3124 self.assertAlmostEqual(f2.getIJ(0,i),expected5[i],12);
3126 self.failUnlessEqual(2,f2.getMesh().getNumberOfCells());
3127 self.failUnlessEqual(4,f2.getMesh().getNumberOfNodes());
3128 self.failUnlessEqual(2,f2.getMesh().getSpaceDimension());
3129 self.failUnlessEqual(2,f2.getMesh().getMeshDimension());
3131 self.failUnlessEqual(8,m2C.getMeshLength());
3132 for i in xrange(8):#8 is not an error
3133 self.assertAlmostEqual(expected2[i],m2C.getCoords().getIJ(0,i),12);
3135 self.failUnlessEqual(expected3[:4],list(m2C.getNodalConnectivity().getValues())[4:8]);
3136 self.failUnlessEqual(expected3[4:8],list(m2C.getNodalConnectivity().getValues())[:4]);
3137 self.failUnlessEqual(expected4[:3],list(m2C.getNodalConnectivityIndex().getValues()));
3140 f2=f1.buildSubPart(part4);
3141 self.failUnlessEqual(6,f2.getNumberOfTuples());
3142 self.failUnlessEqual(2,f2.getNumberOfComponents());
3143 expected6=[4.,104.,5.,105.,7.,107.,8.,108.,10.,110.,11.,111.]
3144 for i in xrange(12):
3145 self.assertAlmostEqual(f2.getIJ(0,i),expected6[i],12);
3147 self.failUnlessEqual(3,f2.getMesh().getNumberOfCells());
3148 self.failUnlessEqual(6,f2.getMesh().getNumberOfNodes());
3149 self.failUnlessEqual(2,f2.getMesh().getSpaceDimension());
3150 self.failUnlessEqual(2,f2.getMesh().getMeshDimension());
3152 self.failUnlessEqual(13,m2C.getMeshLength());
3153 for i in xrange(12):
3154 self.assertAlmostEqual(expected2[i],m2C.getCoords().getIJ(0,i),12);
3156 self.failUnlessEqual(expected3[0:4],list(m2C.getNodalConnectivity().getValues())[4:8]);
3157 self.failUnlessEqual(expected3[4:8],list(m2C.getNodalConnectivity().getValues())[0:4]);
3158 self.failUnlessEqual(expected3[8:13],list(m2C.getNodalConnectivity().getValues())[8:13]);
3159 self.failUnlessEqual(expected4,list(m2C.getNodalConnectivityIndex().getValues()));
3162 def testDoublyContractedProduct1(self):
3163 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
3164 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
3166 array=DataArrayDouble.New();
3167 arr1=[7.8,8.9,9.1,10.2,23.4,34.5, 7.8,8.9,9.1,10.2,23.4,34.5, 7.8,8.9,9.1,10.2,23.4,34.5, 7.8,8.9,9.1,10.2,23.4,34.5, 7.8,8.9,9.1,10.2,23.4,34.5]
3168 array.setValues(arr1,mesh1.getNumberOfCells(),6);
3170 f1.checkCoherency();
3172 f2=f1.doublyContractedProduct();
3173 f2.checkCoherency();
3174 self.assertEqual(1,f2.getNumberOfComponents());
3175 self.assertEqual(5,f2.getNumberOfTuples());
3177 self.assertAlmostEqual(3906.56,f2.getIJ(i,0),9);
3182 def testDeterminant1(self):
3183 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
3184 f1=MEDCouplingFieldDouble.New(ON_CELLS,CONST_ON_TIME_INTERVAL);
3185 f1.setTime(2.3,5,6);
3186 f1.setEndTime(3.8,7,3);
3188 array=DataArrayDouble.New();
3189 arr1=[1.2,2.3,3.4,4.5, 1.2,2.3,3.4,4.5, 1.2,2.3,3.4,4.5, 1.2,2.3,3.4,4.5, 1.2,2.3,3.4,4.5]
3190 array.setValues(arr1,mesh1.getNumberOfCells(),4);
3193 f1.checkCoherency();
3194 f2=f1.determinant();
3195 f2.checkCoherency();
3196 self.assertEqual(CONST_ON_TIME_INTERVAL,f2.getTimeDiscretization());
3197 self.assertEqual(1,f2.getNumberOfComponents());
3198 self.assertEqual(5,f2.getNumberOfValues());
3200 self.assertAlmostEqual(-2.42,f2.getIJ(i,0),13);
3202 #6 components multi arrays with end array not defined
3203 f1=MEDCouplingFieldDouble.New(ON_NODES,LINEAR_TIME);
3204 f1.setTime(2.3,5,6);
3205 f1.setEndTime(3.8,7,3);
3207 array=DataArrayDouble.New();
3208 arr2=[1.2,2.3,3.4,4.5,5.6,6.7, 1.2,2.3,3.4,4.5,5.6,6.7, 1.2,2.3,3.4,4.5,5.6,6.7, 1.2,2.3,3.4,4.5,5.6,6.7, 1.2,2.3,3.4,4.5,5.6,6.7,
3209 1.2,2.3,3.4,4.5,5.6,6.7, 1.2,2.3,3.4,4.5,5.6,6.7, 1.2,2.3,3.4,4.5,5.6,6.7, 1.2,2.3,3.4,4.5,5.6,6.7]
3210 array.setValues(arr2,mesh1.getNumberOfNodes(),6);
3212 self.assertRaises(InterpKernelException,f1.checkCoherency);#no end array specified !
3214 f2=f1.determinant();
3215 self.assertEqual(LINEAR_TIME,f2.getTimeDiscretization());
3216 self.assertEqual(1,f2.getArray().getNumberOfComponents());
3217 self.assertEqual(9,f2.getNumberOfTuples());
3219 self.assertAlmostEqual(137.335,f2.getIJ(i,0),10);
3221 #6 components multi arrays with end array defined
3222 array=DataArrayDouble.New();
3223 arr3=[7.8,8.9,9.1,10.2,23.4,34.5, 7.8,8.9,9.1,10.2,23.4,34.5, 7.8,8.9,9.1,10.2,23.4,34.5, 7.8,8.9,9.1,10.2,23.4,34.5, 7.8,8.9,9.1,10.2,23.4,34.5,
3224 7.8,8.9,9.1,10.2,23.4,34.5, 7.8,8.9,9.1,10.2,23.4,34.5, 7.8,8.9,9.1,10.2,23.4,34.5, 7.8,8.9,9.1,10.2,23.4,34.5]
3225 array.setValues(arr3,mesh1.getNumberOfNodes(),6);
3226 f1.setEndArray(array);
3227 f1.checkCoherency();
3228 f2=f1.determinant();
3229 f2.checkCoherency();
3230 self.assertEqual(LINEAR_TIME,f2.getTimeDiscretization());
3231 self.assertEqual(1,f2.getNumberOfComponents());
3232 self.assertEqual(9,f2.getNumberOfTuples());
3233 time2,it,order=f2.getTime()
3234 self.assertAlmostEqual(2.3,time2,12);
3235 self.assertEqual(5,it);
3236 self.assertEqual(6,order);
3237 time2,it,order=f2.getEndTime()
3238 self.assertAlmostEqual(3.8,time2,12);
3239 self.assertEqual(7,it);
3240 self.assertEqual(3,order);
3242 self.assertAlmostEqual(137.335,f2.getIJ(i,0),10);
3243 self.assertAlmostEqual(1289.685,f2.getEndArray().getIJ(i,0),9);
3246 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
3247 f1.setTime(7.8,10,2);
3249 array=DataArrayDouble.New();
3250 arr4=[1.2,2.3,3.4,4.5,5.6,6.7,7.8,8.9,9.1, 1.2,2.3,3.4,4.5,5.6,6.7,7.8,8.9,9.1, 1.2,2.3,3.4,4.5,5.6,6.7,7.8,8.9,9.1, 1.2,2.3,3.4,4.5,5.6,6.7,7.8,8.9,9.1, 1.2,2.3,3.4,4.5,5.6,6.7,7.8,8.9,9.1]
3251 array.setValues(arr4,mesh1.getNumberOfCells(),9);
3254 f1.checkCoherency();
3255 f2=f1.determinant();
3256 f2.checkCoherency();
3257 self.assertEqual(ONE_TIME,f2.getTimeDiscretization());
3258 self.assertEqual(1,f2.getNumberOfComponents());
3259 self.assertEqual(5,f2.getNumberOfTuples());
3260 time2,it,order=f2.getTime()
3261 self.assertAlmostEqual(7.8,time2,12);
3262 self.assertEqual(10,it);
3263 self.assertEqual(2,order);
3265 self.assertAlmostEqual(3.267,f2.getIJ(i,0),13);
3269 def testEigenValues1(self):
3270 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
3271 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
3273 array=DataArrayDouble.New();
3274 arr1=[1.2,2.3,3.4,4.5,5.6,6.7, 1.2,2.3,3.4,4.5,5.6,6.7, 1.2,2.3,3.4,4.5,5.6,6.7, 1.2,2.3,3.4,4.5,5.6,6.7, 1.2,2.3,3.4,4.5,5.6,6.7]
3275 array.setValues(arr1,mesh1.getNumberOfCells(),6);
3277 f1.checkCoherency();
3279 f2=f1.eigenValues();
3280 f2.checkCoherency();
3281 self.assertEqual(3,f2.getNumberOfComponents());
3282 self.assertEqual(5,f2.getNumberOfTuples());
3283 expected1=[13.638813677891717,-4.502313844635971,-2.2364998332557486]
3285 self.assertAlmostEqual(expected1[0],f2.getIJ(i,0),13);
3286 self.assertAlmostEqual(expected1[1],f2.getIJ(i,1),13);
3287 self.assertAlmostEqual(expected1[2],f2.getIJ(i,2),13);
3291 def testEigenVectors1(self):
3292 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
3293 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
3295 array=DataArrayDouble.New();
3296 arr1=[1.2,2.3,3.4,4.5,5.6,6.7, 1.2,2.3,3.4,4.5,5.6,6.7, 1.2,2.3,3.4,4.5,5.6,6.7, 1.2,2.3,3.4,4.5,5.6,6.7, 1.2,2.3,3.4,4.5,5.6,6.7]
3297 array.setValues(arr1,mesh1.getNumberOfCells(),6);
3299 f1.checkCoherency();
3301 f2=f1.eigenVectors();
3302 f2.checkCoherency();
3303 self.assertEqual(9,f2.getNumberOfComponents());
3304 self.assertEqual(5,f2.getNumberOfTuples());
3305 expected1=[0.5424262364180696, 0.5351201064614425, 0.6476266283176001,#eigenvect 0
3306 0.7381111277307373, 0.06458838384003074, -0.6715804522117897,#eigenvect 1
3307 -0.4012053603397987, 0.8423032781211455, -0.3599436712889738#eigenvect 2
3310 self.assertAlmostEqual(expected1[0],f2.getIJ(i,0),13);
3311 self.assertAlmostEqual(expected1[1],f2.getIJ(i,1),13);
3312 self.assertAlmostEqual(expected1[2],f2.getIJ(i,2),13);
3313 self.assertAlmostEqual(expected1[3],f2.getIJ(i,3),13);
3314 self.assertAlmostEqual(expected1[4],f2.getIJ(i,4),13);
3315 self.assertAlmostEqual(expected1[5],f2.getIJ(i,5),13);
3316 self.assertAlmostEqual(expected1[6],f2.getIJ(i,6),13);
3317 self.assertAlmostEqual(expected1[7],f2.getIJ(i,7),13);
3318 self.assertAlmostEqual(expected1[8],f2.getIJ(i,8),13);
3323 def testInverse1(self):
3324 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
3325 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
3327 array=DataArrayDouble.New();
3328 arr1=[1.2,2.3,3.4,4.5,5.6,6.7,7.8,8.9,9.1, 1.2,2.3,3.4,4.5,5.6,6.7,7.8,8.9,9.1, 1.2,2.3,3.4,4.5,5.6,6.7,7.8,8.9,9.1, 1.2,2.3,3.4,4.5,5.6,6.7,7.8,8.9,9.1, 1.2,2.3,3.4,4.5,5.6,6.7,7.8,8.9,9.1]
3329 array.setValues(arr1,mesh1.getNumberOfCells(),9);
3331 f1.checkCoherency();
3334 f2.checkCoherency();
3335 self.assertEqual(9,f2.getNumberOfComponents());
3336 self.assertEqual(5,f2.getNumberOfTuples());
3337 expected1=[-2.6538108356290113, 2.855831037649208, -1.1111111111111067, 3.461891643709813, -4.775022956841121, 2.2222222222222143, -1.1111111111111054, 2.222222222222214, -1.1111111111111072]
3339 self.assertAlmostEqual(expected1[0],f2.getIJ(i,0),13);
3340 self.assertAlmostEqual(expected1[1],f2.getIJ(i,1),13);
3341 self.assertAlmostEqual(expected1[2],f2.getIJ(i,2),13);
3342 self.assertAlmostEqual(expected1[3],f2.getIJ(i,3),13);
3343 self.assertAlmostEqual(expected1[4],f2.getIJ(i,4),13);
3344 self.assertAlmostEqual(expected1[5],f2.getIJ(i,5),13);
3345 self.assertAlmostEqual(expected1[6],f2.getIJ(i,6),13);
3346 self.assertAlmostEqual(expected1[7],f2.getIJ(i,7),13);
3347 self.assertAlmostEqual(expected1[8],f2.getIJ(i,8),13);
3350 array=DataArrayDouble.New();
3351 arr3=[7.8,8.9,9.1,10.2,23.4,34.5, 7.8,8.9,9.1,10.2,23.4,34.5, 7.8,8.9,9.1,10.2,23.4,34.5, 7.8,8.9,9.1,10.2,23.4,34.5, 7.8,8.9,9.1,10.2,23.4,34.5]
3352 array.setValues(arr3,mesh1.getNumberOfCells(),6);
3354 f1.checkCoherency();
3357 f2.checkCoherency();
3358 self.assertEqual(6,f2.getNumberOfComponents());
3359 self.assertEqual(5,f2.getNumberOfTuples());
3360 expected3=[-0.3617705098531818, -0.8678630828458127, -0.026843764174972983, 0.5539957431465833, 0.13133439560823013, -0.05301294502145887]
3362 self.assertAlmostEqual(expected3[0],f2.getIJ(i,0),13);
3363 self.assertAlmostEqual(expected3[1],f2.getIJ(i,1),13);
3364 self.assertAlmostEqual(expected3[2],f2.getIJ(i,2),13);
3365 self.assertAlmostEqual(expected3[3],f2.getIJ(i,3),13);
3366 self.assertAlmostEqual(expected3[4],f2.getIJ(i,4),13);
3367 self.assertAlmostEqual(expected3[5],f2.getIJ(i,5),13);
3370 array=DataArrayDouble.New();
3371 arr2=[1.2,2.3,3.4,4.5, 1.2,2.3,3.4,4.5, 1.2,2.3,3.4,4.5, 1.2,2.3,3.4,4.5, 1.2,2.3,3.4,4.5]
3372 array.setValues(arr2,mesh1.getNumberOfCells(),4);
3374 f1.checkCoherency();
3377 f2.checkCoherency();
3378 self.assertEqual(4,f2.getNumberOfComponents());
3379 self.assertEqual(5,f2.getNumberOfTuples());
3380 expected2=[-1.8595041322314059, 0.9504132231404963, 1.404958677685951, -0.49586776859504156]
3382 self.assertAlmostEqual(expected2[0],f2.getIJ(i,0),13);
3383 self.assertAlmostEqual(expected2[1],f2.getIJ(i,1),13);
3384 self.assertAlmostEqual(expected2[2],f2.getIJ(i,2),13);
3385 self.assertAlmostEqual(expected2[3],f2.getIJ(i,3),13);
3390 def testTrace1(self):
3391 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
3392 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
3394 array=DataArrayDouble.New();
3395 arr1=[1.2,2.3,3.4,4.5,5.6,6.7,7.8,8.9,9.1, 1.2,2.3,3.4,4.5,5.6,6.7,7.8,8.9,9.1, 1.2,2.3,3.4,4.5,5.6,6.7,7.8,8.9,9.1, 1.2,2.3,3.4,4.5,5.6,6.7,7.8,8.9,9.1, 1.2,2.3,3.4,4.5,5.6,6.7,7.8,8.9,9.1]
3396 array.setValues(arr1,mesh1.getNumberOfCells(),9);
3398 f1.checkCoherency();
3401 f2.checkCoherency();
3402 self.assertEqual(1,f2.getNumberOfComponents());
3403 self.assertEqual(5,f2.getNumberOfTuples());
3405 self.assertAlmostEqual(15.9,f2.getIJ(i,0),13);
3408 array=DataArrayDouble.New();
3409 arr3=[7.8,8.9,9.1,10.2,23.4,34.5, 7.8,8.9,9.1,10.2,23.4,34.5, 7.8,8.9,9.1,10.2,23.4,34.5, 7.8,8.9,9.1,10.2,23.4,34.5, 7.8,8.9,9.1,10.2,23.4,34.5]
3410 array.setValues(arr3,mesh1.getNumberOfCells(),6);
3412 f1.checkCoherency();
3415 f2.checkCoherency();
3416 self.assertEqual(1,f2.getNumberOfComponents());
3417 self.assertEqual(5,f2.getNumberOfTuples());
3419 self.assertAlmostEqual(25.8,f2.getIJ(i,0),13);
3422 array=DataArrayDouble.New();
3423 arr2=[1.2,2.3,3.4,4.5, 1.2,2.3,3.4,4.5, 1.2,2.3,3.4,4.5, 1.2,2.3,3.4,4.5, 1.2,2.3,3.4,4.5]
3424 array.setValues(arr2,mesh1.getNumberOfCells(),4);
3426 f1.checkCoherency();
3429 f2.checkCoherency();
3430 self.assertEqual(1,f2.getNumberOfComponents());
3431 self.assertEqual(5,f2.getNumberOfTuples());
3433 self.assertAlmostEqual(5.7,f2.getIJ(i,0),13);
3438 def testDeviator1(self):
3439 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
3440 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
3442 array=DataArrayDouble.New();
3443 arr1=[1.2,2.3,3.4,4.5,5.6,6.7, 1.2,2.3,3.4,4.5,5.6,6.7, 1.2,2.3,3.4,4.5,5.6,6.7, 1.2,2.3,3.4,4.5,5.6,6.7, 1.2,2.3,3.4,4.5,5.6,6.7]
3444 array.setValues(arr1,mesh1.getNumberOfCells(),6);
3446 f1.checkCoherency();
3449 f2.checkCoherency();
3450 self.assertEqual(6,f2.getNumberOfComponents());
3451 self.assertEqual(5,f2.getNumberOfTuples());
3452 expected1=[-1.1,0.,1.1,4.5,5.6,6.7]
3454 self.assertAlmostEqual(expected1[0],f2.getIJ(i,0),13);
3455 self.assertAlmostEqual(expected1[1],f2.getIJ(i,1),13);
3456 self.assertAlmostEqual(expected1[2],f2.getIJ(i,2),13);
3457 self.assertAlmostEqual(expected1[3],f2.getIJ(i,3),13);
3458 self.assertAlmostEqual(expected1[4],f2.getIJ(i,4),13);
3459 self.assertAlmostEqual(expected1[5],f2.getIJ(i,5),13);
3464 def testMagnitude1(self):
3465 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
3466 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
3468 array=DataArrayDouble.New();
3469 arr1=[1.2,2.3,3.4,4.5,5.6, 1.2,2.3,3.4,4.5,5.6, 1.2,2.3,3.4,4.5,5.6, 1.2,2.3,3.4,4.5,5.6, 1.2,2.3,3.4,4.5,5.6]
3470 array.setValues(arr1,mesh1.getNumberOfCells(),5);
3472 f1.checkCoherency();
3475 f2.checkCoherency();
3476 self.assertEqual(1,f2.getNumberOfComponents());
3477 self.assertEqual(5,f2.getNumberOfTuples());
3479 self.assertAlmostEqual(8.3606219864313918,f2.getIJ(i,0),13);
3484 def testMaxPerTuple1(self):
3485 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
3486 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
3488 array=DataArrayDouble.New();
3489 arr1=[1.2,2.3,3.4,4.5,5.6, 1.2,3.4,4.5,5.6,2.3, 3.4,4.5,5.6,1.2,2.3, 5.6,1.2,2.3,3.4,4.5, 4.5,5.6,1.2,2.3,3.4]
3490 array.setValues(arr1,mesh1.getNumberOfCells(),5);
3492 f1.checkCoherency();
3494 f2=f1.maxPerTuple();
3495 f2.checkCoherency();
3496 self.assertEqual(1,f2.getNumberOfComponents());
3497 self.assertEqual(5,f2.getNumberOfTuples());
3499 self.assertAlmostEqual(5.6,f2.getIJ(i,0),13);
3504 def testChangeNbOfComponents(self):
3505 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
3506 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
3508 array=DataArrayDouble.New();
3509 arr1=[1.2,2.3,3.4,4.5,5.6, 1.2,3.4,4.5,5.6,2.3, 3.4,4.5,5.6,1.2,2.3, 5.6,1.2,2.3,3.4,4.5, 4.5,5.6,1.2,2.3,3.4]
3510 array.setValues(arr1,mesh1.getNumberOfCells(),5);
3512 f1.checkCoherency();
3514 f1.changeNbOfComponents(3,7.77);
3515 f1.checkCoherency();
3516 self.assertEqual(3,f1.getNumberOfComponents());
3517 self.assertEqual(5,f1.getNumberOfTuples());
3518 expected1=[1.2,2.3,3.4, 1.2,3.4,4.5, 3.4,4.5,5.6, 5.6,1.2,2.3, 4.5,5.6,1.2]
3519 for i in xrange(15):
3520 self.assertAlmostEqual(expected1[i],f1.getIJ(0,i),13);
3522 f1.changeNbOfComponents(4,7.77);
3523 f1.checkCoherency();
3524 self.assertEqual(4,f1.getNumberOfComponents());
3525 self.assertEqual(5,f1.getNumberOfTuples());
3526 expected2=[1.2,2.3,3.4,7.77, 1.2,3.4,4.5,7.77, 3.4,4.5,5.6,7.77, 5.6,1.2,2.3,7.77, 4.5,5.6,1.2,7.77]
3527 for i in xrange(20):
3528 self.assertAlmostEqual(expected2[i],f1.getIJ(0,i),13);
3533 def testSortPerTuple1(self):
3534 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
3535 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
3537 array=DataArrayDouble.New();
3538 arr1=[1.2,2.3,3.4,4.5,5.6, 1.2,3.4,4.5,5.6,2.3, 3.4,4.5,5.6,1.2,2.3, 5.6,1.2,2.3,3.4,4.5, 4.5,5.6,1.2,2.3,3.4]
3539 array.setValues(arr1,mesh1.getNumberOfCells(),5);
3541 f1.checkCoherency();
3543 f1.sortPerTuple(True);
3544 f1.checkCoherency();
3545 self.assertEqual(5,f1.getNumberOfComponents());
3546 self.assertEqual(5,f1.getNumberOfTuples());
3548 self.assertAlmostEqual(arr1[0],f1.getIJ(i,0),13);
3549 self.assertAlmostEqual(arr1[1],f1.getIJ(i,1),13);
3550 self.assertAlmostEqual(arr1[2],f1.getIJ(i,2),13);
3551 self.assertAlmostEqual(arr1[3],f1.getIJ(i,3),13);
3552 self.assertAlmostEqual(arr1[4],f1.getIJ(i,4),13);
3555 f1.sortPerTuple(False);
3556 f1.checkCoherency();
3557 self.assertEqual(5,f1.getNumberOfComponents());
3558 self.assertEqual(5,f1.getNumberOfTuples());
3560 self.assertAlmostEqual(arr1[4],f1.getIJ(i,0),13);
3561 self.assertAlmostEqual(arr1[3],f1.getIJ(i,1),13);
3562 self.assertAlmostEqual(arr1[2],f1.getIJ(i,2),13);
3563 self.assertAlmostEqual(arr1[1],f1.getIJ(i,3),13);
3564 self.assertAlmostEqual(arr1[0],f1.getIJ(i,4),13);
3569 def testIsEqualWithoutConsideringStr1(self):
3570 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
3571 mesh2=MEDCouplingDataForTest.build2DTargetMesh_1();
3573 self.assertTrue(mesh1.isEqual(mesh2,1e-12));
3574 self.assertTrue(mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
3575 mesh2.setName("rr");
3576 self.assertTrue(not mesh1.isEqual(mesh2,1e-12));
3577 self.assertTrue(mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
3578 da1,da2=mesh1.checkGeoEquivalWith(mesh2,2,1e-12);
3579 self.assertRaises(InterpKernelException,mesh1.checkGeoEquivalWith,mesh2,0,1e-12);
3581 self.assertTrue(mesh1.isEqual(mesh2,1e-12));
3582 self.assertTrue(mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
3583 mesh2.getCoords().setInfoOnComponent(0,"tty");
3584 self.assertTrue(not mesh1.isEqual(mesh2,1e-12));
3585 self.assertTrue(mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
3586 mesh2.getCoords().setInfoOnComponent(0,"");
3587 self.assertTrue(mesh1.isEqual(mesh2,1e-12));
3588 self.assertTrue(mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
3589 mesh2.getCoords().setInfoOnComponent(1,"tty");
3590 self.assertTrue(not mesh1.isEqual(mesh2,1e-12));
3591 self.assertTrue(mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
3592 mesh2.getCoords().setInfoOnComponent(1,"");
3593 self.assertTrue(mesh1.isEqual(mesh2,1e-12));
3594 self.assertTrue(mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
3595 tmp=mesh2.getCoords().getIJ(0,3);
3596 mesh2.getCoords().setIJ(0,3,9999.);
3597 self.assertTrue(not mesh1.isEqual(mesh2,1e-12));
3598 self.assertTrue(not mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
3599 mesh2.getCoords().setIJ(0,3,tmp);
3600 self.assertTrue(mesh1.isEqual(mesh2,1e-12));
3601 self.assertTrue(mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
3602 tmp2=mesh2.getNodalConnectivity().getIJ(0,4);
3603 mesh2.getNodalConnectivity().setIJ(0,4,0);
3604 self.assertTrue(not mesh1.isEqual(mesh2,1e-12));
3605 self.assertTrue(not mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
3606 mesh2.getNodalConnectivity().setIJ(0,4,tmp2);
3607 self.assertTrue(mesh1.isEqual(mesh2,1e-12));
3608 self.assertTrue(mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
3610 f1=mesh1.getMeasureField(True);
3611 f2=mesh2.getMeasureField(True);
3612 self.assertTrue(f1.isEqual(f2,1e-12,1e-12));
3613 self.assertTrue(f1.isEqualWithoutConsideringStr(f2,1e-12,1e-12));
3614 f2.setName("ftest");
3615 self.assertTrue(not f1.isEqual(f2,1e-12,1e-12));
3616 self.assertTrue(f1.isEqualWithoutConsideringStr(f2,1e-12,1e-12));
3617 f1.setName("ftest");
3618 self.assertTrue(f1.isEqual(f2,1e-12,1e-12));
3619 self.assertTrue(f1.isEqualWithoutConsideringStr(f2,1e-12,1e-12));
3621 f2.getArray().setInfoOnComponent(0,"eee");
3622 self.assertTrue(not f1.isEqual(f2,1e-12,1e-12));
3623 self.assertTrue(f1.isEqualWithoutConsideringStr(f2,1e-12,1e-12));
3624 f2.getArray().setInfoOnComponent(0,"");
3625 self.assertTrue(f1.isEqual(f2,1e-12,1e-12));
3626 self.assertTrue(f1.isEqualWithoutConsideringStr(f2,1e-12,1e-12));
3628 f2.getArray().setIJ(1,0,0.123);
3629 self.assertTrue(not f1.isEqual(f2,1e-12,1e-12));
3630 self.assertTrue(not f1.isEqualWithoutConsideringStr(f2,1e-12,1e-12));
3631 f2.getArray().setIJ(1,0,0.125);
3632 self.assertTrue(f1.isEqual(f2,1e-12,1e-12));
3633 self.assertTrue(f1.isEqualWithoutConsideringStr(f2,1e-12,1e-12));
3637 def testGetNodeIdsOfCell1(self):
3638 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
3639 li=mesh1.getNodeIdsOfCell(1)
3641 self.assertEqual(expected1,list(li))
3642 li=mesh1.getCoordinatesOfNode(4)
3643 self.assertEqual(2,len(li))
3644 self.assertAlmostEqual(0.2,li[0],13);
3645 self.assertAlmostEqual(0.2,li[1],13);
3646 li=mesh1.getCoords().getValuesAsTuple()
3647 self.assertEqual(9,len(li))
3648 li2=mesh1.getNodalConnectivityIndex().getValuesAsTuple()
3649 self.assertEqual(6,len(li2))
3652 def testGetEdgeRatioField1(self):
3653 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
3654 m1.setTime(3.4,5,6); m1.setTimeUnit("us");
3655 f1=m1.getEdgeRatioField();
3656 self.assertAlmostEqual(3.4,f1.getTime()[0],12) ; self.assertEqual(5,f1.getTime()[1]) ; self.assertEqual(6,f1.getTime()[2])
3657 self.assertEqual("us",f1.getTimeUnit())
3658 self.assertEqual(m1.getNumberOfCells(),f1.getNumberOfTuples());
3659 self.assertEqual(5,f1.getNumberOfTuples());
3660 self.assertEqual(1,f1.getNumberOfComponents());
3661 expected1=[1.,1.4142135623730951, 1.4142135623730951,1.,1.]
3663 self.assertAlmostEqual(expected1[i],f1.getIJ(i,0),14);
3666 m1=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
3667 f1=m1.getEdgeRatioField();
3668 self.assertEqual(m1.getNumberOfCells(),f1.getNumberOfTuples());
3669 self.assertEqual(5,f1.getNumberOfTuples());
3670 self.assertEqual(1,f1.getNumberOfComponents());
3671 expected2=[1.4142135623730951, 1.7320508075688772, 1.7320508075688772, 1.4142135623730951, 1.4142135623730951]
3673 self.assertAlmostEqual(expected2[i],f1.getIJ(i,0),14);
3677 def testFillFromAnalytic3(self):
3678 m=MEDCouplingDataForTest.build2DTargetMesh_1()
3679 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME)
3680 self.assertRaises(InterpKernelException,f1.fillFromAnalytic,1,"y+x");
3682 f1.setName("myField");
3683 f1.fillFromAnalytic(1,"y+x");
3684 f1.checkCoherency();
3685 self.assertEqual(f1.getName(),"myField");
3686 self.assertEqual(f1.getTypeOfField(),ON_CELLS);
3687 self.assertEqual(f1.getTimeDiscretization(),ONE_TIME);
3688 self.assertEqual(1,f1.getNumberOfComponents());
3689 self.assertEqual(5,f1.getNumberOfTuples());
3690 values1=[-0.1,0.23333333333333336,0.56666666666666665,0.4,0.9]
3691 tmp=f1.getArray().getValues();
3692 self.assertEqual(len(values1),len(tmp))
3693 for i in xrange(len(values1)):
3694 self.assertTrue(abs(values1[i]-tmp[i])<1.e-12);
3697 f1=MEDCouplingFieldDouble.New(ON_NODES,CONST_ON_TIME_INTERVAL)
3699 f1.fillFromAnalytic(1,"y+2*x");
3700 f1.setEndTime(1.2,3,4);
3701 f1.checkCoherency();
3702 self.assertEqual(f1.getTypeOfField(),ON_NODES);
3703 self.assertEqual(f1.getTimeDiscretization(),CONST_ON_TIME_INTERVAL);
3704 self.assertEqual(1,f1.getNumberOfComponents());
3705 self.assertEqual(9,f1.getNumberOfTuples());
3706 values2=[-0.9,0.1,1.1,-0.4,0.6,1.6,0.1,1.1,2.1]
3707 tmp=f1.getArray().getValues();
3708 self.assertEqual(len(values2),len(tmp))
3709 for i in xrange(len(values2)):
3710 self.assertTrue(abs(values2[i]-tmp[i])<1.e-12);
3712 f1=MEDCouplingFieldDouble.New(ON_NODES,LINEAR_TIME);
3714 f1.fillFromAnalytic(1,"2.*x+y");
3715 f1.setEndTime(1.2,3,4);
3716 f1.checkCoherency();
3717 self.assertEqual(f1.getTypeOfField(),ON_NODES);
3718 self.assertEqual(f1.getTimeDiscretization(),LINEAR_TIME);
3719 self.assertEqual(1,f1.getNumberOfComponents());
3720 self.assertEqual(9,f1.getNumberOfTuples());
3721 tmp=f1.getArray().getValues();
3722 values2Bis=[-0.9,0.1,1.1,-0.4,0.6,1.6,0.1,1.1,2.1]
3723 self.assertEqual(len(values2Bis),len(tmp))
3724 for i in xrange(len(values2Bis)):
3725 self.assertTrue(abs(values2Bis[i]-tmp[i])<1.e-12);
3727 tmp=f1.getEndArray().getValues();
3728 self.assertEqual(len(values2Bis),len(tmp))
3729 for i in xrange(len(values2Bis)):
3730 self.assertTrue(abs(values2Bis[i]-tmp[i])<1.e-12);
3733 f1=MEDCouplingFieldDouble.New(ON_NODES,ONE_TIME);
3735 f1.fillFromAnalytic(2,"(x+y)*IVec+2*(x+y)*JVec");
3736 f1.checkCoherency();
3737 self.assertEqual(f1.getTypeOfField(),ON_NODES);
3738 self.assertEqual(f1.getTimeDiscretization(),ONE_TIME);
3739 self.assertEqual(2,f1.getNumberOfComponents());
3740 self.assertEqual(9,f1.getNumberOfTuples());
3741 values3=[-0.6,-1.2,-0.1,-0.2,0.4,0.8,-0.1,-0.2,0.4,0.8,0.9,1.8,0.4,0.8,0.9,1.8,1.4,2.8]
3742 tmp=f1.getArray().getValues();
3743 self.assertEqual(len(values3),len(tmp))
3744 for i in xrange(len(values3)):
3745 self.assertTrue(abs(values3[i]-tmp[i])<1.e-12);
3747 values4=f1.accumulate();
3748 self.assertTrue(abs(3.6-values4[0])<1.e-12);
3749 self.assertTrue(abs(7.2-values4[1])<1.e-12);
3750 values4=f1.integral(True);
3751 self.assertTrue(abs(0.5-values4[0])<1.e-12);
3752 self.assertTrue(abs(1.-values4[1])<1.e-12);
3754 f1=MEDCouplingFieldDouble.New(ON_NODES,NO_TIME);
3756 self.assertRaises(InterpKernelException,f1.fillFromAnalytic,1,"1./(x-0.2)");
3759 def testFieldDoubleOpEqual1(self):
3760 m=MEDCouplingDataForTest.build2DTargetMesh_1();
3761 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
3762 self.assertRaises(InterpKernelException,f1.assign,0.07);
3765 f1.checkCoherency();
3766 self.assertEqual(1,f1.getNumberOfComponents());
3767 self.assertEqual(5,f1.getNumberOfTuples());
3769 self.assertAlmostEqual(0.07,f1.getIJ(i,0),16);
3772 f1.checkCoherency();
3773 self.assertEqual(1,f1.getNumberOfComponents());
3774 self.assertEqual(5,f1.getNumberOfTuples());
3776 self.assertAlmostEqual(0.09,f1.getIJ(i,0),16);
3779 f1=MEDCouplingFieldDouble.New(ON_NODES,LINEAR_TIME);
3780 f1.setEndTime(4.5,2,3);
3783 f1.checkCoherency();
3784 self.assertEqual(1,f1.getNumberOfComponents());
3785 self.assertEqual(9,f1.getNumberOfTuples());
3787 self.assertAlmostEqual(0.08,f1.getIJ(i,0),16);
3789 self.assertEqual(1,f1.getEndArray().getNumberOfComponents());
3790 self.assertEqual(9,f1.getEndArray().getNumberOfTuples());
3792 self.assertAlmostEqual(0.08,f1.getEndArray().getIJ(i,0),16);
3796 def testAreaBary3D2(self):
3797 coordsForHexa8=[-75.45749305371, 180.95495078401, 39.515472018008,
3798 -9.755591679144, 23.394927935279, 5.108794294848,
3799 14.337630157832, 61.705351002702, 160.42422501908,
3800 -27.273893776752, 167.567731083961, 192.830034145464,
3801 99.857193154796,264.499264735586,-8.287335493412,
3802 144.939882761126,156.38626563134,-31.896173894226,
3803 161.34096835726,182.4654895809,73.832387065572,
3804 132.680430393685,255.37973247196,96.15235602819];
3805 volHexa8=3258520.29637466;
3806 baryHexa8=[43.925705821778, 155.31893955289, 65.874418109644]
3808 coordsForPenta6=[-68.199829618726,178.938498373416,62.608505919588,
3809 8.461744647847,76.653979804423,165.00018874933,
3810 -27.273893776752,167.567731083961,192.830034145464,
3811 106.586501038965,262.629609408327,13.124533008813,
3812 155.465082847275,197.414118382622,78.408350795821,
3813 132.680430393685,255.37973247196,96.15235602819];
3814 volPenta6=944849.868507338;
3815 baryPenta6=[39.631002313543,182.692711783428,106.98540473964]
3817 coordsForPyra5=[132.680430393685,255.37973247196,96.15235602819,
3818 -27.273893776752,167.567731083961,192.830034145464,
3819 8.461744647847,76.653979804423,165.00018874933,
3820 155.465082847275,197.414118382622,78.408350795821,
3821 -68.199829618726,178.938498373416,62.608505919588];
3822 volPyra5=756943.92980254;
3823 baryPyra5=[29.204294116618,172.540129749156,118.01035951483]
3824 mesh=MEDCouplingUMesh.New("Bary3D2",3);
3825 coo=DataArrayDouble.New();
3826 tmp=coordsForHexa8+coordsForPenta6+coordsForPyra5
3827 coo.setValues(tmp,19,3);
3828 mesh.setCoords(coo);
3830 tmpConn=[0,1,2,3,4,5,6,7]
3831 mesh.allocateCells(3);
3832 self.assertRaises(InterpKernelException,mesh.insertNextCell,NORM_HEXA8,9,tmpConn[0:8])
3833 mesh.insertNextCell(NORM_HEXA8,tmpConn[0:8])
3834 mesh.insertNextCell(NORM_PENTA6,6,[i+8 for i in tmpConn])
3835 mesh.insertNextCell(NORM_PYRA5,5,[i+14 for i in tmpConn])
3836 mesh.finishInsertingCells();
3837 mesh.checkCoherency();
3838 mesh.mergeNodes(1e-7)
3839 self.assertEqual(12,mesh.getNumberOfNodes());
3840 vols=mesh.getMeasureField(True);
3841 self.assertEqual(3,vols.getNumberOfTuples());
3842 self.assertEqual(1,vols.getNumberOfComponents());
3843 self.assertAlmostEqual(volHexa8,vols.getIJ(0,0),6);
3844 self.assertAlmostEqual(volPenta6,vols.getIJ(1,0),7);
3845 self.assertAlmostEqual(volPyra5,vols.getIJ(2,0),7);
3846 bary=mesh.getBarycenterAndOwner();
3847 self.assertEqual(3,bary.getNumberOfTuples());
3848 self.assertEqual(3,bary.getNumberOfComponents());
3849 self.assertAlmostEqual(baryHexa8[0],bary.getIJ(0,0),11);
3850 self.assertAlmostEqual(baryHexa8[1],bary.getIJ(0,1),11);
3851 self.assertAlmostEqual(baryHexa8[2],bary.getIJ(0,2),11);
3852 self.assertAlmostEqual(baryPenta6[0],bary.getIJ(1,0),11);
3853 self.assertAlmostEqual(baryPenta6[1],bary.getIJ(1,1),11);
3854 self.assertAlmostEqual(baryPenta6[2],bary.getIJ(1,2),11);
3855 self.assertAlmostEqual(baryPyra5[0],bary.getIJ(2,0),11);
3856 self.assertAlmostEqual(baryPyra5[1],bary.getIJ(2,1),11);
3857 self.assertAlmostEqual(baryPyra5[2],bary.getIJ(2,2),11);
3860 def testGetMeasureFieldCMesh1(self):
3861 m=MEDCouplingCMesh.New();
3862 da=DataArrayDouble.New();
3863 discX=[2.3,3.4,5.8,10.2]
3864 discY=[12.3,23.4,45.8]
3865 discZ=[-0.7,1.2,1.25,2.13,2.67]
3866 da.setValues(discX,4,1);
3867 m.setCoordsAt(0,da);
3869 self.assertEqual(4,m.getNumberOfNodes());
3870 self.assertEqual(3,m.getNumberOfCells());
3871 self.assertEqual(1,m.getSpaceDimension());
3872 f=m.getMeasureField(True);
3873 self.assertEqual(3,f.getNumberOfTuples());
3874 self.assertEqual(1,f.getNumberOfComponents());
3875 expected1=[1.1,2.4,4.4]
3877 self.assertAlmostEqual(expected1[i],f.getIJ(i,0),12);
3879 coords=m.getCoordinatesAndOwner();
3880 self.assertEqual(4,coords.getNumberOfTuples());
3881 self.assertEqual(1,coords.getNumberOfComponents());
3883 self.assertAlmostEqual(discX[i],coords.getIJ(i,0),12);
3885 coords=m.getBarycenterAndOwner();
3886 self.assertEqual(3,coords.getNumberOfTuples());
3887 self.assertEqual(1,coords.getNumberOfComponents());
3888 expected1_3=[2.85,4.6,8.]
3890 self.assertAlmostEqual(expected1_3[i],coords.getIJ(i,0),12);
3893 da=DataArrayDouble.New();
3894 da.setValues(discY,3,1);
3895 m.setCoordsAt(1,da);
3897 self.assertEqual(12,m.getNumberOfNodes());
3898 self.assertEqual(6,m.getNumberOfCells());
3899 self.assertEqual(2,m.getSpaceDimension());
3900 f=m.getMeasureField(True);
3901 self.assertEqual(6,f.getNumberOfTuples());
3902 self.assertEqual(1,f.getNumberOfComponents());
3903 expected2=[12.21,26.64,48.84,24.64,53.76,98.56]
3905 self.assertAlmostEqual(expected2[i],f.getIJ(i,0),12);
3907 coords=m.getCoordinatesAndOwner();
3908 self.assertEqual(12,coords.getNumberOfTuples());
3909 self.assertEqual(2,coords.getNumberOfComponents());
3910 expected2_2=[2.3,12.3,3.4,12.3,5.8,12.3,10.2,12.3, 2.3,23.4,3.4,23.4,5.8,23.4,10.2,23.4, 2.3,45.8,3.4,45.8,5.8,45.8,10.2,45.8]
3911 for i in xrange(24):
3912 self.assertAlmostEqual(expected2_2[i],coords.getIJ(0,i),12);
3914 coords=m.getBarycenterAndOwner();
3915 self.assertEqual(6,coords.getNumberOfTuples());
3916 self.assertEqual(2,coords.getNumberOfComponents());
3917 expected2_3=[2.85,17.85,4.6,17.85,8.,17.85, 2.85,34.6,4.6,34.6,8.,34.6]
3918 for i in xrange(12):
3919 self.assertAlmostEqual(expected2_3[i],coords.getIJ(0,i),12);
3922 da=DataArrayDouble.New();
3923 da.setValues(discZ,5,1);
3924 m.setCoordsAt(2,da);
3926 self.assertEqual(60,m.getNumberOfNodes());
3927 self.assertEqual(24,m.getNumberOfCells());
3928 self.assertEqual(3,m.getSpaceDimension());
3929 f=m.getMeasureField(True);
3930 self.assertEqual(24,f.getNumberOfTuples());
3931 self.assertEqual(1,f.getNumberOfComponents());
3932 expected3=[23.199, 50.616, 92.796, 46.816, 102.144, 187.264, 0.6105, 1.332, 2.442, 1.232, 2.688, 4.928, 10.7448, 23.4432, 42.9792, 21.6832, 47.3088, 86.7328, 6.5934, 14.3856, 26.3736, 13.3056, 29.0304, 53.2224]
3933 for i in xrange(24):
3934 self.assertAlmostEqual(expected3[i],f.getIJ(i,0),12);
3936 coords=m.getCoordinatesAndOwner();
3937 self.assertEqual(60,coords.getNumberOfTuples());
3938 self.assertEqual(3,coords.getNumberOfComponents());
3940 2.3,12.3,-0.7, 3.4,12.3,-0.7, 5.8,12.3,-0.7, 10.2,12.3,-0.7, 2.3,23.4,-0.7, 3.4,23.4,-0.7, 5.8,23.4,-0.7, 10.2,23.4,-0.7, 2.3,45.8,-0.7, 3.4,45.8,-0.7, 5.8,45.8,-0.7, 10.2,45.8,-0.7,
3941 2.3,12.3,1.2, 3.4,12.3,1.2, 5.8,12.3,1.2, 10.2,12.3,1.2, 2.3,23.4,1.2, 3.4,23.4,1.2, 5.8,23.4,1.2, 10.2,23.4,1.2, 2.3,45.8,1.2, 3.4,45.8,1.2, 5.8,45.8,1.2, 10.2,45.8,1.2,
3942 2.3,12.3,1.25, 3.4,12.3,1.25, 5.8,12.3,1.25, 10.2,12.3,1.25, 2.3,23.4,1.25, 3.4,23.4,1.25, 5.8,23.4,1.25, 10.2,23.4,1.25, 2.3,45.8,1.25, 3.4,45.8,1.25, 5.8,45.8,1.25, 10.2,45.8,1.25,
3943 2.3,12.3,2.13, 3.4,12.3,2.13, 5.8,12.3,2.13, 10.2,12.3,2.13, 2.3,23.4,2.13, 3.4,23.4,2.13, 5.8,23.4,2.13, 10.2,23.4,2.13, 2.3,45.8,2.13, 3.4,45.8,2.13, 5.8,45.8,2.13, 10.2,45.8,2.13,
3944 2.3,12.3,2.67, 3.4,12.3,2.67, 5.8,12.3,2.67, 10.2,12.3,2.67, 2.3,23.4,2.67, 3.4,23.4,2.67, 5.8,23.4,2.67, 10.2,23.4,2.67, 2.3,45.8,2.67, 3.4,45.8,2.67, 5.8,45.8,2.67, 10.2,45.8,2.67];
3945 for i in xrange(180):
3946 self.assertAlmostEqual(expected3_2[i],coords.getIJ(0,i),12);
3948 coords=m.getBarycenterAndOwner();
3949 self.assertEqual(24,coords.getNumberOfTuples());
3950 self.assertEqual(3,coords.getNumberOfComponents());
3952 2.85,17.85,0.25,4.6,17.85,0.25,8.,17.85,0.25, 2.85,34.6,0.25,4.6,34.6,0.25,8.,34.6,0.25,
3953 2.85,17.85,1.225,4.6,17.85,1.225,8.,17.85,1.225, 2.85,34.6,1.225,4.6,34.6,1.225,8.,34.6,1.225,
3954 2.85,17.85,1.69,4.6,17.85,1.69,8.,17.85,1.69, 2.85,34.6,1.69,4.6,34.6,1.69,8.,34.6,1.69,
3955 2.85,17.85,2.4,4.6,17.85,2.4,8.,17.85,2.4, 2.85,34.6,2.4,4.6,34.6,2.4,8.,34.6,2.4];
3956 for i in xrange(72):
3957 self.assertAlmostEqual(expected3_3[i],coords.getIJ(0,i),12);
3961 def testFieldDoubleZipCoords1(self):
3962 m=MEDCouplingDataForTest.build2DTargetMeshMergeNode_1();
3963 f=m.fillFromAnalytic(ON_NODES,2,"x*2.");
3964 f.getArray().setInfoOnComponent(0,"titi");
3965 f.getArray().setInfoOnComponent(1,"tutu");
3967 self.assertEqual(18,f.getNumberOfTuples());
3968 self.assertEqual(2,f.getNumberOfComponents());
3969 expected1=[-0.6, -0.6, 0.4, 0.4, 1.4, 1.4, -0.6, -0.6, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 1.4, 1.4, -0.6, -0.6, 0.4, 0.4, 1.4, 1.4, -0.6, -0.6, 1.4, 1.4, -0.6, -0.6, 0.4, 0.4, 1.4, 1.4, 0.4, 0.4]
3970 for i in xrange(36):
3971 self.assertAlmostEqual(expected1[i],f.getIJ(0,i),12);
3973 self.assertTrue(f.zipCoords());
3975 expected2=[-0.6, -0.6, 1.4, 1.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 1.4, 1.4, -0.6, -0.6, 0.4, 0.4, 1.4, 1.4, 1.4, 1.4, -0.6, -0.6, 0.4, 0.4, 1.4, 1.4, 0.4, 0.4]
3976 for i in xrange(30):
3977 self.assertAlmostEqual(expected2[i],f.getIJ(0,i),12);
3979 self.assertTrue(not f.zipCoords());
3981 for i in xrange(30):
3982 self.assertAlmostEqual(expected2[i],f.getIJ(0,i),12);
3984 self.assertTrue(f.getArray().getInfoOnComponent(0)=="titi");
3985 self.assertTrue(f.getArray().getInfoOnComponent(1)=="tutu");
3988 def testFieldDoubleZipConnectivity1(self):
3989 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
3990 m2=MEDCouplingDataForTest.build2DTargetMesh_1();
3992 m3_1=m2.buildPartOfMySelf(cells1,True);
3994 m4=MEDCouplingDataForTest.build2DSourceMesh_1();
3995 m5=MEDCouplingUMesh.MergeUMeshes(m1,m3);
3996 m6=MEDCouplingUMesh.MergeUMeshes(m5,m4);
3998 self.assertEqual(10,m6.getNumberOfCells());
3999 self.assertEqual(22,m6.getNumberOfNodes());
4000 arr,areNodesMerged,newNbOfNodes=m6.mergeNodes(1e-13);
4001 self.assertEqual(9,m6.getNumberOfNodes());
4002 f=m6.fillFromAnalytic(ON_CELLS,2,"x");
4003 f2=m6.fillFromAnalytic(ON_NODES,2,"x");
4004 self.assertEqual(10,f.getNumberOfTuples());
4005 self.assertEqual(2,f.getNumberOfComponents());
4006 expected1=[-0.05, -0.05, 0.3666666666666667, 0.3666666666666667, 0.53333333333333321, 0.53333333333333321,
4007 -0.05, -0.05, 0.45, 0.45, 0.53333333333333321, 0.53333333333333321, -0.05, -0.05, 0.45, 0.45,
4008 0.36666666666666659, 0.36666666666666659, 0.033333333333333326, 0.033333333333333326];
4009 for i in xrange(20):
4010 self.assertAlmostEqual(expected1[i],f.getIJ(0,i),12);
4012 f.getArray().setInfoOnComponent(0,"titi");
4013 f.getArray().setInfoOnComponent(1,"tutu");
4015 self.assertTrue(f.zipConnectivity(0));
4016 expected2=[-0.05, -0.05, 0.3666666666666667, 0.3666666666666667, 0.53333333333333321, 0.53333333333333321,
4017 -0.05, -0.05, 0.45, 0.45, 0.36666666666666659, 0.36666666666666659, 0.033333333333333326, 0.033333333333333326];
4018 self.assertEqual(7,f.getNumberOfTuples());
4019 self.assertEqual(2,f.getNumberOfComponents());
4020 for i in xrange(14):
4021 self.assertAlmostEqual(expected2[i],f.getIJ(0,i),12);
4023 self.assertTrue(f.getArray().getInfoOnComponent(0)=="titi");
4024 self.assertTrue(f.getArray().getInfoOnComponent(1)=="tutu");
4025 self.assertTrue(not f.zipConnectivity(0));
4027 expected3=[-0.3, -0.3, 0.2, 0.2, 0.7, 0.7, -0.3, -0.3, 0.2, 0.2, 0.7, 0.7,
4028 -0.3, -0.3, 0.2, 0.2, 0.7, 0.7];
4029 self.assertEqual(9,f2.getNumberOfTuples());
4030 self.assertEqual(2,f2.getNumberOfComponents());
4031 for i in xrange(18):
4032 self.assertAlmostEqual(expected3[i],f2.getIJ(0,i),12);
4034 self.assertTrue(f2.zipConnectivity(0));
4035 self.assertEqual(9,f2.getNumberOfTuples());
4036 self.assertEqual(2,f2.getNumberOfComponents());
4037 for i in xrange(18):
4038 self.assertAlmostEqual(expected3[i],f2.getIJ(0,i),12);
4042 def testDaDoubleRenumber1(self):
4043 a=DataArrayDouble.New();
4044 arr1=[1.1,11.1,2.1,12.1,3.1,13.1,4.1,14.1,5.1,15.1,6.1,16.1,7.1,17.1]
4045 a.setValues(arr1,7,2);
4046 a.setInfoOnComponent(0,"toto");
4047 a.setInfoOnComponent(1,"tata");
4049 arr2=[3,1,0,6,5,4,2]
4051 self.assertEqual(7,b.getNumberOfTuples());
4052 self.assertEqual(2,b.getNumberOfComponents());
4053 self.assertTrue(b.getInfoOnComponent(0)=="toto");
4054 self.assertTrue(b.getInfoOnComponent(1)=="tata");
4055 expected1=[3.1, 13.1, 2.1, 12.1, 7.1, 17.1, 1.1, 11.1, 6.1, 16.1, 5.1, 15.1, 4.1, 14.1]
4056 for i in xrange(14):
4057 self.assertAlmostEqual(expected1[i],b.getIJ(0,i),14);
4060 c=DataArrayInt.New();
4061 arr3=[1,11,2,12,3,13,4,14,5,15,6,16,7,17]
4062 c.setValues(arr3,7,2);
4063 c.setInfoOnComponent(0,"toto");
4064 c.setInfoOnComponent(1,"tata");
4066 self.assertEqual(7,d.getNumberOfTuples());
4067 self.assertEqual(2,d.getNumberOfComponents());
4068 self.assertTrue(d.getInfoOnComponent(0)=="toto");
4069 self.assertTrue(d.getInfoOnComponent(1)=="tata");
4070 expected2=[3, 13, 2, 12, 7, 17, 1, 11, 6, 16, 5, 15, 4, 14]
4071 for i in xrange(14):
4072 self.assertEqual(expected2[i],d.getIJ(0,i));
4076 def testDaDoubleRenumberAndReduce1(self):
4077 a=DataArrayDouble.New();
4078 arr1=[1.1,11.1,2.1,12.1,3.1,13.1,4.1,14.1,5.1,15.1,6.1,16.1,7.1,17.1]
4079 a.setValues(arr1,7,2);
4080 a.setInfoOnComponent(0,"toto");
4081 a.setInfoOnComponent(1,"tata");
4083 arr2=[2,-1,1,-1,0,4,3]
4084 b=a.renumberAndReduce(arr2,5);
4085 self.assertEqual(5,b.getNumberOfTuples());
4086 self.assertEqual(2,b.getNumberOfComponents());
4087 self.assertTrue(b.getInfoOnComponent(0)=="toto");
4088 self.assertTrue(b.getInfoOnComponent(1)=="tata");
4089 expected1=[5.1,15.1,3.1,13.1,1.1,11.1,7.1,17.1,6.1,16.1]
4090 for i in xrange(10):
4091 self.assertAlmostEqual(expected1[i],b.getIJ(0,i),14);
4094 c=DataArrayInt.New();
4095 arr3=[1,11,2,12,3,13,4,14,5,15,6,16,7,17]
4096 c.setValues(arr3,7,2);
4097 c.setInfoOnComponent(0,"toto");
4098 c.setInfoOnComponent(1,"tata");
4099 d=c.renumberAndReduce(arr2,5);
4100 self.assertEqual(5,d.getNumberOfTuples());
4101 self.assertEqual(2,d.getNumberOfComponents());
4102 self.assertTrue(d.getInfoOnComponent(0)=="toto");
4103 self.assertTrue(d.getInfoOnComponent(1)=="tata");
4104 expected2=[5,15,3,13,1,11,7,17,6,16]
4105 for i in xrange(10):
4106 self.assertEqual(expected2[i],d.getIJ(0,i));
4110 def testDaDoubleRenumberInPlace1(self):
4111 a=DataArrayDouble.New();
4112 arr1=[1.1,11.1,2.1,12.1,3.1,13.1,4.1,14.1,5.1,15.1,6.1,16.1,7.1,17.1]
4113 a.setValues(arr1,7,2);
4115 arr2=[3,1,0,6,5,4,2]
4116 a.renumberInPlace(arr2);
4117 self.assertEqual(7,a.getNumberOfTuples());
4118 self.assertEqual(2,a.getNumberOfComponents());
4119 expected1=[3.1, 13.1, 2.1, 12.1, 7.1, 17.1, 1.1, 11.1, 6.1, 16.1, 5.1, 15.1, 4.1, 14.1]
4120 for i in xrange(14):
4121 self.assertAlmostEqual(expected1[i],a.getIJ(0,i),14);
4124 c=DataArrayInt.New();
4125 arr3=[1,11,2,12,3,13,4,14,5,15,6,16,7,17]
4126 c.setValues(arr3,7,2);
4127 c.renumberInPlace(arr2);
4128 self.assertEqual(7,c.getNumberOfTuples());
4129 self.assertEqual(2,c.getNumberOfComponents());
4130 expected2=[3, 13, 2, 12, 7, 17, 1, 11, 6, 16, 5, 15, 4, 14]
4131 for i in xrange(14):
4132 self.assertEqual(expected2[i],c.getIJ(0,i));
4136 def testDaDoubleRenumberR1(self):
4137 a=DataArrayDouble.New();
4138 arr1=[1.1,11.1,2.1,12.1,3.1,13.1,4.1,14.1,5.1,15.1,6.1,16.1,7.1,17.1]
4139 a.setValues(arr1,7,2);
4140 a.setInfoOnComponent(0,"toto");
4141 a.setInfoOnComponent(1,"tata");
4143 arr2=[3,1,0,6,5,4,2]
4144 b=a.renumberR(arr2);
4145 self.assertEqual(7,b.getNumberOfTuples());
4146 self.assertEqual(2,b.getNumberOfComponents());
4147 self.assertTrue(b.getInfoOnComponent(0)=="toto");
4148 self.assertTrue(b.getInfoOnComponent(1)=="tata");
4149 expected1=[4.1, 14.1, 2.1, 12.1, 1.1, 11.1, 7.1, 17.1, 6.1, 16.1, 5.1, 15.1, 3.1, 13.1]
4150 for i in xrange(14):
4151 self.assertAlmostEqual(expected1[i],b.getIJ(0,i),14);
4154 c=DataArrayInt.New();
4155 arr3=[1,11,2,12,3,13,4,14,5,15,6,16,7,17]
4156 c.setValues(arr3,7,2);
4157 c.setInfoOnComponent(0,"toto");
4158 c.setInfoOnComponent(1,"tata");
4159 d=c.renumberR(arr2);
4160 self.assertEqual(7,d.getNumberOfTuples());
4161 self.assertEqual(2,d.getNumberOfComponents());
4162 self.assertTrue(d.getInfoOnComponent(0)=="toto");
4163 self.assertTrue(d.getInfoOnComponent(1)=="tata");
4164 expected2=[4, 14, 2, 12, 1, 11, 7, 17, 6, 16, 5, 15, 3, 13]
4165 for i in xrange(14):
4166 self.assertEqual(expected2[i],d.getIJ(0,i));
4170 def testDaDoubleRenumberInPlaceR1(self):
4171 a=DataArrayDouble.New();
4172 arr1=[1.1,11.1,2.1,12.1,3.1,13.1,4.1,14.1,5.1,15.1,6.1,16.1,7.1,17.1]
4173 a.setValues(arr1,7,2);
4175 arr2=[3,1,0,6,5,4,2]
4176 a.renumberInPlaceR(arr2);
4177 self.assertEqual(7,a.getNumberOfTuples());
4178 self.assertEqual(2,a.getNumberOfComponents());
4179 expected1=[4.1, 14.1, 2.1, 12.1, 1.1, 11.1, 7.1, 17.1, 6.1, 16.1, 5.1, 15.1, 3.1, 13.1]
4180 for i in xrange(14):
4181 self.assertAlmostEqual(expected1[i],a.getIJ(0,i),14);
4184 c=DataArrayInt.New();
4185 arr3=[1,11,2,12,3,13,4,14,5,15,6,16,7,17]
4186 c.setValues(arr3,7,2);
4187 c.renumberInPlaceR(arr2);
4188 self.assertEqual(7,c.getNumberOfTuples());
4189 self.assertEqual(2,c.getNumberOfComponents());
4190 expected2=[4, 14, 2, 12, 1, 11, 7, 17, 6, 16, 5, 15, 3, 13]
4191 for i in xrange(14):
4192 self.assertEqual(expected2[i],c.getIJ(0,i));
4196 def testDaDoubleSelectByTupleId1(self):
4197 a=DataArrayDouble.New();
4198 arr1=[1.1,11.1,2.1,12.1,3.1,13.1,4.1,14.1,5.1,15.1,6.1,16.1,7.1,17.1]
4199 a.setValues(arr1,7,2);
4200 a.setInfoOnComponent(0,"toto");
4201 a.setInfoOnComponent(1,"tata");
4204 b=a.selectByTupleId(arr2);
4205 self.assertEqual(5,b.getNumberOfTuples());
4206 self.assertEqual(2,b.getNumberOfComponents());
4207 self.assertTrue(b.getInfoOnComponent(0)=="toto");
4208 self.assertTrue(b.getInfoOnComponent(1)=="tata");
4209 expected1=[5.1,15.1,3.1,13.1,1.1,11.1,7.1,17.1,6.1,16.1]
4210 for i in xrange(10):
4211 self.assertAlmostEqual(expected1[i],b.getIJ(0,i),14);
4214 c=DataArrayInt.New();
4215 arr3=[1,11,2,12,3,13,4,14,5,15,6,16,7,17]
4216 c.setValues(arr3,7,2);
4217 c.setInfoOnComponent(0,"toto");
4218 c.setInfoOnComponent(1,"tata");
4219 d=c.selectByTupleId(arr2);
4220 self.assertEqual(5,d.getNumberOfTuples());
4221 self.assertEqual(2,d.getNumberOfComponents());
4222 self.assertTrue(d.getInfoOnComponent(0)=="toto");
4223 self.assertTrue(d.getInfoOnComponent(1)=="tata");
4224 expected2=[5,15,3,13,1,11,7,17,6,16]
4225 for i in xrange(10):
4226 self.assertEqual(expected2[i],d.getIJ(0,i));
4230 def testDaDoubleGetMinMaxValues1(self):
4231 a=DataArrayDouble.New();
4232 arr1=[2.34,4.56,-6.77,4.55,4.56,2.24,2.34,1.02,4.56]
4233 a.setValues(arr1,9,1);
4234 m,where=a.getMaxValue();
4235 self.assertEqual(1,where);
4236 self.assertAlmostEqual(4.56,m,12);
4237 m,ws=a.getMaxValue2();
4238 self.assertAlmostEqual(4.56,m,12);
4239 self.assertEqual(3,ws.getNumberOfTuples());
4240 self.assertEqual(1,ws.getNumberOfComponents());
4243 self.assertEqual(expected1[i],ws.getIJ(i,0));
4245 a=DataArrayDouble.New();
4246 arr2=[-2.34,-4.56,6.77,-4.55,-4.56,-2.24,-2.34,-1.02,-4.56]
4247 a.setValues(arr2,9,1);
4248 m,where=a.getMinValue();
4249 self.assertEqual(1,where);
4250 self.assertAlmostEqual(-4.56,m,12);
4251 m,ws=a.getMinValue2();
4252 self.assertAlmostEqual(-4.56,m,12);
4253 self.assertEqual(3,ws.getNumberOfTuples());
4254 self.assertEqual(1,ws.getNumberOfComponents());
4256 self.assertEqual(expected1[i],ws.getIJ(i,0));
4260 def testFieldDoubleGetMinMaxValues2(self):
4261 m2,m1=MEDCouplingDataForTest.build3DExtrudedUMesh_1();
4262 self.assertEqual(18,m2.getNumberOfCells());
4263 arr1=[8.71,4.53,-12.41,8.71,-8.71,8.7099,4.55,8.71,5.55,6.77,-1e-200,4.55,8.7099,0.,1.23,0.,2.22,8.71]
4264 f=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
4265 a=DataArrayDouble.New();
4266 a.setValues(arr1,18,1);
4272 self.assertAlmostEqual(8.71,m,12);
4273 m,ws=f.getMaxValue2();
4274 self.assertAlmostEqual(8.71,m,12);
4275 self.assertEqual(4,ws.getNumberOfTuples());
4276 self.assertEqual(1,ws.getNumberOfComponents());
4277 expected1=[0,3,7,17]
4279 self.assertEqual(expected1[i],ws.getIJ(i,0));
4282 arr2=[-8.71,-4.53,12.41,-8.71,8.71,-8.7099,-4.55,-8.71,-5.55,-6.77,1e-200,-4.55,-8.7099,0.,-1.23,0.,-2.22,-8.71]
4283 a.setValues(arr2,18,1);
4286 self.assertAlmostEqual(-8.71,m,12);
4287 m,ws=f.getMinValue2();
4288 self.assertAlmostEqual(-8.71,m,12);
4289 self.assertEqual(4,ws.getNumberOfTuples());
4290 self.assertEqual(1,ws.getNumberOfComponents());
4292 self.assertEqual(expected1[i],ws.getIJ(i,0));
4296 def testBuildUnstructuredCMesh1(self):
4297 m=MEDCouplingCMesh.New();
4298 da=DataArrayDouble.New();
4299 discX=[2.3,3.4,5.8,10.2]
4300 discY=[12.3,23.4,45.8]
4301 discZ=[-0.7,1.2,1.25,2.13,2.67]
4302 da.setValues(discX,4,1);
4303 m.setCoordsAt(0,da);
4305 self.assertEqual(0,m.getCellContainingPoint([2.4],1e-12));
4306 self.assertEqual(1,m.getCellContainingPoint([3.7],1e-12));
4307 self.assertEqual(2,m.getCellContainingPoint([5.9],1e-12));
4308 self.assertEqual(-1,m.getCellContainingPoint([10.3],1e-12));
4309 self.assertEqual(-1,m.getCellContainingPoint([1.3],1e-12));
4311 m2=m.buildUnstructured();
4312 m2.checkCoherency();
4313 f1=m.getMeasureField(False);
4314 f2=m2.getMeasureField(False);
4315 self.assertTrue(isinstance(f1.getMesh(),MEDCouplingCMesh))
4316 self.assertEqual(f1.getNumberOfTuples(),3);
4317 self.assertEqual(f2.getNumberOfTuples(),3);
4318 self.assertEqual(1,m2.getMeshDimension());
4319 self.assertEqual(1,m2.getSpaceDimension());
4321 self.assertAlmostEqual(f1.getIJ(i,0),f2.getIJ(i,0),10);
4323 da=DataArrayDouble.New();
4324 da.setValues(discY,3,1);
4325 m.setCoordsAt(1,da);
4327 m2=m.buildUnstructured();
4328 m2.checkCoherency();
4329 f1=m.getMeasureField(False);
4330 f2=m2.getMeasureField(False);
4331 self.assertEqual(f1.getNumberOfTuples(),6);
4332 self.assertEqual(f2.getNumberOfTuples(),6);
4333 self.assertEqual(2,m2.getMeshDimension());
4334 self.assertEqual(2,m2.getSpaceDimension());
4336 self.assertAlmostEqual(f1.getIJ(i,0),f2.getIJ(i,0),10);
4339 da=DataArrayDouble.New();
4340 da.setValues(discZ,5,1);
4341 m.setCoordsAt(2,da);
4342 m2=m.buildUnstructured();
4343 m2.checkCoherency();
4344 f1=m.getMeasureField(False);
4345 f2=m2.getMeasureField(False);
4346 self.assertEqual(f1.getNumberOfTuples(),24);
4347 self.assertEqual(f2.getNumberOfTuples(),24);
4348 self.assertEqual(3,m2.getMeshDimension());
4349 self.assertEqual(3,m2.getSpaceDimension());
4350 for i in xrange(24):
4351 self.assertAlmostEqual(f1.getIJ(i,0),f2.getIJ(i,0),10);
4355 self.assertEqual(16,m.getCellContainingPoint(pos1,1e-12));
4357 elems=m2.getCellsInBoundingBox([3.5,6.,12.2,25.,0.,1.5],1e-7)
4358 self.assertEqual([1, 2, 4, 5, 7, 8, 10, 11, 13, 14, 16, 17],elems.getValues())
4362 m3=m.buildUnstructured();
4364 self.assertTrue(m3.isEqual(m2,1e-12));
4367 def testDataArrayIntInvertO2NNO21(self):
4369 da=DataArrayInt.New();
4370 da.setValues(arr1,6,1);
4371 da2=da.invertArrayO2N2N2O(6);
4372 self.assertEqual(6,da2.getNumberOfTuples());
4373 self.assertEqual(1,da2.getNumberOfComponents());
4374 expected1=[1,3,0,5,2,4]
4376 self.assertEqual(expected1[i],da2.getIJ(i,0));
4378 da3=da2.invertArrayN2O2O2N(6);
4380 self.assertEqual(arr1[i],da3.getIJ(i,0));
4383 arr2=[3,-1,5,4,-1,0,-1,1,2,-1]
4384 da=DataArrayInt.New();
4385 da.setValues(arr2,10,1);
4386 da2=da.invertArrayO2N2N2O(6);
4387 self.assertEqual(6,da2.getNumberOfTuples());
4388 self.assertEqual(1,da2.getNumberOfComponents());
4389 expected2=[5,7,8,0,3,2]
4391 self.assertEqual(expected2[i],da2.getIJ(i,0));
4393 da3=da2.invertArrayN2O2O2N(10);
4394 for i in xrange(10):
4395 self.assertEqual(arr2[i],da3.getIJ(i,0));
4399 def testKeepSetSelectedComponent1(self):
4400 arr1=[1.,2.,3.,4., 11.,12.,13.,14., 21.,22.,23.,24., 31.,32.,33.,34., 41.,42.,43.,44.]
4401 a1=DataArrayDouble.New();
4402 a1.setValues(arr1,5,4);
4403 expp=[21.,22.,23.,24.]
4404 self.assertEqual(4,len(a1.getTuple(2)));
4406 self.assertAlmostEqual(expp[i],a1.getTuple(2)[i],12)
4408 a1.setInfoOnComponent(0,"aaaa");
4409 a1.setInfoOnComponent(1,"bbbb");
4410 a1.setInfoOnComponent(2,"cccc");
4411 a1.setInfoOnComponent(3,"dddd");
4413 a2=a1.keepSelectedComponents(arr2V);
4414 self.assertEqual(6,a2.getNumberOfComponents());
4415 self.assertEqual(5,a2.getNumberOfTuples());
4416 self.assertTrue(a2.getInfoOnComponent(0)=="bbbb");
4417 self.assertTrue(a2.getInfoOnComponent(1)=="cccc");
4418 self.assertTrue(a2.getInfoOnComponent(2)=="bbbb");
4419 self.assertTrue(a2.getInfoOnComponent(3)=="cccc");
4420 self.assertTrue(a2.getInfoOnComponent(4)=="aaaa");
4421 self.assertTrue(a2.getInfoOnComponent(5)=="aaaa");
4422 expected1=[2.,3.,2.,3.,1.,1., 12.,13.,12.,13.,11.,11., 22.,23.,22.,23.,21.,21., 32.,33.,32.,33.,31.,31., 42.,43.,42.,43.,41.,41.]
4423 for i in xrange(30):
4424 self.assertAlmostEqual(expected1[i],a2.getIJ(0,i),14);
4426 a3=a1.convertToIntArr();
4427 self.assertEqual([21,22,23,24],a3.getTuple(2))
4428 a4=a3.keepSelectedComponents(arr2V);
4429 self.assertEqual(6,a4.getNumberOfComponents());
4430 self.assertEqual(5,a4.getNumberOfTuples());
4431 self.assertTrue(a4.getInfoOnComponent(0)=="bbbb");
4432 self.assertTrue(a4.getInfoOnComponent(1)=="cccc");
4433 self.assertTrue(a4.getInfoOnComponent(2)=="bbbb");
4434 self.assertTrue(a4.getInfoOnComponent(3)=="cccc");
4435 self.assertTrue(a4.getInfoOnComponent(4)=="aaaa");
4436 self.assertTrue(a4.getInfoOnComponent(5)=="aaaa");
4437 for i in xrange(30):
4438 self.assertEqual(int(expected1[i]),a4.getIJ(0,i));
4440 # setSelectedComponents
4442 a5=a1.keepSelectedComponents(arr3V);
4443 a5.setInfoOnComponent(0,"eeee");
4444 a5.setInfoOnComponent(1,"ffff");
4446 a2.setSelectedComponents(a5,arr4V);
4447 self.assertEqual(6,a2.getNumberOfComponents());
4448 self.assertEqual(5,a2.getNumberOfTuples());
4449 self.assertTrue(a2.getInfoOnComponent(0)=="bbbb");
4450 self.assertTrue(a2.getInfoOnComponent(1)=="eeee");
4451 self.assertTrue(a2.getInfoOnComponent(2)=="ffff");
4452 self.assertTrue(a2.getInfoOnComponent(3)=="cccc");
4453 self.assertTrue(a2.getInfoOnComponent(4)=="aaaa");
4454 self.assertTrue(a2.getInfoOnComponent(5)=="aaaa");
4455 expected2=[2.,4.,3.,3.,1.,1., 12.,14.,13.,13.,11.,11., 22.,24.,23.,23.,21.,21., 32.,34.,33.,33.,31.,31., 42.,44.,43.,43.,41.,41.]
4456 for i in xrange(30):
4457 self.assertAlmostEqual(expected2[i],a2.getIJ(0,i),14);
4459 a6=a5.convertToIntArr();
4460 a6.setInfoOnComponent(0,"eeee");
4461 a6.setInfoOnComponent(1,"ffff");
4462 a4.setSelectedComponents(a6,arr4V);
4463 self.assertEqual(6,a4.getNumberOfComponents());
4464 self.assertEqual(5,a4.getNumberOfTuples());
4465 self.assertTrue(a4.getInfoOnComponent(0)=="bbbb");
4466 self.assertTrue(a4.getInfoOnComponent(1)=="eeee");
4467 self.assertTrue(a4.getInfoOnComponent(2)=="ffff");
4468 self.assertTrue(a4.getInfoOnComponent(3)=="cccc");
4469 self.assertTrue(a4.getInfoOnComponent(4)=="aaaa");
4470 self.assertTrue(a4.getInfoOnComponent(5)=="aaaa");
4471 for i in xrange(30):
4472 self.assertEqual(int(expected2[i]),a4.getIJ(0,i));
4478 self.assertRaises(InterpKernelException,a2.keepSelectedComponents,arr5V);
4479 self.assertRaises(InterpKernelException,a2.keepSelectedComponents,arr6V);
4480 self.assertRaises(InterpKernelException,a2.setSelectedComponents,a1,arr7V);
4482 self.assertRaises(InterpKernelException,a2.setSelectedComponents,a1,arr7V);
4486 def testKeepSetSelectedComponent2(self):
4487 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
4488 arr1=[1.,2.,3.,4., 11.,12.,13.,14., 21.,22.,23.,24., 31.,32.,33.,34., 41.,42.,43.,44.]
4489 a1=DataArrayDouble.New();
4490 a1.setValues(arr1,5,4);
4491 a1.setInfoOnComponent(0,"aaaa");
4492 a1.setInfoOnComponent(1,"bbbb");
4493 a1.setInfoOnComponent(2,"cccc");
4494 a1.setInfoOnComponent(3,"dddd");
4495 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
4496 f1.setTime(2.3,4,5);
4500 f1.checkCoherency();
4503 f2=f1.keepSelectedComponents(arr2V);
4504 self.assertTrue(f2.getTimeDiscretization()==ONE_TIME);
4505 t,dt,it=f2.getTime()
4506 self.assertAlmostEqual(2.3,t,13);
4507 self.assertEqual(4,dt);
4508 self.assertEqual(5,it);
4509 f2.checkCoherency();
4510 self.assertEqual(6,f2.getNumberOfComponents());
4511 self.assertEqual(5,f2.getNumberOfTuples());
4512 self.assertTrue(f2.getArray().getInfoOnComponent(0)=="bbbb");
4513 self.assertTrue(f2.getArray().getInfoOnComponent(1)=="cccc");
4514 self.assertTrue(f2.getArray().getInfoOnComponent(2)=="bbbb");
4515 self.assertTrue(f2.getArray().getInfoOnComponent(3)=="cccc");
4516 self.assertTrue(f2.getArray().getInfoOnComponent(4)=="aaaa");
4517 self.assertTrue(f2.getArray().getInfoOnComponent(5)=="aaaa");
4518 expected1=[2.,3.,2.,3.,1.,1., 12.,13.,12.,13.,11.,11., 22.,23.,22.,23.,21.,21., 32.,33.,32.,33.,31.,31., 42.,43.,42.,43.,41.,41.]
4519 for i in xrange(30):
4520 self.assertAlmostEqual(expected1[i],f2.getIJ(0,i),14);
4522 #setSelectedComponents
4524 f5=f1.keepSelectedComponents(arr3V);
4525 f5.setTime(6.7,8,9);
4526 f5.getArray().setInfoOnComponent(0,"eeee");
4527 f5.getArray().setInfoOnComponent(1,"ffff");
4528 f5.checkCoherency();
4530 f2.setSelectedComponents(f5,arr4V);
4531 self.assertEqual(6,f2.getNumberOfComponents());
4532 self.assertEqual(5,f2.getNumberOfTuples());
4533 f2.checkCoherency();
4534 t,dt,it=f2.getTime()
4535 self.assertAlmostEqual(2.3,t,13);
4536 self.assertEqual(4,dt);
4537 self.assertEqual(5,it);
4538 self.assertTrue(f2.getArray().getInfoOnComponent(0)=="bbbb");
4539 self.assertTrue(f2.getArray().getInfoOnComponent(1)=="eeee");
4540 self.assertTrue(f2.getArray().getInfoOnComponent(2)=="ffff");
4541 self.assertTrue(f2.getArray().getInfoOnComponent(3)=="cccc");
4542 self.assertTrue(f2.getArray().getInfoOnComponent(4)=="aaaa");
4543 self.assertTrue(f2.getArray().getInfoOnComponent(5)=="aaaa");
4544 expected2=[2.,4.,3.,3.,1.,1., 12.,14.,13.,13.,11.,11., 22.,24.,23.,23.,21.,21., 32.,34.,33.,33.,31.,31., 42.,44.,43.,43.,41.,41.]
4545 for i in xrange(30):
4546 self.assertAlmostEqual(expected2[i],f2.getIJ(0,i),14);
4551 def testElementaryDAThrowAndSpecialCases(self):
4552 da=DataArrayInt.New();
4553 self.assertRaises(InterpKernelException, da.checkAllocated);
4554 self.assertRaises(InterpKernelException, da.fillWithValue, 1);
4555 self.assertRaises(InterpKernelException, da.iota, 1);
4557 da.fillWithValue(11); #11,11,11,11...
4558 da.iota(10); #10,11,12,13...
4560 db=DataArrayInt.New();
4563 dbl2=DataArrayDouble.New();
4565 self.assertRaises(InterpKernelException, dbl2.isUniform, 10., 1e-15);
4566 self.assertRaises(InterpKernelException, dbl2.sort);
4567 self.assertRaises(InterpKernelException, dbl2.reverse);
4568 self.assertRaises(InterpKernelException, dbl2.iota, 10.);
4570 dbl=DataArrayDouble.New();
4571 #DataArrayDouble not allocated yet
4572 self.assertRaises(InterpKernelException, dbl.iota, 10.);
4573 self.assertRaises(InterpKernelException, dbl.isUniform, 10., 1e-15);
4574 self.assertRaises(InterpKernelException, dbl.sort);
4575 self.assertRaises(InterpKernelException, dbl.reverse);
4576 self.assertRaises(InterpKernelException, dbl.fromNoInterlace);
4577 self.assertRaises(InterpKernelException, dbl.toNoInterlace);
4581 self.assertTrue(not dbl.isUniform(10.,1e-15));
4583 self.assertTrue(dbl.isMonotonic(True, .99));
4584 self.assertTrue(dbl.isMonotonic(True, -.99));
4585 self.assertTrue(not dbl.isMonotonic(True, 1.1));
4586 self.assertTrue(not dbl.isMonotonic(True, -1.1));
4588 self.assertTrue(dbl.isMonotonic(False, .99));
4589 self.assertTrue(not dbl.isMonotonic(False, 1.1));
4590 self.assertTrue(not dbl.isMonotonic(False, -1.1));
4592 dc=DataArrayInt.New();
4595 dd=DataArrayDouble.New();
4596 self.assertRaises(InterpKernelException, dd.checkAllocated);
4597 self.assertRaises(InterpKernelException, dd.fillWithValue, 1.);
4598 self.assertRaises(InterpKernelException, dd.iota, 1.);
4599 self.assertTrue(not ((dd.repr().find("No data"))==-1));
4601 dd.alloc(0,1); #Allocated but nbOfElements==0!
4602 self.assertTrue(not ((dd.repr().find("Number of tuples : 0"))==-1));
4603 self.assertTrue(not ((dd.repr().find("Empty Data"))==-1));
4604 dd.fillWithValue(11); #?!...ok
4605 dd.iota(10); #?!...ok
4606 self.assertTrue(dd.isMonotonic(True, 1.)); #nothing is monotonic
4607 self.assertTrue(dd.isMonotonic(False, 1.));
4609 self.assertRaises(InterpKernelException, db.copyStringInfoFrom, da);
4610 self.assertRaises(InterpKernelException, db.copyStringInfoFrom, da);
4612 self.assertRaises(InterpKernelException, da.copyPartOfStringInfoFrom, db, cIds);
4615 self.assertRaises(InterpKernelException, da.copyPartOfStringInfoFrom, db, cIds);
4617 info=["infoOfOneComponent"]*2;
4618 self.assertRaises(InterpKernelException, da.setInfoOnComponents, info);
4619 self.assertRaises(InterpKernelException, da.setInfoOnComponent, 1, info[0]);
4620 db.setInfoOnComponents(info);
4622 self.assertRaises(InterpKernelException, da.getInfoOnComponent, -1);
4623 self.assertRaises(InterpKernelException, da.getInfoOnComponent, 2);
4624 self.assertTrue(db.getInfoOnComponent(1)==db.getInfoOnComponent(0));
4625 self.assertRaises(InterpKernelException, db.getVarOnComponent, -1);
4626 self.assertRaises(InterpKernelException, db.getVarOnComponent, 2);
4627 self.assertRaises(InterpKernelException, db.getUnitOnComponent, -1);
4628 self.assertRaises(InterpKernelException, db.getUnitOnComponent, 2);
4630 self.assertTrue(da.GetVarNameFromInfo("varname unit ")=="varname unit ");
4631 self.assertTrue(da.GetVarNameFromInfo("varname]unit[")=="varname]unit[");
4632 self.assertTrue(da.GetVarNameFromInfo("[unit]")=="");
4633 self.assertTrue(da.GetVarNameFromInfo("varname [unit]")=="varname");
4635 self.assertTrue(da.GetUnitFromInfo("varname unit ")=="");
4636 self.assertTrue(da.GetUnitFromInfo("varname]unit[")=="");
4637 self.assertTrue(da.GetUnitFromInfo("[unit]")=="unit");
4638 self.assertTrue(da.GetUnitFromInfo("varname [unit]")=="unit");
4640 self.assertRaises(InterpKernelException, da.checkNbOfTuplesAndComp, db, "theMessageInThrow");
4641 self.assertRaises(InterpKernelException, da.checkNbOfTuplesAndComp, dc, "theMessageInThrow");
4642 self.assertRaises(InterpKernelException, db.checkNbOfTuplesAndComp, dc, "theMessageInThrow");
4644 self.assertRaises(InterpKernelException, da.checkNbOfTuplesAndComp, 7, 2, "theMessageInThrow");
4645 da.checkNbOfTuplesAndComp(7,1,"theMessageInThrow");
4647 self.assertRaises(InterpKernelException, db.checkNbOfElems, 7*2+1, "theMessageInThrow");
4648 db.checkNbOfElems(7*2,"theMessageInThrow");
4650 self.assertRaises(InterpKernelException, db.GetNumberOfItemGivenBES, 10, 9, 1, "theMessageInThrow");
4651 self.assertRaises(InterpKernelException, db.GetNumberOfItemGivenBES, 0, 1, -1, "theMessageInThrow");
4652 self.assertEqual(10,db.GetNumberOfItemGivenBES(0,10,1,"theMessageInThrow"));
4653 self.assertEqual(5,db.GetNumberOfItemGivenBES(0,10,2,"theMessageInThrow"));
4654 self.assertEqual(6,db.GetNumberOfItemGivenBES(0,11,2,"theMessageInThrow"));
4656 self.assertTrue(not ((da.repr().find("Number of components : 1"))==-1));
4657 self.assertTrue(not ((dd.repr().find("Number of components : 1"))==-1));
4658 self.assertTrue(not ((dbl.repr().find("Number of components : 1"))==-1));
4660 self.assertTrue(not ((da.reprZip().find("Number of components : 1"))==-1));
4661 self.assertTrue(not ((dd.reprZip().find("Number of components : 1"))==-1));
4662 self.assertTrue(not ((dbl.reprZip().find("Number of components : 1"))==-1));
4664 self.assertRaises(InterpKernelException, dbl.selectByTupleId2, 0, 1, -1);
4665 self.assertRaises(InterpKernelException, dbl.substr, -1, 1);
4666 self.assertRaises(InterpKernelException, dbl.substr, 8, 1);
4667 self.assertRaises(InterpKernelException, dbl.substr, 0, 8);
4668 self.assertRaises(InterpKernelException, dbl.meldWith, dd);
4670 self.assertRaises(InterpKernelException, dbl.setPartOfValuesAdv, dbl2, da); #dbl dbl2 not have the same number of components
4671 self.assertRaises(InterpKernelException, dbl.setPartOfValuesAdv, dd, da); #da tuple selector DataArrayInt instance not have exactly 2 components
4673 dbl3=DataArrayDouble.New();
4675 dbl3.fillWithValue(11.);
4676 #bad number of components
4677 self.assertRaises(InterpKernelException, dbl3.getMaxValue);
4678 self.assertRaises(InterpKernelException, dd.getMaxValue);
4679 self.assertRaises(InterpKernelException, dbl3.getMinValue);
4680 self.assertRaises(InterpKernelException, dd.getMinValue);
4681 self.assertRaises(InterpKernelException, dbl3.getAverageValue);
4682 self.assertRaises(InterpKernelException, dd.getAverageValue);
4683 self.assertRaises(InterpKernelException, dd.accumulate, 100);
4684 self.assertRaises(InterpKernelException, dbl.fromPolarToCart);
4685 self.assertRaises(InterpKernelException, dbl3.fromCylToCart);
4686 self.assertRaises(InterpKernelException, dbl3.fromSpherToCart);
4687 self.assertRaises(InterpKernelException, dbl3.doublyContractedProduct);
4688 self.assertRaises(InterpKernelException, dbl3.determinant);
4689 self.assertRaises(InterpKernelException, dbl3.eigenValues);
4690 self.assertRaises(InterpKernelException, dbl3.eigenVectors);
4691 self.assertRaises(InterpKernelException, dbl3.inverse);
4692 self.assertRaises(InterpKernelException, dbl3.trace);
4693 self.assertRaises(InterpKernelException, dbl3.deviator);
4695 dbl3.setIJ(5,1,12.);
4696 self.assertTrue(dbl3.getMaxValueInArray()==12.);
4697 self.assertTrue(dbl3.getMinValueInArray()==11.);
4699 db.fillWithValue(100); #bad Ids
4700 self.assertRaises(InterpKernelException, dbl3.setPartOfValuesAdv, dbl2, db);
4701 db.fillWithValue(-1); #bad Ids
4702 self.assertRaises(InterpKernelException, dbl3.setPartOfValuesAdv, dbl2, db);
4703 db.fillWithValue(6); #bad Ids for dbl3
4704 self.assertRaises(InterpKernelException, dbl3.setPartOfValuesAdv, dbl2, db);
4706 dbl3.checkNoNullValues();
4708 self.assertRaises(InterpKernelException, dbl3.checkNoNullValues);
4709 self.assertRaises(InterpKernelException, dbl3.applyInv, 1.); #div by zero
4710 self.assertRaises(InterpKernelException, dbl2.getIdsInRange, 1., 2.);
4712 self.assertRaises(InterpKernelException, DataArrayDouble_Aggregate, a);
4713 self.assertRaises(InterpKernelException, DataArrayDouble_Meld, a);
4715 a=[dbl2,dbl]; #Nb of components mismatch
4716 self.assertRaises(InterpKernelException, DataArrayDouble_Aggregate, a);
4718 self.assertRaises(InterpKernelException, DataArrayDouble_Dot, dbl2, dbl);
4720 self.assertRaises(InterpKernelException, DataArrayDouble_CrossProduct, dbl2, dbl); #Nb of components mismatch
4721 self.assertRaises(InterpKernelException, DataArrayDouble_CrossProduct, dbl2, dbl2); #Nb of components must be equal to 3
4722 dbl4=DataArrayDouble.New();
4724 dbl5=DataArrayDouble.New();
4726 self.assertRaises(InterpKernelException, DataArrayDouble_CrossProduct, dbl4, dbl5); #Nb of tuples mismatch
4728 a[0]=dbl4; #Nb of tuple mismatch
4729 a[1]=dbl5; #Nb of tuple mismatch
4730 self.assertRaises(InterpKernelException, DataArrayDouble_Meld, a);
4731 self.assertRaises(InterpKernelException, DataArrayDouble_Dot, dbl4, dbl5);
4734 def testDAIGetIdsEqual1(self):
4735 tab1=[5,-2,-4,-2,3,2,-2];
4736 da=DataArrayInt.New();
4737 da.setValues(tab1,7,1);
4738 da2=da.getIdsEqual(-2);
4739 self.assertEqual(3,da2.getNumberOfTuples());
4740 self.assertEqual(1,da2.getNumberOfComponents());
4742 self.assertEqual(expected1,da2.getValues());
4745 def testDAIGetIdsEqualList1(self):
4746 tab1=[5,-2,-4,-2,3,2,-2];
4747 da=DataArrayInt.New();
4748 da.setValues(tab1,7,1);
4749 da2=da.getIdsEqualList([3,-2,0]);
4750 self.assertEqual(4,da2.getNumberOfTuples());
4751 self.assertEqual(1,da2.getNumberOfComponents());
4752 expected1=[1,3,4,6];
4753 self.assertEqual(expected1,da2.getValues());
4756 def testDAFromNoInterlace1(self):
4757 tab1=[1,11,21,31,41,2,12,22,32,42,3,13,23,33,43]
4758 da=DataArrayInt.New();
4759 da.setValues(tab1,5,3);
4760 da2=da.fromNoInterlace();
4761 expected1=[1,2,3,11,12,13,21,22,23,31,32,33,41,42,43]
4762 self.assertEqual(5,da2.getNumberOfTuples());
4763 self.assertEqual(3,da2.getNumberOfComponents());# it's not a bug. Avoid to have 1 million components !
4764 self.assertEqual(expected1,da2.getValues());
4765 da3=da.convertToDblArr();
4766 da4=da3.fromNoInterlace();
4767 self.assertEqual(5,da4.getNumberOfTuples());
4768 self.assertEqual(3,da4.getNumberOfComponents());# it's not a bug. Avoid to have 1 million components !
4769 for i in xrange(15):
4770 self.assertAlmostEqual(expected1[i],da4.getIJ(0,i),14);
4774 def testDAToNoInterlace1(self):
4775 tab1=[1,2,3,11,12,13,21,22,23,31,32,33,41,42,43]
4776 da=DataArrayInt.New();
4777 da.setValues(tab1,5,3);
4778 da2=da.toNoInterlace();
4779 expected1=[1,11,21,31,41,2,12,22,32,42,3,13,23,33,43]
4780 self.assertEqual(5,da2.getNumberOfTuples());
4781 self.assertEqual(3,da2.getNumberOfComponents());# it's not a bug. Avoid to have 1 million components !
4782 self.assertEqual(expected1,da2.getValues());
4783 da3=da.convertToDblArr();
4784 da4=da3.toNoInterlace();
4785 self.assertEqual(5,da4.getNumberOfTuples());
4786 self.assertEqual(3,da4.getNumberOfComponents());# it's not a bug. Avoid to have 1 million components !
4787 for i in xrange(15):
4788 self.assertAlmostEqual(expected1[i],da4.getIJ(0,i),14);
4792 def testDAIsUniform1(self):
4794 da=DataArrayInt.New();
4795 da.setValues(tab1,5,1);
4796 self.assertTrue(da.isUniform(1));
4798 self.assertTrue(not da.isUniform(1));
4800 self.assertTrue(da.isUniform(1));
4801 da2=da.convertToDblArr();
4802 self.assertTrue(da2.isUniform(1.,1.e-12));
4803 da2.setIJ(1,0,1.+1.e-13);
4804 self.assertTrue(da2.isUniform(1.,1.e-12));
4805 da2.setIJ(1,0,1.+1.e-11);
4806 self.assertTrue(not da2.isUniform(1.,1.e-12));
4809 def testDADFromPolarToCart1(self):
4810 tab1=[2.,0.2,2.5,0.7]
4811 da=DataArrayDouble.New();
4812 da.setValues(tab1,2,2);
4813 da2=da.fromPolarToCart();
4814 expected1=[1.9601331556824833,0.39733866159012243, 1.9121054682112213,1.6105442180942275]
4816 self.assertAlmostEqual(expected1[i],da2.getIJ(0,i),13);
4820 def testDADFromCylToCart1(self):
4821 tab1=[2.,0.2,4.,2.5,0.7,9.]
4822 da=DataArrayDouble.New();
4823 da.setValues(tab1,2,3);
4824 da2=da.fromCylToCart();
4825 expected1=[1.9601331556824833,0.39733866159012243,4., 1.9121054682112213,1.6105442180942275,9.]
4827 self.assertAlmostEqual(expected1[i],da2.getIJ(0,i),13);
4831 def testDADFromSpherToCart1(self):
4832 tab1=[2.,0.2,0.3,2.5,0.7,0.8]
4833 da=DataArrayDouble.New();
4834 da.setValues(tab1,2,3);
4835 da2=da.fromSpherToCart();
4836 expected1=[0.37959212195737485,0.11742160338765303,1.9601331556824833, 1.1220769624465328,1.1553337045129035,1.9121054682112213]
4838 self.assertAlmostEqual(expected1[i],da2.getIJ(0,i),13);
4842 def testUnPolyze1(self):
4843 elts=[0,1,2,3,4,5,6,7]
4845 mesh=MEDCouplingDataForTest.build3DTargetMesh_1();
4846 mesh.convertToPolyTypes(eltsV);
4848 mesh2=MEDCouplingDataForTest.build3DTargetMesh_1();
4849 mesh.checkCoherency();
4850 self.assertTrue(mesh.isEqual(mesh2,1e-12));
4851 mesh.convertToPolyTypes(eltsV);
4852 self.assertTrue(not mesh.isEqual(mesh2,1e-12));
4853 mesh.getNodalConnectivity().setIJ(0,6,10);
4854 mesh.getNodalConnectivity().setIJ(0,7,9);
4855 mesh.getNodalConnectivity().setIJ(0,8,12);
4856 mesh.getNodalConnectivity().setIJ(0,9,13);
4858 self.assertTrue(mesh.isEqual(mesh2,1e-12));
4859 mesh.convertToPolyTypes(eltsV);
4860 mesh.getNodalConnectivity().setIJ(0,6,12);
4861 mesh.getNodalConnectivity().setIJ(0,7,13);
4862 mesh.getNodalConnectivity().setIJ(0,8,10);
4863 mesh.getNodalConnectivity().setIJ(0,9,9);
4865 self.assertTrue(mesh.isEqual(mesh2,1e-12));
4866 mesh.convertToPolyTypes(eltsV);
4867 mesh.getNodalConnectivity().setIJ(0,6,12);
4868 mesh.getNodalConnectivity().setIJ(0,7,10);
4869 mesh.getNodalConnectivity().setIJ(0,8,13);
4870 mesh.getNodalConnectivity().setIJ(0,9,9);
4872 self.assertTrue(not mesh.isEqual(mesh2,1e-12));
4874 mesh=MEDCouplingDataForTest.build2DTargetMesh_1();
4875 mesh2=MEDCouplingDataForTest.build2DTargetMesh_1();
4877 mesh.convertToPolyTypes(eltsV);
4878 self.assertTrue(not mesh.isEqual(mesh2,1e-12));
4880 self.assertTrue(mesh.isEqual(mesh2,1e-12));
4883 def testConvertDegeneratedCells1(self):
4884 mesh=MEDCouplingDataForTest.build3DTargetMesh_1();
4885 conn=[0,1,3,3,9,10,12,12, 0,1,3,4,9,9,9,9, 1,1,1,1,10,12,9,10, 10,11,12,9,1,1,1,1]
4886 mesh.allocateCells(4);
4887 mesh.insertNextCell(NORM_HEXA8,8,conn[0:8])
4888 mesh.insertNextCell(NORM_HEXA8,8,conn[8:16])
4889 mesh.insertNextCell(NORM_HEXA8,8,conn[16:24])
4890 mesh.insertNextCell(NORM_HEXA8,8,conn[24:32])
4891 mesh.finishInsertingCells();
4892 mesh.checkCoherency();
4893 self.assertEqual(4,mesh.getNumberOfCells());
4894 self.assertEqual(NORM_HEXA8,mesh.getTypeOfCell(0));
4895 self.assertEqual(NORM_HEXA8,mesh.getTypeOfCell(1));
4896 self.assertEqual(NORM_HEXA8,mesh.getTypeOfCell(2));
4897 self.assertEqual(NORM_HEXA8,mesh.getTypeOfCell(3));
4898 f1=mesh.getMeasureField(True);
4899 mesh.convertDegeneratedCells();
4900 mesh.checkCoherency();
4901 f2=mesh.getMeasureField(True);
4902 self.assertEqual(4,mesh.getNumberOfCells());
4903 self.assertEqual(NORM_PENTA6,mesh.getTypeOfCell(0));
4904 self.assertEqual(NORM_PYRA5,mesh.getTypeOfCell(1));
4905 self.assertEqual(NORM_TETRA4,mesh.getTypeOfCell(2));
4906 self.assertEqual(NORM_PYRA5,mesh.getTypeOfCell(3));
4908 self.assertAlmostEqual(f1.getArray().getIJ(0,i),f2.getArray().getIJ(0,i),5);
4912 def testGetNodeIdsNearPoints1(self):
4913 mesh=MEDCouplingDataForTest.build2DTargetMesh_1();
4914 coords=mesh.getCoords();
4915 tmp=DataArrayDouble.New();
4916 vals=[0.2,0.2,0.1,0.2,0.2,0.2]
4917 tmp.setValues(vals,3,2);
4918 tmp2=DataArrayDouble.Aggregate(coords,tmp);
4919 mesh.setCoords(tmp2);
4920 pts=[0.2,0.2,0.1,0.3,-0.3,0.7]
4921 c=mesh.getNodeIdsNearPoint(pts[:2],1e-7);
4922 self.assertEqual([4,9,11],c.getValues());
4923 c,cI=mesh.getNodeIdsNearPoints(pts,3,1e-7);
4924 self.assertEqual([0,3,3,4],cI.getValues());
4925 self.assertEqual([4,9,11,6],c.getValues());
4926 c,cI=mesh.getNodeIdsNearPoints(pts,1e-7);
4927 self.assertEqual([0,3,3,4],cI.getValues());
4928 self.assertEqual([4,9,11,6],c.getValues());
4929 c,cI=mesh.getNodeIdsNearPoints(DataArrayDouble.New(pts,3,2),1e-7);
4930 self.assertEqual([0,3,3,4],cI.getValues());
4931 self.assertEqual([4,9,11,6],c.getValues());
4932 self.assertRaises(InterpKernelException,mesh.getNodeIdsNearPoints,DataArrayDouble.New(pts,2,3),1e-7);
4935 def testFieldCopyTinyAttrFrom1(self):
4936 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
4938 f1.setTimeTolerance(1.e-5);
4939 f1.setDescription("f1Desc");
4940 f1.setTime(1.23,4,5);
4941 f2=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
4943 f2.setDescription("f2Desc");
4944 f2.setTime(6.78,9,10);
4945 f2.setTimeTolerance(4.556e-12);
4947 f1.copyTinyAttrFrom(f2);
4948 self.assertAlmostEqual(4.556e-12,f1.getTimeTolerance(),24);
4949 t,dt,it=f1.getTime()
4950 self.assertAlmostEqual(6.78,t,12);
4951 self.assertEqual(9,dt);
4952 self.assertEqual(10,it);
4953 self.assertTrue(f1.getName()=="f1");#name unchanged
4954 self.assertTrue(f1.getDescription()=="f1Desc");#description unchanged
4956 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
4958 f1.setTimeTolerance(1.e-5);
4959 f1.setDescription("f1Desc");
4960 f2=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
4962 f2.setDescription("f2Desc");
4963 f2.setTimeTolerance(4.556e-12);
4965 f1.copyTinyAttrFrom(f2);
4966 self.assertAlmostEqual(4.556e-12,f1.getTimeTolerance(),24);
4967 self.assertTrue(f1.getName()=="f1");#name unchanged
4968 self.assertTrue(f1.getDescription()=="f1Desc");#description unchanged
4970 f1=MEDCouplingFieldDouble.New(ON_CELLS,CONST_ON_TIME_INTERVAL);
4972 f1.setTimeTolerance(1.e-5);
4973 f1.setDescription("f1Desc");
4974 f1.setTime(1.23,4,5);
4975 f1.setEndTime(5.43,2,1);
4976 f2=MEDCouplingFieldDouble.New(ON_CELLS,CONST_ON_TIME_INTERVAL);
4978 f2.setDescription("f2Desc");
4979 f2.setTimeTolerance(4.556e-12);
4980 f2.setTime(6.78,9,10);
4981 f2.setEndTime(10.98,7,6);
4983 f1.copyTinyAttrFrom(f2);
4984 self.assertAlmostEqual(4.556e-12,f1.getTimeTolerance(),24);
4985 self.assertTrue(f1.getName()=="f1");#name unchanged
4986 self.assertTrue(f1.getDescription()=="f1Desc");#description unchanged
4987 t,dt,it=f1.getTime()
4988 self.assertAlmostEqual(6.78,t,12);
4989 self.assertEqual(9,dt);
4990 self.assertEqual(10,it);
4991 t,dt,it=f1.getEndTime()
4992 self.assertAlmostEqual(10.98,t,12);
4993 self.assertEqual(7,dt);
4994 self.assertEqual(6,it);
4996 f1=MEDCouplingFieldDouble.New(ON_CELLS,LINEAR_TIME);
4998 f1.setTimeTolerance(1.e-5);
4999 f1.setDescription("f1Desc");
5000 f1.setTime(1.23,4,5);
5001 f1.setEndTime(5.43,2,1);
5002 f2=MEDCouplingFieldDouble.New(ON_CELLS,LINEAR_TIME);
5004 f2.setDescription("f2Desc");
5005 f2.setTimeTolerance(4.556e-12);
5006 f2.setTime(6.78,9,10);
5007 f2.setEndTime(10.98,7,6);
5009 f1.copyTinyAttrFrom(f2);
5010 self.assertAlmostEqual(4.556e-12,f1.getTimeTolerance(),24);
5011 self.assertTrue(f1.getName()=="f1");#name unchanged
5012 self.assertTrue(f1.getDescription()=="f1Desc");#description unchanged
5013 t,dt,it=f1.getTime()
5014 self.assertAlmostEqual(6.78,t,12);
5015 self.assertEqual(9,dt);
5016 self.assertEqual(10,it);
5017 t,dt,it=f1.getEndTime()
5018 self.assertAlmostEqual(10.98,t,12);
5019 self.assertEqual(7,dt);
5020 self.assertEqual(6,it);
5023 def testExtrudedMesh5(self):
5025 a=DataArrayDouble.New();
5026 a.setValues(coo1,4,1);
5027 b=MEDCouplingCMesh.New();
5029 c=b.buildUnstructured();
5030 self.assertEqual(1,c.getSpaceDimension());
5031 c.changeSpaceDimension(2);
5033 d=DataArrayDouble.New();
5036 e=MEDCouplingCMesh.New();
5038 f=e.buildUnstructured();
5039 g=f.getCoords().applyFunc(2,"3.5*IVec+x/6*3.14159265359*JVec");
5040 self.assertRaises(InterpKernelException,f.getCoords().applyFunc,2,"3.5*IVec+x/6*3.14159265359*KVec"); # KVec refers to component #2 and there is only 2 components !
5041 h=g.fromPolarToCart();
5043 i=c.buildExtrudedMesh(f,1);
5044 self.assertEqual(52,i.getNumberOfNodes());
5045 tmp,tmp2,tmp3=i.mergeNodes(1e-9);
5046 self.assertTrue(tmp2);
5047 self.assertEqual(37,tmp3);
5048 i.convertDegeneratedCells();
5050 self.assertEqual(36,i.getNumberOfCells());
5051 self.assertEqual(37,i.getNumberOfNodes());
5052 self.assertEqual(12,i.getNumberOfCellsWithType(NORM_TRI3));
5053 self.assertEqual(24,i.getNumberOfCellsWithType(NORM_QUAD4));
5054 expected1=[0.25,0.75,2.0625]
5055 j=i.getMeasureField(True);
5056 for ii in xrange(12):
5058 self.assertAlmostEqual(expected1[k],j.getIJ(0,ii*3+k),10);
5061 expected2=[0.62200846792814113, 0.16666666666681595, 1.4513530918323276, 0.38888888888923495, 2.6293994326053212, 0.7045454545460802, 0.45534180126145435, 0.45534180126150181, 1.0624642029433926, 1.0624642029435025, 1.9248539780597826, 1.9248539780599816, 0.16666666666661334, 0.62200846792815856, 0.38888888888876294, 1.4513530918323678, 0.70454545454522521, 2.629399432605394, -0.16666666666674007, 0.62200846792812436, -0.38888888888906142, 1.4513530918322881, -0.70454545454576778, 2.6293994326052488, -0.45534180126154766, 0.45534180126140844, -1.0624642029436118, 1.0624642029432834, -1.9248539780601803, 1.9248539780595841, -0.62200846792817499, 0.1666666666665495, -1.451353091832408, 0.388888888888613, -2.6293994326054668, 0.70454545454495332, -0.62200846792810593, -0.16666666666680507, -1.451353091832247, -0.38888888888921297, -2.6293994326051746, -0.70454545454604123, -0.45534180126135926, -0.45534180126159562, -1.0624642029431723, -1.0624642029437235, -1.9248539780593836, -1.9248539780603811, -0.1666666666664828, -0.62200846792819242, -0.38888888888846079, -1.4513530918324489, -0.70454545454467987, -2.6293994326055397, 0.16666666666687083, -0.62200846792808862, 0.38888888888936374, -1.4513530918322073, 0.70454545454631357, -2.6293994326051022, 0.45534180126164348, -0.45534180126131207, 1.0624642029438327, -1.0624642029430627, 1.9248539780605791, -1.9248539780591853, 0.62200846792821063, -0.16666666666641802, 1.4513530918324888, -0.38888888888831086, 2.6293994326056125, -0.70454545454440853]
5062 m=i.getBarycenterAndOwner();
5063 for i in xrange(72):
5064 self.assertAlmostEqual(expected2[i],m.getIJ(0,i),10);
5069 def testExtrudedMesh6(self):
5071 a=DataArrayDouble.New();
5072 a.setValues(coo1,4,1);
5073 b=MEDCouplingCMesh.New();
5075 c=b.buildUnstructured();
5076 self.assertEqual(1,c.getSpaceDimension());
5077 c.changeSpaceDimension(2);
5079 d=DataArrayDouble.New();
5082 e=MEDCouplingCMesh.New();
5084 f=e.buildUnstructured();
5085 d2=f.getCoords().applyFunc("x*x/2");
5087 f.changeSpaceDimension(2);
5090 f.rotate(center,None,pi/3);
5091 g=c.buildExtrudedMesh(f,0);
5093 expected1=[ 0.4330127018922193, 0.4330127018922193, 0.649519052838329, 1.2990381056766578, 1.299038105676658, 1.948557158514987, 2.1650635094610955, 2.1650635094610964, 3.2475952641916446, 3.031088913245533, 3.0310889132455352, 4.546633369868303 ]
5094 f1=g.getMeasureField(True);
5095 for i in xrange(12):
5096 self.assertAlmostEqual(expected1[i],f1.getIJ(0,i),12);
5098 expected2=[0.625, 0.21650635094610962, 1.625, 0.21650635094610959, 2.8750000000000004, 0.21650635094610965, 1.1250000000000002, 1.0825317547305482, 2.125, 1.0825317547305482, 3.3750000000000004, 1.0825317547305484, 2.125, 2.8145825622994254, 3.125, 2.8145825622994254, 4.375, 2.8145825622994254, 3.6250000000000009, 5.4126587736527414, 4.625, 5.4126587736527414, 5.875, 5.4126587736527414]
5099 f2=g.getBarycenterAndOwner();
5100 for i in xrange(24):
5101 self.assertAlmostEqual(expected2[i],f2.getIJ(0,i),12);
5105 def testExtrudedMesh7(self):
5107 a=DataArrayDouble.New();
5108 a.setValues(coo1,4,1);
5109 b=MEDCouplingCMesh.New();
5111 c=b.buildUnstructured();
5112 self.assertEqual(1,c.getSpaceDimension());
5113 c.changeSpaceDimension(2);
5115 d=DataArrayDouble.New();
5118 e=MEDCouplingCMesh.New();
5120 f=e.buildUnstructured();
5121 g=f.getCoords().applyFunc(2,"3.5*IVec+x/6*3.14159265359*JVec");
5122 h=g.fromPolarToCart();
5124 i=c.buildExtrudedMesh(f,1);
5125 self.assertEqual(52,i.getNumberOfNodes());
5126 tmp,tmp2,tmp3=i.mergeNodes(1e-9);
5127 self.assertTrue(tmp2);
5128 self.assertEqual(37,tmp3);
5129 i.convertDegeneratedCells();
5132 g2=h.applyFunc(3,"13.5/3.5*x*IVec+0*JVec+13.5/3.5*y*KVec");
5134 i.changeSpaceDimension(3);
5135 i3=i.buildExtrudedMesh(f,1);
5136 f2=i3.getMeasureField(True);
5137 tmp,tmp2,tmp3=i.mergeNodes(1e-9);
5138 self.assertTrue(tmp2);
5139 self.assertEqual(444,tmp3);
5140 expected1=[1.327751058489274, 4.2942574094314701, 13.024068164857139, 1.3069177251569044, 4.1484240761012954, 12.297505664866796, 1.270833333332571, 3.8958333333309674, 11.039062499993179, 1.2291666666659207, 3.6041666666644425, 9.585937499993932, 1.1930822748415895, 3.3515759238941376, 8.3274943351204556, 1.1722489415082769, 3.2057425905609289, 7.6009318351210622, 1.1722489415082862, 3.2057425905609884, 7.6009318351213713, 1.1930822748416161, 3.3515759238943001, 8.3274943351212727, 1.2291666666659564, 3.6041666666646734, 9.5859374999950777, 1.2708333333326081, 3.8958333333311868, 11.039062499994293, 1.3069177251569224, 4.1484240761014384, 12.297505664867627, 1.3277510584902354, 4.2942574094346071, 13.024068164866796]
5141 for ii in xrange(12):
5142 for jj in xrange(36):
5143 self.assertAlmostEqual(expected1[jj],f2.getIJ(0,ii*36+jj),9);
5148 def testSimplexize1(self):
5149 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
5150 m.convertToPolyTypes([3]);
5152 self.assertEqual(7,da.getNumberOfTuples());
5153 self.assertEqual(1,da.getNumberOfComponents());
5154 expected2=[0,0,1,2,3,4,4]
5156 self.assertEqual(expected2[i],da.getIJ(i,0));
5159 self.assertEqual(7,m.getNumberOfCells());
5160 self.assertEqual(NORM_TRI3,m.getTypeOfCell(0));
5161 self.assertEqual(NORM_TRI3,m.getTypeOfCell(1));
5162 self.assertEqual(NORM_TRI3,m.getTypeOfCell(2));
5163 self.assertEqual(NORM_TRI3,m.getTypeOfCell(3));
5164 self.assertEqual(NORM_POLYGON,m.getTypeOfCell(4));
5165 self.assertEqual(NORM_TRI3,m.getTypeOfCell(5));
5166 self.assertEqual(NORM_TRI3,m.getTypeOfCell(6));
5167 expected1=[0.125,0.125,0.125,0.125,0.25,0.125,0.125]
5168 f=m.getMeasureField(False);
5170 self.assertAlmostEqual(expected1[i]*sqrt(2.),f.getIJ(i,0),10);
5172 types=m.getAllTypes();
5173 self.assertEqual([NORM_TRI3,NORM_POLYGON],types);
5175 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
5176 m.convertToPolyTypes([3]);
5178 self.assertEqual(7,da.getNumberOfTuples());
5179 self.assertEqual(1,da.getNumberOfComponents());
5181 self.assertEqual(expected2[i],da.getIJ(i,0));
5184 types=m.getAllTypes();
5185 self.assertEqual([NORM_TRI3,NORM_POLYGON],types);
5186 self.assertEqual(7,m.getNumberOfCells());
5187 self.assertEqual(NORM_TRI3,m.getTypeOfCell(0));
5188 self.assertEqual(NORM_TRI3,m.getTypeOfCell(1));
5189 self.assertEqual(NORM_TRI3,m.getTypeOfCell(2));
5190 self.assertEqual(NORM_TRI3,m.getTypeOfCell(3));
5191 self.assertEqual(NORM_POLYGON,m.getTypeOfCell(4));
5192 self.assertEqual(NORM_TRI3,m.getTypeOfCell(5));
5193 self.assertEqual(NORM_TRI3,m.getTypeOfCell(6));
5194 f=m.getMeasureField(False);
5196 self.assertAlmostEqual(expected1[i]*sqrt(2.),f.getIJ(i,0),10);
5200 def testSimplexize2(self):
5201 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
5202 m.convertToPolyTypes([3]);
5203 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
5205 arr=DataArrayDouble.New();
5206 arr1=[10.,110.,20.,120.,30.,130.,40.,140.,50.,150.]
5207 arr.setValues(arr1,5,2);
5210 f1.checkCoherency();
5211 self.assertTrue(f1.simplexize(0));
5212 f1.checkCoherency();
5213 expected1=[10.,110.,10.,110.,20.,120.,30.,130.,40.,140.,50.,150.,50.,150.]
5214 for i in xrange(14):
5215 self.assertAlmostEqual(expected1[i],f1.getIJ(0,i),10);
5217 self.assertTrue(not f1.simplexize(0));
5218 for i in xrange(14):
5219 self.assertAlmostEqual(expected1[i],f1.getIJ(0,i),10);
5224 def testDAMeld1(self):
5225 da1=DataArrayDouble.New();
5227 da2=DataArrayDouble.New();
5230 da1.fillWithValue(7.);
5232 da3=da2.applyFunc(3,"10*x*IVec+100*x*JVec+1000*x*KVec");
5234 da1.setInfoOnComponent(0,"c0da1");
5235 da1.setInfoOnComponent(1,"c1da1");
5236 da3.setInfoOnComponent(0,"c0da3");
5237 da3.setInfoOnComponent(1,"c1da3");
5238 da3.setInfoOnComponent(2,"c2da3");
5242 self.assertEqual(5,da1.getNumberOfComponents());
5243 self.assertEqual(7,da1.getNumberOfTuples());
5244 self.assertTrue(da1.getInfoOnComponent(0)=="c0da1");
5245 self.assertTrue(da1.getInfoOnComponent(1)=="c1da1");
5246 self.assertTrue(da1.getInfoOnComponent(2)=="c0da3");
5247 self.assertTrue(da1.getInfoOnComponent(3)=="c1da3");
5248 self.assertTrue(da1.getInfoOnComponent(4)=="c2da3");
5250 expected1=[7.,7.,0.,0.,0., 7.,7.,10.,100.,1000., 7.,7.,20.,200.,2000., 7.,7.,30.,300.,3000., 7.,7.,40.,400.,4000.,7.,7.,50.,500.,5000.,7.,7.,60.,600.,6000.]
5251 for i in xrange(35):
5252 self.assertAlmostEqual(expected1[i],da1.getIJ(0,i),10);
5255 dai1=da1C.convertToIntArr();
5256 dai3=da3.convertToIntArr();
5257 dai1.meldWith(dai3);
5258 self.assertEqual(5,dai1.getNumberOfComponents());
5259 self.assertEqual(7,dai1.getNumberOfTuples());
5260 self.assertTrue(dai1.getInfoOnComponent(0)=="c0da1");
5261 self.assertTrue(dai1.getInfoOnComponent(1)=="c1da1");
5262 self.assertTrue(dai1.getInfoOnComponent(2)=="c0da3");
5263 self.assertTrue(dai1.getInfoOnComponent(3)=="c1da3");
5264 self.assertTrue(dai1.getInfoOnComponent(4)=="c2da3");
5265 for i in xrange(35):
5266 self.assertEqual(int(expected1[i]),dai1.getIJ(0,i));
5268 # test of static method DataArrayDouble::meld
5269 da4=DataArrayDouble.Meld(da1C,da3);
5270 tmp=DataArrayDouble.Meld([da1C,da3]);
5271 self.assertTrue(da4.isEqual(tmp,1e-10))
5272 self.assertEqual(5,da4.getNumberOfComponents());
5273 self.assertEqual(7,da4.getNumberOfTuples());
5274 self.assertTrue(da4.getInfoOnComponent(0)=="c0da1");
5275 self.assertTrue(da4.getInfoOnComponent(1)=="c1da1");
5276 self.assertTrue(da4.getInfoOnComponent(2)=="c0da3");
5277 self.assertTrue(da4.getInfoOnComponent(3)=="c1da3");
5278 self.assertTrue(da4.getInfoOnComponent(4)=="c2da3");
5279 for i in xrange(35):
5280 self.assertAlmostEqual(expected1[i],da4.getIJ(0,i),10);
5282 # test of static method DataArrayInt::meld
5283 dai1=da1C.convertToIntArr();
5284 dai4=DataArrayInt.Meld(dai1,dai3);
5285 tmp=DataArrayInt.Meld([dai1,dai3]);
5286 self.assertTrue(dai4.isEqual(tmp))
5287 self.assertEqual(5,dai4.getNumberOfComponents());
5288 self.assertEqual(7,dai4.getNumberOfTuples());
5289 self.assertTrue(dai4.getInfoOnComponent(0)=="c0da1");
5290 self.assertTrue(dai4.getInfoOnComponent(1)=="c1da1");
5291 self.assertTrue(dai4.getInfoOnComponent(2)=="c0da3");
5292 self.assertTrue(dai4.getInfoOnComponent(3)=="c1da3");
5293 self.assertTrue(dai4.getInfoOnComponent(4)=="c2da3");
5294 for i in xrange(35):
5295 self.assertEqual(int(expected1[i]),dai4.getIJ(0,i));
5299 def testFieldMeld1(self):
5300 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
5301 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
5303 da1=DataArrayDouble.New();
5304 arr1=[12.,23.,34.,45.,56.]
5305 da1.setValues(arr1,5,1);
5306 da1.setInfoOnComponent(0,"aaa");
5308 f1.setTime(3.4,2,1);
5309 f1.checkCoherency();
5312 f2.setMesh(f1.getMesh());
5313 f2.checkCoherency();
5314 f2.changeNbOfComponents(2,5.);
5316 f2.getArray().setInfoOnComponent(0,"bbb");
5317 f2.getArray().setInfoOnComponent(1,"ccc");
5318 f2.checkCoherency();
5320 f3=MEDCouplingFieldDouble.MeldFields(f2,f1);
5321 f3.checkCoherency();
5322 self.assertEqual(5,f3.getNumberOfTuples());
5323 self.assertEqual(3,f3.getNumberOfComponents());
5324 self.assertTrue(f3.getArray().getInfoOnComponent(0)=="bbb");
5325 self.assertTrue(f3.getArray().getInfoOnComponent(1)=="ccc");
5326 self.assertTrue(f3.getArray().getInfoOnComponent(2)=="aaa");
5327 expected1=[5.,5.,12.,5.,5.,23.,5.,5.,34.,5.,5.,45.,5.,5.,56.]
5328 for i in xrange(15):
5329 self.assertAlmostEqual(expected1[i],f3.getIJ(0,i),12);
5331 time,dt,it=f3.getTime();
5332 self.assertAlmostEqual(3.4,time,14);
5333 self.assertEqual(2,dt);
5334 self.assertEqual(1,it);
5336 f4=f2.buildNewTimeReprFromThis(NO_TIME,False);
5337 f5=f1.buildNewTimeReprFromThis(NO_TIME,False);
5338 f6=MEDCouplingFieldDouble.MeldFields(f4,f5);
5339 f6.checkCoherency();
5340 self.assertEqual(5,f6.getNumberOfTuples());
5341 self.assertEqual(3,f6.getNumberOfComponents());
5342 self.assertTrue(f6.getArray().getInfoOnComponent(0)=="bbb");
5343 self.assertTrue(f6.getArray().getInfoOnComponent(1)=="ccc");
5344 self.assertTrue(f6.getArray().getInfoOnComponent(2)=="aaa");
5345 for i in xrange(15):
5346 self.assertAlmostEqual(expected1[i],f6.getIJ(0,i),12);
5351 def testMergeNodes2(self):
5352 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
5353 m2=MEDCouplingDataForTest.build2DTargetMesh_1();
5357 m3=MEDCouplingUMesh.MergeUMeshes([m1,m2]);
5358 da,b,newNbOfNodes=m3.mergeNodes2(0.01);
5359 self.assertEqual(9,m3.getNumberOfNodes());
5360 expected1=[-0.299,-0.3, 0.201,-0.3, 0.701,-0.3, -0.299,0.2, 0.201,0.2, 0.701,0.2, -0.299,0.7, 0.201,0.7, 0.701,0.7]
5361 for i in xrange(18):
5362 self.assertAlmostEqual(expected1[i],m3.getCoords().getIJ(0,i),13);
5367 def testMergeField2(self):
5368 m=MEDCouplingDataForTest.build2DTargetMesh_1();
5369 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
5371 arr=DataArrayDouble.New();
5373 arr.fillWithValue(2.);
5375 f2=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
5377 arr=DataArrayDouble.New();
5379 arr.fillWithValue(5.);
5381 f3=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
5383 arr=DataArrayDouble.New();
5385 arr.fillWithValue(7.);
5388 f4=MEDCouplingFieldDouble.MergeFields([f1,f2,f3]);
5389 self.assertEqual(15,f4.getMesh().getNumberOfCells());
5390 expected1=[2.,2.,2.,2.,2.,2.,2.,2.,2.,2., 5.,5.,5.,5.,5.,5.,5.,5.,5.,5., 7.,7.,7.,7.,7.,7.,7.,7.,7.,7.]
5391 for i in xrange(30):
5392 self.assertAlmostEqual(expected1[i],f4.getIJ(0,i),13);
5397 def testDAIBuildComplement1(self):
5398 a=DataArrayInt.New();
5400 a.setValues(tab,4,1);
5401 b=a.buildComplement(12);
5402 self.assertEqual(8,b.getNumberOfTuples());
5403 self.assertEqual(1,b.getNumberOfComponents());
5404 expected1=[0,2,4,5,6,9,10,11]
5406 self.assertEqual(expected1[i],b.getIJ(0,i));
5410 def testDAIBuildUnion1(self):
5411 a=DataArrayInt.New();
5413 a.setValues(tab1,4,1);
5414 c=DataArrayInt.New();
5416 c.setValues(tab2,5,1);
5418 self.assertEqual(7,b.getNumberOfTuples());
5419 self.assertEqual(1,b.getNumberOfComponents());
5420 expected1=[0,1,3,5,7,8,18]
5422 self.assertEqual(expected1[i],b.getIJ(0,i));
5424 b=DataArrayInt.BuildUnion([a,c]);
5425 self.assertEqual(7,b.getNumberOfTuples());
5426 self.assertEqual(1,b.getNumberOfComponents());
5427 expected1=[0,1,3,5,7,8,18]
5429 self.assertEqual(expected1[i],b.getIJ(0,i));
5433 def testDAIBuildIntersection1(self):
5434 a=DataArrayInt.New();
5436 a.setValues(tab1,4,1);
5437 c=DataArrayInt.New();
5439 c.setValues(tab2,5,1);
5440 b=a.buildIntersection(c);
5441 self.assertEqual(2,b.getNumberOfTuples());
5442 self.assertEqual(1,b.getNumberOfComponents());
5445 self.assertEqual(expected1[i],b.getIJ(0,i));
5447 b=DataArrayInt.BuildIntersection([a,c]);
5448 self.assertEqual(2,b.getNumberOfTuples());
5449 self.assertEqual(1,b.getNumberOfComponents());
5452 self.assertEqual(expected1[i],b.getIJ(0,i));
5456 def testDAIDeltaShiftIndex1(self):
5457 a=DataArrayInt.New();
5458 tab=[1,3,6,7,7,9,15]
5459 a.setValues(tab,7,1);
5460 b=a.deltaShiftIndex();
5461 self.assertEqual(6,b.getNumberOfTuples());
5462 self.assertEqual(1,b.getNumberOfComponents());
5463 expected1=[2,3,1,0,2,6]
5465 self.assertEqual(expected1[i],b.getIJ(0,i));
5469 def testDaDoubleSelectByTupleIdSafe1(self):
5470 a=DataArrayDouble.New();
5471 arr1=[1.1,11.1,2.1,12.1,3.1,13.1,4.1,14.1,5.1,15.1,6.1,16.1,7.1,17.1]
5472 a.setValues(arr1,7,2);
5473 a.setInfoOnComponent(0,"toto");
5474 a.setInfoOnComponent(1,"tata");
5477 b=a.selectByTupleIdSafe(arr2);
5478 self.assertEqual(5,b.getNumberOfTuples());
5479 self.assertEqual(2,b.getNumberOfComponents());
5480 self.assertTrue(b.getInfoOnComponent(0)=="toto");
5481 self.assertTrue(b.getInfoOnComponent(1)=="tata");
5482 expected1=[5.1,15.1,3.1,13.1,1.1,11.1,7.1,17.1,6.1,16.1]
5483 for i in xrange(10):
5484 self.assertAlmostEqual(expected1[i],b.getIJ(0,i),14);
5487 self.assertRaises(InterpKernelException,a.selectByTupleIdSafe,arr4);
5489 self.assertRaises(InterpKernelException,a.selectByTupleIdSafe,arr5);
5491 c=DataArrayInt.New();
5492 arr3=[1,11,2,12,3,13,4,14,5,15,6,16,7,17]
5493 c.setValues(arr3,7,2);
5494 c.setInfoOnComponent(0,"toto");
5495 c.setInfoOnComponent(1,"tata");
5496 d=c.selectByTupleIdSafe(arr2);
5497 self.assertEqual(5,d.getNumberOfTuples());
5498 self.assertEqual(2,d.getNumberOfComponents());
5499 self.assertTrue(d.getInfoOnComponent(0)=="toto");
5500 self.assertTrue(d.getInfoOnComponent(1)=="tata");
5501 expected2=[5,15,3,13,1,11,7,17,6,16]
5502 for i in xrange(10):
5503 self.assertEqual(expected2[i],d.getIJ(0,i));
5505 self.assertRaises(InterpKernelException,c.selectByTupleIdSafe,arr4);
5506 self.assertRaises(InterpKernelException,c.selectByTupleIdSafe,arr5);
5509 def testAreCellsIncludedIn1(self):
5510 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
5512 m2=m.buildPartOfMySelf(pt,True);
5513 ret,tmp=m.areCellsIncludedIn(m2,0)
5514 self.assertTrue(ret);
5515 self.assertEqual(2,tmp.getNumberOfTuples());
5516 self.assertEqual(1,tmp.getNumberOfComponents());
5517 self.assertEqual(pt[0],tmp.getIJ(0,0));
5518 self.assertEqual(pt[1],tmp.getIJ(0,1));
5519 ret,tmp=m2.areCellsIncludedIn(m,0)
5520 self.assertTrue(not ret);
5521 m3=MEDCouplingUMesh.MergeUMeshesOnSameCoords(m,m2)
5522 c,cI=m3.findCommonCells(2,m.getNumberOfCells())
5523 self.assertTrue(c.isEqual(DataArrayInt([1,5,3,6])))
5524 self.assertTrue(cI.isEqual(DataArrayInt([0,2,4])))
5527 def testSwigErrorProtection1(self):
5528 m=MEDCouplingDataForTest.build3DTargetMesh_1();
5529 m.rotate([0.,0.,0.],[0.3,0.6,1.2],0.37)
5530 m.rotate([0.,0.,0.],[0.3,6,1.2],0.37)
5531 self.assertRaises(InterpKernelException,m.rotate,[0.,0.,0.],(0.3,6,"1.2"),0.37)
5532 self.assertRaises(InterpKernelException,m.rotate,[0.,"0.",0.],[0.3,0.6,1.2],0.37)
5533 self.assertRaises(InterpKernelException,m.rotate,[0.,0.,0.],[0.3,'0.6',1.2],0.37)
5534 m2=m.buildPartOfMySelf([2,5],True)
5535 m3=m.buildPartOfMySelf((2,5),True)
5536 self.assertTrue(m2.isEqual(m3,1e-12))
5537 self.assertRaises(InterpKernelException,m.buildPartOfMySelf,[2,5.],True)
5538 da1=m.getCoords().keepSelectedComponents([1])
5539 da2=m.getCoords().keepSelectedComponents((1,))
5540 self.assertTrue(da1.isEqual(da2,1e-12))
5541 self.assertRaises(InterpKernelException,m.getCoords().keepSelectedComponents,["1"])
5544 def testDAIBuildSubstraction1(self):
5545 a=DataArrayInt.New()
5548 b=DataArrayInt.New()
5551 self.assertEqual([2,6,8],a.buildSubstraction(b).getValues())
5554 def testBuildOrthogonalField2(self):
5555 m=MEDCouplingDataForTest.build2DTargetMesh_1();
5556 d1=DataArrayInt.New();
5557 d2=DataArrayInt.New();
5558 d3=DataArrayInt.New();
5559 d4=DataArrayInt.New();
5560 m1=m.buildDescendingConnectivity(d1,d2,d3,d4);
5562 f1=m1.buildOrthogonalField();
5564 self.assertEqual(2,da1.getNumberOfComponents());
5565 self.assertEqual(13,da1.getNumberOfTuples());
5567 expected1=[-1.,0.,0.,1.,1.,0.,0.,-1.,0.707106781186548,0.707106781186548,0.,-1.,0.,1.,1.,0.,0.,1.,1.,0.,-1.,0.,0.,1.,1.,0.];
5568 for i in xrange(26):
5569 self.assertAlmostEqual(expected1[i],da1.getIJ(0,i),14);
5573 def testSwigErrorProtection2(self):
5574 m=MEDCouplingDataForTest.build2DTargetMesh_1();
5576 c=m.getNodalConnectivity()
5577 ci=m.getNodalConnectivityIndex()
5579 self.assertEqual(2,coo.getNumberOfComponents());
5580 self.assertEqual(6,ci.getNumberOfTuples());
5581 self.assertEqual(23,c.getNumberOfTuples());
5582 m=MEDCouplingDataForTest.build2DTargetMesh_1();
5583 f=m.getMeasureField(True)
5586 self.assertEqual(1,c.getNumberOfComponents());
5587 m=MEDCouplingCMesh.New()
5588 x=DataArrayDouble.New()
5589 x.setValues([1.,2.,4.],3,1)
5594 self.assertEqual(3,xx.getNumberOfTuples());
5596 m=MEDCouplingDataForTest.build2DTargetMesh_1();
5597 f=m.getMeasureField(True)
5601 self.assertEqual(5,m2.getNumberOfCells());
5604 def testUMInsertNextCell1(self):
5605 targetCoords=[-0.3,-0.3, 0.2,-0.3, 0.7,-0.3, -0.3,0.2, 0.2,0.2, 0.7,0.2, -0.3,0.7, 0.2,0.7, 0.7,0.7 ]
5606 targetConn=[0,3,4,1, 1,4,2, 4,5,2, 6,7,4,3, 7,8,5,4]
5607 targetMesh=MEDCouplingUMesh.New();
5608 targetMesh.allocateCells(5);
5609 self.assertRaises(InterpKernelException,targetMesh.insertNextCell,NORM_QUAD4,4,targetConn[0:4])
5610 targetMesh.setMeshDimension(2);
5611 targetMesh.insertNextCell(NORM_QUAD4,4,targetConn[0:4])
5612 self.assertRaises(InterpKernelException,targetMesh.insertNextCell,NORM_TETRA4,4,targetConn[0:4])
5613 self.assertRaises(InterpKernelException,targetMesh.insertNextCell,NORM_SEG2,2,targetConn[0:2])
5614 self.assertRaises(InterpKernelException,targetMesh.insertNextCell,NORM_POINT1,1,targetConn[0:1])
5615 targetMesh.insertNextCell(NORM_TRI3,3,targetConn[4:7])
5616 targetMesh.insertNextCell(NORM_TRI3,3,targetConn[7:10])
5617 targetMesh.insertNextCell(NORM_QUAD4,4,targetConn[10:14])
5618 targetMesh.insertNextCell(NORM_QUAD4,4,targetConn[14:18])
5619 targetMesh.finishInsertingCells();
5620 myCoords=DataArrayDouble.New();
5621 myCoords.setValues(targetCoords,9,2);
5622 targetMesh.setCoords(myCoords);
5623 targetMesh.checkCoherency();
5626 def testFieldOperatorDivDiffComp1(self):
5627 m=MEDCouplingDataForTest.build2DTargetMesh_1();
5628 m1,d0,d1,d2,d3=m.buildDescendingConnectivity();
5630 f1=m1.buildOrthogonalField();
5631 arr1=[2.,3.,4.,5.,6.,7.,8.,9.,10.,11.,12.,13.,14.]
5632 arr=DataArrayDouble.New();
5633 arr.setValues(arr1,13,1);
5634 f2=MEDCouplingFieldDouble.New(ON_CELLS);
5637 f2.checkCoherency();
5640 self.assertRaises(InterpKernelException,f2.__div__,f1)
5641 f3.checkCoherency();
5643 #self.assertRaises(InterpKernelException,f2.__idiv__,f1) # mem leaks
5644 self.assertTrue(f1.isEqual(f3,1e-10,1e-10));
5645 expected1=[-0.5, 0.0, 0.0, 0.33333333333333331, 0.25, 0.0, 0.0, -0.20000000000000001, 0.117851130197758, 0.117851130197758, 0.0, -0.14285714285714285, 0.0, 0.125, 0.1111111111111111, 0.0, 0.0, 0.10000000000000001, 0.090909090909090912, 0.0, -0.083333333333333329, 0.0, 0.0, 0.076923076923076927, 0.071428571428571425, 0.0]
5646 for i in xrange(26):
5647 self.assertAlmostEqual(expected1[i],f3.getIJ(0,i),10);
5651 def testDARearrange1(self):
5652 da1=DataArrayInt.New();
5656 self.assertEqual(12,da1.getNbOfElems());
5657 self.assertEqual(1,da1.getNumberOfComponents());
5658 self.assertEqual(12,da1.getNumberOfTuples());
5660 self.assertEqual(12,da1.getNbOfElems());
5661 self.assertEqual(4,da1.getNumberOfComponents());
5662 self.assertEqual(3,da1.getNumberOfTuples());
5663 for i in xrange(12):
5664 self.assertEqual(i,da1.getIJ(0,i));
5667 self.assertEqual(12,da1.getNbOfElems());
5668 self.assertEqual(6,da1.getNumberOfComponents());
5669 self.assertEqual(2,da1.getNumberOfTuples());
5670 for i in xrange(12):
5671 self.assertEqual(i,da1.getIJ(0,i));
5673 self.assertRaises(InterpKernelException,da1.rearrange,7);
5676 self.assertEqual(12,da1.getNbOfElems());
5677 self.assertEqual(12,da1.getNumberOfComponents());
5678 self.assertEqual(1,da1.getNumberOfTuples());
5679 for i in xrange(12):
5680 self.assertEqual(i,da1.getIJ(0,i));
5683 self.assertEqual(12,da1.getNbOfElems());
5684 self.assertEqual(3,da1.getNumberOfComponents());
5685 self.assertEqual(4,da1.getNumberOfTuples());
5686 for i in xrange(12):
5687 self.assertEqual(i,da1.getIJ(0,i));
5689 da2=da1.convertToDblArr();
5690 st=da2.getHiddenCppPointer()
5692 self.assertEqual(12,da2.getNbOfElems());
5693 self.assertEqual(3,da2.getNumberOfComponents());
5694 self.assertEqual(4,da2.getNumberOfTuples());
5696 self.assertEqual(12,da2.getNbOfElems());
5697 self.assertEqual(4,da2.getNumberOfComponents());
5698 self.assertEqual(3,da2.getNumberOfTuples());
5699 for i in xrange(12):
5700 self.assertAlmostEqual(float(i),da2.getIJ(0,i),14);
5703 self.assertEqual(12,da2.getNbOfElems());
5704 self.assertEqual(6,da2.getNumberOfComponents());
5705 self.assertEqual(2,da2.getNumberOfTuples());
5706 for i in xrange(12):
5707 self.assertAlmostEqual(float(i),da2.getIJ(0,i),14);
5709 self.assertRaises(InterpKernelException,da2.rearrange,7);
5712 self.assertEqual(st,da2.getHiddenCppPointer())
5713 self.assertEqual(12,da2.getNbOfElems());
5714 self.assertEqual(1,da2.getNumberOfComponents());
5715 self.assertEqual(12,da2.getNumberOfTuples());
5716 for i in xrange(12):
5717 self.assertAlmostEqual(float(i),da2.getIJ(0,i),14);
5720 self.assertEqual(12,da2.getNbOfElems());
5721 self.assertEqual(3,da2.getNumberOfComponents());
5722 self.assertEqual(4,da2.getNumberOfTuples());
5723 for i in xrange(12):
5724 self.assertAlmostEqual(float(i),da2.getIJ(0,i),14);
5727 def testDARearrange2(self):
5728 da1=DataArrayInt.New();
5729 arr=[1,2,3,2,2,3,5,1,5,5,2,2]
5730 da1.setValues(arr,4,3);
5731 s=da1.getDifferentValues();
5733 self.assertEqual(expected1,s);
5736 def testSwigErrorProtection3(self):
5737 da=DataArrayInt.New()
5738 da.setValues([1,2,3,4,0,0,0,0,0,0,0,0],4,3)
5739 self.assertEqual([1, 2, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0],da.getValues())
5740 self.assertEqual(3,da.getNumberOfComponents());
5741 self.assertEqual(4,da.getNumberOfTuples());
5742 da=DataArrayInt.New()
5743 da.setValues(((1,2,3),(4,4,3),(0,0,0),(0,0,0)),4,3)
5744 self.assertEqual([1, 2, 3, 4, 4, 3, 0, 0, 0, 0, 0, 0],da.getValues())
5745 self.assertEqual(3,da.getNumberOfComponents());
5746 self.assertEqual(4,da.getNumberOfTuples());
5747 da.setValues((10*[1]+290*[2])[:12],4,3)
5748 self.assertEqual(10*[1]+[2,2],da.getValues())
5749 self.assertEqual(3,da.getNumberOfComponents());
5750 self.assertEqual(4,da.getNumberOfTuples());
5752 da=DataArrayDouble.New()
5753 da.setValues([1,2,3.,4,0,0,0,0,0,0,0,0],4,3)
5754 self.assertEqual([1., 2., 3., 4., 0., 0., 0., 0., 0., 0., 0., 0.],da.getValues())
5755 self.assertEqual(3,da.getNumberOfComponents());
5756 self.assertEqual(4,da.getNumberOfTuples());
5757 da=DataArrayDouble.New()
5758 da.setValues(((1,2,3),(4.,4,3),(0,0,0),(0,0,0)),4,3)
5759 self.assertEqual([1., 2., 3., 4., 4., 3., 0., 0., 0., 0., 0., 0.],da.getValues())
5760 self.assertEqual(3,da.getNumberOfComponents());
5761 self.assertEqual(4,da.getNumberOfTuples());
5762 da.setValues((10*[1]+290*[2])[:12],4,3)
5763 self.assertEqual(10*[1.]+[2.,2.],da.getValues())
5764 self.assertEqual(3,da.getNumberOfComponents());
5765 self.assertEqual(4,da.getNumberOfTuples());
5768 def testDAIBuildPermutationArr1(self):
5769 a=DataArrayInt.New()
5770 a.setValues([4,5,6,7,8],5,1)
5771 b=DataArrayInt.New()
5772 b.setValues([5,4,8,6,7],5,1)
5773 c=a.buildPermutationArr(b)
5774 self.assertEqual([1,0,4,2,3],c.getValues())
5775 self.assertTrue(a.isEqualWithoutConsideringStrAndOrder(b))
5777 self.assertTrue(not a.isEqualWithoutConsideringStrAndOrder(b))
5778 self.assertRaises(InterpKernelException,a.buildPermutationArr,b)
5781 b.setIJ(4,0,4)#a==[4,5,6,4,8] and b==[5,4,8,6,4]
5782 self.assertTrue(a.isEqualWithoutConsideringStrAndOrder(b))
5783 c=a.buildPermutationArr(b)
5784 self.assertEqual([1,3,4,2,3],c.getValues())
5785 d=b.convertToDblArr()
5788 self.assertEqual(expect3,b.getValues())
5790 self.assertEqual(5,d.getNumberOfTuples());
5791 self.assertEqual(1,d.getNumberOfComponents());
5793 self.assertAlmostEqual(float(expect3[i]),d.getIJ(i,0),14);
5797 def testAreCellsIncludedIn2(self):
5799 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
5800 m2=m.buildPartOfMySelf([],True);
5801 self.assertEqual(0,m2.getNumberOfCells());
5802 self.assertEqual(3,m2.getSpaceDimension());
5803 self.assertEqual(2,m2.getMeshDimension());
5805 test,tmp=m.areCellsIncludedIn(m2,0)
5806 self.assertTrue(test);
5807 self.assertEqual(myName,tmp.getName());
5808 self.assertEqual(0,tmp.getNumberOfTuples())
5809 self.assertEqual(1,tmp.getNumberOfComponents())
5812 def testUMeshGetPartBarycenterAndOwner1(self):
5813 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
5815 part=DataArrayInt.New();
5816 part.setValues(part1,3,1);
5817 b=m1.getPartBarycenterAndOwner(part);
5818 self.assertEqual(2,b.getNumberOfComponents());
5819 self.assertEqual(3,b.getNumberOfTuples());
5820 expected1=[0.36666666666666665,-0.13333333333333333,-0.05,-0.05,0.45,0.45];
5822 self.assertAlmostEqual(expected1[i],b.getIJ(0,i),14);
5826 def testUMeshGetPartMeasureField1(self):
5827 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
5829 part=DataArrayInt.New();
5830 part.setValues(part1,3,1);
5831 b=m1.getPartMeasureField(True,part);
5832 self.assertEqual(1,b.getNumberOfComponents());
5833 self.assertEqual(3,b.getNumberOfTuples());
5834 expected1=[0.125,0.25,0.25];
5836 self.assertAlmostEqual(expected1[i],b.getIJ(0,i),14);
5840 def testUMeshBuildPartOrthogonalField1(self):
5841 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
5842 m1.changeSpaceDimension(3);
5844 part=DataArrayInt.New();
5845 part.setValues(part1,3,1);
5846 b=m1.buildPartOrthogonalField(part);
5847 self.assertEqual(3,b.getArray().getNumberOfComponents());
5848 self.assertEqual(3,b.getArray().getNumberOfTuples());
5849 expected1=[0.,0.,-1.,0.,0.,-1.,0.,0.,-1.];
5851 self.assertAlmostEqual(expected1[i],b.getArray().getIJ(0,i),14);
5855 def testUMeshGetTypesOfPart1(self):
5856 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
5858 p1=DataArrayInt.New()
5859 p1.setValues(part1,3,1)
5860 s=m1.getTypesOfPart(p1);
5861 self.assertEqual([NORM_QUAD4],s);
5863 p2=DataArrayInt.New()
5864 p2.setValues(part2,4,1)
5865 s=m1.getTypesOfPart(p2);
5866 self.assertEqual([NORM_TRI3],s);
5868 p3=DataArrayInt.New()
5869 p3.setValues(part3,3,1)
5870 s=m1.getTypesOfPart(p3);
5871 self.assertEqual(s,[NORM_TRI3,NORM_QUAD4]);
5874 def testUMeshKeepCellIdsByType1(self):
5875 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
5877 p1=DataArrayInt.New()
5878 p1.setValues(part1,3,1)
5880 a=m1.keepCellIdsByType(NORM_TRI3,p1);
5881 self.assertEqual("p1",a.getName())
5882 self.assertEqual(1,a.getNumberOfComponents());
5883 self.assertEqual(0,a.getNumberOfTuples());
5886 p2=DataArrayInt.New()
5887 p2.setValues(part2,5,1)
5889 a=m1.keepCellIdsByType(NORM_TRI3,p2);
5890 self.assertEqual("p2",a.getName())
5891 self.assertEqual(1,a.getNumberOfComponents());
5892 self.assertEqual(2,a.getNumberOfTuples());
5893 self.assertEqual(2,a.getIJ(0,0));
5894 self.assertEqual(2,a.getIJ(1,0));
5896 a=m1.keepCellIdsByType(NORM_QUAD4,p2);
5897 self.assertEqual("p2",a.getName())
5898 self.assertEqual(1,a.getNumberOfComponents());
5899 self.assertEqual(3,a.getNumberOfTuples());
5900 self.assertEqual(3,a.getIJ(0,0));
5901 self.assertEqual(0,a.getIJ(1,0));
5902 self.assertEqual(4,a.getIJ(2,0));
5905 def testSwigErrorDaIntSelectByTupleId1(self):
5906 a=DataArrayInt.New();
5907 arr1=[1,11,2,12,3,13,4,14,5,15,6,16,7,17]
5908 a.setValues(arr1,7,2);
5909 a.setInfoOnComponent(0,"toto");
5910 a.setInfoOnComponent(1,"tata");
5913 b=a.selectByTupleId(arr2);
5914 self.assertEqual(5,b.getNumberOfTuples());
5915 self.assertEqual(2,b.getNumberOfComponents());
5916 self.assertTrue(b.getInfoOnComponent(0)=="toto");
5917 self.assertTrue(b.getInfoOnComponent(1)=="tata");
5918 expected1=[5,15,3,13,1,11,7,17,6,16]
5919 self.assertEqual(expected1,b.getValues())
5921 a2=DataArrayInt.New()
5922 a2.setValues(arr2,5,1)
5923 b=a.selectByTupleId(a2);
5924 self.assertEqual(5,b.getNumberOfTuples());
5925 self.assertEqual(2,b.getNumberOfComponents());
5926 self.assertTrue(b.getInfoOnComponent(0)=="toto");
5927 self.assertTrue(b.getInfoOnComponent(1)=="tata");
5928 expected1=[5,15,3,13,1,11,7,17,6,16]
5929 self.assertEqual(expected1,b.getValues())
5932 def testSwigErrorRenum(self):
5933 da=DataArrayDouble.New()
5934 da.setValues([7.,107.,8.,108.,9.,109.,10.,110.,11.,111.,12.,112.,13.,113.,14.,114.,15.,115.,16.,116.],10,2)
5935 d=DataArrayInt.New()
5936 d.setValues([0,2,3,1,4,5,6,8,7,9],10,1)
5937 da.renumberInPlace(d)
5941 def testSwigGetItem1(self):
5942 da=DataArrayInt.New()
5947 da.setInfoOnComponent(0,"X [m]")
5948 da.setInfoOnComponent(1,"Y [m]")
5949 da.setInfoOnComponent(2,"Z [km]")
5951 self.assertEqual([22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51],da2.getValues())
5953 self.assertEqual([19, 20, 21],da2.getValues())
5956 except InterpKernelException as e:
5957 self.assertTrue(True)
5959 self.assertTrue(False)
5962 self.assertEqual([24, 27, 30, 33, 36, 39, 42, 45, 48],da2.getValues())
5964 self.assertEqual([22, 23, 24, 25, 26, 27, 28, 29, 30],da2.getValues())
5966 self.assertTrue(da2.isEqual(da))
5968 self.assertTrue(da2.isEqual(da))
5971 except InterpKernelException as e:
5972 self.assertTrue(True)
5974 self.assertTrue(False)
5978 except InterpKernelException as e:
5979 self.assertTrue(True)
5981 self.assertTrue(False)
5984 self.assertEqual([22, 25, 28],da2.getValues())
5987 except InterpKernelException as e:
5988 self.assertTrue(True)
5990 self.assertTrue(False)
5993 self.assertEqual([],da2.getValues())
5996 def testSwigGetItem2(self):
5997 da=DataArrayDouble.New()
6002 da.setInfoOnComponent(0,"X [m]")
6003 da.setInfoOnComponent(1,"Y [m]")
6004 da.setInfoOnComponent(2,"Z [km]")
6006 self.assertEqual([22., 23., 24., 25., 26., 27., 28., 29., 30., 31., 32., 33., 34., 35., 36., 37., 38., 39., 40., 41., 42., 43., 44., 45., 46., 47., 48., 49., 50., 51.],da2.getValues())
6008 self.assertEqual([19., 20., 21],da2.getValues())
6011 except InterpKernelException as e:
6012 self.assertTrue(True)
6014 self.assertTrue(False)
6017 self.assertEqual([24., 27., 30., 33., 36., 39., 42., 45., 48.],da2.getValues())
6019 self.assertEqual([22., 23., 24., 25., 26., 27., 28., 29., 30.],da2.getValues())
6021 self.assertTrue(da2.isEqual(da,1e-12))
6023 self.assertTrue(da2.isEqual(da,1e-12))
6026 except InterpKernelException as e:
6027 self.assertTrue(True)
6029 self.assertTrue(False)
6033 except InterpKernelException as e:
6034 self.assertTrue(True)
6036 self.assertTrue(False)
6039 self.assertEqual([22., 25., 28.],da2.getValues())
6042 except InterpKernelException as e:
6043 self.assertTrue(True)
6045 self.assertTrue(False)
6048 self.assertEqual([],da2.getValues())
6051 def testSwigSetItem1(self):
6052 da=DataArrayInt.New()
6056 da.setInfoOnComponent(0,"X [m]") ; da.setInfoOnComponent(1,"Y [km]") ; da.setInfoOnComponent(2,"Y [m]")
6057 da.setInfoOnComponent(3,"Z [W]") ; da.setInfoOnComponent(4,"ZZ [km]") ;
6059 self.assertEqual([7, 8, 3, 10, 11, 12, 13, 3, 15, 16, 17, 18, 3, 20, 21, 22, 23, 3, 25, 26],da.getValues())
6060 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6062 self.assertEqual([7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3, 3, 3, 3, 3, 22, 23, 24, 25, 26],da.getValues())
6063 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6065 self.assertEqual([-1, -1, -1, -1, -1, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, -1, -1, -1, -1, -1],da.getValues())
6066 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6068 self.assertEqual([7, -3, 9, -3, -3, 12, -3, 14, -3, -3, 17, -3, 19, -3, -3, 22, -3, 24, -3, -3],da.getValues())
6069 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6070 da2=DataArrayInt.New() ; da2.setValues([0,2,3],3,1)
6072 self.assertEqual([-7, -7, -7, -7, -7, 12, 13, 14, 15, 16, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7],da.getValues())
6073 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6075 self.assertEqual([7, 8, 9, -7, -7, 12, 13, 14, 15, 16, 17, 18, 19, -7, -7, 22, 23, 24, -7, -7],da.getValues())
6076 # Let's test with DAI right hand side
6077 da1=DataArrayInt.New()
6078 da1.setValues([25,26,27,125,126,127],2,3)
6080 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6082 self.assertEqual([7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 25, 26, 27, 21, 22, 125, 126, 127, 26],da.getValues())
6083 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6084 da[1:,3]=[225,226,227]
6085 self.assertEqual([7, 8, 9, 10, 11, 12, 13, 14, 225, 16, 17, 18, 19, 226, 21, 22, 23, 24, 227, 26],da.getValues())
6086 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6087 da[1,2:]=[225,226,227]
6088 self.assertEqual([7, 8, 9, 10, 11, 12, 13, 225, 226, 227, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26],da.getValues())
6089 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6090 da[da2,-2:]=[88,99,1010,1111,1212,1313]
6091 self.assertEqual([7, 8, 9, 88, 99, 12, 13, 14, 15, 16, 17, 18, 19, 1010, 1111, 22, 23, 24, 1212, 1313],da.getValues())
6092 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6093 da3=DataArrayInt.New(); da3.setValues([88,99,1010,1111,1212,1313],3,2)
6095 self.assertEqual([7, 8, 9, 88, 99, 12, 13, 14, 15, 16, 17, 18, 19, 1010, 1111, 22, 23, 24, 1212, 1313],da.getValues())
6096 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6098 self.assertEqual([88, 8, 99, 10, 11, 12, 13, 14, 15, 16, 1010, 18, 1111, 20, 21, 1212, 23, 1313, 25, 26],da.getValues())
6099 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6101 self.assertEqual([88, 8, 99, 10, 11, 12, 13, 14, 15, 16, 1010, 18, 1111, 20, 21, 1212, 23, 1313, 25, 26],da.getValues())
6102 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6104 self.assertEqual([-8, 8, -8, 10, 11, 12, 13, 14, 15, 16, -8, 18, -8, 20, 21, -8, 23, -8, 25, 26],da.getValues())
6107 def testSwigSetItem2(self):
6108 da=DataArrayDouble.New()
6112 da.setInfoOnComponent(0,"X [m]") ; da.setInfoOnComponent(1,"Y [km]") ; da.setInfoOnComponent(2,"Y [m]")
6113 da.setInfoOnComponent(3,"Z [W]") ; da.setInfoOnComponent(4,"ZZ [km]") ;
6115 self.assertEqual([7., 8., 3., 10., 11., 12., 13., 3., 15., 16., 17., 18., 3., 20., 21., 22., 23., 3., 25., 26.],da.getValues())
6116 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6118 self.assertEqual([7., 8., 9., 10., 11., 12., 13., 14., 15., 16., 3., 3., 3., 3., 3., 22., 23., 24., 25., 26.],da.getValues())
6119 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6121 self.assertEqual([-1., -1., -1., -1., -1., 12., 13., 14., 15., 16., 17., 18., 19., 20., 21., -1., -1., -1., -1., -1.],da.getValues())
6122 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6124 self.assertEqual([7., -3., 9., -3., -3., 12., -3., 14., -3., -3., 17., -3., 19., -3., -3., 22., -3., 24., -3., -3.],da.getValues())
6125 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6126 da2=DataArrayInt.New() ; da2.setValues([0,2,3],3,1)
6128 self.assertEqual([-7., -7., -7., -7., -7., 12., 13., 14., 15., 16., -7., -7., -7., -7., -7., -7., -7., -7., -7., -7.],da.getValues())
6129 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6131 self.assertEqual([7., 8., 9., -7., -7., 12., 13., 14., 15., 16., 17., 18., 19., -7., -7., 22., 23., 24., -7., -7.],da.getValues())
6132 # Let's test with DAI right hand side
6133 da1=DataArrayDouble.New()
6134 da1.setValues([25,26,27,125,126,127],2,3)
6136 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6138 self.assertEqual([7., 8., 9., 10., 11., 12., 13., 14., 15., 16., 17., 25., 26., 27., 21., 22., 125., 126., 127., 26.],da.getValues())
6139 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6140 da[1:,3]=[225.,226.,227.]
6141 self.assertEqual([7., 8., 9., 10., 11., 12., 13., 14., 225., 16., 17., 18., 19., 226., 21., 22., 23., 24., 227., 26.],da.getValues())
6142 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6143 da[1,2:]=[225,226,227]
6144 self.assertEqual([7., 8., 9., 10., 11., 12., 13., 225., 226., 227., 17., 18., 19., 20., 21., 22., 23., 24., 25., 26.],da.getValues())
6145 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6146 da[da2,-2:]=[88,99,1010,1111,1212,1313]
6147 self.assertEqual([7., 8., 9., 88., 99., 12., 13., 14., 15., 16., 17., 18., 19., 1010., 1111., 22., 23., 24., 1212., 1313.],da.getValues())
6148 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6149 da3=DataArrayDouble.New(); da3.setValues([88,99,1010,1111,1212,1313],3,2)
6151 self.assertEqual([7., 8., 9., 88., 99., 12., 13., 14., 15., 16., 17., 18., 19., 1010., 1111., 22., 23., 24., 1212., 1313.],da.getValues())
6152 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6154 self.assertEqual([88., 8., 99., 10., 11., 12., 13., 14., 15., 16., 1010., 18., 1111., 20., 21., 1212., 23., 1313., 25., 26.],da.getValues())
6155 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6157 self.assertEqual([88., 8., 99., 10., 11., 12., 13., 14., 15., 16., 1010., 18., 1111., 20., 21., 1212., 23., 1313., 25., 26.],da.getValues())
6158 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6160 self.assertEqual([-8., 8., -8., 10., 11., 12., 13., 14., 15., 16., -8., 18., -8., 20., 21., -8., 23., -8., 25., 26.],da.getValues())
6163 def testSwigDADOp(self):
6164 da=DataArrayDouble.New()
6167 da1=DataArrayDouble.New()
6171 self.assertEqual([15., 17., 19., 21., 23., 25., 27., 29., 31., 33., 35., 37.],da2.getValues())
6174 self.assertTrue(da2.isEqual(da3,1e-12))
6176 self.assertEqual([6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0],da2.getValues())
6178 self.assertEqual([-6.0, -7.0, -8.0, -9.0, -10.0, -11.0, -12.0, -13.0, -14.0, -15.0, -16.0, -17.0],da2.getValues())
6180 self.assertEqual([21.0, 24.0, 27.0, 30.0, 33.0, 36.0, 39.0, 42.0, 45.0, 48.0, 51.0, 54.0],da2.getValues())
6182 self.assertEqual([21.0, 24.0, 27.0, 30.0, 33.0, 36.0, 39.0, 42.0, 45.0, 48.0, 51.0, 54.0],da2.getValues())
6184 self.assertEqual([56.0, 72.0, 90.0, 110.0, 132.0, 156.0, 182.0, 210.0, 240.0, 272.0, 306.0, 342.0],da2.getValues())
6186 self.assertEqual([1.75, 2.0, 2.25, 2.5, 2.75, 3.0, 3.25, 3.5, 3.75, 4.0, 4.25, 4.5],da2.getValues())
6189 self.assertTrue(da4.isUniform(1.,1e-12))
6190 st1=da.getHiddenCppPointer()
6192 st2=da.getHiddenCppPointer()
6193 self.assertEqual(st1,st2)
6194 self.assertTrue(da.isEqual(da1,1e-12))
6196 st2=da.getHiddenCppPointer()
6197 self.assertEqual(st1,st2)
6198 self.assertEqual(range(12),da.getValues())
6200 st2=da.getHiddenCppPointer()
6201 self.assertEqual(st1,st2)
6202 self.assertEqual([8.0, 10.0, 12.0, 14.0, 16.0, 18.0, 20.0, 22.0, 24.0, 26.0, 28.0, 30.0],da.getValues())
6204 st2=da.getHiddenCppPointer()
6205 self.assertEqual(st1,st2)
6206 self.assertEqual([4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0],da.getValues())
6208 st2=da.getHiddenCppPointer()
6209 self.assertEqual(st1,st2)
6210 self.assertEqual([32.0, 45.0, 60.0, 77.0, 96.0, 117.0, 140.0, 165.0, 192.0, 221.0, 252.0, 285.0],da.getValues())
6212 self.assertEqual(st1,st2)
6213 self.assertEqual([4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0],da.getValues())
6215 st2=da.getHiddenCppPointer()
6216 self.assertEqual(st1,st2)
6217 self.assertEqual([2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0, 5.5, 6.0, 6.5, 7.0, 7.5],da.getValues())
6219 da5=DataArrayDouble.New()
6220 da5.setValues([5.,4.,3.,2.],4,1)
6221 da*=da5 # it works with unmathing number of compo
6222 st2=da.getHiddenCppPointer()
6223 self.assertEqual(st1,st2)
6224 self.assertEqual([10.0, 12.5, 15.0, 14.0, 16.0, 18.0, 15.0, 16.5, 18.0, 13.0, 14.0, 15.0],da.getValues())
6229 ids=DataArrayInt.New()
6230 ids.setValues([3,4,7],3,1)
6231 da[ids,:]=[5.,8.,9.]
6232 self.assertEqual([7.,8.,9.,10.,11.,12.,13.,14.,15.,5.,8.,9.,5.,8.,9.,22.,23.,24.,25.,26.,27.,5.,8.,9.,31.,32.,33.,34.,35.,36.0],da.getValues())
6234 da.rearrange(1) ; da.iota(7) ; da.rearrange(3)
6236 self.assertEqual([7.,8.,9.,10.,11.,12.,13.,14.,15.,16.,5.,8.,19.,5.,8.,22.,23.,24.,25.,26.,27.,28.,5.,8.,31.,32.,33.,34.,35.,36.],da.getValues())
6239 def testSwigDAIOp(self):
6240 da=DataArrayInt.New()
6243 da1=DataArrayInt.New()
6247 self.assertEqual([15,17,19,21,23,25,27,29,31,33,35,37],da2.getValues())
6250 self.assertTrue(da2.isEqual(da3))
6252 self.assertEqual([6,7,8,9,10,11,12,13,14,15,16,17],da2.getValues())
6254 self.assertEqual([-6,-7,-8,-9,-10,-11,-12,-13,-14,-15,-16,-17],da2.getValues())
6256 self.assertEqual([21,24,27,30,33,36,39,42,45,48,51,54.0],da2.getValues())
6258 self.assertEqual([21,24,27,30,33,36,39,42,45,48,51,54.0],da2.getValues())
6260 self.assertEqual([56,72,90,110,132,156,182,210,240,272,306,342.0],da2.getValues())
6262 self.assertEqual([1,2,2,2,2,3,3,3,3,4,4,4],da2.getValues())
6265 self.assertTrue(da4.isUniform(0))
6266 st1=da.getHiddenCppPointer()
6268 st2=da.getHiddenCppPointer()
6269 self.assertEqual(st1,st2)
6270 self.assertTrue(da.isEqual(da1))
6272 st2=da.getHiddenCppPointer()
6273 self.assertEqual(st1,st2)
6274 self.assertEqual(range(12),da.getValues())
6276 st2=da.getHiddenCppPointer()
6277 self.assertEqual(st1,st2)
6278 self.assertEqual([8,10,12,14,16,18,20,22,24,26,28,30],da.getValues())
6280 st2=da.getHiddenCppPointer()
6281 self.assertEqual(st1,st2)
6282 self.assertEqual([4,5,6,7,8,9,10,11,12,13,14,15],da.getValues())
6284 st2=da.getHiddenCppPointer()
6285 self.assertEqual(st1,st2)
6286 self.assertEqual([32,45,60,77,96,117,140,165,192,221,252,285],da.getValues())
6288 self.assertEqual(st1,st2)
6289 self.assertEqual([4,5,6,7,8,9,10,11,12,13,14,15],da.getValues())
6291 st2=da.getHiddenCppPointer()
6292 self.assertEqual(st1,st2)
6293 self.assertEqual([2,2, 3,3, 4,4, 5,5, 6,6, 7,7],da.getValues())
6295 da5=DataArrayInt.New()
6296 da5.setValues([5,4,3,2],4,1)
6297 da*=da5 # it works with unmathing number of compo
6298 st2=da.getHiddenCppPointer()
6299 self.assertEqual(st1,st2)
6300 self.assertEqual([10,10, 15,12,16,16,15,15, 18,12,14,14],da.getValues())
6302 st2=da.getHiddenCppPointer()
6303 self.assertEqual(st1,st2)
6304 self.assertEqual([4,4,3,0,4,4,3,3,0,0,2,2],da.getValues())
6309 ids=DataArrayInt.New()
6310 ids.setValues([3,4,7],3,1)
6312 self.assertEqual([7,8,9,10,11,12,13,14,15,5,8,9,5,8,9,22,23,24,25,26,27,5,8,9,31,32,33,34,35,36],da.getValues())
6314 da.rearrange(1) ; da.iota(7) ; da.rearrange(3)
6316 self.assertEqual([7,8,9,10,11,12,13,14,15,16,5,8,19,5,8,22,23,24,25,26,27,28,5,8,31,32,33,34,35,36],da.getValues())
6319 def testSwigDAIOp2(self):
6320 da=DataArrayInt.New()
6321 st=da.getHiddenCppPointer()
6331 self.assertEqual(st,da.getHiddenCppPointer())
6332 self.assertEqual(da.getValues(),[7,7,7,3,8,8,7,7,7,9,14,20,12,17,26,7,7,7,18,23,38,21,26,44,24,29,70,27,32,76])
6335 def testSwigDAIOp3(self):
6336 da=DataArrayInt.New()
6337 self.assertRaises(InterpKernelException,da.__len__)
6338 self.assertRaises(InterpKernelException,da.__int__)
6340 self.assertTrue(False)
6343 da.rearrange(1) ; da.fillWithZero()
6345 self.assertEqual(36,len(da));
6348 self.assertRaises(InterpKernelException,tmp.__int__)
6349 self.assertEqual(12,len(da));
6351 for elt in enumerate(l):
6354 ref=[0,0,0,0,0,1,0,0,2,0,0,3,0,0,4,0,0,5,0,0,6,0,0,7,0,0,8,0,0,9,0,0,10,0,0,11]
6355 self.assertEqual(ref,da.getValues());
6357 l=[int(elt) for elt in l1]
6358 self.assertEqual(ref,da.getValues());
6359 self.assertEqual(11,int(da[-1:]))
6362 def testSwigDADOp3(self):
6363 da=DataArrayDouble.New()
6364 self.assertRaises(InterpKernelException,da.__len__)
6365 self.assertRaises(InterpKernelException,da.__float__)
6367 self.assertTrue(False)
6370 da.rearrange(1) ; da.fillWithZero()
6372 self.assertEqual(36,len(da));
6375 self.assertRaises(InterpKernelException,tmp.__float__)
6376 self.assertEqual(12,len(da));
6378 for elt in enumerate(l):
6381 ref=[0.,0.,0.,0.,0.,1.,0.,0.,2.,0.,0.,3.,0.,0.,4.,0.,0.,5.,0.,0.,6.,0.,0.,7.,0.,0.,8.,0.,0.,9.,0.,0.,10.,0.,0.,11.]
6382 self.assertEqual(ref,da.getValues());
6384 l=[float(elt) for elt in l1]
6385 self.assertEqual(ref,da.getValues());
6386 self.assertEqual(11.,float(da[-1:]))
6389 def testSwigDataArrayIntIterator1(self):
6390 da=DataArrayInt.New()
6394 # __getitem__ testing
6399 self.assertEqual([3, 4, 6, 7, 9, 10, 12, 13],li)
6404 self.assertEqual([4, 7, 10, 13],li)
6409 self.assertEqual([4, 3, 2, 7, 6, 5, 10, 9, 8, 13, 12, 11],li)
6410 # __setitem__ testing
6412 da2=DataArrayInt.New()
6422 self.assertTrue(da.isEqual(da2))
6430 self.assertTrue(da.isUniform(5))
6437 self.assertEqual([8, 9, 12, 8, 9, 12, 8, 9, 12, 8, 9, 12],da.getValues())
6444 self.assertEqual([2, 3, 7, 5, 6, 7, 8, 9, 7, 11, 12, 7],da.getValues())
6447 def testSwigDataArrayDoubleIterator1(self):
6448 da=DataArrayDouble.New()
6452 # __getitem__ testing
6457 self.assertEqual([3, 4, 6, 7, 9, 10, 12, 13],li)
6462 self.assertEqual([4, 7, 10, 13],li)
6467 self.assertEqual([4, 3, 2, 7, 6, 5, 10, 9, 8, 13, 12, 11],li)
6468 # __setitem__ testing
6470 da2=DataArrayDouble.New()
6480 self.assertTrue(da.isEqual(da2,1e-12))
6488 self.assertTrue(da.isUniform(5,1e-12))
6495 self.assertEqual([8, 9, 12, 8, 9, 12, 8, 9, 12, 8, 9, 12],da.getValues())
6502 self.assertEqual([2, 3, 7, 5, 6, 7, 8, 9, 7, 11, 12, 7],da.getValues())
6505 def testSwigUMeshIterator1(self):
6506 m=MEDCouplingDataForTest.build2DTargetMesh_1()
6510 li1+=cell.getAllConn()[1:]
6511 li2+=[cell.getType()]
6513 self.assertEqual(li1,[0, 3, 4, 1, 1, 4, 2, 4, 5, 2, 6, 7, 4, 3, 7, 8, 5, 4])
6514 self.assertEqual(li2,[4, 3, 3, 4, 4])
6517 def testSwigUMeshIterator2(self):
6518 m=MEDCouplingDataForTest.build2DTargetMesh_1()
6519 self.assertRaises(InterpKernelException,m.cellsByType);
6520 m.rearrange2ConsecutiveCellTypes()
6524 for cellsByType in m.cellsByType():
6525 li1.append(cellsByType.getType())
6526 li2.append(cellsByType.getNumberOfElems())
6528 for cell in cellsByType:
6531 t[1]=cell.getAllConn()[1:]
6536 self.assertEqual(li1,[4, 3])
6537 self.assertEqual(li2,[3, 2])
6538 self.assertEqual(li3,[[[4, (0, 3, 4, 1)], [4, (6, 7, 4, 3)], [4, (7, 8, 5, 4)]], [[3, (1, 4, 2)], [3, (4, 5, 2)]]])
6541 def testDAIAggregateMulti1(self):
6542 a=DataArrayInt.New()
6543 a.setValues(range(4),2,2)
6545 b=DataArrayInt.New()
6546 b.setValues(range(6),3,2)
6547 c=DataArrayInt.Aggregate([a,b])
6548 self.assertEqual(range(4)+range(6),c.getValues())
6549 self.assertEqual("aa",c.getName())
6550 self.assertEqual(5,c.getNumberOfTuples())
6551 self.assertEqual(2,c.getNumberOfComponents())
6554 def testMergeUMeshes2(self):
6555 m1=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
6556 m2=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
6557 m3=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
6560 m2_2=m2.buildPartOfMySelf(vec1,False);
6562 m3_2=m3.buildPartOfMySelf(vec2,False);
6566 self.assertRaises(InterpKernelException,MEDCouplingUMesh.MergeUMeshes,ms+[None]);
6567 self.assertRaises(InterpKernelException,MEDCouplingUMesh.MergeUMeshes,ms+[3.4])
6568 m4=MEDCouplingUMesh.MergeUMeshes(ms);
6569 m4.checkCoherency();
6570 self.assertEqual(10,m4.getNumberOfCells());
6571 self.assertEqual(20,m4.getNumberOfNodes());
6572 self.assertEqual(45,m4.getMeshLength());
6573 m4bis=MEDCouplingMesh.MergeMeshes(ms);
6574 self.assertTrue(m4.isEqual(m4bis,1e-12))
6578 m4_1=m4.buildPartOfMySelf(vec3,False);
6579 m4_1.setName(m1.getName());
6580 self.assertTrue(m4_1.isEqual(m1,1e-12));
6583 m4_2=m4.buildPartOfMySelf(vec4,False);
6584 cellCor,nodeCor=m4_2.checkGeoEquivalWith(m2_2,10,1e-12);
6587 m4_3=m4.buildPartOfMySelf(vec5,False);
6588 self.assertEqual(2,m4_3.getNumberOfCells());
6589 self.assertEqual(3,m4_3.getNumberOfNodes());
6591 m4_3.setName(m3_2.getName());
6592 self.assertTrue(m4_3.isEqual(m3_2,1e-12));
6596 def testBuild0DMeshFromCoords1(self):
6597 sourceCoords=[-0.3,-0.3,0., 0.7,-0.3,0., -0.3,0.7,0., 0.7,0.7,0.]
6598 coo=DataArrayDouble.New();
6599 coo.setValues(sourceCoords,4,3);
6600 coo.setName("My0D");
6601 m=MEDCouplingUMesh.Build0DMeshFromCoords(coo);
6603 self.assertEqual(4,m.getNumberOfNodes());
6604 self.assertEqual(4,m.getNumberOfCells());
6605 self.assertEqual(3,m.getSpaceDimension());
6606 self.assertEqual(0,m.getMeshDimension());
6607 types1=m.getAllTypes();
6608 self.assertEqual([NORM_POINT1],types1);
6610 conn=m.getNodeIdsOfCell(i);
6611 self.assertEqual([i],conn);
6612 self.assertTrue(NORM_POINT1==m.getTypeOfCell(i));
6614 self.assertEqual(m.getName(),"My0D");
6617 def testDescriptionInMeshTimeUnit1(self):
6619 m=MEDCouplingDataForTest.build2DTargetMesh_1();
6620 m.setDescription(text1);
6621 self.assertEqual(m.getDescription(),text1);
6623 self.assertTrue(m.isEqual(m2,1e-12));
6624 self.assertEqual(m2.getDescription(),text1);
6625 m2.setDescription("ggg");
6626 self.assertTrue(not m.isEqual(m2,1e-12));
6628 f=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
6629 f.setTimeUnit(text1);
6630 self.assertEqual(f.getTimeUnit(),text1);
6632 self.assertEqual(f2.getTimeUnit(),text1);
6636 def testMultiFields1(self):
6637 mfs=MEDCouplingDataForTest.buildMultiFields_1();
6639 dms,refs=mfs.getDifferentMeshes()
6640 das=mfs.getArrays();
6641 das2,refs2=mfs.getDifferentArrays()
6642 self.assertEqual(5,len(mfs.getFields()))
6643 self.assertEqual(1,len(mfs.getFields()[0].getArrays()));
6644 self.assertEqual(2,len(mfs.getFields()[1].getArrays()));
6645 self.assertEqual(1,len(mfs.getFields()[2].getArrays()));
6646 self.assertEqual(1,len(mfs.getFields()[3].getArrays()));
6647 self.assertEqual(1,len(mfs.getFields()[4].getArrays()));
6648 self.assertEqual(5,len(ms));
6649 self.assertEqual(2,len(dms));
6650 self.assertEqual(6,len(das));
6651 self.assertEqual(5,len(das2));
6653 self.assertTrue(mfs.isEqual(mfs2,1e-12,1e-12))
6656 def testFieldOverTime1(self):
6657 fs=MEDCouplingDataForTest.buildMultiFields_2();
6658 self.assertRaises(InterpKernelException,MEDCouplingFieldOverTime.New,fs);
6659 f4bis=fs[4].buildNewTimeReprFromThis(ONE_TIME,False);
6661 self.assertRaises(InterpKernelException,MEDCouplingFieldOverTime.New,fs);
6662 f4bis.setTime(2.7,20,21);
6663 fot=MEDCouplingFieldOverTime.New(fs);
6664 dt=fot.getDefinitionTimeZone();
6665 hs=dt.getHotSpotsTime();
6666 self.assertEqual(6,len(hs));
6667 expected1=[0.2,0.7,1.2,1.35,1.7,2.7]
6669 self.assertAlmostEqual(expected1[i],hs[i],12);
6671 meshId,arrId,arrIdInField,fieldId=dt.getIdsOnTimeRight(0.2);
6672 self.assertEqual(0,meshId);
6673 self.assertEqual(0,arrId);
6674 self.assertEqual(0,arrIdInField);
6675 self.assertEqual(0,fieldId);
6677 meshId,arrId,arrIdInField,fieldId=dt.getIdsOnTimeRight(0.7);
6678 self.assertEqual(0,meshId);
6679 self.assertEqual(1,arrId);
6680 self.assertEqual(0,arrIdInField);
6681 self.assertEqual(1,fieldId);
6683 meshId,arrId,arrIdInField,fieldId=dt.getIdsOnTimeLeft(1.2);#**** WARNING left here
6684 self.assertEqual(0,meshId);
6685 self.assertEqual(2,arrId);
6686 self.assertEqual(1,arrIdInField);
6687 self.assertEqual(1,fieldId);
6689 meshId,arrId,arrIdInField,fieldId=dt.getIdsOnTimeRight(1.2);#**** WARNING right again here
6690 self.assertEqual(1,meshId);
6691 self.assertEqual(3,arrId);
6692 self.assertEqual(0,arrIdInField);
6693 self.assertEqual(2,fieldId);
6695 meshId,arrId,arrIdInField,fieldId=dt.getIdsOnTimeRight(1.35);
6696 self.assertEqual(1,meshId);
6697 self.assertEqual(3,arrId);
6698 self.assertEqual(0,arrIdInField);
6699 self.assertEqual(2,fieldId);
6701 meshId,arrId,arrIdInField,fieldId=dt.getIdsOnTimeRight(1.7);
6702 self.assertEqual(0,meshId);
6703 self.assertEqual(3,arrId);
6704 self.assertEqual(0,arrIdInField);
6705 self.assertEqual(3,fieldId);
6707 meshId,arrId,arrIdInField,fieldId=dt.getIdsOnTimeRight(2.7);
6708 self.assertEqual(1,meshId);
6709 self.assertEqual(4,arrId);
6710 self.assertEqual(0,arrIdInField);
6711 self.assertEqual(4,fieldId);
6713 dt2=MEDCouplingDefinitionTime();
6714 self.assertTrue(not dt2.isEqual(dt));
6716 dt2.assign(dt);#to check memory management
6717 self.assertTrue(dt2.isEqual(dt));
6719 dt3=MEDCouplingDefinitionTime();
6723 def testDAICheckAndPreparePermutation1(self):
6724 vals1=[9,10,0,6,4,11,3,7];
6725 expect1=[5,6,0,3,2,7,1,4];
6726 vals2=[9,10,0,6,10,11,3,7];
6727 da=DataArrayInt.New();
6728 da.setValues(vals1,8,1);
6729 da2=da.checkAndPreparePermutation();
6730 self.assertEqual(8,da2.getNumberOfTuples());
6731 self.assertEqual(1,da2.getNumberOfComponents());
6733 self.assertEqual(expect1[i],da2.getIJ(i,0));
6736 da=DataArrayInt.New();
6739 da2=da.checkAndPreparePermutation();
6740 self.assertEqual(8,da2.getNumberOfTuples());
6741 self.assertEqual(1,da2.getNumberOfComponents());
6742 self.assertTrue(da2.isIdentity());
6744 da=DataArrayInt.New();
6746 da.setValues(vals2,8,1);
6747 self.assertRaises(InterpKernelException,da.checkAndPreparePermutation);
6750 def testDAIChangeSurjectiveFormat1(self):
6751 vals1=[0,3,2,3,2,2,1,2]
6752 expected1=[0,1,2,6,8]
6753 expected2=[0, 6, 2,4,5,7, 1,3]
6754 da=DataArrayInt.New();
6755 da.setValues(vals1,8,1);
6757 da2,da2I=da.changeSurjectiveFormat(4);
6758 self.assertEqual(5,da2I.getNumberOfTuples());
6759 self.assertEqual(8,da2.getNumberOfTuples());
6760 self.assertEqual(expected1,da2I.getValues());
6761 self.assertEqual(expected2,da2.getValues());
6763 self.assertRaises(InterpKernelException,da.changeSurjectiveFormat,3);
6767 def testUMeshGetCellIdsLyingOnNodes1(self):
6768 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
6769 nodeIds1=[1,2,3,4,6]
6771 da=m.getCellIdsLyingOnNodes(nodeIds1,True);
6772 self.assertEqual(1,da.getNumberOfTuples());
6773 self.assertEqual(1,da.getNumberOfComponents());
6774 self.assertEqual(1,da.getIJ(0,0));
6775 da2=DataArrayInt.New()
6776 da2.setValues(nodeIds2,2,1)
6777 da=m.getCellIdsLyingOnNodes(da2,False);
6778 self.assertEqual(2,da.getNumberOfTuples());
6779 self.assertEqual(1,da.getNumberOfComponents());
6780 self.assertEqual(3,da.getIJ(0,0));
6781 self.assertEqual(4,da.getIJ(1,0));
6784 def testUMeshFindCellIdsOnBoundary1(self):
6785 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
6786 da5=m.findCellIdsOnBoundary();
6787 self.assertEqual(5,da5.getNumberOfTuples());
6788 self.assertTrue(da5.isIdentity());
6791 def testMeshSetTime1(self):
6792 m1=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
6793 m2=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
6795 self.assertTrue(m1.isEqual(m2,1e-12));
6796 m1.setTime(3.14,6,7);
6797 tmp3,tmp1,tmp2=m1.getTime();
6798 self.assertEqual(6,tmp1);
6799 self.assertEqual(7,tmp2);
6800 self.assertAlmostEqual(3.14,tmp3,12);
6801 self.assertTrue(not m1.isEqual(m2,1e-12));
6802 m2.setTime(3.14,6,7);
6803 self.assertTrue(m1.isEqual(m2,1e-12));
6804 m1.setTimeUnit("ms");
6805 self.assertTrue(m1.getTimeUnit()=="ms");
6806 m1.setTimeUnit("us");
6807 self.assertTrue(m1.getTimeUnit()=="us");
6808 self.assertTrue(not m1.isEqual(m2,1e-12));
6809 m2.setTimeUnit("us");
6810 self.assertTrue(m1.isEqual(m2,1e-12));
6811 m2.setTime(3.14,6,8);
6812 self.assertTrue(not m1.isEqual(m2,1e-12));
6813 m2.setTime(3.14,7,7);
6814 self.assertTrue(not m1.isEqual(m2,1e-12));
6815 m2.setTime(3.15,6,7);
6816 self.assertTrue(not m1.isEqual(m2,1e-12));
6818 m1.setTime(10.34,55,12);
6820 self.assertTrue(m1.isEqual(m3,1e-12));
6821 tmp3,tmp1,tmp2=m3.getTime();
6822 self.assertEqual(55,tmp1);
6823 self.assertEqual(12,tmp2);
6824 self.assertAlmostEqual(10.34,tmp3,12);
6828 a=DataArrayDouble.New();
6829 a.setValues(coo1,4,1);
6830 b=MEDCouplingCMesh.New();
6833 b.setTime(5.67,8,100);
6834 tmp3,tmp1,tmp2=b.getTime();
6835 self.assertEqual(8,tmp1);
6836 self.assertEqual(100,tmp2);
6837 self.assertAlmostEqual(5.67,tmp3,12);
6839 self.assertTrue(c.isEqual(b,1e-12));
6840 tmp3,tmp1,tmp2=c.getTime();
6841 self.assertEqual(8,tmp1);
6842 self.assertEqual(100,tmp2);
6843 self.assertAlmostEqual(5.67,tmp3,12);
6846 def testApplyFuncTwo1(self):
6847 m1=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
6848 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
6851 vals=[1.,11.,21.,2.,12.,22.,3.,13.,23.,4.,14.,24.,5.,15.,25.]
6852 da=DataArrayDouble.New();
6853 da.setValues(vals,5,3);
6856 self.assertRaises(InterpKernelException,da.applyFunc2,1,"y+z");
6857 da.setInfoOnComponent(0,"x [m]");
6858 da.setInfoOnComponent(1,"y [mm]");
6859 da.setInfoOnComponent(2,"z [km]");
6861 self.assertRaises(InterpKernelException, da.applyFunc2, 1, "x+y+zz+zzz");
6862 self.assertRaises(InterpKernelException, da.applyFunc2, 1, "toto(x+y)");
6863 self.assertRaises(InterpKernelException, da.applyFunc2, 1, "x/0");
6865 da2=da.applyFunc2(1,"y+z");
6866 self.assertEqual(1,da2.getNumberOfComponents());
6867 self.assertEqual(5,da2.getNumberOfTuples());
6868 expected1=[32.,34.,36.,38.,40.]
6870 self.assertAlmostEqual(expected1[i],da2.getIJ(0,i),12);
6872 da2=da.applyFunc(1,"y+z");
6873 expected2=[12.,14.,16.,18.,20.]
6875 self.assertAlmostEqual(expected2[i],da2.getIJ(0,i),12);
6878 self.assertEqual(3,f1.getNumberOfComponents());
6879 self.assertEqual(5,f1.getNumberOfTuples());
6880 f1.applyFunc2(1,"y+z");
6881 self.assertEqual(1,f1.getNumberOfComponents());
6882 self.assertEqual(5,f1.getNumberOfTuples());
6884 self.assertAlmostEqual(expected1[i],f1.getArray().getIJ(0,i),12);
6889 def testApplyFuncThree1(self):
6890 m1=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
6891 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
6894 vals=[1.,11.,21.,2.,12.,22.,3.,13.,23.,4.,14.,24.,5.,15.,25.]
6895 da=DataArrayDouble.New();
6896 da.setValues(vals,5,3);
6900 vs[0]="x"; vs[1]="Y"; vs[2]="z";
6901 self.assertRaises(InterpKernelException, da.applyFunc3, 1, vs, "y+z");
6902 self.assertRaises(InterpKernelException, da.applyFunc3, 1, vs, "x+Y+z+zz+zzz");
6903 self.assertRaises(InterpKernelException, da.applyFunc3, 1, vs, "x/0");
6905 da2=da.applyFunc3(1,vs,"y+z");
6906 expected1=[32.,34.,36.,38.,40.]
6908 self.assertAlmostEqual(expected1[i],da2.getIJ(0,i),12);
6910 self.assertRaises(InterpKernelException, da.applyFunc3, 1, ["x","y","z","a"],"x+a")
6912 self.assertEqual(3,f1.getNumberOfComponents());
6913 self.assertEqual(5,f1.getNumberOfTuples());
6914 f1.applyFunc3(1,vs,"y+z");
6915 self.assertEqual(1,f1.getNumberOfComponents());
6916 self.assertEqual(5,f1.getNumberOfTuples());
6918 self.assertAlmostEqual(expected1[i],f1.getArray().getIJ(0,i),12);
6922 def testFillFromAnalyticTwo1(self):
6923 m1=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
6924 m1.setTime(3.4,5,6); m1.setTimeUnit("us");
6925 self.assertRaises(InterpKernelException,m1.fillFromAnalytic2,ON_NODES,1,"y+z");
6926 m1.getCoords().setInfoOnComponent(0,"x [m]");
6927 m1.getCoords().setInfoOnComponent(1,"y");
6928 m1.getCoords().setInfoOnComponent(2,"z");
6929 f1=m1.fillFromAnalytic2(ON_NODES,1,"y+z");
6930 self.assertAlmostEqual(3.4,f1.getTime()[0],12) ; self.assertEqual(5,f1.getTime()[1]) ; self.assertEqual(6,f1.getTime()[2])
6931 self.assertEqual("us",f1.getTimeUnit())
6932 self.assertEqual(1,f1.getNumberOfComponents());
6933 self.assertEqual(9,f1.getNumberOfTuples());
6934 expected1=[0.2, 0.7, 1.2, 0.7, 1.2, 1.7, 1.2, 1.7, 2.2]
6936 self.assertAlmostEqual(expected1[i],f1.getArray().getIJ(0,i),12);
6940 def testFillFromAnalyticThree1(self):
6941 m1=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
6942 m1.setTime(3.4,5,6); m1.setTimeUnit("us");
6944 vs[0]="x"; vs[1]="Y"; vs[2]="z";
6945 self.assertRaises(InterpKernelException,m1.fillFromAnalytic3,ON_NODES,1,vs,"y+z");
6947 f1=m1.fillFromAnalytic3(ON_NODES,1,vs,"y+z");
6948 self.assertAlmostEqual(3.4,f1.getTime()[0],12) ; self.assertEqual(5,f1.getTime()[1]) ; self.assertEqual(6,f1.getTime()[2])
6949 self.assertEqual("us",f1.getTimeUnit())
6950 self.assertEqual(1,f1.getNumberOfComponents());
6951 self.assertEqual(9,f1.getNumberOfTuples());
6952 expected1=[0.2, 0.7, 1.2, 0.7, 1.2, 1.7, 1.2, 1.7, 2.2]
6954 self.assertAlmostEqual(expected1[i],f1.getArray().getIJ(0,i),12);
6958 def testDAUnitVar1(self):
6959 da=DataArrayDouble.New();
6961 da.setInfoOnComponent(0,"XPS [m]");
6962 st1=da.getVarOnComponent(0);
6963 self.assertTrue(st1=="XPS");
6964 st2=da.getUnitOnComponent(0);
6965 self.assertTrue(st2=="m");
6967 da.setInfoOnComponent(0,"XPS [m]");
6968 st1=da.getVarOnComponent(0);
6969 self.assertTrue(st1=="XPS");
6970 st2=da.getUnitOnComponent(0);
6971 self.assertTrue(st2=="m");
6973 da.setInfoOnComponent(0,"XPP [m]");
6974 st1=da.getVarOnComponent(0);
6975 self.assertTrue(st1=="XPP");
6976 st2=da.getUnitOnComponent(0);
6977 self.assertTrue(st2=="m");
6979 da.setInfoOnComponent(0,"XPP kdep kefer [ m ]");
6980 st1=da.getVarOnComponent(0);
6981 self.assertTrue(st1=="XPP kdep kefer");
6982 st2=da.getUnitOnComponent(0);
6983 self.assertTrue(st2==" m ");
6985 da.setInfoOnComponent(0," XPP k[ dep k]efer [ m^ 2/s^3*kJ ]");
6986 st1=da.getVarOnComponent(0);
6987 self.assertTrue(st1==" XPP k[ dep k]efer");
6988 st2=da.getUnitOnComponent(0);
6989 self.assertTrue(st2==" m^ 2/s^3*kJ ");
6991 da.setInfoOnComponent(0," XPP kefer ");
6992 st1=da.getVarOnComponent(0);
6993 self.assertTrue(st1==" XPP kefer ");
6994 st2=da.getUnitOnComponent(0);
6995 self.assertTrue(st2=="");
6997 da.setInfoOnComponent(0,"temperature( bof)");
6998 st1=da.getVarOnComponent(0);
6999 self.assertTrue(st1=="temperature( bof)");
7000 st2=da.getUnitOnComponent(0);
7001 self.assertTrue(st2=="");
7003 da.setInfoOnComponent(0,"kkk [m]");
7004 da.setInfoOnComponent(1,"ppp [m^2/kJ]");
7005 da.setInfoOnComponent(2,"abcde [MW/s]");
7007 vs=da.getVarsOnComponent();
7008 self.assertEqual(3,len(vs));
7009 self.assertTrue(vs[0]=="kkk");
7010 self.assertTrue(vs[1]=="ppp");
7011 self.assertTrue(vs[2]=="abcde");
7012 vs=da.getUnitsOnComponent();
7013 self.assertEqual(3,len(vs));
7014 self.assertTrue(vs[0]=="m");
7015 self.assertTrue(vs[1]=="m^2/kJ");
7016 self.assertTrue(vs[2]=="MW/s");
7019 def testGaussCoordinates1(self):
7020 #Testing 1D cell types
7021 m1=MEDCouplingDataForTest.build1DMultiTypes_1();
7022 f=MEDCouplingFieldDouble.New(ON_GAUSS_PT,ONE_TIME);
7027 f.setGaussLocalizationOnType(NORM_SEG2,refCoo1,gsCoo1,wg1);
7030 refCoo2=[-1.0,1.0,0.0];
7031 f.setGaussLocalizationOnType(NORM_SEG3,refCoo2,gsCoo2,wg2);
7033 resToTest=f.getLocalizationOfDiscr();
7034 self.assertEqual(3,resToTest.getNumberOfComponents());
7035 self.assertEqual(2,resToTest.getNumberOfTuples());
7036 expected1=[0.6,0.6,0.6, 0.6,0.6,0.6]
7038 self.assertAlmostEqual(expected1[i],resToTest.getIJ(0,i),14);
7041 #Testing 2D cell types
7042 m2=MEDCouplingDataForTest.build2DMultiTypes_1();
7043 f=MEDCouplingFieldDouble.New(ON_GAUSS_PT,ONE_TIME);
7046 tria3CooGauss=[ 0.1, 0.8, 0.2, 0.7 ]
7047 gsCoo3=tria3CooGauss
7048 tria3CooRef=[ 0.0, 0.0, 1.0 , 0.0, 0.0, 1.0 ]
7049 refCoo3=tria3CooRef;
7050 f.setGaussLocalizationOnType(NORM_TRI3,refCoo3,gsCoo3,wg3);
7052 tria6CooGauss=[ 0.3, 0.2, 0.2, 0.1, 0.2, 0.4 ]
7053 gsCoo4=tria6CooGauss;
7054 tria6CooRef=[0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.5, 0.0, 0.5, 0.5, 0.0, 0.5]
7055 refCoo4=tria6CooRef;
7056 f.setGaussLocalizationOnType(NORM_TRI6,refCoo4,gsCoo4,wg4);
7057 wg5=[0.3,0.3,0.3,0.3];
7058 quad4CooGauss=[ 0.3, 0.2, 0.2, 0.1, 0.2, 0.4, 0.15, 0.27 ]
7059 gsCoo5=quad4CooGauss;
7060 quad4CooRef=[-1.0, 1.0, -1.0, -1.0, 1.0, -1.0, 1.0, 1.0]
7061 refCoo5=quad4CooRef;
7062 f.setGaussLocalizationOnType(NORM_QUAD4,refCoo5,gsCoo5,wg5);
7063 wg6=[0.3,0.3,0.3,0.3];
7064 quad8CooGauss=[ 0.34, 0.16, 0.21, 0.3, 0.23, 0.4, 0.14, 0.37 ]
7065 gsCoo6=quad8CooGauss;
7066 quad8CooRef=[ -1.0, -1.0, 1.0, -1.0, 1.0, 1.0, -1.0, 1.0, 0.0, -1.0, 1.0, 0.0, 0.0, 1.0, -1.0, 0.0]
7067 refCoo6=quad8CooRef;
7068 f.setGaussLocalizationOnType(NORM_QUAD8,refCoo6,gsCoo6,wg6);
7070 resToTest=f.getLocalizationOfDiscr();
7071 self.assertEqual(3,resToTest.getNumberOfComponents());
7072 self.assertEqual(13,resToTest.getNumberOfTuples());#2+3+4+4 gauss points for resp TRI3,TRI6,QUAD4,QUAD8
7073 expected2=[5.1,1.55,0.0, 4.7,1.65,0.0,
7074 2.32,1.52,0.0, 1.6,1.32,0.0, 3.52,1.26,0.0,#TRI6
7075 2.6,1.6,0.0, 2.4,1.8,0.0, 2.4,1.2,0.0, 2.3,1.46,0.0,#QUAD4
7076 2.32,2.68,0.0, 2.6,2.42,0.0, 2.8,2.46,0.0, 2.74,2.28,0.0 ];#QUAD8
7077 for i in xrange(39):
7078 self.assertAlmostEqual(expected2[i],resToTest.getIJ(0,i),14);
7081 #Testing 3D cell types
7082 m3=MEDCouplingDataForTest.build3DMultiTypes_1();
7083 f=MEDCouplingFieldDouble.New(ON_GAUSS_PT,ONE_TIME);
7087 tetra4CooGauss=[0.34, 0.16, 0.21]
7088 gsCoo7=tetra4CooGauss;
7089 tetra4CooRef=[0.0,1.0,0.0, 0.0,0.0,1.0, 0.0,0.0,0.0, 1.0,0.0,0.0]
7090 refCoo7=tetra4CooRef;
7091 f.setGaussLocalizationOnType(NORM_TETRA4,refCoo7,gsCoo7,wg7);
7093 tetra10CooGauss=[0.2, 0.3, 0.1]
7094 gsCoo8=tetra10CooGauss;
7095 tetra10CooRef=[0.0,1.0,0.0, 0.0,0.0,0.0, 0.0,0.0,1.0, 1.0,0.0,0.0, 0.0,0.5,0.0, 0.0,0.0,0.5, 0.0,0.5,0.5, 0.5,0.5,0.0, 0.5,0.0,0.0, 0.5,0.0,0.5]
7096 refCoo8=tetra10CooRef;
7097 f.setGaussLocalizationOnType(NORM_TETRA10,refCoo8,gsCoo8,wg8);
7099 pyra5CooGauss=[0.2, 0.3, 0.1]
7100 gsCoo9=pyra5CooGauss;
7101 pyra5CooRef=[1.0,0.0,0.0, 0.0,1.0,0.0, -1.0,0.0,0.0, 0.0,-1.0,0.0, 0.0,0.0,1.0]
7102 refCoo9=pyra5CooRef;
7103 f.setGaussLocalizationOnType(NORM_PYRA5,refCoo9,gsCoo9,wg9);
7105 pyra13CooGauss=[0.1, 0.2, 0.7]
7106 gsCoo10=pyra13CooGauss;
7107 pyra13CooRef=[1.0,0.0,0.0, 0.0,1.0,0.0,-1.0,0.0,0.0,0.0,-1.0,0.0,0.0,0.0,1.0,0.5,0.5,0.0,-0.5,0.5,0.0,-0.5,-0.5,0.0,0.5,-0.5,0.0,0.5,0.0,0.5,0.0,0.5,0.5,-0.5,0.0,0.5,0.0,-0.5,0.5]
7108 refCoo10=pyra13CooRef;
7109 f.setGaussLocalizationOnType(NORM_PYRA13,refCoo10,gsCoo10,wg10);
7111 penta6CooGauss=[0.2, 0.3, 0.1]
7112 gsCoo11=penta6CooGauss;
7113 penta6CooRef=[-1.0,1.0,0.0,-1.0,-0.0,1.0,-1.0,0.0,0.0,1.0,1.0,0.0,1.0,0.0,1.0,1.0,0.0,0.0]
7114 refCoo11=penta6CooRef;
7115 f.setGaussLocalizationOnType(NORM_PENTA6,refCoo11,gsCoo11,wg11);
7117 penta15CooGauss=[0.2, 0.3,0.15]
7118 gsCoo12=penta15CooGauss;
7119 penta15CooRef=[-1.0,1.0,0.0,-1.0,0.0,1.0,-1.0,0.0,0.0,1.0,1.0,0.0,1.0,0.0,1.0,1.0,0.0,0.0,-1.0,0.5,0.5,-1.0,0.0,0.5,-1.0,0.5,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.5,0.5,1.0,0.0, 0.5,1.0,0.5,0.0]
7120 refCoo12=penta15CooRef;
7121 f.setGaussLocalizationOnType(NORM_PENTA15,refCoo12,gsCoo12,wg12);
7123 hexa8CooGauss=[0.2,0.3,0.15]
7124 gsCoo13=hexa8CooGauss;
7125 hexa8CooRef=[-1.0,-1.0,-1.0,1.0,-1.0,-1.0,1.0,1.0,-1.0,-1.0,1.0,-1.0,-1.0,-1.0,1.0,1.0,-1.0,1.0,1.0,1.0,1.0,-1.0,1.0,1.0]
7126 refCoo13=hexa8CooRef;
7127 f.setGaussLocalizationOnType(NORM_HEXA8,refCoo13,gsCoo13,wg13);
7129 hexa20CooGauss=[0.11,0.3,0.55]
7130 gsCoo14=hexa20CooGauss;
7131 hexa20CooRef=[-1.0,-1.0,-1.0,1.0,-1.0,-1.0,1.0,1.0,-1.0,-1.0,1.0,-1.0,-1.0,-1.0,1.0,1.0,-1.0,1.0,1.0,1.0,1.0,-1.0,1.0,1.0,0.0,-1.0,-1.0,1.0,0.0,-1.0,0.0,1.0,-1.0,-1.0,0.0,-1.0,-1.0,-1.0,0.0,1.0,-1.0,0.0,1.0,1.0,0.0,-1.0,1.0,0.0,0.0,-1.0,1.0,1.0,0.0,1.0,0.0,1.0,1.0,-1.0,0.0,1.0]
7132 refCoo14=hexa20CooRef;
7133 f.setGaussLocalizationOnType(NORM_HEXA20,refCoo14,gsCoo14,wg14);
7135 resToTest=f.getLocalizationOfDiscr();
7136 self.assertEqual(3,resToTest.getNumberOfComponents());
7137 self.assertEqual(8,resToTest.getNumberOfTuples());#2+3+4+4 gauss points for resp TRI3,TRI6,QUAD4,QUAD8
7138 expected3=[1.312,3.15,1.02, 0.56,3.3,0.6, 2.18,1.1,0.2, 1.18,1.54,0.98, 1.56,0.3,3.6, 1.613,0.801,4.374, 2.6,2.4,2.3, 2.31232,2.3933985,1.553255]
7139 for i in xrange(24):
7140 self.assertAlmostEqual(expected3[i],resToTest.getIJ(0,i),14);
7145 def testP2Localization1(self):
7146 m=MEDCouplingUMesh.New("testP2",2);
7147 coords=[0.,2.,3.5,0.,4.5,1.5,1.2,0.32,3.4,1.,2.1,2.4]
7149 coo=DataArrayDouble.New();
7150 coo.setValues(coords,6,2);
7153 m.insertNextCell(NORM_TRI6,6,conn[0:6])
7154 m.finishInsertingCells();
7156 f=MEDCouplingFieldDouble.New(ON_NODES,ONE_TIME);
7158 da=DataArrayDouble.New();
7159 vals1=[1.2,2.3,3.4, 2.2,3.3,4.4, 3.2,4.3,5.4, 4.2,5.3,6.4, 5.2,6.3,7.4, 6.2,7.3,8.4]
7160 da.setValues(vals1,6,3);
7164 locs=f.getValueOnMulti(loc);
7165 expected1=[6.0921164547752236, 7.1921164547752232, 8.2921164547752255]
7167 self.assertAlmostEqual(expected1[i],locs.getIJ(0,i),12);
7171 def testP2Localization2(self):
7172 m=MEDCouplingUMesh.New("testP2_2",3);
7173 coords=[0.33312787792955395, -0.35155740179580952, -0.03567564825034563, 1.307146326477638, -0.57234557776250305, -0.08608044208272235, 0.5551834466499993, 0.62324964668794192, -0.014638951108536295, 0.37761817224442129, -0.38324019806913578, 0.96283164472856886, 0.79494856035658679, -0.40628057809270046, 0.0021004190225864614, 1.023740446371799, 0.07665912970471335, -0.072889657161871096, 0.54564584619517376, 0.11132872093429744, 0.039647326652013051, 0.27164784387819052, -0.42018012100866675, 0.46563376500745146, 0.89501965094896418, -0.56148455362735061, 0.43337469695473035, 0.49118025152924394, 0.093884938060727313, 0.47216346905220891]
7174 conn=[0,1,2,3,4,5,6,7,8,9]
7175 coo=DataArrayDouble.New();
7176 coo.setValues(coords,10,3);
7179 m.insertNextCell(NORM_TETRA10,10,conn[0:10])
7180 m.finishInsertingCells();
7182 f=MEDCouplingFieldDouble.New(ON_NODES,ONE_TIME);
7184 da=DataArrayDouble.New();
7185 vals1=[1.1,2.1,3.1,4.1,5.2,6.2,7.2,8.2,9.2,10.2]
7186 da.setValues(vals1,10,1);
7189 loc=[0.64637931739890486, -0.16185896817550552, 0.22678966365273748]
7190 locs=f.getValueOnMulti(loc);
7191 expected1=[10.0844021968047]
7193 self.assertAlmostEqual(expected1[i],locs.getIJ(0,i),12);
7197 def testGetValueOn2(self):
7198 m=MEDCouplingDataForTest.build2DTargetMesh_1();
7199 f=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
7201 arr=DataArrayDouble.New();
7202 nbOfCells=m.getNumberOfCells();
7204 values1=[7.,107.,10007.,8.,108.,10008.,9.,109.,10009.,10.,110.,10010.,11.,111.,10011.]
7205 arr.setValues(values1,nbOfCells,3);
7206 loc=[-0.05,-0.05, 0.55,-0.25, 0.55,0.15, -0.05,0.45, 0.45,0.45]
7208 locs=f.getValueOnMulti(loc);
7209 self.assertEqual(5,locs.getNumberOfTuples());
7210 self.assertEqual(3,locs.getNumberOfComponents());
7211 for j in xrange(15):
7212 self.assertAlmostEqual(values1[j],locs.getIJ(0,j),12);
7215 f=MEDCouplingFieldDouble.New(ON_NODES,NO_TIME);
7217 arr=DataArrayDouble.New();
7218 nbOfNodes=m.getNumberOfNodes();
7220 values2=[7.,107.,10007.,8.,108.,10008.,9.,109.,10009.,10.,110.,10010.,11.,111.,10011.,12.,112.,10012.,13.,113.,10013.,14.,114.,10014.,15.,115.,10015.]
7221 arr.setValues(values2,nbOfNodes,3);
7222 loc2=[0.5432,-0.2432, 0.5478,0.1528, 0.5432,-0.2432, 0.5432,-0.2432]
7223 expected2=[9.0272, 109.0272, 10009.0272, 11.4124,111.4124,10011.4124, 9.0272, 109.0272, 10009.0272, 9.0272, 109.0272, 10009.0272]
7225 loc3=DataArrayDouble.New()
7226 loc3.setValues(loc2,4,2);
7227 locs=f.getValueOnMulti(loc3);
7228 self.assertEqual(4,locs.getNumberOfTuples());
7229 self.assertEqual(3,locs.getNumberOfComponents());
7230 for i in xrange(12):
7231 self.assertAlmostEqual(expected2[i],locs.getIJ(0,i),12);
7236 def testDAIGetIdsNotEqual1(self):
7237 d=DataArrayInt.New();
7238 vals1=[2,3,5,6,8,5,5,6,1,-5]
7239 d.setValues(vals1,10,1);
7240 d2=d.getIdsNotEqual(5);
7241 self.assertEqual(7,d2.getNumberOfTuples());
7242 self.assertEqual(1,d2.getNumberOfComponents());
7243 expected1=[0,1,3,4,7,8,9]
7245 self.assertEqual(expected1[i],d2.getIJ(0,i));
7248 self.assertRaises(InterpKernelException,d.getIdsNotEqual,5);
7252 d3=d.getIdsNotEqualList(vals3);
7253 self.assertEqual(5,d3.getNumberOfTuples());
7254 self.assertEqual(1,d3.getNumberOfComponents());
7255 expected2=[0,1,4,8,9]
7257 self.assertEqual(expected2[i],d3.getIJ(0,i));
7261 def testDAIComputeOffsets1(self):
7262 d=DataArrayInt.New();
7264 expected1=[0,3,8,9,11,11]
7265 d.setValues(vals1,6,1);
7267 self.assertEqual(6,d.getNumberOfTuples());
7268 self.assertEqual(1,d.getNumberOfComponents());
7270 self.assertEqual(expected1[i],d.getIJ(0,i));
7274 def testUMeshHexagonPrism1(self):
7275 coords=[0.8660254037844386, 0.5, 0.0, 0.0, 1.0, 0.0, -0.8660254037844386, 0.5, 0.0, -0.8660254037844386, -0.5, 0.0, 0.0, -1.0, 0.0, 0.8660254037844386, -0.5, 0.0,
7276 0.8660254037844386, 0.5, 2.0, 0.0, 1.0, 2.0, -0.8660254037844386, 0.5, 2.0, -0.8660254037844386, -0.5, 2.0, 0.0, -1.0, 2.0, 0.8660254037844386, -0.5, 2.0];
7277 conn=[1,2,3,4,5,0,7,8,9,10,11,6]
7278 mesh=MEDCouplingUMesh.New("MyFirstHexagonalPrism",3);
7279 coo=DataArrayDouble.New();
7280 coo.setValues(coords,12,3);
7281 mesh.setCoords(coo);
7282 mesh.allocateCells(1);
7283 mesh.insertNextCell(NORM_HEXGP12,12,conn[0:12])
7284 mesh.finishInsertingCells();
7286 mesh.checkCoherency();
7287 vols=mesh.getMeasureField(False);
7288 self.assertEqual(1,vols.getNumberOfTuples());
7289 self.assertEqual(1,vols.getNumberOfComponents());
7290 self.assertAlmostEqual(-5.196152422706632,vols.getIJ(0,0),12);
7291 bary=mesh.getBarycenterAndOwner();
7292 self.assertEqual(1,bary.getNumberOfTuples());
7293 self.assertEqual(3,bary.getNumberOfComponents());
7294 expected1=[0.,0.,1.]
7296 self.assertAlmostEqual(expected1[i],bary.getIJ(0,i),12);
7298 d1=DataArrayInt.New();
7299 d2=DataArrayInt.New();
7300 d3=DataArrayInt.New();
7301 d4=DataArrayInt.New();
7302 m2=mesh.buildDescendingConnectivity(d1,d2,d3,d4);
7303 self.assertEqual(8,m2.getNumberOfCells());
7304 expected4=[[1,2,3,4,5,0],[7,6,11,10,9,8],[1,7,8,2],[2,8,9,3],[3,9,10,4],[4,10,11,5],[5,11,6,0],[0,6,7,1]];
7305 expected2=[NORM_POLYGON, NORM_POLYGON, NORM_QUAD4, NORM_QUAD4, NORM_QUAD4, NORM_QUAD4, NORM_QUAD4, NORM_QUAD4];
7306 expected3=[6,6,4,4,4,4,4,4]
7308 self.assertTrue(m2.getTypeOfCell(i)==expected2[i]);
7309 v=m2.getNodeIdsOfCell(i);
7310 self.assertTrue(len(v)==expected3[i]);
7311 self.assertEqual(expected4[i],v);
7313 mesh.convertAllToPoly();
7314 self.assertTrue(NORM_POLYHED==mesh.getTypeOfCell(0));
7316 self.assertTrue(NORM_HEXGP12==mesh.getTypeOfCell(0));
7317 self.assertEqual(13,mesh.getMeshLength());
7321 def testDADCheckIsMonotonic(self):
7322 da=DataArrayDouble.New();
7323 da.setValues([-1.,1.01,2.03,6.],2,2);
7324 self.assertRaises(InterpKernelException,da.isMonotonic,True,1e-12);
7326 self.assertTrue(da.isMonotonic(True,1e-12));
7327 da.checkMonotonic(True,1e-12);
7329 self.assertTrue(not da.isMonotonic(True,1e-12));
7330 self.assertRaises(InterpKernelException,da.checkMonotonic,True,1e-12);
7332 self.assertTrue(da.isMonotonic(True,1e-12));
7333 self.assertTrue(not da.isMonotonic(True,1e-1));
7336 def testCheckCoherencyDeeper1(self):
7337 m=MEDCouplingDataForTest.build3DSourceMesh_1();
7339 m.checkCoherency1();
7340 m.getNodalConnectivity().setIJ(8,0,-1);
7342 self.assertRaises(InterpKernelException,m.checkCoherency1);
7343 m.getNodalConnectivity().setIJ(8,0,-6);
7345 self.assertRaises(InterpKernelException,m.checkCoherency1);
7346 m.getNodalConnectivity().setIJ(8,0,9);#9>=NbOfNodes
7348 self.assertRaises(InterpKernelException,m.checkCoherency1);
7349 m.getNodalConnectivity().setIJ(8,0,8);#OK
7351 m.checkCoherency1();
7353 m.convertToPolyTypes(elts);
7355 m.checkCoherency1();
7356 m.getNodalConnectivity().setIJ(2,0,9);#9>=NbOfNodes
7358 self.assertRaises(InterpKernelException,m.checkCoherency1);
7359 m.getNodalConnectivity().setIJ(2,0,-3);
7361 self.assertRaises(InterpKernelException,m.checkCoherency1);
7362 m.getNodalConnectivity().setIJ(2,0,-1);
7364 self.assertRaises(InterpKernelException,m.checkCoherency1);#Throw because cell#0 is not a polyhedron
7365 m.getNodalConnectivity().setIJ(2,0,4);
7367 m.checkCoherency1();
7368 m.getNodalConnectivity().setIJ(7,0,-1);
7370 m.checkCoherency1();#OK because we are in polyhedron connec
7371 m.getNodalConnectivity().setIJ(36,0,14);
7373 self.assertRaises(InterpKernelException,m.checkCoherency1);#Throw beacause now cell 5 is a TETRA4 (14) so mimatch of number index and static type.
7376 def testUnPolyze2(self):
7377 m=MEDCouplingUMesh.New("jjj",3);
7378 coo=DataArrayDouble.New();
7385 m.insertNextCell(NORM_TETRA4,4,[0,1,2,3]);
7386 m.insertNextCell(NORM_TETRA4,4,[0,1,2,3]);
7387 m.finishInsertingCells();
7388 m2=MEDCouplingUMesh.MergeUMeshesOnSameCoords(4*[m]);
7389 m2.convertToPolyTypes([2]);
7391 self.assertEqual(NORM_TETRA4,m2.getTypeOfCell(2));
7392 self.assertEqual(40,m2.getMeshLength());
7393 temp2=m2.getNodeIdsOfCell(2);
7394 self.assertEqual(temp2,[0,1,2,3]);
7395 m2.checkCoherency1();
7398 self.assertTrue(m3.isEqual(m2,1e-12));
7401 def testDACpyFrom1(self):
7402 d=DataArrayDouble.New();
7407 d.setInfoOnComponent(0,"X [m]");
7408 d.setInfoOnComponent(1,"Y [m]");
7409 d.setInfoOnComponent(2,"Z [m]");
7411 d1=DataArrayDouble.New();
7412 self.assertTrue(not d.isEqual(d1,1e-12));
7414 self.assertTrue(d.isEqual(d1,1e-12));
7416 self.assertTrue(d.isEqual(d1,1e-12));
7418 self.assertTrue(not d.isEqual(d1,1e-12));
7420 self.assertTrue(d.isEqual(d1,1e-12));
7422 d2=d.convertToIntArr();
7423 d4=DataArrayInt.New();
7424 self.assertTrue(not d2.isEqual(d4));
7426 self.assertTrue(d2.isEqual(d4));
7428 self.assertTrue(d2.isEqual(d4));
7430 self.assertTrue(not d2.isEqual(d4));
7432 self.assertTrue(d2.isEqual(d4));
7435 def testDAITransformWithIndArr1(self):
7437 tab2=[0,1,1,3,3,0,1,3,2,2,3,0]
7438 expected=[17,18,18,19,19,17,18,19,22,22,19,17]
7439 d=DataArrayInt.New();
7440 d.setValues(tab1,4,1);
7441 d1=DataArrayInt.New();
7442 d1.setValues(tab2,12,1);
7445 d1.transformWithIndArr(d);
7446 self.assertEqual(12,d1.getNumberOfTuples());
7447 self.assertEqual(1,d1.getNumberOfComponents());
7448 for i in xrange(12):
7449 self.assertEqual(expected[i],d1.getIJ(i,0));
7453 d1.transformWithIndArr(tab1)
7454 self.assertEqual(12,d1.getNumberOfTuples());
7455 self.assertEqual(1,d1.getNumberOfComponents());
7456 for i in xrange(12):
7457 self.assertEqual(expected[i],d1.getIJ(i,0));
7461 def testDAIBuildPermArrPerLevel1(self):
7462 arr=[2,0,1,1,0,1,2,0,1,1,0,0]
7463 expected1=[10,0,5,6,1,7,11,2,8,9,3,4]
7464 da=DataArrayInt.New();
7465 da.setValues(arr,12,1);
7466 da2=da.buildPermArrPerLevel();
7467 self.assertEqual(12,da2.getNumberOfTuples());
7468 self.assertEqual(1,da2.getNumberOfComponents());
7469 for i in xrange(12):
7470 self.assertEqual(expected1[i],da2.getIJ(i,0));
7474 def testDAIOperations1(self):
7475 arr1=[-1,-2,4,7,3,2,6,6,4,3,0,1]
7476 da=DataArrayInt.New();
7477 da.setValues(arr1,4,3);
7478 da1=DataArrayInt.New();
7481 self.assertRaises(InterpKernelException,DataArrayInt.Add,da,da1);#not same number of tuples/Components
7483 da2=DataArrayInt.Add(da,da1);
7484 self.assertEqual(4,da2.getNumberOfTuples());
7485 self.assertEqual(3,da2.getNumberOfComponents());
7486 expected1=[1,1,8,12,9,9,14,15,14,14,12,14]
7487 for i in xrange(12):
7488 self.assertEqual(expected1[i],da2.getIJ(0,i));
7490 da1.substractEqual(da);
7491 expected2=[3,5,0,-2,3,5,2,3,6,8,12,12]
7492 for i in xrange(12):
7493 self.assertEqual(expected2[i],da1.getIJ(0,i));
7495 da1.rearrange(1); da1.iota(2); da1.rearrange(3);
7497 for i in xrange(12):
7498 self.assertEqual(expected1[i],da1.getIJ(0,i));
7500 da1.rearrange(1); da1.iota(2); da1.rearrange(3);
7501 da2=DataArrayInt.Multiply(da,da1);
7502 self.assertEqual(4,da2.getNumberOfTuples());
7503 self.assertEqual(3,da2.getNumberOfComponents());
7504 expected3=[-2,-6,16,35,18,14,48,54,40,33,0,13]
7505 for i in xrange(12):
7506 self.assertEqual(expected3[i],da2.getIJ(0,i));
7508 da.divideEqual(da1);
7509 self.assertEqual(4,da.getNumberOfTuples());
7510 self.assertEqual(3,da.getNumberOfComponents());
7511 expected4=[0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0]
7512 for i in xrange(12):
7513 self.assertEqual(expected4[i],da.getIJ(0,i));
7515 da.setValues(arr1,4,3);
7516 da1.multiplyEqual(da);
7517 self.assertEqual(4,da1.getNumberOfTuples());
7518 self.assertEqual(3,da1.getNumberOfComponents());
7519 for i in xrange(12):
7520 self.assertEqual(expected3[i],da1.getIJ(0,i));
7522 da1.rearrange(1); da1.iota(2); da1.rearrange(3);
7523 da2=DataArrayInt.Divide(da,da1);
7524 self.assertEqual(4,da2.getNumberOfTuples());
7525 self.assertEqual(3,da2.getNumberOfComponents());
7526 for i in xrange(12):
7527 self.assertEqual(expected4[i],da2.getIJ(0,i));
7530 self.assertEqual(4,da1.getNumberOfTuples());
7531 self.assertEqual(3,da1.getNumberOfComponents());
7532 expected5=[160,107,80,64,53,45,40,35,32,29,26,24]
7533 for i in xrange(12):
7534 self.assertEqual(expected5[i],da1.getIJ(0,i));
7536 da1.applyDivideBy(2);
7537 self.assertEqual(4,da1.getNumberOfTuples());
7538 self.assertEqual(3,da1.getNumberOfComponents());
7539 expected6=[80,53,40,32,26,22,20,17,16,14,13,12]
7540 for i in xrange(12):
7541 self.assertEqual(expected6[i],da1.getIJ(0,i));
7543 expected7=[3,4,5,4,5,1,6,3,2,0,6,5]
7544 da1.applyModulus(7);
7545 for i in xrange(12):
7546 self.assertEqual(expected7[i],da1.getIJ(0,i));
7549 expected8=[3,3,3,3,3,1,3,3,0,0,3,3]
7550 da1.applyRModulus(3);
7551 for i in xrange(12):
7552 self.assertEqual(expected8[i],da1.getIJ(0,i));
7556 def testEmulateMEDMEMBDC1(self):
7557 m,m1=MEDCouplingDataForTest.buildPointe_1();
7558 m2,da1,da2,da3,da4,da5,da0=m.emulateMEDMEMBDC(m1)
7559 expected0=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,36,37,32,33,34,35,38,39,40,41,42,43,44,45,46]
7560 expected1=[1,32,29,23,41,36]
7561 self.assertEqual(47,da0.getNumberOfTuples());
7562 self.assertEqual(1,da0.getNumberOfComponents());
7563 for i in xrange(47):
7564 self.assertEqual(expected0[i],da0.getIJ(0,i));
7566 self.assertEqual(6,da5.getNumberOfTuples());
7567 self.assertEqual(1,da5.getNumberOfComponents());
7569 self.assertEqual(expected1[i],da5.getIJ(0,i));
7571 expected2=[0,1,2,3,4,0,5,6,7,4,8,9,1,7,10,11,12,13,14,5,15,16,17,8,18,19,20,10,21,22,23,2,13,24,25,21,16,26,27,12,19,28,29,15,22,30,31,18,36,26,28,30,24,37,32,33,34,35,38,36,39,40,41,42,37,38,43,44,45,46]
7572 self.assertEqual(70,da1.getNumberOfTuples());
7573 self.assertEqual(1,da1.getNumberOfComponents());
7574 for i in xrange(70):
7575 self.assertEqual(expected2[i],da1.getIJ(0,i));
7577 expected3=[0,4,8,12,16,20,24,28,32,36,40,44,48,53,58,64,70]
7578 self.assertEqual(17,da2.getNumberOfTuples());
7579 self.assertEqual(1,da2.getNumberOfComponents());
7580 for i in xrange(17):
7581 self.assertEqual(expected3[i],da2.getIJ(0,i));
7583 expected4=[0,2,4,6,7,9,11,12,14,16,17,19,20,22,24,25,27,29,30,32,34,35,37,39,40,42,43,45,46,48,49,51,52,53,54,55,56,58,60,62,63,64,65,66,67,68,69,70]
7584 #expected4=[0,2,4,6,7,9,11,12,14,16,17,19,20,22,24,25,27,29,30,32,34,35,37,39,40,42,43,45,46,48,49,51,52,54,56,57,58,59,60,62,63,64,65,66,67,68,69,70];
7585 self.assertEqual(48,da4.getNumberOfTuples());
7586 self.assertEqual(1,da4.getNumberOfComponents());
7587 for i in xrange(48):
7588 self.assertEqual(expected4[i],da4.getIJ(0,i));
7590 expected5=[0,1,0,3,0,7,0,1,2,1,4,1,2,3,2,5,2,3,6,3,4,9,4,8,4,5,10,5,9,5,6,11,6,10,6,7,8,7,11,7,8,12,8,9,12,9,10,12,10,11,12,11,13,13,13,13,12,14,13,15,14,15,14,14,14,14,15,15,15,15]
7591 self.assertEqual(70,da3.getNumberOfTuples());
7592 self.assertEqual(1,da3.getNumberOfComponents());
7593 for i in xrange(70):
7594 self.assertEqual(expected5[i],da3.getIJ(0,i));
7598 def testGetLevArrPerCellTypes1(self):
7599 m,m1=MEDCouplingDataForTest.buildPointe_1();
7600 m1,d0,d1,d2,d3=m.buildDescendingConnectivity();
7601 order=[NORM_TRI3,NORM_QUAD4];
7602 da0,da1=m1.getLevArrPerCellTypes(order);
7603 expected0=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1]
7604 expected1=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,36,37,32,33,34,35,38,39,40,41,42,43,44,45,46]
7605 self.assertEqual(47,da0.getNumberOfTuples());
7606 self.assertEqual(1,da0.getNumberOfComponents());
7607 for i in xrange(47):
7608 self.assertEqual(expected0[i],da0.getIJ(0,i));
7610 self.assertEqual(2,da1.getNumberOfTuples());
7611 self.assertEqual(1,da1.getNumberOfComponents());
7612 self.assertEqual(36,da1.getIJ(0,0));#36 TRI3
7613 self.assertEqual(11,da1.getIJ(1,0));#11 QUAD4
7615 da2=da0.buildPermArrPerLevel();
7617 self.assertEqual(47,da2.getNumberOfTuples());
7618 self.assertEqual(1,da2.getNumberOfComponents());
7619 for i in xrange(47):
7620 self.assertEqual(expected1[i],da2.getIJ(0,i));
7624 def testSortCellsInMEDFileFrmt1(self):
7625 m,m1=MEDCouplingDataForTest.buildPointe_1();
7627 da=DataArrayInt.New()
7628 da.setValues([0,1,2,14,3,12,4,5,15,6,7,8,9,10,11,13],16,1)
7629 daa=da.invertArrayN2O2O2N(16)
7630 m.renumberCells(daa,False)
7631 da2=m.sortCellsInMEDFileFrmt()
7632 self.assertEqual(da2.getValues(),[0,1,2,14,3,12,4,5,15,6,7,8,9,10,11,13])
7633 self.assertTrue(m.isEqual(m2,1e-12))
7634 self.assertTrue(da.isEqual(da2))
7637 def testBuildPartAndReduceNodes1(self):
7638 m=MEDCouplingDataForTest.build2DTargetMesh_1();
7640 m2,da=m.buildPartAndReduceNodes(arr);
7641 self.assertEqual(5,m2.getNumberOfNodes());
7642 self.assertEqual(2,m2.getNumberOfCells());
7643 f=m2.getMeasureField(True);
7644 self.assertAlmostEqual(0.125,f.getArray().getIJ(0,0),12);
7645 self.assertAlmostEqual(0.25,f.getArray().getIJ(1,0),12);
7647 arr2=DataArrayInt.New()
7648 arr2.setValues(arr,2,1)
7649 m2,da=m.buildPartAndReduceNodes(arr2);
7650 self.assertEqual(5,m2.getNumberOfNodes());
7651 self.assertEqual(2,m2.getNumberOfCells());
7652 f=m2.getMeasureField(True);
7653 self.assertAlmostEqual(0.125,f.getArray().getIJ(0,0),12);
7654 self.assertAlmostEqual(0.25,f.getArray().getIJ(1,0),12);
7657 def testDAITransformWithIndArrR1(self):
7659 tab2=[-1,-1,0,1,2,3,4,5,-1,-1,-1,-1]
7660 expected=[0,3,1,2,4,5]
7661 d=DataArrayInt.New();
7662 d.setValues(tab1,6,1);
7663 d1=DataArrayInt.New();
7664 d1.setValues(tab2,12,1);
7667 d3=d.transformWithIndArrR(d1);
7668 self.assertEqual(6,d3.getNumberOfTuples());
7669 self.assertEqual(1,d3.getNumberOfComponents());
7671 self.assertEqual(expected[i],d3.getIJ(i,0));
7675 d3=d.transformWithIndArrR(tab2)
7676 self.assertEqual(6,d3.getNumberOfTuples());
7677 self.assertEqual(1,d3.getNumberOfComponents());
7679 self.assertEqual(expected[i],d3.getIJ(i,0));
7683 def testDAISplitByValueRange1(self):
7684 val1=[6,5,0,3,2,7,8,1,4]
7686 d=DataArrayInt.New();
7687 d.setValues(val1,9,1);
7688 e,f,g=d.splitByValueRange(val2);
7689 self.assertEqual(9,e.getNumberOfTuples());
7690 self.assertEqual(1,e.getNumberOfComponents());
7691 self.assertEqual(9,f.getNumberOfTuples());
7692 self.assertEqual(1,f.getNumberOfComponents());
7693 self.assertEqual(2,g.getNumberOfTuples());
7694 self.assertEqual(1,g.getNumberOfComponents());
7696 expected1=[1,1,0,0,0,1,1,0,1]
7697 expected2=[2,1,0,3,2,3,4,1,0]
7699 self.assertEqual(expected1[i],e.getIJ(i,0));
7700 self.assertEqual(expected2[i],f.getIJ(i,0));
7702 self.assertEqual(0,g.getIJ(0,0));
7703 self.assertEqual(1,g.getIJ(1,0));
7706 self.assertRaises(InterpKernelException,d.splitByValueRange,val2);
7709 def testUMeshSplitProfilePerType1(self):
7711 m=MEDCouplingDataForTest.build2DTargetMesh_1();
7712 m.renumberCells(val0,False);
7715 d=DataArrayInt.New();
7716 d.setValues(val1,3,1);
7718 code,idsInPflPerType,pfls=m.splitProfilePerType(d);
7719 self.assertEqual(6,len(code));
7720 self.assertEqual(2,len(idsInPflPerType));
7721 expected1=[3,1,0, 4,2,1]
7723 self.assertEqual(expected1[i],code[i]);
7725 self.assertEqual(2,len(idsInPflPerType));
7726 self.assertEqual(1,idsInPflPerType[0].getNumberOfTuples());
7727 self.assertEqual(0,idsInPflPerType[0].getIJ(0,0));
7728 self.assertEqual(2,idsInPflPerType[1].getNumberOfTuples());
7729 self.assertEqual(1,idsInPflPerType[1].getIJ(0,0));
7730 self.assertEqual(2,idsInPflPerType[1].getIJ(1,0));
7732 self.assertEqual(2,len(pfls));
7733 self.assertEqual("sup",pfls[0].getName())
7734 self.assertEqual(1,pfls[0].getNumberOfTuples());
7735 self.assertEqual(0,pfls[0].getIJ(0,0));
7736 self.assertEqual("sup",pfls[1].getName())
7737 self.assertEqual(2,pfls[1].getNumberOfTuples());
7738 self.assertEqual(0,pfls[1].getIJ(0,0));
7739 self.assertEqual(1,pfls[1].getIJ(1,0));
7742 d=DataArrayInt.New();
7743 d.setValues(val2,4,1);
7744 code,idsInPflPerType,pfls=m.splitProfilePerType(d);
7745 self.assertEqual(6,len(code));
7746 self.assertEqual(2,len(idsInPflPerType));
7747 expected2=[3,1,0, 4,3,-1]
7749 self.assertEqual(expected2[i],code[i]);
7751 self.assertEqual(2,len(idsInPflPerType));
7752 self.assertEqual(1,idsInPflPerType[0].getNumberOfTuples());
7753 self.assertEqual(0,idsInPflPerType[0].getIJ(0,0));
7754 self.assertEqual(3,idsInPflPerType[1].getNumberOfTuples());
7755 self.assertEqual(1,idsInPflPerType[1].getIJ(0,0));
7756 self.assertEqual(2,idsInPflPerType[1].getIJ(1,0));
7757 self.assertEqual(3,idsInPflPerType[1].getIJ(2,0));
7759 self.assertEqual(1,len(pfls));
7760 self.assertEqual(1,pfls[0].getNumberOfTuples());
7761 self.assertEqual(0,pfls[0].getIJ(0,0));
7764 d=DataArrayInt.New();
7765 d.setValues(val3,3,1);
7766 code,idsInPflPerType,pfls=m.splitProfilePerType(d);
7767 self.assertEqual(6,len(code));
7768 self.assertEqual(2,len(idsInPflPerType));
7769 expected3=[3,2,0, 4,1,1]
7771 self.assertEqual(expected3[i],code[i]);
7773 self.assertEqual(2,len(idsInPflPerType));
7774 self.assertEqual(2,idsInPflPerType[0].getNumberOfTuples());
7775 self.assertEqual(0,idsInPflPerType[0].getIJ(0,0));
7776 self.assertEqual(1,idsInPflPerType[0].getIJ(1,0));
7777 self.assertEqual(1,idsInPflPerType[1].getNumberOfTuples());
7778 self.assertEqual(2,idsInPflPerType[1].getIJ(0,0));
7780 self.assertEqual(2,len(pfls));
7781 self.assertEqual(2,pfls[0].getNumberOfTuples());
7782 self.assertEqual(1,pfls[0].getIJ(0,0));
7783 self.assertEqual(0,pfls[0].getIJ(1,0));
7784 self.assertEqual(0,pfls[1].getIJ(0,0));
7787 d=DataArrayInt.New();
7788 d.setValues(val4,2,1);
7789 code,idsInPflPerType,pfls=m.splitProfilePerType(d);
7790 self.assertEqual(3,len(code));
7791 self.assertEqual(1,len(idsInPflPerType));
7794 self.assertEqual(expected4[i],code[i]);
7796 self.assertEqual(1,len(idsInPflPerType));
7797 self.assertEqual(2,idsInPflPerType[0].getNumberOfTuples());
7798 self.assertEqual(0,idsInPflPerType[0].getIJ(0,0));
7799 self.assertEqual(1,idsInPflPerType[0].getIJ(1,0));
7801 self.assertEqual(1,len(pfls));
7802 self.assertEqual(2,pfls[0].getNumberOfTuples());
7803 self.assertEqual(1,pfls[0].getIJ(0,0));
7804 self.assertEqual(2,pfls[0].getIJ(1,0));
7807 def testDAIBuildExplicitArrByRanges1(self):
7808 d=DataArrayInt.New();
7810 d.setValues(vals1,3,1);
7811 e=DataArrayInt.New();
7812 vals2=[0,3,6,10,14,20]
7813 e.setValues(vals2,6,1);
7815 f=d.buildExplicitArrByRanges(e);
7816 self.assertEqual(11,f.getNumberOfTuples());
7817 self.assertEqual(1,f.getNumberOfComponents());
7818 expected1=[0,1,2,6,7,8,9,10,11,12,13]
7819 for i in xrange(11):
7820 self.assertEqual(expected1[i],f.getIJ(i,0));
7824 def testDAIComputeOffsets2(self):
7825 d=DataArrayInt.New();
7827 expected1=[0,3,8,9,11,11,19]
7828 d.setValues(vals1,6,1);
7829 d.computeOffsets2();
7830 self.assertEqual(7,d.getNumberOfTuples());
7831 self.assertEqual(1,d.getNumberOfComponents());
7833 self.assertEqual(expected1[i],d.getIJ(0,i));
7837 def testMergeField3(self):
7838 m=MEDCouplingDataForTest.build2DTargetMesh_1();
7839 m.getCoords().setInfoOnComponent(0,"x [m]");
7840 m.getCoords().setInfoOnComponent(1,"z [km]");
7842 m.setDescription("desc");
7843 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
7846 arr=DataArrayDouble.New();
7848 arr.setInfoOnComponent(0,"X [m]");
7849 arr.setInfoOnComponent(1,"YY [mm]");
7850 arr.fillWithValue(2.);
7853 f2=MEDCouplingFieldDouble.MergeFields([f1]);
7854 self.assertTrue(f1.isEqual(f2,1e-12,1e-12));
7858 def testGetDistributionOfTypes1(self):
7859 m=MEDCouplingDataForTest.build2DTargetMesh_1();
7861 self.assertRaises(InterpKernelException,m.getDistributionOfTypes);
7862 m.renumberCells(tab1,False);
7863 code=m.getDistributionOfTypes();
7864 self.assertEqual(2,len(code));
7865 self.assertEqual(3,code[0][0]);
7866 self.assertEqual(2,code[0][1]);
7867 self.assertEqual(0,code[0][2]);
7868 self.assertEqual(4,code[1][0]);
7869 self.assertEqual(3,code[1][1]);
7870 self.assertEqual(0,code[1][2]);
7873 def testNorm2_1(self):
7874 m=MEDCouplingDataForTest.build2DTargetMesh_1();
7875 f=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
7878 d=DataArrayDouble.New();
7879 tab=[1.2,1.3,2.2,2.3,3.2,3.3,4.2,4.3,5.2,5.3]
7880 d.setValues(tab,5,2);
7884 self.assertAlmostEqual(11.209371079592289,f.norm2(),14);
7888 def testNormMax1(self):
7889 m=MEDCouplingDataForTest.build2DTargetMesh_1();
7890 f=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
7893 d=DataArrayDouble.New();
7894 tab=[2.3,-1.2,6.3,-7.8,2.9,7.7,2.1,0.,3.6,-7.6]
7895 d.setValues(tab,5,2);
7899 self.assertAlmostEqual(7.8,f.normMax(),14);
7903 def testFindAndCorrectBadOriented3DExtrudedCells1(self):
7904 coords=[0.0011180339887498999, -0.0011755705045849499, 0.0, -0.0012331070204200001, -0.0011755705045849499, 0.0, -0.00067557050458494599, -0.00145964954842536, 0.0, -0.00050000000000000001, -0.00086602540378443902, 0.0, 0.00140211303259031, -0.00061803398874989504, 0.0, 0.00086602540378443902, -0.00050000000000000001, 0.0, 0.001, 0.0, 0.0, 0.00034561537182258202, 0.000269164072574575, 0.0, 0.0, 0.001, 0.0, -0.00050000000000000001, 0.00086602540378443902, 0.0, -0.000269164072574575, 0.00034561537182258202, 0.0, -0.001, 0.0, 0.0, -0.00086602540378443902, -0.00050000000000000001, 0.0, -0.00034561537182258202, -0.000269164072574575, 0.0, 0.0, -0.001, 0.0, 0.00050000000000000001, -0.00086602540378443902, 0.0, 0.000269164072574575, -0.00034561537182258202, 0.0, 0.0015, -6.01853107621011e-36, 0.0, 0.00056049747291484397, -0.00145964954842536, 0.0, 0.0011180339887498999, -0.0011755705045849499, 0.00050000000000000001, -0.0012331070204200001, -0.0011755705045849499, 0.00050000000000000001, -0.00067557050458494599, -0.00145964954842536, 0.00050000000000000001, -0.00050000000000000001, -0.00086602540378443902, 0.00050000000000000001, 0.00140211303259031, -0.00061803398874989504, 0.00050000000000000001, 0.00086602540378443902, -0.00050000000000000001, 0.00050000000000000001, 0.001, 0.0, 0.00050000000000000001, 0.00034561537182258202, 0.000269164072574575, 0.00050000000000000001, 0.0, 0.001, 0.00050000000000000001, -0.00050000000000000001, 0.00086602540378443902, 0.00050000000000000001, -0.000269164072574575, 0.00034561537182258202, 0.00050000000000000001, -0.001, 0.0, 0.00050000000000000001, -0.00086602540378443902, -0.00050000000000000001, 0.00050000000000000001, -0.00034561537182258202, -0.000269164072574575, 0.00050000000000000001, 0.0, -0.001, 0.00050000000000000001, 0.00050000000000000001, -0.00086602540378443902, 0.00050000000000000001, 0.000269164072574575, -0.00034561537182258202, 0.00050000000000000001, 0.0015, -6.01853107621011e-36, 0.00050000000000000001, 0.00056049747291484397, -0.00145964954842536, 0.00050000000000000001];
7905 conn=[2, 1, 3, 21, 20, 22, 4, 0, 5, 23, 19, 24, 8, 9, 10, 27, 28, 29, 11, 12, 13, 30, 31, 32, 0, 18, 15, 5, 19, 37, 34, 24, 6, 17, 4, 5, 25, 36, 23, 24, 3, 14, 16, 13, 22, 33, 35, 32, 13, 16, 7, 10, 32, 35, 26, 29]
7906 connExp=[16, 2, 1, 3, 21, 20, 22, 16, 4, 0, 5, 23, 19, 24, 16, 8, 10, 9, 27, 29, 28, 16, 11, 13, 12, 30, 32, 31, 18, 0, 18, 15, 5, 19, 37, 34, 24,18, 6, 17, 4, 5, 25, 36, 23, 24, 18, 3, 13, 16, 14, 22, 32, 35, 33, 18, 13, 10, 7, 16, 32, 29, 26, 35]
7907 invalidCells=[2,3,6,7]
7908 m=MEDCouplingUMesh.New("Example",3);
7909 coo=DataArrayDouble.New();
7910 coo.setValues(coords,38,3);
7913 m.insertNextCell(NORM_PENTA6,6,conn[0:6])
7914 m.insertNextCell(NORM_PENTA6,6,conn[6:12])
7915 m.insertNextCell(NORM_PENTA6,6,conn[12:18])
7916 m.insertNextCell(NORM_PENTA6,6,conn[18:24])
7917 m.insertNextCell(NORM_HEXA8,8,conn[24:32])
7918 m.insertNextCell(NORM_HEXA8,8,conn[32:40])
7919 m.insertNextCell(NORM_HEXA8,8,conn[40:48])
7920 m.insertNextCell(NORM_HEXA8,8,conn[48:56])
7921 m.finishInsertingCells();
7923 v=m.findAndCorrectBadOriented3DExtrudedCells();
7924 self.assertEqual(4,len(v));
7925 self.assertEqual(v.getValues(),invalidCells);
7926 self.assertEqual(connExp,m.getNodalConnectivity().getValues());
7927 self.assertTrue(m.findAndCorrectBadOriented3DExtrudedCells().empty())
7931 def testConvertExtrudedPolyhedra1(self):
7932 conn=[1,2,3,4, 5,6,7,8,9,10,11,12, 13,14,15,16, 17,18,19,20,21,22, 23,24,25,26,27,28, 29,30,31,32,33,34,35,36,37,38, 39,40,41,42,43,44,45,46, 47,48,49,50,51,52,53,54,55,56,57,58, 59,60,61,62,63,64,65,66,67,68,69,70,71,72]
7933 m=MEDCouplingUMesh.New("Example",3);
7934 coo=DataArrayDouble.New();
7936 coo.rearrange(1); coo.iota(0); coo.rearrange(3);
7939 m.insertNextCell(NORM_TETRA4,4,conn[0:4])
7940 m.insertNextCell(NORM_HEXA8,8,conn[4:12])
7941 m.insertNextCell(NORM_TETRA4,4,conn[12:16])
7942 m.insertNextCell(NORM_POLYHED,6,conn[16:22])
7943 m.insertNextCell(NORM_PENTA6,6,conn[22:28])
7944 m.insertNextCell(NORM_POLYHED,10,conn[28:38])
7945 m.insertNextCell(NORM_HEXA8,8,conn[38:46])
7946 m.insertNextCell(NORM_HEXGP12,12,conn[46:58])
7947 m.insertNextCell(NORM_POLYHED,14,conn[58:72])
7948 m.finishInsertingCells();
7950 m.convertExtrudedPolyhedra();
7951 da=m.getNodalConnectivity();
7952 dai=m.getNodalConnectivityIndex();
7953 self.assertEqual(10,dai.getNbOfElems());
7954 self.assertEqual(159,da.getNbOfElems());
7956 expected1=[14, 1, 2, 3, 4,
7957 18, 5, 6, 7, 8, 9, 10, 11, 12,
7959 31, 17, 18, 19, -1, 20, 22, 21, -1, 17, 18, 21, 20, -1, 18, 19, 22, 21, -1, 19, 17, 20, 22,
7960 16, 23, 24, 25, 26, 27, 28,
7961 31, 29, 30, 31, 32, 33, -1, 34, 38, 37, 36, 35, -1, 29, 30, 35, 34, -1, 30, 31, 36, 35, -1, 31, 32, 37, 36, -1, 32, 33, 38, 37, -1, 33, 29, 34, 38,
7962 18, 39, 40, 41, 42, 43, 44, 45, 46,
7963 22, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
7964 31, 59, 60, 61, 62, 63, 64, 65, -1, 66, 72, 71, 70, 69, 68, 67, -1, 59, 60, 67, 66, -1, 60, 61, 68, 67, -1, 61, 62, 69, 68, -1, 62, 63, 70, 69, -1, 63, 64, 71, 70, -1, 64, 65, 72, 71, -1, 65, 59, 66, 72];
7965 expected2=[0,5,14,19,42,49,86,95,108,159]
7966 self.assertEqual(expected1,da.getValues());
7967 self.assertEqual(expected2,dai.getValues());
7971 def testNonRegressionCopyTinyStrings(self):
7972 m=MEDCouplingDataForTest.build2DTargetMesh_1()
7973 f1=m.getMeasureField(True)
7974 f1.getArray().setInfoOnComponent(0,"P [N/m^2]")
7975 bary=m.getBarycenterAndOwner()
7976 f2=f1.buildNewTimeReprFromThis(NO_TIME,False)
7978 self.assertRaises(InterpKernelException,f1.copyTinyAttrFrom,f2)
7981 def testDaDSetPartOfValuesAdv1(self):
7982 tab1=[3.,4.,5., 13.,14.,15., 23.,24.,25., 33.,34.,35., 43.,44.,45., 53.,54.,55.]
7983 tab2=[6.,7.,8., 16.,17.,18., 26.,27.,28.]
7984 tab3=[4,1, 2,2, 3,0]
7985 a=DataArrayDouble.New();
7986 a.setValues(tab1,6,3);
7987 b=DataArrayDouble.New();
7988 b.setValues(tab2,3,3);
7989 c=DataArrayInt.New();
7990 c.setValues(tab3,3,2);
7992 a.setPartOfValuesAdv(b,c);
7993 expected1=[3.,4.,5., 13.,14.,15., 26.,27.,28., 6.,7.,8., 16.,17.,18., 53.,54.,55.]
7994 self.assertEqual(expected1,a.getValues());
7997 def testUMeshBuildSetInstanceFromThis1(self):
7998 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
7999 m2=m.buildSetInstanceFromThis(3);
8000 self.assertTrue(m.isEqual(m2,1e-12));
8002 m=MEDCouplingUMesh.New("toto",2);
8003 m2=m.buildSetInstanceFromThis(3);
8004 self.assertEqual(0,m2.getNumberOfNodes());
8005 self.assertEqual(0,m2.getNumberOfCells());
8008 def testUMeshMergeMeshesCVW1(self):
8009 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
8010 m2=MEDCouplingUMesh.New("toto",2);
8011 m3=MEDCouplingUMesh.MergeUMeshes([m,m2]);
8012 m3.setName(m.getName());
8013 self.assertTrue(m.isEqual(m3,1e-12));
8016 def testChangeUnderlyingMeshWithCMesh1(self):
8017 mesh=MEDCouplingCMesh.New();
8018 coordsX=DataArrayDouble.New();
8019 arrX=[ -1., 1., 2., 4. ]
8020 coordsX.setValues(arrX,4,1);
8021 coordsY=DataArrayDouble.New();
8022 arrY=[ -2., 2., 4., 8. ]
8023 coordsY.setValues(arrY,4,1);
8024 coordsZ=DataArrayDouble.New();
8025 arrZ=[ -3., 3., 6., 12. ]
8026 coordsZ.setValues(arrZ,4,1);
8027 mesh.setCoords(coordsX,coordsY,coordsZ);
8028 f=mesh.getMeasureField(True)
8029 mesh2=mesh.deepCpy()
8030 for myId in [0,1,2,10,11,12,20,21,22]:
8031 f=mesh.getMeasureField(True)
8032 f.changeUnderlyingMesh(mesh2,myId,1e-12);
8034 mesh2.setName("uuuu")
8035 for myId in [1,2,10,11,12,20,21,22]:
8036 f=mesh.getMeasureField(True)
8037 f.changeUnderlyingMesh(mesh2,myId,1e-12);
8041 def testDADFindCommonTuples1(self):
8042 da=DataArrayDouble.New();
8044 array1=[2.3,1.2,1.3,2.3,2.301,0.8]
8045 da.setValues(array1,6,1)
8046 c,cI=da.findCommonTuples(1e-2);
8049 self.assertEqual(3,c.getNbOfElems());
8050 self.assertEqual(2,cI.getNbOfElems());
8051 self.assertEqual(expected1,c.getValues())
8052 self.assertEqual(expected2,cI.getValues())
8053 c,cI=da.findCommonTuples(2e-1)
8054 expected3=[0,3,4,1,2]
8056 self.assertEqual(5,c.getNbOfElems());
8057 self.assertEqual(3,cI.getNbOfElems());
8058 self.assertEqual(expected3,c.getValues())
8059 self.assertEqual(expected4,cI.getValues())
8061 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]
8062 da.setValues(array2,6,2)
8063 c,cI=da.findCommonTuples(1e-2);
8064 self.assertEqual(3,c.getNbOfElems());
8065 self.assertEqual(2,cI.getNbOfElems());
8066 self.assertEqual(expected1,c.getValues())
8067 self.assertEqual(expected2,cI.getValues())
8068 c,cI=da.findCommonTuples(2e-1)
8069 self.assertEqual(5,c.getNbOfElems());
8070 self.assertEqual(3,cI.getNbOfElems());
8071 self.assertEqual(expected3,c.getValues())
8072 self.assertEqual(expected4,cI.getValues())
8074 array3=[2.3,2.3,2.3,1.2,1.2,1.2,1.3,1.3,1.3,2.3,2.3,2.3,2.301,2.301,2.301,0.8,0.8,0.8]
8075 da.setValues(array3,6,3)
8076 c,cI=da.findCommonTuples(1e-2);
8077 self.assertEqual(3,c.getNbOfElems());
8078 self.assertEqual(2,cI.getNbOfElems());
8079 self.assertEqual(expected1,c.getValues())
8080 self.assertEqual(expected2,cI.getValues())
8081 c,cI=da.findCommonTuples(2e-1)
8082 self.assertEqual(5,c.getNbOfElems());
8083 self.assertEqual(3,cI.getNbOfElems());
8084 self.assertEqual(expected3,c.getValues())
8085 self.assertEqual(expected4,cI.getValues())
8086 # nbOftuples=1, no common groups
8087 array11=[2.3,1.2,1.3,2.4,2.5,0.8]
8088 da.setValues(array11,6,1)
8089 c,cI=da.findCommonTuples(1e-2);
8090 self.assertEqual(0,c.getNbOfElems());
8091 self.assertEqual(1,cI.getNbOfElems());
8092 self.assertEqual([0],cI.getValues())
8095 da.setValues(array12,6,4) #bad NumberOfComponents
8096 self.assertRaises(InterpKernelException, da.findCommonTuples, 1e-2);
8099 def testDABack1(self):
8100 da=DataArrayDouble.New();
8101 array1=[2.3,1.2,1.3,2.3,2.301,0.8]
8102 da.setValues(array1,6,1);
8103 self.assertAlmostEqual(0.8,da.back(),14);
8105 self.assertRaises(InterpKernelException,da.back);
8107 self.assertRaises(InterpKernelException,da.back);
8109 da=DataArrayInt.New();
8111 da.setValues(array2,4,1);
8112 self.assertEqual(2,da.back());
8114 self.assertRaises(InterpKernelException,da.back);
8116 self.assertRaises(InterpKernelException,da.back);
8119 def testDADGetDifferentValues1(self):
8120 da=DataArrayDouble.New();
8121 array1=[2.3,1.2,1.3,2.3,2.301,0.8]
8122 da.setValues(array1,6,1)
8124 expected1=[2.301,1.2,1.3,0.8]
8125 dv=da.getDifferentValues(1e-2);
8126 self.assertEqual(4,dv.getNbOfElems());
8128 self.assertAlmostEqual(expected1[i],dv.getIJ(i,0),14);
8131 dv=da.getDifferentValues(2e-1);
8132 expected2=[2.301,1.3,0.8]
8133 self.assertEqual(3,dv.getNbOfElems());
8135 self.assertAlmostEqual(expected2[i],dv.getIJ(i,0),14);
8139 def testDAIBuildOld2NewArrayFromSurjectiveFormat2(self):
8142 a=DataArrayInt.New();
8143 a.setValues(arr,5,1);
8144 b=DataArrayInt.New();
8145 b.setValues(arrI,3,1);
8146 ret,newNbTuple=DataArrayInt.BuildOld2NewArrayFromSurjectiveFormat2(10,a,b);
8147 expected=[0,1,2,0,3,4,5,4,6,4]
8148 self.assertEqual(10,ret.getNbOfElems());
8149 self.assertEqual(7,newNbTuple);
8150 self.assertEqual(1,ret.getNumberOfComponents());
8151 self.assertEqual(expected,ret.getValues());
8152 self.assertRaises(InterpKernelException,DataArrayInt.BuildOld2NewArrayFromSurjectiveFormat2,9,a,b);
8155 def testDADIReverse1(self):
8157 a=DataArrayInt.New();
8158 a.setValues(arr,6,1);
8159 self.assertEqual(2,a.back());
8162 self.assertEqual(arr[5-i],a.getIJ(i,0));
8164 a.setValues(arr[:-1],5,1);
8167 self.assertEqual(arr[4-i],a.getIJ(i,0));
8170 arr2=[0.,3.,5.,7.,9.,2.]
8171 b=DataArrayDouble.New();
8172 b.setValues(arr2,6,1);
8175 self.assertAlmostEqual(arr2[5-i],b.getIJ(i,0),14);
8177 b.setValues(arr2[:5],5,1);
8178 self.assertAlmostEqual(9.,b.back(),14)
8181 self.assertAlmostEqual(arr2[4-i],b.getIJ(i,0),14);
8185 def testGetNodeIdsInUse1(self):
8186 m0=MEDCouplingDataForTest.build2DTargetMesh_1();
8188 m1=m0.buildPartOfMySelf(CellIds,True);
8189 arr,newNbOfNodes=m1.getNodeIdsInUse();
8190 expected=[-1,0,1,-1,2,3,-1,-1,-1]
8191 self.assertEqual(4,newNbOfNodes);
8192 self.assertEqual(9,arr.getNbOfElems());
8193 self.assertEqual(expected,arr.getValues());
8194 arr2=arr.invertArrayO2N2N2O(newNbOfNodes);
8195 self.assertEqual(4,arr2.getNbOfElems());
8197 self.assertEqual(expected2,arr2.getValues());
8200 def testBuildDescendingConnec2(self):
8201 mesh=MEDCouplingDataForTest.build2DTargetMesh_1();
8203 mesh2,desc,descIndx,revDesc,revDescIndx=mesh.buildDescendingConnectivity2();
8204 mesh2.checkCoherency();
8205 self.assertEqual(1,mesh2.getMeshDimension());
8206 self.assertEqual(13,mesh2.getNumberOfCells());
8207 self.assertEqual(14,revDescIndx.getNbOfElems()); self.assertEqual(14,revDescIndx.getNumberOfTuples());
8208 self.assertEqual(6,descIndx.getNbOfElems()); self.assertEqual(6,descIndx.getNumberOfTuples());
8209 self.assertEqual(18,desc.getNbOfElems()); self.assertEqual(18,desc.getNumberOfTuples());
8210 self.assertEqual(18,revDesc.getNbOfElems()); self.assertEqual(18,revDesc.getNumberOfTuples());
8211 expected1=[1,2,3,4,-3,5,6, 7,8,-5,9,10,-2,11, 12,13,-7,-10]
8212 self.assertEqual(expected1,desc.getValues());
8213 expected2=[0,4,7,10,14,18]
8214 self.assertEqual(expected2,descIndx.getValues());
8215 expected3=[0,1,3,5,6,8,9,11,12,13,15,16,17,18]
8216 self.assertEqual(expected3,revDescIndx.getValues());
8217 expected4=[0, 0,3, 0,1, 0, 1,2, 1, 2,4, 2, 3, 3,4, 3, 4, 4]
8218 self.assertEqual(expected4,revDesc.getValues());
8219 conn=mesh2.getNodalConnectivity();
8220 connIndex=mesh2.getNodalConnectivityIndex();
8221 expected5=[0,3,6,9,12,15,18,21,24,27,30,33,36,39]
8222 self.assertEqual(expected5,connIndex.getValues());
8223 expected6=[1, 0, 3, 1, 3, 4, 1, 4, 1, 1, 1, 0, 1, 4, 2, 1, 2, 1, 1, 4, 5, 1, 5, 2, 1, 6, 7, 1, 7, 4, 1, 3, 6, 1, 7, 8, 1, 8, 5]
8224 self.assertEqual(expected6,conn.getValues());
8227 def testIntersect2DMeshesTmp1(self):
8228 m1c=MEDCouplingCMesh.New();
8229 coordsX=DataArrayDouble.New();
8230 arrX=[ -1., 1., 2., 4. ]
8231 coordsX.setValues(arrX,4,1);
8232 m1c.setCoordsAt(0,coordsX);
8233 coordsY=DataArrayDouble.New();
8234 arrY=[ -2., 2., 4., 8. ]
8235 coordsY.setValues(arrY,4,1);
8236 m1c.setCoordsAt(1,coordsY);
8237 m1=m1c.buildUnstructured()
8238 m1bis=m1.buildPartOfMySelf([3,4,5],False)
8240 m2=m2.buildPartOfMySelf([0,1,2],False)
8241 m2.translate([0.5,0.5])
8243 m3,d1,d2=MEDCouplingUMesh.Intersect2DMeshes(m1bis,m2,1e-10)
8244 expected1=[0,0,1,1,1,2,2,2]
8245 expected2=[0,-1,0,1,-1,1,2,-1]
8246 self.assertEqual(8,d1.getNumberOfTuples());
8247 self.assertEqual(8,d2.getNumberOfTuples());
8248 self.assertEqual(8,m3.getNumberOfCells());
8249 self.assertEqual(22,m3.getNumberOfNodes());
8250 self.assertEqual(2,m3.getSpaceDimension());
8251 self.assertEqual(expected1,d1.getValues());
8252 self.assertEqual(expected2,d2.getValues());
8253 expected3=[5,17,1,16,12,5,16,0,4,5,17,12,5,18,1,17,13,5,19,2,18,13,5,17,5,6,19,13,5,20,2,19,14,5,21,3,20,14,5,19,6,7,21,14]
8254 expected4=[0,5,12,17,22,28,33,38,44]
8255 expected5=[-1.0,2.0,1.0,2.0,2.0,2.0,4.0,2.0,-1.0,4.0,1.0,4.0,2.0,4.0,4.0,4.0,-0.5,-1.5,1.5,-1.5,2.5,-1.5,4.5,-1.5,-0.5,2.5,1.5,2.5,2.5,2.5,4.5,2.5,-0.5,2.0,1.0,2.5,1.5,2.0,2.0,2.5,2.5,2.0,4.0,2.5]
8256 self.assertEqual(44,m3.getNodalConnectivity().getNumberOfTuples());
8257 self.assertEqual(9,m3.getNodalConnectivityIndex().getNumberOfTuples());
8258 self.assertEqual(expected3,m3.getNodalConnectivity().getValues());
8259 self.assertEqual(expected4,m3.getNodalConnectivityIndex().getValues());
8260 for i in xrange(44):
8261 self.assertAlmostEqual(expected5[i],m3.getCoords().getIJ(0,i),12);
8265 def testFindNodesOnLine1(self):
8266 mesh=MEDCouplingDataForTest.build2DTargetMesh_1();
8274 res=mesh.findNodesOnLine(pt,vec,1e-12);
8275 self.assertEqual(3,len(res));
8276 self.assertEqual(expected1,res.getValues());
8278 mesh.changeSpaceDimension(3);
8279 mesh.rotate(pt2,vec2,pi/4.);
8280 res=mesh.findNodesOnLine(pt3,vec3,1e-12);
8281 self.assertEqual(3,len(res));
8282 self.assertEqual(expected1,res.getValues());
8285 def testIntersect2DMeshesTmp2(self):
8286 m1c=MEDCouplingCMesh.New();
8287 coordsX1=DataArrayDouble.New();
8288 arrX1=[ 0., 1., 1.5, 2. ]
8289 coordsX1.setValues(arrX1,4,1);
8290 m1c.setCoordsAt(0,coordsX1);
8291 coordsY1=DataArrayDouble.New();
8292 arrY1=[ 0., 1.5, 3.]
8293 coordsY1.setValues(arrY1,3,1);
8294 m1c.setCoordsAt(1,coordsY1);
8295 m1=m1c.buildUnstructured();
8296 m2c=MEDCouplingCMesh.New();
8297 coordsX2=DataArrayDouble.New();
8298 arrX2=[ 0., 1., 2. ]
8299 coordsX2.setValues(arrX2,3,1);
8300 m2c.setCoordsAt(0,coordsX2);
8301 coordsY2=DataArrayDouble.New();
8303 coordsY2.setValues(arrY2,3,1);
8304 m2c.setCoordsAt(1,coordsY2);
8305 m2=m2c.buildUnstructured();
8307 m3,d1,d2=MEDCouplingUMesh.Intersect2DMeshes(m1,m2,1e-10)
8309 expected1=[0,0,1,1,2,2,3,4,5]
8310 expected2=[0,2,1,3,1,3,2,3,3]
8311 self.assertEqual(9,d1.getNumberOfTuples());
8312 self.assertEqual(9,d2.getNumberOfTuples());
8313 self.assertEqual(9,m3.getNumberOfCells());
8314 self.assertEqual(22,m3.getNumberOfNodes());
8315 self.assertEqual(2,m3.getSpaceDimension());
8316 self.assertEqual(expected1,d1.getValues());
8317 self.assertEqual(expected2,d2.getValues());
8318 expected3=[5,16,13,12,15,5,15,4,5,16,5,21,2,13,16,5,16,5,6,21,5,17,14,2,21,5,21,6,7,17,5,4,18,19,5,5,5,19,10,6,5,6,10,20,7]
8319 expected4=[0,5,10,15,20,25,30,35,40,45]
8320 expected5=[0.0,0.0,1.0,0.0,1.5,0.0,2.0,0.0,0.0,1.5,1.0,1.5,1.5,1.5,2.0,1.5,0.0,3.0,1.0,3.0,1.5,3.0,2.0,3.0,0.0,0.0,1.0,0.0,2.0,0.0,0.0,1.0,1.0,1.0,2.0,1.0,0.0,3.0,1.0,3.0,2.0,3.0,1.5,1.0]
8321 self.assertEqual(45,m3.getNodalConnectivity().getNumberOfTuples());
8322 self.assertEqual(10,m3.getNodalConnectivityIndex().getNumberOfTuples());
8323 self.assertEqual(expected3,m3.getNodalConnectivity().getValues());
8324 self.assertEqual(expected4,m3.getNodalConnectivityIndex().getValues());
8325 for i in xrange(44):
8326 self.assertAlmostEqual(expected5[i],m3.getCoords().getIJ(0,i),12);
8330 def testBuildPartOfMySelfSafe1(self):
8331 mesh=MEDCouplingDataForTest.build2DTargetMesh_1()
8332 self.assertRaises(InterpKernelException,mesh.buildPartOfMySelf,[0,-1,4,2],True)
8333 self.assertRaises(InterpKernelException,mesh.buildPartOfMySelf,[0,4,5,4],True)
8336 def testIntersect2DMeshesTmp3(self):
8337 m1Coords=[0.,0.,1.,0.,1.5,0.,0.,1.,0.,1.5,-1.,0.,-1.5,0.,0.,-1,0.,-1.5,0.5,0.,1.25,0.,0.70710678118654757,0.70710678118654757,1.0606601717798214,1.0606601717798214,0.,0.5,0.,1.25,-0.70710678118654757,0.70710678118654757,-1.0606601717798214,1.0606601717798214,-0.5,0.,-1.25,0.,-0.70710678118654757,-0.70710678118654757,-1.0606601717798214,-1.0606601717798214,0.,-0.5,0.,-1.25,0.70710678118654757,-0.70710678118654757,1.0606601717798214,-1.0606601717798214];
8338 m1Conn=[0,3,1,13,11,9, 3,4,2,1,14,12,10,11, 5,3,0,15,13,17, 6,4,3,5,16,14,15,18, 5,0,7,17,21,19, 6,5,7,8,18,19,22,20, 0,1,7,9,23,21, 1,2,8,7,10,24,22,23];
8339 m1=MEDCouplingUMesh.New();
8340 m1.setMeshDimension(2);
8341 m1.allocateCells(8);
8342 m1.insertNextCell(NORM_TRI6,6,m1Conn[0:6]);
8343 m1.insertNextCell(NORM_QUAD8,8,m1Conn[6:14]);
8344 m1.insertNextCell(NORM_TRI6,6,m1Conn[14:20]);
8345 m1.insertNextCell(NORM_QUAD8,8,m1Conn[20:28]);
8346 m1.insertNextCell(NORM_TRI6,6,m1Conn[28:34]);
8347 m1.insertNextCell(NORM_QUAD8,8,m1Conn[34:42]);
8348 m1.insertNextCell(NORM_TRI6,6,m1Conn[42:48]);
8349 m1.insertNextCell(NORM_QUAD8,8,m1Conn[48:56]);
8350 m1.finishInsertingCells();
8351 myCoords1=DataArrayDouble.New();
8352 myCoords1.setValues(m1Coords,25,2);
8353 m1.setCoords(myCoords1);
8355 m2Coords=[0.,0.,1.1,0.,1.1,1.,0.,1.,1.7,0.,1.7,1.,-1.1,1.,-1.1,0.,-1.7,0.,-1.7,1.,-1.7,-1,-1.1,-1.,0.,-1.,1.1,-1,1.7,-1.]
8356 m2Conn=[0,3,2,1, 1,2,5,4, 7,6,3,0, 8,9,6,7, 7,0,12,11, 8,7,11,10, 0,1,13,12, 1,4,14,13]
8357 m2=MEDCouplingUMesh.New();
8358 m2.setMeshDimension(2);
8359 m2.allocateCells(8);
8361 m2.insertNextCell(NORM_QUAD4,4,m2Conn[4*i:4*(i+1)])
8363 m2.finishInsertingCells();
8364 myCoords2=DataArrayDouble.New();
8365 myCoords2.setValues(m2Coords,15,2);
8366 m2.setCoords(myCoords2);
8368 m3,d1,d2=MEDCouplingUMesh.Intersect2DMeshes(m1,m2,1e-10)
8371 expected1=[0,1,1,1,2,3,3,3,4,5,5,5,6,7,7,7]
8372 expected2=[0,0,1,-1,2,2,3,-1,4,4,5,-1,6,6,7,-1]
8373 self.assertEqual(16,d1.getNumberOfTuples());
8374 self.assertEqual(16,d2.getNumberOfTuples());
8375 self.assertEqual(16,m3.getNumberOfCells());
8376 self.assertEqual(104,m3.getNumberOfNodes());
8377 self.assertEqual(2,m3.getSpaceDimension());
8378 self.assertEqual(expected1,d1.getValues());
8379 self.assertEqual(expected2,d2.getValues());
8380 expected3=[6,28,1,25,44,45,46,8,26,1,28,27,47,48,49,50,8,40,2,26,27,51,52,53,54,8,28,4,40,27,55,56,57,58,6,28,25,5,59,60,61,8,28,5,32,31,62,63,64,65,8,32,6,41,31,66,67,68,69,8,41,4,28,31,70,71,72,73,6,25,37,5,74,75,76,8,32,5,37,36,77,78,79,80,8,42,6,32,36,81,82,83,84,8,37,8,42,36,85,86,87,88,6,1,37,25,89,90,91,8,37,1,26,38,92,93,94,95,8,26,2,43,38,96,97,98,99,8,43,8,37,38,100,101,102,103]
8381 expected4=[0,7,16,25,34,41,50,59,68,75,84,93,102,109,118,127,136]
8382 expected5=[0.,0.,1.,0.,1.5,0.,0.,1.,0.,1.5,-1.,0.,-1.5,0.,0.,-1.,0.,-1.5,0.5,0.,1.25,0.,0.7071067811865476,0.7071067811865476,1.0606601717798214,1.0606601717798214,0.,0.5,0.,1.25,-0.7071067811865476,0.7071067811865476,-1.0606601717798214,1.0606601717798214,-0.5,0.,-1.25,0.,-0.7071067811865476,-0.7071067811865476,-1.0606601717798214,-1.0606601717798214,0.,-0.5,0.,-1.25,0.7071067811865476,-0.7071067811865476,1.0606601717798214,-1.0606601717798214,0.,0.,1.1,0.,1.1,1.,0.,1.,1.7,0.,1.7,1.,-1.1,1.,-1.1,0.,-1.7,0.,-1.7,1.,-1.7,-1.,-1.1,-1.,0.,-1.,1.1,-1.,1.7,-1.,1.118033988749895,1.,-1.118033988749895,1.,-1.118033988749895,-1.,1.118033988749895,-1.,0.7071067811865477,0.7071067811865476,0.5,0.,0.,0.5,1.05,0.,0.7071067811865475,0.7071067811865477,0.55,1.,1.1,0.5,1.4012585384440737,0.535233134659635,1.3,0.,1.1,0.5,1.1090169943749475,1.,0.,1.25,0.6123724356957946,1.369306393762915,1.1090169943749475,1.,0.55,1.,0.,0.5,-0.5,0.,-0.7071067811865477,0.7071067811865476,-0.7071067811865475,0.7071067811865477,-1.05,0.,-1.1,0.5,-0.55,1.,-1.3,0.,-1.4012585384440737,0.5352331346596344,-1.1090169943749475,1.,-1.1,0.5,-0.6123724356957941,1.3693063937629155,0.,1.25,-0.55,1.,-1.1090169943749475,1.,0.,-0.5,-0.7071067811865475,-0.7071067811865477,-0.5,0.,-1.05,0.,-0.7071067811865478,-0.7071067811865475,-0.55,-1.,-1.1,-0.5,-1.4012585384440734,-0.5352331346596354,-1.3,0.,-1.1,-0.5,-1.1090169943749475,-1.,0.,-1.25,-0.6123724356957945,-1.369306393762915,-1.1090169943749475,-1.,-0.55,-1.,0.7071067811865475,-0.7071067811865477,0.,-0.5,0.5,0.,0.7071067811865477,-0.7071067811865475,1.05,0.,1.1,-0.5,0.55,-1.,1.3,0.,1.4012585384440737,-0.535233134659635,1.1090169943749475,-1.,1.1,-0.5,0.6123724356957946,-1.369306393762915,0.,-1.25,0.55,-1.,1.1090169943749475,-1.0]
8383 self.assertEqual(136,m3.getNodalConnectivity().getNumberOfTuples());
8384 self.assertEqual(17,m3.getNodalConnectivityIndex().getNumberOfTuples());
8385 self.assertEqual(expected3,m3.getNodalConnectivity().getValues());
8386 self.assertEqual(expected4,m3.getNodalConnectivityIndex().getValues());
8387 for i in xrange(208):
8388 self.assertAlmostEqual(expected5[i],m3.getCoords().getIJ(0,i),12);
8392 def testUMeshTessellate2D1(self):
8393 m1Coords=[0.,0.,1.,0.,1.5,0.,0.,1.,0.,1.5,-1.,0.,-1.5,0.,0.,-1,0.,-1.5,0.5,0.,1.25,0.,0.70710678118654757,0.70710678118654757,1.0606601717798214,1.0606601717798214,0.,0.5,0.,1.25,-0.70710678118654757,0.70710678118654757,-1.0606601717798214,1.0606601717798214,-0.5,0.,-1.25,0.,-0.70710678118654757,-0.70710678118654757,-1.0606601717798214,-1.0606601717798214,0.,-0.5,0.,-1.25,0.70710678118654757,-0.70710678118654757,1.0606601717798214,-1.0606601717798214];
8394 m1Conn=[0,3,1,13,11,9, 3,4,2,1,14,12,10,11, 5,3,0,15,13,17, 6,4,3,5,16,14,15,18, 5,0,7,17,21,19, 6,5,7,8,18,19,22,20, 0,1,7,9,23,21, 1,2,8,7,10,24,22,23];
8395 m1=MEDCouplingUMesh.New();
8396 m1.setMeshDimension(2);
8397 m1.allocateCells(8);
8398 m1.insertNextCell(NORM_TRI6,6,m1Conn[0:6]);
8399 m1.insertNextCell(NORM_QUAD8,8,m1Conn[6:14]);
8400 m1.insertNextCell(NORM_TRI6,6,m1Conn[14:20]);
8401 m1.insertNextCell(NORM_QUAD8,8,m1Conn[20:28]);
8402 m1.insertNextCell(NORM_TRI6,6,m1Conn[28:34]);
8403 m1.insertNextCell(NORM_QUAD8,8,m1Conn[34:42]);
8404 m1.insertNextCell(NORM_TRI6,6,m1Conn[42:48]);
8405 m1.insertNextCell(NORM_QUAD8,8,m1Conn[48:56]);
8406 m1.finishInsertingCells();
8407 myCoords1=DataArrayDouble.New();
8408 myCoords1.setValues(m1Coords,25,2);
8409 m1.setCoords(myCoords1);
8412 m11.tessellate2D(1.);
8413 self.assertTrue(m11.getCoords().isEqual(m11.getCoords(),1e-12));
8414 expected1=[5,0,3,11,1,5,3,4,12,2,1,11,5,5,15,3,0,5,6,16,4,3,15,5,5,5,0,7,19,5,6,5,19,7,8,20,5,0,1,23,7,5,1,2,24,8,7,23]
8415 expected2=[0,5,12,17,24,29,36,41,48]
8416 self.assertEqual(48,m11.getNodalConnectivity().getNumberOfTuples());
8417 self.assertEqual(9,m11.getNodalConnectivityIndex().getNumberOfTuples());
8418 self.assertEqual(expected1,m11.getNodalConnectivity().getValues());
8419 self.assertEqual(expected2,m11.getNodalConnectivityIndex().getValues());
8422 m12.tessellate2D(0.5);
8423 self.assertEqual(41,m12.getNumberOfNodes());
8424 expected3=[5,0,3,25,26,1,5,3,4,27,28,2,1,26,25,5,5,29,30,3,0,5,6,31,32,4,3,30,29,5,5,5,0,7,33,34,5,6,5,34,33,7,8,35,36,5,0,1,37,38,7,5,1,2,39,40,8,7,38,37]
8425 expected4=[0,6,15,21,30,36,45,51,60]
8426 expected5=[0.,0.,1.,0.,1.5,0.,0.,1.,0.,1.5,-1.,0.,-1.5,0.,0.,-1.,0.,-1.5,0.5,0.,1.25,0.,0.7071067811865476,0.7071067811865476,1.0606601717798214,1.0606601717798214,0.,0.5,0.,1.25,-0.7071067811865476,0.7071067811865476,-1.0606601717798214,1.0606601717798214,-0.5,0.,-1.25,0.,-0.7071067811865476,-0.7071067811865476,-1.0606601717798214,-1.0606601717798214,0.,-0.5,0.,-1.25,0.7071067811865476,-0.7071067811865476,1.0606601717798214,-1.0606601717798214,0.479425538604203,0.8775825618903728,0.8414709848078964,0.54030230586814,0.7191383079063044,1.3163738428355591,1.2622064772118446,0.8104534588022099,-0.877582561890373,0.4794255386042027,-0.5403023058681399,0.8414709848078964,-1.3163738428355596,0.7191383079063038,-0.8104534588022098,1.2622064772118446,-0.4794255386042031,-0.8775825618903728,-0.8414709848078965,-0.5403023058681399,-0.7191383079063045,-1.3163738428355591,-1.2622064772118449,-0.8104534588022098,0.8775825618903729,-0.47942553860420295,0.54030230586814,-0.8414709848078964,1.3163738428355594,-0.7191383079063043,0.8104534588022099,-1.2622064772118446]
8427 for i in xrange(82):
8428 self.assertAlmostEqual(expected5[i],m12.getCoords().getIJ(0,i),12);
8430 self.assertEqual(60,m12.getNodalConnectivity().getNumberOfTuples());
8431 self.assertEqual(9,m12.getNodalConnectivityIndex().getNumberOfTuples());
8432 self.assertEqual(expected3,m12.getNodalConnectivity().getValues());
8433 self.assertEqual(expected4,m12.getNodalConnectivityIndex().getValues());
8436 def testIntersect2DMeshesTmp4(self):
8437 m1Coords=[0.,0.,1.,0.,1.5,0.,0.,1.,0.,1.5,-1.,0.,-1.5,0.,0.,-1,0.,-1.5,0.5,0.,1.25,0.,0.70710678118654757,0.70710678118654757,1.0606601717798214,1.0606601717798214,0.,0.5,0.,1.25,-0.70710678118654757,0.70710678118654757,-1.0606601717798214,1.0606601717798214,-0.5,0.,-1.25,0.,-0.70710678118654757,-0.70710678118654757,-1.0606601717798214,-1.0606601717798214,0.,-0.5,0.,-1.25,0.70710678118654757,-0.70710678118654757,1.0606601717798214,-1.0606601717798214];
8438 m1Conn=[0,3,1,13,11,9, 3,4,2,1,14,12,10,11, 5,3,0,15,13,17, 6,4,3,5,16,14,15,18, 5,0,7,17,21,19, 6,5,7,8,18,19,22,20, 0,1,7,9,23,21, 1,2,8,7,10,24,22,23];
8439 m1=MEDCouplingUMesh.New();
8440 m1.setMeshDimension(2);
8441 m1.allocateCells(8);
8442 m1.insertNextCell(NORM_TRI6,6,m1Conn[0:6]);
8443 m1.insertNextCell(NORM_QUAD8,8,m1Conn[6:14]);
8444 m1.insertNextCell(NORM_TRI6,6,m1Conn[14:20]);
8445 m1.insertNextCell(NORM_QUAD8,8,m1Conn[20:28]);
8446 m1.insertNextCell(NORM_TRI6,6,m1Conn[28:34]);
8447 m1.insertNextCell(NORM_QUAD8,8,m1Conn[34:42]);
8448 m1.insertNextCell(NORM_TRI6,6,m1Conn[42:48]);
8449 m1.insertNextCell(NORM_QUAD8,8,m1Conn[48:56]);
8450 m1.finishInsertingCells();
8451 myCoords1=DataArrayDouble.New();
8452 myCoords1.setValues(m1Coords,25,2);
8453 m1.setCoords(myCoords1);
8455 m2Coords=[0.,0.,1.1,0.,1.1,1.,0.,1.,1.7,0.,1.7,1.,-1.1,1.,-1.1,0.,-1.7,0.,-1.7,1.,-1.7,-1,-1.1,-1.,0.,-1.,1.1,-1,1.7,-1.]
8456 m2Conn=[0,3,2,1, 1,2,5,4, 7,6,3,0, 8,9,6,7, 7,0,12,11, 8,7,11,10, 0,1,13,12, 1,4,14,13]
8457 m2=MEDCouplingUMesh.New();
8458 m2.setMeshDimension(2);
8459 m2.allocateCells(8);
8461 m2.insertNextCell(NORM_QUAD4,4,m2Conn[4*i:4*(i+1)])
8463 m2.finishInsertingCells();
8464 myCoords2=DataArrayDouble.New();
8465 myCoords2.setValues(m2Coords,15,2);
8466 m2.setCoords(myCoords2);
8468 m3,d1,d2=MEDCouplingUMesh.Intersect2DMeshes(m2,m1,1e-10)
8471 expected1=[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]
8472 expected2=[0,1,1,-1,2,3,3,-1,4,5,5,-1,6,7,7,-1]
8473 self.assertEqual(16,d1.getNumberOfTuples());
8474 self.assertEqual(16,d2.getNumberOfTuples());
8475 self.assertEqual(16,m3.getNumberOfCells());
8476 self.assertEqual(104,m3.getNumberOfNodes());
8477 self.assertEqual(2,m3.getSpaceDimension());
8478 self.assertEqual(expected1,d1.getValues());
8479 self.assertEqual(expected2,d2.getValues());
8480 expected3=[6,16,15,18,44,45,46,8,18,2,1,16,47,48,49,50,8,17,1,2,40,51,52,53,54,8,40,5,4,17,55,56,57,58,6,18,15,20,59,60,61,8,20,7,6,18,62,63,64,65,8,41,6,7,21,66,67,68,69,8,21,8,9,41,70,71,72,73,6,20,15,22,74,75,76,8,22,11,7,20,77,78,79,80,8,21,7,11,42,81,82,83,84,8,42,10,8,21,85,86,87,88,6,22,15,16,89,90,91,8,16,1,13,22,92,93,94,95,8,43,13,1,17,96,97,98,99,8,17,4,14,43,100,101,102,103]
8481 expected4=[0,7,16,25,34,41,50,59,68,75,84,93,102,109,118,127,136]
8482 expected5=[0.,0.,1.1, 0.,1.1,1.,0.,1.,1.7,0.,1.7,1.,-1.1,1.,-1.1,0.,-1.7,0.,-1.7,1.,-1.7,-1.,-1.1,-1.,0.,-1.,1.1,-1.,1.7,-1.,0.,0.,1.,0.,1.5,0.,0.,1.,0.,1.5,-1.,0.,-1.5,0.,0.,-1.,0.,-1.5,0.5,0.,1.25,0.,0.7071067811865476,0.7071067811865476,1.0606601717798214,1.0606601717798214,0.,0.5,0.,1.25,-0.7071067811865476,0.7071067811865476,-1.0606601717798214,1.0606601717798214,-0.5,0.,-1.25,0.,-0.7071067811865476,-0.7071067811865476,-1.0606601717798214,-1.0606601717798214,0.,-0.5,0.,-1.25,0.7071067811865476,-0.7071067811865476,1.0606601717798214,-1.0606601717798214,1.1180339887498951,1.,-1.1180339887498951,1.,-1.1180339887498951,-1.,1.1180339887498951,-1.,0.5,0.,0.,0.5,0.7071067811865477,0.7071067811865476,0.55,1.,1.1,0.5,1.05,0.,0.7071067811865477,0.7071067811865475,1.3,0.,1.1,0.5,1.1090169943749475,1.,1.4012585384440737,0.535233134659635,1.4090169943749475,1.,1.7,0.5,1.6,0.,1.4012585384440737,0.535233134659635,0.,0.5,-0.5,0.,-0.7071067811865477,0.7071067811865476,-1.05,0.,-1.1,0.5,-0.55,1.,-0.7071067811865478,0.7071067811865475,-1.1090169943749475,1.,-1.1,0.5,-1.3,0.,-1.4012585384440737,0.5352331346596344,-1.6,0.,-1.7,0.5,-1.4090169943749475,1.,-1.4012585384440737,0.5352331346596344,-0.5,0.,0.,-0.5,-0.7071067811865475,-0.7071067811865477,-0.55,-1.,-1.1,-0.5,-1.05,0.,-0.7071067811865475,-0.7071067811865477,-1.3,0.,-1.1,-0.5,-1.1090169943749475,-1.,-1.4012585384440734,-0.5352331346596354,-1.4090169943749475,-1.,-1.7,-0.5,-1.6,0.,-1.4012585384440732,-0.5352331346596354,0.,-0.5,0.5,0.,0.7071067811865475,-0.7071067811865477,1.05,0.,1.1,-0.5,0.55,-1.,0.7071067811865475,-0.7071067811865477,1.1090169943749475,-1.,1.1,-0.5,1.3,0.,1.4012585384440737,-0.535233134659635,1.6,0.,1.7,-0.5,1.4090169943749475,-1.,1.4012585384440737,-0.535233134659635]
8483 self.assertEqual(136,m3.getNodalConnectivity().getNumberOfTuples());
8484 self.assertEqual(17,m3.getNodalConnectivityIndex().getNumberOfTuples());
8485 self.assertEqual(expected3,m3.getNodalConnectivity().getValues());
8486 self.assertEqual(expected4,m3.getNodalConnectivityIndex().getValues());
8487 for i in xrange(208):
8488 self.assertAlmostEqual(expected5[i],m3.getCoords().getIJ(0,i),12);
8492 def testGetCellIdsCrossingPlane1(self):
8493 mesh3D,mesh2D=MEDCouplingDataForTest.build3DExtrudedUMesh_1();
8495 origin=[1.524,1.4552,1.74768]
8496 ids1=mesh3D.getCellIdsCrossingPlane(origin,vec,1e-10)
8497 self.assertEqual([1,3,4,7,9,10,13,15,16],ids1.getValues())
8499 ids2=mesh3D.getCellIdsCrossingPlane(origin,vec2,1e-10)
8500 self.assertEqual([6,7,8,9,10,11],ids2.getValues())
8503 def testBuildSlice3D1(self):
8504 mesh3D,mesh2D=MEDCouplingDataForTest.build3DExtrudedUMesh_1();
8505 vec1=[-0.07,1.,0.07]
8506 origin1=[1.524,1.4552,1.74768]
8507 slice1,ids=mesh3D.buildSlice3D(origin1,vec1,1e-10);
8508 expected1=[1,3,4,7,9,10,13,15,16]
8509 expected2=[5,42,41,40,43,44,5,42,46,45,41,5,44,43,40,47,48,5,49,42,44,50,5,49,51,46,42,5,50,44,48,52,5,53,49,50,54,5,53,55,51,49,5,54,50,52,56]
8510 expected3=[0,6,11,17,22,27,32,37,42,47]
8511 expected4=[1.,1.,0.,1.,1.25,0.,1.,1.5,0.,2.,1.,0.,1.,2.,0.,0.,2.,0.,3.,1.,0.,3.,2.,0.,0.,1.,0.,2.,2.,0.,1.,1.,1.,1.,1.25,1.,1.,1.5,1.,2.,1.,1.,1.,2.,1.,0.,2.,1.,3.,1.,1.,3.,2.,1.,0.,1.,1.,2.,2.,1.,1.,1.,2.,1.,1.25,2.,1.,1.5,2.,2.,1.,2.,1.,2.,2.,0.,2.,2.,3.,1.,2.,3.,2.,2.,0.,1.,2.,2.,2.,2.,1.,1.,3.,1.,1.25,3.,1.,1.5,3.,2.,1.,3.,1.,2.,3.,0.,2.,3.,3.,1.,3.,3.,2.,3.,0.,1.,3.,2.,2.,3.,1.,1.5408576,0.,2.,1.6108576000000001,0.,2.,1.5408576,1.,1.,1.5,0.5836800000000008,1.,1.4708576,1.,3.,1.6808576,0.,3.,1.6108576000000001,1.,0.,1.4708576,0.,0.,1.4008576,1.,2.,1.4708576,2.,1.,1.4008576000000001,2.,3.,1.5408575999999998,2.,0.,1.3308575999999999,2.,2.,1.4008576,3.,1.,1.3308576,3.,3.,1.4708576,3.,0.,1.2608576,3.]
8512 self.assertEqual(2,slice1.getMeshDimension());
8513 self.assertEqual(3,slice1.getSpaceDimension());
8514 self.assertEqual(57,slice1.getNumberOfNodes());
8515 self.assertEqual(9,slice1.getNumberOfCells());
8516 self.assertEqual(9,ids.getNumberOfTuples());
8517 self.assertEqual(47,slice1.getNodalConnectivity().getNumberOfTuples());
8518 self.assertEqual(10,slice1.getNodalConnectivityIndex().getNumberOfTuples());
8519 self.assertEqual(expected1,ids.getValues());
8520 self.assertEqual(expected2,slice1.getNodalConnectivity().getValues());
8521 self.assertEqual(expected3,slice1.getNodalConnectivityIndex().getValues());
8522 for i in xrange(171):
8523 self.assertAlmostEqual(expected4[i],slice1.getCoords().getIJ(0,i),12);
8525 # 2nd slice based on already existing nodes of mesh3D.
8528 slice1,ids=mesh3D.buildSlice3D(origin2,vec2,1e-10);
8529 expected5=[5,50,10,4,51,5,50,52,7,10,5,51,4,5,53,5,54,50,51,55,56,5,54,57,52,50,5,56,55,51,53,58,5,38,59,56,54,43,5,54,57,46,43,5,38,59,56,58,48]
8530 expected6=[0,5,10,15,21,26,32,38,43,49]
8531 expected7=[1.,1.,0.,1.,1.25,0.,1.,1.5,0.,2.,1.,0.,1.,2.,0.,0.,2.,0.,3.,1.,0.,3.,2.,0.,0.,1.,0.,1.,3.,0.,2.,2.,0.,2.,3.,0.,1.,1.,1.,1.,1.25,1.,1.,1.5,1.,2.,1.,1.,1.,2.,1.,0.,2.,1.,3.,1.,1.,3.,2.,1.,0.,1.,1.,1.,3.,1.,2.,2.,1.,2.,3.,1.,0.,0.,2.,1.,1.,2.,1.,1.25,2.,1.,0.,2.,1.,1.5,2.,2.,0.,2.,2.,1.,2.,1.,2.,2.,0.,2.,2.,3.,1.,2.,3.,2.,2.,0.,1.,2.,2.,2.,2.,0.,0.,3.,1.,1.,3.,1.,1.25,3.,1.,0.,3.,1.,1.5,3.,2.,0.,3.,2.,1.,3.,1.,2.,3.,0.,2.,3.,3.,1.,3.,3.,2.,3.,0.,1.,3.,2.,2.,3.,2.,1.6666666666666667,1.,1.,1.6666666666666667,1.,3.,1.6666666666666667,1.,0.,1.6666666666666667,1.,2.,1.3333333333333335,2.,1.,1.5,1.5,1.,1.3333333333333333,2.,3.,1.3333333333333335,2.,0.,1.3333333333333335,2.,1.,1.25,2.25]
8532 self.assertEqual(2,slice1.getMeshDimension());
8533 self.assertEqual(3,slice1.getSpaceDimension());
8534 self.assertEqual(60,slice1.getNumberOfNodes());
8535 self.assertEqual(9,slice1.getNumberOfCells());
8536 self.assertEqual(9,ids.getNumberOfTuples());
8537 self.assertEqual(49,slice1.getNodalConnectivity().getNumberOfTuples());
8538 self.assertEqual(10,slice1.getNodalConnectivityIndex().getNumberOfTuples());
8539 self.assertEqual(expected1,ids.getValues());
8540 self.assertEqual(expected5,slice1.getNodalConnectivity().getValues());
8541 self.assertEqual(expected6,slice1.getNodalConnectivityIndex().getValues());
8542 for i in xrange(180):
8543 self.assertAlmostEqual(expected7[i],slice1.getCoords().getIJ(0,i),12);
8545 # 3rd slice based on shared face of mesh3D.
8548 slice1,ids=mesh3D.buildSlice3D(origin3,vec3,1e-10);
8549 expected8=[6,7,8,9,10,11,12,13,14,15,16,17]
8550 expected9=[5,15,26,16,18,5,16,21,28,22,19,17,5,18,20,21,16,5,21,24,25,28,5,26,16,17,19,22,23,5,22,27,29,28,5,15,26,16,18,5,16,21,28,22,19,17,5,18,20,21,16,5,21,24,25,28,5,26,16,17,19,22,23,5,22,27,29,28]
8551 expected10=[0,5,12,17,22,29,34,39,46,51,56,63,68]
8552 expected11=[0.,0.,1.,1.,1.,1.,1.,1.25,1.,1.,0.,1.,1.,1.5,1.,2.,0.,1.,2.,1.,1.,1.,2.,1.,0.,2.,1.,3.,1.,1.,3.,2.,1.,0.,1.,1.,1.,3.,1.,2.,2.,1.,2.,3.,1.,0.,0.,2.,1.,1.,2.,1.,1.25,2.,1.,0.,2.,1.,1.5,2.,2.,0.,2.,2.,1.,2.,1.,2.,2.,0.,2.,2.,3.,1.,2.,3.,2.,2.,0.,1.,2.,1.,3.,2.,2.,2.,2.,2.,3.,2.,0.,0.,3.,1.,1.,3.,1.,1.25,3.,1.,0.,3.,1.,1.5,3.,2.,0.,3.,2.,1.,3.,1.,2.,3.,0.,2.,3.,3.,1.,3.,3.,2.,3.,0.,1.,3.,1.,3.,3.,2.,2.,3.,2.,3.,3.]
8553 self.assertEqual(2,slice1.getMeshDimension());
8554 self.assertEqual(3,slice1.getSpaceDimension());
8555 self.assertEqual(45,slice1.getNumberOfNodes());
8556 self.assertEqual(12,slice1.getNumberOfCells());
8557 self.assertEqual(12,ids.getNumberOfTuples());
8558 self.assertEqual(68,slice1.getNodalConnectivity().getNumberOfTuples());
8559 self.assertEqual(13,slice1.getNodalConnectivityIndex().getNumberOfTuples());
8560 self.assertEqual(expected8,ids.getValues());
8561 self.assertEqual(expected9,slice1.getNodalConnectivity().getValues());
8562 self.assertEqual(expected10,slice1.getNodalConnectivityIndex().getValues());
8563 for i in xrange(135):
8564 self.assertAlmostEqual(expected11[i],slice1.getCoords().getIJ(0,i),12);
8568 def testBuildSlice3DSurf1(self):
8569 mesh3D,mesh2D=MEDCouplingDataForTest.build3DExtrudedUMesh_1();
8570 mesh2D=mesh3D.buildDescendingConnectivity()[0];
8571 vec1=[-0.07,1.,0.07]
8572 origin1=[1.524,1.4552,1.74768]
8573 slice1,ids=mesh2D.buildSlice3DSurf(origin1,vec1,1e-10);
8574 expected1=[6,8,10,11,13,18,19,21,23,25,26,38,41,43,47,49,52,53,64,67,69,73,75,78,79]
8575 expected2=[1,40,41,1,42,41,1,40,43,1,44,43,1,42,44,1,45,41,1,42,46,1,46,45,1,47,40,1,47,48,1,44,48,1,49,42,1,44,50,1,49,50,1,49,51,1,51,46,1,48,52,1,50,52,1,53,49,1,50,54,1,53,54,1,53,55,1,55,51,1,52,56,1,54,56]
8576 expected3=[0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75];
8577 expected4=[1.,1.,0.,1.,1.25,0.,1.,1.5,0.,2.,1.,0.,1.,2.,0.,0.,2.,0.,3.,1.,0.,3.,2.,0.,0.,1.,0.,2.,2.,0.,1.,1.,1.,1.,1.25,1.,1.,1.5,1.,2.,1.,1.,1.,2.,1.,0.,2.,1.,3.,1.,1.,3.,2.,1.,0.,1.,1.,2.,2.,1.,1.,1.,2.,1.,1.25,2.,1.,1.5,2.,2.,1.,2.,1.,2.,2.,0.,2.,2.,3.,1.,2.,3.,2.,2.,0.,1.,2.,2.,2.,2.,1.,1.,3.,1.,1.25,3.,1.,1.5,3.,2.,1.,3.,1.,2.,3.,0.,2.,3.,3.,1.,3.,3.,2.,3.,0.,1.,3.,2.,2.,3.,1.,1.5408576,0.,2.,1.6108576000000001,0.,2.,1.5408576,1.,1.,1.5,0.5836800000000008,1.,1.4708576,1.,3.,1.6808576,0.,3.,1.6108576000000001,1.,0.,1.4708576,0.,0.,1.4008576,1.,2.,1.4708576,2.,1.,1.4008576000000001,2.,3.,1.5408575999999998,2.,0.,1.3308575999999999,2.,2.,1.4008576,3.,1.,1.3308576,3.,3.,1.4708576,3.,0.,1.2608576,3.]
8578 self.assertEqual(1,slice1.getMeshDimension());
8579 self.assertEqual(3,slice1.getSpaceDimension());
8580 self.assertEqual(57,slice1.getNumberOfNodes());
8581 self.assertEqual(25,slice1.getNumberOfCells());
8582 self.assertEqual(25,ids.getNumberOfTuples());
8583 self.assertEqual(75,slice1.getNodalConnectivity().getNumberOfTuples());
8584 self.assertEqual(26,slice1.getNodalConnectivityIndex().getNumberOfTuples());
8585 self.assertEqual(expected1,ids.getValues());
8586 self.assertEqual(expected2,slice1.getNodalConnectivity().getValues());
8587 self.assertEqual(expected3,slice1.getNodalConnectivityIndex().getValues());
8588 for i in xrange(171):
8589 self.assertAlmostEqual(expected4[i],slice1.getCoords().getIJ(0,i),12);
8594 slice1,ids=mesh2D.buildSlice3DSurf(origin2,vec2,1e-10);
8595 expected5=[32,32,32,32,33,34,35,36,37,38,39,40,41,42,43,43,43,43,43,43,44,44,44,44,45,46,47,47,47,47,48,49,50,51,52,53,53,53,53,53,53,54,54,54,54,55,56,57,59,60,61,62,63,64,65,66,67,68,71,72,74,75,76,77,78,81,82,83]
8596 expected6=[1,15,18,1,18,16,1,16,26,1,26,15,1,26,15,1,16,26,1,18,16,1,15,18,1,16,21,1,21,28,1,22,28,1,19,22,1,17,19,1,16,17,1,16,21,1,21,28,1,28,22,1,22,19,1,19,17,1,17,16,1,16,18,1,18,20,1,20,21,1,21,16,1,20,21,1,18,20,1,28,21,1,21,24,1,24,25,1,25,28,1,25,28,1,24,25,1,21,24,1,23,22,1,26,23,1,26,16,1,16,17,1,17,19,1,19,22,1,22,23,1,23,26,1,22,28,1,28,29,1,29,27,1,27,22,1,27,22,1,29,27,1,28,29,1,26,15,1,16,26,1,18,16,1,15,18,1,16,21,1,21,28,1,22,28,1,19,22,1,17,19,1,16,17,1,20,21,1,18,20,1,25,28,1,24,25,1,21,24,1,23,22,1,26,23,1,27,22,1,29,27,1,28,29]
8597 expected7=[0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,93,96,99,102,105,108,111,114,117,120,123,126,129,132,135,138,141,144,147,150,153,156,159,162,165,168,171,174,177,180,183,186,189,192,195,198,201,204];
8598 expected8=[0.,0.,1.,1.,1.,1.,1.,1.25, 1.,1.,0.,1.,1.,1.5, 1.,2.,0.,1.,2.,1.,1.,1.,2.,1.,0.,2.,1.,3.,1.,1.,3.,2.,1.,0.,1.,1.,1.,3.,1.,2.,2.,1.,2.,3.,1.,0.,0.,2.,1.,1.,2.,1.,1.25, 2.,1.,0.,2.,1.,1.5, 2.,2.,0.,2.,2.,1.,2.,1.,2.,2.,0.,2.,2.,3.,1.,2.,3.,2.,2.,0.,1.,2.,1.,3.,2.,2.,2.,2.,2.,3.,2.,0.,0.,3.,1.,1.,3.,1.,1.25, 3.,1.,0.,3.,1.,1.5, 3.,2.,0.,3.,2.,1.,3.,1.,2.,3.,0.,2.,3.,3.,1.,3.,3.,2.,3.,0.,1.,3.,1.,3.,3.,2.,2.,3.,2.,3.,3.]
8599 self.assertEqual(1,slice1.getMeshDimension());
8600 self.assertEqual(3,slice1.getSpaceDimension());
8601 self.assertEqual(45,slice1.getNumberOfNodes());
8602 self.assertEqual(68,slice1.getNumberOfCells());
8603 self.assertEqual(68,ids.getNumberOfTuples());
8604 self.assertEqual(204,slice1.getNodalConnectivity().getNumberOfTuples());
8605 self.assertEqual(69,slice1.getNodalConnectivityIndex().getNumberOfTuples());
8606 self.assertEqual(expected5,ids.getValues());
8607 self.assertEqual(expected6,slice1.getNodalConnectivity().getValues());
8608 self.assertEqual(expected7,slice1.getNodalConnectivityIndex().getValues());
8609 for i in xrange(135):
8610 self.assertAlmostEqual(expected8[i],slice1.getCoords().getIJ(0,i),12);
8614 def testDataArrayDoubleAdvSetting1(self):
8615 data1=[1.,11.,2.,12.,3.,13.,4.,14.,5.,15.,6.,16.,7.,17.]
8616 data2=[8.,38.,9.,39.,0.,30.,11.,41.,12.,42.]
8617 compsCpp=["comp1","comp2"]
8618 da=DataArrayDouble.New();
8619 da.setInfoAndChangeNbOfCompo(compsCpp);
8622 compsCpp=compsCpp[:-1]
8623 self.assertRaises(InterpKernelException,da.setInfoAndChangeNbOfCompo,compsCpp);
8624 da.setValues(data1,7,2)
8626 p=[(0,3),(3,5),(5,7)]
8627 tmp=da.selectByTupleRanges(p);
8628 self.assertTrue(tmp.isEqual(da,1e-14));
8629 p=[(0,2),(3,4),(5,7)]
8630 tmp=da.selectByTupleRanges(p);
8631 expected1=[1.,11.,2.,12.,4.,14.,6.,16.,7.,17.]
8632 self.assertEqual(5,tmp.getNumberOfTuples());
8633 self.assertEqual(2,tmp.getNumberOfComponents());
8634 for i in xrange(10):
8635 self.assertAlmostEqual(expected1[i],tmp.getIJ(0,i),14);
8637 p=[(0,2),(0,2),(5,6)]
8638 tmp=da.selectByTupleRanges(p);
8639 expected2=[1.,11.,2.,12.,1.,11.,2.,12.,6.,16.]
8640 self.assertEqual(5,tmp.getNumberOfTuples());
8641 self.assertEqual(2,tmp.getNumberOfComponents());
8642 for i in xrange(10):
8643 self.assertAlmostEqual(expected2[i],tmp.getIJ(0,i),14);
8645 p=[(0,2),(-1,2),(5,6)]
8646 self.assertRaises(InterpKernelException,da.selectByTupleRanges,p);
8647 p=[(0,2),(0,2),(5,8)]
8648 self.assertRaises(InterpKernelException,da.selectByTupleRanges,p);
8650 da2=DataArrayDouble.New();
8651 da2.setValues(data2,5,2);
8654 dac.setContigPartOfSelectedValues2(1,da2,2,4,1);
8655 expected3=[1.,11.,0.,30.,11.,41.,4.,14.,5.,15.,6.,16.,7.,17.]
8656 for i in xrange(14):
8657 self.assertAlmostEqual(expected3[i],dac.getIJ(0,i),14);
8661 self.assertRaises(InterpKernelException,dac.setContigPartOfSelectedValues2,3,da2,0,5,1);
8662 self.assertRaises(InterpKernelException,dac.setContigPartOfSelectedValues2,0,da2,4,6,1);
8663 self.assertRaises(InterpKernelException,dac.setContigPartOfSelectedValues2,3,da2,5,0,1);
8664 dac.setContigPartOfSelectedValues2(3,da2,1,5,1);
8665 expected4=[1.,11.,2.,12.,3.,13.,9.,39.,0.,30.,11.,41.,12.,42.]
8666 for i in xrange(14):
8667 self.assertAlmostEqual(expected4[i],dac.getIJ(0,i),14);
8670 ids=DataArrayInt.New();
8673 ids.setIJ(0,0,2); ids.setIJ(1,0,0); ids.setIJ(2,0,4);
8674 dac.setContigPartOfSelectedValues(2,da2,ids);
8675 expected5=[1.,11.,2.,12.,0.,30.,8.,38.,12.,42.,6.,16.,7.,17.]
8676 for i in xrange(14):
8677 self.assertAlmostEqual(expected5[i],dac.getIJ(0,i),14);
8681 ids.setIJ(0,0,2); ids.setIJ(1,0,5); ids.setIJ(2,0,4);
8682 self.assertRaises(InterpKernelException,dac.setContigPartOfSelectedValues,1,da2,ids);
8683 ids.setIJ(0,0,2); ids.setIJ(1,0,2); ids.setIJ(2,0,-1);
8684 self.assertRaises(InterpKernelException,dac.setContigPartOfSelectedValues,1,da2,ids);
8685 ids.setIJ(0,0,2); ids.setIJ(1,0,2); ids.setIJ(2,0,1);
8686 self.assertRaises(InterpKernelException,dac.setContigPartOfSelectedValues,5,da2,ids);
8688 ids.setIJ(0,0,2); ids.setIJ(1,0,2); ids.setIJ(2,0,1);
8690 dac.setContigPartOfSelectedValues(4,da2,ids);
8691 expected6=[1.,11.,2.,12.,3.,13.,4.,14.,0.,30.,0.,30.,9.,39.]
8692 for i in xrange(14):
8693 self.assertAlmostEqual(expected6[i],dac.getIJ(0,i),14);
8697 def testDataArrayIntAdvSetting1(self):
8698 data1=[1,11,2,12,3,13,4,14,5,15,6,16,7,17]
8699 data2=[8,38,9,39,0,30,11,41,12,42]
8700 compsCpp=["comp1","comp2"]
8701 da=DataArrayInt.New();
8702 da.setInfoAndChangeNbOfCompo(compsCpp);
8705 compsCpp=compsCpp[:-1]
8706 self.assertRaises(InterpKernelException,da.setInfoAndChangeNbOfCompo,compsCpp);
8707 da.setValues(data1,7,2)
8709 p=[(0,3),(3,5),(5,7)]
8710 tmp=da.selectByTupleRanges(p);
8711 self.assertTrue(tmp.isEqual(da));
8712 p=[(0,2),(3,4),(5,7)]
8713 tmp=da.selectByTupleRanges(p);
8714 expected1=[1,11,2,12,4,14,6,16,7,17]
8715 self.assertEqual(5,tmp.getNumberOfTuples());
8716 self.assertEqual(2,tmp.getNumberOfComponents());
8717 for i in xrange(10):
8718 self.assertEqual(expected1[i],tmp.getIJ(0,i));
8720 p=[(0,2),(0,2),(5,6)]
8721 tmp=da.selectByTupleRanges(p);
8722 expected2=[1,11,2,12,1,11,2,12,6,16]
8723 self.assertEqual(5,tmp.getNumberOfTuples());
8724 self.assertEqual(2,tmp.getNumberOfComponents());
8725 for i in xrange(10):
8726 self.assertEqual(expected2[i],tmp.getIJ(0,i));
8728 p=[(0,2),(-1,2),(5,6)]
8729 self.assertRaises(InterpKernelException,da.selectByTupleRanges,p);
8730 p=[(0,2),(0,2),(5,8)]
8731 self.assertRaises(InterpKernelException,da.selectByTupleRanges,p);
8733 da2=DataArrayInt.New();
8734 da2.setValues(data2,5,2);
8737 dac.setContigPartOfSelectedValues2(1,da2,2,4,1);
8738 expected3=[1,11,0,30,11,41,4,14,5,15,6,16,7,17]
8739 for i in xrange(14):
8740 self.assertEqual(expected3[i],dac.getIJ(0,i));
8744 self.assertRaises(InterpKernelException,dac.setContigPartOfSelectedValues2,3,da2,0,5,1);
8745 self.assertRaises(InterpKernelException,dac.setContigPartOfSelectedValues2,0,da2,4,6,1);
8746 self.assertRaises(InterpKernelException,dac.setContigPartOfSelectedValues2,3,da2,5,0,1);
8747 dac.setContigPartOfSelectedValues2(3,da2,1,5,1);
8748 expected4=[1,11,2,12,3,13,9,39,0,30,11,41,12,42]
8749 for i in xrange(14):
8750 self.assertEqual(expected4[i],dac.getIJ(0,i));
8753 ids=DataArrayInt.New();
8756 ids.setIJ(0,0,2); ids.setIJ(1,0,0); ids.setIJ(2,0,4);
8757 dac.setContigPartOfSelectedValues(2,da2,ids);
8758 expected5=[1,11,2,12,0,30,8,38,12,42,6,16,7,17]
8759 for i in xrange(14):
8760 self.assertEqual(expected5[i],dac.getIJ(0,i));
8764 ids.setIJ(0,0,2); ids.setIJ(1,0,5); ids.setIJ(2,0,4);
8765 self.assertRaises(InterpKernelException,dac.setContigPartOfSelectedValues,1,da2,ids);
8766 ids.setIJ(0,0,2); ids.setIJ(1,0,2); ids.setIJ(2,0,-1);
8767 self.assertRaises(InterpKernelException,dac.setContigPartOfSelectedValues,1,da2,ids);
8768 ids.setIJ(0,0,2); ids.setIJ(1,0,2); ids.setIJ(2,0,1);
8769 self.assertRaises(InterpKernelException,dac.setContigPartOfSelectedValues,5,da2,ids);
8771 ids.setIJ(0,0,2); ids.setIJ(1,0,2); ids.setIJ(2,0,1);
8773 dac.setContigPartOfSelectedValues(4,da2,ids);
8774 expected6=[1,11,2,12,3,13,4,14,0,30,0,30,9,39]
8775 for i in xrange(14):
8776 self.assertEqual(expected6[i],dac.getIJ(0,i));
8780 def testBuildDescendingConnec2Of3DMesh1(self):
8781 mesh=MEDCouplingDataForTest.build3DSourceMesh_1();
8783 mesh2,desc,descIndx,revDesc,revDescIndx=mesh.buildDescendingConnectivity2();
8784 mesh2.checkCoherency();
8785 self.assertEqual(2,mesh2.getMeshDimension());
8786 self.assertEqual(30,mesh2.getNumberOfCells());
8787 self.assertEqual(31,revDescIndx.getNbOfElems()); self.assertEqual(31,revDescIndx.getNumberOfTuples());
8788 self.assertEqual(13,descIndx.getNbOfElems()); self.assertEqual(13,descIndx.getNumberOfTuples());
8789 self.assertEqual(48,desc.getNbOfElems()); self.assertEqual(48,desc.getNumberOfTuples());
8790 self.assertEqual(48,revDesc.getNbOfElems()); self.assertEqual(48,revDesc.getNumberOfTuples());
8791 expected1=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,-10,15,-5,-13,16,17,-14,18,-4,19,-2,20,21,22,23,24,25,-11,26,-1,-12,-25,-22,27,28,-7,-20,-24,29,-16,-18,30,-8,-28]
8792 self.assertEqual(expected1,desc.getValues());
8793 expected2=[0,4,8,12,16,20,24,28,32,36,40,44,48]
8794 self.assertEqual(expected2,descIndx.getValues());
8795 expected3=[0,2,4,5,7,9,10,12,14,15,17,19,21,23,25,26,28,29,31,32,34,35,37,38,40,42,43,44,46,47,48]
8796 self.assertEqual(expected3,revDescIndx.getValues());
8797 expected4=[0,8,0,6,0,0,5,1,4,1,1,9,1,11,2,2,3,2,7,2,8,3,4,3,5,3,4,10,4,5,11,5,6,10,6,6,9,7,7,10,7,8,8,9,9,11,10,11]
8798 self.assertEqual(expected4,revDesc.getValues());
8799 conn=mesh2.getNodalConnectivity();
8800 connIndex=mesh2.getNodalConnectivityIndex();
8801 expected5=[0,4,8,12,16,20,24,28,32,36,40,44,48,52,56,60,64,68,72,76,80,84,88,92,96,100,104,108,112,116,120]
8802 self.assertEqual(expected5,connIndex.getValues());
8803 expected6=[3,8,1,7,3,8,3,1,3,1,3,7,3,7,3,8,3,6,0,8,3,6,2,0,3,0,2,8,3,8,2,6,3,7,4,5,3,7,8,4,3,4,8,5,3,5,8,7,3,6,8,4,3,6,7,8,3,4,7,6,3,8,4,0,3,0,4,6,3,6,3,8,3,7,3,6,3,8,0,1,3,1,0,3,3,3,0,8,3,4,1,5,3,4,8,1,3,1,8,5,3,1,7,5,3,0,2,3,3,3,2,8,3,1,4,0,3,3,2,6]
8804 self.assertEqual(expected6,conn.getValues());
8807 def testAre2DCellsNotCorrectlyOriented1(self):
8808 m1Coords=[1.,1.,-1.,-1.,-1.,-1.,1.,-1.]
8810 m1=MEDCouplingUMesh.New();
8811 m1.setMeshDimension(2);
8812 m1.allocateCells(1);
8813 m1.insertNextCell(NORM_QUAD4,4,m1Conn[0:4])
8814 m1.finishInsertingCells();
8815 myCoords1=DataArrayDouble.New();
8816 myCoords1.setValues(m1Coords,4,2);
8817 m1.setCoords(myCoords1);
8820 for i in xrange(18):
8821 vec2=[3.*cos(pi/9.*i),3.*sin(pi/9.*i)];
8823 m1Cpy.translate(vec2);
8824 self.assertRaises(InterpKernelException,m1Cpy.are2DCellsNotCorrectlyOriented,vec1,False);
8825 m1Cpy.changeSpaceDimension(3);
8826 res=m1Cpy.are2DCellsNotCorrectlyOriented(vec1,False)
8827 self.assertEqual([0],res.getValues());
8831 def testDataArrayAbs1(self):
8832 d1=DataArrayDouble.New();
8833 val1=[2.,-3.,-5.,6.,-7.,-8.,9.,10.,-11.,-12.,-13.,-15.]
8834 expected1=[2.,3.,5.,6.,7.,8.,9.,10.,11.,12.,13.,15.]
8835 d1.setValues(val1,6,2);
8836 d2=d1.convertToIntArr();
8839 for i in xrange(12):
8840 self.assertAlmostEqual(expected1[i],d1.getIJ(0,i),14);
8843 expected2=[2,3,5,6,7,8,9,10,11,12,13,15]
8845 for i in xrange(12):
8846 self.assertEqual(expected2[i],d2.getIJ(0,i));
8852 def testGetValueOn3(self):
8854 v2=[0.7,1.25,0.,2.,1.5]
8855 disp=[5.,50.,500.,6.,60.,600.,7.,70.,700.,8.,80.,800.]
8856 m=MEDCouplingUMesh.New("myMesh",1)
8859 m.allocateCells(nbCells)
8860 coords=DataArrayDouble.New() ; coords.setValues(v,nbNodes,1)
8862 m.insertNextCell(NORM_SEG2,2,[0,1])
8863 m.insertNextCell(NORM_SEG2,2,[2,1])
8864 m.insertNextCell(NORM_SEG2,2,[2,3])
8865 m.finishInsertingCells()
8866 f=MEDCouplingFieldDouble.New(ON_NODES)
8868 array=DataArrayDouble.New(); array.setValues(disp,m.getNumberOfNodes(),3)
8870 arr1=f.getValueOnMulti(v2)
8871 self.assertEqual(5,arr1.getNumberOfTuples());
8872 self.assertEqual(3,arr1.getNumberOfComponents());
8873 expected1=[5.7,57.,570.,6.5,65.,650.,5.,50.,500.,8.,80.,800.,7.,70.,700.]
8874 for i in xrange(15):
8875 self.assertAlmostEqual(expected1[i],arr1.getIJ(0,i),14);
8879 def testGetNodeIdsOfCell2(self):
8880 m1c=MEDCouplingCMesh.New();
8881 coordsX=DataArrayDouble.New();
8882 arrX=[ -1., 1., 2., 4., 4.5 ]
8883 coordsX.setValues(arrX,5,1);
8884 coordsY=DataArrayDouble.New();
8885 arrY=[ -2., 2., 4., 8.]
8886 coordsY.setValues(arrY,4,1);
8887 coordsZ=DataArrayDouble.New();
8889 coordsZ.setValues(arrZ,3,1);
8891 m1c.setCoordsAt(0,coordsX);
8892 expected1=[[0,1],[1,2],[2,3],[3,4]]
8893 self.assertEqual(4,m1c.getNumberOfCells())
8894 for i in xrange(m1c.getNumberOfCells()):
8895 self.assertEqual(expected1[i],m1c.getNodeIdsOfCell(i))
8898 m1c.setCoordsAt(1,coordsY);
8899 self.assertEqual(12,m1c.getNumberOfCells())
8900 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]]
8901 for i in xrange(m1c.getNumberOfCells()):
8902 self.assertEqual(expected2[i],m1c.getNodeIdsOfCell(i))
8905 m1c.setCoordsAt(2,coordsZ);
8906 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]]
8907 self.assertEqual(24,m1c.getNumberOfCells())
8908 for i in xrange(m1c.getNumberOfCells()):
8909 self.assertEqual(expected3[i],m1c.getNodeIdsOfCell(i))
8913 def testSwigDADOp4(self):
8914 da=DataArrayDouble.New(range(6,30),12,2)
8915 self.assertEqual(12,da.getNumberOfTuples());
8916 self.assertEqual(2,da.getNumberOfComponents());
8917 for i in xrange(24):
8918 self.assertAlmostEqual(da.getIJ(0,i),float(i+6),13)
8920 # operator transpose
8922 self.assertEqual(2,da.getNumberOfTuples());
8923 self.assertEqual(12,da.getNumberOfComponents());
8924 for i in xrange(24):
8925 self.assertAlmostEqual(da.getIJ(0,i),float(i+6),13)
8929 da2=DataArrayDouble.New(12,1)
8932 for i in xrange(24):
8933 self.assertAlmostEqual(dabis.getIJ(0,i),-float(i+6),13)
8937 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.]
8938 for i in xrange(24):
8939 self.assertAlmostEqual(da.getIJ(0,i),expected1[i],13)
8943 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.]
8944 self.assertEqual(12,da.getNumberOfTuples());
8945 self.assertEqual(2,da.getNumberOfComponents());
8946 for i in xrange(24):
8947 self.assertAlmostEqual(da.getIJ(0,i),expected2[i],13)
8949 for pos,elt in enumerate(dabis):
8952 self.assertEqual(12,da.getNumberOfTuples());
8953 self.assertEqual(2,da.getNumberOfComponents());
8956 self.assertAlmostEqual(li[0],100.,13) ; self.assertAlmostEqual(li[1],101.,13)
8959 da=DataArrayDouble.New(range(6,30),12,2)
8960 da2=DataArrayDouble.New(range(12),12,1)
8963 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.]
8964 for i in xrange(24):
8965 self.assertAlmostEqual(da.getIJ(0,i),expected1[i],13)
8969 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.]
8970 self.assertEqual(12,da.getNumberOfTuples());
8971 self.assertEqual(2,da.getNumberOfComponents());
8972 for i in xrange(24):
8973 self.assertAlmostEqual(da.getIJ(0,i),expected2[i],13)
8975 for pos,elt in enumerate(dabis):
8978 self.assertEqual(12,da.getNumberOfTuples());
8979 self.assertEqual(2,da.getNumberOfComponents());
8980 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.]
8981 for i in xrange(24):
8982 self.assertAlmostEqual(da.getIJ(0,i),expected3[i],13)
8985 da=DataArrayDouble.New(range(6,30),12,2)
8986 da2=DataArrayDouble.New(range(12),12,1)
8989 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.]
8990 for i in xrange(24):
8991 self.assertAlmostEqual(da.getIJ(0,i),expected1[i],13)
8995 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.]
8996 self.assertEqual(12,da.getNumberOfTuples());
8997 self.assertEqual(2,da.getNumberOfComponents());
8998 for i in xrange(24):
8999 self.assertAlmostEqual(da.getIJ(0,i),expected2[i],13)
9001 for pos,elt in enumerate(dabis):
9004 self.assertEqual(12,da.getNumberOfTuples());
9005 self.assertEqual(2,da.getNumberOfComponents());
9006 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]
9007 for i in xrange(24):
9008 self.assertAlmostEqual(da.getIJ(0,i),expected3[i],13)
9011 da=DataArrayDouble.New(range(6,30),12,2)
9012 da2=DataArrayDouble.New(range(1,13),12,1)
9015 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]
9016 for i in xrange(24):
9017 self.assertAlmostEqual(da.getIJ(0,i),expected1[i],13)
9021 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]
9022 self.assertEqual(12,da.getNumberOfTuples());
9023 self.assertEqual(2,da.getNumberOfComponents());
9024 for i in xrange(24):
9025 self.assertAlmostEqual(da.getIJ(0,i),expected2[i],13)
9027 for pos,elt in enumerate(dabis):
9030 self.assertEqual(12,da.getNumberOfTuples());
9031 self.assertEqual(2,da.getNumberOfComponents());
9032 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]
9033 for i in xrange(24):
9034 self.assertAlmostEqual(da.getIJ(0,i),expected3[i],13)
9038 def testSwigDAIOp4(self):
9039 da=DataArrayInt.New(range(6,30),12,2)
9040 self.assertEqual(12,da.getNumberOfTuples());
9041 self.assertEqual(2,da.getNumberOfComponents());
9042 for i in xrange(24):
9043 self.assertEqual(da.getIJ(0,i),i+6)
9045 # operator transpose
9047 self.assertEqual(2,da.getNumberOfTuples());
9048 self.assertEqual(12,da.getNumberOfComponents());
9049 for i in xrange(24):
9050 self.assertEqual(da.getIJ(0,i),i+6)
9054 da2=DataArrayInt.New(12,1)
9057 for i in xrange(24):
9058 self.assertEqual(dabis.getIJ(0,i),-(i+6))
9062 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]
9063 for i in xrange(24):
9064 self.assertEqual(da.getIJ(0,i),expected1[i])
9068 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]
9069 self.assertEqual(12,da.getNumberOfTuples());
9070 self.assertEqual(2,da.getNumberOfComponents());
9071 for i in xrange(24):
9072 self.assertEqual(da.getIJ(0,i),expected2[i])
9074 for pos,elt in enumerate(dabis):
9077 self.assertEqual(12,da.getNumberOfTuples());
9078 self.assertEqual(2,da.getNumberOfComponents());
9081 self.assertEqual(li[0],100) ; self.assertEqual(li[1],101)
9084 da=DataArrayInt.New(range(6,30),12,2)
9085 da2=DataArrayInt.New(range(12),12,1)
9088 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]
9089 for i in xrange(24):
9090 self.assertEqual(da.getIJ(0,i),expected1[i])
9094 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]
9095 self.assertEqual(12,da.getNumberOfTuples());
9096 self.assertEqual(2,da.getNumberOfComponents());
9097 for i in xrange(24):
9098 self.assertEqual(da.getIJ(0,i),expected2[i])
9100 for pos,elt in enumerate(dabis):
9103 self.assertEqual(12,da.getNumberOfTuples());
9104 self.assertEqual(2,da.getNumberOfComponents());
9105 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]
9106 for i in xrange(24):
9107 self.assertEqual(da.getIJ(0,i),expected3[i])
9110 da=DataArrayInt.New(range(6,30),12,2)
9111 da2=DataArrayInt.New(range(12),12,1)
9114 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]
9115 for i in xrange(24):
9116 self.assertEqual(da.getIJ(0,i),expected1[i])
9120 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]
9121 self.assertEqual(12,da.getNumberOfTuples());
9122 self.assertEqual(2,da.getNumberOfComponents());
9123 for i in xrange(24):
9124 self.assertEqual(da.getIJ(0,i),expected2[i])
9126 for pos,elt in enumerate(dabis):
9129 self.assertEqual(12,da.getNumberOfTuples());
9130 self.assertEqual(2,da.getNumberOfComponents());
9131 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]
9132 for i in xrange(24):
9133 self.assertEqual(da.getIJ(0,i),expected3[i])
9136 da=DataArrayInt.New(range(6,30),12,2)
9137 da2=DataArrayInt.New(range(1,13),12,1)
9140 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]
9141 for i in xrange(24):
9142 self.assertEqual(da.getIJ(0,i),expected1[i])
9145 da/=DataArrayInt.New([2,3],1,2)
9146 self.assertEqual(12,da.getNumberOfTuples());
9147 self.assertEqual(2,da.getNumberOfComponents());
9148 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]
9149 for i in xrange(24):
9150 self.assertEqual(da.getIJ(0,i),expected2[i])
9154 def testSwigDADOp5(self):
9155 da=DataArrayDouble.New([5,6,7,8,9,6,7,-2,3,9,8,10])
9157 da2=DataArrayDouble.New([5.,8.,10.,12])
9158 self.assertEqual(4,da2.getNumberOfTuples());
9159 self.assertEqual(1,da2.getNumberOfComponents());
9161 self.assertEqual(4,da3.getNumberOfTuples());
9162 self.assertEqual(3,da3.getNumberOfComponents());
9163 expected1=[10.,11.,12.,16.,17.,14.,17.,8.,13.,21.,20.,22.]
9164 for i in xrange(12):
9165 self.assertAlmostEqual(da3.getIJ(0,i),expected1[i],13)
9168 self.assertEqual(4,da3.getNumberOfTuples());
9169 self.assertEqual(3,da3.getNumberOfComponents());
9170 for i in xrange(12):
9171 self.assertAlmostEqual(da3.getIJ(0,i),expected1[i],13)
9173 # Test new API of classmethod DataArrayDouble.New
9174 vals=[5,6,7,8,9,6,7,-2,3,9,8,10]
9175 da=DataArrayDouble.New(vals)
9176 self.assertEqual(12,da.getNumberOfTuples());
9177 self.assertEqual(1,da.getNumberOfComponents());
9178 for i in xrange(12):
9179 self.assertAlmostEqual(da.getIJ(0,i),vals[i],13)
9181 da=DataArrayDouble.New(vals,12)
9182 self.assertEqual(12,da.getNumberOfTuples());
9183 self.assertEqual(1,da.getNumberOfComponents());
9184 for i in xrange(12):
9185 self.assertAlmostEqual(da.getIJ(0,i),vals[i],13)
9187 da=DataArrayDouble.New(vals,1,12)
9188 self.assertEqual(1,da.getNumberOfTuples());
9189 self.assertEqual(12,da.getNumberOfComponents());
9190 for i in xrange(12):
9191 self.assertAlmostEqual(da.getIJ(0,i),vals[i],13)
9193 da=DataArrayDouble.New(vals,6,2)
9194 self.assertEqual(6,da.getNumberOfTuples());
9195 self.assertEqual(2,da.getNumberOfComponents());
9196 for i in xrange(12):
9197 self.assertAlmostEqual(da.getIJ(0,i),vals[i],13)
9199 da=DataArrayDouble.New(vals,4,3)
9200 self.assertEqual(4,da.getNumberOfTuples());
9201 self.assertEqual(3,da.getNumberOfComponents());
9202 for i in xrange(12):
9203 self.assertAlmostEqual(da.getIJ(0,i),vals[i],13)
9205 self.assertRaises(InterpKernelException,DataArrayDouble.New,vals,11);
9206 self.assertRaises(InterpKernelException,DataArrayDouble.New,vals,13);
9207 self.assertRaises(InterpKernelException,DataArrayDouble.New,vals,5,2);
9208 self.assertRaises(InterpKernelException,DataArrayDouble.New,vals,7,2);
9211 def testSwigDADOp6(self):
9212 da=DataArrayInt.New([5,6,7,8,9,6,7,-2,3,9,8,10])
9214 da2=DataArrayInt.New([5,8,10,12])
9215 self.assertEqual(4,da2.getNumberOfTuples());
9216 self.assertEqual(1,da2.getNumberOfComponents());
9218 self.assertEqual(4,da3.getNumberOfTuples());
9219 self.assertEqual(3,da3.getNumberOfComponents());
9220 expected1=[10,11,12,16,17,14,17,8,13,21,20,22]
9221 for i in xrange(12):
9222 self.assertEqual(da3.getIJ(0,i),expected1[i])
9225 self.assertEqual(4,da3.getNumberOfTuples());
9226 self.assertEqual(3,da3.getNumberOfComponents());
9227 for i in xrange(12):
9228 self.assertEqual(da3.getIJ(0,i),expected1[i])
9230 da3=da+DataArrayInt.New(da2.getValues())
9231 # Test new API of classmethod DataArrayInt.New
9232 vals=[5,6,7,8,9,6,7,-2,3,9,8,10]
9233 da=DataArrayDouble.New(vals)
9234 self.assertEqual(12,da.getNumberOfTuples());
9235 self.assertEqual(1,da.getNumberOfComponents());
9236 for i in xrange(12):
9237 self.assertEqual(da.getIJ(0,i),vals[i])
9239 da=DataArrayDouble.New(vals,12)
9240 self.assertEqual(12,da.getNumberOfTuples());
9241 self.assertEqual(1,da.getNumberOfComponents());
9242 for i in xrange(12):
9243 self.assertEqual(da.getIJ(0,i),vals[i])
9245 da=DataArrayDouble.New(vals,1,12)
9246 self.assertEqual(1,da.getNumberOfTuples());
9247 self.assertEqual(12,da.getNumberOfComponents());
9248 for i in xrange(12):
9249 self.assertEqual(da.getIJ(0,i),vals[i])
9251 da=DataArrayDouble.New(vals,6,2)
9252 self.assertEqual(6,da.getNumberOfTuples());
9253 self.assertEqual(2,da.getNumberOfComponents());
9254 for i in xrange(12):
9255 self.assertEqual(da.getIJ(0,i),vals[i])
9257 da=DataArrayDouble.New(vals,4,3)
9258 self.assertEqual(4,da.getNumberOfTuples());
9259 self.assertEqual(3,da.getNumberOfComponents());
9260 for i in xrange(12):
9261 self.assertEqual(da.getIJ(0,i),vals[i])
9263 self.assertRaises(InterpKernelException,DataArrayDouble.New,vals,11);
9264 self.assertRaises(InterpKernelException,DataArrayDouble.New,vals,13);
9265 self.assertRaises(InterpKernelException,DataArrayDouble.New,vals,5,2);
9266 self.assertRaises(InterpKernelException,DataArrayDouble.New,vals,7,2);
9269 def testSwigDADOp9(self):
9270 l1=[(1.,2.,3),(4.,5.,6.),(7.,8.,9.),[10.,11.,12.]]
9271 da1=DataArrayDouble(l1,4,3)
9272 self.assertEqual(4,da1.getNumberOfTuples());
9273 self.assertEqual(3,da1.getNumberOfComponents());
9274 da2=DataArrayDouble(12) ; da2.iota(1.) ; da2.rearrange(3)
9275 self.assertTrue(da2.isEqual(da1,1e-12))
9276 self.assertRaises(InterpKernelException,DataArrayDouble.New,l1,3,4);
9277 da3=DataArrayDouble(l1,4)
9278 self.assertTrue(da3.isEqual(da1,1e-12))
9279 self.assertRaises(InterpKernelException,DataArrayDouble.New,l1,3);
9280 self.assertRaises(InterpKernelException,DataArrayDouble.New,l1,5);
9281 l1=[(1.,2.,3),(4.,(5.),((6.))),(7.,8.,9.),[10.,11.,12.]]
9282 da1=DataArrayDouble(l1,4,3)
9283 self.assertEqual(4,da1.getNumberOfTuples());
9284 self.assertEqual(3,da1.getNumberOfComponents());
9285 da2=DataArrayDouble(12) ; da2.iota(1.) ; da2.rearrange(3)
9286 self.assertTrue(da2.isEqual(da1,1e-12))
9287 self.assertRaises(InterpKernelException,DataArrayDouble.New,l1,3,4);
9288 da3=DataArrayDouble(l1,4)
9289 self.assertTrue(da3.isEqual(da1,1e-12))
9290 self.assertRaises(InterpKernelException,DataArrayDouble.New,l1,3);
9291 self.assertRaises(InterpKernelException,DataArrayDouble.New,l1,5);
9293 l1=[(1,2,3),(4,5,6),(7,8,9),[10,11,12]]
9294 da1=DataArrayInt(l1,4,3)
9295 self.assertEqual(4,da1.getNumberOfTuples());
9296 self.assertEqual(3,da1.getNumberOfComponents());
9297 da2=DataArrayInt(12) ; da2.iota(1) ; da2.rearrange(3)
9298 self.assertTrue(da2.isEqual(da1))
9299 self.assertRaises(InterpKernelException,DataArrayInt.New,l1,3,4);
9300 da3=DataArrayInt(l1,4)
9301 self.assertTrue(da3.isEqual(da1))
9302 self.assertRaises(InterpKernelException,DataArrayInt.New,l1,3);
9303 self.assertRaises(InterpKernelException,DataArrayInt.New,l1,5);
9304 l1=[(1,[2],3),(4,[(5)],6),((([7])),8,9),[10,11,12]]
9305 da1=DataArrayInt(l1,4,3)
9306 self.assertEqual(4,da1.getNumberOfTuples());
9307 self.assertEqual(3,da1.getNumberOfComponents());
9308 da2=DataArrayInt(12) ; da2.iota(1) ; da2.rearrange(3)
9309 self.assertTrue(da2.isEqual(da1))
9310 self.assertRaises(InterpKernelException,DataArrayInt.New,l1,3,4);
9311 da3=DataArrayInt(l1,4)
9312 self.assertTrue(da3.isEqual(da1))
9313 self.assertRaises(InterpKernelException,DataArrayInt.New,l1,3);
9314 self.assertRaises(InterpKernelException,DataArrayInt.New,l1,5);
9317 def testRenumberNodesInConn1(self):
9318 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. ]
9319 mesh2DConn=[1,4,2, 4,5,2, 0,3,4,1, 6,7,4,3, 7,8,5,4]
9320 mesh2D=MEDCouplingUMesh.New("mesh",2);
9321 mesh2D.allocateCells(5);
9322 mesh2D.insertNextCell(NORM_TRI3,3,mesh2DConn[0:3])
9323 mesh2D.insertNextCell(NORM_TRI3,3,mesh2DConn[3:6])
9324 mesh2D.insertNextCell(NORM_QUAD4,4,mesh2DConn[6:10])
9325 mesh2D.insertNextCell(NORM_QUAD4,4,mesh2DConn[10:14])
9326 mesh2D.insertNextCell(NORM_QUAD4,4,mesh2DConn[14:18])
9327 mesh2D.finishInsertingCells();
9328 myCoords=DataArrayDouble.New(mesh2DCoords,9,3);
9329 mesh2D.setCoords(myCoords);
9330 mesh2D.checkCoherency();
9332 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. ]
9333 mesh3DConn=[0,1,2,3,4,5,6,7]
9334 mesh3D=MEDCouplingUMesh.New("mesh",3);
9335 mesh3D.allocateCells(1);
9336 mesh3D.insertNextCell(NORM_HEXA8,8,mesh3DConn[:])
9337 mesh3D.finishInsertingCells();
9338 myCoords3D=DataArrayDouble.New(mesh3DCoords,8,3);
9339 mesh3D.setCoords(myCoords3D);
9340 mesh3D.checkCoherency();
9342 mesh3D_2=mesh3D.deepCpy();
9343 mesh2D_2=mesh2D.deepCpy();
9344 mesh3D_4=mesh3D.deepCpy();
9345 mesh2D_4=mesh2D.deepCpy();
9346 oldNbOf3DNodes=mesh3D.getNumberOfNodes();
9347 renumNodes=DataArrayInt.New();
9348 renumNodes.alloc(mesh2D.getNumberOfNodes(),1);
9349 renumNodes.iota(oldNbOf3DNodes);
9350 coo=DataArrayDouble.Aggregate(mesh3D.getCoords(),mesh2D.getCoords());
9351 mesh3D.setCoords(coo);
9352 mesh2D.setCoords(coo);
9353 mesh2DCpy=mesh2D.deepCpy()
9354 mesh2D_3=mesh2D.deepCpy();
9355 mesh2D_3.shiftNodeNumbersInConn(oldNbOf3DNodes);
9356 mesh2D.renumberNodesInConn(renumNodes);
9357 mesh2DCpy.renumberNodesInConn(renumNodes.getValues());
9358 self.assertTrue(mesh2D.isEqual(mesh2DCpy,1e-12))
9359 self.assertTrue(mesh2D.isEqual(mesh2D_3,1e-12))
9361 da1,da2=mesh3D.checkGeoEquivalWith(mesh3D_2,10,1e-12);
9362 self.assertTrue(da1==None);
9363 self.assertEqual(8,da2.getNumberOfTuples());
9364 self.assertEqual(1,da2.getNumberOfComponents());
9365 expected1=[8,11,12,9,4,5,6,7]
9367 self.assertEqual(expected1[i],da2.getIJ(i,0));
9370 da1,da2=mesh2D.checkGeoEquivalWith(mesh2D_2,10,1e-12);
9371 self.assertTrue(da1==None);
9372 self.assertEqual(9,da2.getNumberOfTuples());
9373 self.assertEqual(1,da2.getNumberOfComponents());
9375 self.assertEqual(8+i,da2.getIJ(i,0));
9378 mesh2D_5=mesh2D_4.deepCpy();
9379 mesh2D_5.translate([1.,0.,0.]);
9380 meshes=[mesh3D_4,mesh2D_4,mesh2D_5];
9381 MEDCouplingUMesh.PutUMeshesOnSameAggregatedCoords(meshes);
9382 self.assertTrue(mesh3D_4.getCoords().getHiddenCppPointer()==mesh2D_4.getCoords().getHiddenCppPointer());
9383 self.assertTrue(mesh2D_4.getCoords().getHiddenCppPointer()==mesh2D_5.getCoords().getHiddenCppPointer());
9384 mesh3D_4.checkCoherency(); mesh2D_4.checkCoherency(); mesh2D_5.checkCoherency();
9385 self.assertEqual(26,mesh3D_4.getNumberOfNodes());
9386 self.assertEqual(3,mesh3D_4.getSpaceDimension());
9387 self.assertEqual(9,mesh3D_4.getNodalConnectivity().getNumberOfTuples());
9388 self.assertEqual(23,mesh2D_4.getNodalConnectivity().getNumberOfTuples());
9389 self.assertEqual(23,mesh2D_5.getNodalConnectivity().getNumberOfTuples());
9390 expected2=[18,0,1,2,3,4,5,6,7]
9391 expected3=[3,9,12,10, 3,12,13,10, 4,8,11,12,9, 4,14,15,12,11, 4,15,16,13,12]
9392 expected4=[3,18,21,19, 3,21,22,19, 4,17,20,21,18, 4,23,24,21,20, 4,24,25,22,21]
9393 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]
9394 self.assertEqual(expected2,mesh3D_4.getNodalConnectivity().getValues());
9395 self.assertEqual(expected3,mesh2D_4.getNodalConnectivity().getValues());
9396 self.assertEqual(expected4,mesh2D_5.getNodalConnectivity().getValues());
9397 for i in xrange(78):
9398 self.assertAlmostEqual(expected5[i],mesh3D_4.getCoords().getIJ(0,i),12);
9401 MEDCouplingUMesh.MergeNodesOnUMeshesSharingSameCoords(meshes,1e-12);
9402 mesh3D_4.checkCoherency(); mesh2D_4.checkCoherency(); mesh2D_5.checkCoherency();
9403 self.assertTrue(mesh3D_4.getCoords().getHiddenCppPointer()==mesh2D_4.getCoords().getHiddenCppPointer());
9404 self.assertTrue(mesh2D_4.getCoords().getHiddenCppPointer()==mesh2D_5.getCoords().getHiddenCppPointer());
9405 self.assertEqual(19,mesh3D_4.getNumberOfNodes());
9406 self.assertEqual(3,mesh3D_4.getSpaceDimension());
9407 self.assertEqual(9,mesh3D_4.getNodalConnectivity().getNumberOfTuples());
9408 self.assertEqual(23,mesh2D_4.getNodalConnectivity().getNumberOfTuples());
9409 self.assertEqual(23,mesh2D_5.getNodalConnectivity().getNumberOfTuples());
9410 expected6=[18,0,1,2,3,4,5,6,7]
9411 expected7=[3,3,2,8, 3,2,9,8, 4,0,1,2,3, 4,10,11,2,1, 4,11,12,9,2]
9412 expected8=[3,13,15,14, 3,15,16,14, 4,8,9,15,13, 4,12,17,15,9, 4,17,18,16,15]
9413 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.,
9414 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.,
9415 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.]
9416 self.assertEqual(expected6,mesh3D_4.getNodalConnectivity().getValues());
9417 self.assertEqual(expected7,mesh2D_4.getNodalConnectivity().getValues());
9418 self.assertEqual(expected8,mesh2D_5.getNodalConnectivity().getValues());
9419 for i in xrange(57):
9420 self.assertAlmostEqual(expected9[i],mesh3D_4.getCoords().getIJ(0,i),12);
9425 def testComputeNeighborsOfCells1(self):
9426 m=MEDCouplingDataForTest.build2DTargetMesh_1();
9427 d1,d2=m.computeNeighborsOfCells();
9428 self.assertEqual(6,d2.getNumberOfTuples());
9429 self.assertEqual(10,d1.getNumberOfTuples());
9430 expected1=[0,2,4,6,8,10]
9431 expected2=[3,1,0,2,4,1,4,0,2,3]
9432 self.assertEqual(expected1,d2.getValues());
9433 self.assertEqual(expected2,d1.getValues());
9436 def testCheckButterflyCellsBug1(self):
9437 mesh2DCoords=[323.85,120.983748908684,317.5,131.982271536747,336.55,120.983748908686,330.2,131.982271536751,323.85,142.98079416481]
9438 mesh2DConn=[4,1,0,2,3]
9439 mesh2D=MEDCouplingUMesh.New("mesh",2);
9440 mesh2D.allocateCells(1);
9441 mesh2D.insertNextCell(NORM_POLYGON,5,mesh2DConn[0:5])
9442 mesh2D.finishInsertingCells();
9443 myCoords=DataArrayDouble.New(mesh2DCoords,5,2);
9444 mesh2D.setCoords(myCoords);
9445 mesh2D.checkCoherency();
9447 v=mesh2D.checkButterflyCells();
9448 self.assertTrue(v.empty());
9451 def testDataArrayIntRange1(self):
9452 d=DataArrayInt.Range(2,17,7);
9454 self.assertEqual(3,d.getNumberOfTuples());
9455 self.assertEqual(1,d.getNumberOfComponents());
9456 self.assertEqual(expected1,d.getValues());
9458 d=DataArrayInt.Range(2,23,7);
9459 self.assertEqual(3,d.getNumberOfTuples());
9460 self.assertEqual(1,d.getNumberOfComponents());
9461 self.assertEqual(expected1,d.getValues());
9463 d=DataArrayInt.Range(2,24,7);
9464 expected2=[2,9,16,23]
9465 self.assertEqual(4,d.getNumberOfTuples());
9466 self.assertEqual(1,d.getNumberOfComponents());
9467 self.assertEqual(expected2,d.getValues());
9469 d=DataArrayInt.Range(24,2,-7);
9470 expected3=[24,17,10,3]
9471 self.assertEqual(4,d.getNumberOfTuples());
9472 self.assertEqual(1,d.getNumberOfComponents());
9473 self.assertEqual(expected3,d.getValues());
9475 d=DataArrayInt.Range(23,2,-7);
9477 self.assertEqual(3,d.getNumberOfTuples());
9478 self.assertEqual(1,d.getNumberOfComponents());
9479 self.assertEqual(expected4,d.getValues());
9481 d=DataArrayInt.Range(23,22,-7);
9482 self.assertEqual(1,d.getNumberOfTuples());
9483 self.assertEqual(1,d.getNumberOfComponents());
9484 self.assertEqual(23,d.getIJ(0,0));
9486 d=DataArrayInt.Range(22,23,7);
9487 self.assertEqual(1,d.getNumberOfTuples());
9488 self.assertEqual(1,d.getNumberOfComponents());
9489 self.assertEqual(22,d.getIJ(0,0));
9491 d=DataArrayInt.Range(22,22,7);
9492 self.assertEqual(0,d.getNumberOfTuples());
9493 self.assertEqual(1,d.getNumberOfComponents());
9495 d=DataArrayInt.Range(22,22,-7);
9496 self.assertEqual(0,d.getNumberOfTuples());
9497 self.assertEqual(1,d.getNumberOfComponents());
9499 self.assertRaises(InterpKernelException,DataArrayInt.Range,22,23,-7);
9500 self.assertRaises(InterpKernelException,DataArrayInt.Range,23,22,7);
9501 self.assertRaises(InterpKernelException,DataArrayInt.Range,23,22,0);
9502 self.assertRaises(InterpKernelException,DataArrayInt.Range,22,23,0);
9505 def testSwigUMeshGetItem1(self):
9506 m=MEDCouplingDataForTest.build2DTargetMesh_1();
9507 subMesh=m.buildPartOfMySelf([1,3],True);
9508 self.assertTrue(isinstance(subMesh,MEDCouplingUMesh))
9510 self.assertTrue(isinstance(m1,MEDCouplingUMesh))
9512 self.assertTrue(isinstance(m2,MEDCouplingUMesh))
9514 self.assertTrue(isinstance(m3,MEDCouplingUMesh))
9515 m4=m[DataArrayInt.New([1,3])]
9517 self.assertTrue(isinstance(m5_1,MEDCouplingUMesh))
9519 self.assertTrue(isinstance(m5_2,MEDCouplingUMesh))
9520 m5=MEDCouplingUMesh.MergeUMeshesOnSameCoords([m5_1,m5_2]);
9521 m5.setName(subMesh.getName())
9522 self.assertTrue(isinstance(m4,MEDCouplingUMesh))
9523 self.assertTrue(subMesh.isEqual(m1,1e-12))
9524 self.assertTrue(subMesh.isEqual(m2,1e-12))
9525 self.assertTrue(subMesh.isEqual(m3,1e-12))
9526 self.assertTrue(subMesh.isEqual(m4,1e-12))
9527 self.assertTrue(subMesh.isEqual(m5,1e-12))
9528 self.assertRaises(InterpKernelException,m.buildPartOfMySelf,[1,5],True);
9531 def testSwigGetItem3(self):
9532 da=DataArrayInt.New([4,5,6])
9533 self.assertEqual(5,da[1])
9534 self.assertRaises(InterpKernelException,da.__getitem__,-1)
9535 self.assertRaises(InterpKernelException,da.__getitem__,3)
9536 da=DataArrayInt.New([4,5,6,7,8,9],2,3)
9537 self.assertEqual(9,da[1,2])
9538 da=DataArrayDouble.New([4.1,5.2,6.3])
9539 self.assertAlmostEqual(5.2,da[1],12)
9540 self.assertRaises(InterpKernelException,da.__getitem__,-1)
9541 self.assertRaises(InterpKernelException,da.__getitem__,3)
9542 da=DataArrayDouble.New([4.12,5.12,6.12,7.12,8.12,9.12],2,3)
9543 self.assertAlmostEqual(9.12,da[1,2],12)
9546 def testSwigDADISub1(self):
9547 mesh3D,mesh2D=MEDCouplingDataForTest.build3DExtrudedUMesh_1();
9548 bary=mesh3D.getBarycenterAndOwner()
9550 pts=bary.getDifferentValues(1e-12)
9551 expected=[[0,6,12],[1,7,13],[2,8,14],[3,9,15],[4,10,16],[5,11,17]]
9552 for pos,pt in enumerate(pts):
9555 norm=bary2.magnitude()
9556 self.assertEqual(expected[pos],norm.getIdsInRange(-1.,1e-5).getValues())
9558 expected2=[[3.,54.],[-141.,180.],[21.,54.],[39.,72.],[-15.,90.],[21.,90.]]
9559 for pos,pt in enumerate(pts):
9562 self.assertAlmostEqual(expected2[pos][0],bary2.accumulate()[0],12);
9563 self.assertAlmostEqual(expected2[pos][1],bary2.accumulate()[1],12);
9565 expected3=[[-3.,22.5],[45.,337.5],[-9., 22.5],[-15.,67.5],[3.,112.5],[-9.,112.5]]
9566 for pos,pt in enumerate(pts):
9569 self.assertAlmostEqual(expected3[pos][0],bary2.accumulate()[0],12);
9570 self.assertAlmostEqual(expected3[pos][1],bary2.accumulate()[1],12);
9572 expected4=[[-12.,90.],[0.8,6.],[-4,90.],[-2.4,30.],[12.,18],[-4,18.]]
9573 for pos,pt in enumerate(pts):
9576 self.assertAlmostEqual(expected4[pos][0],bary2.accumulate()[0],12);
9577 self.assertAlmostEqual(expected4[pos][1],bary2.accumulate()[1],12);
9580 d=DataArrayInt.New([1,2,0,1,0,2],3,2)
9581 e=DataArrayInt.New([1,11,101,2,12,102,3,13,103,4,14,104],4,3)
9582 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]]
9583 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]]
9584 for pos,tup in enumerate(d):
9586 self.assertTrue(isinstance(f,DataArrayInt))
9588 self.assertEqual(expected5[pos],f.getValues())
9589 self.assertEqual(6*[77],f[tup].getValues())
9592 self.assertEqual(expected6[pos],f.getValues())
9593 self.assertEqual(8*[77],f[:,tup].getValues())
9596 e=e.convertToDblArr()
9597 for pos,tup in enumerate(d):
9599 self.assertTrue(isinstance(f,DataArrayDouble))
9601 self.assertEqual(expected5[pos],f.convertToIntArr().getValues())
9602 self.assertEqual(6*[77],f[tup].convertToIntArr().getValues())
9605 self.assertEqual(expected6[pos],f.convertToIntArr().getValues())
9606 self.assertEqual(8*[77],f[:,tup].convertToIntArr().getValues())
9610 def testDataArrayDoubleGetMinMaxPerComponent1(self):
9611 values1=[1.,2.,3.,-0.9,2.1,3.,1.3,1.7,3.,1.,1.8,3.]
9612 d1=DataArrayDouble.New();
9613 self.assertRaises(InterpKernelException,d1.getMinMaxPerComponent)
9614 d1=DataArrayDouble.New(values1,4,3);
9615 res=d1.getMinMaxPerComponent();
9616 self.assertTrue(isinstance(res,list))
9617 self.assertEqual(3,len(res))
9619 self.assertTrue(isinstance(res[i],tuple))
9620 self.assertEqual(2,len(res[i]))
9622 expected1=[-0.9,1.3,1.7,2.1,3.,3.]
9624 self.assertAlmostEqual(expected1[i],res[i/2][i%2],14)
9628 res=d1.getMinMaxPerComponent();
9629 self.assertTrue(isinstance(res,list))
9630 self.assertEqual(2,len(res))
9632 self.assertTrue(isinstance(res[i],tuple))
9633 self.assertEqual(2,len(res[i]))
9635 expected2=[1.,3.,-0.9,3.]
9637 self.assertAlmostEqual(expected2[i],res[i/2][i%2],14)
9641 res=d1.getMinMaxPerComponent();
9642 self.assertTrue(isinstance(res,list))
9643 self.assertEqual(1,len(res))
9645 self.assertTrue(isinstance(res[i],tuple))
9646 self.assertEqual(2,len(res[i]))
9650 self.assertAlmostEqual(expected3[i],res[i/2][i%2],14)
9654 def testDataArrayIntGetHashCode1(self):
9655 d1=DataArrayInt.New(range(3545))
9656 d2=DataArrayInt.New(range(3545))
9657 self.assertEqual(d2.getHashCode(),d1.getHashCode())
9658 self.assertEqual(232341068,d1.getHashCode())
9660 self.assertEqual(232340188,d1.getHashCode())
9663 def testZipConnectivityPol1(self):
9664 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
9666 m2_1=m1.buildPartOfMySelf(cells1,True);
9668 self.assertTrue(isinstance(m2,MEDCouplingUMesh))
9669 # no permutation policy 0
9670 isOk,arr=m1.areCellsIncludedIn(m2,0)
9671 self.assertTrue(isOk);
9672 self.assertEqual(3,arr.getNumberOfTuples());
9673 self.assertEqual(1,arr.getNumberOfComponents());
9674 self.assertEqual(cells1,arr.getValues())
9675 # no permutation policy 1
9676 isOk,arr=m1.areCellsIncludedIn(m2,1)
9677 self.assertTrue(isOk);
9678 self.assertEqual(3,arr.getNumberOfTuples());
9679 self.assertEqual(1,arr.getNumberOfComponents());
9680 self.assertEqual(cells1,arr.getValues())
9681 # no permutation policy 2
9682 isOk,arr=m1.areCellsIncludedIn(m2,2)
9683 self.assertTrue(isOk);
9684 self.assertEqual(3,arr.getNumberOfTuples());
9685 self.assertEqual(1,arr.getNumberOfComponents());
9686 self.assertEqual(cells1,arr.getValues())
9687 # some modification into m2
9689 m2.getNodalConnectivity()[1:4]=modif1
9690 #policy 0 fails because cell0 in m2 has same orientation be not same connectivity
9692 isOk,arr=m1.areCellsIncludedIn(m2,0)
9693 self.assertTrue(not isOk);
9694 self.assertEqual(3,arr.getNumberOfTuples());
9695 self.assertEqual(1,arr.getNumberOfComponents());
9696 self.assertEqual(expected1,arr.getValues())
9697 #policy 1 succeeds because cell0 in m2 has not exactly the same conn
9698 isOk,arr=m1.areCellsIncludedIn(m2,1)
9699 self.assertTrue(isOk);
9700 self.assertEqual(3,arr.getNumberOfTuples());
9701 self.assertEqual(1,arr.getNumberOfComponents());
9702 self.assertEqual(cells1,arr.getValues())
9703 #policy 2 succeeds because cell0 in m2 has same nodes in connectivity
9704 isOk,arr=m1.areCellsIncludedIn(m2,2)
9705 self.assertTrue(isOk);
9706 self.assertEqual(3,arr.getNumberOfTuples());
9707 self.assertEqual(1,arr.getNumberOfComponents());
9708 self.assertEqual(cells1,arr.getValues())
9709 #some new modification into m2
9711 m2.getNodalConnectivity()[1:4]=modif2
9712 #policy 0 fails because cell0 in m2 has not exactly the same conn
9713 isOk,arr=m1.areCellsIncludedIn(m2,0)
9714 self.assertTrue(not isOk);
9715 self.assertEqual(3,arr.getNumberOfTuples());
9716 self.assertEqual(1,arr.getNumberOfComponents());
9717 self.assertEqual(expected1,arr.getValues())
9718 #policy 1 fails too because cell0 in m2 has not same orientation
9719 isOk,arr=m1.areCellsIncludedIn(m2,1)
9720 self.assertTrue(not isOk);
9721 self.assertEqual(3,arr.getNumberOfTuples());
9722 self.assertEqual(1,arr.getNumberOfComponents());
9723 self.assertEqual(expected1,arr.getValues())
9724 #policy 2 succeeds because cell0 in m2 has same nodes in connectivity
9725 isOk,arr=m1.areCellsIncludedIn(m2,2)
9726 self.assertTrue(isOk);
9727 self.assertEqual(3,arr.getNumberOfTuples());
9728 self.assertEqual(1,arr.getNumberOfComponents());
9729 self.assertEqual(cells1,arr.getValues())
9732 m1=MEDCouplingDataForTest.build1DSourceMesh_2();
9733 m2_1=m1.buildPartOfMySelf(cells2,True);
9735 self.assertTrue(isinstance(m2,MEDCouplingUMesh))
9736 # no permutation policy 0
9737 isOk,arr=m1.areCellsIncludedIn(m2,0)
9738 self.assertTrue(isOk);
9739 self.assertEqual(2,arr.getNumberOfTuples());
9740 self.assertEqual(1,arr.getNumberOfComponents());
9741 self.assertEqual(cells2,arr.getValues())
9742 # no permutation policy 1
9743 isOk,arr=m1.areCellsIncludedIn(m2,1)
9744 self.assertTrue(isOk);
9745 self.assertEqual(2,arr.getNumberOfTuples());
9746 self.assertEqual(1,arr.getNumberOfComponents());
9747 self.assertEqual(cells2,arr.getValues())
9748 # no permutation policy 2
9749 isOk,arr=m1.areCellsIncludedIn(m2,2)
9750 self.assertTrue(isOk);
9751 self.assertEqual(2,arr.getNumberOfTuples());
9752 self.assertEqual(1,arr.getNumberOfComponents());
9753 self.assertEqual(cells2,arr.getValues())
9754 # some modification into m2
9756 m2.getNodalConnectivity()[1:3]=modif3
9757 #policy 0 fails because cell0 in m2 has not exactly the same conn
9759 isOk,arr=m1.areCellsIncludedIn(m2,0)
9760 self.assertTrue(not isOk);
9761 self.assertEqual(2,arr.getNumberOfTuples());
9762 self.assertEqual(1,arr.getNumberOfComponents());
9763 self.assertEqual(expected2,arr.getValues())
9764 #policy 1 fails too because cell0 in m2 has not same orientation
9765 isOk,arr=m1.areCellsIncludedIn(m2,1)
9766 self.assertTrue(not isOk);
9767 self.assertEqual(2,arr.getNumberOfTuples());
9768 self.assertEqual(1,arr.getNumberOfComponents());
9769 self.assertEqual(expected2,arr.getValues())
9770 #policy 2 succeeds because cell0 in m2 has same nodes in connectivity
9771 isOk,arr=m1.areCellsIncludedIn(m2,2)
9772 self.assertTrue(isOk);
9773 self.assertEqual(2,arr.getNumberOfTuples());
9774 self.assertEqual(1,arr.getNumberOfComponents());
9775 self.assertEqual(cells2,arr.getValues())
9778 def toSeeIfDaIIopsAreOK(self,d):
9786 def testSwigDAIOp5(self):
9787 d=DataArrayInt.New([4,5,6,10,3,-1],2,3)
9788 self.toSeeIfDaIIopsAreOK(d)
9789 dExp=DataArrayInt.New([2,4,6,0,0,6],2,3)
9790 self.assertTrue(d.isEqual(dExp));
9793 def toSeeIfDaDIopsAreOK(self,d):
9800 def testSwigDADOp7(self):
9801 d=DataArrayDouble.New([4.,5.,6.,10.,3.,-1.],2,3)
9802 self.toSeeIfDaDIopsAreOK(d)
9803 dExp=DataArrayDouble.New([16.,18.,20.,28.,14.,6.],2,3)
9804 self.assertTrue(d.isEqual(dExp,1e-14));
9807 def testConvexEnvelop2D1(self):
9808 coords=[7.54758495819e-14,-1.12270326253e-12,8.43143594193,-1.02835845055e-12,4.21571797096,7.30183771609,-4.21571797097,7.30183771609,-8.43143594193,-1.09439981894e-12,-4.21571797097,-7.30183771609,4.21571797097,-7.30183771609,16.8628718839,-1.02835845055e-12,12.6471539129,7.30183771609,8.43143594193,14.6036754322,2.26427548746e-13,14.6036754322,-8.43143594193,14.6036754322,-12.6471539129,7.30183771609,-16.8628718839,-1.39630321727e-12,-12.6471539129,-7.30183771609,-8.43143594193,-14.6036754322,3.7737924791e-14,-14.6036754322,8.43143594193,-14.6036754322,12.6471539129,-7.30183771609,25.2943078258,-1.07553085654e-12,21.0785898548,7.30183771609,16.8628718839,14.6036754322,12.6471539129,21.9055131483,4.21571797096,21.9055131483,-4.21571797097,21.9055131483,-12.6471539129,21.9055131483,-16.8628718839,14.6036754322,-21.0785898548,7.30183771609,-25.2943078258,-1.02835845055e-12,-21.0785898548,-7.30183771609,-16.8628718839,-14.6036754322,-12.6471539129,-21.9055131483,-4.21571797097,-21.9055131483,4.21571797097,-21.9055131483,12.6471539129,-21.9055131483,16.8628718839,-14.6036754322,21.0785898548,-7.30183771609,33.7257437677,-7.45324014622e-13,29.5100257968,7.30183771609,25.2943078258,14.6036754322,21.0785898548,21.9055131483,16.8628718839,29.2073508644,8.43143594193,29.2073508644,-1.20761359331e-12,29.2073508644,-8.43143594193,29.2073508644,-16.8628718839,29.2073508644,-21.0785898548,21.9055131483,-25.2943078258,14.6036754322,-29.5100257968,7.30183771609,-33.7257437677,-7.26455052226e-13,-29.5100257968,-7.30183771609,-25.2943078258,-14.6036754322,-21.0785898548,-21.9055131483,-16.8628718839,-29.2073508644,-8.43143594193,-29.2073508644,4.15117172701e-13,-29.2073508644,8.43143594193,-29.2073508644,16.8628718839,-29.2073508644,21.0785898548,-21.9055131483,25.2943078258,-14.6036754322,29.5100257968,-7.30183771609,42.1571797097,-1.86802727715e-12,37.9414617387,7.30183771609,33.7257437677,14.6036754322,29.5100257968,21.9055131483,25.2943078258,29.2073508644,21.0785898548,36.5091885805,12.6471539129,36.5091885805,4.21571797096,36.5091885805,-4.21571797096,36.5091885805,-12.6471539129,36.5091885805,-21.0785898548,36.5091885805,-25.2943078258,29.2073508644,-29.5100257968,21.9055131483,-33.7257437677,14.6036754322,-37.9414617387,7.30183771609,-42.1571797097,-9.81186044565e-13,-37.9414617387,-7.30183771609,-33.7257437677,-14.6036754322,-29.5100257968,-21.9055131483,-25.2943078258,-29.2073508644,-21.0785898548,-36.5091885805,-12.6471539129,-36.5091885805,-4.21571797097,-36.5091885805,4.21571797097,-36.5091885805,12.6471539129,-36.5091885805,21.0785898548,-36.5091885805,25.2943078258,-29.2073508644,29.5100257968,-21.9055131483,33.7257437677,-14.6036754322,37.9414617387,-7.30183771609,50.5886156516,-6.98151608633e-13,46.3728976806,7.30183771609,42.1571797097,14.6036754322,37.9414617387,21.9055131483,33.7257437677,29.2073508644,29.5100257968,36.5091885805,25.2943078258,43.8110262966,16.8628718839,43.8110262966,8.43143594193,43.8110262966,-1.84915831476e-12,43.8110262966,-8.43143594193,43.8110262966,-16.8628718839,43.8110262966,-25.2943078258,43.8110262966,-29.5100257968,36.5091885805,-33.7257437677,29.2073508644,-37.9414617387,21.9055131483,-42.1571797097,14.6036754322,-46.3728976806,7.30183771609,-50.5886156516,-1.47177906685e-12,-46.3728976806,-7.30183771609,-42.1571797097,-14.6036754322,-37.9414617387,-21.9055131483,-33.7257437677,-29.2073508644,-29.5100257968,-36.5091885805,-25.2943078258,-43.8110262966,-16.8628718839,-43.8110262966,-8.43143594193,-43.8110262966,7.54758495819e-14,-43.8110262966,8.43143594193,-43.8110262966,16.8628718839,-43.8110262966,25.2943078258,-43.8110262966,29.5100257968,-36.5091885805,33.7257437677,-29.2073508644,37.9414617387,-21.9055131483,42.1571797097,-14.6036754322,46.3728976806,-7.30183771609,59.0200515935,-7.9249642061e-13,54.8043336225,7.30183771609,50.5886156516,14.6036754322,46.3728976806,21.9055131483,42.1571797097,29.2073508644,37.9414617387,36.5091885805,33.7257437677,43.8110262966,29.5100257968,51.1128640127,21.0785898548,51.1128640127,12.6471539129,51.1128640127,4.21571797096,51.1128640127,-4.21571797096,51.1128640127,-12.6471539129,51.1128640127,-21.0785898548,51.1128640127,-29.5100257968,51.1128640127,-33.7257437677,43.8110262966,-37.9414617387,36.5091885805,-42.1571797097,29.2073508644,-46.3728976806,21.9055131483,-50.5886156516,14.6036754322,-54.8043336226,7.30183771609,-59.0200515935,-1.31139288649e-12,-54.8043336226,-7.30183771609,-50.5886156516,-14.6036754322,-46.3728976806,-21.9055131483,-42.1571797097,-29.2073508644,-37.9414617387,-36.5091885805,-33.7257437677,-43.8110262966,-29.5100257968,-51.1128640127,-21.0785898548,-51.1128640127,-12.6471539129,-51.1128640127,-4.21571797097,-51.1128640127,4.21571797097,-51.1128640127,12.6471539129,-51.1128640127,21.0785898548,-51.1128640127,29.5100257968,-51.1128640127,33.7257437677,-43.8110262966,37.9414617387,-36.5091885805,42.1571797097,-29.2073508644,46.3728976806,-21.9055131483,50.5886156516,-14.6036754322,54.8043336225,-7.30183771609,67.4514875354,-2.14162723189e-12,63.2357695645,7.30183771609,59.0200515935,14.6036754322,54.8043336226,21.9055131483,50.5886156516,29.2073508644,46.3728976806,36.5091885805,42.1571797097,43.8110262966,37.9414617387,51.1128640127,33.7257437677,58.4147017287,25.2943078258,58.4147017287,16.8628718839,58.4147017287,8.43143594193,58.4147017287,6.79282646237e-13,58.4147017287,-8.43143594193,58.4147017287,-16.8628718839,58.4147017287,-25.2943078258,58.4147017287,-33.7257437677,58.4147017287,-37.9414617387,51.1128640127,-42.1571797097,43.8110262966,-46.3728976806,36.5091885805,-50.5886156516,29.2073508644,-54.8043336226,21.9055131483,-59.0200515935,14.6036754322,-63.2357695645,7.30183771609,-67.4514875354,-1.16044118732e-12,-63.2357695645,-7.30183771609,-59.0200515935,-14.6036754322,-54.8043336226,-21.9055131483,-50.5886156516,-29.2073508644,-46.3728976806,-36.5091885805,-42.1571797097,-43.8110262966,-37.9414617387,-51.1128640127,-33.7257437677,-58.4147017287,-25.2943078258,-58.4147017287,-16.8628718839,-58.4147017287,-8.43143594193,-58.4147017287,-5.66068871864e-14,-58.4147017287,8.43143594193,-58.4147017287,16.8628718839,-58.4147017287,25.2943078258,-58.4147017287,33.7257437677,-58.4147017287,37.9414617387,-51.1128640127,42.1571797097,-43.8110262966,46.3728976806,-36.5091885805,50.5886156516,-29.2073508644,54.8043336226,-21.9055131483,59.0200515935,-14.6036754322,63.2357695645,-7.30183771609,75.8829234774,-2.29257893105e-12,71.6672055064,7.30183771609,67.4514875354,14.6036754322,63.2357695645,21.9055131483,59.0200515935,29.2073508644,54.8043336226,36.5091885805,50.5886156516,43.8110262966,46.3728976806,51.1128640127,42.1571797097,58.4147017287,37.9414617387,65.7165394448,29.5100257968,65.7165394448,21.0785898548,65.7165394448,12.6471539129,65.7165394448,4.21571797097,65.7165394448,-4.21571797096,65.7165394448,-12.6471539129,65.7165394448,-21.0785898548,65.7165394448,-29.5100257968,65.7165394448,-37.9414617387,65.7165394448,-42.1571797097,58.4147017287,-46.3728976806,51.1128640127,-50.5886156516,43.8110262966,-54.8043336226,36.5091885805,-59.0200515935,29.2073508644,-63.2357695645,21.9055131483,-67.4514875354,14.6036754322,-71.6672055064,7.30183771609,-75.8829234774,-1.31139288649e-12,-71.6672055064,-7.30183771609,-67.4514875354,-14.6036754322,-63.2357695645,-21.9055131483,-59.0200515935,-29.2073508644,-54.8043336226,-36.5091885805,-50.5886156516,-43.8110262966,-46.3728976806,-51.1128640127,-42.1571797097,-58.4147017287,-37.9414617387,-65.7165394448,-29.5100257968,-65.7165394448,-21.0785898548,-65.7165394448,-12.6471539129,-65.7165394448,-4.21571797097,-65.7165394448,4.21571797097,-65.7165394448,12.6471539129,-65.7165394448,21.0785898548,-65.7165394448,29.5100257968,-65.7165394448,37.9414617387,-65.7165394448,42.1571797097,-58.4147017287,46.3728976806,-51.1128640127,50.5886156516,-43.8110262966,54.8043336226,-36.5091885805,59.0200515935,-29.2073508644,63.2357695645,-21.9055131483,67.4514875354,-14.6036754322,71.6672055064,-7.30183771609,84.3143594193,-1.49064802924e-12,80.0986414483,7.30183771609,75.8829234774,14.6036754322,71.6672055064,21.9055131483,67.4514875354,29.2073508644,63.2357695645,36.5091885805,59.0200515935,43.8110262966,54.8043336226,51.1128640127,50.5886156516,58.4147017287,46.3728976806,65.7165394448,42.1571797097,73.0183771609,33.7257437677,73.0183771609,25.2943078258,73.0183771609,16.8628718839,73.0183771609,8.43143594193,73.0183771609,2.0755858635e-12,73.0183771609,-8.43143594193,73.0183771609,-16.8628718839,73.0183771609,-25.2943078258,73.0183771609,-33.7257437677,73.0183771609,-42.1571797097,73.0183771609,-46.3728976806,65.7165394448,-50.5886156516,58.4147017287,-54.8043336226,51.1128640127,-59.0200515935,43.8110262966,-63.2357695645,36.5091885805,-67.4514875354,29.2073508644,-71.6672055064,21.9055131483,-75.8829234774,14.6036754322,-80.0986414483,7.30183771609,-84.3143594193,-1.11326878133e-12,-80.0986414483,-7.30183771609,-75.8829234774,-14.6036754322,-71.6672055064,-21.9055131483,-67.4514875354,-29.2073508644,-63.2357695645,-36.5091885805,-59.0200515935,-43.8110262966,-54.8043336226,-51.1128640127,-50.5886156516,-58.4147017287,-46.3728976806,-65.7165394448,-42.1571797097,-73.0183771609,-33.7257437677,-73.0183771609,-25.2943078258,-73.0183771609,-16.8628718839,-73.0183771609,-8.43143594193,-73.0183771609,-5.66068871864e-14,-73.0183771609,8.43143594193,-73.0183771609,16.8628718839,-73.0183771609,25.2943078258,-73.0183771609,33.7257437677,-73.0183771609,42.1571797097,-73.0183771609,46.3728976806,-65.7165394448,50.5886156516,-58.4147017287,54.8043336226,-51.1128640127,59.0200515935,-43.8110262966,63.2357695645,-36.5091885805,67.4514875354,-29.2073508644,71.6672055064,-21.9055131483,75.8829234774,-14.6036754322,80.0986414483,-7.3018377161]
9809 conn=[0,2,3,4,5,6,1,1,8,2,0,6,18,7,2,9,10,3,0,1,8,3,10,11,12,4,0,2,4,3,12,13,14,5,0,5,0,4,14,15,16,6,6,1,0,5,16,17,18,7,20,8,1,18,36,19,8,21,9,2,1,7,20,9,22,23,10,2,8,21,10,23,24,11,3,2,9,11,24,25,26,12,3,10,12,11,26,27,13,4,3,13,12,27,28,29,14,4,14,4,13,29,30,15,5,15,5,14,30,31,32,16,16,6,5,15,32,33,17,17,18,6,16,33,34,35,18,7,1,6,17,35,36,19,38,20,7,36,60,37,20,39,21,8,7,19,38,21,40,22,9,8,20,39,22,41,42,23,9,21,40,23,42,43,24,10,9,22,24,43,44,25,11,10,23,25,44,45,46,26,11,24,26,25,46,47,27,12,11,27,26,47,48,28,13,12,28,27,48,49,50,29,13,29,13,28,50,51,30,14,30,14,29,51,52,31,15,31,15,30,52,53,54,32,32,16,15,31,54,55,33,33,17,16,32,55,56,34,34,35,17,33,56,57,58,35,36,18,17,34,58,59,36,19,7,18,35,59,60,37,62,38,19,60,90,61,38,63,39,20,19,37,62,39,64,40,21,20,38,63,40,65,41,22,21,39,64,41,66,67,42,22,40,65,42,67,68,43,23,22,41,43,68,69,44,24,23,42,44,69,70,45,25,24,43,45,70,71,72,46,25,44,46,45,72,73,47,26,25,47,46,73,74,48,27,26,48,47,74,75,49,28,27,49,48,75,76,77,50,28,50,28,49,77,78,51,29,51,29,50,78,79,52,30,52,30,51,79,80,53,31,53,31,52,80,81,82,54,54,32,31,53,82,83,55,55,33,32,54,83,84,56,56,34,33,55,84,85,57,57,58,34,56,85,86,87,58,59,35,34,57,87,88,59,60,36,35,58,88,89,60,37,19,36,59,89,90,61,92,62,37,90,126,91,62,93,63,38,37,61,92,63,94,64,39,38,62,93,64,95,65,40,39,63,94,65,96,66,41,40,64,95,66,97,98,67,41,65,96,67,98,99,68,42,41,66,68,99,100,69,43,42,67,69,100,101,70,44,43,68,70,101,102,71,45,44,69,71,102,103,104,72,45,70,72,71,104,105,73,46,45,73,72,105,106,74,47,46,74,73,106,107,75,48,47,75,74,107,108,76,49,48,76,75,108,109,110,77,49,77,49,76,110,111,78,50,78,50,77,111,112,79,51,79,51,78,112,113,80,52,80,52,79,113,114,81,53,81,53,80,114,115,116,82,82,54,53,81,116,117,83,83,55,54,82,117,118,84,84,56,55,83,118,119,85,85,57,56,84,119,120,86,86,87,57,85,120,121,122,87,88,58,57,86,122,123,88,89,59,58,87,123,124,89,90,60,59,88,124,125,90,61,37,60,89,125,126,91,128,92,61,126,168,127,92,129,93,62,61,91,128,93,130,94,63,62,92,129,94,131,95,64,63,93,130,95,132,96,65,64,94,131,96,133,97,66,65,95,132,97,134,135,98,66,96,133,98,135,136,99,67,66,97,99,136,137,100,68,67,98,100,137,138,101,69,68,99,101,138,139,102,70,69,100,102,139,140,103,71,70,101,103,140,141,142,104,71,102,104,103,142,143,105,72,71,105,104,143,144,106,73,72,106,105,144,145,107,74,73,107,106,145,146,108,75,74,108,107,146,147,109,76,75,109,108,147,148,149,110,76,110,76,109,149,150,111,77,111,77,110,150,151,112,78,112,78,111,151,152,113,79,113,79,112,152,153,114,80,114,80,113,153,154,115,81,115,81,114,154,155,156,116,116,82,81,115,156,157,117,117,83,82,116,157,158,118,118,84,83,117,158,159,119,119,85,84,118,159,160,120,120,86,85,119,160,161,121,121,122,86,120,161,162,163,122,123,87,86,121,163,164,123,124,88,87,122,164,165,124,125,89,88,123,165,166,125,126,90,89,124,166,167,126,91,61,90,125,167,168,127,170,128,91,168,216,169,128,171,129,92,91,127,170,129,172,130,93,92,128,171,130,173,131,94,93,129,172,131,174,132,95,94,130,173,132,175,133,96,95,131,174,133,176,134,97,96,132,175,134,177,178,135,97,133,176,135,178,179,136,98,97,134,136,179,180,137,99,98,135,137,180,181,138,100,99,136,138,181,182,139,101,100,137,139,182,183,140,102,101,138,140,183,184,141,103,102,139,141,184,185,186,142,103,140,142,141,186,187,143,104,103,143,142,187,188,144,105,104,144,143,188,189,145,106,105,145,144,189,190,146,107,106,146,145,190,191,147,108,107,147,146,191,192,148,109,108,148,147,192,193,194,149,109,149,109,148,194,195,150,110,150,110,149,195,196,151,111,151,111,150,196,197,152,112,152,112,151,197,198,153,113,153,113,152,198,199,154,114,154,114,153,199,200,155,115,155,115,154,200,201,202,156,156,116,115,155,202,203,157,157,117,116,156,203,204,158,158,118,117,157,204,205,159,159,119,118,158,205,206,160,160,120,119,159,206,207,161,161,121,120,160,207,208,162,162,163,121,161,208,209,210,163,164,122,121,162,210,211,164,165,123,122,163,211,212,165,166,124,123,164,212,213,166,167,125,124,165,213,214,167,168,126,125,166,214,215,168,127,91,126,167,215,216,169,218,170,127,216,270,217,170,219,171,128,127,169,218,171,220,172,129,128,170,219,172,221,173,130,129,171,220,173,222,174,131,130,172,221,174,223,175,132,131,173,222,175,224,176,133,132,174,223,176,225,177,134,133,175,224,177,226,227,178,134,176,225,178,227,228,179,135,134,177,179,228,229,180,136,135,178,180,229,230,181,137,136,179,181,230,231,182,138,137,180,182,231,232,183,139,138,181,183,232,233,184,140,139,182,184,233,234,185,141,140,183,185,234,235,236,186,141,184,186,185,236,237,187,142,141,187,186,237,238,188,143,142,188,187,238,239,189,144,143,189,188,239,240,190,145,144,190,189,240,241,191,146,145,191,190,241,242,192,147,146,192,191,242,243,193,148,147,193,192,243,244,245,194,148,194,148,193,245,246,195,149,195,149,194,246,247,196,150,196,150,195,247,248,197,151,197,151,196,248,249,198,152,198,152,197,249,250,199,153,199,153,198,250,251,200,154,200,154,199,251,252,201,155,201,155,200,252,253,254,202,202,156,155,201,254,255,203,203,157,156,202,255,256,204,204,158,157,203,256,257,205,205,159,158,204,257,258,206,206,160,159,205,258,259,207,207,161,160,206,259,260,208,208,162,161,207,260,261,209,209,210,162,208,261,262,263,210,211,163,162,209,263,264,211,212,164,163,210,264,265,212,213,165,164,211,265,266,213,214,166,165,212,266,267,214,215,167,166,213,267,268,215,216,168,167,214,268,269,216,169,127,168,215,269,270,217,272,218,169,270,330,271,218,273,219,170,169,217,272,219,274,220,171,170,218,273,220,275,221,172,171,219,274,221,276,222,173,172,220,275,222,277,223,174,173,221,276,223,278,224,175,174,222,277,224,279,225,176,175,223,278,225,280,226,177,176,224,279,226,281,282,227,177,225,280,227,282,283,228,178,177,226,228,283,284,229,179,178,227,229,284,285,230,180,179,228,230,285,286,231,181,180,229,231,286,287,232,182,181,230,232,287,288,233,183,182,231,233,288,289,234,184,183,232,234,289,290,235,185,184,233,235,290,291,292,236,185,234,236,235,292,293,237,186,185,237,236,293,294,238,187,186,238,237,294,295,239,188,187,239,238,295,296,240,189,188,240,239,296,297,241,190,189,241,240,297,298,242,191,190,242,241,298,299,243,192,191,243,242,299,300,244,193,192,244,243,300,301,302,245,193,245,193,244,302,303,246,194,246,194,245,303,304,247,195,247,195,246,304,305,248,196,248,196,247,305,306,249,197,249,197,248,306,307,250,198,250,198,249,307,308,251,199,251,199,250,308,309,252,200,252,200,251,309,310,253,201,253,201,252,310,311,312,254,254,202,201,253,312,313,255,255,203,202,254,313,314,256,256,204,203,255,314,315,257,257,205,204,256,315,316,258,258,206,205,257,316,317,259,259,207,206,258,317,318,260,260,208,207,259,318,319,261,261,209,208,260,319,320,262,262,263,209,261,320,321,322,263,264,210,209,262,322,323,264,265,211,210,263,323,324,265,266,212,211,264,324,325,266,267,213,212,265,325,326,267,268,214,213,266,326,327,268,269,215,214,267,327,328,269,270,216,215,268,328,329,270,217,169,216,269,329,330,271,272,217,330,273,218,217,271,274,219,218,272,275,220,219,273,276,221,220,274,277,222,221,275,278,223,222,276,279,224,223,277,280,225,224,278,281,226,225,279,281,282,226,280,283,227,226,281,284,228,227,282,285,229,228,283,286,230,229,284,287,231,230,285,288,232,231,286,289,233,232,287,290,234,233,288,291,235,234,289,291,292,235,290,291,293,236,235,292,294,237,236,293,295,238,237,294,296,239,238,295,297,240,239,296,298,241,240,297,299,242,241,298,300,243,242,299,301,244,243,301,300,302,244,244,301,303,245,245,302,304,246,246,303,305,247,247,304,306,248,248,305,307,249,249,306,308,250,250,307,309,251,251,308,310,252,252,309,311,253,311,253,310,312,254,253,311,313,255,254,312,314,256,255,313,315,257,256,314,316,258,257,315,317,259,258,316,318,260,259,317,319,261,260,318,320,262,261,319,321,321,322,262,320,323,263,262,321,324,264,263,322,325,265,264,323,326,266,265,324,327,267,266,325,328,268,267,326,329,269,268,327,330,270,269,328,271,217,270,329]
9810 connI=[0,7,14,21,28,35,42,49,56,63,70,77,84,91,98,105,112,119,126,133,140,147,154,161,168,175,182,189,196,203,210,217,224,231,238,245,252,259,266,273,280,287,294,301,308,315,322,329,336,343,350,357,364,371,378,385,392,399,406,413,420,427,434,441,448,455,462,469,476,483,490,497,504,511,518,525,532,539,546,553,560,567,574,581,588,595,602,609,616,623,630,637,644,651,658,665,672,679,686,693,700,707,714,721,728,735,742,749,756,763,770,777,784,791,798,805,812,819,826,833,840,847,854,861,868,875,882,889,896,903,910,917,924,931,938,945,952,959,966,973,980,987,994,1001,1008,1015,1022,1029,1036,1043,1050,1057,1064,1071,1078,1085,1092,1099,1106,1113,1120,1127,1134,1141,1148,1155,1162,1169,1176,1183,1190,1197,1204,1211,1218,1225,1232,1239,1246,1253,1260,1267,1274,1281,1288,1295,1302,1309,1316,1323,1330,1337,1344,1351,1358,1365,1372,1379,1386,1393,1400,1407,1414,1421,1428,1435,1442,1449,1456,1463,1470,1477,1484,1491,1498,1505,1512,1519,1526,1533,1540,1547,1554,1561,1568,1575,1582,1589,1596,1603,1610,1617,1624,1631,1638,1645,1652,1659,1666,1673,1680,1687,1694,1701,1708,1715,1722,1729,1736,1743,1750,1757,1764,1771,1778,1785,1792,1799,1806,1813,1820,1827,1834,1841,1848,1855,1862,1869,1876,1883,1890,1897,1901,1905,1909,1913,1917,1921,1925,1929,1933,1937,1941,1945,1949,1953,1957,1961,1965,1969,1973,1977,1981,1985,1989,1993,1997,2001,2005,2009,2013,2017,2021,2025,2029,2033,2037,2041,2045,2049,2053,2057,2061,2065,2069,2073,2077,2081,2085,2089,2093,2097,2101,2105,2109,2113,2117,2121,2125,2129,2133,2137]
9812 m=MEDCouplingUMesh.New("convexhull",2);
9813 m.allocateCells(331);
9814 for i in xrange(331):
9815 m.insertNextCell(NORM_POLYGON,conn[connI[i]:connI[i+1]]);
9817 m.finishInsertingCells();
9818 coordsDa=DataArrayDouble.New(coords,331,2);
9819 m.setCoords(coordsDa);
9822 da=m.convexEnvelop2D();
9824 self.assertEqual(coordsDa.getHiddenCppPointer(),m.getCoords().getHiddenCppPointer())
9825 daC=da.buildComplement(m.getNumberOfCells());
9826 expected2=DataArrayInt.New([271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,302,303,304,305,306,307,308,309,310,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330]);
9827 self.assertTrue(expected2.isEqual(daC));
9829 vals=m.getMeasureField(ON_CELLS).getArray()
9830 ref=271*[184.69493088478035]+3*[-61.564976961404426,-92.34746544254946,-92.34746544259811,-92.34746544253488,-92.3474654425349,-92.34746544180479,-92.34746544253493,-92.3474654419026,-92.34746544190256,-92.34746544253491]+2*[61.564976961404426,-92.34746544254946,-92.34746544259811,-92.34746544253488,-92.3474654425349,-92.34746544180479,-92.34746544253493,-92.3474654419026,-92.34746544190256,-92.34746544253491]+[-61.564976961404426,-92.34746544254946,-92.34746544259811,-92.34746544253488,-92.3474654425349,-92.34746544180479,-92.34746544253493,-92.3474654419026,-92.34746544190256,-92.34746544253491]
9831 vals-=DataArrayDouble.New(ref)
9833 theTest=vals.getIdsInRange(-1.,1e-7)
9834 self.assertTrue(theTest.isIdentity())
9835 self.assertEqual(331,len(theTest))
9838 def testSwigDAIOp8(self):
9839 da=DataArrayInt.New([7,5,6,7,8,9,9,10,12,13,47,15])
9840 self.assertTrue(7 in da)
9841 self.assertTrue(47 in da)
9842 self.assertTrue(15 in da)
9843 self.assertEqual(0,da.index(7))
9844 self.assertEqual(10,da.index(47))
9845 self.assertTrue(14 not in da)
9846 self.assertEqual(5,da.search([9,9]))
9847 self.assertEqual(-1,da.search([5,8]))
9849 self.assertTrue([47,16] not in da)
9850 self.assertTrue([5,6] not in da)
9851 self.assertTrue([6,7] in da)
9852 self.assertEqual(4,da.index([12,13]))
9855 def testDataArraySort1(self):
9856 arr=DataArrayInt.New();
9857 self.assertRaises(InterpKernelException,arr.sort,True)
9858 self.assertRaises(InterpKernelException,arr.sort,False)
9859 values=[2,1,6,5,4,7]
9861 self.assertRaises(InterpKernelException,arr.sort,True)
9862 self.assertRaises(InterpKernelException,arr.sort,False)
9864 arr.setValues(values,6,1)
9868 expected1=[1,2,4,5,6,7]
9869 self.assertEqual(6,arr1.getNumberOfTuples());
9870 self.assertEqual(1,arr1.getNumberOfComponents());
9871 self.assertEqual(expected1,arr1.getValues());
9873 expected2=[7,6,5,4,2,1]
9874 self.assertEqual(6,arr2.getNumberOfTuples());
9875 self.assertEqual(1,arr2.getNumberOfComponents());
9876 self.assertTrue(expected2,arr2.getValues());
9878 ard=DataArrayDouble.New();
9879 self.assertRaises(InterpKernelException,ard.sort,True)
9880 self.assertRaises(InterpKernelException,ard.sort,False)
9881 valuesD=[2.,1.,6.,5.,4.,7.]
9883 self.assertRaises(InterpKernelException,ard.sort,True)
9884 self.assertRaises(InterpKernelException,ard.sort,False)
9886 ard.setValues(valuesD,6,1)
9890 expected3=[1.,2.,4.,5.,6.,7.]
9891 self.assertEqual(6,ard1.getNumberOfTuples());
9892 self.assertEqual(1,ard1.getNumberOfComponents());
9894 self.assertAlmostEqual(expected3[i],ard1.getIJ(i,0),12)
9897 expected4=[7.,6.,5.,4.,2.,1.]
9898 self.assertEqual(6,ard2.getNumberOfTuples());
9899 self.assertEqual(1,ard2.getNumberOfComponents());
9901 self.assertAlmostEqual(expected4[i],ard2.getIJ(i,0),12)
9905 def testPartitionBySpreadZone1(self):
9906 m=MEDCouplingDataForTest.build2DTargetMesh_1();
9907 m4=MEDCouplingUMesh.MergeUMeshes([m,m[-3:],m[0:2]]);
9908 m4.renumberCells([5,2,9,6,4,7,0,1,3,8]);
9910 v2=m4.partitionBySpreadZone();
9911 self.assertTrue(3,len(v2));
9912 self.assertTrue(v2[0].isEqual(DataArrayInt.New([0,1,7])))
9913 self.assertTrue(v2[1].isEqual(DataArrayInt.New([2,4,5,6,9])))
9914 self.assertTrue(v2[2].isEqual(DataArrayInt.New([3,8])))
9916 m5=m4.buildSpreadZonesWithPoly();
9917 self.assertEqual(3,m5.getNumberOfCells());
9918 self.assertTrue(m5.getCoords().getHiddenCppPointer()==m4.getCoords().getHiddenCppPointer());
9919 self.assertEqual([5,15,16,17,14,11,13,12,5,2,1,0,3,6,7,8,5,5,18,21,22,20,19],m5.getNodalConnectivity().getValues())
9920 self.assertEqual([0,8,17,23],m5.getNodalConnectivityIndex().getValues())
9924 def testGiveCellsWithType1(self):
9927 m=MEDCouplingDataForTest.build2DTargetMesh_1();
9928 da=m.giveCellsWithType(NORM_TRI3);
9929 self.assertEqual(2,da.getNumberOfTuples());
9930 self.assertEqual(1,da.getNumberOfComponents());
9931 self.assertEqual(expected0,da.getValues())
9933 da=m.giveCellsWithType(NORM_QUAD4);
9934 self.assertEqual(3,da.getNumberOfTuples());
9935 self.assertEqual(1,da.getNumberOfComponents());
9936 self.assertEqual(expected1,da.getValues())
9938 da=m.giveCellsWithType(NORM_TRI6);
9939 self.assertEqual(0,da.getNumberOfTuples());
9940 self.assertEqual(1,da.getNumberOfComponents());
9942 self.assertRaises(InterpKernelException,m.giveCellsWithType,NORM_SEG2)
9943 self.assertRaises(InterpKernelException,m.giveCellsWithType,NORM_HEXA8)
9946 def testSwigDAOp1(self):
9947 d=DataArrayDouble.New(5,2)
9948 d.rearrange(1) ; d.iota(2.) ; d.rearrange(2)
9949 d.setInfoOnComponents(["X [m]","Y [m]"])
9953 self.assertTrue(d1.isEqualWithoutConsideringStr(DataArrayDouble.New([10.0,12.0,12.0,14.0,14.0,16.0,16.0,18.0,18.0,20.0]),1e-12))
9954 d1bis=DataArrayDouble.New([8,9],1,2)+d
9955 self.assertTrue(d1bis.isEqual(d1,1e-12))
9957 self.assertTrue(d1ter.isEqual(d1,1e-12))
9960 self.assertTrue(d2.isEqual(d,1e-12))
9961 self.assertRaises(InterpKernelException,d1.__rsub__,[8,9])#[8,9]-d1
9964 self.assertTrue(d3.isEqualWithoutConsideringStr(DataArrayDouble.New([16.0,27.0,32.0,45.0,48.0,63.0,64.0,81.0,80.0,99.0]),1e-12))
9965 d3bis=DataArrayDouble.New([8,9],1,2)*d
9966 self.assertTrue(d3bis.isEqual(d3,1e-12))
9968 self.assertTrue(d3ter.isEqual(d3,1e-12))
9971 self.assertTrue(d4.isEqual(d,1e-12))
9973 d=DataArrayInt.New(5,2)
9974 d.rearrange(1) ; d.iota(2) ; d.rearrange(2)
9975 d.setInfoOnComponents(["X [m]","Y [m]"])
9979 self.assertEqual(d1.getValues(),[10,12,12,14,14,16,16,18,18,20])
9980 d1bis=DataArrayInt.New([8,9],1,2)+d
9981 self.assertTrue(d1bis.isEqual(d1))
9983 self.assertTrue(d1ter.isEqual(d1))
9986 self.assertTrue(d2.isEqual(d))
9987 self.assertRaises(InterpKernelException,d1.__rsub__,[8,9])
9990 self.assertEqual(d3.getValues(),[16,27,32,45,48,63,64,81,80,99])
9991 d3bis=DataArrayInt.New([8,9],1,2)*d
9992 self.assertTrue(d3bis.isEqual(d3))
9994 self.assertTrue(d3ter.isEqual(d3))
9997 self.assertTrue(d4.isEqual(d))
10000 self.assertEqual(d5.getValues(),[2,3,0,0,2,2,0,4,2,1])
10003 def testSwigSelectTupleId2DAIBug1(self):
10004 da=DataArrayInt.New([0,1,2,3,12,13,4,5,6,7,14,15,8,9,10,11,16,17])
10005 self.assertEqual([2,6,10],da[2::6].getValues())
10006 self.assertEqual([0,4,8],da[::6].getValues())
10007 self.assertEqual([5,9],da[7::6].getValues())
10008 self.assertEqual([5],da[7:-5:6].getValues())
10011 def testSwigCpp5Safe1(self):
10012 m=MEDCouplingUMesh.New("toto",2)
10013 coords=DataArrayDouble.New([0.,0.,1.,0.,1.,1.,0.,1.],4,2)
10014 m.setCoords(coords)
10015 vecs=DataArrayDouble.New([2.,3.,4.,5.,6.,7.],3,2)
10016 expected1=[[2.,3.,3.,3.,3.,4.,2.,4.0],[4.,5.,5.,5.,5.,6.,4.,6.0],[6.,7.,7.,7.,7.,8.,6.,8.0]]
10017 for pos,vec in enumerate(vecs):
10020 self.assertTrue(m2.getCoords().isEqual(DataArrayDouble.New(expected1[pos],4,2),1e-12))
10022 for pos,vec in enumerate(vecs):
10024 m2.translate(vec.buildDADouble())
10025 self.assertTrue(m2.getCoords().isEqual(DataArrayDouble.New(expected1[pos],4,2),1e-12))
10029 def testSwigBugNonRegressionZipDA(self):
10030 angles=map(lambda x:pi/3*x,xrange(6))
10033 dad=DataArrayDouble.New(6, 2)
10037 dad2=dad.fromPolarToCart()
10038 dads=[dad2.deepCpy() for elt in 7*[None]]
10040 translationToPerform=[[0.01,0.02],[3./2.*radius,-radius*sqrt(3.)/2],[3./2.*radius,radius*sqrt(3.)/2],[0.,radius*sqrt(3.)],[-3./2.*radius,radius*sqrt(3.)/2],[-3./2.*radius,-radius*sqrt(3.)/2],[0.,-radius*sqrt(3.)]]
10041 for d,t in zip(dads,translationToPerform):
10045 self.assertTrue(not dad2.isEqual(elt,1e-12))
10047 for d,t in zip(dads,translationToPerform):
10051 self.assertTrue(dad2.isEqual(elt,1e-12))
10055 def testBuildSlice3D2(self):
10056 mesh3D,mesh2D=MEDCouplingDataForTest.build3DExtrudedUMesh_1();
10057 vec1=[-0.07,1.,0.07]
10058 origin1=[1.524,1.4552,1.74768]
10059 slice1,ids=mesh3D.buildSlice3D(origin1,vec1,1e-10);
10060 f=MEDCouplingFieldDouble(ON_CELLS,ONE_TIME)
10061 f.setTime(4.5,6,7) ; f.setMesh(mesh3D)
10062 arr=DataArrayDouble(mesh3D.getNumberOfCells(),2)
10063 arr.rearrange(1) ; arr.iota(2.) ; arr.rearrange(2)
10066 expected1=DataArrayInt([1,3,4,7,9,10,13,15,16])
10067 self.assertTrue(expected1.isEqual(ids))
10068 arr2=arr[expected1]
10070 f2=f.extractSlice3D(origin1,vec1,1e-10)
10071 self.assertTrue(f2.getArray().isEqual(arr2,1e-12));
10072 self.assertTrue(slice1.isEqual(f2.getMesh(),1e-12))
10073 self.assertEqual(6,f2.getTime()[1]) ; self.assertEqual(7,f2.getTime()[2])
10074 self.assertAlmostEqual(4.5,f2.getTime()[0],12);
10077 def testComputeTupleIdsToSelectFromCellIds1(self):
10078 m=MEDCouplingDataForTest.build2DTargetMesh_3()
10079 f=MEDCouplingFieldDouble.New(ON_GAUSS_NE,NO_TIME);
10081 arr=DataArrayDouble(52,2) ; arr.rearrange(1) ; arr.iota(7.) ; arr.rearrange(2)
10084 f2=f.buildSubPart([1,5,9])
10085 f2.checkCoherency()
10086 cI=m.computeNbOfNodesPerCell()
10087 cI.computeOffsets2()
10088 sel=DataArrayInt([1,5,9])
10089 res=sel.buildExplicitArrByRanges(cI)
10091 self.assertTrue(arr2.isEqual(DataArrayDouble([13,14,15,16,17,18,19,20,59,60,61,62,63,64,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110],15,2),1e-12))
10092 self.assertTrue(arr2.isEqual(f2.getArray(),1e-12))
10095 def testComputeSkin1(self):
10096 arrX=DataArrayDouble([2.,3.4,5.6,7.7,8.0]) ; arrY=DataArrayDouble([2.,3.4,5.6,7.7,9.0,14.2])
10097 cmesh=MEDCouplingCMesh() ; cmesh.setCoordsAt(0,arrX) ; cmesh.setCoordsAt(1,arrY)
10098 umesh=cmesh.buildUnstructured()
10100 skin=umesh.computeSkin()
10101 self.assertEqual(18,skin.getNumberOfCells())
10102 self.assertEqual(1,skin.getMeshDimension())
10103 self.assertTrue(skin.getCoords().getHiddenCppPointer()==umesh.getCoords().getHiddenCppPointer())
10104 self.assertEqual([0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54],skin.getNodalConnectivityIndex().getValues())
10105 self.assertEqual([1,1,0,1,0,5,1,2,1,1,3,2,1,4,3,1,9,4,1,5,10,1,14,9,1,10,15,1,19,14,1,15,20,1,24,19,1,20,25,1,25,26,1,26,27,1,27,28,1,28,29,1,29,24],skin.getNodalConnectivity().getValues())
10106 ids=skin.computeFetchedNodeIds()
10107 self.assertEqual([0,1,2,3,4,5,9,10,14,15,19,20,24,25,26,27,28,29],ids.getValues())
10108 part=umesh.buildFacePartOfMySelfNode(ids,True)
10109 part.setName(skin.getName());
10110 self.assertTrue(part.isEqual(skin,1e-12))
10113 self.assertTrue(not part.isEqual(skin,1e-12))
10114 trad=part.zipConnectivityTraducer(0)
10115 self.assertEqual(9,part.getNumberOfCells())
10116 self.assertEqual([0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8],trad.getValues())
10119 def testUMeshSetPartOfMySelf2(self):
10120 # resize with explicit ids list
10121 m=MEDCouplingDataForTest.build2DTargetMesh_1()
10122 self.assertEqual([3,4],m.getAllTypes())
10125 part2=part[[1,2,5]]
10127 self.assertEqual([3,0,4,1,3,1,4,2,3,4,5,2,3,6,7,4,3,7,5,4],m.getNodalConnectivity().getValues())
10128 self.assertEqual([0,4,8,12,16,20],m.getNodalConnectivityIndex().getValues())
10129 self.assertEqual([3],m.getAllTypes())
10130 # no resize with explicit ids list
10131 m=MEDCouplingDataForTest.build2DTargetMesh_1()
10133 part.convertAllToPoly()
10135 self.assertEqual([4,0,3,4,1,3,1,4,2,3,4,5,2,5,0,3,4,1,5,6,7,4,3],m.getNodalConnectivity().getValues())
10136 self.assertEqual([0,5,9,13,18,23],m.getNodalConnectivityIndex().getValues())
10137 self.assertEqual([3,4,5],m.getAllTypes())
10138 # resize with range ids
10139 m=MEDCouplingDataForTest.build2DTargetMesh_1()
10142 self.assertEqual([4,0,3,4,1,4,6,7,4,3,4,7,8,5,4,4,6,7,4,3,4,7,8,5,4],m.getNodalConnectivity().getValues())
10143 self.assertEqual([0,5,10,15,20,25],m.getNodalConnectivityIndex().getValues())
10144 self.assertEqual([4],m.getAllTypes())
10145 # no resize with range ids
10146 m=MEDCouplingDataForTest.build2DTargetMesh_1()
10148 part.convertAllToPoly()
10150 self.assertEqual([4,0,3,4,1,3,1,4,2,3,4,5,2,5,0,3,4,1,5,6,7,4,3],m.getNodalConnectivity().getValues())
10151 self.assertEqual([0,5,9,13,18,23],m.getNodalConnectivityIndex().getValues())
10152 self.assertEqual([3,4,5],m.getAllTypes())
10153 # no resize with range ids negative direction
10154 m=MEDCouplingDataForTest.build2DTargetMesh_1()
10156 part.convertAllToPoly()
10158 self.assertEqual([4,0,3,4,1,3,1,4,2,3,4,5,2,5,0,3,4,1,5,6,7,4,3],m.getNodalConnectivity().getValues())
10159 self.assertEqual([0,5,9,13,18,23],m.getNodalConnectivityIndex().getValues())
10160 self.assertEqual([3,4,5],m.getAllTypes())
10163 def testUnPolyze3(self):
10164 coord=[0.0,0.5,-0.5,-0.5,-0.5,-0.5,0.5,-0.5,-0.5,0.0,0.5,0.5,-0.5,-0.5,0.5,0.5,-0.5,0.5]
10165 conn=[1,2,5,4,-1,4,3,0,1,-1,2,0,3,5,-1,0,2,1,-1,4,5,3]
10166 m=MEDCouplingUMesh.New("a mesh",3);
10167 m.allocateCells(1);
10168 m.insertNextCell(NORM_POLYHED,22,conn[0:22])
10169 m.finishInsertingCells();
10170 coords=DataArrayDouble(coord,6,3);
10171 m.setCoords(coords);
10172 m.checkCoherency();
10174 vol=m.getMeasureField(ON_CELLS);
10175 self.assertEqual(1,vol.getArray().getNumberOfTuples());
10176 self.assertAlmostEqual(0.5,vol.getArray().getIJ(0,0),12)
10180 self.assertEqual([NORM_PENTA6],m.getAllTypes())
10181 self.assertTrue(DataArrayInt([0,7]).isEqual(m.getNodalConnectivityIndex()))
10182 self.assertTrue(DataArrayInt([16,0,2,1,3,5,4]).isEqual(m.getNodalConnectivity()))
10184 vol=m.getMeasureField(ON_CELLS);
10185 self.assertEqual(1,vol.getArray().getNumberOfTuples());
10186 self.assertAlmostEqual(0.5,vol.getArray().getIJ(0,0),12)
10189 def testKrSpatialDiscretization1(self):
10190 srcPointCoordsX=[0.8401877171547095, 0.7830992237586059, 0.9116473579367843, 0.335222755714889, 0.2777747108031878, 0.4773970518621602, 0.3647844727918433, 0.9522297251747128, 0.6357117279599009, 0.1416025553558034]
10191 srcFieldValsOnPoints=[2.129892434968836, 2.295320474540621, 1.931948594981134, 2.728013590937196, 2.715603240418478, 2.661778472822935, 2.695696990104364, 1.893710234970982, 2.529628016549284, 2.728432341300668]
10192 targetPointCoordsX=[-0.5,-0.45,-0.4,-0.35,-0.3,-0.25,-0.2,-0.15,-0.1,-0.05,-6.93889390391e-17,0.05,0.1,0.15,0.2,0.25,0.3,0.35,0.4,0.45,0.5,0.55,0.6,0.65,0.7,0.75,0.8,0.85,0.9,0.95,1.0,1.05,1.1,1.15,1.2,1.25,1.3,1.35,1.4,1.45]
10193 targetFieldValsExpected=[2.975379475824351, 2.95613491917003, 2.936890362515361, 2.917645805861018, 2.898401249206574, 2.879156692552137, 2.859912135897732, 2.840667579243201, 2.821423022588731, 2.802178465934342, 2.78293390927989, 2.763689352625457, 2.744444795971001, 2.725209522098197, 2.709077577124666, 2.706677252549218, 2.727467797847971, 2.713338094723676, 2.671342424824244, 2.664877370146978, 2.653840141412181, 2.619607861392791, 2.569777214476479, 2.513263929794591, 2.450732752808528, 2.368313560985155, 2.250909795670307, 2.098194272085416, 1.954257891732065, 1.895040660973802, 1.865256788315972, 1.835475248687992, 1.80569370905998, 1.775912169431971, 1.746130629803976, 1.716349090175918, 1.686567550547855, 1.656786010919941, 1.627004471291988, 1.597222931663817]
10194 coeffsExpected=DataArrayDouble.New([52.238272642008695, 26.186513281350948, -173.42106377948534, 324.56733663875184, -104.64968873410248, 34.375030568158316, -256.12372208190425, 105.2292032463934, -16.239907618144965, 7.838025836978943, 2.621910745077291, -0.4902609628247241])
10196 nbOfInputPoints=10;
10197 f=MEDCouplingFieldDouble.New(ON_NODES_KR,ONE_TIME);
10198 srcArrX=DataArrayDouble.New(srcPointCoordsX,nbOfInputPoints,1);
10199 cmesh=MEDCouplingCMesh.New("aMesh");
10200 cmesh.setCoordsAt(0,srcArrX);
10201 umesh=cmesh.buildUnstructured();
10203 srcVals=DataArrayDouble.New(srcFieldValsOnPoints,nbOfInputPoints,1);
10204 f.setArray(srcVals);
10205 f.checkCoherency();
10207 res0=f.getValueOn(targetPointCoordsX[:1]);
10208 self.assertAlmostEqual(targetFieldValsExpected[0],res0[0],10)
10210 valuesToTest=f.getValueOnMulti(targetPointCoordsX);
10211 self.assertEqual(40,valuesToTest.getNumberOfTuples());
10212 self.assertEqual(1,valuesToTest.getNumberOfComponents());
10213 for i in xrange(40):
10214 self.assertAlmostEqual(targetFieldValsExpected[i],valuesToTest.getIJ(i,0),10)
10216 fd=f.getDiscretization()
10218 self.assertTrue(isinstance(fd,MEDCouplingFieldDiscretizationKriging))
10219 coeffs,isDrift=fd.computeVectorOfCoefficients(umesh,srcVals)
10220 self.assertEqual(2,isDrift)
10221 self.assertTrue(coeffsExpected.isEqual(coeffs,1e-8))
10225 def testDuplicateEachTupleNTimes1(self):
10226 d=DataArrayDouble.New([9.,8.,7.,6.],4,1) ; d.setInfoOnComponents(["mass [kg]"]) ; d.setName("aname")
10227 d2=d.duplicateEachTupleNTimes(3)
10228 self.assertTrue(d2.isEqualWithoutConsideringStr(DataArrayDouble.New([9.,9.,9.,8.,8.,8.,7.,7.,7.,6.,6.,6.],4*3,1),1e-14))
10229 self.assertEqual("aname",d2.getName())
10230 self.assertEqual(["mass [kg]"],d2.getInfoOnComponents())
10232 d=DataArrayInt.New([9,8,7,6],4,1) ; d.setInfoOnComponents(["mass [kg]"]) ; d.setName("aname")
10233 d2=d.duplicateEachTupleNTimes(3)
10234 self.assertTrue(d2.isEqualWithoutConsideringStr(DataArrayInt.New([9,9,9,8,8,8,7,7,7,6,6,6],4*3,1)))
10235 self.assertEqual("aname",d2.getName())
10236 self.assertEqual(["mass [kg]"],d2.getInfoOnComponents())
10239 def testSwigComputeTupleIdsNearTuples1(self):
10240 da=DataArrayDouble([5.,6.,-5.,-6.,5.,-6.,-5.,6.,5.,6.],5,2)
10241 arr,arrI=da.computeTupleIdsNearTuples(DataArrayDouble([5.,-6.,5.,6.,-5.,-6.],3,2),1e-10)
10242 self.assertEqual([2,0,4,1],arr.getValues())
10243 self.assertEqual([0,1,3,4],arrI.getValues())
10244 arr,arrI=da.computeTupleIdsNearTuples([5.,-6.,5.,6.,-5.,-6.],1e-10)
10245 self.assertEqual([2,0,4,1],arr.getValues())
10246 self.assertEqual([0,1,3,4],arrI.getValues())
10247 expected0=[[2],[0,4],[1]]
10248 expected1=[[0,1],[0,2],[0,1]]
10249 for pos,it in enumerate(DataArrayDouble([5.,-6.,5.,6.,-5.,-6.],3,2)):
10250 arr,arrI=da.computeTupleIdsNearTuples(it,1e-10)
10251 self.assertEqual(expected0[pos],arr.getValues())
10252 self.assertEqual(expected1[pos],arrI.getValues())
10256 def testSwigDataTupleIOp1(self):
10257 d=DataArrayDouble(10,1)
10262 toTest=DataArrayDouble([9.0,10.0,11.0,12.0,13.0,14.0,15.0,16.0,17.0,18.0])
10263 self.assertTrue(toTest.isEqual(d,1e-12))
10267 toTest=DataArrayDouble([7.0,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0,16.0])
10268 self.assertTrue(toTest.isEqual(d,1e-12))
10272 toTest=DataArrayDouble([14.0,16.0,18.0,20.0,22.0,24.0,26.0,28.0,30.0,32.0])
10273 self.assertTrue(toTest.isEqual(d,1e-12))
10277 toTest=DataArrayDouble([7.0,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0,16.0])
10278 self.assertTrue(toTest.isEqual(d,1e-12))
10280 d=DataArrayInt(10,1)
10285 self.assertEqual(d.getValues(),[9,10,11,12,13,14,15,16,17,18])
10289 self.assertEqual(d.getValues(),[7,8,9,10,11,12,13,14,15,16])
10293 self.assertEqual(d.getValues(),[14,16,18,20,22,24,26,28,30,32])
10297 self.assertEqual(d.getValues(),[7,8,9,10,11,12,13,14,15,16])
10301 self.assertEqual(d.getValues(),[1,2,0,1,2,0,1,2,0,1])
10304 def testIntersect2DMeshesTmp5(self):
10305 coords=DataArrayDouble.New([41,0,42,0,0,42,0,41,41.5,0,29.698484809834998,29.698484809834994,0,41.5,28.991378028648452,28.991378028648445,-42,0,-41,0,-29.698484809834994,29.698484809834998,-41.5,0,-28.991378028648445,28.991378028648452,0,-42,0,-41,-29.698484809835001,-29.698484809834994,0,-41.5,-28.991378028648455,-28.991378028648445,29.698484809834987,-29.698484809835001,28.991378028648441,-28.991378028648455,43,0,0,43,42.5,0,30.405591591021544,30.40559159102154,0,42.5,-43,0,-30.40559159102154,30.405591591021544,-42.5,0,0,-43,-30.405591591021551,-30.40559159102154,0,-42.5,30.405591591021537,-30.405591591021551,44,0,0,44,43.5,0,31.112698372208094,31.112698372208087,0,43.5,-44,0,-31.112698372208087,31.112698372208094,-43.5,0,0,-44,-31.112698372208097,-31.112698372208087,0,-43.5,31.112698372208083,-31.112698372208097,45,0,0,45,44.5,0,31.81980515339464,31.819805153394636,0,44.5,-45,0,-31.819805153394636,31.81980515339464,-44.5,0,0,-45,-31.819805153394647,-31.819805153394636,0,-44.5,31.819805153394629,-31.819805153394647,47,0,0,47,46,0,33.234018715767739,33.234018715767732,0,46,-47,0,-33.234018715767732,33.234018715767739,-46,0,0,-47,-33.234018715767739,-33.234018715767732,0,-46,33.234018715767725,-33.234018715767739,49,0,0,49,48,0,34.648232278140831,34.648232278140824,0,48,-49,0,-34.648232278140824,34.648232278140831,-48,0,0,-49,-34.648232278140839,-34.648232278140824,0,-48,34.648232278140817,-34.648232278140839,51,0,0,51,50,0,36.062445840513924,36.062445840513924,0,50,-51,0,-36.062445840513924,36.062445840513924,-50,0,0,-51,-36.062445840513931,-36.062445840513924,0,-50,36.062445840513917,-36.062445840513931,53,0,0,53,52,0,37.476659402887023,37.476659402887016,0,52,-53,0,-37.476659402887016,37.476659402887023,-52,0,0,-53,-37.47665940288703,-37.476659402887016,0,-52,37.476659402887009,-37.47665940288703,55,0,0,55,54,0,38.890872965260115,38.890872965260108,0,54,-55,0,-38.890872965260108,38.890872965260115,-54,0,0,-55,-38.890872965260122,-38.890872965260108,0,-54,38.890872965260101,-38.890872965260122,59,0,0,59,57,0,41.719300090006307,41.7193000900063,0,57,-59,0,-41.7193000900063,41.719300090006307,-57,0,0,-59,-41.719300090006314,-41.7193000900063,0,-57,41.719300090006293,-41.719300090006314,63,0,0,63,61,0,44.547727214752499,44.547727214752491,0,61,-63,0,-44.547727214752491,44.547727214752499,-61,0,0,-63,-44.547727214752506,-44.547727214752491,0,-61,44.547727214752484,-44.547727214752506,67,0,0,67,65,0,47.37615433949869,47.376154339498683,0,65,-67,0,-47.376154339498683,47.37615433949869,-65,0,0,-67,-47.376154339498697,-47.376154339498683,0,-65,47.376154339498676,-47.376154339498697,71,0,0,71,69,0,50.204581464244875,50.204581464244868,0,69,-71,0,-50.204581464244868,50.204581464244875,-69,0,0,-71,-50.204581464244889,-50.204581464244868,0,-69,50.20458146424486,-50.204581464244889,75,0,0,75,73,0,53.033008588991066,53.033008588991059,0,73,-75,0,-53.033008588991059,53.033008588991066,-73,0,0,-75,-53.033008588991073,-53.033008588991059,0,-73,53.033008588991052,-53.033008588991073,80,0,0,80,77.5,0,56.568542494923804,56.568542494923797,0,77.5,-80,0,-56.568542494923797,56.568542494923804,-77.5,0,0,-80,-56.568542494923818,-56.568542494923797,0,-77.5,56.56854249492379,-56.568542494923818],188,2)
10306 conn=DataArrayInt.New([8,0,1,2,3,4,5,6,7,8,3,2,8,9,6,10,11,12,8,9,8,13,14,11,15,16,17,8,14,13,1,0,16,18,4,19,8,1,20,21,2,22,23,24,5,8,2,21,25,8,24,26,27,10,8,8,25,28,13,27,29,30,15,8,13,28,20,1,30,31,22,18,8,20,32,33,21,34,35,36,23,8,21,33,37,25,36,38,39,26,8,25,37,40,28,39,41,42,29,8,28,40,32,20,42,43,34,31,8,32,44,45,33,46,47,48,35,8,33,45,49,37,48,50,51,38,8,37,49,52,40,51,53,54,41,8,40,52,44,32,54,55,46,43,8,44,56,57,45,58,59,60,47,8,45,57,61,49,60,62,63,50,8,49,61,64,52,63,65,66,53,8,52,64,56,44,66,67,58,55,8,56,68,69,57,70,71,72,59,8,57,69,73,61,72,74,75,62,8,61,73,76,64,75,77,78,65,8,64,76,68,56,78,79,70,67,8,68,80,81,69,82,83,84,71,8,69,81,85,73,84,86,87,74,8,73,85,88,76,87,89,90,77,8,76,88,80,68,90,91,82,79,8,80,92,93,81,94,95,96,83,8,81,93,97,85,96,98,99,86,8,85,97,100,88,99,101,102,89,8,88,100,92,80,102,103,94,91,8,92,104,105,93,106,107,108,95,8,93,105,109,97,108,110,111,98,8,97,109,112,100,111,113,114,101,8,100,112,104,92,114,115,106,103,8,104,116,117,105,118,119,120,107,8,105,117,121,109,120,122,123,110,8,109,121,124,112,123,125,126,113,8,112,124,116,104,126,127,118,115,8,116,128,129,117,130,131,132,119,8,117,129,133,121,132,134,135,122,8,121,133,136,124,135,137,138,125,8,124,136,128,116,138,139,130,127,8,128,140,141,129,142,143,144,131,8,129,141,145,133,144,146,147,134,8,133,145,148,136,147,149,150,137,8,136,148,140,128,150,151,142,139,8,140,152,153,141,154,155,156,143,8,141,153,157,145,156,158,159,146,8,145,157,160,148,159,161,162,149,8,148,160,152,140,162,163,154,151,8,152,164,165,153,166,167,168,155,8,153,165,169,157,168,170,171,158,8,157,169,172,160,171,173,174,161,8,160,172,164,152,174,175,166,163,8,164,176,177,165,178,179,180,167,8,165,177,181,169,180,182,183,170,8,169,181,184,172,183,185,186,173,8,172,184,176,164,186,187,178,175],540)
10307 connI=DataArrayInt.New([0,9,18,27,36,45,54,63,72,81,90,99,108,117,126,135,144,153,162,171,180,189,198,207,216,225,234,243,252,261,270,279,288,297,306,315,324,333,342,351,360,369,378,387,396,405,414,423,432,441,450,459,468,477,486,495,504,513,522,531,540],61)
10309 m1=MEDCouplingUMesh.New("Fix",2);
10310 m1.setCoords(coords);
10311 m1.setConnectivity(conn,connI,True);
10313 coords=DataArrayDouble([46.5,-2.5,53.5,-2.5,53.5,2.5,46.5,2.5,50,-2.5,53.5,0,50,2.5,46.5,0,60.5,-2.5,60.5,2.5,57,-2.5,60.5,0,57,2.5,53.5,7.5,46.5,7.5,53.5,5,50,7.5,46.5,5,60.5,7.5,60.5,5,57,7.5,-2,47,2,47,2,53,-2,53,0,47,2,50,0,53,-2,50,6,47,6,53,4,47,6,50,4,53,2,59,-2,59,2,56,0,59,-2,56,6,59,6,56,4,59],42,2)
10315 conn=DataArrayInt([8,0,1,2,3,4,5,6,7,8,1,8,9,2,10,11,12,5,8,3,2,13,14,6,15,16,17,8,2,9,18,13,12,19,20,15,8,21,22,23,24,25,26,27,28,8,22,29,30,23,31,32,33,26,8,24,23,34,35,27,36,37,38,8,23,30,39,34,33,40,41,36],72);
10317 connI=DataArrayInt([0,9,18,27,36,45,54,63,72],9)
10318 m2=MEDCouplingUMesh.New("Mobile",2);
10319 m2.setCoords(coords);
10320 m2.setConnectivity(conn,connI,True);
10322 m3,d1,d2=MEDCouplingUMesh.Intersect2DMeshes(m1,m2,1e-10);
10323 self.assertEqual(105,m3.getNumberOfCells());
10324 self.assertEqual(105,d1.getNumberOfTuples());
10325 self.assertEqual(105,d2.getNumberOfTuples());
10326 self.assertEqual(704,m3.getNumberOfNodes());
10328 areaExpected=[-65.18804756198824,-65.18804756198824,-65.18804756198824,-65.18804756198824,-66.75884388878285,-66.75884388878285,-66.7588438887833,-66.75884388878308,-68.32964021557768,-68.32964021557768,-68.32964021557814,-68.32964021557791,-69.9004365423732,-69.9004365423732,-69.90043654237297,-69.90043654237297,-1.194568659706448,-1.0869994447159463,-142.2316939607081,-144.51326206513068,-144.5132620651309,-1.1945686597064424,-143.3186934054243,-5.002264310862817,-10.0261332846393,-3.9727823117092953,-7.290862524642649,-124.504404940456,-3.9727823117093237,-146.82366506060032,-150.79644737231024,-5.002264310862776,-145.79418306144626,-5.00208651738126,-10.054764051268958,-4.001067863263231,-8.027932154428669,-129.99378209314813,-4.001067863263216,-153.07856481622616,-157.0796326794898,-5.0020865173811915,-152.07754616210832,-5.001928880064381,-10.050590216368969,-4.00098721602491,-8.025810856794209,-136.28350081741684,-4.000987216024939,-159.36183077064402,-163.36281798667005,-5.0019288800643285,-158.36088910660442,-1.2991516319851801,-3.702636830195414,-3.7815130030068254,-6.265364371195623,-0.02516260900254963,-0.6553944641345026,-3.975752765070567,-7.368528340442765,-142.57249927881398,-0.02516260900254963,-3.9757527650706095,-165.64508791977525,-169.64600329384803,-1.299151631985167,-3.7026368301953885,-164.6442148316677,-10.00321285677458,-20.08414323176165,-8.001644468035863,-16.042954878437143,-304.0096070742277,-8.00164446803587,-350.1399180412005,-358.1415625092368,-10.003212856774468,-348.13834965246224,-3.794150313030109,-8.65049239704272,-0.02260276689354157,-0.5885167811200915,-370.2185414798688,-0.022602766893559393,-383.2517009710623,-383.2743037379555,-3.7941503130300576,-379.48015342492505,-408.40704496667513,-408.4070449666742,-408.4070449666742,-408.4070449666742,-433.53978619538975,-433.5397861953902,-433.5397861953911,-433.53978619539066,-458.67252742410983,-458.6725274241094,-458.67252742410983,-458.6725274241089,-608.6835766330232,-608.6835766330232,-608.6835766330232,-608.6835766330241]
10329 expected1=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,16,16,17,18,19,19,20,20,20,20,20,21,21,22,23,23,24,24,24,24,24,25,25,26,27,27,28,28,28,28,28,29,29,30,31,31,32,32,32,32,32,32,32,32,32,33,33,33,34,35,35,35,36,36,36,36,36,37,37,38,39,39,40,40,40,40,40,41,41,42,43,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59]
10330 expected2=[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,2,-1,-1,-1,0,-1,0,2,4,5,-1,4,-1,-1,0,-1,0,2,4,5,-1,4,-1,-1,0,-1,0,2,4,5,-1,4,-1,-1,0,-1,0,1,2,3,4,5,6,7,-1,4,6,-1,-1,0,1,-1,1,3,6,7,-1,6,-1,-1,1,-1,1,3,6,7,-1,6,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1]
10331 f3=m3.getMeasureField(ON_CELLS).getArray().getValues();
10332 for i in xrange(105):
10333 self.assertAlmostEqual(areaExpected[i],f3[i],10)
10335 self.assertEqual(expected1,d1.getValues())
10336 self.assertEqual(expected2,d2.getValues())
10339 def testDAIBuildUnique1(self):
10340 d=DataArrayInt([1,2,2,3,3,3,3,4,5,5,7,7,7,19])
10342 self.assertTrue(e.isEqual(DataArrayInt([1,2,3,4,5,7,19])))
10345 def testDAIPartitionByDifferentValues1(self):
10346 d=DataArrayInt([1,0,1,2,0,2,2,-3,2])
10347 expected=[[-3,[7]],[0,[1,4]],[1,[0,2]],[2,[3,5,6,8]]]
10348 for i,elt in enumerate(zip(*d.partitionByDifferentValues())):
10349 self.assertEqual(expected[i][0],elt[1])
10350 self.assertEqual(expected[i][1],elt[0].getValues())
10354 def testFieldGaussMultiDiscPerType1(self):
10355 coords=DataArrayDouble([0.,0.,0.,1.,1.,1.,1.,0.,0.,0.5,0.5,1.,1.,0.5,0.5,0.],8,2)
10356 mQ8=MEDCouplingUMesh("",2) ; mQ8.setCoords(coords)
10357 mQ8.allocateCells(1)
10358 mQ8.insertNextCell(NORM_QUAD8,range(8))
10359 mQ8.finishInsertingCells()
10360 mQ4=MEDCouplingUMesh("",2) ; mQ4.setCoords(coords)
10361 mQ4.allocateCells(1)
10362 mQ4.insertNextCell(NORM_QUAD4,range(4))
10363 mQ4.finishInsertingCells()
10364 mT3=MEDCouplingUMesh("",2) ; mT3.setCoords(coords)
10365 mT3.allocateCells(1)
10366 mT3.insertNextCell(NORM_TRI3,range(3))
10367 mT3.finishInsertingCells()
10369 tr=[[0.,0.],[2.,0.], [0.,2.],[2.,2.],[4.,2.],[6.,2.],[8.,2.],[10.,2.],[12.,2.],[0.,4.],[2.,4.],[4.,4.],[6.,4.],[8.,4.],[10.,4.],[12.,4.],[14.,4.],[16.,4.],[18.,4.],[20.,4.],[22.,4.]]
10370 ms=2*[mQ4]+7*[mQ8]+11*[mT3]
10371 ms[:]=(elt.deepCpy() for elt in ms)
10372 for m,t in zip(ms,tr):
10373 d=m.getCoords() ; d+= t
10375 m=MEDCouplingUMesh.MergeUMeshes(ms)
10376 f=MEDCouplingFieldDouble.New(ON_GAUSS_PT,NO_TIME)
10378 # throw because cell 0,1 are QUAD4 and cell 3 is QUAD8
10379 self.assertRaises(InterpKernelException,f.setGaussLocalizationOnCells,[0,1,3],[0.,0.,1.,0.,1.,1.,0.,1.],[0.3,0.3,0.7,0.7],[0.8,0.2])
10380 f.setGaussLocalizationOnCells([0,1],[0.,0.,1.,0.,1.,1.,0.,1.],[0.3,0.3,0.7,0.7],[0.8,0.2])
10381 f.setGaussLocalizationOnCells([3,2,5],[0.,0.,1.,0.,1.,1.,0.,1.,0.5,0.,1.,0.5,0.5,1.,0.,0.5],[0.3,0.3,0.7,0.7,0.9,0.9],[0.8,0.05,0.15])
10382 f.setGaussLocalizationOnCells([4,6,8,7],[0.,0.,1.,0.,1.,1.,0.,1.,0.5,0.,1.,0.5,0.5,1.,0.,0.5],[0.3,0.3,0.7,0.7,0.9,0.9,-0.1,0.3],[0.7,0.05,0.15,0.1])
10383 f.setGaussLocalizationOnCells([9,10,11,12,13],[0.,0.,1.,0.,1.,1.],[0.4,0.4],[1.])
10384 f.setGaussLocalizationOnCells([14,15,16,17,18,19],[0.,0.,1.,0.,1.,1.],[0.4,0.4,0.14,0.16],[0.22,0.78])
10385 self.assertEqual(46,f.getNumberOfTuplesExpected())
10386 vals=DataArrayDouble.New(46*3,1) ; vals.iota(7.7) ; vals.rearrange(3)
10389 #f.getLocalizationOfDiscr()
10390 self.assertRaises(InterpKernelException,f.getGaussLocalizationIdOfOneType,NORM_QUAD8) #throw because several loc
10391 self.assertEqual([1,2],f.getGaussLocalizationIdsOfOneType(NORM_QUAD8))
10392 self.assertEqual([0,0,1,1,2,1,2,2,2,3,3,3,3,3,4,4,4,4,4,4],f.getDiscretization().getArrayOfDiscIds().getValues())
10394 fc.checkCoherency()
10395 self.assertTrue(DataArrayDouble([13.7,14.7,15.7,16.7,17.7,18.7,19.7,20.7,21.7,22.7,23.7,24.7,25.7,26.7,27.7,28.7,29.7,30.7,31.7,32.7,33.7,34.7,35.7,36.7,82.7,83.7,84.7,85.7,86.7,87.7,88.7,89.7,90.7,91.7,92.7,93.7],12,3).isEqual(fc.getArray(),1e-10))
10396 fc.renumberCells([3,2,0,1])
10397 self.assertTrue(DataArrayDouble([28.7, 29.7, 30.7, 31.7, 32.7, 33.7, 34.7, 35.7, 36.7, 82.7, 83.7, 84.7, 85.7, 86.7, 87.7, 88.7, 89.7, 90.7, 91.7, 92.7, 93.7, 19.7, 20.7, 21.7, 22.7, 23.7, 24.7, 25.7, 26.7, 27.7, 13.7, 14.7, 15.7, 16.7, 17.7, 18.7],12,3).isEqual(fc.getArray(),1e-10))
10401 def testSwigRotate(self):
10402 d=DataArrayDouble([1.,2.,3.,4.,6.,5.],2,3)
10403 MEDCouplingPointSet.Rotate3DAlg([0.,0.,0.],[0.,1.,0.],1.5707963267948966,d)
10404 self.assertTrue(d.isEqual(DataArrayDouble([3.,2.,-1.,5.,6.,-4.],2,3),1e-12))
10405 d=DataArrayDouble([1.,2.,3.,4.,6.,5.],3,2)
10406 MEDCouplingPointSet.Rotate2DAlg([0.,0.],1.5707963267948966,d)
10407 self.assertTrue(d.isEqual(DataArrayDouble([-2.,1.,-4.,3.,-5.,6.],3,2),1e-12))
10410 def testSwigCMeshProtection(self):
10411 cm=MEDCouplingCMesh()
10412 self.assertRaises(InterpKernelException,cm.setCoordsAt,0,DataArrayDouble([4.,4.5,6.,7.],2,2))
10413 self.assertRaises(InterpKernelException,cm.setCoords,DataArrayDouble([4.,4.5,6.,7.],2,2))
10416 def testSwigCellsInBoundingBox1(self):
10417 m3D=MEDCouplingDataForTest.build3DExtrudedUMesh_1()[0]
10418 self.assertTrue(m3D.getCellsInBoundingBox([(0,3),(0,3),(0,1)],-1e-12).isEqual(DataArrayInt([0,1,2,3,4,5])))
10419 self.assertRaises(InterpKernelException,m3D.getCellsInBoundingBox,[(0,3,0),(3,0,1)],-1e-12)
10422 def testDAICheckMonotonic1(self):
10423 data1=[-1,0,2,2,4,5]
10424 data2=[6,2,0,-8,-9,-56]
10425 data3=[-1,0,3,2,4,6]
10426 data4=[7,5,2,3,0,-6]
10427 d=DataArrayInt.New(data1);
10428 self.assertTrue(d.isMonotonic(True));
10429 self.assertTrue(not d.isMonotonic(False));
10430 d.checkMonotonic(True);
10431 self.assertRaises(InterpKernelException,d.checkMonotonic,False)
10432 d=DataArrayInt.New(data2);
10433 self.assertTrue(d.isMonotonic(False));
10434 self.assertTrue(not d.isMonotonic(True));
10435 d.checkMonotonic(False);
10436 self.assertRaises(InterpKernelException,d.checkMonotonic,True)
10437 d=DataArrayInt.New(data3);
10438 self.assertTrue(not d.isMonotonic(False));
10439 self.assertTrue(not d.isMonotonic(True));
10440 self.assertRaises(InterpKernelException,d.checkMonotonic,True)
10441 self.assertRaises(InterpKernelException,d.checkMonotonic,False)
10442 d=DataArrayInt.New(data4);
10443 self.assertTrue(not d.isMonotonic(False));
10444 self.assertTrue(not d.isMonotonic(True));
10445 self.assertRaises(InterpKernelException,d.checkMonotonic,True)
10446 self.assertRaises(InterpKernelException,d.checkMonotonic,False)
10447 d=DataArrayInt.New(0,1)
10448 self.assertTrue(d.isMonotonic(True));
10449 self.assertTrue(d.isMonotonic(False));
10450 d.checkMonotonic(True);
10451 d.checkMonotonic(False);
10452 d=DataArrayInt.New(data4,3,2);#throw because nbComp!=1
10453 self.assertRaises(InterpKernelException,d.isMonotonic,True)
10454 self.assertRaises(InterpKernelException,d.isMonotonic,False)
10455 self.assertRaises(InterpKernelException,d.checkMonotonic,True)
10456 self.assertRaises(InterpKernelException,d.checkMonotonic,False)
10459 def testSwigDASetItemOnEmpty1(self):
10460 d=DataArrayInt(0,1)
10464 except InterpKernelException as e:
10467 self.assertTrue(isThrow)
10471 d=DataArrayDouble(0,1)
10475 except InterpKernelException as e:
10478 self.assertTrue(isThrow)
10481 d=DataArrayInt([],0,1)
10483 self.assertTrue(d2.isEqual(d))
10484 d=DataArrayDouble([],0,1)
10485 d2=DataArrayDouble(0)
10486 self.assertTrue(d2.isEqual(d,1e-12))
10489 def testSwigDAITransformWithIndArr1(self):
10490 arr=DataArrayInt([0,4,5,1])
10491 d=DataArrayInt([7,8,9,10])
10492 self.assertRaises(InterpKernelException,arr.transformWithIndArr,d)
10495 def testIntersect2DMeshesTmp6(self):
10497 coords=DataArrayDouble.New([2.7554552980815448e-15,45,-45,5.5109105961630896e-15,-31.819805153394636,31.81980515339464,2.8779199779962799e-15,47,2.8166876380389124e-15,46,-47,5.7558399559925599e-15,-33.234018715767732,33.234018715767739,-46,5.6333752760778247e-15],8,2);
10499 conn=DataArrayInt.New([8,0,3,5,1,4,6,7,2])
10500 connI=DataArrayInt.New([0,9]);
10501 m1=MEDCouplingUMesh.New("Fixe",2);
10502 m1.setCoords(coords);
10503 m1.setConnectivity(conn,connI,True);
10505 coords=DataArrayDouble.New([-7.3800475508445391,41.854329503018846,-3.7041190667754655,42.338274668899189,-3.7041190667754655,45.338274668899189,-7.3800475508445382,44.854329503018839,-5.5473631693521845,42.136406608386956,-3.7041190667754655,43.838274668899189,-5.5420833088100014,45.09630208595901,-7.3800475508445382,43.354329503018839,-3.7041190667754651,52.338274668899189,-7.3800475508445382,51.854329503018839,-3.7041190667754655,48.838274668899189,-5.5420833088100014,52.09630208595901,-7.3800475508445382,48.354329503018839],13,2);
10507 conn=DataArrayInt.New([8,0,1,2,3,4,5,6,7,8,3,2,8,9,6,10,11,12]);
10508 connI=DataArrayInt.New([0,9,18]);
10510 m2=MEDCouplingUMesh.New("Mobile",2);
10511 m2.setCoords(coords);
10512 m2.setConnectivity(conn,connI,True);
10514 m3,d1,d2=MEDCouplingUMesh.Intersect2DMeshes(m1,m2,1e-10);
10515 self.assertTrue(d1.isEqual(DataArrayInt([0,0,0,0])));
10516 self.assertTrue(d2.isEqual(DataArrayInt([0,1,-1,-1])));
10517 self.assertEqual(4,m3.getNumberOfCells());
10518 self.assertEqual(4,d1.getNumberOfTuples());
10519 self.assertEqual(4,d2.getNumberOfTuples());
10520 self.assertEqual(43,m3.getNumberOfNodes());
10521 dI,areMerged,newNbOfNodes=m3.mergeNodes(1e-12)
10522 self.assertEqual(35,m3.getNumberOfNodes());
10524 self.assertEqual(23,m3.getNumberOfNodes());
10526 f=m3.getMeasureField(True);
10527 valuesExpected=DataArrayDouble([1.6603638692585716,5.747555728471923,129.68907101754394,7.4162714498559694])
10528 self.assertTrue(f.getArray().isEqual(valuesExpected,1e-12))
10531 def testDAPushBack(self):
10532 d=DataArrayDouble(0,1)
10533 for i in xrange(8):
10534 d.pushBackSilent(i)
10536 self.assertEqual(d.getNumberOfTuples(),8)
10537 self.assertEqual(d.getNbOfElemAllocated(),8)
10538 d.pushBackSilent(4.44)
10539 self.assertEqual(d.getNumberOfTuples(),9)
10540 self.assertEqual(d.getNbOfElemAllocated(),16)
10541 self.assertTrue(d.isEqual(DataArrayDouble([0.,1.,2.,3.,4.,5.,6.,7.,4.44]),1e-12))
10543 self.assertEqual(e.getNumberOfTuples(),9)
10544 self.assertEqual(e.getNbOfElemAllocated(),9)
10545 self.assertTrue(e.isEqual(DataArrayDouble([0.,1.,2.,3.,4.,5.,6.,7.,4.44]),1e-12))
10546 self.assertAlmostEqual(d.popBackSilent(),4.44,12)
10547 self.assertEqual(d.getNumberOfTuples(),8)
10548 self.assertEqual(d.getNbOfElemAllocated(),16)
10549 self.assertTrue(d.isEqual(DataArrayDouble([0.,1.,2.,3.,4.,5.,6.,7.]),1e-12))
10550 f=DataArrayDouble()
10552 f.pushBackSilent(4.)
10553 self.assertTrue(f.isEqual(DataArrayDouble([4.]),1e-12))
10554 self.assertEqual(f.getNumberOfTuples(),1)
10555 self.assertEqual(f.getNbOfElemAllocated(),1000)
10557 self.assertTrue(ff.isEqual(DataArrayDouble([4.]),1e-12))
10558 self.assertEqual(ff.getNumberOfTuples(),1)
10559 self.assertEqual(ff.getNbOfElemAllocated(),1)
10560 d=DataArrayDouble()
10561 d.pushBackSilent(4.44)
10562 d.pushBackSilent(5.55)
10563 d.pushBackSilent(6.66)
10564 self.assertTrue(d.isEqual(DataArrayDouble([4.44,5.55,6.66]),1e-12))
10566 d=DataArrayInt(0,1)
10567 for i in xrange(8):
10568 d.pushBackSilent(i)
10570 self.assertEqual(d.getNumberOfTuples(),8)
10571 self.assertEqual(d.getNbOfElemAllocated(),8)
10572 d.pushBackSilent(444)
10573 self.assertEqual(d.getNumberOfTuples(),9)
10574 self.assertEqual(d.getNbOfElemAllocated(),16)
10575 self.assertTrue(d.isEqual(DataArrayInt([0,1,2,3,4,5,6,7,444])))
10577 self.assertEqual(e.getNumberOfTuples(),9)
10578 self.assertEqual(e.getNbOfElemAllocated(),9)
10579 self.assertTrue(e.isEqual(DataArrayInt([0,1,2,3,4,5,6,7,444])))
10580 self.assertEqual(d.popBackSilent(),444)
10581 self.assertEqual(d.getNumberOfTuples(),8)
10582 self.assertEqual(d.getNbOfElemAllocated(),16)
10583 self.assertTrue(d.isEqual(DataArrayInt([0,1,2,3,4,5,6,7])))
10586 f.pushBackSilent(4)
10587 self.assertTrue(f.isEqual(DataArrayInt([4])))
10588 self.assertEqual(f.getNumberOfTuples(),1)
10589 self.assertEqual(f.getNbOfElemAllocated(),1000)
10591 self.assertTrue(ff.isEqual(DataArrayInt([4])))
10592 self.assertEqual(ff.getNumberOfTuples(),1)
10593 self.assertEqual(ff.getNbOfElemAllocated(),1)
10595 d.pushBackSilent(444)
10596 d.pushBackSilent(555)
10597 d.pushBackSilent(666)
10598 self.assertTrue(d.isEqual(DataArrayInt([444,555,666])))
10602 d.setInfoOnComponent(0,"ABC")
10605 e=DataArrayInt([7,8,9,10,11,12,13,14,15,16]) ; e.copyStringInfoFrom(d) ; self.assertTrue(d.isEqual(e))
10606 self.assertEqual(10,d.getNbOfElemAllocated())
10607 d.pushBackSilent(55)
10608 e=DataArrayInt([7,8,9,10,11,12,13,14,15,16,55]) ; e.copyStringInfoFrom(d) ; self.assertTrue(d.isEqual(e))
10609 self.assertEqual(20,d.getNbOfElemAllocated())
10611 e=DataArrayInt([7,8,9,10]) ; e.copyStringInfoFrom(d) ; self.assertTrue(d.isEqual(e))
10612 self.assertEqual(4,d.getNbOfElemAllocated())
10613 d.pushBackSilent(5)
10614 e=DataArrayInt([7,8,9,10,5]) ; e.copyStringInfoFrom(d) ; self.assertTrue(d.isEqual(e))
10615 self.assertEqual(8,d.getNbOfElemAllocated())
10616 self.assertEqual(5,d.popBackSilent())
10617 e=DataArrayInt([7,8,9,10]) ; e.copyStringInfoFrom(d) ; self.assertTrue(d.isEqual(e))
10618 self.assertEqual(8,d.getNbOfElemAllocated())
10619 self.assertRaises(InterpKernelException,d.reserve,-1)
10620 e=DataArrayInt([7,8,9,10]) ; e.copyStringInfoFrom(d) ; self.assertTrue(d.isEqual(e))
10621 self.assertEqual(8,d.getNbOfElemAllocated())
10623 e=DataArrayInt([]) ; e.setInfoOnComponent(0,"ABC") ; e.setName("dEf") ; self.assertTrue(d.isEqual(e))
10624 self.assertEqual(0,d.getNbOfElemAllocated())
10626 d=DataArrayDouble()
10628 d.setInfoOnComponent(0,"ABC")
10631 e=DataArrayDouble([7,8,9,10,11,12,13,14,15,16]) ; e.copyStringInfoFrom(d) ; self.assertTrue(d.isEqual(e,1e-14))
10632 self.assertEqual(10,d.getNbOfElemAllocated())
10633 d.pushBackSilent(55)
10634 e=DataArrayDouble([7,8,9,10,11,12,13,14,15,16,55]) ; e.copyStringInfoFrom(d) ; self.assertTrue(d.isEqual(e,1e-14))
10635 self.assertEqual(20,d.getNbOfElemAllocated())
10637 e=DataArrayDouble([7,8,9,10]) ; e.copyStringInfoFrom(d) ; self.assertTrue(d.isEqual(e,1e-14))
10638 self.assertEqual(4,d.getNbOfElemAllocated())
10639 d.pushBackSilent(5)
10640 e=DataArrayDouble([7,8,9,10,5]) ; e.copyStringInfoFrom(d) ; self.assertTrue(d.isEqual(e,1e-14))
10641 self.assertEqual(8,d.getNbOfElemAllocated())
10642 self.assertEqual(5.,d.popBackSilent())
10643 e=DataArrayDouble([7,8,9,10]) ; e.copyStringInfoFrom(d) ; self.assertTrue(d.isEqual(e,1e-14))
10644 self.assertEqual(8,d.getNbOfElemAllocated())
10645 self.assertRaises(InterpKernelException,d.reserve,-1)
10646 e=DataArrayDouble([7,8,9,10]) ; e.copyStringInfoFrom(d) ; self.assertTrue(d.isEqual(e,1e-14))
10647 self.assertEqual(8,d.getNbOfElemAllocated())
10649 e=DataArrayDouble([]) ; e.setInfoOnComponent(0,"ABC") ; e.setName("dEf") ; self.assertTrue(d.isEqual(e,1e-14))
10650 self.assertEqual(0,d.getNbOfElemAllocated())
10653 def testDAIBuildSubstractionOptimized1(self):
10654 da1=DataArrayInt.New([1,3,5,6,7,9,13])
10655 da2=DataArrayInt.New([3,5,9])
10656 da3=DataArrayInt.New([1,3,5])
10657 da4=DataArrayInt.New([1,3,5,6,7,9,13])
10659 a=da1.buildSubstractionOptimized(da2);
10660 self.assertTrue(a.isEqual(DataArrayInt([1,6,7,13])));
10662 a=da1.buildSubstractionOptimized(da3);
10663 self.assertTrue(a.isEqual(DataArrayInt([6,7,9,13])));
10665 a=da1.buildSubstractionOptimized(da4);
10666 self.assertTrue(a.isEqual(DataArrayInt([])));
10669 def testDAIIsStrictlyMonotonic1(self):
10670 da1=DataArrayInt.New([1,3,5,6,7,9,13])
10671 self.assertTrue(da1.isStrictlyMonotonic(True));
10672 da1.checkStrictlyMonotonic(True);
10673 self.assertTrue(da1.isMonotonic(True));
10674 da1.checkMonotonic(True);
10675 self.assertTrue(not da1.isStrictlyMonotonic(False));
10676 self.assertRaises(InterpKernelException,da1.checkStrictlyMonotonic,False)
10677 self.assertTrue(not da1.isMonotonic(False));
10678 self.assertRaises(InterpKernelException,da1.checkMonotonic,False)
10680 da1=DataArrayInt.New([1,3,5,6,6,9,13])
10681 self.assertTrue(not da1.isStrictlyMonotonic(True));
10682 self.assertRaises(InterpKernelException,da1.checkStrictlyMonotonic,True)
10683 self.assertTrue(da1.isMonotonic(True));
10684 da1.checkMonotonic(True);
10685 self.assertTrue(not da1.isStrictlyMonotonic(False));
10686 self.assertRaises(InterpKernelException,da1.checkStrictlyMonotonic,False)
10687 self.assertTrue(not da1.isMonotonic(False));
10688 self.assertRaises(InterpKernelException,da1.checkMonotonic,False)
10690 da1=DataArrayInt.New([1,3,5,6,5,9,13])
10691 self.assertTrue(not da1.isStrictlyMonotonic(True));
10692 self.assertRaises(InterpKernelException,da1.checkStrictlyMonotonic,True)
10693 self.assertTrue(not da1.isMonotonic(True));
10694 self.assertRaises(InterpKernelException,da1.checkMonotonic,True)
10695 self.assertTrue(not da1.isStrictlyMonotonic(False));
10696 self.assertRaises(InterpKernelException,da1.checkStrictlyMonotonic,False)
10697 self.assertTrue(not da1.isMonotonic(False));
10698 self.assertRaises(InterpKernelException,da1.checkMonotonic,False)
10700 da1=DataArrayInt.New([13,9,7,6,5,3,1])
10701 self.assertTrue(not da1.isStrictlyMonotonic(True));
10702 self.assertRaises(InterpKernelException,da1.checkStrictlyMonotonic,True)
10703 self.assertTrue(not da1.isMonotonic(True));
10704 self.assertRaises(InterpKernelException,da1.checkMonotonic,True)
10705 self.assertTrue(da1.isStrictlyMonotonic(False));
10706 da1.checkStrictlyMonotonic(False);
10707 self.assertTrue(da1.isMonotonic(False));
10708 da1.checkMonotonic(False);
10710 da1=DataArrayInt.New([13,9,6,6,5,3,1])
10711 self.assertTrue(not da1.isStrictlyMonotonic(True));
10712 self.assertRaises(InterpKernelException,da1.checkStrictlyMonotonic,True)
10713 self.assertTrue(not da1.isMonotonic(True));
10714 self.assertRaises(InterpKernelException,da1.checkMonotonic,True)
10715 self.assertTrue(not da1.isStrictlyMonotonic(False));
10716 self.assertRaises(InterpKernelException,da1.checkStrictlyMonotonic,False)
10717 self.assertTrue(da1.isMonotonic(False));
10718 da1.checkMonotonic(False);
10720 da1=DataArrayInt.New([13,9,5,6,5,3,1])
10721 self.assertTrue(not da1.isStrictlyMonotonic(True));
10722 self.assertRaises(InterpKernelException,da1.checkStrictlyMonotonic,True)
10723 self.assertTrue(not da1.isMonotonic(True));
10724 self.assertRaises(InterpKernelException,da1.checkMonotonic,True)
10725 self.assertTrue(not da1.isStrictlyMonotonic(False));
10726 self.assertRaises(InterpKernelException,da1.checkStrictlyMonotonic,False)
10727 self.assertTrue(not da1.isMonotonic(False));
10728 self.assertRaises(InterpKernelException,da1.checkMonotonic,False)
10730 da1=DataArrayInt.New([])
10731 self.assertTrue(da1.isStrictlyMonotonic(True));
10732 da1.checkStrictlyMonotonic(True);
10733 self.assertTrue(da1.isMonotonic(True));
10734 da1.checkMonotonic(True);
10735 self.assertTrue(da1.isStrictlyMonotonic(False));
10736 da1.checkStrictlyMonotonic(False);
10737 self.assertTrue(da1.isMonotonic(False));
10738 da1.checkMonotonic(False);
10740 da1=DataArrayInt.New([13])
10741 self.assertTrue(da1.isStrictlyMonotonic(True));
10742 da1.checkStrictlyMonotonic(True);
10743 self.assertTrue(da1.isMonotonic(True));
10744 da1.checkMonotonic(True);
10745 self.assertTrue(da1.isStrictlyMonotonic(False));
10746 da1.checkStrictlyMonotonic(False);
10747 self.assertTrue(da1.isMonotonic(False));
10748 da1.checkMonotonic(False);
10751 def testFindAndCorrectBadOriented3DCells1(self):
10753 vects=([0,0,-1],[0.3,0.7,0.2],[-0.3,0.7,0.2],[-0.3,-0.7,0.2])
10755 m0=MEDCouplingUMesh("m",3) ; m0.allocateCells(0); m0.insertNextCell(NORM_TETRA4,[0,1,2,3]); #Well oriented
10756 m1=MEDCouplingUMesh("m",3) ; m1.allocateCells(0); m1.insertNextCell(NORM_PYRA5,[0,1,2,3,4]); #Well oriented
10757 m2=MEDCouplingUMesh("m",3) ; m2.allocateCells(0); m2.insertNextCell(NORM_PENTA6,[0,1,2,3,4,5]); #Well oriented
10758 m3=MEDCouplingUMesh("m",3) ; m3.allocateCells(0); m3.insertNextCell(NORM_HEXA8,[0,1,2,3,4,5,6,7]); #Well oriented
10759 m4=MEDCouplingUMesh("m",3) ; m4.allocateCells(0)
10760 self.assertRaises(InterpKernelException,m4.insertNextCell,NORM_HEXGP12,[0,1,2,3,4,5,6,7,8,9,10,11,12]);
10761 m4.insertNextCell(NORM_HEXGP12,[0,1,2,3,4,5,6,7,8,9,10,11]); #Well oriented
10762 c0=DataArrayDouble([0.,0.,0.,0.,1.,0.,1.,0.,0.,0.,0.,1.],4,3) ; m0.setCoords(c0)
10763 c1=DataArrayDouble([0.,0.,0.,0.,1.,0.,1.,1.,0.,1.,0.,0.,0.,0.,1.],5,3) ; m1.setCoords(c1)
10764 c2=DataArrayDouble([0.,0.,0.,0.,1.,0.,1.,0.,0., 0.,0.,1.,0.,1.,1.,1.,0.,1.],6,3) ; m2.setCoords(c2)
10765 c3=DataArrayDouble([0.,0.,0.,0.,1.,0.,1.,1.,0.,1.,0.,0.,0.,0.,1.,0.,1.,1.,1.,1.,1.,1.,0.,1.],8,3) ; m3.setCoords(c3)
10766 c4=DataArrayDouble([0.,0.,0.,0.,1.,0.,1.,1.,0.,1.,0.,0.,0.8,0.,0.,0.45,0.,0., 0.,0.,1.,0.,1.,1.,1.,1.,1.,1.,0.,1.,0.8,0.,1.,0.45,0.,1.],12,3) ; m4.setCoords(c4)
10767 m=MEDCouplingMesh.MergeMeshes([m0,m1,m2,m3,m4])
10768 expected1=DataArrayDouble([0.16666666666666666,0.3333333333333333,0.5,1.,1.])
10770 for i in xrange(nbOfDisc):
10772 mm.rotate([0.,0.,0.],[0.3,0.7,0.2],float(i)/float(nbOfDisc)*2*pi)
10774 self.assertTrue(mm.getMeasureField(False).getArray().isEqual(expected1,1e-14))
10775 self.assertTrue(mm.findAndCorrectBadOriented3DCells().empty())
10776 self.assertTrue(mm.isEqual(mm2,1e-14))
10777 self.assertTrue(mm.getMeasureField(False).getArray().isEqual(expected1,1e-14))
10778 mm.convertAllToPoly()
10779 self.assertTrue(mm.getMeasureField(False).getArray().isEqual(expected1,1e-14))
10784 m0=MEDCouplingUMesh("m",3) ; m0.allocateCells(0); m0.insertNextCell(NORM_TETRA4,[0,2,1,3]); #Not well oriented
10785 m1=MEDCouplingUMesh("m",3) ; m1.allocateCells(0); m1.insertNextCell(NORM_PYRA5,[0,1,2,3,4]); #Well oriented
10786 m2=MEDCouplingUMesh("m",3) ; m2.allocateCells(0); m2.insertNextCell(NORM_PENTA6,[0,1,2,3,4,5]); #Well oriented
10787 m3=MEDCouplingUMesh("m",3) ; m3.allocateCells(0); m3.insertNextCell(NORM_HEXA8,[0,3,2,1,4,7,6,5]); #Not well oriented
10788 m4=MEDCouplingUMesh("m",3) ; m4.allocateCells(0); m4.insertNextCell(NORM_HEXGP12,[0,5,4,3,2,1,6,11,10,9,8,7]); #Not well oriented
10789 m0.setCoords(c0) ; m1.setCoords(c1) ; m2.setCoords(c2) ; m3.setCoords(c3) ; m4.setCoords(c4)
10790 m=MEDCouplingMesh.MergeMeshes([m0,m1,m2,m3,m4])
10791 expected2=DataArrayDouble([-0.16666666666666666,0.3333333333333333,0.5,-1.,-1.])
10793 for i in xrange(nbOfDisc):
10795 mm.rotate([0.,0.,0.],[0.3,0.7,0.2],float(i)/float(nbOfDisc)*2*pi)
10796 mm2=mm.deepCpy() ; mm3=mm.deepCpy() ; mm3.convertAllToPoly()
10797 self.assertTrue(mm3.getMeasureField(False).getArray().isEqual(expected2,1e-14))
10798 self.assertTrue(mm.getMeasureField(False).getArray().isEqual(expected2,1e-14))
10799 self.assertTrue(mm.findAndCorrectBadOriented3DCells().isEqual(DataArrayInt([0,3,4])))
10800 mOK.setCoords(mm.getCoords())
10801 self.assertTrue(mm.isEqual(mOK,1e-14))
10802 self.assertTrue(mm.getMeasureField(False).getArray().isEqual(expected1,1e-14))
10804 self.assertTrue(mmm.findAndCorrectBadOriented3DCells().empty())
10805 mm.convertAllToPoly()
10806 self.assertTrue(mm.getMeasureField(False).getArray().isEqual(expected1,1e-14))
10810 m0=MEDCouplingUMesh("m",3) ; m0.allocateCells(0); m0.insertNextCell(NORM_TETRA4,[0,1,2,3]); #Well oriented
10811 m1=MEDCouplingUMesh("m",3) ; m1.allocateCells(0); m1.insertNextCell(NORM_PYRA5,[0,3,2,1,4]); #Not well oriented
10812 m2=MEDCouplingUMesh("m",3) ; m2.allocateCells(0); m2.insertNextCell(NORM_PENTA6,[0,2,1,3,5,4]); #Not well oriented
10813 m3=MEDCouplingUMesh("m",3) ; m3.allocateCells(0); m3.insertNextCell(NORM_HEXA8,[0,1,2,3,4,5,6,7]); #Well oriented
10814 m4=MEDCouplingUMesh("m",3) ; m4.allocateCells(0); m4.insertNextCell(NORM_HEXGP12,range(12)); #Well oriented
10815 m0.setCoords(c0) ; m1.setCoords(c1) ; m2.setCoords(c2) ; m3.setCoords(c3) ; m4.setCoords(c4)
10816 m=MEDCouplingMesh.MergeMeshes([m0,m1,m2,m3,m4])
10817 expected3=DataArrayDouble([0.16666666666666666,-0.3333333333333333,-0.5,1.,1.])
10819 for i in xrange(nbOfDisc):
10821 mm.rotate([0.,0.,0.],[0.3,0.7,0.2],float(i)/float(nbOfDisc)*2*pi)
10822 mm2=mm.deepCpy() ; mm3=mm.deepCpy() ; mm3.convertAllToPoly()
10823 self.assertTrue(mm3.getMeasureField(False).getArray().isEqual(expected3,1e-14))
10824 self.assertTrue(mm.getMeasureField(False).getArray().isEqual(expected3,1e-14))
10825 self.assertTrue(mm.findAndCorrectBadOriented3DCells().isEqual(DataArrayInt([1,2])))
10826 mOK.setCoords(mm.getCoords())
10827 self.assertTrue(mm.isEqual(mOK,1e-14))
10828 self.assertTrue(mm.getMeasureField(False).getArray().isEqual(expected1,1e-14))
10830 self.assertTrue(mmm.findAndCorrectBadOriented3DCells().empty())
10831 mm.convertAllToPoly()
10832 self.assertTrue(mm.getMeasureField(False).getArray().isEqual(expected1,1e-14))
10837 def testSwig2CellOrientation1(self):
10838 coords=DataArrayDouble([-0.21606,-0.10803,0.29999999999999999,-0.21606,-0.10803,0.37700000000000006,0,-0.10803,0.29999999999999999,0,-0.10803,0.37700000000000006,0,0.10803,0.29999999999999999,0,0.10803,0.37700000000000006,-0.21606,0.10803,0.29999999999999999,-0.21606,0.10803,0.37700000000000006,0,0.03601,0.29999999999999999,0,0.03601,0.37700000000000006,0,-0.03601,0.29999999999999999,0,-0.03601,0.37700000000000006],12,3)
10839 conn=[[0,2,10,8,4,6],[1,3,11,9,5,7],[0,1,3,2],[2,3,11,10],[10,11,9,8],[8,9,5,4],[4,5,7,6],[6,7,1,0]]
10840 for i in xrange(256):
10841 mesh=MEDCouplingUMesh("FluidMesh_1",3);
10842 mesh.allocateCells(0)
10843 conn2=[elt[:] for elt in conn]
10844 code=bin(i)[2:] ; code='0'*(8-len(code))+code
10845 for face,rev in zip(conn2,code):
10850 conn3=[elt+[-1] for elt in conn2]
10851 conn3=sum(conn3,[])[:-1]
10852 mesh.insertNextCell(NORM_POLYHED,conn3)
10853 mesh.setCoords(coords)
10854 mesh.orientCorrectlyPolyhedrons()
10855 self.assertTrue(mesh.getBarycenterAndOwner().isEqual(DataArrayDouble([-0.10803,0.,0.3385],1,3),1e-12))
10859 def testSwig2CheckConsecutiveCellTypesForMEDFileFrmt1(self):
10860 m1=MEDCouplingUMesh("",2) ; m1.allocateCells(0)
10861 m1.insertNextCell(NORM_QUAD4,[0,1,2,3])
10862 m1.insertNextCell(NORM_TRI3,[0,1,2])
10863 d=DataArrayDouble(4,3) ; d[:]=0.
10865 self.assertTrue(m1.checkConsecutiveCellTypes())
10866 self.assertTrue(not m1.checkConsecutiveCellTypesForMEDFileFrmt())
10867 m1.renumberCells([1,0])
10868 self.assertTrue(m1.checkConsecutiveCellTypes())
10869 self.assertTrue(m1.checkConsecutiveCellTypesForMEDFileFrmt())
10872 def testSwig2DAAccumulate1(self):
10873 d=DataArrayInt(10) ; d.iota(0)
10874 self.assertEqual([45],d.accumulate())
10875 self.assertEqual(45,d.accumulate(0))
10876 d=DataArrayInt(30) ; d.iota(0) ; d.rearrange(3)
10877 self.assertEqual([135,145,155],d.accumulate())
10878 self.assertEqual(135,d.accumulate(0))
10879 self.assertEqual(145,d.accumulate(1))
10880 self.assertEqual(155,d.accumulate(2))
10881 d=DataArrayDouble(10) ; d.iota(0.)
10882 self.assertEqual([45.],d.accumulate())
10883 self.assertEqual(45.,d.accumulate(0))
10884 d=DataArrayDouble(30) ; d.iota(0) ; d.rearrange(3)
10885 self.assertEqual([135.,145.,155.],d.accumulate())
10886 self.assertEqual(135.,d.accumulate(0))
10887 self.assertEqual(145.,d.accumulate(1))
10888 self.assertEqual(155.,d.accumulate(2))
10891 def testSwig2UMeshDistanceToMesh1(self):
10892 m=MEDCouplingUMesh("toto",2)
10893 coords=DataArrayDouble([2.3,3.4,5.6,6.5,-4.3,3.2,-9.8,7.6,-5.4],3,3)
10894 m.setCoords(coords)
10896 m.insertNextCell(NORM_TRI3,[0,1,2])
10897 a,b,c=m.distanceToPoint([-0.335,2.27,1.21])
10898 self.assertEqual(0,b) ; self.assertEqual(0,c)
10899 self.assertAlmostEqual(0.022360988100374124,a,14);
10900 a,b,c=m.distanceToPoint(DataArrayDouble([-0.335,2.27,1.21],1,3))
10901 self.assertEqual(0,b) ; self.assertEqual(0,c)
10902 self.assertAlmostEqual(0.022360988100374124,a,14);
10903 a,b=coords.distanceToTuple([-0.335,2.27,1.21])
10904 self.assertAlmostEqual(5.243302871282566,a,14)
10905 self.assertEqual(0,b)
10907 m=MEDCouplingUMesh("toto",2)
10908 coords=DataArrayDouble([0.,0.,0., 8.,0.,0., 8.,8.,0., 0.,8.,0.],4,3)
10909 m.setCoords(coords)
10911 m.insertNextCell(NORM_QUAD4,[0,1,2,3])
10912 m.checkCoherency2()
10913 self.assertEqual([4,0,1,2,3],m.getNodalConnectivity().getValues())
10914 a,b,c=m.distanceToPoint([5.,2.,0.1])
10915 self.assertAlmostEqual(0.1,a,14) ; self.assertEqual(0,b) ; self.assertEqual(1,c)
10916 a,b,c=m.distanceToPoint([5.,-2.,4.])
10917 self.assertAlmostEqual(sqrt(2*2+4*4),a,14) ; self.assertEqual(0,b) ; self.assertEqual(1,c)
10919 m.insertNextCell(NORM_POLYGON,[0,1,2,3])
10920 m.checkCoherency2()
10921 self.assertEqual([5,0,1,2,3],m.getNodalConnectivity().getValues())
10922 a,b,c=m.distanceToPoint([11.,3.,4.])
10923 self.assertAlmostEqual(sqrt(3*3+4*4),a,14) ; self.assertEqual(0,b) ; self.assertEqual(1,c)
10924 a,b,c=m.distanceToPoint([4.,12.,5.])
10925 self.assertAlmostEqual(sqrt(4*4+5*5),a,14) ; self.assertEqual(0,b) ; self.assertEqual(2,c)
10926 d=DataArrayDouble([-1.2,3.,2.],1,3)
10928 a,b,c=m.distanceToPoint(d)
10929 self.assertAlmostEqual(sqrt(1.2*1.2+2*2),a,14) ; self.assertEqual(0,b) ; self.assertEqual(0,c)
10932 m=MEDCouplingUMesh("toto",1)
10933 coords=DataArrayDouble([0.,0.,4.,0.,0.,4.],3,2) ; m.setCoords(coords)
10934 m.allocateCells(0) ; m.insertNextCell(NORM_SEG2,[0,1]) ; m.insertNextCell(NORM_SEG2,[1,2])
10935 a,b,c=m.distanceToPoint([-0.1,4.1])
10936 self.assertAlmostEqual(0.14142135623730925,a,14) ; self.assertEqual(-1,b) ; self.assertEqual(2,c)
10937 a,b,c=m.distanceToPoint([0.,3.9])
10938 self.assertAlmostEqual(0.07071067811865482,a,14) ; self.assertEqual(1,b) ; self.assertEqual(2,c)
10941 def testSwig2NonRegressionPartitionBySpreadZone1(self):
10942 m=MEDCouplingCMesh()
10943 arr=DataArrayDouble(6) ; arr.iota(0.)
10944 m.setCoords(arr,arr,arr)
10945 m=m.buildUnstructured()
10946 mPart=m[50,80,85,87,92,122]
10947 zones=mPart.partitionBySpreadZone()
10948 self.assertEqual(4,len(zones))
10949 self.assertTrue(zones[0].isEqual(DataArrayInt([0])))
10950 self.assertTrue(zones[1].isEqual(DataArrayInt([1,2])))
10951 self.assertTrue(zones[2].isEqual(DataArrayInt([3,4])))
10952 self.assertTrue(zones[3].isEqual(DataArrayInt([5])))
10954 n,ni=m.computeNeighborsOfCells()
10955 a,b=MEDCouplingUMesh.ComputeSpreadZoneGraduallyFromSeed(0,n,ni)
10956 self.assertEqual(13,b) ; self.assertEqual(125,len(a)) ; self.assertTrue(a.isIdentity())
10957 a,b=MEDCouplingUMesh.ComputeSpreadZoneGraduallyFromSeed([1],n,ni)
10958 self.assertEqual(12,b) ; self.assertEqual(125,len(a)) ; self.assertTrue(a.isIdentity())
10959 a,b=MEDCouplingUMesh.ComputeSpreadZoneGraduallyFromSeed((2,),n,ni)
10960 self.assertEqual(11,b) ; self.assertEqual(125,len(a)) ; self.assertTrue(a.isIdentity())
10961 a,b=MEDCouplingUMesh.ComputeSpreadZoneGraduallyFromSeed(DataArrayInt([3]),n,ni)
10962 self.assertEqual(12,b) ; self.assertEqual(125,len(a)) ; self.assertTrue(a.isIdentity())
10965 def testSwigUMeshInsertNextCell1(self):
10966 m=MEDCouplingUMesh("toto",2)
10968 coords=DataArrayDouble([0.,0.,1.,1.,1.,0.]) ; m.setCoords(coords)
10969 da=DataArrayInt([0,1,2])
10971 for i in xrange(5):
10972 m.insertNextCell(NORM_TRI3,da)
10974 self.assertTrue(m.getNodalConnectivity().isEqual(DataArrayInt([3,0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3,0,1,2])))
10975 self.assertTrue(m.getNodalConnectivityIndex().isEqual(DataArrayInt([0,4,8,12,16,20])))
10977 da=DataArrayInt([0,1,2,3])
10979 for i in xrange(5):
10980 m.insertNextCell(NORM_TRI3,3,da)
10982 self.assertTrue(m.getNodalConnectivity().isEqual(DataArrayInt([3,0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3,0,1,2])))
10983 self.assertTrue(m.getNodalConnectivityIndex().isEqual(DataArrayInt([0,4,8,12,16,20])))
10985 da=DataArrayInt([0,1])
10987 self.assertRaises(InterpKernelException,m.insertNextCell,NORM_TRI3,3,da)
10989 da=DataArrayInt([0,1,2,0,1,3,0,1,4,0,1,5,0,1,6],5,3)
10992 m.insertNextCell(NORM_TRI3,t)
10994 self.assertTrue(m.getNodalConnectivity().isEqual(DataArrayInt([3,0,1,2,3,0,1,3,3,0,1,4,3,0,1,5,3,0,1,6])))
10995 self.assertTrue(m.getNodalConnectivityIndex().isEqual(DataArrayInt([0,4,8,12,16,20])))
10996 self.assertRaises(InterpKernelException,m.insertNextCell,NORM_TRI3,None)
10999 def testSwigCurveLinearMesh1(self):
11000 m=MEDCouplingCurveLinearMesh("toto")
11001 m.setNodeGridStructure([2,3])
11002 coords=DataArrayDouble([0.,0., 2.,0., 0.,1., 1.9,1.1, 0.3,1.9, 2.2,2.1],6,2)
11003 m.setCoords(coords)
11006 self.assertTrue(m0.isEqual(m,1e-12))
11007 m.getCoords().setInfoOnComponents(["X [m]","Y [m]"])
11008 self.assertTrue(not m0.isEqual(m,1e-12))
11010 self.assertTrue(m0.isEqual(m,1e-12))
11011 self.assertEqual(m.getNodeGridStructure(),(2,3))
11014 def testSimplexize3(self):
11015 m=MEDCouplingUMesh("toto",3)
11017 m.insertNextCell(NORM_TETRA4,[0,1,2,3])
11018 m.insertNextCell(NORM_HEXA8,[4,5,6,7,8,9,10,11])
11019 m.insertNextCell(NORM_HEXA8,[12,13,14,15,16,17,18,19])
11020 m.insertNextCell(NORM_TETRA4,[20,21,22,23])
11021 c1=DataArrayDouble([0.,0.,0.,0.,1.,0.,1.,0.,0.,0.,0.,1.],4,3)
11022 c2=DataArrayDouble([0.,0.,0.,0.,1.,0.,1.,1.,0.,1.,0.,0., 0.,0.,1.,0.,1.,1.,1.,1.,1.,1.,0.,1.],8,3) ; c2+=[2.,0.,0.]
11025 c=DataArrayDouble.Aggregate([c1,c2,c3,c4])
11027 m.checkCoherency2()
11030 d1=m1.simplexize(PLANAR_FACE_5)
11031 m1.checkCoherency2()
11032 vol1=m1.getMeasureField(ON_CELLS).getArray()
11033 self.assertTrue(vol1.isEqual(DataArrayDouble([1./6, 1./6, 1./6,1./6, 1./6, 1./3,1./6, 1./6, 1./6, 1./6, 1./3, 1./6]),1e-12))
11034 self.assertEqual(m1.getNodalConnectivity().getValues(),[14,0,1,2,3,14,4,9,5,6,14,4,8,9,11,14,4,7,11,6,14,9,11,10,6,14,4,9,6,11,14,12,17,13,14,14,12,16,17,19,14,12,15,19,14,14,17,19,18,14,14,12,17,14,19,14,20,21,22,23])
11035 self.assertEqual(m1.getNodalConnectivityIndex().getValues(),[0,5,10,15,20,25,30,35,40,45,50,55,60])
11036 self.assertTrue(d1.isEqual(DataArrayInt([0,1,1,1,1,1,2,2,2,2,2,3])))
11039 d2=m2.simplexize(PLANAR_FACE_6)
11040 m2.checkCoherency2()
11041 vol2=m2.getMeasureField(ON_CELLS).getArray()
11042 self.assertTrue(vol2.isEqual(DataArrayDouble([1./6, 1./6, 1./6,1./6, 1./6, 1./6,1./6,1./6, 1./6, 1./6, 1./6, 1./6,1./6,1./6]),1e-12))
11043 self.assertEqual(m2.getNodalConnectivity().getValues(),[14,0,1,2,3,14,4,9,5,10,14,4,5,6,10,14,4,8,9,10,14,4,11,8,10,14,4,6,7,10,14,4,7,11,10,14,12,17,13,18,14,12,13,14,18,14,12,16,17,18,14,12,19,16,18,14,12,14,15,18,14,12,15,19,18,14,20,21,22,23])
11044 self.assertEqual(m2.getNodalConnectivityIndex().getValues(),[0,5,10,15,20,25,30,35,40,45,50,55,60,65,70])
11045 self.assertTrue(d2.isEqual(DataArrayInt([0,1,1,1,1,1,1,2,2,2,2,2,2,3])))
11048 def testSwig2CurveLinearMesh2(self):
11049 c=MEDCouplingCMesh()
11051 arr1=DataArrayDouble([0,1,3,7])
11052 arr2=DataArrayDouble([0,1,1.5])
11053 c.setCoords(arr1,arr2)
11054 u=c.buildUnstructured()
11056 cl=MEDCouplingCurveLinearMesh()
11058 cl.setNodeGridStructure([4,3])
11059 cl.checkCoherency2()
11060 li1=[1.,2.,4.,0.5,1.,2.]
11061 self.assertTrue(cl.getMeasureField(False).getArray().isEqual(DataArrayDouble(li1),1e-14))
11062 self.assertTrue(u.getMeasureField(False).getArray().isEqual(DataArrayDouble(li1),1e-14))
11063 li1_1=[0.5,0.5,2.,0.5,5.,0.5,0.5,1.25,2.,1.25,5.,1.25]
11064 self.assertTrue(cl.getBarycenterAndOwner().isEqual(DataArrayDouble(li1_1,6,2),1e-14))
11065 self.assertTrue(u.getBarycenterAndOwner().isEqual(DataArrayDouble(li1_1,6,2),1e-14))
11067 c.setCoords(arr1,arr2,arr2)
11068 u=c.buildUnstructured()
11070 cl=MEDCouplingCurveLinearMesh()
11072 cl.setNodeGridStructure([4,3,3])
11073 cl.checkCoherency2()
11074 li2=[1.,2.,4.,0.5, 1.,2.,0.5,1.,2.,0.25,0.5,1.]
11075 li2_1=[0.5,0.5,0.5,2.,0.5,0.5,5.,0.5,0.5,0.5,1.25,0.5,2.,1.25,0.5,5.,1.25,0.5,0.5,0.5,1.25,2.,0.5,1.25,5.,0.5,1.25,0.5,1.25,1.25,2.,1.25,1.25,5.,1.25,1.25]
11076 self.assertTrue(cl.getMeasureField(False).getArray().isEqual(DataArrayDouble(li2),1e-14))
11077 self.assertTrue(u.getMeasureField(False).getArray().isEqual(DataArrayDouble(li2),1e-14))
11078 self.assertTrue(cl.getBarycenterAndOwner().isEqual(DataArrayDouble(li2_1,12,3),1e-14))
11079 self.assertTrue(u.getBarycenterAndOwner().isEqual(DataArrayDouble(li2_1,12,3),1e-14))
11081 coo=DataArrayDouble(5) ; coo.iota(0.)
11084 cl.setNodeGridStructure([5])
11085 cl.checkCoherency2()
11087 li3_1=[0.5,2.5,6.5,12.5]
11088 self.assertTrue(cl.getMeasureField(False).getArray().isEqual(DataArrayDouble(li3),1e-14))
11089 self.assertTrue(cl.buildUnstructured().getMeasureField(False).getArray().isEqual(DataArrayDouble(li3),1e-14))
11090 self.assertTrue(cl.getBarycenterAndOwner().isEqual(DataArrayDouble(li3_1),1e-14))
11091 self.assertTrue(cl.buildUnstructured().getBarycenterAndOwner().isEqual(DataArrayDouble(li3_1),1e-14))
11093 coo=DataArrayDouble.Meld(coo,coo)
11095 cl.checkCoherency2()
11096 li4=[sqrt(2.)*elt for elt in [1.,3.,5.,7.]]
11097 li4_1=[0.5,0.5,2.5,2.5,6.5,6.5,12.5,12.5]
11098 self.assertTrue(cl.getMeasureField(False).getArray().isEqual(DataArrayDouble(li4),1e-14))
11099 self.assertTrue(cl.buildUnstructured().getMeasureField(False).getArray().isEqual(DataArrayDouble(li4),1e-14))
11100 self.assertTrue(cl.getBarycenterAndOwner().isEqual(DataArrayDouble(li4_1,4,2),1e-14))
11101 self.assertTrue(cl.buildUnstructured().getBarycenterAndOwner().isEqual(DataArrayDouble(li4_1,4,2),1e-14))
11104 def testSwig2CurveLinearMeshNonRegression1(self):
11105 coords=DataArrayDouble([0.0, 0.0, 0.10000000149011612, 0.6000000238418579, 0.10000000149011612, 0.30000001192092896, 1.100000023841858, 0.10000000149011612, 0.20000000298023224, 0.10000000149011612, 0.6000000238418579, 0.20000000298023224, 0.699999988079071, 0.6000000238418579, 0.10000000149011612, 1.2000000476837158, 0.6000000238418579, 0.30000001192092896, 0.10000000149011612, 1.100000023841858, 0.30000001192092896, 0.5, 1.100000023841858, 0.20000000298023224, 1.0, 1.2000000476837158, 0.10000000149011612, 0.0, 0.10000000149011612, 0.5, 0.5, 0.10000000149011612, 0.6000000238418579, 1.2000000476837158, 0.10000000149011612, 0.699999988079071, 0.10000000149011612, 0.6000000238418579, 0.699999988079071, 0.6000000238418579, 0.6000000238418579, 0.5, 1.100000023841858, 0.6000000238418579, 0.6000000238418579, 0.10000000149011612, 1.0, 0.6000000238418579, 0.699999988079071, 1.2000000476837158, 0.699999988079071, 0.8999999761581421, 1.0, 0.5, 0.10000000149011612, 0.10000000149011612, 1.2000000476837158, 0.699999988079071, 0.10000000149011612, 1.0, 1.0, 0.10000000149011612, 1.100000023841858, 0.10000000149011612, 0.6000000238418579, 1.100000023841858, 0.6000000238418579, 0.6000000238418579, 1.100000023841858, 1.100000023841858, 0.6000000238418579, 1.2000000476837158, 0.10000000149011612, 1.2000000476837158, 1.0, 0.5, 1.100000023841858, 1.2000000476837158, 1.2000000476837158, 1.100000023841858, 1.0],27,3)
11106 m=MEDCouplingCurveLinearMesh("toto")
11107 m.setCoords(coords)
11108 m.setNodeGridStructure([3,3,3])
11110 vol=m.getMeasureField(False).getArray()
11111 self.assertTrue(vol.isEqual(DataArrayDouble([0.11450000709295281, 0.10583334351579375,0.11149999939029423,0.08866666863113633, 0.1404166805123294,0.1250000135352219,0.1270833433481557,0.13258334288001067]),1e-12))
11112 self.assertTrue(vol.isEqual(m.buildUnstructured().getMeasureField(False).getArray(),1e-12))
11114 self.assertTrue(m.getBarycenterAndOwner().isEqual(m.buildUnstructured().getBarycenterAndOwner(),1e-12))
11117 def testSwig2NonRegressionDASetSelectedComponents1(self):
11118 da=DataArrayDouble.New([1.,2.,3.,4.,5.,6.],3,2)
11119 dv=DataArrayDouble.New();
11122 # da has less tuples than dv
11123 dv.setSelectedComponents(da,[1,0])
11125 self.assertTrue(dv.isEqual(DataArrayDouble([2.,1.,0.,0.,4.,3.,0.,0.,6.,5.,0.,0.,0.,0.,0.,0.],4,4),1e-14))
11127 da=DataArrayInt.New([1,2,3,4,5,6],3,2)
11128 dv=DataArrayInt.New();
11131 # da has less tuples than dv
11132 dv.setSelectedComponents(da,[1,0])
11134 self.assertTrue(dv.isEqual(DataArrayInt([2,1,0,0,4,3,0,0,6,5,0,0,0,0,0,0],4,4)))
11137 def testSwigSetItem3(self):
11139 d=DataArrayDouble([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11141 self.assertTrue(d.isEqual(DataArrayDouble([0,0,0,0,0,0,1,2,0,0,0,0],6,2),1e-14))
11143 d=DataArrayDouble([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11145 self.assertTrue(d.isEqual(DataArrayDouble([0,0,0,0,1,2,1,2,0,0,1,2],6,2),1e-14))
11147 d=DataArrayDouble([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11149 self.assertTrue(d.isEqual(DataArrayDouble([1,2,1,2,1,2,1,2,1,2,1,2],6,2),1e-14))
11151 d=DataArrayDouble([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11152 d[DataArrayInt([0,3,4])]=[1,2]
11153 self.assertTrue(d.isEqual(DataArrayDouble([1,2,0,0,0,0,1,2,1,2,0,0],6,2),1e-14))
11155 d=DataArrayDouble([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11157 self.assertTrue(d.isEqual(DataArrayDouble([0,0,0,0,0,0,0,0,0,0,0,7],6,2),1e-14))
11159 d=DataArrayDouble([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11161 self.assertTrue(d.isEqual(DataArrayDouble([0,0,0,0,0,0,0,7,0,0,0,7],6,2),1e-14))
11163 d=DataArrayDouble([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11165 self.assertTrue(d.isEqual(DataArrayDouble([0,7,0,0,0,7,0,0,0,7,0,0],6,2),1e-14))
11167 d=DataArrayDouble([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11168 d[DataArrayInt([0,3,4]),1]=[7]
11169 self.assertTrue(d.isEqual(DataArrayDouble([0,7,0,0,0,0,0,7,0,7,0,0],6,2),1e-14))
11171 d=DataArrayDouble([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11173 self.assertTrue(d.isEqual(DataArrayDouble([0,0,0,0,0,0,8,7,0,0,0,0],6,2),1e-14))
11175 d=DataArrayDouble([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11176 d[[1,3,4],[1,0]]=[7,8]
11177 self.assertTrue(d.isEqual(DataArrayDouble([0,0,8,7,0,0,8,7,8,7,0,0],6,2),1e-14))
11179 d=DataArrayDouble([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11180 d[1::2,[1,0]]=[7,8]
11181 self.assertTrue(d.isEqual(DataArrayDouble([0,0,8,7,0,0,8,7,0,0,8,7],6,2),1e-14))
11183 d=DataArrayDouble([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11184 d[DataArrayInt([1,4]),[1,0]]=[7,8]
11185 self.assertTrue(d.isEqual(DataArrayDouble([0,0,8,7,0,0,0,0,8,7,0,0],6,2),1e-14))
11187 d=DataArrayDouble([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11189 self.assertTrue(d.isEqual(DataArrayDouble([0,0,9,0,0,0,0,0,0,0,0,0],6,2),1e-14))
11191 d=DataArrayDouble([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11193 self.assertTrue(d.isEqual(DataArrayDouble([0,0,7,8,0,0,0,0,7,8,7,8],6,2),1e-14))
11195 d=DataArrayDouble([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11197 self.assertTrue(d.isEqual(DataArrayDouble([0,0,3,9,0,0,3,9,0,0,3,9],6,2),1e-14))
11199 d=DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11201 self.assertTrue(d.isEqual(DataArrayInt([0,0,0,0,0,0,1,2,0,0,0,0],6,2)))
11203 d=DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11205 self.assertTrue(d.isEqual(DataArrayInt([0,0,0,0,1,2,1,2,0,0,1,2],6,2)))
11207 d=DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11209 self.assertTrue(d.isEqual(DataArrayInt([1,2,1,2,1,2,1,2,1,2,1,2],6,2)))
11211 d=DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11212 d[DataArrayInt([0,3,4])]=[1,2]
11213 self.assertTrue(d.isEqual(DataArrayInt([1,2,0,0,0,0,1,2,1,2,0,0],6,2)))
11215 d=DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11217 self.assertTrue(d.isEqual(DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,7],6,2)))
11219 d=DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11221 self.assertTrue(d.isEqual(DataArrayInt([0,0,0,0,0,0,0,7,0,0,0,7],6,2)))
11223 d=DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11225 self.assertTrue(d.isEqual(DataArrayInt([0,7,0,0,0,7,0,0,0,7,0,0],6,2)))
11227 d=DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11228 d[DataArrayInt([0,3,4]),1]=[7]
11229 self.assertTrue(d.isEqual(DataArrayInt([0,7,0,0,0,0,0,7,0,7,0,0],6,2)))
11231 d=DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11233 self.assertTrue(d.isEqual(DataArrayInt([0,0,0,0,0,0,8,7,0,0,0,0],6,2)))
11235 d=DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11236 d[[1,3,4],[1,0]]=[7,8]
11237 self.assertTrue(d.isEqual(DataArrayInt([0,0,8,7,0,0,8,7,8,7,0,0],6,2)))
11239 d=DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11240 d[1::2,[1,0]]=[7,8]
11241 self.assertTrue(d.isEqual(DataArrayInt([0,0,8,7,0,0,8,7,0,0,8,7],6,2)))
11243 d=DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11244 d[DataArrayInt([1,4]),[1,0]]=[7,8]
11245 self.assertTrue(d.isEqual(DataArrayInt([0,0,8,7,0,0,0,0,8,7,0,0],6,2)))
11247 d=DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11249 self.assertTrue(d.isEqual(DataArrayInt([0,0,9,0,0,0,0,0,0,0,0,0],6,2)))
11251 d=DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11253 self.assertTrue(d.isEqual(DataArrayInt([0,0,7,8,0,0,0,0,7,8,7,8],6,2)))
11255 d=DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11257 self.assertTrue(d.isEqual(DataArrayInt([0,0,3,9,0,0,3,9,0,0,3,9],6,2)))