1 # -*- coding: iso-8859-1 -*-
2 # Copyright (C) 2007-2014 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, or (at your option) any later version.
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 datetime import datetime
25 from MEDCouplingDataForTest import MEDCouplingDataForTest
26 import rlcompleter,readline # this line has to be here, to ensure a usability of MEDCoupling/MEDLoader. B4 removing it please notify to anthony.geay@cea.fr
28 class MEDCouplingBasicsTest(unittest.TestCase):
30 arr=DataArrayDouble.New()
31 arr.setValues([12.,11.,10.,9.,8.,7.,6.,5.,4.,3.,2.,1.],3,4)
32 arr.setInfoOnComponent(0,"ggg");
33 arr.setInfoOnComponent(1,"hhhh");
34 arr.setInfoOnComponent(2,"jj");
35 arr.setInfoOnComponent(3,"kkkkkk");
36 arr2=arr.convertToIntArr();
37 arr3=arr2.convertToDblArr();
38 self.assertTrue(arr.isEqual(arr3,1e-14))
42 arr1=DataArrayInt.New();
43 arr1Ref=[0,10,1,11,2,12,3,13,4,14,5,15,6,16]
44 arr1.setValues(arr1Ref,7,2);
45 self.assertEqual(7,arr1.getNumberOfTuples());
46 self.assertEqual(2,arr1.getNumberOfComponents());
47 self.assertEqual(arr1Ref,list(arr1.getValues()));
49 self.assertEqual(4,arr2.getNumberOfTuples());
50 self.assertEqual(2,arr2.getNumberOfComponents());
51 self.assertEqual(arr1Ref[6:],list(arr2.getValues()));
52 arr3=arr1.substr(2,5);
53 self.assertEqual(3,arr3.getNumberOfTuples());
54 self.assertEqual(2,arr3.getNumberOfComponents());
55 self.assertEqual(arr1Ref[4:10],list(arr3.getValues()));
57 arr4=DataArrayDouble.New();
58 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]
59 arr4.setValues(arr4Ref,7,2);
60 self.assertEqual(7,arr4.getNumberOfTuples());
61 self.assertEqual(2,arr4.getNumberOfComponents());
64 self.assertTrue(abs(arr4Ref[i]-tmp[i])<1e-14);
67 self.assertEqual(4,arr5.getNumberOfTuples());
68 self.assertEqual(2,arr5.getNumberOfComponents());
71 self.assertTrue(abs(arr4Ref[6+i]-tmp[i])<1e-14);
73 arr6=arr4.substr(2,5);
74 self.assertEqual(3,arr6.getNumberOfTuples());
75 self.assertEqual(2,arr6.getNumberOfComponents());
78 self.assertTrue(abs(arr4Ref[4+i]-tmp[i])<1e-14);
83 tab4=[1, 2, 8, 7, 2, 3, 9, 8, 3,
84 4, 10, 9, 4, 5, 11, 10, 5,
85 0, 6, 11, 0, 1, 7, 6 ]
88 coords=[ 0.024155, 0.04183768725682622, -0.305, 0.04831000000000001, -1.015761910347357e-17,
89 -0.305, 0.09662000000000001, -1.832979297858306e-18, -0.305, 0.120775, 0.04183768725682623,
90 -0.305, 0.09662000000000001, 0.08367537451365245, -0.305, 0.04831000000000001, 0.08367537451365246,
91 -0.305, 0.024155, 0.04183768725682622, -0.2863, 0.04831000000000001, -1.015761910347357e-17, -0.2863,
92 0.09662000000000001, -1.832979297858306e-18, -0.2863, 0.120775, 0.04183768725682623, -0.2863, 0.09662000000000001,
93 0.08367537451365245, -0.2863, 0.04831000000000001, 0.08367537451365246, -0.2863 ]
94 self.assertEqual(MEDCouplingMesh.GetNumberOfNodesOfGeometricType(NORM_TRI3),3)
95 self.assertTrue(MEDCouplingMesh.IsStaticGeometricType(NORM_TRI3))
96 self.assertTrue(MEDCouplingMesh.IsLinearGeometricType(NORM_TRI3))
97 self.assertEqual(MEDCouplingMesh.GetDimensionOfGeometricType(NORM_TRI3),2)
98 self.assertEqual(MEDCouplingMesh.GetReprOfGeometricType(NORM_TRI3),"NORM_TRI3")
99 self.assertRaises(InterpKernelException,MEDCouplingMesh.GetNumberOfNodesOfGeometricType,NORM_POLYGON)
100 self.assertTrue(not MEDCouplingMesh.IsStaticGeometricType(NORM_POLYGON))
101 self.assertTrue(MEDCouplingMesh.IsLinearGeometricType(NORM_POLYGON))
102 self.assertEqual(MEDCouplingMesh.GetDimensionOfGeometricType(NORM_POLYGON),2)
103 self.assertEqual(MEDCouplingMesh.GetReprOfGeometricType(NORM_POLYGON),"NORM_POLYGON")
104 self.assertEqual(MEDCouplingMesh.GetNumberOfNodesOfGeometricType(NORM_TRI6),6)
105 self.assertTrue(MEDCouplingMesh.IsStaticGeometricType(NORM_TRI6))
106 self.assertTrue(not MEDCouplingMesh.IsLinearGeometricType(NORM_TRI6))
107 self.assertEqual(MEDCouplingMesh.GetDimensionOfGeometricType(NORM_TRI6),2)
108 self.assertEqual(MEDCouplingMesh.GetReprOfGeometricType(NORM_TRI6),"NORM_TRI6")
109 mesh=MEDCouplingUMesh.New()
110 mesh.setMeshDimension(2)
111 mesh.allocateCells(8);
112 mesh.setName("mesh1")
113 self.assertTrue(mesh.getName()=="mesh1")
114 for i in range(nbOfCells):
115 mesh.insertNextCell(NORM_QUAD4,4,tab4[4*i:4*(i+1)]);
117 mesh.finishInsertingCells()
118 self.assertTrue(mesh.getNumberOfCells()==nbOfCells)
119 self.assertTrue(mesh.getNodalConnectivity().getNbOfElems()==30)
120 self.assertTrue(mesh.getNodalConnectivityIndex().getNbOfElems()==nbOfCells+1)
121 myCoords=DataArrayDouble.New()
122 myCoords.setValues(coords,nbOfNodes,3);
123 self.assertTrue(myCoords.getIJ(3,2)==-0.305)
124 mesh.setCoords(myCoords);
125 mesh.checkCoherency();
126 self.assertTrue(mesh.getAllGeoTypes()==[4])
127 myFalseConn=DataArrayInt.New()
128 myFalseConn.setValues(tab4,6,4)
129 self.assertTrue(myFalseConn.getIJ(1,1)==3)
131 field=MEDCouplingFieldDouble.New(ON_CELLS)
133 field.setNature(Integral)
134 myCoords=DataArrayDouble.New()
136 for i in range(nbOfCells*9):
137 sampleTab.append(float(i))
138 myCoords.setValues(sampleTab,nbOfCells,9);
139 field.setArray(myCoords)
140 self.assertTrue(3==mesh.getSpaceDimension())
141 field.checkCoherency()
142 mesh2=mesh.clone(False)
143 mesh3=mesh.clone(True)
146 ## deep full recursively copy of field -> both field and mesh underneath copied
147 field2=field.clone(True)
148 field2.setMesh(field.getMesh().clone(True))
149 mesh3=mesh.clone(True)
150 field3=mesh3.fillFromAnalytic(ON_CELLS,2,"x*IVec+(y+z)*JVec")
151 field3.applyFunc("u*u*u+cos(u)")
154 def testMeshPointsCloud(self):
155 targetCoords=[-0.3,-0.3,0.5, 0.2,-0.3,1., 0.7,-0.3,1.5,
156 -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]
157 targetMesh=MEDCouplingUMesh.New();
158 targetMesh.setMeshDimension(0);
159 targetMesh.allocateCells(8);
160 targetMesh.insertNextCell(NORM_POINT1,1,[0]);
161 targetMesh.insertNextCell(NORM_POINT1,1,[1]);
162 targetMesh.insertNextCell(NORM_POINT1,1,[2]);
163 targetMesh.insertNextCell(NORM_POINT1,1,[3]);
164 targetMesh.insertNextCell(NORM_POINT1,1,[4]);
165 targetMesh.insertNextCell(NORM_POINT1,1,[5]);
166 targetMesh.insertNextCell(NORM_POINT1,1,[7]);
167 targetMesh.insertNextCell(NORM_POINT1,1,[6]);
168 targetMesh.finishInsertingCells();
169 self.assertRaises(InterpKernelException,targetMesh.checkCoherency);
170 myCoords=DataArrayDouble.New();
171 myCoords.setValues(targetCoords,9,3);
172 targetMesh.setCoords(myCoords);
173 self.assertEqual(targetMesh.getSpaceDimension(),3)
174 self.assertEqual(targetMesh.getNumberOfCells(),8)
175 self.assertEqual(targetMesh.getNumberOfNodes(),9)
176 self.assertEqual(targetMesh.getMeshDimension(),0)
179 def testMeshM1D(self):
180 meshM1D=MEDCouplingUMesh.New();
181 self.assertRaises(InterpKernelException,meshM1D.getMeshDimension);
182 self.assertRaises(InterpKernelException,meshM1D.getNumberOfNodes);
183 self.assertRaises(InterpKernelException,meshM1D.getNumberOfCells);
184 self.assertRaises(InterpKernelException,meshM1D.setMeshDimension,-2)
185 self.assertRaises(InterpKernelException,meshM1D.setMeshDimension,-10)
186 meshM1D.setMeshDimension(-1);
187 meshM1D.checkCoherency();
188 self.assertEqual(meshM1D.getMeshDimension(),-1);
189 self.assertEqual(meshM1D.getNumberOfCells(),1);
190 self.assertRaises(InterpKernelException,meshM1D.getNumberOfNodes);
191 self.assertRaises(InterpKernelException,meshM1D.getSpaceDimension);
192 cpy=meshM1D.clone(True);
193 self.assertTrue(cpy.isEqual(meshM1D,1e-12));
194 fieldOnCells=MEDCouplingFieldDouble.New(ON_CELLS);
195 fieldOnCells.setMesh(meshM1D);
196 array=DataArrayDouble.New();
197 array.setValues(6*[7.],1,6);
198 fieldOnCells.setArray(array);
199 fieldOnCells.checkCoherency();
202 def testDeepCopy(self):
203 array=DataArrayDouble.New();
204 array.setValues(5*3*[7.],5,3);
205 self.assertEqual(array.getIJ(3,2),7.);
206 array2=array.deepCpy();
207 self.assertEqual(array2.getIJ(3,2),7.)
209 array3=DataArrayInt.New();
210 array3.setValues(5*3*[17],5,3);
211 self.assertEqual(array3.getIJ(3,2),17);
212 array4=array3.deepCpy();
213 self.assertEqual(array4.getIJ(3,2),17);
216 def testRevNodal(self):
217 mesh=MEDCouplingDataForTest.build2DTargetMesh_1()
218 revNodal,revNodalIndx=mesh.getReverseNodalConnectivity();
219 revNodalExpected=[0,0,1,1,2,0,3,0,1,2,3,4,2,4,3,3,4,4];
220 revNodalIndexExpected=[0,1,3,5,7,12,14,15,17,18];
221 self.assertEqual(revNodal.getNbOfElems(),18)
222 self.assertEqual(revNodalIndx.getNbOfElems(),10)
223 self.assertEqual(list(revNodal.getValues()),revNodalExpected)
224 self.assertEqual(list(revNodalIndx.getValues()),revNodalIndexExpected)
227 def testConvertToPolyTypes(self):
228 mesh=MEDCouplingDataForTest.build2DTargetMesh_1();
230 mesh.convertToPolyTypes(elts);
231 mesh.checkCoherency();
232 self.assertEqual(5,mesh.getNumberOfCells());
233 self.assertEqual(23,mesh.getNodalConnectivity().getNumberOfTuples());
234 expected1=[4, 0, 3, 4, 1, 5, 1, 4, 2, 3, 4, 5, 2, 5, 6, 7, 4, 3, 4, 7, 8, 5, 4]
235 self.assertEqual(expected1,list(mesh.getNodalConnectivity().getValues()));
237 mesh=MEDCouplingDataForTest.build3DTargetMesh_1();
238 mesh.convertToPolyTypes(elts);
239 mesh.checkCoherency();
240 self.assertEqual(8,mesh.getNumberOfCells());
241 self.assertEqual(114,mesh.getNodalConnectivity().getNumberOfTuples());
242 mesh.convertToPolyTypes(elts);
243 mesh.checkCoherency();
244 self.assertEqual(8,mesh.getNumberOfCells());
245 self.assertEqual(114,mesh.getNodalConnectivity().getNumberOfTuples());
248 def testDescConn2D(self):
249 mesh=MEDCouplingDataForTest.build2DTargetMesh_1();
250 desc=DataArrayInt.New();
251 descIndx=DataArrayInt.New();
252 revDesc=DataArrayInt.New();
253 revDescIndx=DataArrayInt.New();
254 mesh2=mesh.buildDescendingConnectivity(desc,descIndx,revDesc,revDescIndx);
255 mesh2.checkCoherency();
256 self.assertEqual(1,mesh2.getMeshDimension());
257 self.assertEqual(13,mesh2.getNumberOfCells());
258 self.assertEqual(14,revDescIndx.getNbOfElems()); self.assertEqual(14,revDescIndx.getNumberOfTuples());
259 self.assertEqual(6,descIndx.getNbOfElems()); self.assertEqual(6,descIndx.getNumberOfTuples());
260 self.assertEqual(18,desc.getNbOfElems()); self.assertEqual(18,desc.getNumberOfTuples());
261 self.assertEqual(18,revDesc.getNbOfElems()); self.assertEqual(18,revDesc.getNumberOfTuples());
262 expected1=[0,1,2,3, 2,4,5, 6,7,4, 8,9,1,10, 11,12,6,9];
263 self.assertEqual(expected1,list(desc.getValues()));
264 expected2=[0,4,7,10,14,18];
265 self.assertEqual(expected2,list(descIndx.getValues()));
266 expected3=[0,1,3,5,6,8,9,11,12,13,15,16,17,18];
267 self.assertEqual(expected3,list(revDescIndx.getValues()));
268 expected4=[0, 0,3, 0,1, 0, 1,2, 1, 2,4, 2, 3, 3,4, 3, 4, 4];
269 self.assertEqual(expected4,list(revDesc.getValues()));
270 conn=mesh2.getNodalConnectivity();
271 connIndex=mesh2.getNodalConnectivityIndex();
272 expected5=[0,3,6,9,12,15,18,21,24,27,30,33,36,39];
273 self.assertEqual(expected5,list(connIndex.getValues()));
274 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];
275 self.assertEqual(expected6,list(conn.getValues()));
278 mesh.convertToPolyTypes(eltsV);
279 mesh.checkCoherency();
281 desc=DataArrayInt.New();
282 descIndx=DataArrayInt.New();
283 revDesc=DataArrayInt.New();
284 revDescIndx=DataArrayInt.New();
286 mesh2=mesh.buildDescendingConnectivity(desc,descIndx,revDesc,revDescIndx);
287 mesh2.checkCoherency();
288 self.assertEqual(1,mesh2.getMeshDimension());
289 self.assertEqual(13,mesh2.getNumberOfCells());
290 self.assertEqual(14,revDescIndx.getNbOfElems()); self.assertEqual(14,revDescIndx.getNumberOfTuples());
291 self.assertEqual(6,descIndx.getNbOfElems()); self.assertEqual(6,descIndx.getNumberOfTuples());
292 self.assertEqual(18,desc.getNbOfElems()); self.assertEqual(18,desc.getNumberOfTuples());
293 self.assertEqual(18,revDesc.getNbOfElems()); self.assertEqual(18,revDesc.getNumberOfTuples());
294 self.assertEqual(expected1,list(desc.getValues()));
295 self.assertEqual(expected2,list(descIndx.getValues()));
296 self.assertEqual(expected3,list(revDescIndx.getValues()));
297 self.assertEqual(expected4,list(revDesc.getValues()));
298 conn=mesh2.getNodalConnectivity();
299 connIndex=mesh2.getNodalConnectivityIndex();
300 self.assertEqual(expected5,list(connIndex.getValues()));
301 self.assertEqual(expected6,list(conn.getValues()));
304 def testDescConn3D(self):
305 mesh=MEDCouplingDataForTest.build3DTargetMesh_1();
306 desc=DataArrayInt.New();
307 descIndx=DataArrayInt.New();
308 revDesc=DataArrayInt.New();
309 revDescIndx=DataArrayInt.New();
311 mesh2=mesh.buildDescendingConnectivity(desc,descIndx,revDesc,revDescIndx);
312 mesh2.checkCoherency();
313 self.assertEqual(2,mesh2.getMeshDimension());
314 self.assertEqual(36,mesh2.getNumberOfCells());
315 self.assertEqual(37,revDescIndx.getNbOfElems()); self.assertEqual(37,revDescIndx.getNumberOfTuples());
316 self.assertEqual(9,descIndx.getNbOfElems()); self.assertEqual(9,descIndx.getNumberOfTuples());
317 self.assertEqual(48,desc.getNbOfElems()); self.assertEqual(48,desc.getNumberOfTuples());
318 self.assertEqual(48,revDesc.getNbOfElems()); self.assertEqual(48,revDesc.getNumberOfTuples());
319 expected1=[0, 6, 12, 18, 24, 30, 36, 42, 48]
320 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]
321 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]
322 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]
323 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]
324 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,
325 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,
326 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,
327 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]
328 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,
329 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,
330 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,
331 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]
333 self.assertEqual(expected1,list(descIndx.getValues()));
334 self.assertEqual(expected2,list(desc.getValues()));
335 self.assertEqual(expected3,list(revDescIndx.getValues()));
336 self.assertEqual(expected4,list(revDesc.getValues()));
337 self.assertEqual(expected5,list(mesh2.getNodalConnectivityIndex().getValues()));
338 self.assertEqual(expected6,list(mesh2.getNodalConnectivity().getValues()));
341 mesh.convertToPolyTypes(eltsV);
342 mesh.checkCoherency();
343 desc=DataArrayInt.New();
344 descIndx=DataArrayInt.New();
345 revDesc=DataArrayInt.New();
346 revDescIndx=DataArrayInt.New();
347 mesh2=mesh.buildDescendingConnectivity(desc,descIndx,revDesc,revDescIndx);
348 mesh2.checkCoherency();
349 self.assertEqual(2,mesh2.getMeshDimension());
350 self.assertEqual(36,mesh2.getNumberOfCells());
351 self.assertEqual(37,revDescIndx.getNbOfElems()); self.assertEqual(37,revDescIndx.getNumberOfTuples());
352 self.assertEqual(9,descIndx.getNbOfElems()); self.assertEqual(9,descIndx.getNumberOfTuples());
353 self.assertEqual(48,desc.getNbOfElems()); self.assertEqual(48,desc.getNumberOfTuples());
354 self.assertEqual(48,revDesc.getNbOfElems()); self.assertEqual(48,revDesc.getNumberOfTuples());
355 self.assertEqual(expected1,list(descIndx.getValues()));
356 self.assertEqual(expected2,list(desc.getValues()));
357 self.assertEqual(expected3,list(revDescIndx.getValues()));
358 self.assertEqual(expected4,list(revDesc.getValues()));
359 self.assertEqual(expected5,list(mesh2.getNodalConnectivityIndex().getValues()));
360 self.assertEqual(expected7,list(mesh2.getNodalConnectivity().getValues()));
363 def testFindBoundaryNodes(self):
364 mesh=MEDCouplingDataForTest.build3DTargetMesh_1();
365 boundaryNodes=mesh.findBoundaryNodes();
366 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];
367 self.assertEqual(expected1,boundaryNodes.getValues());
370 def testBoundaryMesh(self):
371 mesh=MEDCouplingDataForTest.build3DTargetMesh_1();
372 mesh2=mesh.buildBoundaryMesh(False);
373 self.assertEqual(24,mesh2.getNumberOfCells());
374 self.assertEqual(26,mesh2.getNumberOfNodes());
377 def testBuildPartOfMySelf(self):
378 mesh=MEDCouplingDataForTest.build2DTargetMesh_1();
379 mesh.setName("Toto");
383 subMesh=mesh.buildPart(tab1)
384 self.assertTrue(isinstance(subMesh,MEDCouplingUMesh))
385 subMesh=mesh.buildPartOfMySelf(tab1,True);
386 self.assertTrue(isinstance(subMesh,MEDCouplingUMesh))
387 name=subMesh.getName();
388 self.assertEqual(2,len(mesh.getAllGeoTypes()));
389 self.assertEqual(NORM_TRI3,mesh.getAllGeoTypes()[0]);
390 self.assertEqual(NORM_QUAD4,mesh.getAllGeoTypes()[1]);
391 self.assertEqual(1,len(subMesh.getAllGeoTypes()));
392 self.assertEqual(NORM_QUAD4,subMesh.getAllGeoTypes()[0]);
393 self.assertEqual(name,"Toto");
394 self.assertEqual(2,subMesh.getNumberOfCells());
395 subConn=[4,0,3,4,1,4,7,8,5,4];
396 subConnIndex=[0,5,10];
397 self.assertEqual(10,subMesh.getNodalConnectivity().getNbOfElems());
398 self.assertEqual(3,subMesh.getNodalConnectivityIndex().getNbOfElems());
399 self.assertEqual(subConn[0:10],list(subMesh.getNodalConnectivity().getValues()));
400 self.assertEqual(subConnIndex[0:3],list(subMesh.getNodalConnectivityIndex().getValues()));
402 subMesh=mesh.buildPartOfMySelf(tab2[0:3],True);
403 self.assertTrue(isinstance(subMesh,MEDCouplingUMesh));
404 name=subMesh.getName();
405 self.assertEqual(2,len(subMesh.getAllGeoTypes()));
406 self.assertEqual(NORM_TRI3,subMesh.getAllGeoTypes()[0]);
407 self.assertEqual(NORM_QUAD4,subMesh.getAllGeoTypes()[1]);
408 self.assertEqual(name,"Toto");
409 self.assertEqual(3,subMesh.getNumberOfCells());
410 subConn2=[4,0,3,4,1,3,4,5,2,4,6,7,4,3]
411 subConnIndex2=[0,5,9,14]
412 self.assertEqual(14,subMesh.getNodalConnectivity().getNbOfElems());
413 self.assertEqual(4,subMesh.getNodalConnectivityIndex().getNbOfElems());
414 self.assertEqual(subConn2[0:14],list(subMesh.getNodalConnectivity().getValues()));
415 self.assertEqual(subConnIndex2[0:4],list(subMesh.getNodalConnectivityIndex().getValues()));
416 dd=DataArrayInt.New()
420 subMesh=subMesh.buildPartOfMySelf(dd,True);
421 self.assertEqual("coucou",subMesh.getName());
424 def testBuildPartOfMySelfNode(self):
425 mesh=MEDCouplingDataForTest.build2DTargetMesh_1();
427 subMesh=mesh.buildPartOfMySelfNode(tab1[0:4],True);
428 self.assertTrue(isinstance(subMesh,MEDCouplingUMesh))
429 self.assertEqual(1,len(subMesh.getAllGeoTypes()));
430 self.assertEqual(NORM_QUAD4,subMesh.getAllGeoTypes()[0]);
431 self.assertEqual(1,subMesh.getNumberOfCells());
432 self.assertEqual(5,subMesh.getNodalConnectivity().getNbOfElems());
433 self.assertEqual(2,subMesh.getNodalConnectivityIndex().getNbOfElems());
436 self.assertEqual(subConn[0:5],list(subMesh.getNodalConnectivity().getValues()));
437 self.assertEqual(subConnIndex[0:2],list(subMesh.getNodalConnectivityIndex().getValues()));
439 ddd=DataArrayInt.New()
440 ddd.setValues(tab1[0:2],2,1)
442 subMesh=mesh.buildPartOfMySelfNode(ddd,False);
443 self.assertEqual("ddd",subMesh.getName())
444 self.assertTrue(isinstance(subMesh,MEDCouplingUMesh))
445 self.assertEqual(2,len(subMesh.getAllGeoTypes()));
446 self.assertEqual(NORM_TRI3,subMesh.getAllGeoTypes()[0]);
447 self.assertEqual(NORM_QUAD4,subMesh.getAllGeoTypes()[1]);
448 self.assertEqual(3,subMesh.getNumberOfCells());
449 self.assertEqual(14,subMesh.getNodalConnectivity().getNbOfElems());
450 self.assertEqual(4,subMesh.getNodalConnectivityIndex().getNbOfElems());
451 subConn2=[3,4,5,2,4,6,7,4,3,4,7,8,5,4]
452 subConnIndex2=[0,4,9,14]
453 self.assertEqual(subConn2[0:14],list(subMesh.getNodalConnectivity().getValues()));
454 self.assertEqual(subConnIndex2[0:4],list(subMesh.getNodalConnectivityIndex().getValues()));
455 #testing the case where length of tab2 is greater than max number of node per cell.
457 subMesh=mesh.buildPartOfMySelfNode(tab2[0:7],True);
458 self.assertTrue(isinstance(subMesh,MEDCouplingUMesh))
459 self.assertEqual(2,len(subMesh.getAllGeoTypes()));
460 self.assertEqual(NORM_TRI3,subMesh.getAllGeoTypes()[0]);
461 self.assertEqual(NORM_QUAD4,subMesh.getAllGeoTypes()[1]);
462 self.assertEqual(3,subMesh.getNumberOfCells());
465 def testZipCoords(self):
466 mesh=MEDCouplingDataForTest.build2DTargetMesh_1();
467 self.assertEqual(2,len(mesh.getAllGeoTypes()));
468 self.assertEqual(2,mesh.getSpaceDimension());
469 self.assertEqual(9,mesh.getNumberOfNodes());
470 self.assertEqual(5,mesh.getNumberOfCells());
471 oldConn=mesh.getNodalConnectivity().getValues()[0:mesh.getNodalConnectivity().getNbOfElems()];
472 oldConnIndex=mesh.getNodalConnectivityIndex().getValues()[0:mesh.getNumberOfCells()+1]
473 oldCoords=mesh.getCoords();
475 self.assertEqual(2,len(mesh.getAllGeoTypes()));
476 self.assertEqual(2,mesh.getSpaceDimension());
477 self.assertEqual(9,mesh.getNumberOfNodes());
478 self.assertEqual(5,mesh.getNumberOfCells());
479 self.assertEqual(mesh.getCoords().getValues()[0:2*9],oldCoords.getValues());
480 self.assertEqual(list(oldConn),list(mesh.getNodalConnectivity().getValues()));
481 self.assertEqual(list(oldConnIndex),list(mesh.getNodalConnectivityIndex().getValues()));
484 subMesh=mesh.buildPartOfMySelf(tab1,True);
485 self.assertTrue(isinstance(subMesh,MEDCouplingUMesh))
486 traducer=subMesh.zipCoordsTraducer();
487 expectedTraducer=[0, 1, -1, 2, 3, 4, -1, 5, 6]
488 self.assertEqual(expectedTraducer,list(traducer.getValues()));
489 self.assertEqual(NORM_QUAD4,subMesh.getAllGeoTypes()[0]);
490 self.assertEqual(2,subMesh.getNumberOfCells());
491 subConn=[4,0,2,3,1,4,5,6,4,3]
492 subConnIndex=[0,5,10]
493 self.assertEqual(7,subMesh.getNumberOfNodes());
494 self.assertEqual(10,subMesh.getNodalConnectivity().getNbOfElems());
495 self.assertEqual(3,subMesh.getNodalConnectivityIndex().getNbOfElems());
496 self.assertEqual(subConn,list(subMesh.getNodalConnectivity().getValues()));
497 self.assertEqual(subConnIndex,list(subMesh.getNodalConnectivityIndex().getValues()));
499 subMesh=mesh.buildPartOfMySelf(tab1,False);
500 self.assertTrue(isinstance(subMesh,MEDCouplingUMesh))
501 self.assertEqual(NORM_QUAD4,subMesh.getAllGeoTypes()[0]);
502 self.assertEqual(2,subMesh.getNumberOfCells());
503 self.assertEqual(7,subMesh.getNumberOfNodes());
504 self.assertEqual(10,subMesh.getNodalConnectivity().getNbOfElems());
505 self.assertEqual(3,subMesh.getNodalConnectivityIndex().getNbOfElems());
506 self.assertEqual(subConn,list(subMesh.getNodalConnectivity().getValues()));
507 self.assertEqual(subConnIndex,list(subMesh.getNodalConnectivityIndex().getValues()));
510 def testZipConnectivity(self):
511 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
512 m2=MEDCouplingDataForTest.build2DTargetMesh_1();
514 m3=m2.buildPartOfMySelf(cells1,True);
515 self.assertTrue(isinstance(m3,MEDCouplingUMesh))
516 m4=MEDCouplingDataForTest.build2DSourceMesh_1();
517 m5=MEDCouplingUMesh.MergeUMeshes(m1,m3);
518 m6=MEDCouplingUMesh.MergeUMeshes(m5,m4);
520 self.assertEqual(10,m6.getNumberOfCells());
521 self.assertEqual(22,m6.getNumberOfNodes());
522 (arr,areNodesMerged,newNbOfNodes)=m6.mergeNodes(1e-13);
523 self.assertTrue(areNodesMerged);
524 self.assertEqual(10,m6.getNumberOfCells());
525 self.assertEqual(9,m6.getNumberOfNodes());
527 arr=m6.zipConnectivityTraducer(0);
528 self.assertEqual(7,m6.getNumberOfCells());
530 arr=m6.zipConnectivityTraducer(0);
531 self.assertTrue(m7.isEqual(m6,1e-12));
532 self.assertEqual(7,m6.getNumberOfCells());
535 def testEqualMesh(self):
536 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
537 mesh2=MEDCouplingDataForTest.build2DTargetMesh_1();
539 self.assertTrue(mesh1.isEqual(mesh1,1e-12));
541 self.assertTrue(mesh1.isEqual(mesh2,1e-12));
542 self.assertTrue(mesh2.isEqual(mesh1,1e-12));
543 pt=mesh2.getCoords().getValues();
545 mesh2.getCoords().setIJ(0,1,5.999);
546 self.assertTrue(not mesh1.isEqual(mesh2,1e-12));
547 self.assertTrue(not mesh2.isEqual(mesh1,1e-12));
548 mesh2.getCoords().setIJ(0,1,tmp);
549 self.assertTrue(mesh1.isEqual(mesh2,1e-12));
550 self.assertTrue(mesh2.isEqual(mesh1,1e-12));
552 pt2=mesh1.getNodalConnectivity().getValues();
553 mesh1.getNodalConnectivity().setIJ(5,0,int(pt2[5])+1);
554 self.assertTrue(not mesh1.isEqual(mesh2,1e-12));
555 self.assertTrue(not mesh2.isEqual(mesh1,1e-12));
556 mesh1.getNodalConnectivity().setIJ(5,0,int(pt2[5]));
557 self.assertTrue(mesh1.isEqual(mesh2,1e-12));
558 self.assertTrue(mesh2.isEqual(mesh1,1e-12));
560 pt2=mesh1.getNodalConnectivityIndex().getValues();
561 mesh1.getNodalConnectivityIndex().setIJ(1,0,int(pt2[1]+1));
562 self.assertTrue(not mesh1.isEqual(mesh2,1e-12));
563 self.assertTrue(not mesh2.isEqual(mesh1,1e-12));
564 mesh1.getNodalConnectivityIndex().setIJ(1,0,int(pt2[1]));
565 self.assertTrue(mesh1.isEqual(mesh2,1e-12));
566 self.assertTrue(mesh2.isEqual(mesh1,1e-12));
568 tmp3=mesh1.getName();
569 mesh1.setName("lllll");
570 self.assertTrue(not mesh1.isEqual(mesh2,1e-12));
571 self.assertTrue(not mesh2.isEqual(mesh1,1e-12));
573 self.assertTrue(mesh1.isEqual(mesh2,1e-12));
574 self.assertTrue(mesh2.isEqual(mesh1,1e-12));
576 tmp3=mesh2.getCoords().getInfoOnComponent(1);
577 mesh2.getCoords().setInfoOnComponent(1,"kkkkkk");
578 self.assertTrue(not mesh1.isEqual(mesh2,1e-12));
579 self.assertTrue(not mesh2.isEqual(mesh1,1e-12));
580 mesh2.getCoords().setInfoOnComponent(1,tmp3);
581 self.assertTrue(mesh1.isEqual(mesh2,1e-12));
582 self.assertTrue(mesh2.isEqual(mesh1,1e-12));
585 def testEqualFieldDouble(self):
586 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
587 mesh2=MEDCouplingDataForTest.build2DTargetMesh_1();
589 fieldOnCells1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
590 fieldOnCells1.setMesh(mesh1);
591 fieldOnCells2=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
592 fieldOnCells2.setMesh(mesh2);
594 self.assertTrue(fieldOnCells1.isEqual(fieldOnCells2,1e-12,1e-15));
595 self.assertTrue(fieldOnCells2.isEqual(fieldOnCells1,1e-12,1e-15));
597 fieldOnNodes1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
598 self.assertTrue(not fieldOnCells1.isEqual(fieldOnNodes1,1e-12,1e-15));
599 self.assertTrue(not fieldOnNodes1.isEqual(fieldOnCells1,1e-12,1e-15));
601 fieldOnCells2=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
602 self.assertEqual(fieldOnCells2.getMesh(),None) # to check that convertMesh wrapping do not raise but return Py_None
603 self.assertTrue(not fieldOnCells1.isEqual(fieldOnCells2,1e-12,1e-15));
604 self.assertTrue(not fieldOnCells2.isEqual(fieldOnCells1,1e-12,1e-15));
605 fieldOnCells1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
606 self.assertTrue(fieldOnCells1.isEqual(fieldOnCells2,1e-12,1e-15));
607 self.assertTrue(fieldOnCells2.isEqual(fieldOnCells1,1e-12,1e-15));
608 fieldOnCells1.setTime(4.,6,7);
609 self.assertTrue(not fieldOnCells1.isEqual(fieldOnCells2,1e-12,1e-15));
610 self.assertTrue(not fieldOnCells2.isEqual(fieldOnCells1,1e-12,1e-15));
611 fieldOnCells2.setTime(4.,6,7);
612 self.assertTrue(fieldOnCells1.isEqual(fieldOnCells2,1e-12,1e-15));
613 self.assertTrue(fieldOnCells2.isEqual(fieldOnCells1,1e-12,1e-15));
614 fieldOnCells1.setName("Power");
615 self.assertTrue(not fieldOnCells1.isEqual(fieldOnCells2,1e-12,1e-15));
616 self.assertTrue(not fieldOnCells2.isEqual(fieldOnCells1,1e-12,1e-15));
617 fieldOnCells2.setName("Power");
618 self.assertTrue(fieldOnCells1.isEqual(fieldOnCells2,1e-12,1e-15));
619 self.assertTrue(fieldOnCells2.isEqual(fieldOnCells1,1e-12,1e-15));
621 fieldOnCells1.setMesh(mesh1);
622 self.assertTrue(not fieldOnCells1.isEqual(fieldOnCells2,1e-12,1e-15));
623 self.assertTrue(not fieldOnCells2.isEqual(fieldOnCells1,1e-12,1e-15));
624 fieldOnCells2.setMesh(mesh1);
625 self.assertTrue(fieldOnCells1.isEqual(fieldOnCells2,1e-12,1e-15));
626 self.assertTrue(fieldOnCells2.isEqual(fieldOnCells1,1e-12,1e-15));
627 arr=DataArrayDouble.New();
629 arr.setValues(mesh1.getNumberOfCells()*3*[6.],mesh1.getNumberOfCells(),3);
630 fieldOnCells1.setArray(arr);
631 self.assertTrue(not fieldOnCells1.isEqual(fieldOnCells2,1e-12,1e-15));
632 self.assertTrue(not fieldOnCells2.isEqual(fieldOnCells1,1e-12,1e-15));
633 fieldOnCells2.setArray(arr);
634 self.assertTrue(fieldOnCells1.isEqual(fieldOnCells2,1e-12,1e-15));
635 self.assertTrue(fieldOnCells2.isEqual(fieldOnCells1,1e-12,1e-15));
638 fieldOnCells2.setArray(arr2);
639 self.assertTrue(fieldOnCells1.isEqual(fieldOnCells2,1e-12,1e-15));
640 self.assertTrue(fieldOnCells2.isEqual(fieldOnCells1,1e-12,1e-15));
642 self.assertTrue(not fieldOnCells1.isEqual(fieldOnCells2,1e-12,1e-15));
643 self.assertTrue(not fieldOnCells2.isEqual(fieldOnCells1,1e-12,1e-15));
645 self.assertTrue(fieldOnCells1.isEqual(fieldOnCells2,1e-12,1e-15));
646 self.assertTrue(fieldOnCells2.isEqual(fieldOnCells1,1e-12,1e-15));
647 arr2.setName("popo2");
648 self.assertTrue(not fieldOnCells1.isEqual(fieldOnCells2,1e-12,1e-15));
649 self.assertTrue(not fieldOnCells2.isEqual(fieldOnCells1,1e-12,1e-15));
651 arr2.setName("popo");
652 self.assertTrue(fieldOnCells1.isEqual(fieldOnCells2,1e-12,1e-15));
653 self.assertTrue(fieldOnCells2.isEqual(fieldOnCells1,1e-12,1e-15));
655 arr2.setInfoOnComponent(2,"jjj");
656 self.assertTrue(not fieldOnCells1.isEqual(fieldOnCells2,1e-12,1e-15));
657 self.assertTrue(not fieldOnCells2.isEqual(fieldOnCells1,1e-12,1e-15));
658 arr.setInfoOnComponent(2,"jjj");
659 self.assertTrue(fieldOnCells1.isEqual(fieldOnCells2,1e-12,1e-15));
660 self.assertTrue(fieldOnCells2.isEqual(fieldOnCells1,1e-12,1e-15));
663 def testNatureChecking(self):
664 field=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
665 field.setNature(Integral);
666 field.setNature(ConservativeVolumic);
667 field.setNature(IntegralGlobConstraint);
668 field=MEDCouplingFieldDouble.New(ON_NODES,NO_TIME);
669 field.setNature(ConservativeVolumic);
670 self.assertRaises(InterpKernelException,field.setNature,Integral);
671 self.assertRaises(InterpKernelException,field.setNature,IntegralGlobConstraint);
674 def testBuildSubMeshData(self):
675 targetMesh=MEDCouplingDataForTest.build2DTargetMesh_1()
676 #check buildSubMesh on field on cells
677 fieldCells=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
678 fieldCells.setMesh(targetMesh);
680 ret1,di=fieldCells.buildSubMeshData(elts);
681 self.assertTrue(isinstance(ret1,MEDCouplingUMesh))
682 self.assertEqual(3,ret1.getNumberOfCells());
683 self.assertEqual(9,ret1.getNumberOfNodes());
684 self.assertEqual(3,di.getNumberOfTuples());
685 self.assertEqual(1,di.getNumberOfComponents());
686 toCheck=di.getValues();
687 self.assertTrue(elts,toCheck);
688 #check buildSubMesh on field on nodes
689 fieldNodes=MEDCouplingFieldDouble.New(ON_NODES,NO_TIME);
690 fieldNodes.setMesh(targetMesh);
691 ret2,di=fieldNodes.buildSubMeshData(elts);
692 self.assertTrue(isinstance(ret2,MEDCouplingUMesh))
693 self.assertEqual(3,ret2.getNumberOfCells());
694 self.assertEqual(6,ret2.getNumberOfNodes());
695 self.assertEqual(6,di.getNumberOfTuples());
696 self.assertEqual(1,di.getNumberOfComponents());
697 toCheck=di.getValues();
698 expected=[1,2,4,5,7,8]
699 self.assertEqual(expected,list(toCheck));
702 def testExtrudedMesh1(self):
703 mesh3D,mesh2D=MEDCouplingDataForTest.build3DExtrudedUMesh_1();
704 ext=MEDCouplingExtrudedMesh.New(mesh3D,mesh2D,1);
705 self.assertEqual(18,ext.getNumberOfCells());
706 self.assertEqual(60,ext.getNumberOfNodes());
707 ids3D=ext.getMesh3DIds();
708 ids3DExpected=[5,4,3,2,1,0, 11,10,9,8,7,6, 17,16,15,14,13,12]
709 self.assertEqual(18,ids3D.getNumberOfTuples());
710 self.assertEqual(1,ids3D.getNumberOfComponents());
711 self.assertEqual(ids3DExpected,list(ids3D.getValues()));
712 mesh1D=ext.getMesh1D();
713 self.assertEqual(4,mesh1D.getNumberOfNodes());
714 self.assertEqual(3,mesh1D.getNumberOfCells());
715 mesh1DExpected=[0.66666666666666663, 1.4583333333333333, 0, 0.66666666666666663,
716 1.4583333333333333, 1, 0.66666666666666663, 1.4583333333333333,
717 2, 0.66666666666666663, 1.4583333333333333, 3]
718 mesh1DCoords=mesh1D.getCoords();
719 self.assertEqual(4,mesh1DCoords.getNumberOfTuples());
720 self.assertEqual(3,mesh1DCoords.getNumberOfComponents());
721 self.assertEqual(mesh1DExpected,mesh1DCoords.getValues());
722 conn1D=mesh1D.getNodalConnectivity();
723 self.assertEqual(9,conn1D.getNumberOfTuples());
724 self.assertEqual(1,conn1D.getNumberOfComponents());
725 conn1DExpected=[1,0,1,1,1,2,1,2,3]
726 self.assertEqual(conn1DExpected,list(conn1D.getValues()));
729 def testExtrudedMesh3(self):
730 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
731 m1.changeSpaceDimension(3);
732 m2=MEDCouplingDataForTest.buildCU1DMesh_U();
733 m2.changeSpaceDimension(3);
736 m2.rotate(center,vector,-pi/2.);
737 m3=m1.buildExtrudedMesh(m2,0);
739 m4=MEDCouplingExtrudedMesh.New(m3,m1,0);
740 self.assertEqual(15,m4.getNumberOfCells());
741 self.assertEqual(5,m4.getMesh2D().getNumberOfCells());
742 self.assertEqual(3,m4.getMesh1D().getNumberOfCells());
743 m3DIds=m4.getMesh3DIds().getValues();
744 self.assertEqual(range(15),list(m3DIds));
745 #some random in cells to check that extrusion alg find it correctly
746 expected1=[1,3,2,0,6,5,7,10,11,8,12,9,14,13,4]
747 m3.renumberCells(expected1,False);
748 m4=MEDCouplingExtrudedMesh.New(m3,m1,0);
749 self.assertEqual(15,m4.getNumberOfCells());
750 self.assertEqual(5,m4.getMesh2D().getNumberOfCells());
751 self.assertEqual(3,m4.getMesh1D().getNumberOfCells());
752 m3DIds=m4.getMesh3DIds().getValues();
753 self.assertEqual(expected1,list(m3DIds));
754 #play with polygons and polyedrons
756 m1.convertToPolyTypes(cells);
757 m3=m1.buildExtrudedMesh(m2,0);
758 self.assertEqual(NORM_HEXA8,m3.getTypeOfCell(0));
759 self.assertEqual(NORM_PENTA6,m3.getTypeOfCell(1));
760 self.assertEqual(NORM_POLYHED,m3.getTypeOfCell(2));
761 self.assertEqual(NORM_POLYHED,m3.getTypeOfCell(3));
762 self.assertEqual(NORM_HEXA8,m3.getTypeOfCell(4));
763 m3.renumberCells(expected1,False);
764 m4=MEDCouplingExtrudedMesh.New(m3,m1,0);
765 self.assertEqual(15,m4.getNumberOfCells());
766 self.assertEqual(5,m4.getMesh2D().getNumberOfCells());
767 self.assertEqual(3,m4.getMesh1D().getNumberOfCells());
768 m3DIds=m4.getMesh3DIds().getValues();
769 self.assertEqual(expected1,list(m3DIds));
772 def testExtrudedMesh4(self):
773 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
775 m1.convertToPolyTypes(cells);
776 m1.changeSpaceDimension(3);
777 m2=MEDCouplingDataForTest.buildCU1DMesh_U();
778 m2.changeSpaceDimension(3);
781 m2.rotate(center,vector,-pi/2.);
782 m3=m1.buildExtrudedMesh(m2,0);
783 expected1=[1,3,2,0,6,5,7,10,11,8,12,9,14,13,4]
784 rexpected1=[3, 0, 2, 1, 14, 5, 4, 6, 9, 11, 7, 8, 10, 13, 12]
785 m3.renumberCells(expected1,False);
786 m4=MEDCouplingExtrudedMesh.New(m3,m1,0);
787 self.assertEqual(NORM_HEXA8,m4.getTypeOfCell(0));
788 self.assertEqual(NORM_HEXA8,m4.getTypeOfCell(1));
789 self.assertEqual(NORM_POLYHED,m4.getTypeOfCell(2));
790 self.assertEqual(NORM_PENTA6,m4.getTypeOfCell(7));
791 f=m4.getMeasureField(True);
793 self.assertEqual(15,arr.getNumberOfTuples());
794 self.assertEqual(1,arr.getNumberOfComponents());
795 arrPtr=arr.getValues();
796 expected2=[0.075,0.0375,0.0375,0.075,0.075,
797 0.1125,0.05625,0.05625,0.1125,0.1125,
798 0.0625,0.03125,0.03125,0.0625,0.0625]
800 self.assertAlmostEqual(expected2[rexpected1[i]],arrPtr[i],16);
802 m5=m4.build3DUnstructuredMesh();
803 self.assertTrue(m5.isEqual(m3,1e-12));
804 f=m5.getMeasureField(True);
806 self.assertTrue(isinstance(f.getMesh(),MEDCouplingExtrudedMesh))
808 arrPtr=arr.getValues();
810 self.assertAlmostEqual(expected2[rexpected1[i]],arrPtr[i],15);
814 def testFindCommonNodes(self):
815 targetMesh=MEDCouplingDataForTest.build3DTargetMesh_1();
816 comm,commI=targetMesh.findCommonNodes(1e-10,-1);
817 self.assertEqual(1,commI.getNumberOfTuples());
818 self.assertEqual(0,comm.getNumberOfTuples());
819 o2n,newNbOfNodes=targetMesh.buildNewNumberingFromCommonNodesFormat(comm,commI);
820 self.assertEqual(27,newNbOfNodes);
821 self.assertEqual(27,o2n.getNumberOfTuples());
823 self.assertEqual(o2nExp1,list(o2n.getValues()));
825 targetMesh=MEDCouplingDataForTest.build3DTargetMeshMergeNode_1();
826 self.assertEqual(31,targetMesh.getNumberOfNodes());
827 comm,commI=targetMesh.findCommonNodes(1e-10);# testing default parameter
828 self.assertEqual(3,commI.getNumberOfTuples());
829 self.assertEqual(6,comm.getNumberOfTuples());
830 commExpected=[1,27,28,29,23,30]
831 commIExpected=[0,4,6]
832 self.assertEqual(commExpected,list(comm.getValues()));
833 self.assertEqual(commIExpected,list(commI.getValues()));
834 o2n,newNbOfNodes=targetMesh.buildNewNumberingFromCommonNodesFormat(comm,commI);
835 self.assertEqual(31,o2n.getNumberOfTuples());
836 self.assertEqual(27,newNbOfNodes);
837 o2nExp2=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,
838 21,22,23,24,25,26,1,1,1,23]
839 self.assertEqual(o2nExp2,list(o2n.getValues()));
841 targetMesh=MEDCouplingDataForTest.build3DTargetMesh_1();
842 time=targetMesh.getTimeOfThis();
843 o2n,areNodesMerged,newNbOfNodes=targetMesh.mergeNodes(1e-10);
844 targetMesh.updateTime();
845 self.assertEqual(time,targetMesh.getTimeOfThis());
846 self.assertTrue(not areNodesMerged);
848 targetMesh=MEDCouplingDataForTest.build3DTargetMeshMergeNode_1();
849 time=targetMesh.getTimeOfThis();
850 o2n,areNodesMerged,newNbOfNodes=targetMesh.mergeNodes(1e-10);
851 targetMesh.updateTime();
852 self.assertTrue(time!=targetMesh.getTimeOfThis());
853 self.assertTrue(areNodesMerged);
854 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,
855 18,4,5,8,7,13,14,17,16,
856 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,
857 18,13,14,17,16,22,23,26,25]
858 self.assertEqual(72,targetMesh.getNodalConnectivity().getNumberOfTuples());
859 self.assertEqual(connExp,list(targetMesh.getNodalConnectivity().getValues()));
860 self.assertEqual(27,targetMesh.getCoords().getNumberOfTuples());
861 coordsExp=[ 0., 0., 0., 50., 0., 0. , 200., 0., 0. , 0., 50., 0., 50., 50., 0. ,
862 200., 50., 0., 0., 200., 0., 50., 200., 0. , 200., 200., 0. ,
863 0., 0., 50., 50., 0., 50. , 200., 0., 50. , 0., 50., 50., 50.,
864 50., 50. , 200., 50., 50., 0., 200., 50., 50., 200., 50. ,
865 200., 200., 50. , 0., 0., 200., 50., 0., 200. , 200., 0., 200.
866 , 0., 50., 200., 50., 50., 200. , 200., 50., 200.,
867 0., 200., 200., 50., 200., 200. , 200., 200., 200. ]
868 self.assertEqual(coordsExp,targetMesh.getCoords().getValues());
870 targetMesh=MEDCouplingDataForTest.build2DTargetMeshMergeNode_1();
871 self.assertEqual(18,targetMesh.getNumberOfNodes());
872 time=targetMesh.getTimeOfThis();
873 o2n,areNodesMerged,newNbOfNodes=targetMesh.mergeNodes(1e-10);
874 self.assertTrue(time!=targetMesh.getTimeOfThis());
875 self.assertTrue(areNodesMerged);
876 self.assertEqual(9,targetMesh.getNumberOfNodes());
877 connExp2=[4,0,4,3,1, 3,1,3,2, 3,3,5,2, 4,4,6,7,3, 4,7,8,5,3]
878 self.assertEqual(23,targetMesh.getNodalConnectivity().getNumberOfTuples());
879 self.assertEqual(connExp2,list(targetMesh.getNodalConnectivity().getValues()));
880 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]
881 self.assertEqual(9,targetMesh.getCoords().getNumberOfTuples());
882 self.assertEqual(coordsExp2,targetMesh.getCoords().getValues());
885 def testCheckButterflyCells(self):
886 sourceMesh=MEDCouplingDataForTest.build2DTargetMesh_1();
887 cells=sourceMesh.checkButterflyCells();
888 self.assertEqual(0,len(cells));
889 conn=sourceMesh.getNodalConnectivity()
891 conn.setIJ(15,0,conn.getIJ(16,0))
893 cells=sourceMesh.checkButterflyCells();
894 self.assertEqual(1,len(cells));
895 self.assertEqual([3],cells.getValues());
897 conn.setIJ(15,0,conn.getIJ(16,0))
899 cells=sourceMesh.checkButterflyCells();
900 self.assertEqual(0,len(cells));
902 sourceMesh=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
903 cells=sourceMesh.checkButterflyCells();
904 self.assertEqual(0,len(cells));
905 conn=sourceMesh.getNodalConnectivity()
907 conn.setIJ(15,0,conn.getIJ(16,0))
909 cells=sourceMesh.checkButterflyCells();
910 self.assertEqual(1,len(cells));
911 self.assertEqual([3],cells.getValues());
913 conn.setIJ(15,0,conn.getIJ(16,0))
915 cells=sourceMesh.checkButterflyCells();
916 self.assertEqual(0,len(cells));
919 def testMergeMesh1(self):
920 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
921 m2=MEDCouplingDataForTest.build2DSourceMesh_1();
924 m3=m1.mergeMyselfWith(m2);
925 self.assertTrue(isinstance(m3,MEDCouplingUMesh));
927 m4=MEDCouplingDataForTest.build2DTargetMeshMerged_1();
928 self.assertTrue(m3.isEqual(m4,1.e-12));
929 da,isMerged,newNbOfNodes=m3.mergeNodes(1.e-12);
930 self.assertEqual(11,m3.getNumberOfNodes());
931 self.assertTrue(isMerged);
934 def testMergeMeshOnSameCoords1(self):
935 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
936 m2=MEDCouplingDataForTest.build2DTargetMesh_1();
938 m2.convertToPolyTypes(cells);
939 m1.tryToShareSameCoords(m2,1e-12);
940 m3=MEDCouplingDataForTest.build2DTargetMesh_1();
941 m3.tryToShareSameCoords(m2,1e-12);
943 m4=MEDCouplingUMesh.MergeUMeshesOnSameCoords(meshes);
945 self.assertEqual(15,m4.getNumberOfCells());
947 m1_1=m4.buildPartOfMySelf(cells1,True);
948 m1_1.setName(m1.getName());
949 self.assertTrue(m1.isEqual(m1_1,1e-12));
951 m2_1=m4.buildPartOfMySelf(cells2,True);
952 m2_1.setName(m2.getName());
953 self.assertTrue(m2.isEqual(m2_1,1e-12));
954 cells3=[10,11,12,13,14]
955 m3_1=m4.buildPartOfMySelf(cells3,True);
956 m3_1.setName(m3.getName());
957 self.assertTrue(m3.isEqual(m3_1,1e-12));
960 def testMergeField1(self):
961 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
962 m2=MEDCouplingDataForTest.build2DSourceMesh_1();
965 f1=m1.getMeasureField(True);
966 f2=m2.getMeasureField(True);
967 f3=MEDCouplingFieldDouble.MergeFields(f1,f2);
969 m4=MEDCouplingDataForTest.build2DTargetMeshMerged_1();
970 self.assertTrue(f3.getMesh().isEqual(m4,1.e-12));
972 self.assertEqual(name,"MeasureOfMesh_");
973 self.assertEqual(f3.getTypeOfField(),ON_CELLS);
974 self.assertEqual(f3.getTimeDiscretization(),ONE_TIME);
975 self.assertEqual(1,f3.getNumberOfComponents());
976 self.assertEqual(7,f3.getNumberOfTuples());
977 values=[0.25,0.125,0.125,0.25,0.25,0.5,0.5]
978 tmp=f3.getArray().getValues();
979 self.assertEqual(len(values),len(tmp))
981 self.assertTrue(abs(values[i]-tmp[i])<1e-12)
985 def testFillFromAnalytic(self):
986 m=MEDCouplingDataForTest.build2DTargetMesh_1();
987 m.setTime(3.4,5,6); m.setTimeUnit("us");
988 f1=m.fillFromAnalytic(ON_CELLS,1,"x+y");
989 self.assertAlmostEqual(3.4,f1.getTime()[0],12) ; self.assertEqual(5,f1.getTime()[1]) ; self.assertEqual(6,f1.getTime()[2])
990 self.assertEqual("us",f1.getTimeUnit())
992 self.assertEqual(f1.getTypeOfField(),ON_CELLS);
993 self.assertEqual(f1.getTimeDiscretization(),ONE_TIME);
994 self.assertEqual(1,f1.getNumberOfComponents());
995 self.assertEqual(5,f1.getNumberOfTuples());
996 values1=[-0.1,0.23333333333333336,0.56666666666666665,0.4,0.9]
997 tmp=f1.getArray().getValues();
998 self.assertEqual(len(values1),len(tmp))
999 for i in xrange(len(tmp)):
1000 self.assertTrue(abs(tmp[i]-values1[i])<1.e-12)
1003 f1=m.fillFromAnalytic(ON_NODES,1,"x+y");
1004 f1.checkCoherency();
1005 self.assertEqual(f1.getTypeOfField(),ON_NODES);
1006 self.assertEqual(f1.getTimeDiscretization(),ONE_TIME);
1007 self.assertEqual(1,f1.getNumberOfComponents());
1008 self.assertEqual(9,f1.getNumberOfTuples());
1009 values2=[-0.6,-0.1,0.4,-0.1,0.4,0.9,0.4,0.9,1.4]
1010 tmp=f1.getArray().getValues();
1011 self.assertEqual(len(values2),len(tmp))
1012 for i in xrange(len(tmp)):
1013 self.assertTrue(abs(tmp[i]-values2[i])<1.e-12)
1016 f1=m.fillFromAnalytic(ON_NODES,2,"(x+y)*IVec+(2*(x+y))*JVec");
1017 f1.checkCoherency();
1018 self.assertEqual(f1.getTypeOfField(),ON_NODES);
1019 self.assertEqual(f1.getTimeDiscretization(),ONE_TIME);
1020 self.assertEqual(2,f1.getNumberOfComponents());
1021 self.assertEqual(9,f1.getNumberOfTuples());
1022 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]
1023 tmp=f1.getArray().getValues();
1024 self.assertEqual(len(values3),len(tmp))
1025 for i in xrange(len(tmp)):
1026 self.assertTrue(abs(tmp[i]-values3[i])<1.e-12)
1028 values4=f1.accumulate();
1029 self.assertEqual(2,len(values4))
1030 self.assertTrue(abs(3.6-values4[0])<1.e-12);
1031 self.assertTrue(abs(7.2-values4[1])<1.e-12);
1032 values4=f1.integral(True);
1033 self.assertEqual(2,len(values4))
1034 self.assertTrue(abs(0.5-values4[0])<1.e-12);
1035 self.assertTrue(abs(1.-values4[1])<1.e-12);
1037 self.assertRaises(InterpKernelException,m.fillFromAnalytic,ON_NODES,1,"1./(x-0.2)");
1040 def testFillFromAnalytic2(self):
1041 m=MEDCouplingDataForTest.build2DTargetMesh_1();
1042 f1=m.fillFromAnalytic(ON_CELLS,1,"y+x");
1043 f1.checkCoherency();
1044 self.assertEqual(f1.getTypeOfField(),ON_CELLS);
1045 self.assertEqual(f1.getTimeDiscretization(),ONE_TIME);
1046 self.assertEqual(1,f1.getNumberOfComponents());
1047 self.assertEqual(5,f1.getNumberOfTuples());
1048 values1=[-0.1,0.23333333333333336,0.56666666666666665,0.4,0.9]
1049 tmp=f1.getArray().getValues();
1050 self.assertEqual(len(values1),len(tmp))
1051 for i in xrange(len(values1)):
1052 self.assertTrue(abs(values1[i]-tmp[i])<1.e-12);
1055 f1=m.fillFromAnalytic(ON_NODES,1,"y+2*x");
1056 f1.checkCoherency();
1057 self.assertEqual(f1.getTypeOfField(),ON_NODES);
1058 self.assertEqual(f1.getTimeDiscretization(),ONE_TIME);
1059 self.assertEqual(1,f1.getNumberOfComponents());
1060 self.assertEqual(9,f1.getNumberOfTuples());
1061 values2=[-0.9,0.1,1.1,-0.4,0.6,1.6,0.1,1.1,2.1]
1062 tmp=f1.getArray().getValues();
1063 self.assertEqual(len(values2),len(tmp))
1064 for i in xrange(len(values2)):
1065 self.assertTrue(abs(values2[i]-tmp[i])<1.e-12);
1067 f1=m.fillFromAnalytic(ON_NODES,1,"2.*x+y");
1068 f1.checkCoherency();
1069 self.assertEqual(f1.getTypeOfField(),ON_NODES);
1070 self.assertEqual(f1.getTimeDiscretization(),ONE_TIME);
1071 self.assertEqual(1,f1.getNumberOfComponents());
1072 self.assertEqual(9,f1.getNumberOfTuples());
1073 tmp=f1.getArray().getValues();
1074 values2Bis=[-0.9,0.1,1.1,-0.4,0.6,1.6,0.1,1.1,2.1]
1075 self.assertEqual(len(values2Bis),len(tmp))
1076 for i in xrange(len(values2Bis)):
1077 self.assertTrue(abs(values2Bis[i]-tmp[i])<1.e-12);
1080 f1=m.fillFromAnalytic(ON_NODES,2,"(x+y)*IVec+2*(x+y)*JVec");
1081 f1.checkCoherency();
1082 self.assertEqual(f1.getTypeOfField(),ON_NODES);
1083 self.assertEqual(f1.getTimeDiscretization(),ONE_TIME);
1084 self.assertEqual(2,f1.getNumberOfComponents());
1085 self.assertEqual(9,f1.getNumberOfTuples());
1086 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]
1087 tmp=f1.getArray().getValues();
1088 self.assertEqual(len(values3),len(tmp))
1089 for i in xrange(len(values3)):
1090 self.assertTrue(abs(values3[i]-tmp[i])<1.e-12);
1092 values4=f1.accumulate();
1093 self.assertTrue(abs(3.6-values4[0])<1.e-12);
1094 self.assertTrue(abs(7.2-values4[1])<1.e-12);
1095 values4=f1.integral(True);
1096 self.assertTrue(abs(0.5-values4[0])<1.e-12);
1097 self.assertTrue(abs(1.-values4[1])<1.e-12);
1100 def testApplyFunc(self):
1101 m=MEDCouplingDataForTest.build2DTargetMesh_1();
1102 f1=m.fillFromAnalytic(ON_NODES,2,"(x+y)*IVec+(2*(x+y))*JVec");
1103 f1.checkCoherency();
1104 self.assertEqual(f1.getTypeOfField(),ON_NODES);
1105 self.assertEqual(f1.getTimeDiscretization(),ONE_TIME);
1106 self.assertEqual(2,f1.getNumberOfComponents());
1107 self.assertEqual(9,f1.getNumberOfTuples());
1108 f1.applyFunc(1,"x+y");
1109 self.assertEqual(f1.getTypeOfField(),ON_NODES);
1110 self.assertEqual(f1.getTimeDiscretization(),ONE_TIME);
1111 self.assertEqual(1,f1.getNumberOfComponents());
1112 self.assertEqual(9,f1.getNumberOfTuples());
1113 values1=[-1.8,-0.3,1.2,-0.3,1.2,2.7,1.2,2.7,4.2]
1114 tmp=f1.getArray().getValues();
1115 self.assertEqual(len(values1),len(tmp))
1116 for i in xrange(len(tmp)):
1117 self.assertTrue(abs(tmp[i]-values1[i])<1.e-12)
1121 def testApplyFunc2(self):
1122 m=MEDCouplingDataForTest.build2DTargetMesh_1();
1123 f1=m.fillFromAnalytic(ON_NODES,2,"(x+y)*IVec+2*(x+y)*JVec");
1124 f1.checkCoherency();
1125 self.assertEqual(f1.getTypeOfField(),ON_NODES);
1126 self.assertEqual(f1.getTimeDiscretization(),ONE_TIME);
1127 self.assertEqual(2,f1.getNumberOfComponents());
1128 self.assertEqual(9,f1.getNumberOfTuples());
1131 self.assertRaises(InterpKernelException, f2.applyFunc, 1, "a+b+c+d");
1132 self.assertRaises(InterpKernelException, f2.applyFunc, 1, "a/0");
1133 self.assertRaises(InterpKernelException, f2.applyFunc, "a/0");
1134 f2.applyFunc("abs(u)^2.4+2*u");
1135 self.assertEqual(f1.getTypeOfField(),ON_NODES);
1136 self.assertEqual(f1.getTimeDiscretization(),ONE_TIME);
1137 self.assertEqual(2,f1.getNumberOfComponents());
1138 self.assertEqual(9,f1.getNumberOfTuples());
1139 values2=[-0.9065304805418678, -0.85105859001709905, -0.19601892829446504, -0.37898777756476987,
1140 0.91090317490482353, 2.1853504664669781, -0.19601892829446504, -0.37898777756476987,
1141 0.91090317490482353, 2.1853504664669781, 2.5765725275664879, 7.6987743736515295,
1142 0.91090317490482353, 2.1853504664669781, 2.5765725275664879, 7.6987743736515295,
1143 5.0423700574830965, 17.435300118916864]
1144 tmp=f2.getArray().getValues();
1145 self.assertEqual(len(tmp),len(values2))
1146 for i in xrange(len(tmp)):
1147 self.assertTrue(abs(tmp[i]-values2[i])<1.e-12)
1150 f1.applyFunc(1,"x+y");
1151 self.assertEqual(f1.getTypeOfField(),ON_NODES);
1152 self.assertEqual(f1.getTimeDiscretization(),ONE_TIME);
1153 self.assertEqual(1,f1.getNumberOfComponents());
1154 self.assertEqual(9,f1.getNumberOfTuples());
1155 values1=[-1.8,-0.3,1.2,-0.3,1.2,2.7,1.2,2.7,4.2]
1156 tmp=f1.getArray().getValues();
1157 self.assertEqual(len(tmp),len(values1))
1158 for i in xrange(len(tmp)):
1159 self.assertTrue(abs(tmp[i]-values1[i])<1.e-12)
1163 def testOperationsOnFields(self):
1164 m=MEDCouplingDataForTest.build2DTargetMesh_1();
1165 f1=m.fillFromAnalytic(ON_NODES,1,"x+y");
1166 f2=m.fillFromAnalytic(ON_NODES,1,"x+y");
1167 f1.checkCoherency();
1168 f2.checkCoherency();
1170 f3.checkCoherency();
1171 self.assertEqual(f3.getTypeOfField(),ON_NODES);
1172 self.assertEqual(f3.getTimeDiscretization(),ONE_TIME);
1173 values1=[-1.2,-0.2,0.8,-0.2,0.8,1.8,0.8,1.8,2.8]
1174 tmp=f3.getArray().getValues();
1175 self.assertEqual(len(values1),len(tmp))
1176 for i in xrange(len(tmp)):
1177 self.assertTrue(abs(tmp[i]-values1[i])<1.e-12)
1181 f3.checkCoherency();
1182 self.assertEqual(f3.getTypeOfField(),ON_NODES);
1183 self.assertEqual(f3.getTimeDiscretization(),ONE_TIME);
1184 values2=[0.36,0.01,0.16,0.01,0.16,0.81,0.16,0.81,1.96]
1185 tmp=f3.getArray().getValues();
1186 self.assertEqual(len(values2),len(tmp))
1187 for i in xrange(len(tmp)):
1188 self.assertTrue(abs(tmp[i]-values2[i])<1.e-12)
1193 f4.checkCoherency();
1194 self.assertEqual(f4.getTypeOfField(),ON_NODES);
1195 self.assertEqual(f4.getTimeDiscretization(),ONE_TIME);
1196 values3=[0.6,0.1,-0.4,0.1,-0.4,-0.9,-0.4,-0.9,-1.4]
1197 tmp=f4.getArray().getValues();
1198 self.assertEqual(len(values3),len(tmp))
1199 for i in xrange(len(tmp)):
1200 self.assertTrue(abs(tmp[i]-values3[i])<1.e-12)
1205 f4.checkCoherency();
1206 self.assertEqual(f4.getTypeOfField(),ON_NODES);
1207 self.assertEqual(f4.getTimeDiscretization(),ONE_TIME);
1208 tmp=f4.getArray().getValues();
1209 for i in xrange(len(tmp)):
1210 self.assertTrue(abs(tmp[i]-2.)<1.e-12)
1213 f4=f2.buildNewTimeReprFromThis(NO_TIME,False);
1214 f4.checkCoherency();
1215 self.assertEqual(f4.getTypeOfField(),ON_NODES);
1216 self.assertEqual(f4.getTimeDiscretization(),NO_TIME);
1217 self.assertRaises(InterpKernelException,f1.__add__,f4);
1218 f5=f4.buildNewTimeReprFromThis(ONE_TIME,False);
1219 self.assertEqual(f5.getTypeOfField(),ON_NODES);
1220 self.assertEqual(f5.getTimeDiscretization(),ONE_TIME);
1222 tmp=f3.getArray().getValues();
1223 values4=[-1.2,-0.2,0.8,-0.2,0.8,1.8,0.8,1.8,2.8]
1224 self.assertEqual(len(values3),len(tmp))
1225 for i in xrange(len(tmp)):
1226 self.assertTrue(abs(tmp[i]-values4[i])<1.e-12)
1229 f4=f2.buildNewTimeReprFromThis(NO_TIME,True);
1230 f4.checkCoherency();
1231 self.assertEqual(f4.getTypeOfField(),ON_NODES);
1232 self.assertEqual(f4.getTimeDiscretization(),NO_TIME);
1233 self.assertRaises(InterpKernelException,f1.__add__,f4);
1234 f5=f4.buildNewTimeReprFromThis(ONE_TIME,True);
1235 self.assertEqual(f5.getTypeOfField(),ON_NODES);
1236 self.assertEqual(f5.getTimeDiscretization(),ONE_TIME);
1238 tmp=f3.getArray().getValues();
1239 values5=[-1.2,-0.2,0.8,-0.2,0.8,1.8,0.8,1.8,2.8]
1240 self.assertEqual(len(values5),len(tmp))
1241 for i in xrange(len(tmp)):
1242 self.assertTrue(abs(tmp[i]-values5[i])<1.e-12)
1246 def testOperationsOnFields2(self):
1247 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
1248 m.setTime(3.4,5,6); m.setTimeUnit("us");
1249 f1=m.fillFromAnalytic(ON_NODES,1,"x+y+z");
1250 f2=m.fillFromAnalytic(ON_NODES,1,"a*a+b+c*c");
1252 f3.checkCoherency();
1253 self.assertEqual(f3.getTypeOfField(),ON_NODES);
1254 self.assertEqual(f3.getTimeDiscretization(),ONE_TIME);
1255 expected1=[-2.4999999999999991, 1.2162162162162162, 0.77868852459016391,
1256 0.7407407407407407, 1.129032258064516, 0.81632653061224492,
1257 0.86538461538461531, 1.0919540229885056, 0.84302325581395343]
1258 self.assertEqual(1,f3.getNumberOfComponents());
1259 self.assertEqual(9,f3.getNumberOfTuples());
1260 val=f3.getArray().getValues();
1262 self.assertTrue(abs(expected1[i]-val[i])<1.e-12);
1264 f1=m.buildOrthogonalField();
1265 self.assertAlmostEqual(3.4,f1.getTime()[0],12) ; self.assertEqual(5,f1.getTime()[1]) ; self.assertEqual(6,f1.getTime()[2])
1266 self.assertEqual("us",f1.getTimeUnit())
1267 f2=m.fillFromAnalytic(ON_CELLS,1,"x");
1269 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]
1270 val=f3.getArray().getValues();
1271 for i in xrange(15):
1272 self.assertTrue(abs(expected2[i]-val[i])<1.e-12);
1276 val=f3.getArray().getValues();
1277 for i in xrange(15):
1278 self.assertTrue(abs(expected2[i]-val[i])<1.e-12);
1282 def testOperationsOnFields3(self):
1283 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
1284 f1=m.fillFromAnalytic(ON_NODES,1,"x+y+z");
1285 f2=m.fillFromAnalytic(ON_NODES,1,"a*a+b+c*c");
1287 f1.checkCoherency();
1288 self.assertEqual(f1.getTypeOfField(),ON_NODES);
1289 self.assertEqual(f1.getTimeDiscretization(),ONE_TIME);
1290 expected1=[-2.4999999999999991, 1.2162162162162162, 0.77868852459016391,
1291 0.7407407407407407, 1.129032258064516, 0.81632653061224492,
1292 0.86538461538461531, 1.0919540229885056, 0.84302325581395343]
1293 self.assertEqual(1,f1.getNumberOfComponents());
1294 self.assertEqual(9,f1.getNumberOfTuples());
1295 val=f1.getArray().getValues();
1297 self.assertTrue(abs(expected1[i]-val[i])<1.e-12);
1300 f1=m.buildOrthogonalField();
1301 f2=m.fillFromAnalytic(ON_CELLS,1,"x");
1303 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]
1304 val=f1.getArray().getValues();
1305 for i in xrange(15):
1306 self.assertTrue(abs(expected2[i]-val[i])<1.e-12);
1309 f1=m.buildOrthogonalField();
1310 # to avoid valgrind leaks
1311 # self.assertRaises(InterpKernelException,f2.__imul__,f1);
1314 def testOperationsOnFields4(self):
1315 m=MEDCouplingDataForTest.build2DTargetMesh_1();
1316 nbOfCells=m.getNumberOfCells();
1317 f1=MEDCouplingFieldDouble.New(ON_CELLS,CONST_ON_TIME_INTERVAL);
1319 array=DataArrayDouble.New();
1321 self.assertRaises(InterpKernelException,f1.setEndArray,array);
1322 self.assertRaises(InterpKernelException,f1.getEndArray);
1323 arr1=[0.,10.,20.,1.,11.,21.,2.,12.,22.,3.,13.,23.,4.,14.,24.]
1324 arr2=[5.,15.,25.,6.,16.,26.,7.,17.,27.,8.,18.,28.,9.,19.,29.]
1325 array.setValues(arr1,nbOfCells,3);
1326 f1.setStartTime(2.,0,0);
1327 f1.setEndTime(3.,0,0);
1328 f1.checkCoherency();
1330 res=f1.getValueOn(pos);
1331 self.assertTrue(abs(arr1[3]-res[0])<1.e-12);
1332 self.assertTrue(abs(arr1[4]-res[1])<1.e-12);
1333 self.assertTrue(abs(arr1[5]-res[2])<1.e-12);
1335 res=f1.getValueOn(pos,2.2);
1336 self.assertTrue(abs(arr1[3]-res[0])<1.e-12);
1337 self.assertTrue(abs(arr1[4]-res[1])<1.e-12);
1338 self.assertTrue(abs(arr1[5]-res[2])<1.e-12);
1340 self.assertRaises(InterpKernelException,f1.getValueOn,pos,3.2)
1341 f2=MEDCouplingFieldDouble.New(ON_CELLS,LINEAR_TIME);
1343 f2.setArray(f1.getArray());
1344 f2.setStartTime(2.,3,0);
1345 f2.setEndTime(4.,13,0);
1346 self.assertRaises(InterpKernelException,f2.checkCoherency)
1347 array2=DataArrayDouble.New();
1348 array2.setValues(arr2,nbOfCells,3);
1349 f2.setEndArray(array2);
1350 f2.checkCoherency();
1353 res=f2.getValueOn(pos,3.21);
1354 self.assertTrue(abs(4.025-res[0])<1.e-12);
1355 self.assertTrue(abs(14.025-res[1])<1.e-12);
1356 self.assertTrue(abs(24.025-res[2])<1.e-12);
1358 self.assertTrue(f2.isEqual(f3,1e-12,1e-12));
1359 f3.getEndArray().setIJ(0,0,5.001);
1360 self.assertTrue(not f2.isEqual(f3,1e-12,1e-12));
1361 self.assertTrue(f2.isEqual(f3,1e-12,1e-2));
1362 f3.setStartTime(2.1,3,0);
1363 self.assertTrue(not f2.isEqual(f3,1e-12,1e-2));
1364 f3.setStartTime(2.,3,0);
1365 self.assertTrue(f2.isEqual(f3,1e-12,1e-2));
1366 f3.setStartTime(2.,4,0);
1367 self.assertTrue(not f2.isEqual(f3,1e-12,1e-2));
1368 f3.setStartTime(2.,3,1);
1369 self.assertTrue(not f2.isEqual(f3,1e-12,1e-2));
1370 f3.setStartTime(2.,3,0);
1371 self.assertTrue(f2.isEqual(f3,1e-12,1e-2));
1372 f3.setEndTime(4.1,13,0);
1373 self.assertTrue(not f2.isEqual(f3,1e-12,1e-2));
1374 f3.setEndTime(4.,13,0);
1375 self.assertTrue(f2.isEqual(f3,1e-12,1e-2));
1376 f3.setEndTime(4.,14,0);
1377 self.assertTrue(not f2.isEqual(f3,1e-12,1e-2));
1378 f3.setEndTime(4.,13,1);
1379 self.assertTrue(not f2.isEqual(f3,1e-12,1e-2));
1380 f3.setEndTime(4.,13,0);
1381 self.assertTrue(f2.isEqual(f3,1e-12,1e-2));
1384 res=f4.getValueOn(pos,3.21);
1385 self.assertTrue(abs(8.05-res[0])<1.e-12);
1386 self.assertTrue(abs(28.05-res[1])<1.e-12);
1387 self.assertTrue(abs(48.05-res[2])<1.e-12);
1390 res=f4.getValueOn(pos,3.21);
1391 self.assertTrue(abs(12.075-res[0])<1.e-12);
1392 self.assertTrue(abs(42.075-res[1])<1.e-12);
1393 self.assertTrue(abs(72.075-res[2])<1.e-12);
1396 def testMergeNodesOnField(self):
1397 targetMesh=MEDCouplingDataForTest.build3DTargetMeshMergeNode_1();
1398 f1=targetMesh.fillFromAnalytic(ON_NODES,1,"x+y+z");
1399 f1.mergeNodes(1e-10);
1401 targetMesh=MEDCouplingDataForTest.build3DTargetMeshMergeNode_1();
1402 f1=targetMesh.fillFromAnalytic(ON_NODES,1,"x+y+z");
1404 tmp.setIJ(0,0,1000.);
1405 f1.mergeNodes(1e-10);
1407 targetMesh=MEDCouplingDataForTest.build3DTargetMeshMergeNode_1();
1408 f1=targetMesh.fillFromAnalytic(ON_NODES,1,"x+y+z");
1410 tmp.setIJ(1,0,1000.);
1411 self.assertRaises(InterpKernelException,f1.mergeNodes,1.e-10)
1414 def testCheckConsecutiveCellTypes(self):
1415 sourceMesh=MEDCouplingDataForTest.build2DSourceMesh_1();
1416 targetMesh=MEDCouplingDataForTest.build2DTargetMesh_1();
1417 self.assertTrue(sourceMesh.checkConsecutiveCellTypes());
1418 order1=[NORM_TRI3,NORM_QUAD4]
1419 order2=[NORM_QUAD4,NORM_TRI3]
1420 self.assertTrue(not targetMesh.checkConsecutiveCellTypes());
1421 self.assertTrue(not targetMesh.checkConsecutiveCellTypesAndOrder(order1));
1422 self.assertTrue(not targetMesh.checkConsecutiveCellTypesAndOrder(order2));
1423 da=targetMesh.getRenumArrForConsecutiveCellTypesSpec(order1);
1424 self.assertEqual(5,da.getNumberOfTuples());
1425 self.assertEqual(1,da.getNumberOfComponents());
1426 expected1=[2,0,1,3,4]
1427 self.assertTrue(expected1==list(da.getValues()));
1428 da=targetMesh.getRenumArrForConsecutiveCellTypesSpec(order2);
1429 self.assertEqual(5,da.getNumberOfTuples());
1430 self.assertEqual(1,da.getNumberOfComponents());
1431 expected2=[0,3,4,1,2]
1432 self.assertTrue(expected2==list(da.getValues()));
1433 renumber1=[4,0,1,2,3]
1434 targetMesh.renumberCells(renumber1,False);
1435 self.assertTrue(targetMesh.checkConsecutiveCellTypes());
1436 self.assertTrue(targetMesh.checkConsecutiveCellTypesAndOrder(order1));
1437 self.assertTrue(not targetMesh.checkConsecutiveCellTypesAndOrder(order2));
1440 def testRearrange2ConsecutiveCellTypes(self):
1441 m1_1=MEDCouplingDataForTest.build2DSourceMesh_1();
1442 m2_1=MEDCouplingDataForTest.build2DTargetMesh_1();
1443 arr1=m1_1.rearrange2ConsecutiveCellTypes();
1444 m1_2=MEDCouplingDataForTest.build2DSourceMesh_1();
1445 self.assertTrue(m1_2.isEqual(m1_1,1e-12));
1447 self.assertEqual(2,arr1.getNumberOfTuples());
1448 self.assertEqual(1,arr1.getNumberOfComponents());
1449 self.assertEqual(expected1,arr1.getValues());
1450 expected2=[0,3,4,1,2]
1451 arr1=m2_1.rearrange2ConsecutiveCellTypes();
1452 self.assertEqual(5,arr1.getNumberOfTuples());
1453 self.assertEqual(1,arr1.getNumberOfComponents());
1454 self.assertEqual(expected2,list(arr1.getValues()));
1455 m2_2=MEDCouplingDataForTest.build2DTargetMesh_1();
1456 self.assertEqual(5,arr1.getNumberOfTuples());
1457 self.assertEqual(1,arr1.getNumberOfComponents());
1458 self.assertEqual(expected2,list(arr1.getValues()));
1459 self.assertTrue(not m2_2.isEqual(m2_1,1e-12));
1460 m2_2.renumberCells(expected2,False);
1461 self.assertTrue(m2_2.isEqual(m2_1,1e-12));
1464 def testSplitByType(self):
1465 m1=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
1467 self.assertEqual(3,len(v));
1468 m2=MEDCouplingUMesh.MergeUMeshesOnSameCoords(v);
1469 m2.setName(m1.getName());
1470 self.assertTrue(m1.isEqual(m2,1.e-12));
1473 def testFuseUMeshesOnSameCoords(self):
1474 m2=MEDCouplingDataForTest.build2DTargetMesh_1();
1476 m3=m2.buildPartOfMySelf(cells1,True);
1477 self.assertTrue(isinstance(m3,MEDCouplingUMesh))
1479 m4=m2.buildPartOfMySelf(cells2,True);
1480 self.assertTrue(isinstance(m4,MEDCouplingUMesh))
1482 m5=m2.buildPartOfMySelf(cells3,True);
1483 self.assertTrue(isinstance(m5,MEDCouplingUMesh))
1486 m7,corr=MEDCouplingUMesh.FuseUMeshesOnSameCoords(meshes,0);
1487 self.assertEqual(4,m7.getNumberOfCells());
1488 self.assertEqual(3,len(corr));
1489 expectedVals1=[3,3,2]
1490 expectedVals2=[[0,1,2],[3,0,2],[3,0]]
1493 self.assertEqual(1,arr.getNumberOfComponents());
1494 nbOfVals=expectedVals1[i];
1495 self.assertEqual(nbOfVals,arr.getNumberOfTuples());
1496 vals=arr.getValues();
1497 self.assertEqual(expectedVals2[i],list(vals));
1499 arr2,fidsOfGroups=DataArrayInt.MakePartition(corr,m7.getNumberOfCells());
1501 fidsGrp=[[1,3,5],[3,4,5],[4,5]]
1502 self.assertEqual(3,len(fidsOfGroups));
1503 self.assertEqual(1,arr2.getNumberOfComponents());
1504 self.assertEqual(4,arr2.getNumberOfTuples());
1505 self.assertEqual(fidExp,list(arr2.getValues()));
1507 nbOfVals=expectedVals1[i];
1508 self.assertEqual(list(fidsOfGroups[i]),fidsGrp[i]);
1512 def testFuseUMeshesOnSameCoords2(self):
1513 m1,m2=MEDCouplingDataForTest.build3DExtrudedUMesh_1();
1515 m3=m1.buildPartOfMySelf(part1,True);
1517 m4=m1.buildPartOfMySelf(part2,True);
1518 meshes=[m1,m3,m3,m4]
1519 m5,corr=MEDCouplingUMesh.FuseUMeshesOnSameCoords(meshes,0);
1520 self.assertEqual(18,m5.getNumberOfCells());
1522 [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],
1528 self.assertEqual(exp2[i],list(it.getValues()));
1533 def testBuildOrthogonalField(self):
1534 targetMesh=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
1535 field=targetMesh.buildOrthogonalField();
1536 expected=[0.70710678118654746,0.,-0.70710678118654746]
1537 self.assertEqual(5,field.getNumberOfTuples());
1538 self.assertEqual(3,field.getNumberOfComponents());
1539 vals=field.getArray().getValues();
1540 for i in xrange(15):
1541 self.assertTrue(abs(expected[i%3]-vals[i])<1e-12);
1543 targetCoords=[0.,0.,0.,0.5,0.,0.5,1.,0.,1.,0.,1.,0.]
1544 targetConn=[0,1,2,3]
1545 targetMesh=MEDCouplingUMesh.New();
1546 targetMesh.setMeshDimension(2);
1547 targetMesh.allocateCells(1);
1548 targetMesh.insertNextCell(NORM_QUAD4,targetConn[0:4])
1549 targetMesh.finishInsertingCells();
1550 myCoords=DataArrayDouble.New();
1551 myCoords.setValues(targetCoords,4,3);
1552 targetMesh.setCoords(myCoords);
1553 field=targetMesh.buildOrthogonalField();
1554 self.assertEqual(1,field.getNumberOfTuples());
1555 self.assertEqual(3,field.getNumberOfComponents());
1556 vals=field.getArray().getValues();
1557 self.assertTrue(abs(-0.70710678118654746-vals[0])<1e-12);
1558 self.assertTrue(abs(0.-vals[1])<1e-12);
1559 self.assertTrue(abs(0.70710678118654746-vals[2])<1e-12);
1562 def testGetCellsContainingPoint(self):
1563 targetMesh=MEDCouplingDataForTest.build2DTargetMesh_1();
1564 pos=[0.,0.,0.4,0.4,0.,0.4,0.1,0.1,0.25,0.,0.65,0.]
1566 t1,t2=targetMesh.getCellsContainingPoints(pos,6,1e-12);
1567 self.assertEqual(6,t1.getNumberOfTuples());
1568 self.assertEqual(1,t1.getNumberOfComponents());
1569 self.assertEqual(7,t2.getNumberOfTuples());
1570 self.assertEqual(1,t2.getNumberOfComponents());
1571 expectedValues1=[0,4,3,0,1,2]
1572 expectedValues2=[0,1,2,3,4,5,6]
1573 self.assertEqual(list(t1.getValues()),expectedValues1);
1574 self.assertEqual(list(t2.getValues()),expectedValues2);
1575 #2D with no help of bounding box.
1577 MEDCouplingPointSet.Rotate2DAlg(center,0.78539816339744830962,6,pos);
1578 targetMesh.rotate(center,0.78539816339744830962);
1581 t1,t2=targetMesh.getCellsContainingPoints(pos,1e-12);
1582 self.assertEqual(6,t1.getNumberOfTuples());
1583 self.assertEqual(7,t2.getNumberOfTuples());
1584 self.assertEqual(list(t1.getValues()),expectedValues1);
1585 self.assertEqual(list(t2.getValues()),expectedValues2);
1586 t1,t2=targetMesh.getCellsContainingPoints(DataArrayDouble.New(pos,6,2),1e-12);
1587 self.assertEqual(6,t1.getNumberOfTuples());
1588 self.assertEqual(7,t2.getNumberOfTuples());
1589 self.assertEqual(list(t1.getValues()),expectedValues1);
1590 self.assertEqual(list(t2.getValues()),expectedValues2);
1591 self.assertRaises(InterpKernelException,targetMesh.getCellsContainingPoints,DataArrayDouble.New(pos,4,3),1e-12);
1593 pos1bis=[-0.3303300858899107,-0.11819805153394641]
1594 self.assertEqual(-1,targetMesh.getCellContainingPoint(pos1bis,1e-12));
1596 targetMesh=MEDCouplingDataForTest.build2DTargetMesh_1();
1599 t1=targetMesh.getCellsContainingPoint(pos2,1e-12)
1600 self.assertEqual(2,len(t1));
1601 expectedValues3=[0,1]
1602 self.assertEqual(list(t1.getValues()),expectedValues3);
1605 t1=targetMesh.getCellsContainingPoint(pos3,1e-12);
1606 self.assertEqual(5,len(t1));
1607 expectedValues4=[0,1,2,3,4]
1608 self.assertEqual(list(t1.getValues()),expectedValues4);
1609 self.assertEqual(0,targetMesh.getCellContainingPoint(pos3,1e-12));
1611 targetMesh=MEDCouplingDataForTest.build3DTargetMesh_1();
1613 self.assertEqual(0,targetMesh.getCellContainingPoint(pos4,1e-12));
1616 t1=targetMesh.getCellsContainingPoint(pos5,1e-12);
1617 self.assertEqual(8,len(t1));
1618 expectedValues5=[0,1,2,3,4,5,6,7]
1619 self.assertEqual(list(t1.getValues()),expectedValues5);
1622 t1=targetMesh.getCellsContainingPoint(pos6,1e-12);
1623 self.assertEqual(2,len(t1));
1624 expectedValues6=[0,2]
1625 self.assertEqual(list(t1.getValues()),expectedValues6);
1628 self.assertEqual(-1,targetMesh.getCellContainingPoint(pos7,1e-12));
1632 targetMesh.rotate(center2,vec2,0.78539816339744830962);
1634 self.assertEqual(-1,targetMesh.getCellContainingPoint(pos8,1e-12));
1637 def testGetValueOn1(self):
1638 targetMesh=MEDCouplingDataForTest.build2DTargetMesh_1();
1639 fieldOnCells=MEDCouplingFieldDouble.New(ON_CELLS);
1640 nbOfCells=targetMesh.getNumberOfCells();
1641 fieldOnCells.setMesh(targetMesh);
1642 array=DataArrayDouble.New();
1643 tmp=2*nbOfCells*[None]
1644 for i in xrange(nbOfCells):
1645 tmp[2*i]=7.+float(i);
1646 tmp[2*i+1]=17.+float(i)
1648 array.setValues(tmp,nbOfCells,2);
1649 fieldOnCells.setArray(array);
1652 res=fieldOnCells.getValueOn(pos1);
1653 self.assertEqual(2,len(res))
1654 self.assertTrue(abs(8.-res[0])<1e-12);
1655 self.assertTrue(abs(18.-res[1])<1e-12);
1658 targetMesh=MEDCouplingDataForTest.build2DSourceMesh_1();
1659 fieldOnNodes=MEDCouplingFieldDouble.New(ON_NODES);
1660 nbOfNodes=targetMesh.getNumberOfNodes();
1661 fieldOnNodes.setMesh(targetMesh);
1662 array=DataArrayDouble.New();
1663 tmp=2*nbOfNodes*[None]
1664 for i in xrange(nbOfNodes):
1665 tmp[2*i]=17.+float(i);
1666 tmp[2*i+1]=27.+float(i)
1668 array.setValues(tmp,nbOfNodes,2);
1669 fieldOnNodes.setArray(array);
1671 pos2=[-0.13333333333333333,-0.13333333333333333]
1673 res=fieldOnNodes.getValueOn(pos2);
1674 self.assertEqual(2,len(res))
1675 self.assertTrue(abs(17.5-res[0])<1e-12);
1676 self.assertTrue(abs(27.5-res[1])<1e-12);
1677 pos3=[0.033333333333333326,0.36666666666666664]
1679 res=fieldOnNodes.getValueOn(pos3);
1680 self.assertEqual(2,len(res))
1681 self.assertTrue(abs(18.666666666666667-res[0])<1e-12);
1682 self.assertTrue(abs(28.666666666666667-res[1])<1e-12);
1685 def testCMesh0(self):
1686 mesh=MEDCouplingCMesh.New();
1687 meshEmpty=mesh.clone(True);
1688 self.assertTrue(meshEmpty.isEqual(mesh, 1e-12));
1690 coordsX=DataArrayDouble.New();
1691 arrX=[ -1., 1., 2., 4. ]
1692 coordsX.setValues(arrX, 4, 1);
1693 coordsY=DataArrayDouble.New();
1694 arrY=[ -2., 2., 4., 8. ]
1695 coordsY.setValues(arrY, 4, 1);
1696 coordsZ=DataArrayDouble.New();
1697 arrZ=[ -3., 3., 6., 12. ]
1698 coordsZ.setValues(arrZ, 4, 1);
1699 mesh.setCoords(coordsX, coordsY, coordsZ);
1701 fieldOnNodes=mesh.fillFromAnalytic(ON_NODES, 1, "x+y/2.+z/3.");
1702 self.assertEqual(1, fieldOnNodes.getNumberOfComponents());
1703 self.assertEqual(64, fieldOnNodes.getNumberOfTuples());
1704 expected1=[-3., -1., 0., 2., -1., 1., 2., 4., 0., 2., 3., 5., 2., 4., 5., 7., -1., 1., 2.,
1705 4., 1., 3., 4., 6., 2., 4., 5., 7., 4., 6., 7., 9., 0., 2., 3., 5., 2., 4., 5.,
1706 7., 3., 5., 6., 8., 5., 7., 8., 10., 2., 4., 5.,
1707 7., 4., 6., 7., 9., 5., 7., 8., 10., 7., 9., 10., 12.];
1709 val=fieldOnNodes.getArray().getValues();
1710 for i in xrange(64):
1711 self.assertAlmostEqual(expected1[i], val[i], 12)
1712 res=fieldOnNodes.getValueOnPos(1, 3, 2);
1713 self.assertAlmostEqual(7., res[0], 12);
1715 fieldOnCells=mesh.fillFromAnalytic(ON_CELLS, 1, "x+y/2.+z/3.");
1716 self.assertEqual(1, fieldOnCells.getNumberOfComponents());
1717 self.assertEqual(27, fieldOnCells.getNumberOfTuples());
1718 val=fieldOnCells.getArray().getValues();
1719 expected2=[0, 1.5, 3, 1.5, 3, 4.5, 3, 4.5, 6, 1.5, 3, 4.5, 3, 4.5,
1720 6, 4.5, 6, 7.5, 3, 4.5, 6, 4.5, 6, 7.5, 6, 7.5, 9];
1721 for i in xrange(27):
1722 self.assertAlmostEqual(expected2[i], val[i], 12);
1723 #res=fieldOnCells.getValueOnPos(1,2,1);
1724 #self.assertAlmostEqual(6.,res,12);
1726 meshDeepCopy=mesh.deepCpy();
1727 meshClone=mesh.clone(False);
1729 meshEmpty.copyTinyStringsFrom(mesh);
1730 #no data in meshEmpty, expected False
1731 self.assertTrue(not meshEmpty.isEqual(mesh, 1e-12));
1733 self.assertTrue(meshDeepCopy.isEqual(mesh, 1e-12));
1734 meshDeepCopy.copyTinyStringsFrom(mesh);
1735 self.assertTrue(meshDeepCopy.isEqual(mesh, 1e-12));
1736 self.assertTrue(meshClone.isEqual(mesh, 1e-12));
1738 self.assertEqual(CARTESIAN, mesh.getType());
1739 self.assertEqual(CARTESIAN, meshEmpty.getType());
1740 self.assertEqual(CARTESIAN, meshDeepCopy.getType());
1741 self.assertEqual(CARTESIAN, meshClone.getType());
1744 def testCMesh1(self):
1745 mesh1=MEDCouplingCMesh.New();
1746 coordsX1=DataArrayDouble.New();
1747 arrX1=[ -1., 1., 2., 4. ]
1748 coordsX1.setValues(arrX1, 4, 1);
1749 coordsY1=DataArrayDouble.New();
1750 arrY1=[ -2., 2., 4., 8. ]
1751 coordsY1.setValues(arrY1, 4, 1);
1752 coordsZ1=DataArrayDouble.New();
1753 arrZ1=[ -3., 3., 6., 12. ]
1754 coordsZ1.setValues(arrZ1, 4, 1);
1755 mesh1.setCoords(coordsX1, coordsY1, coordsZ1);
1757 mesh2=MEDCouplingCMesh.New();
1758 coordsX2=DataArrayDouble.New();
1759 arrX2=[ -1., 1., 2., 4. ]
1760 coordsX2.setValues(arrX2, 4, 1);
1761 coordsY2=DataArrayDouble.New();
1762 arrY2=[ -2., 2., 4., 8. ]
1763 coordsY2.setValues(arrY2, 4, 1);
1764 coordsZ2=DataArrayDouble.New();
1765 arrZ2=[ -3., 3., 6., 12.+1e-6 ]
1766 coordsZ2.setValues(arrZ2, 4, 1);
1767 mesh2.setCoords(coordsX2, coordsY2, coordsZ2);
1769 mesh3=MEDCouplingCMesh.New();
1770 coordsX3=DataArrayDouble.New();
1772 coordsX3.setValues(arrX3, 1, 1);
1773 coordsY3=DataArrayDouble.New();
1775 coordsY3.setValues(arrY3, 1, 1);
1776 coordsZ3=DataArrayDouble.New();
1778 coordsZ3.setValues(arrZ3, 1, 1);
1779 mesh3.setCoords(coordsX3, coordsY3, coordsZ3);
1781 self.assertEqual(3, mesh1.getSpaceDimension());
1782 self.assertEqual(3, mesh1.getMeshDimension());
1784 self.assertTrue(not mesh1.isEqual(mesh2, 1e-12));
1785 self.assertTrue(not mesh2.isEqual(mesh1, 1e-12));
1786 self.assertTrue(not mesh2.isEqualWithoutConsideringStr(mesh1, 1e-12));
1787 self.assertTrue(mesh1.isEqual(mesh2, 1e-5));
1788 self.assertTrue(not mesh1.isEqual(mesh2, 1e-7));
1790 self.assertRaises(InterpKernelException, mesh3.checkCoherency1, 1e-12);
1791 mesh1.checkCoherency2(1e-12);
1792 self.assertEqual(NORM_HEXA8, mesh1.getTypeOfCell(1));
1794 self.assertEqual(NORM_HEXA8, mesh1.getAllGeoTypes()[0]);
1795 self.assertEqual(27, mesh1.getNumberOfCellsWithType(NORM_HEXA8));
1796 self.assertRaises(InterpKernelException, mesh1.getNumberOfCellsWithType, NORM_QUAD4);
1798 coo=mesh1.getCoordinatesOfNode(0);
1799 self.assertEqual(3, len(coo));
1800 self.assertAlmostEqual(-1., coo[0], 14);
1801 self.assertAlmostEqual(-2., coo[1], 14);
1802 self.assertAlmostEqual(-3., coo[2], 14);
1803 coo=mesh1.getCoordinatesOfNode(63);
1804 self.assertEqual(3, len(coo));
1805 self.assertAlmostEqual(4., coo[0], 14);
1806 self.assertAlmostEqual(8., coo[1], 14);
1807 self.assertAlmostEqual(12., coo[2], 14);
1810 repr=mesh1.simpleRepr();
1811 repr=mesh1.advancedRepr();
1812 self.assertTrue("Cartesian" in repr);
1813 self.assertTrue("Number of components : 1" in repr);
1814 self.assertTrue("Number of tuples : 4" in repr);
1815 self.assertTrue("Z Array :" in repr);
1818 def testCMesh2(self):
1819 mesh1=MEDCouplingCMesh.New();
1820 coordsX1=DataArrayDouble.New();
1821 arrX1=[ -1., 1., 2., 4. ]
1822 coordsX1.setValues(arrX1, 4, 1);
1823 coordsY1=DataArrayDouble.New();
1824 arrY1=[ -2., 2., 4., 8. ]
1825 coordsY1.setValues(arrY1, 4, 1);
1826 coordsZ1=DataArrayDouble.New();
1827 arrZ1=[ -3., 3., 6., 12. ]
1828 coordsZ1.setValues(arrZ1, 4, 1);
1829 mesh1.setCoords(coordsX1, coordsY1, coordsZ1);
1831 dis=mesh1.getDistributionOfTypes();
1832 self.assertEqual(1, len(dis));
1833 self.assertEqual(NORM_HEXA8, dis[0][0]);
1834 self.assertEqual(27, dis[0][1]);
1835 self.assertEqual(-1, dis[0][2]);
1838 self.assertTrue(not mesh1.checkTypeConsistencyAndContig(dis, idsPerType));
1839 dis[0][0]=NORM_QUAD4;
1840 self.assertRaises(InterpKernelException, mesh1.checkTypeConsistencyAndContig, dis, idsPerType);
1841 dis[0][0]=NORM_HEXA8;
1843 ids=DataArrayInt.New();
1845 ids.fillWithValue(23);
1847 check=mesh1.checkTypeConsistencyAndContig(dis, idsPerType);
1848 self.assertTrue(check);
1849 self.assertTrue(check.isEqual(ids));
1851 code, idsInPflPerType, pfls=mesh1.splitProfilePerType(ids);
1852 self.assertEqual(1, len(code));
1853 self.assertEqual(NORM_HEXA8, code[0][0]);
1854 self.assertEqual(10, code[0][1]);
1855 self.assertEqual(0, code[0][2]);
1856 self.assertEqual(1, len(idsInPflPerType));
1857 self.assertEqual(1, len(pfls));
1858 self.assertTrue(idsInPflPerType[0].isEqual(DataArrayInt([0,1,2,3,4,5,6,7,8,9])));
1859 self.assertTrue(pfls[0].isEqual(ids));
1861 cells1=[0, 1, 25, 26]
1862 partMesh1=mesh1.buildPart(cells1)
1863 self.assertTrue(isinstance(partMesh1,MEDCouplingMesh))
1864 self.assertEqual(4, partMesh1.getNumberOfCellsWithType(NORM_HEXA8));
1865 self.assertEqual(64, mesh1.getNumberOfNodes());
1866 self.assertEqual(64, partMesh1.getNumberOfNodes());
1869 partMesh2, arr1=mesh1.buildPartAndReduceNodes(cells2)
1870 self.assertTrue(isinstance(partMesh2,MEDCouplingCMesh))
1871 self.assertEqual(2,partMesh2.getNumberOfCellsWithType(NORM_HEXA8));
1872 self.assertEqual(12,partMesh2.getNumberOfNodes());
1875 partMesh3, arr2=partMesh1.buildPartAndReduceNodes(cells3)
1876 self.assertTrue(isinstance(partMesh3,MEDCouplingUMesh))
1877 self.assertEqual(2, partMesh3.getNumberOfCellsWithType(NORM_HEXA8));
1878 self.assertEqual(12, partMesh3.getNumberOfNodes());
1880 self.assertRaises(InterpKernelException, mesh1.simplexize, 0);
1881 self.assertRaises(InterpKernelException, mesh1.getMeasureFieldOnNode, True);
1885 bbox1=mesh1.getBoundingBox(); #[(-1.0, 4.0), (-2.0, 8.0), (-3.0, 12.0)]
1886 bbox2=partMesh1.getBoundingBox();
1887 self.assertTrue(bbox1==bbox2);
1888 bbox1=partMesh3.getBoundingBox();
1889 bbox2=partMesh2.getBoundingBox();
1890 self.assertTrue(bbox1==bbox2);
1892 self.assertRaises(InterpKernelException, mesh1.buildOrthogonalField);
1893 mesh2d=MEDCouplingCMesh.New();
1894 mesh2d.setCoords(coordsX1, coordsY1);
1895 f1=mesh2d.buildOrthogonalField();
1899 def testScale(self):
1900 mesh=MEDCouplingDataForTest.build2DTargetMesh_1();
1902 mesh.scale(pos,0.5);
1903 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,
1904 -0.05,0.45, 0.2,0.45, 0.45,0.45]
1905 val=mesh.getCoords().getValues();
1906 self.assertEqual(18,len(val))
1907 for i in xrange(18):
1908 self.assertTrue(abs(expected1[i]-val[i])<1e-12);
1912 def testTryToShareSameCoords(self):
1913 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
1914 m2=MEDCouplingDataForTest.build2DTargetMesh_1();
1915 self.assertTrue(m1.getCoords().getHiddenCppPointer()!=m2.getCoords().getHiddenCppPointer());
1916 m1.tryToShareSameCoords(m2,1e-12);
1917 self.assertTrue(m1.getCoords().getHiddenCppPointer()==m2.getCoords().getHiddenCppPointer());
1918 m1.tryToShareSameCoords(m2,1e-12);
1919 self.assertTrue(m1.getCoords().getHiddenCppPointer()==m2.getCoords().getHiddenCppPointer());
1920 m2.tryToShareSameCoords(m1,1e-12);
1921 self.assertTrue(m1.getCoords().getHiddenCppPointer()==m2.getCoords().getHiddenCppPointer());
1923 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
1924 m2=MEDCouplingDataForTest.build2DTargetMesh_2();
1925 self.assertTrue(m1.getCoords().getHiddenCppPointer()!=m2.getCoords().getHiddenCppPointer());
1926 m1.tryToShareSameCoords(m2,1e-12);
1927 self.assertTrue(m1.getCoords().getHiddenCppPointer()==m2.getCoords().getHiddenCppPointer());
1928 m1.tryToShareSameCoords(m2,1e-12);
1929 self.assertTrue(m1.getCoords().getHiddenCppPointer()==m2.getCoords().getHiddenCppPointer());
1930 m2.tryToShareSameCoords(m1,1e-12);
1931 self.assertTrue(m1.getCoords().getHiddenCppPointer()==m2.getCoords().getHiddenCppPointer());
1933 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
1934 m2=MEDCouplingDataForTest.build2DSourceMesh_1();
1935 self.assertTrue(m1.getCoords().getHiddenCppPointer()!=m2.getCoords().getHiddenCppPointer());
1936 self.assertRaises(InterpKernelException,m1.tryToShareSameCoords,m2,1e-12)
1939 def testFindNodeOnPlane(self):
1940 mesh=MEDCouplingDataForTest.build3DTargetMesh_1();
1943 n=mesh.findNodesOnPlane(pt,v,1e-12);
1944 self.assertEqual(9,len(n));
1945 m3dSurf=mesh.buildFacePartOfMySelfNode(n,True);
1946 self.assertTrue(isinstance(m3dSurf,MEDCouplingUMesh))
1947 me=MEDCouplingExtrudedMesh.New(mesh,m3dSurf,0);
1948 da=me.getMesh3DIds();
1949 self.assertEqual(8,me.getNumberOfCells());
1950 expected=[0,1,2,3,4,5,6,7]
1952 self.assertEqual(expected,list(val));
1954 m3dSurf=mesh.buildFacePartOfMySelfNode(n,True);
1955 self.assertTrue(isinstance(m3dSurf,MEDCouplingUMesh))
1956 me=MEDCouplingExtrudedMesh.New(mesh,m3dSurf,0);
1957 da=me.getMesh3DIds();
1958 self.assertEqual(8,me.getNumberOfCells());
1959 expected=[0,1,2,3,4,5,6,7]
1961 self.assertEqual(expected,list(val));
1964 def testRenumberCells(self):
1965 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
1966 m2=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
1967 self.assertTrue(m.isEqual(m2,0));
1969 m.renumberCells(arr,True);
1970 self.assertTrue(not m.isEqual(m2,0));
1971 self.assertEqual(NORM_QUAD4,m.getTypeOfCell(0));
1972 self.assertEqual(NORM_TRI3,m.getTypeOfCell(1));
1973 self.assertEqual(NORM_QUAD4,m.getTypeOfCell(2));
1974 self.assertEqual(NORM_TRI3,m.getTypeOfCell(3));
1975 self.assertEqual(NORM_QUAD4,m.getTypeOfCell(4));
1977 m.renumberCells(arr2,True);
1978 self.assertTrue(m.isEqual(m2,0));
1981 def testChangeSpaceDimension(self):
1982 m1=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
1983 m2=MEDCouplingDataForTest.build2DTargetMesh_1();
1985 self.assertEqual(3,m1.getSpaceDimension());
1986 m1.changeSpaceDimension(2);
1987 self.assertEqual(2,m1.getSpaceDimension());
1988 m1.setName(m2.getName());
1989 self.assertTrue(m1.isEqual(m2,1e-12));
1990 m1.changeSpaceDimension(3);
1991 self.assertEqual(3,m1.getSpaceDimension());
1992 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.]
1993 val=m1.getCoords().getValues();
1994 for i in xrange(27):
1995 self.assertTrue(abs(expected[i]-val[i])<1e-14);
1999 def testGaussPointField1(self):
2000 _a=0.446948490915965;
2001 _b=0.091576213509771;
2002 _p1=0.11169079483905;
2003 _p2=0.0549758718227661;
2004 refCoo1=[ 0.,0., 1.,0., 0.,1. ]
2005 gsCoo1=[ 2*_b-1, 1-4*_b, 2*_b-1, 2.07*_b-1, 1-4*_b,
2006 2*_b-1, 1-4*_a, 2*_a-1, 2*_a-1, 1-4*_a, 2*_a-1, 2*_a-1 ]
2007 wg1=[ 4*_p2, 4*_p2, 4*_p2, 4*_p1, 4*_p1, 4*_p1 ]
2012 m=MEDCouplingDataForTest.build2DTargetMesh_1();
2013 f=MEDCouplingFieldDouble.New(ON_GAUSS_PT,NO_TIME);
2015 self.assertEqual(5,f.getNumberOfMeshPlacesExpected());
2016 self.assertEqual(0,f.getNbOfGaussLocalization());
2017 f.setGaussLocalizationOnType(NORM_TRI3,_refCoo1,_gsCoo1,_wg1);
2018 f.setGaussLocalizationOnType(NORM_TRI3,_refCoo1,_gsCoo1,_wg1); # not a bug only to check that it works well
2019 self.assertRaises(InterpKernelException,f.setGaussLocalizationOnType,NORM_QUAD4,_refCoo1,_gsCoo1,_wg1)
2020 self.assertEqual(1,f.getNbOfGaussLocalization());
2021 refCoo2=[ 0.,0., 1.,0., 1.,1., 0.,1. ]
2023 _gsCoo1=_gsCoo1[0:4]
2025 f.setGaussLocalizationOnType(NORM_QUAD4,_refCoo2,_gsCoo1,_wg1);
2026 self.assertEqual(2,f.getNbOfGaussLocalization());
2027 array=DataArrayDouble.New();
2029 for i in xrange(18*2):
2031 array.setValues(ptr,18,2);
2032 ptr=array.getPointer();
2034 f.setName("MyFirstFieldOnGaussPoint");
2036 self.assertAlmostEqual(27.,f.getIJK(2,5,0),14);
2037 self.assertAlmostEqual(16.,f.getIJK(1,5,1),14);
2039 f.clearGaussLocalizations();
2040 self.assertEqual(0,f.getNbOfGaussLocalization());
2041 self.assertRaises(InterpKernelException,f.checkCoherency);
2043 self.assertRaises(InterpKernelException,f.setGaussLocalizationOnCells,ids1,_refCoo2,_gsCoo1,_wg1);
2044 self.assertEqual(0,f.getNbOfGaussLocalization());
2046 f.setGaussLocalizationOnCells(ids2,_refCoo2,_gsCoo1,_wg1);
2047 self.assertEqual(1,f.getNbOfGaussLocalization());
2048 self.assertEqual(0,f.getGaussLocalizationIdOfOneCell(0));
2049 self.assertRaises(InterpKernelException,f.getGaussLocalizationIdOfOneCell,1);
2051 f.setGaussLocalizationOnCells(ids3,_refCoo1,_gsCoo1,_wg1);
2052 self.assertEqual(2,f.getNbOfGaussLocalization());
2053 self.assertEqual(0,f.getGaussLocalizationIdOfOneCell(0));
2054 self.assertEqual(1,f.getGaussLocalizationIdOfOneCell(1));
2055 self.assertEqual(1,f.getGaussLocalizationIdOfOneCell(2));
2056 self.assertRaises(InterpKernelException,f.checkCoherency);#<- cell 3 has no localization
2060 _gsCoo2[0]=0.8888777776666;
2061 _wg2[0]=0.1234567892377;
2062 f.setGaussLocalizationOnCells(ids4,_refCoo2,_gsCoo2,_wg2);
2063 self.assertEqual(3,f.getNbOfGaussLocalization());
2064 tmpIds=f.getCellIdsHavingGaussLocalization(0);
2065 self.assertEqual(ids2,list(tmpIds.getValues()));
2066 self.assertRaises(InterpKernelException,f.checkCoherency);#<- it's always not ok because undelying array not with the good size.
2067 array2=f.getArray().substr(0,10);
2069 f.checkCoherency();#<- here it is OK
2071 self.assertTrue(f.isEqual(f2,1e-14,1e-14));
2072 gl1=f2.getGaussLocalization(0);
2073 tmp=gl1.getGaussCoord(1,1);
2074 self.assertAlmostEqual(2.07*_b-1,tmp,14);
2075 gl1.setGaussCoord(1,1,0.07);
2076 self.assertTrue(not f.isEqual(f2,1e-14,1e-14));
2077 gl1.setGaussCoord(1,1,tmp);
2078 self.assertTrue(f.isEqual(f2,1e-14,1e-14));
2079 f2.checkCoherency();
2082 def testGaussPointNEField1(self):
2083 m=MEDCouplingDataForTest.build2DTargetMesh_1();
2084 f=MEDCouplingFieldDouble.New(ON_GAUSS_NE,NO_TIME);
2086 self.assertEqual(5,f.getNumberOfMeshPlacesExpected());
2087 f.setName("MyFirstFieldOnNE");
2088 f.setDescription("MyDescriptionNE");
2089 array=DataArrayDouble.New();
2091 for i in xrange(18*2):
2094 array.setValues(tmp,18,2);
2095 ptr=array.getPointer();
2100 self.assertTrue(f.isEqual(f2,1e-14,1e-14));
2101 self.assertAlmostEqual(21.,f.getIJK(2,0,0),14);
2102 self.assertAlmostEqual(18.,f.getIJK(1,1,1),14);
2105 def testCellOrientation1(self):
2106 m=MEDCouplingDataForTest.build2DTargetMesh_1();
2108 self.assertRaises(InterpKernelException,m.are2DCellsNotCorrectlyOriented,vec,False);
2109 m.changeSpaceDimension(3);
2110 res1=m.are2DCellsNotCorrectlyOriented(vec,False);
2111 self.assertTrue(len(res1)==0);
2113 res1=m.are2DCellsNotCorrectlyOriented(vec,False);
2114 self.assertEqual(5,len(res1));
2117 # connectivity inversion
2118 conn=m.getNodalConnectivity().getValues();
2122 m.getNodalConnectivity().setValues(conn,len(conn),1)
2123 res1=m.are2DCellsNotCorrectlyOriented(vec,False);
2124 self.assertEqual(1,len(res1));
2125 self.assertEqual(2,res1.getValues()[0]);
2126 m.orientCorrectly2DCells(vec,False);
2127 res1=m.are2DCellsNotCorrectlyOriented(vec,False);
2128 self.assertTrue(len(res1)==0);
2129 m2=MEDCouplingDataForTest.build2DTargetMesh_1();
2130 m2.changeSpaceDimension(3);
2131 self.assertTrue(m.isEqual(m2,1e-12));
2134 def testCellOrientation2(self):
2135 m2,m1=MEDCouplingDataForTest.build3DExtrudedUMesh_1();
2136 res1=m2.arePolyhedronsNotCorrectlyOriented();
2137 self.assertEqual(6,len(res1));
2138 m2.orientCorrectlyPolyhedrons();
2139 res1=m2.arePolyhedronsNotCorrectlyOriented();
2140 self.assertTrue(len(res1)==0);
2141 m2.checkCoherency();
2142 self.assertEqual(18,m2.getNumberOfCells());
2144 m2.convertToPolyTypes(cellIds2);
2145 m2.orientCorrectlyPolyhedrons();
2146 res1=m2.arePolyhedronsNotCorrectlyOriented();
2147 self.assertTrue(len(res1)==0);
2148 f2=m2.getMeasureField(False);
2149 f2Ptr=f2.getArray().getValues();
2150 #Test to check global reverse in MEDCouplingUMesh::tryToCorrectPolyhedronOrientation
2151 m3=MEDCouplingDataForTest.build2DTargetMesh_1();
2153 m3.changeSpaceDimension(3);
2155 m3.convertToPolyTypes(ids2);
2156 m3.orientCorrectly2DCells(vec,False);
2157 m4=MEDCouplingDataForTest.buildCU1DMesh_U();
2158 m4.changeSpaceDimension(3);
2161 m4.rotate(center,vector,-pi/2.);
2162 m5=m3.buildExtrudedMesh(m4,0);
2163 res1=m5.arePolyhedronsNotCorrectlyOriented();
2164 self.assertEqual(15,len(res1));
2165 m5.orientCorrectlyPolyhedrons();
2166 res1=m5.arePolyhedronsNotCorrectlyOriented();
2167 self.assertTrue(len(res1)==0);
2168 f3=m5.getMeasureField(False);
2169 self.assertEqual(15,f3.getArray().getNumberOfTuples());
2170 self.assertEqual(1,f3.getNumberOfComponents());
2171 f3Ptr=f3.getArray().getValues();
2172 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];
2173 for i in xrange(15):
2174 self.assertTrue(abs(expected1[i]-f3Ptr[i])<1e-12);
2176 f4=m5.getBarycenterAndOwner();
2177 self.assertEqual(15,f4.getNumberOfTuples());
2178 self.assertEqual(3,f4.getNumberOfComponents());
2179 f4Ptr=f4.getValues();
2180 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];
2181 for i in xrange(45):
2182 self.assertTrue(abs(expected2[i]-f4Ptr[i])<1e-12);
2186 def testCellOrientation3(self):
2187 from cmath import rect
2189 c = [rect(1.0, i*pi/4.0) for i in range(8)]
2190 coords = [c[-1].real,c[-1].imag, c[3].real,c[3].imag,
2191 c[5].real,c[5].imag, c[1].real,c[1].imag]
2193 baseMesh = MEDCouplingUMesh.New("circle", 2)
2194 baseMesh.allocateCells(1)
2195 meshCoords = DataArrayDouble.New(coords, 4, 2)
2196 baseMesh.setCoords(meshCoords)
2197 baseMesh.insertNextCell(NORM_QPOLYG, connec) # a circle
2198 baseMesh.finishInsertingCells()
2199 baseMesh.changeSpaceDimension(3)
2200 Oz = [0.0, 0.0, -1.0]
2201 cell_lst = baseMesh.are2DCellsNotCorrectlyOriented(Oz, False)
2202 self.assertEqual(cell_lst.getNumberOfTuples(), 0)
2204 cell_lst = baseMesh.are2DCellsNotCorrectlyOriented(Oz, False)
2205 self.assertEqual(cell_lst.getNumberOfTuples(), 1)
2207 def testPolyhedronBarycenter(self):
2208 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];
2209 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];
2210 meshN=MEDCouplingUMesh.New();
2211 meshN.setName("ForBary");
2212 meshN.setMeshDimension(3);
2213 meshN.allocateCells(4);
2214 meshN.insertNextCell(NORM_POLYHED,29,connN[0:29])
2215 meshN.finishInsertingCells();
2216 myCoords=DataArrayDouble.New();
2217 myCoords.setValues(coords,9,3);
2218 meshN.setCoords(myCoords);
2219 meshN.checkCoherency();
2221 res1=meshN.arePolyhedronsNotCorrectlyOriented();
2222 meshN.orientCorrectlyPolyhedrons();
2223 self.assertTrue(len(res1)==0);
2224 da=meshN.getBarycenterAndOwner();
2225 self.assertEqual(1,da.getNumberOfTuples());
2226 self.assertEqual(3,da.getNumberOfComponents());
2227 daPtr=da.getValues();
2228 ref=meshN.getCoords().getValues()[24:];
2230 self.assertTrue(abs(ref[i]-daPtr[i])<1e-12);
2235 da=meshN.getBarycenterAndOwner();
2236 daPtr=da.getValues();
2237 ref=meshN.getCoords().getValues()[24:];
2239 self.assertTrue(abs(ref[i]-daPtr[i])<1e-12);
2242 meshN.rotate(center,vec,pi/7.);
2243 meshN.translate(vec);
2244 da=meshN.getBarycenterAndOwner();
2245 daPtr=da.getValues();
2246 ref=meshN.getCoords().getValues()[24:];
2248 self.assertTrue(abs(ref[i]-daPtr[i])<1e-12);
2251 center2=[1.12,3.45,6.78]
2253 meshN.rotate(center2,vec2,e);
2254 meshN.translate(vec2);
2255 da=meshN.getBarycenterAndOwner();
2256 daPtr=da.getValues();
2257 ref=meshN.getCoords().getValues()[24:];
2259 self.assertTrue(abs(ref[i]-daPtr[i])<1e-10);
2263 def testNormL12Integ1D(self):
2264 m1=MEDCouplingDataForTest.build1DTargetMesh_3();
2265 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
2267 array=DataArrayDouble.New();
2268 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]
2269 array.setValues(arr,m1.getNumberOfCells(),3);
2272 f3=m1.getBarycenterAndOwner();
2273 self.assertEqual(4,f3.getNumberOfTuples());
2274 self.assertEqual(1,f3.getNumberOfComponents());
2275 expected9=[0.75,5.105,0.8,5.155]
2278 self.assertTrue(abs(expected9[i]-ptr[i])<1e-12);
2281 f2=m1.getMeasureField(False);
2282 self.assertEqual(4,f2.getArray().getNumberOfTuples());
2283 self.assertEqual(1,f2.getNumberOfComponents());
2284 expected1=[0.5,0.21,-0.6,-0.31]
2285 ptr=f2.getArray().getValues();
2287 self.assertTrue(abs(expected1[i]-ptr[i])<1e-12);
2289 expected2=[0.5,0.21,0.6,0.31]
2290 f2=m1.getMeasureField(True);
2291 ptr=f2.getArray().getValues();
2293 self.assertTrue(abs(expected2[i]-ptr[i])<1e-12);
2296 self.assertTrue(4,f1.getNumberOfTuples())
2297 res=f1.integral(False);
2298 self.assertTrue(3,len(res))
2299 expected3=[0.9866,-0.3615,0.4217]
2301 self.assertTrue(abs(expected3[i]-res[i])<1e-12);
2303 self.assertTrue(abs(expected3[0]-f1.integral(0,False))<1e-12);
2304 self.assertTrue(abs(expected3[1]-f1.integral(1,False))<1e-12);
2305 self.assertTrue(abs(expected3[2]-f1.integral(2,False))<1e-12);
2306 res=f1.integral(True);
2307 expected4=[-3.4152,8.7639,-14.6879]
2309 self.assertTrue(abs(expected4[i]-res[i])<1e-12);
2313 self.assertTrue(3,len(res))
2314 expected5=[6.979506172839505, 16.89018518518518, 27.02969135802469]
2316 self.assertTrue(abs(expected5[i]-res[i])<1e-12);
2318 self.assertTrue(abs(expected5[0]-f1.normL1(0))<1e-12);
2319 self.assertTrue(abs(expected5[1]-f1.normL1(1))<1e-12);
2320 self.assertTrue(abs(expected5[2]-f1.normL1(2))<1e-12);
2323 self.assertTrue(3,len(res))
2324 expected7=[7.090910979452395, 16.9275542960123, 27.053271464160858]
2326 self.assertTrue(abs(expected7[i]-res[i])<1e-9);
2328 self.assertTrue(abs(expected7[0]-f1.normL2(0))<1e-9);
2329 self.assertTrue(abs(expected7[1]-f1.normL2(1))<1e-9);
2330 self.assertTrue(abs(expected7[2]-f1.normL2(2))<1e-9);
2332 f4=f1.buildMeasureField(False);
2333 self.assertTrue(abs(-0.2-f4.accumulate(0))<1e-12);
2334 f4=f1.buildMeasureField(True);
2335 self.assertTrue(abs(1.62-f4.accumulate(0))<1e-12);
2336 # Testing with 2D Curve
2337 m1=MEDCouplingDataForTest.build2DCurveTargetMesh_3();
2338 f2=m1.getMeasureField(False);
2339 self.assertEqual(4,f2.getArray().getNumberOfTuples());
2340 self.assertEqual(1,f2.getNumberOfComponents());
2341 ptr=f2.getArray().getValues();
2343 self.assertTrue(abs(sqrt(2.)*expected2[i]-ptr[i])<1e-12);
2345 f2=m1.getMeasureField(True);
2346 self.assertEqual(4,f2.getArray().getNumberOfTuples());
2347 self.assertEqual(1,f2.getNumberOfComponents());
2348 ptr=f2.getArray().getValues();
2350 self.assertTrue(abs(expected2[i]*sqrt(2.)-ptr[i])<1e-12);
2353 f3=m1.getBarycenterAndOwner();
2354 self.assertEqual(4,f3.getNumberOfTuples());
2355 self.assertEqual(2,f3.getNumberOfComponents());
2356 expected10=[0.75,0.75,5.105,5.105,0.8,0.8,5.155,5.155]
2359 self.assertTrue(abs(expected10[i]-ptr[i])<1e-12);
2362 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
2364 array=DataArrayDouble.New();
2365 array.setValues(arr,m1.getNumberOfCells(),3);
2367 res=f1.integral(False);
2369 self.assertTrue(abs(sqrt(2.)*expected4[i]-res[i])<1e-12);
2371 res=f1.integral(True);
2373 self.assertTrue(abs(sqrt(2.)*expected4[i]-res[i])<1e-12);
2377 self.assertTrue(abs(expected5[i]-res[i])<1e-12);
2381 self.assertTrue(abs(expected7[i]-res[i])<1e-12);
2385 def testAreaBary2D(self):
2386 m1=MEDCouplingDataForTest.build2DTargetMesh_3();
2387 f1=m1.getMeasureField(False);
2388 self.assertEqual(10,f1.getArray().getNumberOfTuples());
2389 self.assertEqual(1,f1.getNumberOfComponents());
2390 expected1=[-0.5,-1,-1.5,-0.5,-1, 0.5,1,1.5,0.5,1]
2391 ptr=f1.getArray().getValues();
2392 for i in xrange(10):
2393 self.assertTrue(abs(expected1[i]-ptr[i])<1e-12);
2395 f1=m1.getMeasureField(True);
2396 ptr=f1.getArray().getValues();
2397 for i in xrange(10):
2398 self.assertTrue(abs(abs(expected1[i])-ptr[i])<1e-12);
2400 f2=m1.getBarycenterAndOwner();
2401 self.assertEqual(10,f2.getNumberOfTuples());
2402 self.assertEqual(2,f2.getNumberOfComponents());
2403 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]
2405 for i in xrange(20):
2406 self.assertTrue(abs(expected2[i]-ptr[i])<1e-12);
2408 m1.changeSpaceDimension(3);
2409 f1=m1.getMeasureField(False);
2410 self.assertEqual(10,f1.getArray().getNumberOfTuples());
2411 self.assertEqual(1,f1.getNumberOfComponents());
2412 ptr=f1.getArray().getValues();
2413 for i in xrange(10):
2414 self.assertTrue(abs(abs(expected1[i])-ptr[i])<1e-12);
2416 f2=m1.getBarycenterAndOwner();
2417 self.assertEqual(10,f2.getNumberOfTuples());
2418 self.assertEqual(3,f2.getNumberOfComponents());
2420 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.]
2421 for i in xrange(30):
2422 self.assertTrue(abs(expected3[i]-ptr[i])<1e-12);
2426 def testAreaBary3D(self):
2427 coords=[ 0.241310763507 , 0.0504777305619 , 0.0682283524903 , 0.252501053866 , -0.0625176732937 , 0.137272639894 ,
2428 0.152262663601 , 0.241816569527 , 0.133812556197 , 0.18047750211 , -0.0789949051358 , 0.339098173401 ,
2429 0.151741971857 , 0.238885278571 , 0.137715037333 , 0.242532155481 , -0.0928169086456 , 0.0678043417367 ,
2430 0.240941965335 , -0.015461491464 , 0.0617186345825 , 0.24127650112 , 0.0499427876717 , 0.0679634099148 ,
2431 -0.145828917428 , 0.206291632565 , 0.0310071927543 , 0.0125651775307 , 0.266262085828 , 0.105228430543 ,
2432 -0.0994066533286 , 0.233224271238 , 0.0572213839567 , -0.0951345338317 , 0.234819509426 , 0.0592126284538 ,
2433 0.136580574205 , -0.205486212579 , 0.0572866072014 , 0.0637270784978 , -0.168886355238 , 0.446614057077 ,
2434 0.041337157151 , -0.213402568198 , 0.372407095999 , 0.0411601970268 , -0.202387875756 , 0.411334979491 ,
2435 -0.108355701857 , 0.193636239335 , 0.204886756738 , 0.00639779029829 , 0.155296981517 , 0.252585892979 ,
2436 0.0262473111702 , -0.112919732543 , 0.424286639249 ,-0.224103052733 , -0.139430015438 , -0.0122352295701 ,
2437 -0.0312760589481 , -0.274272003594 , 0.0323959636568 , -0.166663422532 , -0.217754445175 , 0.00392109070364 ,
2438 -0.30586619777 , -0.0475168041091 , -0.0144585228182 , -0.280881480586 , 0.135571293538 , 0.00623923647986 ,
2439 -0.25548538234 , 0.156819217766 , 0.0645277879769 , -0.131567009284 , 0.184133752309 , 0.206021802753 ,
2440 -0.196204010965 , 0.151602971681 , 0.212974777736 , -0.183713879463 , 0.0802946639531 , 0.260115662599 ,
2441 -0.244241178767 , -0.0738873389604 , 0.144590565817 , -0.155804057829 , -0.164892720025 , 0.210613950558 ,
2442 -0.170950800428 , -0.215099334026 , 0.00610122860092 , -0.30552634869 , -0.0490020791904 , -0.0132786533145 ,
2443 0.271831011884 , 0.15105657296 , 0.0230534827908 , 0.281919192283 , 0.0898544306288 , -0.0625201489143 ,
2444 0.260240727276 , -0.0120688706637 , -0.0532316588626 , 0.244947737722 , 0.0197984684293 , 0.0309341209233 ,
2445 0.23439631578 , 0.229825279875 , 0.0508520585381 , 0.160921316875 , 0.265078502128 , 0.121716560626 ,
2446 -0.315088694175 , 0.0747700471918 , -0.245836615071 , -0.327728781776 , 0.0857114674649 , -0.239431905957 ,
2447 -0.308385460634 , 0.145142997084 , -0.149886828433 , 0.0488236045164 , 0.309462801914 , 0.0849169148265 ,
2448 -0.0244964803395 , 0.33145611751 , -0.0476415818061 , 0.0060567994229 , 0.32418412014 , 0.0367779543812 ,
2449 -0.0950221448063 , 0.236675326003 , 0.0572594453983 , 0.248723023186 , 0.0886648784791 , -0.176629430538 ,
2450 0.116796984 , 0.256596599567 , -0.292863523603 , 0.118024552914 , 0.229154257843 , -0.34233232501 ,
2451 0.217507892549 , -0.0417822335742 , -0.176771782888 , -0.224429321304 , 0.0125595300114 , -0.362064725588 ,
2452 0.0937301100955 , -0.0500824832657 , -0.299713548444 , -0.244162220397 , 0.0383853931293 , -0.389856984411 ,
2453 -0.0281989366102 , 0.097392811563 , -0.458244577284 , -0.385010847162 , 0.10122766194 , -0.140052859922 ,
2454 -0.377936358012 , 0.110875172128 , -0.176207095463 , 0.244483045556 , -0.0991073977045 , 0.0575134372934 ,
2455 0.262605120167 , -0.100243191645 , -0.0495620806935 , 0.240306880972 , -0.136153701579 , -0.114745281696 ,
2456 0.215763176129 , -0.0836766059189 , -0.183249640616 , 0.237870396603 , -0.132449578286 , -0.121598854639 ,
2457 -0.0637683083097 , -0.27921020214 , -0.149112321992 , -0.0856211014977 , -0.2973233473 , -0.0446878139589 ,
2458 0.104675342288 , -0.0625908305324 , -0.290346256534 , 0.0248264249186 , -0.247797708548 , -0.165830884019 ,
2459 0.0719302438309 , -0.178468260473 , -0.211432157345 , 0.142871843159 , -0.208769948542 , 0.0454101128246 ,
2460 0.167803379307 , -0.207851396623 , -0.088802726124 , 0.12868717152 , -0.230920439715 , 0.00760508389036 ,
2461 -0.0372812069535 , -0.286740286332 , 0.00963701291166 ]
2463 connN = [ #polyhedron 0
2464 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
2465 , 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
2466 , 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
2467 , 22 , 19 , 21 , 30 , 31 , -1 , 22 , 31 , 28 , 27 , 26 , 24 , 23 , -1 , 31 , 30 , 29 , 28,
2469 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
2470 , 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
2471 , 33 , 34 , 48 , 45 , -1 , 35 , 34 , 48 , 50 , 49 , 38 , -1 , 41 , 43 , 42 , 46 , 36 , 37 , -1 , 38 , 39 , 51 , 49 , -1
2472 , 39 , 40 , 42 , 46 , 47 , 52 , 51 , -1 , 45 , 47 , 52 , 50 , 48 , -1 , 52 , 51 , 49 , 50,
2474 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
2475 , 23 , 53 , 54 , 40 , 8 , -1 , 53 , 22 , 23 , -1 , 39 , 54 , 40,
2477 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
2478 , 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
2479 , 55 , 5 , 12 , 65 , -1 , 66 , 67 , 65 , 55 , 56 , 57 , -1 , 63 , 66 , 57 , 59 , 64 , -1 , 64 , 62 , 58 , 59 , -1
2480 , 60 , 63 , 66 , 67 , 68 , 61 , -1 , 61 , 68 , 20 , 21 , -1 , 67 , 68 , 20 , 12 , 65]
2482 barys = [ -0.0165220465527 , -0.0190922868195 , 0.158882733414 ,
2483 0.0287618656076 , 0.135874379934 , -0.14601588119 ,
2484 -0.147128055553 , 0.0465995097041 , -0.049391174453 ,
2485 -0.00142506732317 , -0.0996953090351 , -0.115159183132 ]
2486 meshN=MEDCouplingUMesh.New();
2487 meshN.setName("ForBary");
2488 meshN.setMeshDimension(3);
2489 meshN.allocateCells(4);
2490 meshN.insertNextCell(NORM_POLYHED,113,connN);
2491 meshN.insertNextCell(NORM_POLYHED,99,connN[113:]);
2492 meshN.insertNextCell(NORM_POLYHED,43,connN[212:]);
2493 meshN.insertNextCell(NORM_POLYHED,92,connN[255:]);
2494 meshN.finishInsertingCells();
2495 myCoords=DataArrayDouble.New();
2496 myCoords.setValues(coords,69,3);
2497 meshN.setCoords(myCoords);
2498 meshN.checkCoherency();
2499 res1=meshN.arePolyhedronsNotCorrectlyOriented();
2500 meshN.orientCorrectlyPolyhedrons();
2501 res1=meshN.arePolyhedronsNotCorrectlyOriented();
2502 self.assertTrue(len(res1)==0);
2504 da=meshN.getBarycenterAndOwner();
2505 self.assertEqual(4,da.getNumberOfTuples());
2506 self.assertEqual(3,da.getNumberOfComponents());
2507 daPtr=da.getValues();
2508 for i in xrange(12):
2509 self.assertTrue(abs(barys[i]-daPtr[i])<1e-12);
2513 def testRenumberCellsForFields(self):
2514 m=MEDCouplingDataForTest.build2DTargetMesh_1();
2515 f=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
2517 arr=DataArrayDouble.New();
2518 nbOfCells=m.getNumberOfCells();
2519 values1=[7.,107.,10007.,8.,108.,10008.,9.,109.,10009.,10.,110.,10010.,11.,111.,10011.]
2520 arr.setValues(values1,nbOfCells,3);
2522 renumber1=[3,1,0,4,2]
2523 loc=[-0.05,-0.05, 0.55,-0.25, 0.55,0.15, -0.05,0.45, 0.45,0.45]
2525 res=f.getValueOn(loc[2*j:2*j+2]);
2527 self.assertTrue(abs(values1[i+3*j]-res[i])<1e-12);
2530 f.renumberCells(renumber1,False);
2531 ptr=f.getArray().getValues();
2532 expected1=[9.,109.,10009.,8.,108.,10008.,11.,111.,10011.,7.,107.,10007.,10.,110.,10010.]
2533 for i in xrange(15):
2534 self.assertTrue(abs(expected1[i]-ptr[i])<1e-12);
2536 #check that fields remains the same geometrically
2538 res=f.getValueOn(loc[2*j:2*(j+1)]);
2540 self.assertTrue(abs(values1[i+3*j]-res[i])<1e-12);
2544 f=MEDCouplingFieldDouble.New(ON_GAUSS_PT,NO_TIME);
2546 _a=0.446948490915965;
2547 _b=0.091576213509771;
2548 _p1=0.11169079483905;
2549 _p2=0.0549758718227661;
2550 refCoo1=[ 0.,0., 1.,0., 0.,1. ]
2551 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 ];
2552 wg1=[ 4*_p2, 4*_p2, 4*_p2, 4*_p1, 4*_p1, 4*_p1 ]
2553 _refCoo1=refCoo1[0:6];
2554 _gsCoo1=gsCoo1[0:12];
2556 f.setGaussLocalizationOnType(NORM_TRI3,_refCoo1,_gsCoo1,_wg1);
2557 refCoo2=[ 0.,0., 1.,0., 1.,1., 0.,1. ]
2558 _refCoo2=refCoo2[0:8];
2559 _gsCoo1=_gsCoo1[0:4]
2561 f.setGaussLocalizationOnType(NORM_QUAD4,_refCoo2,_gsCoo1,_wg1);
2562 arr=DataArrayDouble.New();
2563 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.]
2564 arr.setValues(values2,18,2);
2568 self.assertTrue(f.isEqual(fCpy,1e-12,1e-12));
2569 f.renumberCells(renumber1,False);
2570 self.assertTrue(not f.isEqual(fCpy,1e-12,1e-12));
2571 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.]
2572 ptr=f.getArray().getValues();
2573 for i in xrange(36):
2574 self.assertTrue(abs(expected2[i]-ptr[i])<1e-12);
2576 renumber2=[2,1,4,0,3]
2577 f.renumberCells(renumber2,False);
2578 self.assertTrue(f.isEqual(fCpy,1e-12,1e-12));
2580 f=MEDCouplingFieldDouble.New(ON_GAUSS_NE,NO_TIME);
2582 arr=DataArrayDouble.New();
2583 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.]
2584 arr.setValues(values3,18,2);
2588 self.assertTrue(f.isEqual(fCpy,1e-12,1e-12));
2589 f.renumberCells(renumber1,False);
2590 self.assertTrue(not f.isEqual(fCpy,1e-12,1e-12));
2591 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.]
2592 ptr=f.getArray().getValues();
2593 for i in xrange(36):
2594 self.assertTrue(abs(expected3[i]-ptr[i])<1e-12);
2596 f.renumberCells(renumber2,False);#perform reverse operation of renumbering to check that the resulting field is equal.
2597 self.assertTrue(f.isEqual(fCpy,1e-12,1e-12));
2601 def testRenumberNodesForFields(self):
2602 m=MEDCouplingDataForTest.build2DTargetMesh_1();
2603 f=MEDCouplingFieldDouble.New(ON_NODES,NO_TIME);
2605 self.assertEqual(9,f.getNumberOfMeshPlacesExpected());
2606 arr=DataArrayDouble.New();
2607 nbOfNodes=m.getNumberOfNodes();
2608 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.]
2609 arr.setValues(values1,nbOfNodes,3);
2612 renumber1=[0,4,1,3,5,2,6,7,8]
2613 loc=[0.5432,-0.2432, 0.5478,0.1528]
2614 expected1=[9.0272, 109.0272, 10009.0272, 11.4124,111.4124,10011.4124]
2616 res=f.getValueOn(loc[2*j:2*j+2]);
2618 self.assertTrue(abs(expected1[i+3*j]-res[i])<1e-12);
2622 self.assertTrue(f.isEqual(fCpy,1e-12,1e-12));
2623 f.renumberNodes(renumber1);
2624 self.assertTrue(not f.isEqual(fCpy,1e-12,1e-12));
2626 res=f.getValueOn(loc[2*j:2*j+2]);
2628 self.assertTrue(abs(expected1[i+3*j]-res[i])<1e-12);
2631 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.]
2632 for i in xrange(27):
2633 self.assertTrue(abs(expected2[i]-f.getArray().getValues()[i])<1e-12);
2635 renumber2=[0,2,5,3,1,4,6,7,8]
2636 f.renumberNodes(renumber2);
2637 self.assertTrue(f.isEqual(fCpy,1e-12,1e-12));
2640 def testConvertQuadraticCellsToLinear(self):
2641 mesh=MEDCouplingDataForTest.build2DTargetMesh_3();
2642 mesh.checkCoherency();
2643 types=mesh.getAllGeoTypes();
2645 self.assertEqual(5,len(types));
2646 expected1=[NORM_POLYGON, NORM_TRI3, NORM_QUAD4, NORM_TRI6, NORM_QUAD8]
2648 self.assertEqual(expected1,types);
2649 self.assertTrue(mesh.isPresenceOfQuadratic());
2650 self.assertEqual(62,mesh.getMeshLength());
2651 f1=mesh.getMeasureField(False);
2653 mesh.convertQuadraticCellsToLinear();
2654 self.assertTrue(not mesh.isPresenceOfQuadratic());
2656 mesh.checkCoherency();
2657 f2=mesh.getMeasureField(False);
2658 self.assertTrue(f1.getArray().isEqual(f2.getArray(),1e-12));
2659 self.assertEqual(48,mesh.getMeshLength());
2660 types2=mesh.getAllGeoTypes();
2662 self.assertEqual(3,len(types2));
2663 expected2=[NORM_POLYGON, NORM_TRI3, NORM_QUAD4]
2665 self.assertEqual(expected2,types2);
2668 def testCheckGeoEquivalWith(self):
2669 mesh1=MEDCouplingDataForTest.build2DTargetMesh_3();
2670 mesh2=MEDCouplingDataForTest.build2DTargetMesh_3();
2672 cellCor,nodeCor=mesh1.checkGeoEquivalWith(mesh1,0,1e-12);#deepEqual
2673 self.assertTrue(cellCor==None);
2674 self.assertTrue(nodeCor==None);
2675 cellCor,nodeCor=mesh1.checkGeoEquivalWith(mesh1,1,1e-12);#fastEqual
2676 self.assertTrue(cellCor==None);
2677 self.assertTrue(nodeCor==None);
2678 cellCor,nodeCor=mesh1.checkGeoEquivalWith(mesh1,10,1e-12);#deepEqual with geo permutations
2679 self.assertTrue(cellCor==None);
2680 self.assertTrue(nodeCor==None);
2681 #Second test mesh1 and mesh2 are 2 different meshes instance
2682 cellCor,nodeCor=mesh1.checkGeoEquivalWith(mesh2,0,1e-12);#deepEqual
2683 self.assertTrue(cellCor==None);
2684 self.assertTrue(nodeCor==None);
2685 cellCor,nodeCor=mesh1.checkGeoEquivalWith(mesh2,1,1e-12);#fastEqual
2686 self.assertTrue(cellCor==None);
2687 self.assertTrue(nodeCor==None);
2688 cellCor,nodeCor=mesh1.checkGeoEquivalWith(mesh2,10,1e-12);#deepEqual with geo permutations
2689 self.assertTrue(cellCor==None);
2690 self.assertTrue(nodeCor==None);
2691 #Third test : cell permutation by keeping the first the middle and the last as it is.
2692 renum=[0,2,1,3,4,5,6,8,7,9]
2693 mesh2.renumberCells(renum,False);
2694 self.assertRaises(InterpKernelException,mesh1.checkGeoEquivalWith,mesh2,0,1e-12);#deepEqual fails
2695 self.assertTrue(cellCor==None);
2696 self.assertTrue(nodeCor==None);
2697 cellCor,nodeCor=mesh1.checkGeoEquivalWith(mesh2,1,1e-12);#fastEqual do not see anything
2698 self.assertTrue(cellCor==None);
2699 self.assertTrue(nodeCor==None);
2700 cellCor,nodeCor=mesh1.checkGeoEquivalWith(mesh2,10,1e-12);#deepEqual with geo permutations
2701 self.assertTrue(cellCor);
2702 self.assertEqual(10,cellCor.getNumberOfTuples());
2703 self.assertEqual(1,cellCor.getNumberOfComponents());
2704 self.assertEqual(renum,list(cellCor.getValues()))
2705 self.assertTrue(nodeCor==None);
2707 self.assertTrue(nodeCor==None);
2708 a,b=mesh1.checkDeepEquivalWith(mesh2,0,1e-12);
2709 self.assertEqual(renum,list(a.getValues()))
2710 self.assertTrue(b==None);
2711 mesh2.setCoords(mesh1.getCoords())
2712 a=mesh1.checkDeepEquivalOnSameNodesWith(mesh2,0,1e-12);
2713 self.assertEqual(renum,list(a.getValues()))
2714 #4th test : cell and node permutation by keeping the first the middle and the last as it is.
2715 mesh2=MEDCouplingDataForTest.build2DTargetMesh_3();
2716 renum2=[0,2,1,3,4,5,6,8,7,9,10]
2717 mesh2.renumberCells(renum,False);
2718 mesh2.renumberNodes(renum2,11);
2721 self.assertRaises(InterpKernelException,mesh1.checkGeoEquivalWith,mesh2,0,1e-12);#deepEqual fails
2722 self.assertTrue(cellCor==None);
2723 self.assertTrue(nodeCor==None);
2724 cellCor,nodeCor=mesh1.checkGeoEquivalWith(mesh2,1,1e-12);#fastEqual do not see anything
2725 self.assertTrue(cellCor==None);
2726 self.assertTrue(nodeCor==None);
2727 cellCor,nodeCor=mesh1.checkGeoEquivalWith(mesh2,10,1e-12);#deepEqual with geo permutations
2728 self.assertTrue(cellCor);
2729 self.assertEqual(10,cellCor.getNumberOfTuples());
2730 self.assertEqual(1,cellCor.getNumberOfComponents());
2731 self.assertEqual(renum,list(cellCor.getValues()))
2732 self.assertTrue(nodeCor);
2733 self.assertEqual(11,nodeCor.getNumberOfTuples());
2734 self.assertEqual(1,nodeCor.getNumberOfComponents());
2735 self.assertEqual(renum2,list(nodeCor.getValues()))
2738 #5th test : modification of the last cell to check fastCheck detection.
2739 mesh2=MEDCouplingDataForTest.build2DTargetMesh_3();
2740 renum3=[0,2,1,3,4,5,6,8,9,7]
2741 mesh2.renumberCells(renum3,False);
2742 mesh2.renumberNodes(renum2,11);
2745 self.assertRaises(InterpKernelException,mesh1.checkGeoEquivalWith,mesh2,0,1e-12)
2746 self.assertTrue(cellCor==None);
2747 self.assertTrue(nodeCor==None);
2748 self.assertRaises(InterpKernelException,mesh1.checkGeoEquivalWith,mesh2,1,1e-12)
2749 self.assertTrue(cellCor==None);
2750 self.assertTrue(nodeCor==None);
2751 cellCor,nodeCor=mesh2.checkGeoEquivalWith(mesh1,10,1e-12);#deepEqual with geo permutations
2752 self.assertTrue(cellCor!=None);
2753 self.assertEqual(10,cellCor.getNumberOfTuples());
2754 self.assertEqual(1,cellCor.getNumberOfComponents());
2755 self.assertEqual(renum3,list(cellCor.getValues()))
2756 self.assertTrue(nodeCor!=None);
2757 self.assertEqual(11,nodeCor.getNumberOfTuples());
2758 self.assertEqual(1,nodeCor.getNumberOfComponents());
2759 self.assertEqual(renum2,list(nodeCor.getValues()));
2762 def testCheckGeoEquivalWith2(self):
2763 mesh1=MEDCouplingDataForTest.build2DTargetMesh_4();
2764 mesh2=MEDCouplingDataForTest.build2DTargetMesh_1();
2765 cellCor,nodeCor=mesh1.checkGeoEquivalWith(mesh2,10,1e-12);
2766 self.assertEqual(None,cellCor);
2767 self.assertNotEqual(None,nodeCor);
2768 expected1=[0, 1, 3, 4, 5, 6, 7, 8, 9]
2770 self.assertEqual(expected1[i],nodeCor.getIJ(i,0));
2774 def testSwig2CheckDeepEquivalWith1(self):
2776 mcart = MEDCouplingCMesh()
2777 mcart.setCoordsAt(0, DataArrayDouble([0.0,1.5,2.0]))
2778 mcart.setCoordsAt(1, DataArrayDouble([1.0,2.5,3.0,4.0]))
2779 m = mcart.buildUnstructured()
2780 m2 = m[1:m.getNumberOfCells()]
2781 self.assertRaises(InterpKernelException, m.checkDeepEquivalWith, m2, 0, eps)
2782 self.assertRaises(InterpKernelException, m.checkDeepEquivalWith, m2, 1, eps)
2783 self.assertRaises(InterpKernelException, m.checkDeepEquivalWith, m2, 2, eps)
2786 def testCopyTinyStringsFromOnFields(self):
2787 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
2788 nbOfCells=m.getNumberOfCells();
2789 f=MEDCouplingFieldDouble.New(ON_CELLS,LINEAR_TIME);
2791 self.assertEqual(5,f.getNumberOfMeshPlacesExpected());
2793 f.setDescription("b");
2794 a1=DataArrayDouble.New();
2795 a1.alloc(nbOfCells,2);
2797 a1.setInfoOnComponent(0,"c");
2798 a1.setInfoOnComponent(1,"d");
2800 a2.setInfoOnComponent(0,"e");
2801 a2.setInfoOnComponent(1,"f");
2804 f.setEndTime(3.,3,4);
2806 m.getCoords().setInfoOnComponent(0,"h");
2807 m.getCoords().setInfoOnComponent(1,"i");
2808 m.getCoords().setInfoOnComponent(2,"j");
2812 self.assertTrue(f2.isEqual(f,1e-12,1e-12));
2814 self.assertTrue(not f2.isEqual(f,1e-12,1e-12));
2815 f2.copyTinyStringsFrom(f);
2816 self.assertTrue(f2.isEqual(f,1e-12,1e-12));
2817 f2.setDescription("GGG");
2818 self.assertTrue(not f2.isEqual(f,1e-12,1e-12));
2819 f2.copyTinyStringsFrom(f);
2820 self.assertTrue(f2.isEqual(f,1e-12,1e-12));
2821 f2.getArray().setInfoOnComponent(0,"mmmm");
2822 self.assertTrue(not f2.isEqual(f,1e-12,1e-12));
2823 f2.copyTinyStringsFrom(f);
2824 self.assertTrue(f2.isEqual(f,1e-12,1e-12));
2825 f2.getEndArray().setInfoOnComponent(1,"mmmm");
2826 self.assertTrue(not f2.isEqual(f,1e-12,1e-12));
2827 f2.copyTinyStringsFrom(f);
2828 self.assertTrue(f2.isEqual(f,1e-12,1e-12));
2830 self.assertTrue(m2.isEqual(m,1e-12));
2832 self.assertTrue(not m2.isEqual(m,1e-12));
2833 m2.copyTinyStringsFrom(m);
2834 self.assertTrue(m2.isEqual(m,1e-12));
2835 m2.getCoords().setInfoOnComponent(1,"eee");
2836 self.assertTrue(not m2.isEqual(m,1e-12));
2837 m2.copyTinyStringsFrom(m);
2838 self.assertTrue(m2.isEqual(m,1e-12));
2841 def testTryToShareSameCoordsPermute(self):
2842 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
2843 m2=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
2844 #self.assertTrue(m.getCoords()!=m2.getCoords());
2845 m.tryToShareSameCoordsPermute(m2,1e-12);
2846 #self.assertTrue(m.getCoords()==m2.getCoords());
2847 self.assertTrue(m2.isEqual(m,1e-12));
2848 renum1=[1,2,0,5,8,7,4,3,6]
2849 r1=DataArrayInt.New()
2850 r1.setValues(renum1,len(renum1),1)
2851 m.renumberNodes(r1,9);
2852 #self.assertTrue(m.getCoords()!=m2.getCoords());
2853 self.assertTrue(not m2.isEqual(m,1e-12));
2854 m.tryToShareSameCoordsPermute(m2,1e-12);
2855 #self.assertTrue(m.getCoords()==m2.getCoords());
2856 self.assertTrue(m2.isEqual(m,1e-12));
2859 def testTryToShareSameCoordsPermute2(self):
2860 m1=MEDCouplingDataForTest.build2DTargetMesh_4();
2861 targetCoords=[-0.3,-0.3, 0.2,-0.3, -0.3,0.2, 0.2,0.2 ]
2862 targetConn=[0,2,3,1]
2863 m2=MEDCouplingUMesh.New();
2864 m2.setMeshDimension(2);
2865 m2.allocateCells(1);
2866 m2.insertNextCell(NORM_QUAD4,targetConn[0:4])
2867 m2.finishInsertingCells();
2868 myCoords=DataArrayDouble.New();
2869 myCoords.setValues(targetCoords,4,2);
2870 m2.setCoords(myCoords);
2871 m2.checkCoherency();
2872 m1.checkCoherency();
2874 expected1=[0.25,0.125,0.125,0.25,0.25]
2875 f1=m1.getMeasureField(False);
2876 f2=m2.getMeasureField(False);
2877 self.assertEqual(5,f1.getArray().getNumberOfTuples());
2878 self.assertEqual(1,f2.getArray().getNumberOfTuples());
2880 self.assertAlmostEqual(expected1[i],f1.getIJ(i,0),12);
2882 self.assertAlmostEqual(expected1[0],f2.getIJ(0,0),12);
2883 self.assertRaises(InterpKernelException,m1.tryToShareSameCoordsPermute,m2,1e-12);# <- here in this order the sharing is impossible.
2884 # Let's go for deeper test of tryToShareSameCoordsPermute
2885 m2.tryToShareSameCoordsPermute(m1,1e-12);
2886 f1=m1.getMeasureField(False);
2887 f2=m2.getMeasureField(False);
2888 self.assertEqual(5,f1.getArray().getNumberOfTuples());
2889 self.assertEqual(1,f2.getArray().getNumberOfTuples());
2891 self.assertAlmostEqual(expected1[i],f1.getIJ(i,0),12);
2893 self.assertAlmostEqual(expected1[0],f2.getIJ(0,0),12);
2896 def testChangeUnderlyingMesh1(self):
2897 mesh1=MEDCouplingDataForTest.build2DTargetMesh_3();
2898 mesh2=MEDCouplingDataForTest.build2DTargetMesh_3();
2899 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
2901 array=DataArrayDouble.New();
2902 arr=[7., 107., 8., 108., 9., 109., 10., 110., 11., 111., 12., 112., 13., 113., 14., 114., 15., 115., 16., 116.]
2903 array.setValues(arr,mesh1.getNumberOfCells(),2);
2906 renum=[0,2,1,3,4,5,6,8,7,9]
2907 mesh2.renumberCells(renum,False);
2908 #self.assertTrue(f1.getMesh()==mesh1);
2909 f1.changeUnderlyingMesh(mesh1,10,1e-12);# nothing done only to check that nothing done.
2910 #self.assertTrue(f1.getMesh()==mesh1);
2911 f1.changeUnderlyingMesh(mesh2,10,1e-12);
2912 #self.assertTrue(f1.getMesh()==mesh2);
2913 expected1=[7.,107.,9.,109.,8.,108.,10.,110.,11.,111.,12.,112.,13.,113.,15.,115.,14.,114.,16.,116.]
2914 for i in xrange(20):
2915 self.assertAlmostEqual(expected1[i],f1.getArray().getIJ(0,i),12);
2918 f1=MEDCouplingFieldDouble.New(ON_NODES,NO_TIME);
2920 array=DataArrayDouble.New();
2921 arr2=[7.,107.,8.,108.,9.,109.,10.,110.,11.,111.,12.,112.,13.,113.,14.,114.,15.,115.,16.,116.,17.,117.]
2922 array.setValues(arr2,mesh1.getNumberOfNodes(),2);
2925 renum2=[0,2,10,3,4,5,6,8,7,9,1]
2926 mesh2.renumberNodes(renum2,11);
2927 #self.assertTrue(f1.getMesh()==mesh1);
2928 f1.changeUnderlyingMesh(mesh2,10,1e-12);
2929 #self.assertTrue(f1.getMesh()==mesh2);
2930 expected2=[7.,107.,17.,117.,8.,108.,10.,110.,11.,111.,12.,112.,13.,113.,15.,115.,14.,114.,16.,116.,9.,109.]
2931 for i in xrange(22):
2932 self.assertAlmostEqual(expected2[i],f1.getArray().getIJ(0,i),12);
2936 def testGetMaxValue1(self):
2937 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
2938 nbOfCells=m.getNumberOfCells();
2939 f=MEDCouplingFieldDouble.New(ON_CELLS,LINEAR_TIME);
2941 a1=DataArrayDouble.New();
2942 val1=[3.,4.,5.,6.,7.]
2943 a1.setValues(val1,nbOfCells,1);
2944 a2=DataArrayDouble.New();
2945 val2=[0.,1.,2.,8.,7.]
2946 a2.setValues(val2,nbOfCells,1);
2949 f.setEndTime(3.,3,4);
2952 self.assertAlmostEqual(8.,f.getMaxValue(),14);
2953 self.assertAlmostEqual(0.,f.getMinValue(),14);
2954 self.assertAlmostEqual(5.,f.getAverageValue(),14);
2955 self.assertAlmostEqual(5.125,f.getWeightedAverageValue(0,True),14);
2957 self.assertAlmostEqual(9.5,f.getMaxValue(),14);
2958 self.assertAlmostEqual(0.,f.getMinValue(),14);
2960 self.assertAlmostEqual(9.5,f.getMaxValue(),14);
2961 self.assertAlmostEqual(1.,f.getMinValue(),14);
2964 def testSubstractInPlaceDM1(self):
2965 mesh1=MEDCouplingDataForTest.build2DTargetMesh_3();
2966 mesh2=MEDCouplingDataForTest.build2DTargetMesh_3();
2967 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
2969 array=DataArrayDouble.New();
2970 arr=[7.,107.,8.,108.,9.,109.,10.,110.,11.,111.,12.,112.,13.,113.,14.,114.,15.,115.,16.,116.]
2971 array.setValues(arr,mesh1.getNumberOfCells(),2);
2974 self.assertEqual(10,f1.getNumberOfTuples());
2975 self.assertEqual(2,f1.getNumberOfComponents());
2976 self.assertEqual(20,f1.getNumberOfValues());
2978 renum=[0,2,3,1,4,5,6,8,7,9]
2979 mesh2.renumberCells(renum,False);
2981 f2=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
2983 array=DataArrayDouble.New();
2984 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]
2985 array.setValues(arr2,mesh2.getNumberOfCells(),2);
2988 f1.substractInPlaceDM(f2,10,1e-12);
2989 f1.applyFunc(1,"abs(x+y+0.2)");
2990 self.assertAlmostEqual(0.,f1.getMaxValue(),13);
2993 def testDotCrossProduct1(self):
2994 mesh1=MEDCouplingDataForTest.build2DTargetMesh_3();
2995 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
2996 f1.setTime(2.3,5,6);
2998 array=DataArrayDouble.New();
2999 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.]
3000 array.setValues(arr1,mesh1.getNumberOfCells(),3);
3002 f2=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
3003 f2.setTime(7.8,4,5);
3005 array=DataArrayDouble.New();
3006 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.]
3007 array.setValues(arr2,mesh1.getNumberOfCells(),3);
3011 expected1=[842.,1820.,2816.,3830.,4862.,5912.,6980.,8066.,9170.,10292.]
3012 for i in xrange(10):
3013 self.assertAlmostEqual(expected1[i],f3.getIJ(i,0),9);
3016 f4=f1.crossProduct(f2);
3017 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.]
3018 for i in xrange(30):
3019 self.assertAlmostEqual(expected2[i],f4.getIJ(0,i),9);
3023 def testMinMaxFields1(self):
3024 mesh1=MEDCouplingDataForTest.build2DTargetMesh_3();
3025 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
3026 f1.setTime(2.3,5,6);
3028 array=DataArrayDouble.New();
3029 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.]
3030 array.setValues(arr1,mesh1.getNumberOfCells(),3);
3032 f2=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
3033 f2.setTime(7.8,4,5);
3035 array=DataArrayDouble.New();
3036 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.]
3037 array.setValues(arr2,mesh1.getNumberOfCells(),3);
3041 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.]
3042 for i in xrange(30):
3043 self.assertAlmostEqual(expected1[i],f3.getIJ(0,i),9);
3047 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.]
3048 for i in xrange(30):
3049 self.assertAlmostEqual(expected2[i],f4.getIJ(0,i),9);
3054 def testApplyLin1(self):
3055 mesh1=MEDCouplingDataForTest.build2DTargetMesh_3();
3056 f1=MEDCouplingFieldDouble.New(ON_CELLS,LINEAR_TIME);
3058 array=DataArrayDouble.New();
3059 arr=[7.,107.,8.,108.,9.,109.,10.,110.,11.,111.,12.,112.,13.,113.,14.,114.,15.,115.,16.,116.]
3060 array.setValues(arr,mesh1.getNumberOfCells(),2);
3063 f1.applyLin(2.,3.,0);
3064 expected1=[17.,107.,19.,108.,21.,109.,23.,110.,25.,111.,27.,112.,29.,113.,31.,114.,33.,115.,35.,116.]
3065 for i in xrange(20):
3066 self.assertAlmostEqual(expected1[i],f1.getIJ(0,i),9);
3069 arr2=[2.,102.,3.,103.,4.,104.,5.,105.,6.,106.,7.,107.,8.,108.,9.,109.,10.,110.,11.,111.]
3070 array=DataArrayDouble.New();
3071 array.setValues(arr2,mesh1.getNumberOfCells(),2);
3072 f1.setEndArray(array);
3074 f1.applyLin(4.,5.,1);
3076 expected2=[17.,433.,19.,437.,21.,441.,23.,445.,25.,449.,27.,453.,29.,457.,31.,461.,33.,465.,35.,469.]
3077 for i in xrange(20):
3078 self.assertAlmostEqual(expected2[i],f1.getIJ(0,i),9);
3080 expected3=[2.,413.,3.,417.,4.,421.,5.,425.,6.,429.,7.,433.,8.,437.,9.,441.,10.,445.,11.,449.]
3081 for i in xrange(20):
3082 self.assertAlmostEqual(expected3[i],f1.getEndArray().getIJ(0,i),9);
3087 def testGetIdsInRange1(self):
3088 mesh1=MEDCouplingDataForTest.build2DTargetMesh_3();
3089 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
3090 f1.setTime(2.3,5,6);
3092 array=DataArrayDouble.New();
3093 arr1=[2.,8.,6.,5.,11.,7.,9.,3.,10.,4.]
3094 array.setValues(arr1,mesh1.getNumberOfCells(),1);
3097 f1.checkCoherency();
3098 da=f1.getIdsInRange(2.9,7.1);
3099 self.failUnlessEqual(5,da.getNbOfElems());
3100 expected1=[2,3,5,7,9]
3101 self.failUnlessEqual(expected1,list(da.getValues()));
3102 da=f1.getIdsInRange(8.,12.);
3103 self.failUnlessEqual(4,da.getNbOfElems());
3105 self.failUnlessEqual(expected2,list(da.getValues()));
3109 def testBuildSubPart1(self):
3110 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
3111 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
3112 f1.setTime(2.3,5,6);
3114 array=DataArrayDouble.New();
3115 arr1=[3.,103.,4.,104.,5.,105.,6.,106.,7.,107.]
3116 array.setValues(arr1,mesh1.getNumberOfCells(),2);
3122 self.failUnlessEqual(3,f2.getNumberOfTuples());
3123 self.failUnlessEqual(2,f2.getNumberOfComponents());
3124 expected1=[5.,105.,4.,104.,7.,107.]
3126 self.assertAlmostEqual(f2.getIJ(0,i),expected1[i],12);
3128 self.failUnlessEqual(3,f2.getMesh().getNumberOfCells());
3129 self.failUnlessEqual(6,f2.getMesh().getNumberOfNodes());
3130 self.failUnlessEqual(2,f2.getMesh().getSpaceDimension());
3131 self.failUnlessEqual(2,f2.getMesh().getMeshDimension());
3133 self.failUnlessEqual(13,m2C.getMeshLength());
3134 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]
3135 for i in xrange(12):
3136 self.assertAlmostEqual(expected2[i],m2C.getCoords().getIJ(0,i),12);
3138 expected3=[3,2,3,1,3,0,2,1,4,4,5,3,2]
3139 self.failUnlessEqual(expected3,list(m2C.getNodalConnectivity().getValues()));
3140 expected4=[0,4,8,13]
3141 self.failUnlessEqual(expected4,list(m2C.getNodalConnectivityIndex().getValues()));
3142 # Test with field on nodes.
3143 f1=MEDCouplingFieldDouble.New(ON_NODES,ONE_TIME);
3144 f1.setTime(2.3,5,6);
3146 array=DataArrayDouble.New();
3147 arr2=[3.,103.,4.,104.,5.,105.,6.,106.,7.,107.,8.,108.,9.,109.,10.,110.,11.,111.]
3148 array.setValues(arr2,mesh1.getNumberOfNodes(),2);
3151 f2=f1.buildSubPart(part2);
3152 self.failUnlessEqual(4,f2.getNumberOfTuples());
3153 self.failUnlessEqual(2,f2.getNumberOfComponents());
3154 expected5=[4.,104.,5.,105.,7.,107.,8.,108.]
3156 self.assertAlmostEqual(f2.getIJ(0,i),expected5[i],12);
3158 self.failUnlessEqual(2,f2.getMesh().getNumberOfCells());
3159 self.failUnlessEqual(4,f2.getMesh().getNumberOfNodes());
3160 self.failUnlessEqual(2,f2.getMesh().getSpaceDimension());
3161 self.failUnlessEqual(2,f2.getMesh().getMeshDimension());
3163 self.failUnlessEqual(8,m2C.getMeshLength());
3164 for i in xrange(8):#8 is not an error
3165 self.assertAlmostEqual(expected2[i],m2C.getCoords().getIJ(0,i),12);
3167 self.failUnlessEqual(expected3[:4],list(m2C.getNodalConnectivity().getValues())[4:]);
3168 self.failUnlessEqual(expected3[4:8],list(m2C.getNodalConnectivity().getValues())[:4]);
3169 self.failUnlessEqual(expected4[:3],list(m2C.getNodalConnectivityIndex().getValues()));
3170 #idem previous because nodes of cell#4 are not fully present in part3
3172 arrr=DataArrayInt.New();
3173 arrr.setValues(part3,2,1);
3174 f2=f1.buildSubPart(arrr);
3175 self.failUnlessEqual(4,f2.getNumberOfTuples());
3176 self.failUnlessEqual(2,f2.getNumberOfComponents());
3178 self.assertAlmostEqual(f2.getIJ(0,i),expected5[i],12);
3180 self.failUnlessEqual(2,f2.getMesh().getNumberOfCells());
3181 self.failUnlessEqual(4,f2.getMesh().getNumberOfNodes());
3182 self.failUnlessEqual(2,f2.getMesh().getSpaceDimension());
3183 self.failUnlessEqual(2,f2.getMesh().getMeshDimension());
3185 self.failUnlessEqual(8,m2C.getMeshLength());
3186 for i in xrange(8):#8 is not an error
3187 self.assertAlmostEqual(expected2[i],m2C.getCoords().getIJ(0,i),12);
3189 self.failUnlessEqual(expected3[:4],list(m2C.getNodalConnectivity().getValues())[4:8]);
3190 self.failUnlessEqual(expected3[4:8],list(m2C.getNodalConnectivity().getValues())[:4]);
3191 self.failUnlessEqual(expected4[:3],list(m2C.getNodalConnectivityIndex().getValues()));
3194 f2=f1.buildSubPart(part4);
3195 self.failUnlessEqual(6,f2.getNumberOfTuples());
3196 self.failUnlessEqual(2,f2.getNumberOfComponents());
3197 expected6=[4.,104.,5.,105.,7.,107.,8.,108.,10.,110.,11.,111.]
3198 for i in xrange(12):
3199 self.assertAlmostEqual(f2.getIJ(0,i),expected6[i],12);
3201 self.failUnlessEqual(3,f2.getMesh().getNumberOfCells());
3202 self.failUnlessEqual(6,f2.getMesh().getNumberOfNodes());
3203 self.failUnlessEqual(2,f2.getMesh().getSpaceDimension());
3204 self.failUnlessEqual(2,f2.getMesh().getMeshDimension());
3206 self.failUnlessEqual(13,m2C.getMeshLength());
3207 for i in xrange(12):
3208 self.assertAlmostEqual(expected2[i],m2C.getCoords().getIJ(0,i),12);
3210 self.failUnlessEqual(expected3[0:4],list(m2C.getNodalConnectivity().getValues())[4:8]);
3211 self.failUnlessEqual(expected3[4:8],list(m2C.getNodalConnectivity().getValues())[0:4]);
3212 self.failUnlessEqual(expected3[8:13],list(m2C.getNodalConnectivity().getValues())[8:13]);
3213 self.failUnlessEqual(expected4,list(m2C.getNodalConnectivityIndex().getValues()));
3216 def testDoublyContractedProduct1(self):
3217 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
3218 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
3220 array=DataArrayDouble.New();
3221 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]
3222 array.setValues(arr1,mesh1.getNumberOfCells(),6);
3224 f1.checkCoherency();
3226 f2=f1.doublyContractedProduct();
3227 f2.checkCoherency();
3228 self.assertEqual(1,f2.getNumberOfComponents());
3229 self.assertEqual(5,f2.getNumberOfTuples());
3231 self.assertAlmostEqual(3906.56,f2.getIJ(i,0),9);
3236 def testDeterminant1(self):
3237 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
3238 f1=MEDCouplingFieldDouble.New(ON_CELLS,CONST_ON_TIME_INTERVAL);
3239 f1.setTime(2.3,5,6);
3240 f1.setEndTime(3.8,7,3);
3242 array=DataArrayDouble.New();
3243 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]
3244 array.setValues(arr1,mesh1.getNumberOfCells(),4);
3247 f1.checkCoherency();
3248 f2=f1.determinant();
3249 f2.checkCoherency();
3250 self.assertEqual(CONST_ON_TIME_INTERVAL,f2.getTimeDiscretization());
3251 self.assertEqual(1,f2.getNumberOfComponents());
3252 self.assertEqual(5,f2.getNumberOfValues());
3254 self.assertAlmostEqual(-2.42,f2.getIJ(i,0),13);
3256 #6 components multi arrays with end array not defined
3257 f1=MEDCouplingFieldDouble.New(ON_NODES,LINEAR_TIME);
3258 f1.setTime(2.3,5,6);
3259 f1.setEndTime(3.8,7,3);
3261 array=DataArrayDouble.New();
3262 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,
3263 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]
3264 array.setValues(arr2,mesh1.getNumberOfNodes(),6);
3266 self.assertRaises(InterpKernelException,f1.checkCoherency);#no end array specified !
3268 f2=f1.determinant();
3269 self.assertEqual(LINEAR_TIME,f2.getTimeDiscretization());
3270 self.assertEqual(1,f2.getArray().getNumberOfComponents());
3271 self.assertEqual(9,f2.getNumberOfTuples());
3273 self.assertAlmostEqual(137.335,f2.getIJ(i,0),10);
3275 #6 components multi arrays with end array defined
3276 array=DataArrayDouble.New();
3277 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,
3278 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]
3279 array.setValues(arr3,mesh1.getNumberOfNodes(),6);
3280 f1.setEndArray(array);
3281 f1.checkCoherency();
3282 f2=f1.determinant();
3283 f2.checkCoherency();
3284 self.assertEqual(LINEAR_TIME,f2.getTimeDiscretization());
3285 self.assertEqual(1,f2.getNumberOfComponents());
3286 self.assertEqual(9,f2.getNumberOfTuples());
3287 time2,it,order=f2.getTime()
3288 self.assertAlmostEqual(2.3,time2,12);
3289 self.assertEqual(5,it);
3290 self.assertEqual(6,order);
3291 time2,it,order=f2.getEndTime()
3292 self.assertAlmostEqual(3.8,time2,12);
3293 self.assertEqual(7,it);
3294 self.assertEqual(3,order);
3296 self.assertAlmostEqual(137.335,f2.getIJ(i,0),10);
3297 self.assertAlmostEqual(1289.685,f2.getEndArray().getIJ(i,0),9);
3300 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
3301 f1.setTime(7.8,10,2);
3303 array=DataArrayDouble.New();
3304 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]
3305 array.setValues(arr4,mesh1.getNumberOfCells(),9);
3308 f1.checkCoherency();
3309 f2=f1.determinant();
3310 f2.checkCoherency();
3311 self.assertEqual(ONE_TIME,f2.getTimeDiscretization());
3312 self.assertEqual(1,f2.getNumberOfComponents());
3313 self.assertEqual(5,f2.getNumberOfTuples());
3314 time2,it,order=f2.getTime()
3315 self.assertAlmostEqual(7.8,time2,12);
3316 self.assertEqual(10,it);
3317 self.assertEqual(2,order);
3319 self.assertAlmostEqual(3.267,f2.getIJ(i,0),13);
3323 def testEigenValues1(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, 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]
3329 array.setValues(arr1,mesh1.getNumberOfCells(),6);
3331 f1.checkCoherency();
3333 f2=f1.eigenValues();
3334 f2.checkCoherency();
3335 self.assertEqual(3,f2.getNumberOfComponents());
3336 self.assertEqual(5,f2.getNumberOfTuples());
3337 expected1=[13.638813677891717,-4.502313844635971,-2.2364998332557486]
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);
3345 def testEigenVectors1(self):
3346 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
3347 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
3349 array=DataArrayDouble.New();
3350 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]
3351 array.setValues(arr1,mesh1.getNumberOfCells(),6);
3353 f1.checkCoherency();
3355 f2=f1.eigenVectors();
3356 f2.checkCoherency();
3357 self.assertEqual(9,f2.getNumberOfComponents());
3358 self.assertEqual(5,f2.getNumberOfTuples());
3359 expected1=[0.5424262364180696, 0.5351201064614425, 0.6476266283176001,#eigenvect 0
3360 0.7381111277307373, 0.06458838384003074, -0.6715804522117897,#eigenvect 1
3361 -0.4012053603397987, 0.8423032781211455, -0.3599436712889738#eigenvect 2
3364 self.assertAlmostEqual(expected1[0],f2.getIJ(i,0),13);
3365 self.assertAlmostEqual(expected1[1],f2.getIJ(i,1),13);
3366 self.assertAlmostEqual(expected1[2],f2.getIJ(i,2),13);
3367 self.assertAlmostEqual(expected1[3],f2.getIJ(i,3),13);
3368 self.assertAlmostEqual(expected1[4],f2.getIJ(i,4),13);
3369 self.assertAlmostEqual(expected1[5],f2.getIJ(i,5),13);
3370 self.assertAlmostEqual(expected1[6],f2.getIJ(i,6),13);
3371 self.assertAlmostEqual(expected1[7],f2.getIJ(i,7),13);
3372 self.assertAlmostEqual(expected1[8],f2.getIJ(i,8),13);
3377 def testInverse1(self):
3378 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
3379 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
3381 array=DataArrayDouble.New();
3382 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]
3383 array.setValues(arr1,mesh1.getNumberOfCells(),9);
3385 f1.checkCoherency();
3388 f2.checkCoherency();
3389 self.assertEqual(9,f2.getNumberOfComponents());
3390 self.assertEqual(5,f2.getNumberOfTuples());
3391 expected1=[-2.6538108356290113, 2.855831037649208, -1.1111111111111067, 3.461891643709813, -4.775022956841121, 2.2222222222222143, -1.1111111111111054, 2.222222222222214, -1.1111111111111072]
3393 self.assertAlmostEqual(expected1[0],f2.getIJ(i,0),13);
3394 self.assertAlmostEqual(expected1[1],f2.getIJ(i,1),13);
3395 self.assertAlmostEqual(expected1[2],f2.getIJ(i,2),13);
3396 self.assertAlmostEqual(expected1[3],f2.getIJ(i,3),13);
3397 self.assertAlmostEqual(expected1[4],f2.getIJ(i,4),13);
3398 self.assertAlmostEqual(expected1[5],f2.getIJ(i,5),13);
3399 self.assertAlmostEqual(expected1[6],f2.getIJ(i,6),13);
3400 self.assertAlmostEqual(expected1[7],f2.getIJ(i,7),13);
3401 self.assertAlmostEqual(expected1[8],f2.getIJ(i,8),13);
3404 array=DataArrayDouble.New();
3405 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]
3406 array.setValues(arr3,mesh1.getNumberOfCells(),6);
3408 f1.checkCoherency();
3411 f2.checkCoherency();
3412 self.assertEqual(6,f2.getNumberOfComponents());
3413 self.assertEqual(5,f2.getNumberOfTuples());
3414 expected3=[-0.3617705098531818, -0.8678630828458127, -0.026843764174972983, 0.5539957431465833, 0.13133439560823013, -0.05301294502145887]
3416 self.assertAlmostEqual(expected3[0],f2.getIJ(i,0),13);
3417 self.assertAlmostEqual(expected3[1],f2.getIJ(i,1),13);
3418 self.assertAlmostEqual(expected3[2],f2.getIJ(i,2),13);
3419 self.assertAlmostEqual(expected3[3],f2.getIJ(i,3),13);
3420 self.assertAlmostEqual(expected3[4],f2.getIJ(i,4),13);
3421 self.assertAlmostEqual(expected3[5],f2.getIJ(i,5),13);
3424 array=DataArrayDouble.New();
3425 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]
3426 array.setValues(arr2,mesh1.getNumberOfCells(),4);
3428 f1.checkCoherency();
3431 f2.checkCoherency();
3432 self.assertEqual(4,f2.getNumberOfComponents());
3433 self.assertEqual(5,f2.getNumberOfTuples());
3434 expected2=[-1.8595041322314059, 0.9504132231404963, 1.404958677685951, -0.49586776859504156]
3436 self.assertAlmostEqual(expected2[0],f2.getIJ(i,0),13);
3437 self.assertAlmostEqual(expected2[1],f2.getIJ(i,1),13);
3438 self.assertAlmostEqual(expected2[2],f2.getIJ(i,2),13);
3439 self.assertAlmostEqual(expected2[3],f2.getIJ(i,3),13);
3444 def testTrace1(self):
3445 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
3446 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
3448 array=DataArrayDouble.New();
3449 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]
3450 array.setValues(arr1,mesh1.getNumberOfCells(),9);
3452 f1.checkCoherency();
3455 f2.checkCoherency();
3456 self.assertEqual(1,f2.getNumberOfComponents());
3457 self.assertEqual(5,f2.getNumberOfTuples());
3459 self.assertAlmostEqual(15.9,f2.getIJ(i,0),13);
3462 array=DataArrayDouble.New();
3463 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]
3464 array.setValues(arr3,mesh1.getNumberOfCells(),6);
3466 f1.checkCoherency();
3469 f2.checkCoherency();
3470 self.assertEqual(1,f2.getNumberOfComponents());
3471 self.assertEqual(5,f2.getNumberOfTuples());
3473 self.assertAlmostEqual(25.8,f2.getIJ(i,0),13);
3476 array=DataArrayDouble.New();
3477 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]
3478 array.setValues(arr2,mesh1.getNumberOfCells(),4);
3480 f1.checkCoherency();
3483 f2.checkCoherency();
3484 self.assertEqual(1,f2.getNumberOfComponents());
3485 self.assertEqual(5,f2.getNumberOfTuples());
3487 self.assertAlmostEqual(5.7,f2.getIJ(i,0),13);
3492 def testDeviator1(self):
3493 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
3494 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
3496 array=DataArrayDouble.New();
3497 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]
3498 array.setValues(arr1,mesh1.getNumberOfCells(),6);
3500 f1.checkCoherency();
3503 f2.checkCoherency();
3504 self.assertEqual(6,f2.getNumberOfComponents());
3505 self.assertEqual(5,f2.getNumberOfTuples());
3506 expected1=[-1.1,0.,1.1,4.5,5.6,6.7]
3508 self.assertAlmostEqual(expected1[0],f2.getIJ(i,0),13);
3509 self.assertAlmostEqual(expected1[1],f2.getIJ(i,1),13);
3510 self.assertAlmostEqual(expected1[2],f2.getIJ(i,2),13);
3511 self.assertAlmostEqual(expected1[3],f2.getIJ(i,3),13);
3512 self.assertAlmostEqual(expected1[4],f2.getIJ(i,4),13);
3513 self.assertAlmostEqual(expected1[5],f2.getIJ(i,5),13);
3518 def testMagnitude1(self):
3519 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
3520 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
3522 array=DataArrayDouble.New();
3523 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]
3524 array.setValues(arr1,mesh1.getNumberOfCells(),5);
3526 f1.checkCoherency();
3529 f2.checkCoherency();
3530 self.assertEqual(1,f2.getNumberOfComponents());
3531 self.assertEqual(5,f2.getNumberOfTuples());
3533 self.assertAlmostEqual(8.3606219864313918,f2.getIJ(i,0),13);
3538 def testMaxPerTuple1(self):
3539 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
3540 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
3542 array=DataArrayDouble.New();
3543 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]
3544 array.setValues(arr1,mesh1.getNumberOfCells(),5);
3546 f1.checkCoherency();
3548 f2=f1.maxPerTuple();
3549 f2.checkCoherency();
3550 self.assertEqual(1,f2.getNumberOfComponents());
3551 self.assertEqual(5,f2.getNumberOfTuples());
3553 self.assertAlmostEqual(5.6,f2.getIJ(i,0),13);
3556 d2,d2I=array.maxPerTupleWithCompoId()
3557 self.assertEqual(1,d2.getNumberOfComponents());
3558 self.assertEqual(5,d2.getNumberOfTuples());
3560 self.assertAlmostEqual(5.6,d2.getIJ(i,0),13);
3562 self.assertTrue(d2I.isEqual(DataArrayInt([4,3,2,0,1])))
3565 def testChangeNbOfComponents(self):
3566 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
3567 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
3569 array=DataArrayDouble.New();
3570 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]
3571 array.setValues(arr1,mesh1.getNumberOfCells(),5);
3573 f1.checkCoherency();
3575 f1.changeNbOfComponents(3,7.77);
3576 f1.checkCoherency();
3577 self.assertEqual(3,f1.getNumberOfComponents());
3578 self.assertEqual(5,f1.getNumberOfTuples());
3579 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]
3580 for i in xrange(15):
3581 self.assertAlmostEqual(expected1[i],f1.getIJ(0,i),13);
3583 f1.changeNbOfComponents(4,7.77);
3584 f1.checkCoherency();
3585 self.assertEqual(4,f1.getNumberOfComponents());
3586 self.assertEqual(5,f1.getNumberOfTuples());
3587 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]
3588 for i in xrange(20):
3589 self.assertAlmostEqual(expected2[i],f1.getIJ(0,i),13);
3594 def testSortPerTuple1(self):
3595 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
3596 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
3598 array=DataArrayDouble.New();
3599 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]
3600 array.setValues(arr1,mesh1.getNumberOfCells(),5);
3602 f1.checkCoherency();
3604 f1.sortPerTuple(True);
3605 f1.checkCoherency();
3606 self.assertEqual(5,f1.getNumberOfComponents());
3607 self.assertEqual(5,f1.getNumberOfTuples());
3609 self.assertAlmostEqual(arr1[0],f1.getIJ(i,0),13);
3610 self.assertAlmostEqual(arr1[1],f1.getIJ(i,1),13);
3611 self.assertAlmostEqual(arr1[2],f1.getIJ(i,2),13);
3612 self.assertAlmostEqual(arr1[3],f1.getIJ(i,3),13);
3613 self.assertAlmostEqual(arr1[4],f1.getIJ(i,4),13);
3616 f1.sortPerTuple(False);
3617 f1.checkCoherency();
3618 self.assertEqual(5,f1.getNumberOfComponents());
3619 self.assertEqual(5,f1.getNumberOfTuples());
3621 self.assertAlmostEqual(arr1[4],f1.getIJ(i,0),13);
3622 self.assertAlmostEqual(arr1[3],f1.getIJ(i,1),13);
3623 self.assertAlmostEqual(arr1[2],f1.getIJ(i,2),13);
3624 self.assertAlmostEqual(arr1[1],f1.getIJ(i,3),13);
3625 self.assertAlmostEqual(arr1[0],f1.getIJ(i,4),13);
3630 def testIsEqualWithoutConsideringStr1(self):
3631 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
3632 mesh2=MEDCouplingDataForTest.build2DTargetMesh_1();
3634 self.assertTrue(mesh1.isEqual(mesh2,1e-12));
3635 self.assertTrue(mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
3636 mesh2.setName("rr");
3637 self.assertTrue(not mesh1.isEqual(mesh2,1e-12));
3638 self.assertTrue(mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
3639 da1,da2=mesh1.checkGeoEquivalWith(mesh2,2,1e-12);
3640 self.assertRaises(InterpKernelException,mesh1.checkGeoEquivalWith,mesh2,0,1e-12);
3642 self.assertTrue(mesh1.isEqual(mesh2,1e-12));
3643 self.assertTrue(mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
3644 mesh2.getCoords().setInfoOnComponent(0,"tty");
3645 self.assertTrue(not mesh1.isEqual(mesh2,1e-12));
3646 self.assertTrue(mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
3647 mesh2.getCoords().setInfoOnComponent(0,"");
3648 self.assertTrue(mesh1.isEqual(mesh2,1e-12));
3649 self.assertTrue(mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
3650 mesh2.getCoords().setInfoOnComponent(1,"tty");
3651 self.assertTrue(not mesh1.isEqual(mesh2,1e-12));
3652 self.assertTrue(mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
3653 mesh2.getCoords().setInfoOnComponent(1,"");
3654 self.assertTrue(mesh1.isEqual(mesh2,1e-12));
3655 self.assertTrue(mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
3656 tmp=mesh2.getCoords().getIJ(0,3);
3657 mesh2.getCoords().setIJ(0,3,9999.);
3658 self.assertTrue(not mesh1.isEqual(mesh2,1e-12));
3659 self.assertTrue(not mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
3660 mesh2.getCoords().setIJ(0,3,tmp);
3661 self.assertTrue(mesh1.isEqual(mesh2,1e-12));
3662 self.assertTrue(mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
3663 tmp2=mesh2.getNodalConnectivity().getIJ(0,4);
3664 mesh2.getNodalConnectivity().setIJ(0,4,0);
3665 self.assertTrue(not mesh1.isEqual(mesh2,1e-12));
3666 self.assertTrue(not mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
3667 mesh2.getNodalConnectivity().setIJ(0,4,tmp2);
3668 self.assertTrue(mesh1.isEqual(mesh2,1e-12));
3669 self.assertTrue(mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
3671 f1=mesh1.getMeasureField(True);
3672 f2=mesh2.getMeasureField(True);
3673 self.assertTrue(f1.isEqual(f2,1e-12,1e-12));
3674 self.assertTrue(f1.isEqualWithoutConsideringStr(f2,1e-12,1e-12));
3675 f2.setName("ftest");
3676 self.assertTrue(not f1.isEqual(f2,1e-12,1e-12));
3677 self.assertTrue(f1.isEqualWithoutConsideringStr(f2,1e-12,1e-12));
3678 f1.setName("ftest");
3679 self.assertTrue(f1.isEqual(f2,1e-12,1e-12));
3680 self.assertTrue(f1.isEqualWithoutConsideringStr(f2,1e-12,1e-12));
3682 f2.getArray().setInfoOnComponent(0,"eee");
3683 self.assertTrue(not f1.isEqual(f2,1e-12,1e-12));
3684 self.assertTrue(f1.isEqualWithoutConsideringStr(f2,1e-12,1e-12));
3685 f2.getArray().setInfoOnComponent(0,"");
3686 self.assertTrue(f1.isEqual(f2,1e-12,1e-12));
3687 self.assertTrue(f1.isEqualWithoutConsideringStr(f2,1e-12,1e-12));
3689 f2.getArray().setIJ(1,0,0.123);
3690 self.assertTrue(not f1.isEqual(f2,1e-12,1e-12));
3691 self.assertTrue(not f1.isEqualWithoutConsideringStr(f2,1e-12,1e-12));
3692 f2.getArray().setIJ(1,0,0.125);
3693 self.assertTrue(f1.isEqual(f2,1e-12,1e-12));
3694 self.assertTrue(f1.isEqualWithoutConsideringStr(f2,1e-12,1e-12));
3698 def testGetNodeIdsOfCell1(self):
3699 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
3700 li=mesh1.getNodeIdsOfCell(1)
3702 self.assertEqual(expected1,list(li))
3703 li=mesh1.getCoordinatesOfNode(4)
3704 self.assertEqual(2,len(li))
3705 self.assertAlmostEqual(0.2,li[0],13);
3706 self.assertAlmostEqual(0.2,li[1],13);
3707 li=mesh1.getCoords().getValuesAsTuple()
3708 self.assertEqual(9,len(li))
3709 li2=mesh1.getNodalConnectivityIndex().getValuesAsTuple()
3710 self.assertEqual(6,len(li2))
3713 def testGetEdgeRatioField1(self):
3714 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
3715 m1.setTime(3.4,5,6); m1.setTimeUnit("us");
3716 f1=m1.getEdgeRatioField();
3717 self.assertAlmostEqual(3.4,f1.getTime()[0],12) ; self.assertEqual(5,f1.getTime()[1]) ; self.assertEqual(6,f1.getTime()[2])
3718 self.assertEqual("us",f1.getTimeUnit())
3719 self.assertEqual(m1.getNumberOfCells(),f1.getNumberOfTuples());
3720 self.assertEqual(5,f1.getNumberOfTuples());
3721 self.assertEqual(1,f1.getNumberOfComponents());
3722 expected1=[1.,1.4142135623730951, 1.4142135623730951,1.,1.]
3724 self.assertAlmostEqual(expected1[i],f1.getIJ(i,0),14);
3727 m1=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
3728 f1=m1.getEdgeRatioField();
3729 self.assertEqual(m1.getNumberOfCells(),f1.getNumberOfTuples());
3730 self.assertEqual(5,f1.getNumberOfTuples());
3731 self.assertEqual(1,f1.getNumberOfComponents());
3732 expected2=[1.4142135623730951, 1.7320508075688772, 1.7320508075688772, 1.4142135623730951, 1.4142135623730951]
3734 self.assertAlmostEqual(expected2[i],f1.getIJ(i,0),14);
3738 def testFillFromAnalytic3(self):
3739 m=MEDCouplingDataForTest.build2DTargetMesh_1()
3740 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME)
3741 self.assertRaises(InterpKernelException,f1.fillFromAnalytic,1,"y+x");
3743 f1.setName("myField");
3744 f1.fillFromAnalytic(1,"y+x");
3745 f1.checkCoherency();
3746 self.assertEqual(f1.getName(),"myField");
3747 self.assertEqual(f1.getTypeOfField(),ON_CELLS);
3748 self.assertEqual(f1.getTimeDiscretization(),ONE_TIME);
3749 self.assertEqual(1,f1.getNumberOfComponents());
3750 self.assertEqual(5,f1.getNumberOfTuples());
3751 values1=[-0.1,0.23333333333333336,0.56666666666666665,0.4,0.9]
3752 tmp=f1.getArray().getValues();
3753 self.assertEqual(len(values1),len(tmp))
3754 for i in xrange(len(values1)):
3755 self.assertTrue(abs(values1[i]-tmp[i])<1.e-12);
3758 f1=MEDCouplingFieldDouble.New(ON_NODES,CONST_ON_TIME_INTERVAL)
3760 f1.fillFromAnalytic(1,"y+2*x");
3761 f1.setEndTime(1.2,3,4);
3762 f1.checkCoherency();
3763 self.assertEqual(f1.getTypeOfField(),ON_NODES);
3764 self.assertEqual(f1.getTimeDiscretization(),CONST_ON_TIME_INTERVAL);
3765 self.assertEqual(1,f1.getNumberOfComponents());
3766 self.assertEqual(9,f1.getNumberOfTuples());
3767 values2=[-0.9,0.1,1.1,-0.4,0.6,1.6,0.1,1.1,2.1]
3768 tmp=f1.getArray().getValues();
3769 self.assertEqual(len(values2),len(tmp))
3770 for i in xrange(len(values2)):
3771 self.assertTrue(abs(values2[i]-tmp[i])<1.e-12);
3773 f1=MEDCouplingFieldDouble.New(ON_NODES,LINEAR_TIME);
3775 f1.fillFromAnalytic(1,"2.*x+y");
3776 f1.setEndTime(1.2,3,4);
3777 f1.checkCoherency();
3778 self.assertEqual(f1.getTypeOfField(),ON_NODES);
3779 self.assertEqual(f1.getTimeDiscretization(),LINEAR_TIME);
3780 self.assertEqual(1,f1.getNumberOfComponents());
3781 self.assertEqual(9,f1.getNumberOfTuples());
3782 tmp=f1.getArray().getValues();
3783 values2Bis=[-0.9,0.1,1.1,-0.4,0.6,1.6,0.1,1.1,2.1]
3784 self.assertEqual(len(values2Bis),len(tmp))
3785 for i in xrange(len(values2Bis)):
3786 self.assertTrue(abs(values2Bis[i]-tmp[i])<1.e-12);
3788 tmp=f1.getEndArray().getValues();
3789 self.assertEqual(len(values2Bis),len(tmp))
3790 for i in xrange(len(values2Bis)):
3791 self.assertTrue(abs(values2Bis[i]-tmp[i])<1.e-12);
3794 f1=MEDCouplingFieldDouble.New(ON_NODES,ONE_TIME);
3796 f1.fillFromAnalytic(2,"(x+y)*IVec+2*(x+y)*JVec");
3797 f1.checkCoherency();
3798 self.assertEqual(f1.getTypeOfField(),ON_NODES);
3799 self.assertEqual(f1.getTimeDiscretization(),ONE_TIME);
3800 self.assertEqual(2,f1.getNumberOfComponents());
3801 self.assertEqual(9,f1.getNumberOfTuples());
3802 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]
3803 tmp=f1.getArray().getValues();
3804 self.assertEqual(len(values3),len(tmp))
3805 for i in xrange(len(values3)):
3806 self.assertTrue(abs(values3[i]-tmp[i])<1.e-12);
3808 values4=f1.accumulate();
3809 self.assertTrue(abs(3.6-values4[0])<1.e-12);
3810 self.assertTrue(abs(7.2-values4[1])<1.e-12);
3811 values4=f1.integral(True);
3812 self.assertTrue(abs(0.5-values4[0])<1.e-12);
3813 self.assertTrue(abs(1.-values4[1])<1.e-12);
3815 f1=MEDCouplingFieldDouble.New(ON_NODES,NO_TIME);
3817 self.assertRaises(InterpKernelException,f1.fillFromAnalytic,1,"1./(x-0.2)");
3820 def testFieldDoubleOpEqual1(self):
3821 m=MEDCouplingDataForTest.build2DTargetMesh_1();
3822 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
3823 self.assertRaises(InterpKernelException,f1.assign,0.07);
3826 f1.checkCoherency();
3827 self.assertEqual(1,f1.getNumberOfComponents());
3828 self.assertEqual(5,f1.getNumberOfTuples());
3830 self.assertAlmostEqual(0.07,f1.getIJ(i,0),16);
3833 f1.checkCoherency();
3834 self.assertEqual(1,f1.getNumberOfComponents());
3835 self.assertEqual(5,f1.getNumberOfTuples());
3837 self.assertAlmostEqual(0.09,f1.getIJ(i,0),16);
3840 f1=MEDCouplingFieldDouble.New(ON_NODES,LINEAR_TIME);
3841 f1.setEndTime(4.5,2,3);
3844 f1.checkCoherency();
3845 self.assertEqual(1,f1.getNumberOfComponents());
3846 self.assertEqual(9,f1.getNumberOfTuples());
3848 self.assertAlmostEqual(0.08,f1.getIJ(i,0),16);
3850 self.assertEqual(1,f1.getEndArray().getNumberOfComponents());
3851 self.assertEqual(9,f1.getEndArray().getNumberOfTuples());
3853 self.assertAlmostEqual(0.08,f1.getEndArray().getIJ(i,0),16);
3857 def testAreaBary3D2(self):
3858 coordsForHexa8=[-75.45749305371, 180.95495078401, 39.515472018008,
3859 -9.755591679144, 23.394927935279, 5.108794294848,
3860 14.337630157832, 61.705351002702, 160.42422501908,
3861 -27.273893776752, 167.567731083961, 192.830034145464,
3862 99.857193154796,264.499264735586,-8.287335493412,
3863 144.939882761126,156.38626563134,-31.896173894226,
3864 161.34096835726,182.4654895809,73.832387065572,
3865 132.680430393685,255.37973247196,96.15235602819];
3866 volHexa8=3258520.29637466;
3867 baryHexa8=[43.925705821778, 155.31893955289, 65.874418109644]
3869 coordsForPenta6=[-68.199829618726,178.938498373416,62.608505919588,
3870 8.461744647847,76.653979804423,165.00018874933,
3871 -27.273893776752,167.567731083961,192.830034145464,
3872 106.586501038965,262.629609408327,13.124533008813,
3873 155.465082847275,197.414118382622,78.408350795821,
3874 132.680430393685,255.37973247196,96.15235602819];
3875 volPenta6=944849.868507338;
3876 baryPenta6=[39.631002313543,182.692711783428,106.98540473964]
3878 coordsForPyra5=[132.680430393685,255.37973247196,96.15235602819,
3879 -27.273893776752,167.567731083961,192.830034145464,
3880 8.461744647847,76.653979804423,165.00018874933,
3881 155.465082847275,197.414118382622,78.408350795821,
3882 -68.199829618726,178.938498373416,62.608505919588];
3883 volPyra5=756943.92980254;
3884 baryPyra5=[29.204294116618,172.540129749156,118.01035951483]
3885 mesh=MEDCouplingUMesh.New("Bary3D2",3);
3886 coo=DataArrayDouble.New();
3887 tmp=coordsForHexa8+coordsForPenta6+coordsForPyra5
3888 coo.setValues(tmp,19,3);
3889 mesh.setCoords(coo);
3891 tmpConn=[0,1,2,3,4,5,6,7]
3892 mesh.allocateCells(3);
3893 self.assertRaises(InterpKernelException,mesh.insertNextCell,NORM_HEXA8,9,tmpConn[0:8])
3894 mesh.insertNextCell(NORM_HEXA8,tmpConn[0:8])
3895 mesh.insertNextCell(NORM_PENTA6,6,[i+8 for i in tmpConn])
3896 mesh.insertNextCell(NORM_PYRA5,5,[i+14 for i in tmpConn])
3897 mesh.finishInsertingCells();
3898 mesh.checkCoherency();
3899 mesh.mergeNodes(1e-7)
3900 self.assertEqual(12,mesh.getNumberOfNodes());
3901 vols=mesh.getMeasureField(True);
3902 self.assertEqual(3,vols.getNumberOfTuples());
3903 self.assertEqual(1,vols.getNumberOfComponents());
3904 self.assertAlmostEqual(volHexa8,vols.getIJ(0,0),6);
3905 self.assertAlmostEqual(volPenta6,vols.getIJ(1,0),7);
3906 self.assertAlmostEqual(volPyra5,vols.getIJ(2,0),7);
3907 bary=mesh.getBarycenterAndOwner();
3908 self.assertEqual(3,bary.getNumberOfTuples());
3909 self.assertEqual(3,bary.getNumberOfComponents());
3910 self.assertAlmostEqual(baryHexa8[0],bary.getIJ(0,0),11);
3911 self.assertAlmostEqual(baryHexa8[1],bary.getIJ(0,1),11);
3912 self.assertAlmostEqual(baryHexa8[2],bary.getIJ(0,2),11);
3913 self.assertAlmostEqual(baryPenta6[0],bary.getIJ(1,0),11);
3914 self.assertAlmostEqual(baryPenta6[1],bary.getIJ(1,1),11);
3915 self.assertAlmostEqual(baryPenta6[2],bary.getIJ(1,2),11);
3916 self.assertAlmostEqual(baryPyra5[0],bary.getIJ(2,0),11);
3917 self.assertAlmostEqual(baryPyra5[1],bary.getIJ(2,1),11);
3918 self.assertAlmostEqual(baryPyra5[2],bary.getIJ(2,2),11);
3921 def testGetMeasureFieldCMesh1(self):
3922 m=MEDCouplingCMesh.New();
3923 da=DataArrayDouble.New();
3924 discX=[2.3,3.4,5.8,10.2]
3925 discY=[12.3,23.4,45.8]
3926 discZ=[-0.7,1.2,1.25,2.13,2.67]
3927 da.setValues(discX,4,1);
3928 m.setCoordsAt(0,da);
3930 self.assertEqual(4,m.getNumberOfNodes());
3931 self.assertEqual(3,m.getNumberOfCells());
3932 self.assertEqual(1,m.getSpaceDimension());
3933 f=m.getMeasureField(True);
3934 self.assertEqual(3,f.getNumberOfTuples());
3935 self.assertEqual(1,f.getNumberOfComponents());
3936 expected1=[1.1,2.4,4.4]
3938 self.assertAlmostEqual(expected1[i],f.getIJ(i,0),12);
3940 coords=m.getCoordinatesAndOwner();
3941 self.assertEqual(4,coords.getNumberOfTuples());
3942 self.assertEqual(1,coords.getNumberOfComponents());
3944 self.assertAlmostEqual(discX[i],coords.getIJ(i,0),12);
3946 coords=m.getBarycenterAndOwner();
3947 self.assertEqual(3,coords.getNumberOfTuples());
3948 self.assertEqual(1,coords.getNumberOfComponents());
3949 expected1_3=[2.85,4.6,8.]
3951 self.assertAlmostEqual(expected1_3[i],coords.getIJ(i,0),12);
3954 da=DataArrayDouble.New();
3955 da.setValues(discY,3,1);
3956 m.setCoordsAt(1,da);
3958 self.assertEqual(12,m.getNumberOfNodes());
3959 self.assertEqual(6,m.getNumberOfCells());
3960 self.assertEqual(2,m.getSpaceDimension());
3961 f=m.getMeasureField(True);
3962 self.assertEqual(6,f.getNumberOfTuples());
3963 self.assertEqual(1,f.getNumberOfComponents());
3964 expected2=[12.21,26.64,48.84,24.64,53.76,98.56]
3966 self.assertAlmostEqual(expected2[i],f.getIJ(i,0),12);
3968 coords=m.getCoordinatesAndOwner();
3969 self.assertEqual(12,coords.getNumberOfTuples());
3970 self.assertEqual(2,coords.getNumberOfComponents());
3971 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]
3972 for i in xrange(24):
3973 self.assertAlmostEqual(expected2_2[i],coords.getIJ(0,i),12);
3975 coords=m.getBarycenterAndOwner();
3976 self.assertEqual(6,coords.getNumberOfTuples());
3977 self.assertEqual(2,coords.getNumberOfComponents());
3978 expected2_3=[2.85,17.85,4.6,17.85,8.,17.85, 2.85,34.6,4.6,34.6,8.,34.6]
3979 for i in xrange(12):
3980 self.assertAlmostEqual(expected2_3[i],coords.getIJ(0,i),12);
3983 da=DataArrayDouble.New();
3984 da.setValues(discZ,5,1);
3985 m.setCoordsAt(2,da);
3987 self.assertEqual(60,m.getNumberOfNodes());
3988 self.assertEqual(24,m.getNumberOfCells());
3989 self.assertEqual(3,m.getSpaceDimension());
3990 f=m.getMeasureField(True);
3991 self.assertEqual(24,f.getNumberOfTuples());
3992 self.assertEqual(1,f.getNumberOfComponents());
3993 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]
3994 for i in xrange(24):
3995 self.assertAlmostEqual(expected3[i],f.getIJ(i,0),12);
3997 coords=m.getCoordinatesAndOwner();
3998 self.assertEqual(60,coords.getNumberOfTuples());
3999 self.assertEqual(3,coords.getNumberOfComponents());
4001 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,
4002 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,
4003 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,
4004 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,
4005 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];
4006 for i in xrange(180):
4007 self.assertAlmostEqual(expected3_2[i],coords.getIJ(0,i),12);
4009 coords=m.getBarycenterAndOwner();
4010 self.assertEqual(24,coords.getNumberOfTuples());
4011 self.assertEqual(3,coords.getNumberOfComponents());
4013 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,
4014 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,
4015 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,
4016 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];
4017 for i in xrange(72):
4018 self.assertAlmostEqual(expected3_3[i],coords.getIJ(0,i),12);
4022 def testFieldDoubleZipCoords1(self):
4023 m=MEDCouplingDataForTest.build2DTargetMeshMergeNode_1();
4024 f=m.fillFromAnalytic(ON_NODES,2,"x*2.");
4025 f.getArray().setInfoOnComponent(0,"titi");
4026 f.getArray().setInfoOnComponent(1,"tutu");
4028 self.assertEqual(18,f.getNumberOfTuples());
4029 self.assertEqual(2,f.getNumberOfComponents());
4030 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]
4031 for i in xrange(36):
4032 self.assertAlmostEqual(expected1[i],f.getIJ(0,i),12);
4034 self.assertTrue(f.zipCoords());
4036 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]
4037 for i in xrange(30):
4038 self.assertAlmostEqual(expected2[i],f.getIJ(0,i),12);
4040 self.assertTrue(not f.zipCoords());
4042 for i in xrange(30):
4043 self.assertAlmostEqual(expected2[i],f.getIJ(0,i),12);
4045 self.assertTrue(f.getArray().getInfoOnComponent(0)=="titi");
4046 self.assertTrue(f.getArray().getInfoOnComponent(1)=="tutu");
4049 def testFieldDoubleZipConnectivity1(self):
4050 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
4051 m2=MEDCouplingDataForTest.build2DTargetMesh_1();
4053 m3_1=m2.buildPartOfMySelf(cells1,True);
4055 m4=MEDCouplingDataForTest.build2DSourceMesh_1();
4056 m5=MEDCouplingUMesh.MergeUMeshes(m1,m3);
4057 m6=MEDCouplingUMesh.MergeUMeshes(m5,m4);
4059 self.assertEqual(10,m6.getNumberOfCells());
4060 self.assertEqual(22,m6.getNumberOfNodes());
4061 arr,areNodesMerged,newNbOfNodes=m6.mergeNodes(1e-13);
4062 self.assertEqual(9,m6.getNumberOfNodes());
4063 f=m6.fillFromAnalytic(ON_CELLS,2,"x");
4064 f2=m6.fillFromAnalytic(ON_NODES,2,"x");
4065 self.assertEqual(10,f.getNumberOfTuples());
4066 self.assertEqual(2,f.getNumberOfComponents());
4067 expected1=[-0.05, -0.05, 0.3666666666666667, 0.3666666666666667, 0.53333333333333321, 0.53333333333333321,
4068 -0.05, -0.05, 0.45, 0.45, 0.53333333333333321, 0.53333333333333321, -0.05, -0.05, 0.45, 0.45,
4069 0.36666666666666659, 0.36666666666666659, 0.033333333333333326, 0.033333333333333326];
4070 for i in xrange(20):
4071 self.assertAlmostEqual(expected1[i],f.getIJ(0,i),12);
4073 f.getArray().setInfoOnComponent(0,"titi");
4074 f.getArray().setInfoOnComponent(1,"tutu");
4076 self.assertTrue(f.zipConnectivity(0));
4077 expected2=[-0.05, -0.05, 0.3666666666666667, 0.3666666666666667, 0.53333333333333321, 0.53333333333333321,
4078 -0.05, -0.05, 0.45, 0.45, 0.36666666666666659, 0.36666666666666659, 0.033333333333333326, 0.033333333333333326];
4079 self.assertEqual(7,f.getNumberOfTuples());
4080 self.assertEqual(2,f.getNumberOfComponents());
4081 for i in xrange(14):
4082 self.assertAlmostEqual(expected2[i],f.getIJ(0,i),12);
4084 self.assertTrue(f.getArray().getInfoOnComponent(0)=="titi");
4085 self.assertTrue(f.getArray().getInfoOnComponent(1)=="tutu");
4086 self.assertTrue(not f.zipConnectivity(0));
4088 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,
4089 -0.3, -0.3, 0.2, 0.2, 0.7, 0.7];
4090 self.assertEqual(9,f2.getNumberOfTuples());
4091 self.assertEqual(2,f2.getNumberOfComponents());
4092 for i in xrange(18):
4093 self.assertAlmostEqual(expected3[i],f2.getIJ(0,i),12);
4095 self.assertTrue(f2.zipConnectivity(0));
4096 self.assertEqual(9,f2.getNumberOfTuples());
4097 self.assertEqual(2,f2.getNumberOfComponents());
4098 for i in xrange(18):
4099 self.assertAlmostEqual(expected3[i],f2.getIJ(0,i),12);
4103 def testDaDoubleRenumber1(self):
4104 a=DataArrayDouble.New();
4105 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]
4106 a.setValues(arr1,7,2);
4107 a.setInfoOnComponent(0,"toto");
4108 a.setInfoOnComponent(1,"tata");
4110 arr2=[3,1,0,6,5,4,2]
4112 self.assertEqual(7,b.getNumberOfTuples());
4113 self.assertEqual(2,b.getNumberOfComponents());
4114 self.assertTrue(b.getInfoOnComponent(0)=="toto");
4115 self.assertTrue(b.getInfoOnComponent(1)=="tata");
4116 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]
4117 for i in xrange(14):
4118 self.assertAlmostEqual(expected1[i],b.getIJ(0,i),14);
4121 c=DataArrayInt.New();
4122 arr3=[1,11,2,12,3,13,4,14,5,15,6,16,7,17]
4123 c.setValues(arr3,7,2);
4124 c.setInfoOnComponent(0,"toto");
4125 c.setInfoOnComponent(1,"tata");
4127 self.assertEqual(7,d.getNumberOfTuples());
4128 self.assertEqual(2,d.getNumberOfComponents());
4129 self.assertTrue(d.getInfoOnComponent(0)=="toto");
4130 self.assertTrue(d.getInfoOnComponent(1)=="tata");
4131 expected2=[3, 13, 2, 12, 7, 17, 1, 11, 6, 16, 5, 15, 4, 14]
4132 for i in xrange(14):
4133 self.assertEqual(expected2[i],d.getIJ(0,i));
4137 def testDaDoubleRenumberAndReduce1(self):
4138 a=DataArrayDouble.New();
4139 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]
4140 a.setValues(arr1,7,2);
4141 a.setInfoOnComponent(0,"toto");
4142 a.setInfoOnComponent(1,"tata");
4144 arr2=[2,-1,1,-1,0,4,3]
4145 b=a.renumberAndReduce(arr2,5);
4146 self.assertEqual(5,b.getNumberOfTuples());
4147 self.assertEqual(2,b.getNumberOfComponents());
4148 self.assertTrue(b.getInfoOnComponent(0)=="toto");
4149 self.assertTrue(b.getInfoOnComponent(1)=="tata");
4150 expected1=[5.1,15.1,3.1,13.1,1.1,11.1,7.1,17.1,6.1,16.1]
4151 for i in xrange(10):
4152 self.assertAlmostEqual(expected1[i],b.getIJ(0,i),14);
4155 c=DataArrayInt.New();
4156 arr3=[1,11,2,12,3,13,4,14,5,15,6,16,7,17]
4157 c.setValues(arr3,7,2);
4158 c.setInfoOnComponent(0,"toto");
4159 c.setInfoOnComponent(1,"tata");
4160 d=c.renumberAndReduce(arr2,5);
4161 self.assertEqual(5,d.getNumberOfTuples());
4162 self.assertEqual(2,d.getNumberOfComponents());
4163 self.assertTrue(d.getInfoOnComponent(0)=="toto");
4164 self.assertTrue(d.getInfoOnComponent(1)=="tata");
4165 expected2=[5,15,3,13,1,11,7,17,6,16]
4166 for i in xrange(10):
4167 self.assertEqual(expected2[i],d.getIJ(0,i));
4171 def testDaDoubleRenumberInPlace1(self):
4172 a=DataArrayDouble.New();
4173 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]
4174 a.setValues(arr1,7,2);
4176 arr2=[3,1,0,6,5,4,2]
4177 a.renumberInPlace(arr2);
4178 self.assertEqual(7,a.getNumberOfTuples());
4179 self.assertEqual(2,a.getNumberOfComponents());
4180 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]
4181 for i in xrange(14):
4182 self.assertAlmostEqual(expected1[i],a.getIJ(0,i),14);
4185 c=DataArrayInt.New();
4186 arr3=[1,11,2,12,3,13,4,14,5,15,6,16,7,17]
4187 c.setValues(arr3,7,2);
4188 c.renumberInPlace(arr2);
4189 self.assertEqual(7,c.getNumberOfTuples());
4190 self.assertEqual(2,c.getNumberOfComponents());
4191 expected2=[3, 13, 2, 12, 7, 17, 1, 11, 6, 16, 5, 15, 4, 14]
4192 for i in xrange(14):
4193 self.assertEqual(expected2[i],c.getIJ(0,i));
4197 def testDaDoubleRenumberR1(self):
4198 a=DataArrayDouble.New();
4199 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]
4200 a.setValues(arr1,7,2);
4201 a.setInfoOnComponent(0,"toto");
4202 a.setInfoOnComponent(1,"tata");
4204 arr2=[3,1,0,6,5,4,2]
4205 b=a.renumberR(arr2);
4206 self.assertEqual(7,b.getNumberOfTuples());
4207 self.assertEqual(2,b.getNumberOfComponents());
4208 self.assertTrue(b.getInfoOnComponent(0)=="toto");
4209 self.assertTrue(b.getInfoOnComponent(1)=="tata");
4210 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]
4211 for i in xrange(14):
4212 self.assertAlmostEqual(expected1[i],b.getIJ(0,i),14);
4215 c=DataArrayInt.New();
4216 arr3=[1,11,2,12,3,13,4,14,5,15,6,16,7,17]
4217 c.setValues(arr3,7,2);
4218 c.setInfoOnComponent(0,"toto");
4219 c.setInfoOnComponent(1,"tata");
4220 d=c.renumberR(arr2);
4221 self.assertEqual(7,d.getNumberOfTuples());
4222 self.assertEqual(2,d.getNumberOfComponents());
4223 self.assertTrue(d.getInfoOnComponent(0)=="toto");
4224 self.assertTrue(d.getInfoOnComponent(1)=="tata");
4225 expected2=[4, 14, 2, 12, 1, 11, 7, 17, 6, 16, 5, 15, 3, 13]
4226 for i in xrange(14):
4227 self.assertEqual(expected2[i],d.getIJ(0,i));
4231 def testDaDoubleRenumberInPlaceR1(self):
4232 a=DataArrayDouble.New();
4233 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]
4234 a.setValues(arr1,7,2);
4236 arr2=[3,1,0,6,5,4,2]
4237 a.renumberInPlaceR(arr2);
4238 self.assertEqual(7,a.getNumberOfTuples());
4239 self.assertEqual(2,a.getNumberOfComponents());
4240 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]
4241 for i in xrange(14):
4242 self.assertAlmostEqual(expected1[i],a.getIJ(0,i),14);
4245 c=DataArrayInt.New();
4246 arr3=[1,11,2,12,3,13,4,14,5,15,6,16,7,17]
4247 c.setValues(arr3,7,2);
4248 c.renumberInPlaceR(arr2);
4249 self.assertEqual(7,c.getNumberOfTuples());
4250 self.assertEqual(2,c.getNumberOfComponents());
4251 expected2=[4, 14, 2, 12, 1, 11, 7, 17, 6, 16, 5, 15, 3, 13]
4252 for i in xrange(14):
4253 self.assertEqual(expected2[i],c.getIJ(0,i));
4257 def testDaDoubleSelectByTupleId1(self):
4258 a=DataArrayDouble.New();
4259 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]
4260 a.setValues(arr1,7,2);
4261 a.setInfoOnComponent(0,"toto");
4262 a.setInfoOnComponent(1,"tata");
4265 b=a.selectByTupleId(arr2);
4266 self.assertEqual(5,b.getNumberOfTuples());
4267 self.assertEqual(2,b.getNumberOfComponents());
4268 self.assertTrue(b.getInfoOnComponent(0)=="toto");
4269 self.assertTrue(b.getInfoOnComponent(1)=="tata");
4270 expected1=[5.1,15.1,3.1,13.1,1.1,11.1,7.1,17.1,6.1,16.1]
4271 for i in xrange(10):
4272 self.assertAlmostEqual(expected1[i],b.getIJ(0,i),14);
4275 c=DataArrayInt.New();
4276 arr3=[1,11,2,12,3,13,4,14,5,15,6,16,7,17]
4277 c.setValues(arr3,7,2);
4278 c.setInfoOnComponent(0,"toto");
4279 c.setInfoOnComponent(1,"tata");
4280 d=c.selectByTupleId(arr2);
4281 self.assertEqual(5,d.getNumberOfTuples());
4282 self.assertEqual(2,d.getNumberOfComponents());
4283 self.assertTrue(d.getInfoOnComponent(0)=="toto");
4284 self.assertTrue(d.getInfoOnComponent(1)=="tata");
4285 expected2=[5,15,3,13,1,11,7,17,6,16]
4286 for i in xrange(10):
4287 self.assertEqual(expected2[i],d.getIJ(0,i));
4291 def testDaDoubleGetMinMaxValues1(self):
4292 a=DataArrayDouble.New();
4293 arr1=[2.34,4.56,-6.77,4.55,4.56,2.24,2.34,1.02,4.56]
4294 a.setValues(arr1,9,1);
4295 m,where=a.getMaxValue();
4296 self.assertEqual(1,where);
4297 self.assertAlmostEqual(4.56,m,12);
4298 m,ws=a.getMaxValue2();
4299 self.assertAlmostEqual(4.56,m,12);
4300 self.assertEqual(3,ws.getNumberOfTuples());
4301 self.assertEqual(1,ws.getNumberOfComponents());
4304 self.assertEqual(expected1[i],ws.getIJ(i,0));
4306 a=DataArrayDouble.New();
4307 arr2=[-2.34,-4.56,6.77,-4.55,-4.56,-2.24,-2.34,-1.02,-4.56]
4308 a.setValues(arr2,9,1);
4309 m,where=a.getMinValue();
4310 self.assertEqual(1,where);
4311 self.assertAlmostEqual(-4.56,m,12);
4312 m,ws=a.getMinValue2();
4313 self.assertAlmostEqual(-4.56,m,12);
4314 self.assertEqual(3,ws.getNumberOfTuples());
4315 self.assertEqual(1,ws.getNumberOfComponents());
4317 self.assertEqual(expected1[i],ws.getIJ(i,0));
4321 def testFieldDoubleGetMinMaxValues2(self):
4322 m2,m1=MEDCouplingDataForTest.build3DExtrudedUMesh_1();
4323 self.assertEqual(18,m2.getNumberOfCells());
4324 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]
4325 f=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
4326 a=DataArrayDouble.New();
4327 a.setValues(arr1,18,1);
4333 self.assertAlmostEqual(8.71,m,12);
4334 m,ws=f.getMaxValue2();
4335 self.assertAlmostEqual(8.71,m,12);
4336 self.assertEqual(4,ws.getNumberOfTuples());
4337 self.assertEqual(1,ws.getNumberOfComponents());
4338 expected1=[0,3,7,17]
4340 self.assertEqual(expected1[i],ws.getIJ(i,0));
4343 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]
4344 a.setValues(arr2,18,1);
4347 self.assertAlmostEqual(-8.71,m,12);
4348 m,ws=f.getMinValue2();
4349 self.assertAlmostEqual(-8.71,m,12);
4350 self.assertEqual(4,ws.getNumberOfTuples());
4351 self.assertEqual(1,ws.getNumberOfComponents());
4353 self.assertEqual(expected1[i],ws.getIJ(i,0));
4357 def testBuildUnstructuredCMesh1(self):
4358 m=MEDCouplingCMesh.New();
4359 da=DataArrayDouble.New();
4360 discX=[2.3,3.4,5.8,10.2]
4361 discY=[12.3,23.4,45.8]
4362 discZ=[-0.7,1.2,1.25,2.13,2.67]
4363 da.setValues(discX,4,1);
4364 m.setCoordsAt(0,da);
4366 self.assertEqual(0,m.getCellContainingPoint([2.4],1e-12));
4367 self.assertEqual(1,m.getCellContainingPoint([3.7],1e-12));
4368 self.assertEqual(2,m.getCellContainingPoint([5.9],1e-12));
4369 self.assertEqual(-1,m.getCellContainingPoint([10.3],1e-12));
4370 self.assertEqual(-1,m.getCellContainingPoint([1.3],1e-12));
4372 m2=m.buildUnstructured();
4373 m2.checkCoherency();
4374 f1=m.getMeasureField(False);
4375 f2=m2.getMeasureField(False);
4376 self.assertTrue(isinstance(f1.getMesh(),MEDCouplingCMesh))
4377 self.assertEqual(f1.getNumberOfTuples(),3);
4378 self.assertEqual(f2.getNumberOfTuples(),3);
4379 self.assertEqual(1,m2.getMeshDimension());
4380 self.assertEqual(1,m2.getSpaceDimension());
4382 self.assertAlmostEqual(f1.getIJ(i,0),f2.getIJ(i,0),10);
4384 da=DataArrayDouble.New();
4385 da.setValues(discY,3,1);
4386 m.setCoordsAt(1,da);
4388 m2=m.buildUnstructured();
4389 m2.checkCoherency();
4390 f1=m.getMeasureField(False);
4391 f2=m2.getMeasureField(False);
4392 self.assertEqual(f1.getNumberOfTuples(),6);
4393 self.assertEqual(f2.getNumberOfTuples(),6);
4394 self.assertEqual(2,m2.getMeshDimension());
4395 self.assertEqual(2,m2.getSpaceDimension());
4397 self.assertAlmostEqual(f1.getIJ(i,0),f2.getIJ(i,0),10);
4400 da=DataArrayDouble.New();
4401 da.setValues(discZ,5,1);
4402 m.setCoordsAt(2,da);
4403 m2=m.buildUnstructured();
4404 m2.checkCoherency();
4405 f1=m.getMeasureField(False);
4406 f2=m2.getMeasureField(False);
4407 self.assertEqual(f1.getNumberOfTuples(),24);
4408 self.assertEqual(f2.getNumberOfTuples(),24);
4409 self.assertEqual(3,m2.getMeshDimension());
4410 self.assertEqual(3,m2.getSpaceDimension());
4411 for i in xrange(24):
4412 self.assertAlmostEqual(f1.getIJ(i,0),f2.getIJ(i,0),10);
4416 self.assertEqual(16,m.getCellContainingPoint(pos1,1e-12));
4418 elems=m2.getCellsInBoundingBox([3.5,6.,12.2,25.,0.,1.5],1e-7)
4419 self.assertEqual([1, 2, 4, 5, 7, 8, 10, 11, 13, 14, 16, 17],elems.getValues())
4423 m3=m.buildUnstructured();
4425 self.assertTrue(m3.isEqual(m2,1e-12));
4428 def testDataArrayIntInvertO2NNO21(self):
4430 da=DataArrayInt.New();
4431 da.setValues(arr1,6,1);
4432 da2=da.invertArrayO2N2N2O(6);
4433 self.assertEqual(6,da2.getNumberOfTuples());
4434 self.assertEqual(1,da2.getNumberOfComponents());
4435 expected1=[1,3,0,5,2,4]
4437 self.assertEqual(expected1[i],da2.getIJ(i,0));
4439 da3=da2.invertArrayN2O2O2N(6);
4441 self.assertEqual(arr1[i],da3.getIJ(i,0));
4444 arr2=[3,-1,5,4,-1,0,-1,1,2,-1]
4445 da=DataArrayInt.New();
4446 da.setValues(arr2,10,1);
4447 da2=da.invertArrayO2N2N2O(6);
4448 self.assertEqual(6,da2.getNumberOfTuples());
4449 self.assertEqual(1,da2.getNumberOfComponents());
4450 expected2=[5,7,8,0,3,2]
4452 self.assertEqual(expected2[i],da2.getIJ(i,0));
4454 da3=da2.invertArrayN2O2O2N(10);
4455 for i in xrange(10):
4456 self.assertEqual(arr2[i],da3.getIJ(i,0));
4460 def testKeepSetSelectedComponent1(self):
4461 arr1=[1.,2.,3.,4., 11.,12.,13.,14., 21.,22.,23.,24., 31.,32.,33.,34., 41.,42.,43.,44.]
4462 a1=DataArrayDouble.New();
4463 a1.setValues(arr1,5,4);
4464 expp=[21.,22.,23.,24.]
4465 self.assertEqual(4,len(a1.getTuple(2)));
4467 self.assertAlmostEqual(expp[i],a1.getTuple(2)[i],12)
4469 a1.setInfoOnComponent(0,"aaaa");
4470 a1.setInfoOnComponent(1,"bbbb");
4471 a1.setInfoOnComponent(2,"cccc");
4472 a1.setInfoOnComponent(3,"dddd");
4474 a2=a1.keepSelectedComponents(arr2V);
4475 self.assertEqual(6,a2.getNumberOfComponents());
4476 self.assertEqual(5,a2.getNumberOfTuples());
4477 self.assertTrue(a2.getInfoOnComponent(0)=="bbbb");
4478 self.assertTrue(a2.getInfoOnComponent(1)=="cccc");
4479 self.assertTrue(a2.getInfoOnComponent(2)=="bbbb");
4480 self.assertTrue(a2.getInfoOnComponent(3)=="cccc");
4481 self.assertTrue(a2.getInfoOnComponent(4)=="aaaa");
4482 self.assertTrue(a2.getInfoOnComponent(5)=="aaaa");
4483 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.]
4484 for i in xrange(30):
4485 self.assertAlmostEqual(expected1[i],a2.getIJ(0,i),14);
4487 a3=a1.convertToIntArr();
4488 self.assertEqual([21,22,23,24],a3.getTuple(2))
4489 a4=a3.keepSelectedComponents(arr2V);
4490 self.assertEqual(6,a4.getNumberOfComponents());
4491 self.assertEqual(5,a4.getNumberOfTuples());
4492 self.assertTrue(a4.getInfoOnComponent(0)=="bbbb");
4493 self.assertTrue(a4.getInfoOnComponent(1)=="cccc");
4494 self.assertTrue(a4.getInfoOnComponent(2)=="bbbb");
4495 self.assertTrue(a4.getInfoOnComponent(3)=="cccc");
4496 self.assertTrue(a4.getInfoOnComponent(4)=="aaaa");
4497 self.assertTrue(a4.getInfoOnComponent(5)=="aaaa");
4498 for i in xrange(30):
4499 self.assertEqual(int(expected1[i]),a4.getIJ(0,i));
4501 # setSelectedComponents
4503 a5=a1.keepSelectedComponents(arr3V);
4504 a5.setInfoOnComponent(0,"eeee");
4505 a5.setInfoOnComponent(1,"ffff");
4507 a2.setSelectedComponents(a5,arr4V);
4508 self.assertEqual(6,a2.getNumberOfComponents());
4509 self.assertEqual(5,a2.getNumberOfTuples());
4510 self.assertTrue(a2.getInfoOnComponent(0)=="bbbb");
4511 self.assertTrue(a2.getInfoOnComponent(1)=="eeee");
4512 self.assertTrue(a2.getInfoOnComponent(2)=="ffff");
4513 self.assertTrue(a2.getInfoOnComponent(3)=="cccc");
4514 self.assertTrue(a2.getInfoOnComponent(4)=="aaaa");
4515 self.assertTrue(a2.getInfoOnComponent(5)=="aaaa");
4516 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.]
4517 for i in xrange(30):
4518 self.assertAlmostEqual(expected2[i],a2.getIJ(0,i),14);
4520 a6=a5.convertToIntArr();
4521 a6.setInfoOnComponent(0,"eeee");
4522 a6.setInfoOnComponent(1,"ffff");
4523 a4.setSelectedComponents(a6,arr4V);
4524 self.assertEqual(6,a4.getNumberOfComponents());
4525 self.assertEqual(5,a4.getNumberOfTuples());
4526 self.assertTrue(a4.getInfoOnComponent(0)=="bbbb");
4527 self.assertTrue(a4.getInfoOnComponent(1)=="eeee");
4528 self.assertTrue(a4.getInfoOnComponent(2)=="ffff");
4529 self.assertTrue(a4.getInfoOnComponent(3)=="cccc");
4530 self.assertTrue(a4.getInfoOnComponent(4)=="aaaa");
4531 self.assertTrue(a4.getInfoOnComponent(5)=="aaaa");
4532 for i in xrange(30):
4533 self.assertEqual(int(expected2[i]),a4.getIJ(0,i));
4539 self.assertRaises(InterpKernelException,a2.keepSelectedComponents,arr5V);
4540 self.assertRaises(InterpKernelException,a2.keepSelectedComponents,arr6V);
4541 self.assertRaises(InterpKernelException,a2.setSelectedComponents,a1,arr7V);
4543 self.assertRaises(InterpKernelException,a2.setSelectedComponents,a1,arr7V);
4547 def testKeepSetSelectedComponent2(self):
4548 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
4549 arr1=[1.,2.,3.,4., 11.,12.,13.,14., 21.,22.,23.,24., 31.,32.,33.,34., 41.,42.,43.,44.]
4550 a1=DataArrayDouble.New();
4551 a1.setValues(arr1,5,4);
4552 a1.setInfoOnComponent(0,"aaaa");
4553 a1.setInfoOnComponent(1,"bbbb");
4554 a1.setInfoOnComponent(2,"cccc");
4555 a1.setInfoOnComponent(3,"dddd");
4556 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
4557 f1.setTime(2.3,4,5);
4561 f1.checkCoherency();
4564 f2=f1.keepSelectedComponents(arr2V);
4565 self.assertTrue(f2.getTimeDiscretization()==ONE_TIME);
4566 t,dt,it=f2.getTime()
4567 self.assertAlmostEqual(2.3,t,13);
4568 self.assertEqual(4,dt);
4569 self.assertEqual(5,it);
4570 f2.checkCoherency();
4571 self.assertEqual(6,f2.getNumberOfComponents());
4572 self.assertEqual(5,f2.getNumberOfTuples());
4573 self.assertTrue(f2.getArray().getInfoOnComponent(0)=="bbbb");
4574 self.assertTrue(f2.getArray().getInfoOnComponent(1)=="cccc");
4575 self.assertTrue(f2.getArray().getInfoOnComponent(2)=="bbbb");
4576 self.assertTrue(f2.getArray().getInfoOnComponent(3)=="cccc");
4577 self.assertTrue(f2.getArray().getInfoOnComponent(4)=="aaaa");
4578 self.assertTrue(f2.getArray().getInfoOnComponent(5)=="aaaa");
4579 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.]
4580 for i in xrange(30):
4581 self.assertAlmostEqual(expected1[i],f2.getIJ(0,i),14);
4583 #setSelectedComponents
4585 f5=f1.keepSelectedComponents(arr3V);
4586 f5.setTime(6.7,8,9);
4587 f5.getArray().setInfoOnComponent(0,"eeee");
4588 f5.getArray().setInfoOnComponent(1,"ffff");
4589 f5.checkCoherency();
4591 f2.setSelectedComponents(f5,arr4V);
4592 self.assertEqual(6,f2.getNumberOfComponents());
4593 self.assertEqual(5,f2.getNumberOfTuples());
4594 f2.checkCoherency();
4595 t,dt,it=f2.getTime()
4596 self.assertAlmostEqual(2.3,t,13);
4597 self.assertEqual(4,dt);
4598 self.assertEqual(5,it);
4599 self.assertTrue(f2.getArray().getInfoOnComponent(0)=="bbbb");
4600 self.assertTrue(f2.getArray().getInfoOnComponent(1)=="eeee");
4601 self.assertTrue(f2.getArray().getInfoOnComponent(2)=="ffff");
4602 self.assertTrue(f2.getArray().getInfoOnComponent(3)=="cccc");
4603 self.assertTrue(f2.getArray().getInfoOnComponent(4)=="aaaa");
4604 self.assertTrue(f2.getArray().getInfoOnComponent(5)=="aaaa");
4605 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.]
4606 for i in xrange(30):
4607 self.assertAlmostEqual(expected2[i],f2.getIJ(0,i),14);
4612 def testElementaryDAThrowAndSpecialCases(self):
4613 da=DataArrayInt.New();
4614 self.assertRaises(InterpKernelException, da.checkAllocated);
4615 self.assertRaises(InterpKernelException, da.fillWithValue, 1);
4616 self.assertRaises(InterpKernelException, da.iota, 1);
4618 da.fillWithValue(11); #11,11,11,11...
4619 da.iota(10); #10,11,12,13...
4621 db=DataArrayInt.New();
4624 dbl2=DataArrayDouble.New();
4626 self.assertRaises(InterpKernelException, dbl2.isUniform, 10., 1e-15);
4627 self.assertRaises(InterpKernelException, dbl2.sort);
4628 self.assertRaises(InterpKernelException, dbl2.iota, 10.);
4630 dbl=DataArrayDouble.New();
4631 #DataArrayDouble not allocated yet
4632 self.assertRaises(InterpKernelException, dbl.iota, 10.);
4633 self.assertRaises(InterpKernelException, dbl.isUniform, 10., 1e-15);
4634 self.assertRaises(InterpKernelException, dbl.sort);
4635 self.assertRaises(InterpKernelException, dbl.fromNoInterlace);
4636 self.assertRaises(InterpKernelException, dbl.toNoInterlace);
4640 self.assertTrue(not dbl.isUniform(10.,1e-15));
4642 self.assertTrue(dbl.isMonotonic(True, .99));
4643 self.assertTrue(dbl.isMonotonic(True, -.99));
4644 self.assertTrue(not dbl.isMonotonic(True, 1.1));
4645 self.assertTrue(not dbl.isMonotonic(True, -1.1));
4647 self.assertTrue(dbl.isMonotonic(False, .99));
4648 self.assertTrue(not dbl.isMonotonic(False, 1.1));
4649 self.assertTrue(not dbl.isMonotonic(False, -1.1));
4651 dc=DataArrayInt.New();
4654 dd=DataArrayDouble.New();
4655 self.assertRaises(InterpKernelException, dd.checkAllocated);
4656 self.assertRaises(InterpKernelException, dd.fillWithValue, 1.);
4657 self.assertRaises(InterpKernelException, dd.iota, 1.);
4658 self.assertTrue(not ((dd.repr().find("No data"))==-1));
4660 dd.alloc(0,1); #Allocated but nbOfElements==0!
4661 self.assertTrue(not ((dd.repr().find("Number of tuples : 0"))==-1));
4662 self.assertTrue(not ((dd.repr().find("Empty Data"))==-1));
4663 dd.fillWithValue(11); #?!...ok
4664 dd.iota(10); #?!...ok
4665 self.assertTrue(dd.isMonotonic(True, 1.)); #nothing is monotonic
4666 self.assertTrue(dd.isMonotonic(False, 1.));
4668 self.assertRaises(InterpKernelException, db.copyStringInfoFrom, da);
4669 self.assertRaises(InterpKernelException, db.copyStringInfoFrom, da);
4671 self.assertRaises(InterpKernelException, da.copyPartOfStringInfoFrom, db, cIds);
4674 self.assertRaises(InterpKernelException, da.copyPartOfStringInfoFrom, db, cIds);
4676 info=["infoOfOneComponent"]*2;
4677 self.assertRaises(InterpKernelException, da.setInfoOnComponents, info);
4678 self.assertRaises(InterpKernelException, da.setInfoOnComponent, 1, info[0]);
4679 db.setInfoOnComponents(info);
4681 self.assertRaises(InterpKernelException, da.getInfoOnComponent, -1);
4682 self.assertRaises(InterpKernelException, da.getInfoOnComponent, 2);
4683 self.assertTrue(db.getInfoOnComponent(1)==db.getInfoOnComponent(0));
4684 self.assertRaises(InterpKernelException, db.getVarOnComponent, -1);
4685 self.assertRaises(InterpKernelException, db.getVarOnComponent, 2);
4686 self.assertRaises(InterpKernelException, db.getUnitOnComponent, -1);
4687 self.assertRaises(InterpKernelException, db.getUnitOnComponent, 2);
4689 self.assertTrue(da.GetVarNameFromInfo("varname unit ")=="varname unit ");
4690 self.assertTrue(da.GetVarNameFromInfo("varname]unit[")=="varname]unit[");
4691 self.assertTrue(da.GetVarNameFromInfo("[unit]")=="");
4692 self.assertTrue(da.GetVarNameFromInfo("varname [unit]")=="varname");
4694 self.assertTrue(da.GetUnitFromInfo("varname unit ")=="");
4695 self.assertTrue(da.GetUnitFromInfo("varname]unit[")=="");
4696 self.assertTrue(da.GetUnitFromInfo("[unit]")=="unit");
4697 self.assertTrue(da.GetUnitFromInfo("varname [unit]")=="unit");
4699 self.assertRaises(InterpKernelException, da.checkNbOfTuplesAndComp, db, "theMessageInThrow");
4700 self.assertRaises(InterpKernelException, da.checkNbOfTuplesAndComp, dc, "theMessageInThrow");
4701 self.assertRaises(InterpKernelException, db.checkNbOfTuplesAndComp, dc, "theMessageInThrow");
4703 self.assertRaises(InterpKernelException, da.checkNbOfTuplesAndComp, 7, 2, "theMessageInThrow");
4704 da.checkNbOfTuplesAndComp(7,1,"theMessageInThrow");
4706 self.assertRaises(InterpKernelException, db.checkNbOfElems, 7*2+1, "theMessageInThrow");
4707 db.checkNbOfElems(7*2,"theMessageInThrow");
4709 self.assertRaises(InterpKernelException, db.GetNumberOfItemGivenBES, 10, 9, 1, "theMessageInThrow");
4710 self.assertRaises(InterpKernelException, db.GetNumberOfItemGivenBES, 0, 1, -1, "theMessageInThrow");
4711 self.assertEqual(10,db.GetNumberOfItemGivenBES(0,10,1,"theMessageInThrow"));
4712 self.assertEqual(5,db.GetNumberOfItemGivenBES(0,10,2,"theMessageInThrow"));
4713 self.assertEqual(6,db.GetNumberOfItemGivenBES(0,11,2,"theMessageInThrow"));
4715 self.assertTrue(not ((da.repr().find("Number of components : 1"))==-1));
4716 self.assertTrue(not ((dd.repr().find("Number of components : 1"))==-1));
4717 self.assertTrue(not ((dbl.repr().find("Number of components : 1"))==-1));
4719 self.assertTrue(not ((da.reprZip().find("Number of components : 1"))==-1));
4720 self.assertTrue(not ((dd.reprZip().find("Number of components : 1"))==-1));
4721 self.assertTrue(not ((dbl.reprZip().find("Number of components : 1"))==-1));
4723 self.assertRaises(InterpKernelException, dbl.selectByTupleId2, 0, 1, -1);
4724 self.assertRaises(InterpKernelException, dbl.substr, -1, 1);
4725 self.assertRaises(InterpKernelException, dbl.substr, 8, 1);
4726 self.assertRaises(InterpKernelException, dbl.substr, 0, 8);
4727 self.assertRaises(InterpKernelException, dbl.meldWith, dd);
4729 self.assertRaises(InterpKernelException, dbl.setPartOfValuesAdv, dbl2, da); #dbl dbl2 not have the same number of components
4730 self.assertRaises(InterpKernelException, dbl.setPartOfValuesAdv, dd, da); #da tuple selector DataArrayInt instance not have exactly 2 components
4732 dbl3=DataArrayDouble.New();
4734 dbl3.fillWithValue(11.);
4735 #bad number of components
4736 self.assertRaises(InterpKernelException, dbl3.getMaxValue);
4737 self.assertRaises(InterpKernelException, dd.getMaxValue);
4738 self.assertRaises(InterpKernelException, dbl3.getMinValue);
4739 self.assertRaises(InterpKernelException, dd.getMinValue);
4740 self.assertRaises(InterpKernelException, dbl3.getAverageValue);
4741 self.assertRaises(InterpKernelException, dd.getAverageValue);
4742 self.assertRaises(InterpKernelException, dd.accumulate, 100);
4743 self.assertRaises(InterpKernelException, dbl.fromPolarToCart);
4744 self.assertRaises(InterpKernelException, dbl3.fromCylToCart);
4745 self.assertRaises(InterpKernelException, dbl3.fromSpherToCart);
4746 self.assertRaises(InterpKernelException, dbl3.doublyContractedProduct);
4747 self.assertRaises(InterpKernelException, dbl3.determinant);
4748 self.assertRaises(InterpKernelException, dbl3.eigenValues);
4749 self.assertRaises(InterpKernelException, dbl3.eigenVectors);
4750 self.assertRaises(InterpKernelException, dbl3.inverse);
4751 self.assertRaises(InterpKernelException, dbl3.trace);
4752 self.assertRaises(InterpKernelException, dbl3.deviator);
4754 dbl3.setIJ(5,1,12.);
4755 self.assertTrue(dbl3.getMaxValueInArray()==12.);
4756 self.assertTrue(dbl3.getMinValueInArray()==11.);
4758 db.fillWithValue(100); #bad Ids
4759 self.assertRaises(InterpKernelException, dbl3.setPartOfValuesAdv, dbl2, db);
4760 db.fillWithValue(-1); #bad Ids
4761 self.assertRaises(InterpKernelException, dbl3.setPartOfValuesAdv, dbl2, db);
4762 db.fillWithValue(6); #bad Ids for dbl3
4763 self.assertRaises(InterpKernelException, dbl3.setPartOfValuesAdv, dbl2, db);
4765 dbl3.checkNoNullValues();
4767 self.assertRaises(InterpKernelException, dbl3.checkNoNullValues);
4768 self.assertRaises(InterpKernelException, dbl3.applyInv, 1.); #div by zero
4769 self.assertRaises(InterpKernelException, dbl2.getIdsInRange, 1., 2.);
4771 self.assertRaises(InterpKernelException, DataArrayDouble_Aggregate, a);
4772 self.assertRaises(InterpKernelException, DataArrayDouble_Meld, a);
4774 a=[dbl2,dbl]; #Nb of components mismatch
4775 self.assertRaises(InterpKernelException, DataArrayDouble_Aggregate, a);
4777 self.assertRaises(InterpKernelException, DataArrayDouble_Dot, dbl2, dbl);
4779 self.assertRaises(InterpKernelException, DataArrayDouble_CrossProduct, dbl2, dbl); #Nb of components mismatch
4780 self.assertRaises(InterpKernelException, DataArrayDouble_CrossProduct, dbl2, dbl2); #Nb of components must be equal to 3
4781 dbl4=DataArrayDouble.New();
4783 dbl5=DataArrayDouble.New();
4785 self.assertRaises(InterpKernelException, DataArrayDouble_CrossProduct, dbl4, dbl5); #Nb of tuples mismatch
4787 a[0]=dbl4; #Nb of tuple mismatch
4788 a[1]=dbl5; #Nb of tuple mismatch
4789 self.assertRaises(InterpKernelException, DataArrayDouble_Meld, a);
4790 self.assertRaises(InterpKernelException, DataArrayDouble_Dot, dbl4, dbl5);
4793 def testDAIGetIdsEqual1(self):
4794 tab1=[5,-2,-4,-2,3,2,-2];
4795 da=DataArrayInt.New();
4796 da.setValues(tab1,7,1);
4797 da2=da.getIdsEqual(-2);
4798 self.assertEqual(3,da2.getNumberOfTuples());
4799 self.assertEqual(1,da2.getNumberOfComponents());
4801 self.assertEqual(expected1,da2.getValues());
4804 def testDAIGetIdsEqualList1(self):
4805 tab1=[5,-2,-4,-2,3,2,-2];
4806 da=DataArrayInt.New();
4807 da.setValues(tab1,7,1);
4808 da2=da.getIdsEqualList([3,-2,0]);
4809 self.assertEqual(4,da2.getNumberOfTuples());
4810 self.assertEqual(1,da2.getNumberOfComponents());
4811 expected1=[1,3,4,6];
4812 self.assertEqual(expected1,da2.getValues());
4815 def testDAFromNoInterlace1(self):
4816 tab1=[1,11,21,31,41,2,12,22,32,42,3,13,23,33,43]
4817 da=DataArrayInt.New();
4818 da.setValues(tab1,5,3);
4819 da2=da.fromNoInterlace();
4820 expected1=[1,2,3,11,12,13,21,22,23,31,32,33,41,42,43]
4821 self.assertEqual(5,da2.getNumberOfTuples());
4822 self.assertEqual(3,da2.getNumberOfComponents());# it's not a bug. Avoid to have 1 million components !
4823 self.assertEqual(expected1,da2.getValues());
4824 da3=da.convertToDblArr();
4825 da4=da3.fromNoInterlace();
4826 self.assertEqual(5,da4.getNumberOfTuples());
4827 self.assertEqual(3,da4.getNumberOfComponents());# it's not a bug. Avoid to have 1 million components !
4828 for i in xrange(15):
4829 self.assertAlmostEqual(expected1[i],da4.getIJ(0,i),14);
4833 def testDAToNoInterlace1(self):
4834 tab1=[1,2,3,11,12,13,21,22,23,31,32,33,41,42,43]
4835 da=DataArrayInt.New();
4836 da.setValues(tab1,5,3);
4837 da2=da.toNoInterlace();
4838 expected1=[1,11,21,31,41,2,12,22,32,42,3,13,23,33,43]
4839 self.assertEqual(5,da2.getNumberOfTuples());
4840 self.assertEqual(3,da2.getNumberOfComponents());# it's not a bug. Avoid to have 1 million components !
4841 self.assertEqual(expected1,da2.getValues());
4842 da3=da.convertToDblArr();
4843 da4=da3.toNoInterlace();
4844 self.assertEqual(5,da4.getNumberOfTuples());
4845 self.assertEqual(3,da4.getNumberOfComponents());# it's not a bug. Avoid to have 1 million components !
4846 for i in xrange(15):
4847 self.assertAlmostEqual(expected1[i],da4.getIJ(0,i),14);
4851 def testDAIsUniform1(self):
4853 da=DataArrayInt.New();
4854 da.setValues(tab1,5,1);
4855 self.assertTrue(da.isUniform(1));
4857 self.assertTrue(not da.isUniform(1));
4859 self.assertTrue(da.isUniform(1));
4860 da2=da.convertToDblArr();
4861 self.assertTrue(da2.isUniform(1.,1.e-12));
4862 da2.setIJ(1,0,1.+1.e-13);
4863 self.assertTrue(da2.isUniform(1.,1.e-12));
4864 da2.setIJ(1,0,1.+1.e-11);
4865 self.assertTrue(not da2.isUniform(1.,1.e-12));
4868 def testDADFromPolarToCart1(self):
4869 tab1=[2.,0.2,2.5,0.7]
4870 da=DataArrayDouble.New();
4871 da.setValues(tab1,2,2);
4872 da2=da.fromPolarToCart();
4873 expected1=[1.9601331556824833,0.39733866159012243, 1.9121054682112213,1.6105442180942275]
4875 self.assertAlmostEqual(expected1[i],da2.getIJ(0,i),13);
4879 def testDADFromCylToCart1(self):
4880 tab1=[2.,0.2,4.,2.5,0.7,9.]
4881 da=DataArrayDouble.New();
4882 da.setValues(tab1,2,3);
4883 da2=da.fromCylToCart();
4884 expected1=[1.9601331556824833,0.39733866159012243,4., 1.9121054682112213,1.6105442180942275,9.]
4886 self.assertAlmostEqual(expected1[i],da2.getIJ(0,i),13);
4890 def testDADFromSpherToCart1(self):
4891 tab1=[2.,0.2,0.3,2.5,0.7,0.8]
4892 da=DataArrayDouble.New();
4893 da.setValues(tab1,2,3);
4894 da2=da.fromSpherToCart();
4895 expected1=[0.37959212195737485,0.11742160338765303,1.9601331556824833, 1.1220769624465328,1.1553337045129035,1.9121054682112213]
4897 self.assertAlmostEqual(expected1[i],da2.getIJ(0,i),13);
4901 def testUnPolyze1(self):
4902 elts=[0,1,2,3,4,5,6,7]
4904 mesh=MEDCouplingDataForTest.build3DTargetMesh_1();
4905 mesh.convertToPolyTypes(eltsV);
4907 mesh2=MEDCouplingDataForTest.build3DTargetMesh_1();
4908 mesh.checkCoherency();
4909 self.assertTrue(mesh.isEqual(mesh2,1e-12));
4910 mesh.convertToPolyTypes(eltsV);
4911 self.assertTrue(not mesh.isEqual(mesh2,1e-12));
4912 mesh.getNodalConnectivity().setIJ(0,6,10);
4913 mesh.getNodalConnectivity().setIJ(0,7,9);
4914 mesh.getNodalConnectivity().setIJ(0,8,12);
4915 mesh.getNodalConnectivity().setIJ(0,9,13);
4917 self.assertTrue(mesh.isEqual(mesh2,1e-12));
4918 mesh.convertToPolyTypes(eltsV);
4919 mesh.getNodalConnectivity().setIJ(0,6,12);
4920 mesh.getNodalConnectivity().setIJ(0,7,13);
4921 mesh.getNodalConnectivity().setIJ(0,8,10);
4922 mesh.getNodalConnectivity().setIJ(0,9,9);
4924 self.assertTrue(mesh.isEqual(mesh2,1e-12));
4925 mesh.convertToPolyTypes(eltsV);
4926 mesh.getNodalConnectivity().setIJ(0,6,12);
4927 mesh.getNodalConnectivity().setIJ(0,7,10);
4928 mesh.getNodalConnectivity().setIJ(0,8,13);
4929 mesh.getNodalConnectivity().setIJ(0,9,9);
4931 self.assertTrue(not mesh.isEqual(mesh2,1e-12));
4933 mesh=MEDCouplingDataForTest.build2DTargetMesh_1();
4934 mesh2=MEDCouplingDataForTest.build2DTargetMesh_1();
4936 mesh.convertToPolyTypes(eltsV);
4937 self.assertTrue(not mesh.isEqual(mesh2,1e-12));
4939 self.assertTrue(mesh.isEqual(mesh2,1e-12));
4942 def testConvertDegeneratedCells1(self):
4943 mesh=MEDCouplingDataForTest.build3DTargetMesh_1();
4944 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]
4945 mesh.allocateCells(4);
4946 mesh.insertNextCell(NORM_HEXA8,8,conn[0:8])
4947 mesh.insertNextCell(NORM_HEXA8,8,conn[8:16])
4948 mesh.insertNextCell(NORM_HEXA8,8,conn[16:24])
4949 mesh.insertNextCell(NORM_HEXA8,8,conn[24:32])
4950 mesh.finishInsertingCells();
4951 mesh.checkCoherency();
4952 self.assertEqual(4,mesh.getNumberOfCells());
4953 self.assertEqual(NORM_HEXA8,mesh.getTypeOfCell(0));
4954 self.assertEqual(NORM_HEXA8,mesh.getTypeOfCell(1));
4955 self.assertEqual(NORM_HEXA8,mesh.getTypeOfCell(2));
4956 self.assertEqual(NORM_HEXA8,mesh.getTypeOfCell(3));
4957 f1=mesh.getMeasureField(True);
4958 mesh.convertDegeneratedCells();
4959 mesh.checkCoherency();
4960 f2=mesh.getMeasureField(True);
4961 self.assertEqual(4,mesh.getNumberOfCells());
4962 self.assertEqual(NORM_PENTA6,mesh.getTypeOfCell(0));
4963 self.assertEqual(NORM_PYRA5,mesh.getTypeOfCell(1));
4964 self.assertEqual(NORM_TETRA4,mesh.getTypeOfCell(2));
4965 self.assertEqual(NORM_PYRA5,mesh.getTypeOfCell(3));
4967 self.assertAlmostEqual(f1.getArray().getIJ(0,i),f2.getArray().getIJ(0,i),5);
4971 def testGetNodeIdsNearPoints1(self):
4972 mesh=MEDCouplingDataForTest.build2DTargetMesh_1();
4973 coords=mesh.getCoords();
4974 tmp=DataArrayDouble.New();
4975 vals=[0.2,0.2,0.1,0.2,0.2,0.2]
4976 tmp.setValues(vals,3,2);
4977 tmp2=DataArrayDouble.Aggregate(coords,tmp);
4978 mesh.setCoords(tmp2);
4979 pts=[0.2,0.2,0.1,0.3,-0.3,0.7]
4980 c=mesh.getNodeIdsNearPoint(pts[:2],1e-7);
4981 self.assertEqual([4,9,11],c.getValues());
4982 c,cI=mesh.getNodeIdsNearPoints(pts,3,1e-7);
4983 self.assertEqual([0,3,3,4],cI.getValues());
4984 self.assertEqual([4,9,11,6],c.getValues());
4985 c,cI=mesh.getNodeIdsNearPoints(pts,1e-7);
4986 self.assertEqual([0,3,3,4],cI.getValues());
4987 self.assertEqual([4,9,11,6],c.getValues());
4988 c,cI=mesh.getNodeIdsNearPoints(DataArrayDouble.New(pts,3,2),1e-7);
4989 self.assertEqual([0,3,3,4],cI.getValues());
4990 self.assertEqual([4,9,11,6],c.getValues());
4991 self.assertRaises(InterpKernelException,mesh.getNodeIdsNearPoints,DataArrayDouble.New(pts,2,3),1e-7);
4994 def testFieldCopyTinyAttrFrom1(self):
4995 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
4997 f1.setTimeTolerance(1.e-5);
4998 f1.setDescription("f1Desc");
4999 f1.setTime(1.23,4,5);
5000 f2=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
5002 f2.setDescription("f2Desc");
5003 f2.setTime(6.78,9,10);
5004 f2.setTimeTolerance(4.556e-12);
5006 f1.copyTinyAttrFrom(f2);
5007 self.assertAlmostEqual(4.556e-12,f1.getTimeTolerance(),24);
5008 t,dt,it=f1.getTime()
5009 self.assertAlmostEqual(6.78,t,12);
5010 self.assertEqual(9,dt);
5011 self.assertEqual(10,it);
5012 self.assertTrue(f1.getName()=="f1");#name unchanged
5013 self.assertTrue(f1.getDescription()=="f1Desc");#description unchanged
5015 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
5017 f1.setTimeTolerance(1.e-5);
5018 f1.setDescription("f1Desc");
5019 f2=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
5021 f2.setDescription("f2Desc");
5022 f2.setTimeTolerance(4.556e-12);
5024 f1.copyTinyAttrFrom(f2);
5025 self.assertAlmostEqual(4.556e-12,f1.getTimeTolerance(),24);
5026 self.assertTrue(f1.getName()=="f1");#name unchanged
5027 self.assertTrue(f1.getDescription()=="f1Desc");#description unchanged
5029 f1=MEDCouplingFieldDouble.New(ON_CELLS,CONST_ON_TIME_INTERVAL);
5031 f1.setTimeTolerance(1.e-5);
5032 f1.setDescription("f1Desc");
5033 f1.setTime(1.23,4,5);
5034 f1.setEndTime(5.43,2,1);
5035 f2=MEDCouplingFieldDouble.New(ON_CELLS,CONST_ON_TIME_INTERVAL);
5037 f2.setDescription("f2Desc");
5038 f2.setTimeTolerance(4.556e-12);
5039 f2.setTime(6.78,9,10);
5040 f2.setEndTime(10.98,7,6);
5042 f1.copyTinyAttrFrom(f2);
5043 self.assertAlmostEqual(4.556e-12,f1.getTimeTolerance(),24);
5044 self.assertTrue(f1.getName()=="f1");#name unchanged
5045 self.assertTrue(f1.getDescription()=="f1Desc");#description unchanged
5046 t,dt,it=f1.getTime()
5047 self.assertAlmostEqual(6.78,t,12);
5048 self.assertEqual(9,dt);
5049 self.assertEqual(10,it);
5050 t,dt,it=f1.getEndTime()
5051 self.assertAlmostEqual(10.98,t,12);
5052 self.assertEqual(7,dt);
5053 self.assertEqual(6,it);
5055 f1=MEDCouplingFieldDouble.New(ON_CELLS,LINEAR_TIME);
5057 f1.setTimeTolerance(1.e-5);
5058 f1.setDescription("f1Desc");
5059 f1.setTime(1.23,4,5);
5060 f1.setEndTime(5.43,2,1);
5061 f2=MEDCouplingFieldDouble.New(ON_CELLS,LINEAR_TIME);
5063 f2.setDescription("f2Desc");
5064 f2.setTimeTolerance(4.556e-12);
5065 f2.setTime(6.78,9,10);
5066 f2.setEndTime(10.98,7,6);
5068 f1.copyTinyAttrFrom(f2);
5069 self.assertAlmostEqual(4.556e-12,f1.getTimeTolerance(),24);
5070 self.assertTrue(f1.getName()=="f1");#name unchanged
5071 self.assertTrue(f1.getDescription()=="f1Desc");#description unchanged
5072 t,dt,it=f1.getTime()
5073 self.assertAlmostEqual(6.78,t,12);
5074 self.assertEqual(9,dt);
5075 self.assertEqual(10,it);
5076 t,dt,it=f1.getEndTime()
5077 self.assertAlmostEqual(10.98,t,12);
5078 self.assertEqual(7,dt);
5079 self.assertEqual(6,it);
5082 def testExtrudedMesh5(self):
5084 a=DataArrayDouble.New();
5085 a.setValues(coo1,4,1);
5086 b=MEDCouplingCMesh.New();
5088 c=b.buildUnstructured();
5089 self.assertEqual(1,c.getSpaceDimension());
5090 c.changeSpaceDimension(2);
5092 d=DataArrayDouble.New();
5095 e=MEDCouplingCMesh.New();
5097 f=e.buildUnstructured();
5098 g=f.getCoords().applyFunc(2,"3.5*IVec+x/6*3.14159265359*JVec");
5099 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 !
5100 h=g.fromPolarToCart();
5102 i=c.buildExtrudedMesh(f,1);
5103 self.assertEqual(52,i.getNumberOfNodes());
5104 tmp,tmp2,tmp3=i.mergeNodes(1e-9);
5105 self.assertTrue(tmp2);
5106 self.assertEqual(37,tmp3);
5107 i.convertDegeneratedCells();
5109 self.assertEqual(36,i.getNumberOfCells());
5110 self.assertEqual(37,i.getNumberOfNodes());
5111 self.assertEqual(12,i.getNumberOfCellsWithType(NORM_TRI3));
5112 self.assertEqual(24,i.getNumberOfCellsWithType(NORM_QUAD4));
5113 expected1=[0.25,0.75,2.0625]
5114 j=i.getMeasureField(True);
5115 for ii in xrange(12):
5117 self.assertAlmostEqual(expected1[k],j.getIJ(0,ii*3+k),10);
5120 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]
5121 m=i.getBarycenterAndOwner();
5122 for i in xrange(72):
5123 self.assertAlmostEqual(expected2[i],m.getIJ(0,i),10);
5128 def testExtrudedMesh6(self):
5130 a=DataArrayDouble.New();
5131 a.setValues(coo1,4,1);
5132 b=MEDCouplingCMesh.New();
5134 c=b.buildUnstructured();
5135 self.assertEqual(1,c.getSpaceDimension());
5136 c.changeSpaceDimension(2);
5138 d=DataArrayDouble.New();
5141 e=MEDCouplingCMesh.New();
5143 f=e.buildUnstructured();
5144 d2=f.getCoords().applyFunc("x*x/2");
5146 f.changeSpaceDimension(2);
5149 f.rotate(center,None,pi/3);
5150 g=c.buildExtrudedMesh(f,0);
5152 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 ]
5153 f1=g.getMeasureField(True);
5154 for i in xrange(12):
5155 self.assertAlmostEqual(expected1[i],f1.getIJ(0,i),12);
5157 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]
5158 f2=g.getBarycenterAndOwner();
5159 for i in xrange(24):
5160 self.assertAlmostEqual(expected2[i],f2.getIJ(0,i),12);
5164 def testExtrudedMesh7(self):
5166 a=DataArrayDouble.New();
5167 a.setValues(coo1,4,1);
5168 b=MEDCouplingCMesh.New();
5170 c=b.buildUnstructured();
5171 self.assertEqual(1,c.getSpaceDimension());
5172 c.changeSpaceDimension(2);
5174 d=DataArrayDouble.New();
5177 e=MEDCouplingCMesh.New();
5179 f=e.buildUnstructured();
5180 g=f.getCoords().applyFunc(2,"3.5*IVec+x/6*3.14159265359*JVec");
5181 h=g.fromPolarToCart();
5183 i=c.buildExtrudedMesh(f,1);
5184 self.assertEqual(52,i.getNumberOfNodes());
5185 tmp,tmp2,tmp3=i.mergeNodes(1e-9);
5186 self.assertTrue(tmp2);
5187 self.assertEqual(37,tmp3);
5188 i.convertDegeneratedCells();
5191 g2=h.applyFunc(3,"13.5/3.5*x*IVec+0*JVec+13.5/3.5*y*KVec");
5193 i.changeSpaceDimension(3);
5194 i3=i.buildExtrudedMesh(f,1);
5195 f2=i3.getMeasureField(True);
5196 tmp,tmp2,tmp3=i.mergeNodes(1e-9);
5197 self.assertTrue(tmp2);
5198 self.assertEqual(444,tmp3);
5199 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]
5200 for ii in xrange(12):
5201 for jj in xrange(36):
5202 self.assertAlmostEqual(expected1[jj],f2.getIJ(0,ii*36+jj),9);
5207 def testSimplexize1(self):
5208 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
5209 m.convertToPolyTypes([3]);
5211 self.assertEqual(7,da.getNumberOfTuples());
5212 self.assertEqual(1,da.getNumberOfComponents());
5213 expected2=[0,0,1,2,3,4,4]
5215 self.assertEqual(expected2[i],da.getIJ(i,0));
5218 self.assertEqual(7,m.getNumberOfCells());
5219 self.assertEqual(NORM_TRI3,m.getTypeOfCell(0));
5220 self.assertEqual(NORM_TRI3,m.getTypeOfCell(1));
5221 self.assertEqual(NORM_TRI3,m.getTypeOfCell(2));
5222 self.assertEqual(NORM_TRI3,m.getTypeOfCell(3));
5223 self.assertEqual(NORM_POLYGON,m.getTypeOfCell(4));
5224 self.assertEqual(NORM_TRI3,m.getTypeOfCell(5));
5225 self.assertEqual(NORM_TRI3,m.getTypeOfCell(6));
5226 expected1=[0.125,0.125,0.125,0.125,0.25,0.125,0.125]
5227 f=m.getMeasureField(False);
5229 self.assertAlmostEqual(expected1[i]*sqrt(2.),f.getIJ(i,0),10);
5231 types=m.getAllGeoTypes();
5232 self.assertEqual([NORM_TRI3,NORM_POLYGON],types);
5234 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
5235 m.convertToPolyTypes([3]);
5237 self.assertEqual(7,da.getNumberOfTuples());
5238 self.assertEqual(1,da.getNumberOfComponents());
5240 self.assertEqual(expected2[i],da.getIJ(i,0));
5243 types=m.getAllGeoTypes();
5244 self.assertEqual([NORM_TRI3,NORM_POLYGON],types);
5245 self.assertEqual(7,m.getNumberOfCells());
5246 self.assertEqual(NORM_TRI3,m.getTypeOfCell(0));
5247 self.assertEqual(NORM_TRI3,m.getTypeOfCell(1));
5248 self.assertEqual(NORM_TRI3,m.getTypeOfCell(2));
5249 self.assertEqual(NORM_TRI3,m.getTypeOfCell(3));
5250 self.assertEqual(NORM_POLYGON,m.getTypeOfCell(4));
5251 self.assertEqual(NORM_TRI3,m.getTypeOfCell(5));
5252 self.assertEqual(NORM_TRI3,m.getTypeOfCell(6));
5253 f=m.getMeasureField(False);
5255 self.assertAlmostEqual(expected1[i]*sqrt(2.),f.getIJ(i,0),10);
5259 def testSimplexize2(self):
5260 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
5261 m.convertToPolyTypes([3]);
5262 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
5264 arr=DataArrayDouble.New();
5265 arr1=[10.,110.,20.,120.,30.,130.,40.,140.,50.,150.]
5266 arr.setValues(arr1,5,2);
5269 f1.checkCoherency();
5270 self.assertTrue(f1.simplexize(0));
5271 f1.checkCoherency();
5272 expected1=[10.,110.,10.,110.,20.,120.,30.,130.,40.,140.,50.,150.,50.,150.]
5273 for i in xrange(14):
5274 self.assertAlmostEqual(expected1[i],f1.getIJ(0,i),10);
5276 self.assertTrue(not f1.simplexize(0));
5277 for i in xrange(14):
5278 self.assertAlmostEqual(expected1[i],f1.getIJ(0,i),10);
5283 def testDAMeld1(self):
5284 da1=DataArrayDouble.New();
5286 da2=DataArrayDouble.New();
5289 da1.fillWithValue(7.);
5291 da3=da2.applyFunc(3,"10*x*IVec+100*x*JVec+1000*x*KVec");
5293 da1.setInfoOnComponent(0,"c0da1");
5294 da1.setInfoOnComponent(1,"c1da1");
5295 da3.setInfoOnComponent(0,"c0da3");
5296 da3.setInfoOnComponent(1,"c1da3");
5297 da3.setInfoOnComponent(2,"c2da3");
5301 self.assertEqual(5,da1.getNumberOfComponents());
5302 self.assertEqual(7,da1.getNumberOfTuples());
5303 self.assertTrue(da1.getInfoOnComponent(0)=="c0da1");
5304 self.assertTrue(da1.getInfoOnComponent(1)=="c1da1");
5305 self.assertTrue(da1.getInfoOnComponent(2)=="c0da3");
5306 self.assertTrue(da1.getInfoOnComponent(3)=="c1da3");
5307 self.assertTrue(da1.getInfoOnComponent(4)=="c2da3");
5309 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.]
5310 for i in xrange(35):
5311 self.assertAlmostEqual(expected1[i],da1.getIJ(0,i),10);
5314 dai1=da1C.convertToIntArr();
5315 dai3=da3.convertToIntArr();
5316 dai1.meldWith(dai3);
5317 self.assertEqual(5,dai1.getNumberOfComponents());
5318 self.assertEqual(7,dai1.getNumberOfTuples());
5319 self.assertTrue(dai1.getInfoOnComponent(0)=="c0da1");
5320 self.assertTrue(dai1.getInfoOnComponent(1)=="c1da1");
5321 self.assertTrue(dai1.getInfoOnComponent(2)=="c0da3");
5322 self.assertTrue(dai1.getInfoOnComponent(3)=="c1da3");
5323 self.assertTrue(dai1.getInfoOnComponent(4)=="c2da3");
5324 for i in xrange(35):
5325 self.assertEqual(int(expected1[i]),dai1.getIJ(0,i));
5327 # test of static method DataArrayDouble::meld
5328 da4=DataArrayDouble.Meld(da1C,da3);
5329 tmp=DataArrayDouble.Meld([da1C,da3]);
5330 self.assertTrue(da4.isEqual(tmp,1e-10))
5331 self.assertEqual(5,da4.getNumberOfComponents());
5332 self.assertEqual(7,da4.getNumberOfTuples());
5333 self.assertTrue(da4.getInfoOnComponent(0)=="c0da1");
5334 self.assertTrue(da4.getInfoOnComponent(1)=="c1da1");
5335 self.assertTrue(da4.getInfoOnComponent(2)=="c0da3");
5336 self.assertTrue(da4.getInfoOnComponent(3)=="c1da3");
5337 self.assertTrue(da4.getInfoOnComponent(4)=="c2da3");
5338 for i in xrange(35):
5339 self.assertAlmostEqual(expected1[i],da4.getIJ(0,i),10);
5341 # test of static method DataArrayInt::meld
5342 dai1=da1C.convertToIntArr();
5343 dai4=DataArrayInt.Meld(dai1,dai3);
5344 tmp=DataArrayInt.Meld([dai1,dai3]);
5345 self.assertTrue(dai4.isEqual(tmp))
5346 self.assertEqual(5,dai4.getNumberOfComponents());
5347 self.assertEqual(7,dai4.getNumberOfTuples());
5348 self.assertTrue(dai4.getInfoOnComponent(0)=="c0da1");
5349 self.assertTrue(dai4.getInfoOnComponent(1)=="c1da1");
5350 self.assertTrue(dai4.getInfoOnComponent(2)=="c0da3");
5351 self.assertTrue(dai4.getInfoOnComponent(3)=="c1da3");
5352 self.assertTrue(dai4.getInfoOnComponent(4)=="c2da3");
5353 for i in xrange(35):
5354 self.assertEqual(int(expected1[i]),dai4.getIJ(0,i));
5358 def testFieldMeld1(self):
5359 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
5360 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
5362 da1=DataArrayDouble.New();
5363 arr1=[12.,23.,34.,45.,56.]
5364 da1.setValues(arr1,5,1);
5365 da1.setInfoOnComponent(0,"aaa");
5367 f1.setTime(3.4,2,1);
5368 f1.checkCoherency();
5371 f2.setMesh(f1.getMesh());
5372 f2.checkCoherency();
5373 f2.changeNbOfComponents(2,5.);
5375 f2.getArray().setInfoOnComponent(0,"bbb");
5376 f2.getArray().setInfoOnComponent(1,"ccc");
5377 f2.checkCoherency();
5379 f3=MEDCouplingFieldDouble.MeldFields(f2,f1);
5380 f3.checkCoherency();
5381 self.assertEqual(5,f3.getNumberOfTuples());
5382 self.assertEqual(3,f3.getNumberOfComponents());
5383 self.assertTrue(f3.getArray().getInfoOnComponent(0)=="bbb");
5384 self.assertTrue(f3.getArray().getInfoOnComponent(1)=="ccc");
5385 self.assertTrue(f3.getArray().getInfoOnComponent(2)=="aaa");
5386 expected1=[5.,5.,12.,5.,5.,23.,5.,5.,34.,5.,5.,45.,5.,5.,56.]
5387 for i in xrange(15):
5388 self.assertAlmostEqual(expected1[i],f3.getIJ(0,i),12);
5390 time,dt,it=f3.getTime();
5391 self.assertAlmostEqual(3.4,time,14);
5392 self.assertEqual(2,dt);
5393 self.assertEqual(1,it);
5395 f4=f2.buildNewTimeReprFromThis(NO_TIME,False);
5396 f5=f1.buildNewTimeReprFromThis(NO_TIME,False);
5397 f6=MEDCouplingFieldDouble.MeldFields(f4,f5);
5398 f6.checkCoherency();
5399 self.assertEqual(5,f6.getNumberOfTuples());
5400 self.assertEqual(3,f6.getNumberOfComponents());
5401 self.assertTrue(f6.getArray().getInfoOnComponent(0)=="bbb");
5402 self.assertTrue(f6.getArray().getInfoOnComponent(1)=="ccc");
5403 self.assertTrue(f6.getArray().getInfoOnComponent(2)=="aaa");
5404 for i in xrange(15):
5405 self.assertAlmostEqual(expected1[i],f6.getIJ(0,i),12);
5410 def testMergeNodes2(self):
5411 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
5412 m2=MEDCouplingDataForTest.build2DTargetMesh_1();
5416 m3=MEDCouplingUMesh.MergeUMeshes([m1,m2]);
5417 da,b,newNbOfNodes=m3.mergeNodes2(0.01);
5418 self.assertEqual(9,m3.getNumberOfNodes());
5419 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]
5420 for i in xrange(18):
5421 self.assertAlmostEqual(expected1[i],m3.getCoords().getIJ(0,i),13);
5426 def testMergeField2(self):
5427 m=MEDCouplingDataForTest.build2DTargetMesh_1();
5428 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
5430 arr=DataArrayDouble.New();
5432 arr.fillWithValue(2.);
5434 f2=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
5436 arr=DataArrayDouble.New();
5438 arr.fillWithValue(5.);
5440 f3=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
5442 arr=DataArrayDouble.New();
5444 arr.fillWithValue(7.);
5447 f4=MEDCouplingFieldDouble.MergeFields([f1,f2,f3]);
5448 self.assertEqual(15,f4.getMesh().getNumberOfCells());
5449 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.]
5450 for i in xrange(30):
5451 self.assertAlmostEqual(expected1[i],f4.getIJ(0,i),13);
5456 def testDAIBuildComplement1(self):
5457 a=DataArrayInt.New();
5459 a.setValues(tab,4,1);
5460 b=a.buildComplement(12);
5461 self.assertEqual(8,b.getNumberOfTuples());
5462 self.assertEqual(1,b.getNumberOfComponents());
5463 expected1=[0,2,4,5,6,9,10,11]
5465 self.assertEqual(expected1[i],b.getIJ(0,i));
5469 def testDAIBuildUnion1(self):
5470 a=DataArrayInt.New();
5472 a.setValues(tab1,4,1);
5473 c=DataArrayInt.New();
5475 c.setValues(tab2,5,1);
5477 self.assertEqual(7,b.getNumberOfTuples());
5478 self.assertEqual(1,b.getNumberOfComponents());
5479 expected1=[0,1,3,5,7,8,18]
5481 self.assertEqual(expected1[i],b.getIJ(0,i));
5483 b=DataArrayInt.BuildUnion([a,c]);
5484 self.assertEqual(7,b.getNumberOfTuples());
5485 self.assertEqual(1,b.getNumberOfComponents());
5486 expected1=[0,1,3,5,7,8,18]
5488 self.assertEqual(expected1[i],b.getIJ(0,i));
5492 def testDAIBuildIntersection1(self):
5493 a=DataArrayInt.New();
5495 a.setValues(tab1,4,1);
5496 c=DataArrayInt.New();
5498 c.setValues(tab2,5,1);
5499 b=a.buildIntersection(c);
5500 self.assertEqual(2,b.getNumberOfTuples());
5501 self.assertEqual(1,b.getNumberOfComponents());
5504 self.assertEqual(expected1[i],b.getIJ(0,i));
5506 b=DataArrayInt.BuildIntersection([a,c]);
5507 self.assertEqual(2,b.getNumberOfTuples());
5508 self.assertEqual(1,b.getNumberOfComponents());
5511 self.assertEqual(expected1[i],b.getIJ(0,i));
5515 def testDAIDeltaShiftIndex1(self):
5516 a=DataArrayInt.New();
5517 tab=[1,3,6,7,7,9,15]
5518 a.setValues(tab,7,1);
5519 b=a.deltaShiftIndex();
5520 self.assertEqual(6,b.getNumberOfTuples());
5521 self.assertEqual(1,b.getNumberOfComponents());
5522 expected1=[2,3,1,0,2,6]
5524 self.assertEqual(expected1[i],b.getIJ(0,i));
5528 def testDaDoubleSelectByTupleIdSafe1(self):
5529 a=DataArrayDouble.New();
5530 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]
5531 a.setValues(arr1,7,2);
5532 a.setInfoOnComponent(0,"toto");
5533 a.setInfoOnComponent(1,"tata");
5536 b=a.selectByTupleIdSafe(arr2);
5537 self.assertEqual(5,b.getNumberOfTuples());
5538 self.assertEqual(2,b.getNumberOfComponents());
5539 self.assertTrue(b.getInfoOnComponent(0)=="toto");
5540 self.assertTrue(b.getInfoOnComponent(1)=="tata");
5541 expected1=[5.1,15.1,3.1,13.1,1.1,11.1,7.1,17.1,6.1,16.1]
5542 for i in xrange(10):
5543 self.assertAlmostEqual(expected1[i],b.getIJ(0,i),14);
5546 self.assertRaises(InterpKernelException,a.selectByTupleIdSafe,arr4);
5548 self.assertRaises(InterpKernelException,a.selectByTupleIdSafe,arr5);
5550 c=DataArrayInt.New();
5551 arr3=[1,11,2,12,3,13,4,14,5,15,6,16,7,17]
5552 c.setValues(arr3,7,2);
5553 c.setInfoOnComponent(0,"toto");
5554 c.setInfoOnComponent(1,"tata");
5555 d=c.selectByTupleIdSafe(arr2);
5556 self.assertEqual(5,d.getNumberOfTuples());
5557 self.assertEqual(2,d.getNumberOfComponents());
5558 self.assertTrue(d.getInfoOnComponent(0)=="toto");
5559 self.assertTrue(d.getInfoOnComponent(1)=="tata");
5560 expected2=[5,15,3,13,1,11,7,17,6,16]
5561 for i in xrange(10):
5562 self.assertEqual(expected2[i],d.getIJ(0,i));
5564 self.assertRaises(InterpKernelException,c.selectByTupleIdSafe,arr4);
5565 self.assertRaises(InterpKernelException,c.selectByTupleIdSafe,arr5);
5568 def testAreCellsIncludedIn1(self):
5569 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
5571 m2=m.buildPartOfMySelf(pt,True);
5572 ret,tmp=m.areCellsIncludedIn(m2,0)
5573 self.assertTrue(ret);
5574 self.assertEqual(2,tmp.getNumberOfTuples());
5575 self.assertEqual(1,tmp.getNumberOfComponents());
5576 self.assertEqual(pt[0],tmp.getIJ(0,0));
5577 self.assertEqual(pt[1],tmp.getIJ(0,1));
5578 ret,tmp=m2.areCellsIncludedIn(m,0)
5579 self.assertTrue(not ret);
5580 m3=MEDCouplingUMesh.MergeUMeshesOnSameCoords(m,m2)
5581 c,cI=m3.findCommonCells(2,m.getNumberOfCells())
5582 self.assertTrue(c.isEqual(DataArrayInt([1,5,3,6])))
5583 self.assertTrue(cI.isEqual(DataArrayInt([0,2,4])))
5586 def testSwigErrorProtection1(self):
5587 m=MEDCouplingDataForTest.build3DTargetMesh_1();
5588 m.rotate([0.,0.,0.],[0.3,0.6,1.2],0.37)
5589 m.rotate([0.,0.,0.],[0.3,6,1.2],0.37)
5590 self.assertRaises(InterpKernelException,m.rotate,[0.,0.,0.],(0.3,6,"1.2"),0.37)
5591 self.assertRaises(InterpKernelException,m.rotate,[0.,"0.",0.],[0.3,0.6,1.2],0.37)
5592 self.assertRaises(InterpKernelException,m.rotate,[0.,0.,0.],[0.3,'0.6',1.2],0.37)
5593 m2=m.buildPartOfMySelf([2,5],True)
5594 m3=m.buildPartOfMySelf((2,5),True)
5595 self.assertTrue(m2.isEqual(m3,1e-12))
5596 self.assertRaises(InterpKernelException,m.buildPartOfMySelf,[2,5.],True)
5597 da1=m.getCoords().keepSelectedComponents([1])
5598 da2=m.getCoords().keepSelectedComponents((1,))
5599 self.assertTrue(da1.isEqual(da2,1e-12))
5600 self.assertRaises(InterpKernelException,m.getCoords().keepSelectedComponents,["1"])
5603 def testDAIBuildSubstraction1(self):
5604 a=DataArrayInt.New()
5607 b=DataArrayInt.New()
5610 self.assertEqual([2,6,8],a.buildSubstraction(b).getValues())
5613 def testBuildOrthogonalField2(self):
5614 m=MEDCouplingDataForTest.build2DTargetMesh_1();
5615 d1=DataArrayInt.New();
5616 d2=DataArrayInt.New();
5617 d3=DataArrayInt.New();
5618 d4=DataArrayInt.New();
5619 m1=m.buildDescendingConnectivity(d1,d2,d3,d4);
5621 f1=m1.buildOrthogonalField();
5623 self.assertEqual(2,da1.getNumberOfComponents());
5624 self.assertEqual(13,da1.getNumberOfTuples());
5626 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.];
5627 for i in xrange(26):
5628 self.assertAlmostEqual(expected1[i],da1.getIJ(0,i),14);
5632 def testSwigErrorProtection2(self):
5633 m=MEDCouplingDataForTest.build2DTargetMesh_1();
5635 c=m.getNodalConnectivity()
5636 ci=m.getNodalConnectivityIndex()
5638 self.assertEqual(2,coo.getNumberOfComponents());
5639 self.assertEqual(6,ci.getNumberOfTuples());
5640 self.assertEqual(23,c.getNumberOfTuples());
5641 m=MEDCouplingDataForTest.build2DTargetMesh_1();
5642 f=m.getMeasureField(True)
5645 self.assertEqual(1,c.getNumberOfComponents());
5646 m=MEDCouplingCMesh.New()
5647 x=DataArrayDouble.New()
5648 x.setValues([1.,2.,4.],3,1)
5653 self.assertEqual(3,xx.getNumberOfTuples());
5655 m=MEDCouplingDataForTest.build2DTargetMesh_1();
5656 f=m.getMeasureField(True)
5660 self.assertEqual(5,m2.getNumberOfCells());
5663 def testUMInsertNextCell1(self):
5664 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 ]
5665 targetConn=[0,3,4,1, 1,4,2, 4,5,2, 6,7,4,3, 7,8,5,4]
5666 targetMesh=MEDCouplingUMesh.New();
5667 targetMesh.allocateCells(5);
5668 self.assertRaises(InterpKernelException,targetMesh.insertNextCell,NORM_QUAD4,4,targetConn[0:4])
5669 targetMesh.setMeshDimension(2);
5670 targetMesh.insertNextCell(NORM_QUAD4,4,targetConn[0:4])
5671 self.assertRaises(InterpKernelException,targetMesh.insertNextCell,NORM_TETRA4,4,targetConn[0:4])
5672 self.assertRaises(InterpKernelException,targetMesh.insertNextCell,NORM_SEG2,2,targetConn[0:2])
5673 self.assertRaises(InterpKernelException,targetMesh.insertNextCell,NORM_POINT1,1,targetConn[0:1])
5674 targetMesh.insertNextCell(NORM_TRI3,3,targetConn[4:7])
5675 targetMesh.insertNextCell(NORM_TRI3,3,targetConn[7:10])
5676 targetMesh.insertNextCell(NORM_QUAD4,4,targetConn[10:14])
5677 targetMesh.insertNextCell(NORM_QUAD4,4,targetConn[14:18])
5678 targetMesh.finishInsertingCells();
5679 myCoords=DataArrayDouble.New();
5680 myCoords.setValues(targetCoords,9,2);
5681 targetMesh.setCoords(myCoords);
5682 targetMesh.checkCoherency();
5685 def testFieldOperatorDivDiffComp1(self):
5686 m=MEDCouplingDataForTest.build2DTargetMesh_1();
5687 m1,d0,d1,d2,d3=m.buildDescendingConnectivity();
5689 f1=m1.buildOrthogonalField();
5690 arr1=[2.,3.,4.,5.,6.,7.,8.,9.,10.,11.,12.,13.,14.]
5691 arr=DataArrayDouble.New();
5692 arr.setValues(arr1,13,1);
5693 f2=MEDCouplingFieldDouble.New(ON_CELLS);
5696 f2.checkCoherency();
5699 self.assertRaises(InterpKernelException,f2.__div__,f1)
5700 f3.checkCoherency();
5702 #self.assertRaises(InterpKernelException,f2.__idiv__,f1) # mem leaks
5703 self.assertTrue(f1.isEqual(f3,1e-10,1e-10));
5704 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]
5705 for i in xrange(26):
5706 self.assertAlmostEqual(expected1[i],f3.getIJ(0,i),10);
5710 def testDARearrange1(self):
5711 da1=DataArrayInt.New();
5715 self.assertEqual(12,da1.getNbOfElems());
5716 self.assertEqual(1,da1.getNumberOfComponents());
5717 self.assertEqual(12,da1.getNumberOfTuples());
5719 self.assertEqual(12,da1.getNbOfElems());
5720 self.assertEqual(4,da1.getNumberOfComponents());
5721 self.assertEqual(3,da1.getNumberOfTuples());
5722 for i in xrange(12):
5723 self.assertEqual(i,da1.getIJ(0,i));
5726 self.assertEqual(12,da1.getNbOfElems());
5727 self.assertEqual(6,da1.getNumberOfComponents());
5728 self.assertEqual(2,da1.getNumberOfTuples());
5729 for i in xrange(12):
5730 self.assertEqual(i,da1.getIJ(0,i));
5732 self.assertRaises(InterpKernelException,da1.rearrange,7);
5735 self.assertEqual(12,da1.getNbOfElems());
5736 self.assertEqual(12,da1.getNumberOfComponents());
5737 self.assertEqual(1,da1.getNumberOfTuples());
5738 for i in xrange(12):
5739 self.assertEqual(i,da1.getIJ(0,i));
5742 self.assertEqual(12,da1.getNbOfElems());
5743 self.assertEqual(3,da1.getNumberOfComponents());
5744 self.assertEqual(4,da1.getNumberOfTuples());
5745 for i in xrange(12):
5746 self.assertEqual(i,da1.getIJ(0,i));
5748 da2=da1.convertToDblArr();
5749 st=da2.getHiddenCppPointer()
5751 self.assertEqual(12,da2.getNbOfElems());
5752 self.assertEqual(3,da2.getNumberOfComponents());
5753 self.assertEqual(4,da2.getNumberOfTuples());
5755 self.assertEqual(12,da2.getNbOfElems());
5756 self.assertEqual(4,da2.getNumberOfComponents());
5757 self.assertEqual(3,da2.getNumberOfTuples());
5758 for i in xrange(12):
5759 self.assertAlmostEqual(float(i),da2.getIJ(0,i),14);
5762 self.assertEqual(12,da2.getNbOfElems());
5763 self.assertEqual(6,da2.getNumberOfComponents());
5764 self.assertEqual(2,da2.getNumberOfTuples());
5765 for i in xrange(12):
5766 self.assertAlmostEqual(float(i),da2.getIJ(0,i),14);
5768 self.assertRaises(InterpKernelException,da2.rearrange,7);
5771 self.assertEqual(st,da2.getHiddenCppPointer())
5772 self.assertEqual(12,da2.getNbOfElems());
5773 self.assertEqual(1,da2.getNumberOfComponents());
5774 self.assertEqual(12,da2.getNumberOfTuples());
5775 for i in xrange(12):
5776 self.assertAlmostEqual(float(i),da2.getIJ(0,i),14);
5779 self.assertEqual(12,da2.getNbOfElems());
5780 self.assertEqual(3,da2.getNumberOfComponents());
5781 self.assertEqual(4,da2.getNumberOfTuples());
5782 for i in xrange(12):
5783 self.assertAlmostEqual(float(i),da2.getIJ(0,i),14);
5786 def testDARearrange2(self):
5787 da1=DataArrayInt.New();
5788 arr=[1,2,3,2,2,3,5,1,5,5,2,2]
5789 da1.setValues(arr,4,3);
5790 s=da1.getDifferentValues();
5791 expected1=DataArrayInt([1,2,3,5])
5792 self.assertTrue(expected1.isEqual(s));
5795 def testSwigErrorProtection3(self):
5796 da=DataArrayInt.New()
5797 da.setValues([1,2,3,4,0,0,0,0,0,0,0,0],4,3)
5798 self.assertEqual([1, 2, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0],da.getValues())
5799 self.assertEqual(3,da.getNumberOfComponents());
5800 self.assertEqual(4,da.getNumberOfTuples());
5801 da=DataArrayInt.New()
5802 da.setValues(((1,2,3),(4,4,3),(0,0,0),(0,0,0)),4,3)
5803 self.assertEqual([1, 2, 3, 4, 4, 3, 0, 0, 0, 0, 0, 0],da.getValues())
5804 self.assertEqual(3,da.getNumberOfComponents());
5805 self.assertEqual(4,da.getNumberOfTuples());
5806 da.setValues((10*[1]+290*[2])[:12],4,3)
5807 self.assertEqual(10*[1]+[2,2],da.getValues())
5808 self.assertEqual(3,da.getNumberOfComponents());
5809 self.assertEqual(4,da.getNumberOfTuples());
5811 da=DataArrayDouble.New()
5812 da.setValues([1,2,3.,4,0,0,0,0,0,0,0,0],4,3)
5813 self.assertEqual([1., 2., 3., 4., 0., 0., 0., 0., 0., 0., 0., 0.],da.getValues())
5814 self.assertEqual(3,da.getNumberOfComponents());
5815 self.assertEqual(4,da.getNumberOfTuples());
5816 da=DataArrayDouble.New()
5817 da.setValues(((1,2,3),(4.,4,3),(0,0,0),(0,0,0)),4,3)
5818 self.assertEqual([1., 2., 3., 4., 4., 3., 0., 0., 0., 0., 0., 0.],da.getValues())
5819 self.assertEqual(3,da.getNumberOfComponents());
5820 self.assertEqual(4,da.getNumberOfTuples());
5821 da.setValues((10*[1]+290*[2])[:12],4,3)
5822 self.assertEqual(10*[1.]+[2.,2.],da.getValues())
5823 self.assertEqual(3,da.getNumberOfComponents());
5824 self.assertEqual(4,da.getNumberOfTuples());
5827 def testDAIBuildPermutationArr1(self):
5828 a=DataArrayInt.New()
5829 a.setValues([4,5,6,7,8],5,1)
5830 b=DataArrayInt.New()
5831 b.setValues([5,4,8,6,7],5,1)
5832 c=a.buildPermutationArr(b)
5833 self.assertEqual([1,0,4,2,3],c.getValues())
5834 self.assertTrue(a.isEqualWithoutConsideringStrAndOrder(b))
5836 self.assertTrue(not a.isEqualWithoutConsideringStrAndOrder(b))
5837 self.assertRaises(InterpKernelException,a.buildPermutationArr,b)
5840 b.setIJ(4,0,4)#a==[4,5,6,4,8] and b==[5,4,8,6,4]
5841 self.assertTrue(a.isEqualWithoutConsideringStrAndOrder(b))
5842 c=a.buildPermutationArr(b)
5843 self.assertEqual([1,3,4,2,3],c.getValues())
5844 d=b.convertToDblArr()
5847 self.assertEqual(expect3,b.getValues())
5849 self.assertEqual(5,d.getNumberOfTuples());
5850 self.assertEqual(1,d.getNumberOfComponents());
5852 self.assertAlmostEqual(float(expect3[i]),d.getIJ(i,0),14);
5856 def testAreCellsIncludedIn2(self):
5858 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
5859 m2=m.buildPartOfMySelf([],True);
5860 self.assertEqual(0,m2.getNumberOfCells());
5861 self.assertEqual(3,m2.getSpaceDimension());
5862 self.assertEqual(2,m2.getMeshDimension());
5864 test,tmp=m.areCellsIncludedIn(m2,0)
5865 self.assertTrue(test);
5866 self.assertEqual(myName,tmp.getName());
5867 self.assertEqual(0,tmp.getNumberOfTuples())
5868 self.assertEqual(1,tmp.getNumberOfComponents())
5871 def testUMeshGetPartBarycenterAndOwner1(self):
5872 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
5874 part=DataArrayInt.New();
5875 part.setValues(part1,3,1);
5876 b=m1.getPartBarycenterAndOwner(part);
5877 self.assertEqual(2,b.getNumberOfComponents());
5878 self.assertEqual(3,b.getNumberOfTuples());
5879 expected1=[0.36666666666666665,-0.13333333333333333,-0.05,-0.05,0.45,0.45];
5881 self.assertAlmostEqual(expected1[i],b.getIJ(0,i),14);
5885 def testUMeshGetPartMeasureField1(self):
5886 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
5888 part=DataArrayInt.New();
5889 part.setValues(part1,3,1);
5890 b=m1.getPartMeasureField(True,part);
5891 self.assertEqual(1,b.getNumberOfComponents());
5892 self.assertEqual(3,b.getNumberOfTuples());
5893 expected1=[0.125,0.25,0.25];
5895 self.assertAlmostEqual(expected1[i],b.getIJ(0,i),14);
5899 def testUMeshBuildPartOrthogonalField1(self):
5900 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
5901 m1.changeSpaceDimension(3);
5903 part=DataArrayInt.New();
5904 part.setValues(part1,3,1);
5905 b=m1.buildPartOrthogonalField(part);
5906 self.assertEqual(3,b.getArray().getNumberOfComponents());
5907 self.assertEqual(3,b.getArray().getNumberOfTuples());
5908 expected1=[0.,0.,-1.,0.,0.,-1.,0.,0.,-1.];
5910 self.assertAlmostEqual(expected1[i],b.getArray().getIJ(0,i),14);
5914 def testUMeshGetTypesOfPart1(self):
5915 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
5917 p1=DataArrayInt.New()
5918 p1.setValues(part1,3,1)
5919 s=m1.getTypesOfPart(p1);
5920 self.assertEqual([NORM_QUAD4],s);
5922 p2=DataArrayInt.New()
5923 p2.setValues(part2,4,1)
5924 s=m1.getTypesOfPart(p2);
5925 self.assertEqual([NORM_TRI3],s);
5927 p3=DataArrayInt.New()
5928 p3.setValues(part3,3,1)
5929 s=m1.getTypesOfPart(p3);
5930 self.assertEqual(s,[NORM_TRI3,NORM_QUAD4]);
5933 def testUMeshKeepCellIdsByType1(self):
5934 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
5936 p1=DataArrayInt.New()
5937 p1.setValues(part1,3,1)
5939 a=m1.keepCellIdsByType(NORM_TRI3,p1);
5940 self.assertEqual("p1",a.getName())
5941 self.assertEqual(1,a.getNumberOfComponents());
5942 self.assertEqual(0,a.getNumberOfTuples());
5945 p2=DataArrayInt.New()
5946 p2.setValues(part2,5,1)
5948 a=m1.keepCellIdsByType(NORM_TRI3,p2);
5949 self.assertEqual("p2",a.getName())
5950 self.assertEqual(1,a.getNumberOfComponents());
5951 self.assertEqual(2,a.getNumberOfTuples());
5952 self.assertEqual(2,a.getIJ(0,0));
5953 self.assertEqual(2,a.getIJ(1,0));
5955 a=m1.keepCellIdsByType(NORM_QUAD4,p2);
5956 self.assertEqual("p2",a.getName())
5957 self.assertEqual(1,a.getNumberOfComponents());
5958 self.assertEqual(3,a.getNumberOfTuples());
5959 self.assertEqual(3,a.getIJ(0,0));
5960 self.assertEqual(0,a.getIJ(1,0));
5961 self.assertEqual(4,a.getIJ(2,0));
5964 def testSwigErrorDaIntSelectByTupleId1(self):
5965 a=DataArrayInt.New();
5966 arr1=[1,11,2,12,3,13,4,14,5,15,6,16,7,17]
5967 a.setValues(arr1,7,2);
5968 a.setInfoOnComponent(0,"toto");
5969 a.setInfoOnComponent(1,"tata");
5972 b=a.selectByTupleId(arr2);
5973 self.assertEqual(5,b.getNumberOfTuples());
5974 self.assertEqual(2,b.getNumberOfComponents());
5975 self.assertTrue(b.getInfoOnComponent(0)=="toto");
5976 self.assertTrue(b.getInfoOnComponent(1)=="tata");
5977 expected1=[5,15,3,13,1,11,7,17,6,16]
5978 self.assertEqual(expected1,b.getValues())
5980 a2=DataArrayInt.New()
5981 a2.setValues(arr2,5,1)
5982 b=a.selectByTupleId(a2);
5983 self.assertEqual(5,b.getNumberOfTuples());
5984 self.assertEqual(2,b.getNumberOfComponents());
5985 self.assertTrue(b.getInfoOnComponent(0)=="toto");
5986 self.assertTrue(b.getInfoOnComponent(1)=="tata");
5987 expected1=[5,15,3,13,1,11,7,17,6,16]
5988 self.assertEqual(expected1,b.getValues())
5991 def testSwigErrorRenum(self):
5992 da=DataArrayDouble.New()
5993 da.setValues([7.,107.,8.,108.,9.,109.,10.,110.,11.,111.,12.,112.,13.,113.,14.,114.,15.,115.,16.,116.],10,2)
5994 d=DataArrayInt.New()
5995 d.setValues([0,2,3,1,4,5,6,8,7,9],10,1)
5996 da.renumberInPlace(d)
6000 def testSwigGetItem1(self):
6001 da=DataArrayInt.New()
6006 da.setInfoOnComponent(0,"X [m]")
6007 da.setInfoOnComponent(1,"Y [m]")
6008 da.setInfoOnComponent(2,"Z [km]")
6010 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())
6012 self.assertEqual([19, 20, 21],da2.getValues())
6015 except InterpKernelException as e:
6016 self.assertTrue(True)
6018 self.assertTrue(False)
6021 self.assertEqual([24, 27, 30, 33, 36, 39, 42, 45, 48],da2.getValues())
6023 self.assertEqual([22, 23, 24, 25, 26, 27, 28, 29, 30],da2.getValues())
6025 self.assertTrue(da2.isEqual(da))
6027 self.assertTrue(da2.isEqual(da))
6030 except InterpKernelException as e:
6031 self.assertTrue(True)
6033 self.assertTrue(False)
6035 self.assertTrue(da[5:8,-2].isEqualWithoutConsideringStr(DataArrayInt([23,26,29])))
6037 self.assertEqual([22, 25, 28],da2.getValues())
6040 except InterpKernelException as e:
6041 self.assertTrue(True)
6043 self.assertTrue(False)
6046 self.assertEqual([],da2.getValues())
6049 def testSwigGetItem2(self):
6050 da=DataArrayDouble.New()
6055 da.setInfoOnComponent(0,"X [m]")
6056 da.setInfoOnComponent(1,"Y [m]")
6057 da.setInfoOnComponent(2,"Z [km]")
6059 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())
6061 self.assertEqual([19., 20., 21],da2.getValues())
6064 except InterpKernelException as e:
6065 self.assertTrue(True)
6067 self.assertTrue(False)
6070 self.assertEqual([24., 27., 30., 33., 36., 39., 42., 45., 48.],da2.getValues())
6072 self.assertEqual([22., 23., 24., 25., 26., 27., 28., 29., 30.],da2.getValues())
6074 self.assertTrue(da2.isEqual(da,1e-12))
6076 self.assertTrue(da2.isEqual(da,1e-12))
6079 except InterpKernelException as e:
6080 self.assertTrue(True)
6082 self.assertTrue(False)
6084 self.assertTrue(da[5:8,-2].isEqualWithoutConsideringStr(DataArrayDouble([23.,26.,29.]),1e-12))
6086 self.assertEqual([22., 25., 28.],da2.getValues())
6089 except InterpKernelException as e:
6090 self.assertTrue(True)
6092 self.assertTrue(False)
6095 self.assertEqual([],da2.getValues())
6098 def testSwigSetItem1(self):
6099 da=DataArrayInt.New()
6103 da.setInfoOnComponent(0,"X [m]") ; da.setInfoOnComponent(1,"Y [km]") ; da.setInfoOnComponent(2,"Y [m]")
6104 da.setInfoOnComponent(3,"Z [W]") ; da.setInfoOnComponent(4,"ZZ [km]") ;
6106 self.assertEqual([7, 8, 3, 10, 11, 12, 13, 3, 15, 16, 17, 18, 3, 20, 21, 22, 23, 3, 25, 26],da.getValues())
6107 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6109 self.assertEqual([7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3, 3, 3, 3, 3, 22, 23, 24, 25, 26],da.getValues())
6110 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6112 self.assertEqual([-1, -1, -1, -1, -1, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, -1, -1, -1, -1, -1],da.getValues())
6113 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6115 self.assertEqual([7, -3, 9, -3, -3, 12, -3, 14, -3, -3, 17, -3, 19, -3, -3, 22, -3, 24, -3, -3],da.getValues())
6116 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6117 da2=DataArrayInt.New() ; da2.setValues([0,2,3],3,1)
6119 self.assertEqual([-7, -7, -7, -7, -7, 12, 13, 14, 15, 16, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7],da.getValues())
6120 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6122 self.assertEqual([7, 8, 9, -7, -7, 12, 13, 14, 15, 16, 17, 18, 19, -7, -7, 22, 23, 24, -7, -7],da.getValues())
6123 # Let's test with DAI right hand side
6124 da1=DataArrayInt.New()
6125 da1.setValues([25,26,27,125,126,127],2,3)
6127 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6129 self.assertEqual([7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 25, 26, 27, 21, 22, 125, 126, 127, 26],da.getValues())
6130 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6131 da[1:,3]=[225,226,227]
6132 self.assertEqual([7, 8, 9, 10, 11, 12, 13, 14, 225, 16, 17, 18, 19, 226, 21, 22, 23, 24, 227, 26],da.getValues())
6133 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6134 da[1,2:]=[225,226,227]
6135 self.assertEqual([7, 8, 9, 10, 11, 12, 13, 225, 226, 227, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26],da.getValues())
6136 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6137 da[da2,-2:]=[88,99,1010,1111,1212,1313]
6138 self.assertEqual([7, 8, 9, 88, 99, 12, 13, 14, 15, 16, 17, 18, 19, 1010, 1111, 22, 23, 24, 1212, 1313],da.getValues())
6139 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6140 da3=DataArrayInt.New(); da3.setValues([88,99,1010,1111,1212,1313],3,2)
6142 self.assertEqual([7, 8, 9, 88, 99, 12, 13, 14, 15, 16, 17, 18, 19, 1010, 1111, 22, 23, 24, 1212, 1313],da.getValues())
6143 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6145 self.assertEqual([88, 8, 99, 10, 11, 12, 13, 14, 15, 16, 1010, 18, 1111, 20, 21, 1212, 23, 1313, 25, 26],da.getValues())
6146 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6148 self.assertEqual([88, 8, 99, 10, 11, 12, 13, 14, 15, 16, 1010, 18, 1111, 20, 21, 1212, 23, 1313, 25, 26],da.getValues())
6149 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6151 self.assertEqual([-8, 8, -8, 10, 11, 12, 13, 14, 15, 16, -8, 18, -8, 20, 21, -8, 23, -8, 25, 26],da.getValues())
6154 def testSwigSetItem2(self):
6155 da=DataArrayDouble.New()
6159 da.setInfoOnComponent(0,"X [m]") ; da.setInfoOnComponent(1,"Y [km]") ; da.setInfoOnComponent(2,"Y [m]")
6160 da.setInfoOnComponent(3,"Z [W]") ; da.setInfoOnComponent(4,"ZZ [km]") ;
6162 self.assertEqual([7., 8., 3., 10., 11., 12., 13., 3., 15., 16., 17., 18., 3., 20., 21., 22., 23., 3., 25., 26.],da.getValues())
6163 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6165 self.assertEqual([7., 8., 9., 10., 11., 12., 13., 14., 15., 16., 3., 3., 3., 3., 3., 22., 23., 24., 25., 26.],da.getValues())
6166 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6168 self.assertEqual([-1., -1., -1., -1., -1., 12., 13., 14., 15., 16., 17., 18., 19., 20., 21., -1., -1., -1., -1., -1.],da.getValues())
6169 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6171 self.assertEqual([7., -3., 9., -3., -3., 12., -3., 14., -3., -3., 17., -3., 19., -3., -3., 22., -3., 24., -3., -3.],da.getValues())
6172 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6173 da2=DataArrayInt.New() ; da2.setValues([0,2,3],3,1)
6175 self.assertEqual([-7., -7., -7., -7., -7., 12., 13., 14., 15., 16., -7., -7., -7., -7., -7., -7., -7., -7., -7., -7.],da.getValues())
6176 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6178 self.assertEqual([7., 8., 9., -7., -7., 12., 13., 14., 15., 16., 17., 18., 19., -7., -7., 22., 23., 24., -7., -7.],da.getValues())
6179 # Let's test with DAI right hand side
6180 da1=DataArrayDouble.New()
6181 da1.setValues([25,26,27,125,126,127],2,3)
6183 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6185 self.assertEqual([7., 8., 9., 10., 11., 12., 13., 14., 15., 16., 17., 25., 26., 27., 21., 22., 125., 126., 127., 26.],da.getValues())
6186 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6187 da[1:,3]=[225.,226.,227.]
6188 self.assertEqual([7., 8., 9., 10., 11., 12., 13., 14., 225., 16., 17., 18., 19., 226., 21., 22., 23., 24., 227., 26.],da.getValues())
6189 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6190 da[1,2:]=[225,226,227]
6191 self.assertEqual([7., 8., 9., 10., 11., 12., 13., 225., 226., 227., 17., 18., 19., 20., 21., 22., 23., 24., 25., 26.],da.getValues())
6192 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6193 da[da2,-2:]=[88,99,1010,1111,1212,1313]
6194 self.assertEqual([7., 8., 9., 88., 99., 12., 13., 14., 15., 16., 17., 18., 19., 1010., 1111., 22., 23., 24., 1212., 1313.],da.getValues())
6195 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6196 da3=DataArrayDouble.New(); da3.setValues([88,99,1010,1111,1212,1313],3,2)
6198 self.assertEqual([7., 8., 9., 88., 99., 12., 13., 14., 15., 16., 17., 18., 19., 1010., 1111., 22., 23., 24., 1212., 1313.],da.getValues())
6199 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6201 self.assertEqual([88., 8., 99., 10., 11., 12., 13., 14., 15., 16., 1010., 18., 1111., 20., 21., 1212., 23., 1313., 25., 26.],da.getValues())
6202 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6204 self.assertEqual([88., 8., 99., 10., 11., 12., 13., 14., 15., 16., 1010., 18., 1111., 20., 21., 1212., 23., 1313., 25., 26.],da.getValues())
6205 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6207 self.assertEqual([-8., 8., -8., 10., 11., 12., 13., 14., 15., 16., -8., 18., -8., 20., 21., -8., 23., -8., 25., 26.],da.getValues())
6210 def testSwigDADOp(self):
6211 da=DataArrayDouble.New()
6214 da1=DataArrayDouble.New()
6218 self.assertEqual([15., 17., 19., 21., 23., 25., 27., 29., 31., 33., 35., 37.],da2.getValues())
6221 self.assertTrue(da2.isEqual(da3,1e-12))
6223 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())
6225 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())
6227 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())
6229 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())
6231 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())
6233 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())
6236 self.assertTrue(da4.isUniform(1.,1e-12))
6237 st1=da.getHiddenCppPointer()
6239 st2=da.getHiddenCppPointer()
6240 self.assertEqual(st1,st2)
6241 self.assertTrue(da.isEqual(da1,1e-12))
6243 st2=da.getHiddenCppPointer()
6244 self.assertEqual(st1,st2)
6245 self.assertEqual(range(12),da.getValues())
6247 st2=da.getHiddenCppPointer()
6248 self.assertEqual(st1,st2)
6249 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())
6251 st2=da.getHiddenCppPointer()
6252 self.assertEqual(st1,st2)
6253 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())
6255 st2=da.getHiddenCppPointer()
6256 self.assertEqual(st1,st2)
6257 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())
6259 self.assertEqual(st1,st2)
6260 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())
6262 st2=da.getHiddenCppPointer()
6263 self.assertEqual(st1,st2)
6264 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())
6266 da5=DataArrayDouble.New()
6267 da5.setValues([5.,4.,3.,2.],4,1)
6268 da*=da5 # it works with unmathing number of compo
6269 st2=da.getHiddenCppPointer()
6270 self.assertEqual(st1,st2)
6271 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())
6276 ids=DataArrayInt.New()
6277 ids.setValues([3,4,7],3,1)
6278 da[ids,:]=[5.,8.,9.]
6279 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())
6281 da.rearrange(1) ; da.iota(7) ; da.rearrange(3)
6283 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())
6286 def testSwigDAIOp(self):
6287 da=DataArrayInt.New()
6290 da1=DataArrayInt.New()
6294 self.assertEqual([15,17,19,21,23,25,27,29,31,33,35,37],da2.getValues())
6297 self.assertTrue(da2.isEqual(da3))
6299 self.assertEqual([6,7,8,9,10,11,12,13,14,15,16,17],da2.getValues())
6301 self.assertEqual([-6,-7,-8,-9,-10,-11,-12,-13,-14,-15,-16,-17],da2.getValues())
6303 self.assertEqual([21,24,27,30,33,36,39,42,45,48,51,54.0],da2.getValues())
6305 self.assertEqual([21,24,27,30,33,36,39,42,45,48,51,54.0],da2.getValues())
6307 self.assertEqual([56,72,90,110,132,156,182,210,240,272,306,342.0],da2.getValues())
6309 self.assertEqual([1,2,2,2,2,3,3,3,3,4,4,4],da2.getValues())
6312 self.assertTrue(da4.isUniform(0))
6313 st1=da.getHiddenCppPointer()
6315 st2=da.getHiddenCppPointer()
6316 self.assertEqual(st1,st2)
6317 self.assertTrue(da.isEqual(da1))
6319 st2=da.getHiddenCppPointer()
6320 self.assertEqual(st1,st2)
6321 self.assertEqual(range(12),da.getValues())
6323 st2=da.getHiddenCppPointer()
6324 self.assertEqual(st1,st2)
6325 self.assertEqual([8,10,12,14,16,18,20,22,24,26,28,30],da.getValues())
6327 st2=da.getHiddenCppPointer()
6328 self.assertEqual(st1,st2)
6329 self.assertEqual([4,5,6,7,8,9,10,11,12,13,14,15],da.getValues())
6331 st2=da.getHiddenCppPointer()
6332 self.assertEqual(st1,st2)
6333 self.assertEqual([32,45,60,77,96,117,140,165,192,221,252,285],da.getValues())
6335 self.assertEqual(st1,st2)
6336 self.assertEqual([4,5,6,7,8,9,10,11,12,13,14,15],da.getValues())
6338 st2=da.getHiddenCppPointer()
6339 self.assertEqual(st1,st2)
6340 self.assertEqual([2,2, 3,3, 4,4, 5,5, 6,6, 7,7],da.getValues())
6342 da5=DataArrayInt.New()
6343 da5.setValues([5,4,3,2],4,1)
6344 da*=da5 # it works with unmathing number of compo
6345 st2=da.getHiddenCppPointer()
6346 self.assertEqual(st1,st2)
6347 self.assertEqual([10,10, 15,12,16,16,15,15, 18,12,14,14],da.getValues())
6349 st2=da.getHiddenCppPointer()
6350 self.assertEqual(st1,st2)
6351 self.assertEqual([4,4,3,0,4,4,3,3,0,0,2,2],da.getValues())
6356 ids=DataArrayInt.New()
6357 ids.setValues([3,4,7],3,1)
6359 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())
6361 da.rearrange(1) ; da.iota(7) ; da.rearrange(3)
6363 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())
6366 def testSwigDAIOp2(self):
6367 da=DataArrayInt.New()
6368 st=da.getHiddenCppPointer()
6378 self.assertEqual(st,da.getHiddenCppPointer())
6379 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])
6382 def testSwigDAIOp3(self):
6383 da=DataArrayInt.New()
6384 self.assertRaises(InterpKernelException,da.__len__)
6385 self.assertRaises(InterpKernelException,da.__int__)
6387 self.assertTrue(False)
6390 da.rearrange(1) ; da.fillWithZero()
6392 self.assertEqual(36,len(da));
6395 self.assertRaises(InterpKernelException,tmp.__int__)
6396 self.assertEqual(12,len(da));
6398 for elt in enumerate(l):
6401 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]
6402 self.assertEqual(ref,da.getValues());
6404 l=[int(elt) for elt in l1]
6405 self.assertEqual(ref,da.getValues());
6406 self.assertEqual(11,int(da[-1:]))
6409 def testSwigDADOp3(self):
6410 da=DataArrayDouble.New()
6411 self.assertRaises(InterpKernelException,da.__len__)
6412 self.assertRaises(InterpKernelException,da.__float__)
6414 self.assertTrue(False)
6417 da.rearrange(1) ; da.fillWithZero()
6419 self.assertEqual(36,len(da));
6422 self.assertRaises(InterpKernelException,tmp.__float__)
6423 self.assertEqual(12,len(da));
6425 for elt in enumerate(l):
6428 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.]
6429 self.assertEqual(ref,da.getValues());
6431 l=[float(elt) for elt in l1]
6432 self.assertEqual(ref,da.getValues());
6433 self.assertEqual(11.,float(da[-1:]))
6436 def testSwigDataArrayIntIterator1(self):
6437 da=DataArrayInt.New()
6441 # __getitem__ testing
6446 self.assertEqual([3, 4, 6, 7, 9, 10, 12, 13],li)
6451 self.assertEqual([4, 7, 10, 13],li)
6456 self.assertEqual([4, 3, 2, 7, 6, 5, 10, 9, 8, 13, 12, 11],li)
6457 # __setitem__ testing
6459 da2=DataArrayInt.New()
6469 self.assertTrue(da.isEqual(da2))
6477 self.assertTrue(da.isUniform(5))
6484 self.assertEqual([8, 9, 12, 8, 9, 12, 8, 9, 12, 8, 9, 12],da.getValues())
6491 self.assertEqual([2, 3, 7, 5, 6, 7, 8, 9, 7, 11, 12, 7],da.getValues())
6494 def testSwigDataArrayDoubleIterator1(self):
6495 da=DataArrayDouble.New()
6499 # __getitem__ testing
6504 self.assertEqual([3, 4, 6, 7, 9, 10, 12, 13],li)
6509 self.assertEqual([4, 7, 10, 13],li)
6514 self.assertEqual([4, 3, 2, 7, 6, 5, 10, 9, 8, 13, 12, 11],li)
6515 # __setitem__ testing
6517 da2=DataArrayDouble.New()
6527 self.assertTrue(da.isEqual(da2,1e-12))
6535 self.assertTrue(da.isUniform(5,1e-12))
6542 self.assertEqual([8, 9, 12, 8, 9, 12, 8, 9, 12, 8, 9, 12],da.getValues())
6549 self.assertEqual([2, 3, 7, 5, 6, 7, 8, 9, 7, 11, 12, 7],da.getValues())
6552 def testSwigUMeshIterator1(self):
6553 m=MEDCouplingDataForTest.build2DTargetMesh_1()
6557 li1+=cell.getAllConn()[1:]
6558 li2+=[cell.getType()]
6560 self.assertEqual(li1,[0, 3, 4, 1, 1, 4, 2, 4, 5, 2, 6, 7, 4, 3, 7, 8, 5, 4])
6561 self.assertEqual(li2,[4, 3, 3, 4, 4])
6564 def testSwigUMeshIterator2(self):
6565 m=MEDCouplingDataForTest.build2DTargetMesh_1()
6566 self.assertRaises(InterpKernelException,m.cellsByType);
6567 m.rearrange2ConsecutiveCellTypes()
6571 for cellsByType in m.cellsByType():
6572 li1.append(cellsByType.getType())
6573 li2.append(cellsByType.getNumberOfElems())
6575 for cell in cellsByType:
6578 t[1]=cell.getAllConn()[1:]
6583 self.assertEqual(li1,[4, 3])
6584 self.assertEqual(li2,[3, 2])
6585 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)]]])
6588 def testDAIAggregateMulti1(self):
6589 a=DataArrayInt.New()
6590 a.setValues(range(4),2,2)
6592 b=DataArrayInt.New()
6593 b.setValues(range(6),3,2)
6594 c=DataArrayInt.Aggregate([a,b])
6595 self.assertEqual(range(4)+range(6),c.getValues())
6596 self.assertEqual("aa",c.getName())
6597 self.assertEqual(5,c.getNumberOfTuples())
6598 self.assertEqual(2,c.getNumberOfComponents())
6601 def testMergeUMeshes2(self):
6602 m1=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
6603 m2=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
6604 m3=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
6607 m2_2=m2.buildPartOfMySelf(vec1,False);
6609 m3_2=m3.buildPartOfMySelf(vec2,False);
6613 self.assertRaises(InterpKernelException,MEDCouplingUMesh.MergeUMeshes,ms+[None]);
6614 self.assertRaises(InterpKernelException,MEDCouplingUMesh.MergeUMeshes,ms+[3.4])
6615 m4=MEDCouplingUMesh.MergeUMeshes(ms);
6616 m4.checkCoherency();
6617 self.assertEqual(10,m4.getNumberOfCells());
6618 self.assertEqual(20,m4.getNumberOfNodes());
6619 self.assertEqual(45,m4.getMeshLength());
6620 m4bis=MEDCouplingMesh.MergeMeshes(ms);
6621 self.assertTrue(m4.isEqual(m4bis,1e-12))
6625 m4_1=m4.buildPartOfMySelf(vec3,False);
6626 m4_1.setName(m1.getName());
6627 self.assertTrue(m4_1.isEqual(m1,1e-12));
6630 m4_2=m4.buildPartOfMySelf(vec4,False);
6631 cellCor,nodeCor=m4_2.checkGeoEquivalWith(m2_2,10,1e-12);
6634 m4_3=m4.buildPartOfMySelf(vec5,False);
6635 self.assertEqual(2,m4_3.getNumberOfCells());
6636 self.assertEqual(3,m4_3.getNumberOfNodes());
6638 m4_3.setName(m3_2.getName());
6639 self.assertTrue(m4_3.isEqual(m3_2,1e-12));
6643 def testBuild0DMeshFromCoords1(self):
6644 sourceCoords=[-0.3,-0.3,0., 0.7,-0.3,0., -0.3,0.7,0., 0.7,0.7,0.]
6645 coo=DataArrayDouble.New();
6646 coo.setValues(sourceCoords,4,3);
6647 coo.setName("My0D");
6648 m=MEDCouplingUMesh.Build0DMeshFromCoords(coo);
6650 self.assertEqual(4,m.getNumberOfNodes());
6651 self.assertEqual(4,m.getNumberOfCells());
6652 self.assertEqual(3,m.getSpaceDimension());
6653 self.assertEqual(0,m.getMeshDimension());
6654 types1=m.getAllGeoTypes();
6655 self.assertEqual([NORM_POINT1],types1);
6657 conn=m.getNodeIdsOfCell(i);
6658 self.assertEqual([i],conn);
6659 self.assertTrue(NORM_POINT1==m.getTypeOfCell(i));
6661 self.assertEqual(m.getName(),"My0D");
6664 def testDescriptionInMeshTimeUnit1(self):
6666 m=MEDCouplingDataForTest.build2DTargetMesh_1();
6667 m.setDescription(text1);
6668 self.assertEqual(m.getDescription(),text1);
6670 self.assertTrue(m.isEqual(m2,1e-12));
6671 self.assertEqual(m2.getDescription(),text1);
6672 m2.setDescription("ggg");
6673 self.assertTrue(not m.isEqual(m2,1e-12));
6675 f=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
6676 f.setTimeUnit(text1);
6677 self.assertEqual(f.getTimeUnit(),text1);
6679 self.assertEqual(f2.getTimeUnit(),text1);
6683 def testMultiFields1(self):
6684 mfs=MEDCouplingDataForTest.buildMultiFields_1();
6686 dms,refs=mfs.getDifferentMeshes()
6687 das=mfs.getArrays();
6688 das2,refs2=mfs.getDifferentArrays()
6689 self.assertEqual(5,len(mfs.getFields()))
6690 self.assertEqual(1,len(mfs.getFields()[0].getArrays()));
6691 self.assertEqual(2,len(mfs.getFields()[1].getArrays()));
6692 self.assertEqual(1,len(mfs.getFields()[2].getArrays()));
6693 self.assertEqual(1,len(mfs.getFields()[3].getArrays()));
6694 self.assertEqual(1,len(mfs.getFields()[4].getArrays()));
6695 self.assertEqual(5,len(ms));
6696 self.assertEqual(2,len(dms));
6697 self.assertEqual(6,len(das));
6698 self.assertEqual(5,len(das2));
6700 self.assertTrue(mfs.isEqual(mfs2,1e-12,1e-12))
6703 def testFieldOverTime1(self):
6704 fs=MEDCouplingDataForTest.buildMultiFields_2();
6705 self.assertRaises(InterpKernelException,MEDCouplingFieldOverTime.New,fs);
6706 f4bis=fs[4].buildNewTimeReprFromThis(ONE_TIME,False);
6708 self.assertRaises(InterpKernelException,MEDCouplingFieldOverTime.New,fs);
6709 f4bis.setTime(2.7,20,21);
6710 fot=MEDCouplingFieldOverTime.New(fs);
6711 dt=fot.getDefinitionTimeZone();
6712 hs=dt.getHotSpotsTime();
6713 self.assertEqual(6,len(hs));
6714 expected1=[0.2,0.7,1.2,1.35,1.7,2.7]
6716 self.assertAlmostEqual(expected1[i],hs[i],12);
6718 meshId,arrId,arrIdInField,fieldId=dt.getIdsOnTimeRight(0.2);
6719 self.assertEqual(0,meshId);
6720 self.assertEqual(0,arrId);
6721 self.assertEqual(0,arrIdInField);
6722 self.assertEqual(0,fieldId);
6724 meshId,arrId,arrIdInField,fieldId=dt.getIdsOnTimeRight(0.7);
6725 self.assertEqual(0,meshId);
6726 self.assertEqual(1,arrId);
6727 self.assertEqual(0,arrIdInField);
6728 self.assertEqual(1,fieldId);
6730 meshId,arrId,arrIdInField,fieldId=dt.getIdsOnTimeLeft(1.2);#**** WARNING left here
6731 self.assertEqual(0,meshId);
6732 self.assertEqual(2,arrId);
6733 self.assertEqual(1,arrIdInField);
6734 self.assertEqual(1,fieldId);
6736 meshId,arrId,arrIdInField,fieldId=dt.getIdsOnTimeRight(1.2);#**** WARNING right again here
6737 self.assertEqual(1,meshId);
6738 self.assertEqual(3,arrId);
6739 self.assertEqual(0,arrIdInField);
6740 self.assertEqual(2,fieldId);
6742 meshId,arrId,arrIdInField,fieldId=dt.getIdsOnTimeRight(1.35);
6743 self.assertEqual(1,meshId);
6744 self.assertEqual(3,arrId);
6745 self.assertEqual(0,arrIdInField);
6746 self.assertEqual(2,fieldId);
6748 meshId,arrId,arrIdInField,fieldId=dt.getIdsOnTimeRight(1.7);
6749 self.assertEqual(0,meshId);
6750 self.assertEqual(3,arrId);
6751 self.assertEqual(0,arrIdInField);
6752 self.assertEqual(3,fieldId);
6754 meshId,arrId,arrIdInField,fieldId=dt.getIdsOnTimeRight(2.7);
6755 self.assertEqual(1,meshId);
6756 self.assertEqual(4,arrId);
6757 self.assertEqual(0,arrIdInField);
6758 self.assertEqual(4,fieldId);
6760 dt2=MEDCouplingDefinitionTime();
6761 self.assertTrue(not dt2.isEqual(dt));
6763 dt2.assign(dt);#to check memory management
6764 self.assertTrue(dt2.isEqual(dt));
6766 dt3=MEDCouplingDefinitionTime();
6770 def testDAICheckAndPreparePermutation1(self):
6771 vals1=[9,10,0,6,4,11,3,7];
6772 expect1=[5,6,0,3,2,7,1,4];
6773 vals2=[9,10,0,6,10,11,3,7];
6774 da=DataArrayInt.New();
6775 da.setValues(vals1,8,1);
6776 da2=da.checkAndPreparePermutation();
6777 self.assertEqual(8,da2.getNumberOfTuples());
6778 self.assertEqual(1,da2.getNumberOfComponents());
6780 self.assertEqual(expect1[i],da2.getIJ(i,0));
6783 da=DataArrayInt.New();
6786 da2=da.checkAndPreparePermutation();
6787 self.assertEqual(8,da2.getNumberOfTuples());
6788 self.assertEqual(1,da2.getNumberOfComponents());
6789 self.assertTrue(da2.isIdentity());
6791 da=DataArrayInt.New();
6793 da.setValues(vals2,8,1);
6794 self.assertRaises(InterpKernelException,da.checkAndPreparePermutation);
6797 def testDAIChangeSurjectiveFormat1(self):
6798 vals1=[0,3,2,3,2,2,1,2]
6799 expected1=[0,1,2,6,8]
6800 expected2=[0, 6, 2,4,5,7, 1,3]
6801 da=DataArrayInt.New();
6802 da.setValues(vals1,8,1);
6804 da2,da2I=da.changeSurjectiveFormat(4);
6805 self.assertEqual(5,da2I.getNumberOfTuples());
6806 self.assertEqual(8,da2.getNumberOfTuples());
6807 self.assertEqual(expected1,da2I.getValues());
6808 self.assertEqual(expected2,da2.getValues());
6810 self.assertRaises(InterpKernelException,da.changeSurjectiveFormat,3);
6814 def testUMeshGetCellIdsLyingOnNodes1(self):
6815 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
6816 nodeIds1=[1,2,3,4,6]
6818 da=m.getCellIdsLyingOnNodes(nodeIds1,True);
6819 self.assertEqual(1,da.getNumberOfTuples());
6820 self.assertEqual(1,da.getNumberOfComponents());
6821 self.assertEqual(1,da.getIJ(0,0));
6822 da2=DataArrayInt.New()
6823 da2.setValues(nodeIds2,2,1)
6824 da=m.getCellIdsLyingOnNodes(da2,False);
6825 self.assertEqual(2,da.getNumberOfTuples());
6826 self.assertEqual(1,da.getNumberOfComponents());
6827 self.assertEqual(3,da.getIJ(0,0));
6828 self.assertEqual(4,da.getIJ(1,0));
6831 def testUMeshFindCellIdsOnBoundary1(self):
6832 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
6833 da5=m.findCellIdsOnBoundary();
6834 self.assertEqual(5,da5.getNumberOfTuples());
6835 self.assertTrue(da5.isIdentity());
6838 def testMeshSetTime1(self):
6839 m1=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
6840 m2=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
6842 self.assertTrue(m1.isEqual(m2,1e-12));
6843 m1.setTime(3.14,6,7);
6844 tmp3,tmp1,tmp2=m1.getTime();
6845 self.assertEqual(6,tmp1);
6846 self.assertEqual(7,tmp2);
6847 self.assertAlmostEqual(3.14,tmp3,12);
6848 self.assertTrue(not m1.isEqual(m2,1e-12));
6849 m2.setTime(3.14,6,7);
6850 self.assertTrue(m1.isEqual(m2,1e-12));
6851 m1.setTimeUnit("ms");
6852 self.assertTrue(m1.getTimeUnit()=="ms");
6853 m1.setTimeUnit("us");
6854 self.assertTrue(m1.getTimeUnit()=="us");
6855 self.assertTrue(not m1.isEqual(m2,1e-12));
6856 m2.setTimeUnit("us");
6857 self.assertTrue(m1.isEqual(m2,1e-12));
6858 m2.setTime(3.14,6,8);
6859 self.assertTrue(not m1.isEqual(m2,1e-12));
6860 m2.setTime(3.14,7,7);
6861 self.assertTrue(not m1.isEqual(m2,1e-12));
6862 m2.setTime(3.15,6,7);
6863 self.assertTrue(not m1.isEqual(m2,1e-12));
6865 m1.setTime(10.34,55,12);
6867 self.assertTrue(m1.isEqual(m3,1e-12));
6868 tmp3,tmp1,tmp2=m3.getTime();
6869 self.assertEqual(55,tmp1);
6870 self.assertEqual(12,tmp2);
6871 self.assertAlmostEqual(10.34,tmp3,12);
6875 a=DataArrayDouble.New();
6876 a.setValues(coo1,4,1);
6877 b=MEDCouplingCMesh.New();
6880 b.setTime(5.67,8,100);
6881 tmp3,tmp1,tmp2=b.getTime();
6882 self.assertEqual(8,tmp1);
6883 self.assertEqual(100,tmp2);
6884 self.assertAlmostEqual(5.67,tmp3,12);
6886 self.assertTrue(c.isEqual(b,1e-12));
6887 tmp3,tmp1,tmp2=c.getTime();
6888 self.assertEqual(8,tmp1);
6889 self.assertEqual(100,tmp2);
6890 self.assertAlmostEqual(5.67,tmp3,12);
6893 def testApplyFuncTwo1(self):
6894 m1=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
6895 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
6898 vals=[1.,11.,21.,2.,12.,22.,3.,13.,23.,4.,14.,24.,5.,15.,25.]
6899 da=DataArrayDouble.New();
6900 da.setValues(vals,5,3);
6903 self.assertRaises(InterpKernelException,da.applyFunc2,1,"y+z");
6904 da.setInfoOnComponent(0,"x [m]");
6905 da.setInfoOnComponent(1,"y [mm]");
6906 da.setInfoOnComponent(2,"z [km]");
6908 self.assertRaises(InterpKernelException, da.applyFunc2, 1, "x+y+zz+zzz");
6909 self.assertRaises(InterpKernelException, da.applyFunc2, 1, "toto(x+y)");
6910 self.assertRaises(InterpKernelException, da.applyFunc2, 1, "x/0");
6912 da2=da.applyFunc2(1,"y+z");
6913 self.assertEqual(1,da2.getNumberOfComponents());
6914 self.assertEqual(5,da2.getNumberOfTuples());
6915 expected1=[32.,34.,36.,38.,40.]
6917 self.assertAlmostEqual(expected1[i],da2.getIJ(0,i),12);
6919 da2=da.applyFunc(1,"y+z");
6920 expected2=[12.,14.,16.,18.,20.]
6922 self.assertAlmostEqual(expected2[i],da2.getIJ(0,i),12);
6925 self.assertEqual(3,f1.getNumberOfComponents());
6926 self.assertEqual(5,f1.getNumberOfTuples());
6927 f1.applyFunc2(1,"y+z");
6928 self.assertEqual(1,f1.getNumberOfComponents());
6929 self.assertEqual(5,f1.getNumberOfTuples());
6931 self.assertAlmostEqual(expected1[i],f1.getArray().getIJ(0,i),12);
6936 def testApplyFuncThree1(self):
6937 m1=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
6938 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
6941 vals=[1.,11.,21.,2.,12.,22.,3.,13.,23.,4.,14.,24.,5.,15.,25.]
6942 da=DataArrayDouble.New();
6943 da.setValues(vals,5,3);
6947 vs[0]="x"; vs[1]="Y"; vs[2]="z";
6948 self.assertRaises(InterpKernelException, da.applyFunc3, 1, vs, "y+z");
6949 self.assertRaises(InterpKernelException, da.applyFunc3, 1, vs, "x+Y+z+zz+zzz");
6950 self.assertRaises(InterpKernelException, da.applyFunc3, 1, vs, "x/0");
6952 da2=da.applyFunc3(1,vs,"y+z");
6953 expected1=[32.,34.,36.,38.,40.]
6955 self.assertAlmostEqual(expected1[i],da2.getIJ(0,i),12);
6957 self.assertRaises(InterpKernelException, da.applyFunc3, 1, ["x","y","z","a"],"x+a")
6959 self.assertEqual(3,f1.getNumberOfComponents());
6960 self.assertEqual(5,f1.getNumberOfTuples());
6961 f1.applyFunc3(1,vs,"y+z");
6962 self.assertEqual(1,f1.getNumberOfComponents());
6963 self.assertEqual(5,f1.getNumberOfTuples());
6965 self.assertAlmostEqual(expected1[i],f1.getArray().getIJ(0,i),12);
6969 def testFillFromAnalyticTwo1(self):
6970 m1=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
6971 m1.setTime(3.4,5,6); m1.setTimeUnit("us");
6972 self.assertRaises(InterpKernelException,m1.fillFromAnalytic2,ON_NODES,1,"y+z");
6973 m1.getCoords().setInfoOnComponent(0,"x [m]");
6974 m1.getCoords().setInfoOnComponent(1,"y");
6975 m1.getCoords().setInfoOnComponent(2,"z");
6976 f1=m1.fillFromAnalytic2(ON_NODES,1,"y+z");
6977 self.assertAlmostEqual(3.4,f1.getTime()[0],12) ; self.assertEqual(5,f1.getTime()[1]) ; self.assertEqual(6,f1.getTime()[2])
6978 self.assertEqual("us",f1.getTimeUnit())
6979 self.assertEqual(1,f1.getNumberOfComponents());
6980 self.assertEqual(9,f1.getNumberOfTuples());
6981 expected1=[0.2, 0.7, 1.2, 0.7, 1.2, 1.7, 1.2, 1.7, 2.2]
6983 self.assertAlmostEqual(expected1[i],f1.getArray().getIJ(0,i),12);
6987 def testFillFromAnalyticThree1(self):
6988 m1=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
6989 m1.setTime(3.4,5,6); m1.setTimeUnit("us");
6991 vs[0]="x"; vs[1]="Y"; vs[2]="z";
6992 self.assertRaises(InterpKernelException,m1.fillFromAnalytic3,ON_NODES,1,vs,"y+z");
6994 f1=m1.fillFromAnalytic3(ON_NODES,1,vs,"y+z");
6995 self.assertAlmostEqual(3.4,f1.getTime()[0],12) ; self.assertEqual(5,f1.getTime()[1]) ; self.assertEqual(6,f1.getTime()[2])
6996 self.assertEqual("us",f1.getTimeUnit())
6997 self.assertEqual(1,f1.getNumberOfComponents());
6998 self.assertEqual(9,f1.getNumberOfTuples());
6999 expected1=[0.2, 0.7, 1.2, 0.7, 1.2, 1.7, 1.2, 1.7, 2.2]
7001 self.assertAlmostEqual(expected1[i],f1.getArray().getIJ(0,i),12);
7005 def testDAUnitVar1(self):
7006 da=DataArrayDouble.New();
7008 da.setInfoOnComponent(0,"XPS [m]");
7009 st1=da.getVarOnComponent(0);
7010 self.assertTrue(st1=="XPS");
7011 st2=da.getUnitOnComponent(0);
7012 self.assertTrue(st2=="m");
7014 da.setInfoOnComponent(0,"XPS [m]");
7015 st1=da.getVarOnComponent(0);
7016 self.assertTrue(st1=="XPS");
7017 st2=da.getUnitOnComponent(0);
7018 self.assertTrue(st2=="m");
7020 da.setInfoOnComponent(0,"XPP [m]");
7021 st1=da.getVarOnComponent(0);
7022 self.assertTrue(st1=="XPP");
7023 st2=da.getUnitOnComponent(0);
7024 self.assertTrue(st2=="m");
7026 da.setInfoOnComponent(0,"XPP kdep kefer [ m ]");
7027 st1=da.getVarOnComponent(0);
7028 self.assertTrue(st1=="XPP kdep kefer");
7029 st2=da.getUnitOnComponent(0);
7030 self.assertTrue(st2==" m ");
7032 da.setInfoOnComponent(0," XPP k[ dep k]efer [ m^ 2/s^3*kJ ]");
7033 st1=da.getVarOnComponent(0);
7034 self.assertTrue(st1==" XPP k[ dep k]efer");
7035 st2=da.getUnitOnComponent(0);
7036 self.assertTrue(st2==" m^ 2/s^3*kJ ");
7038 da.setInfoOnComponent(0," XPP kefer ");
7039 st1=da.getVarOnComponent(0);
7040 self.assertTrue(st1==" XPP kefer ");
7041 st2=da.getUnitOnComponent(0);
7042 self.assertTrue(st2=="");
7044 da.setInfoOnComponent(0,"temperature( bof)");
7045 st1=da.getVarOnComponent(0);
7046 self.assertTrue(st1=="temperature( bof)");
7047 st2=da.getUnitOnComponent(0);
7048 self.assertTrue(st2=="");
7050 da.setInfoOnComponent(0,"kkk [m]");
7051 da.setInfoOnComponent(1,"ppp [m^2/kJ]");
7052 da.setInfoOnComponent(2,"abcde [MW/s]");
7054 vs=da.getVarsOnComponent();
7055 self.assertEqual(3,len(vs));
7056 self.assertTrue(vs[0]=="kkk");
7057 self.assertTrue(vs[1]=="ppp");
7058 self.assertTrue(vs[2]=="abcde");
7059 vs=da.getUnitsOnComponent();
7060 self.assertEqual(3,len(vs));
7061 self.assertTrue(vs[0]=="m");
7062 self.assertTrue(vs[1]=="m^2/kJ");
7063 self.assertTrue(vs[2]=="MW/s");
7066 def testGaussCoordinates1(self):
7067 #Testing 1D cell types
7068 m1=MEDCouplingDataForTest.build1DMultiTypes_1();
7069 f=MEDCouplingFieldDouble.New(ON_GAUSS_PT,ONE_TIME);
7074 f.setGaussLocalizationOnType(NORM_SEG2,refCoo1,gsCoo1,wg1);
7077 refCoo2=[-1.0,1.0,0.0];
7078 f.setGaussLocalizationOnType(NORM_SEG3,refCoo2,gsCoo2,wg2);
7080 resToTest=f.getLocalizationOfDiscr();
7081 self.assertEqual(3,resToTest.getNumberOfComponents());
7082 self.assertEqual(2,resToTest.getNumberOfTuples());
7083 expected1=[0.6,0.6,0.6, 0.6,0.6,0.6]
7085 self.assertAlmostEqual(expected1[i],resToTest.getIJ(0,i),14);
7088 #Testing 2D cell types
7089 m2=MEDCouplingDataForTest.build2DMultiTypes_1();
7090 f=MEDCouplingFieldDouble.New(ON_GAUSS_PT,ONE_TIME);
7093 tria3CooGauss=[ 0.1, 0.8, 0.2, 0.7 ]
7094 gsCoo3=tria3CooGauss
7095 tria3CooRef=[ 0.0, 0.0, 1.0 , 0.0, 0.0, 1.0 ]
7096 refCoo3=tria3CooRef;
7097 f.setGaussLocalizationOnType(NORM_TRI3,refCoo3,gsCoo3,wg3);
7099 tria6CooGauss=[ 0.3, 0.2, 0.2, 0.1, 0.2, 0.4 ]
7100 gsCoo4=tria6CooGauss;
7101 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]
7102 refCoo4=tria6CooRef;
7103 f.setGaussLocalizationOnType(NORM_TRI6,refCoo4,gsCoo4,wg4);
7104 wg5=[0.3,0.3,0.3,0.3];
7105 quad4CooGauss=[ 0.3, 0.2, 0.2, 0.1, 0.2, 0.4, 0.15, 0.27 ]
7106 gsCoo5=quad4CooGauss;
7107 quad4CooRef=[-1.0, 1.0, -1.0, -1.0, 1.0, -1.0, 1.0, 1.0]
7108 refCoo5=quad4CooRef;
7109 f.setGaussLocalizationOnType(NORM_QUAD4,refCoo5,gsCoo5,wg5);
7110 wg6=[0.3,0.3,0.3,0.3];
7111 quad8CooGauss=[ 0.34, 0.16, 0.21, 0.3, 0.23, 0.4, 0.14, 0.37 ]
7112 gsCoo6=quad8CooGauss;
7113 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]
7114 refCoo6=quad8CooRef;
7115 f.setGaussLocalizationOnType(NORM_QUAD8,refCoo6,gsCoo6,wg6);
7117 resToTest=f.getLocalizationOfDiscr();
7118 self.assertEqual(3,resToTest.getNumberOfComponents());
7119 self.assertEqual(13,resToTest.getNumberOfTuples());#2+3+4+4 gauss points for resp TRI3,TRI6,QUAD4,QUAD8
7120 expected2=[5.1,1.55,0.0, 4.7,1.65,0.0,
7121 2.32,1.52,0.0, 1.6,1.32,0.0, 3.52,1.26,0.0,#TRI6
7122 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
7123 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
7124 for i in xrange(39):
7125 self.assertAlmostEqual(expected2[i],resToTest.getIJ(0,i),14);
7128 #Testing 3D cell types
7129 m3=MEDCouplingDataForTest.build3DMultiTypes_1();
7130 f=MEDCouplingFieldDouble.New(ON_GAUSS_PT,ONE_TIME);
7134 tetra4CooGauss=[0.34, 0.16, 0.21]
7135 gsCoo7=tetra4CooGauss;
7136 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]
7137 refCoo7=tetra4CooRef;
7138 f.setGaussLocalizationOnType(NORM_TETRA4,refCoo7,gsCoo7,wg7);
7140 tetra10CooGauss=[0.2, 0.3, 0.1]
7141 gsCoo8=tetra10CooGauss;
7142 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]
7143 refCoo8=tetra10CooRef;
7144 f.setGaussLocalizationOnType(NORM_TETRA10,refCoo8,gsCoo8,wg8);
7146 pyra5CooGauss=[0.2, 0.3, 0.1]
7147 gsCoo9=pyra5CooGauss;
7148 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]
7149 refCoo9=pyra5CooRef;
7150 f.setGaussLocalizationOnType(NORM_PYRA5,refCoo9,gsCoo9,wg9);
7152 pyra13CooGauss=[0.1, 0.2, 0.7]
7153 gsCoo10=pyra13CooGauss;
7154 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]
7155 refCoo10=pyra13CooRef;
7156 f.setGaussLocalizationOnType(NORM_PYRA13,refCoo10,gsCoo10,wg10);
7158 penta6CooGauss=[0.2, 0.3, 0.1]
7159 gsCoo11=penta6CooGauss;
7160 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]
7161 refCoo11=penta6CooRef;
7162 f.setGaussLocalizationOnType(NORM_PENTA6,refCoo11,gsCoo11,wg11);
7164 penta15CooGauss=[0.2, 0.3,0.15]
7165 gsCoo12=penta15CooGauss;
7166 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]
7167 refCoo12=penta15CooRef;
7168 f.setGaussLocalizationOnType(NORM_PENTA15,refCoo12,gsCoo12,wg12);
7170 hexa8CooGauss=[0.2,0.3,0.15]
7171 gsCoo13=hexa8CooGauss;
7172 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]
7173 refCoo13=hexa8CooRef;
7174 f.setGaussLocalizationOnType(NORM_HEXA8,refCoo13,gsCoo13,wg13);
7176 hexa20CooGauss=[0.11,0.3,0.55]
7177 gsCoo14=hexa20CooGauss;
7178 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]
7179 refCoo14=hexa20CooRef;
7180 f.setGaussLocalizationOnType(NORM_HEXA20,refCoo14,gsCoo14,wg14);
7182 resToTest=f.getLocalizationOfDiscr();
7183 self.assertEqual(3,resToTest.getNumberOfComponents());
7184 self.assertEqual(8,resToTest.getNumberOfTuples());#2+3+4+4 gauss points for resp TRI3,TRI6,QUAD4,QUAD8
7185 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]
7186 for i in xrange(24):
7187 self.assertAlmostEqual(expected3[i],resToTest.getIJ(0,i),14);
7192 def testP2Localization1(self):
7193 m=MEDCouplingUMesh.New("testP2",2);
7194 coords=[0.,2.,3.5,0.,4.5,1.5,1.2,0.32,3.4,1.,2.1,2.4]
7196 coo=DataArrayDouble.New();
7197 coo.setValues(coords,6,2);
7200 m.insertNextCell(NORM_TRI6,6,conn[0:6])
7201 m.finishInsertingCells();
7203 f=MEDCouplingFieldDouble.New(ON_NODES,ONE_TIME);
7205 da=DataArrayDouble.New();
7206 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]
7207 da.setValues(vals1,6,3);
7211 locs=f.getValueOnMulti(loc);
7212 expected1=[6.0921164547752236, 7.1921164547752232, 8.2921164547752255]
7214 self.assertAlmostEqual(expected1[i],locs.getIJ(0,i),12);
7218 def testP2Localization2(self):
7219 m=MEDCouplingUMesh.New("testP2_2",3);
7220 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]
7221 conn=[0,1,2,3,4,5,6,7,8,9]
7222 coo=DataArrayDouble.New();
7223 coo.setValues(coords,10,3);
7226 m.insertNextCell(NORM_TETRA10,10,conn[0:10])
7227 m.finishInsertingCells();
7229 f=MEDCouplingFieldDouble.New(ON_NODES,ONE_TIME);
7231 da=DataArrayDouble.New();
7232 vals1=[1.1,2.1,3.1,4.1,5.2,6.2,7.2,8.2,9.2,10.2]
7233 da.setValues(vals1,10,1);
7236 loc=[0.64637931739890486, -0.16185896817550552, 0.22678966365273748]
7237 locs=f.getValueOnMulti(loc);
7238 expected1=[10.0844021968047]
7240 self.assertAlmostEqual(expected1[i],locs.getIJ(0,i),12);
7244 def testGetValueOn2(self):
7245 m=MEDCouplingDataForTest.build2DTargetMesh_1();
7246 f=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
7248 arr=DataArrayDouble.New();
7249 nbOfCells=m.getNumberOfCells();
7251 values1=[7.,107.,10007.,8.,108.,10008.,9.,109.,10009.,10.,110.,10010.,11.,111.,10011.]
7252 arr.setValues(values1,nbOfCells,3);
7253 loc=[-0.05,-0.05, 0.55,-0.25, 0.55,0.15, -0.05,0.45, 0.45,0.45]
7255 locs=f.getValueOnMulti(loc);
7256 self.assertEqual(5,locs.getNumberOfTuples());
7257 self.assertEqual(3,locs.getNumberOfComponents());
7258 for j in xrange(15):
7259 self.assertAlmostEqual(values1[j],locs.getIJ(0,j),12);
7262 f=MEDCouplingFieldDouble.New(ON_NODES,NO_TIME);
7264 arr=DataArrayDouble.New();
7265 nbOfNodes=m.getNumberOfNodes();
7267 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.]
7268 arr.setValues(values2,nbOfNodes,3);
7269 loc2=[0.5432,-0.2432, 0.5478,0.1528, 0.5432,-0.2432, 0.5432,-0.2432]
7270 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]
7272 loc3=DataArrayDouble.New()
7273 loc3.setValues(loc2,4,2);
7274 locs=f.getValueOnMulti(loc3);
7275 self.assertEqual(4,locs.getNumberOfTuples());
7276 self.assertEqual(3,locs.getNumberOfComponents());
7277 for i in xrange(12):
7278 self.assertAlmostEqual(expected2[i],locs.getIJ(0,i),12);
7283 def testDAIGetIdsNotEqual1(self):
7284 d=DataArrayInt.New();
7285 vals1=[2,3,5,6,8,5,5,6,1,-5]
7286 d.setValues(vals1,10,1);
7287 d2=d.getIdsNotEqual(5);
7288 self.assertEqual(7,d2.getNumberOfTuples());
7289 self.assertEqual(1,d2.getNumberOfComponents());
7290 expected1=[0,1,3,4,7,8,9]
7292 self.assertEqual(expected1[i],d2.getIJ(0,i));
7295 self.assertRaises(InterpKernelException,d.getIdsNotEqual,5);
7299 d3=d.getIdsNotEqualList(vals3);
7300 self.assertEqual(5,d3.getNumberOfTuples());
7301 self.assertEqual(1,d3.getNumberOfComponents());
7302 expected2=[0,1,4,8,9]
7304 self.assertEqual(expected2[i],d3.getIJ(0,i));
7308 def testDAIComputeOffsets1(self):
7309 d=DataArrayInt.New();
7311 expected1=[0,3,8,9,11,11]
7312 d.setValues(vals1,6,1);
7314 self.assertEqual(6,d.getNumberOfTuples());
7315 self.assertEqual(1,d.getNumberOfComponents());
7317 self.assertEqual(expected1[i],d.getIJ(0,i));
7321 def testUMeshHexagonPrism1(self):
7322 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,
7323 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];
7324 conn=[1,2,3,4,5,0,7,8,9,10,11,6]
7325 mesh=MEDCouplingUMesh.New("MyFirstHexagonalPrism",3);
7326 coo=DataArrayDouble.New();
7327 coo.setValues(coords,12,3);
7328 mesh.setCoords(coo);
7329 mesh.allocateCells(1);
7330 mesh.insertNextCell(NORM_HEXGP12,12,conn[0:12])
7331 mesh.finishInsertingCells();
7333 mesh.checkCoherency();
7334 vols=mesh.getMeasureField(False);
7335 self.assertEqual(1,vols.getNumberOfTuples());
7336 self.assertEqual(1,vols.getNumberOfComponents());
7337 self.assertAlmostEqual(-5.196152422706632,vols.getIJ(0,0),12);
7338 bary=mesh.getBarycenterAndOwner();
7339 self.assertEqual(1,bary.getNumberOfTuples());
7340 self.assertEqual(3,bary.getNumberOfComponents());
7341 expected1=[0.,0.,1.]
7343 self.assertAlmostEqual(expected1[i],bary.getIJ(0,i),12);
7345 d1=DataArrayInt.New();
7346 d2=DataArrayInt.New();
7347 d3=DataArrayInt.New();
7348 d4=DataArrayInt.New();
7349 m2=mesh.buildDescendingConnectivity(d1,d2,d3,d4);
7350 self.assertEqual(8,m2.getNumberOfCells());
7351 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]];
7352 expected2=[NORM_POLYGON, NORM_POLYGON, NORM_QUAD4, NORM_QUAD4, NORM_QUAD4, NORM_QUAD4, NORM_QUAD4, NORM_QUAD4];
7353 expected3=[6,6,4,4,4,4,4,4]
7355 self.assertTrue(m2.getTypeOfCell(i)==expected2[i]);
7356 v=m2.getNodeIdsOfCell(i);
7357 self.assertTrue(len(v)==expected3[i]);
7358 self.assertEqual(expected4[i],v);
7360 mesh.convertAllToPoly();
7361 self.assertTrue(NORM_POLYHED==mesh.getTypeOfCell(0));
7363 self.assertTrue(NORM_HEXGP12==mesh.getTypeOfCell(0));
7364 self.assertEqual(13,mesh.getMeshLength());
7368 def testDADCheckIsMonotonic(self):
7369 da=DataArrayDouble.New();
7370 da.setValues([-1.,1.01,2.03,6.],2,2);
7371 self.assertRaises(InterpKernelException,da.isMonotonic,True,1e-12);
7373 self.assertTrue(da.isMonotonic(True,1e-12));
7374 da.checkMonotonic(True,1e-12);
7376 self.assertTrue(not da.isMonotonic(True,1e-12));
7377 self.assertRaises(InterpKernelException,da.checkMonotonic,True,1e-12);
7379 self.assertTrue(da.isMonotonic(True,1e-12));
7380 self.assertTrue(not da.isMonotonic(True,1e-1));
7383 def testCheckCoherencyDeeper1(self):
7384 m=MEDCouplingDataForTest.build3DSourceMesh_1();
7386 m.checkCoherency1();
7387 m.getNodalConnectivity().setIJ(8,0,-1);
7389 self.assertRaises(InterpKernelException,m.checkCoherency1);
7390 m.getNodalConnectivity().setIJ(8,0,-6);
7392 self.assertRaises(InterpKernelException,m.checkCoherency1);
7393 m.getNodalConnectivity().setIJ(8,0,9);#9>=NbOfNodes
7395 self.assertRaises(InterpKernelException,m.checkCoherency1);
7396 m.getNodalConnectivity().setIJ(8,0,8);#OK
7398 m.checkCoherency1();
7400 m.convertToPolyTypes(elts);
7402 m.checkCoherency1();
7403 m.getNodalConnectivity().setIJ(2,0,9);#9>=NbOfNodes
7405 self.assertRaises(InterpKernelException,m.checkCoherency1);
7406 m.getNodalConnectivity().setIJ(2,0,-3);
7408 self.assertRaises(InterpKernelException,m.checkCoherency1);
7409 m.getNodalConnectivity().setIJ(2,0,-1);
7411 self.assertRaises(InterpKernelException,m.checkCoherency1);#Throw because cell#0 is not a polyhedron
7412 m.getNodalConnectivity().setIJ(2,0,4);
7414 m.checkCoherency1();
7415 m.getNodalConnectivity().setIJ(7,0,-1);
7417 m.checkCoherency1();#OK because we are in polyhedron connec
7418 m.getNodalConnectivity().setIJ(36,0,14);
7420 self.assertRaises(InterpKernelException,m.checkCoherency1);#Throw beacause now cell 5 is a TETRA4 (14) so mimatch of number index and static type.
7423 def testUnPolyze2(self):
7424 m=MEDCouplingUMesh.New("jjj",3);
7425 coo=DataArrayDouble.New();
7432 m.insertNextCell(NORM_TETRA4,4,[0,1,2,3]);
7433 m.insertNextCell(NORM_TETRA4,4,[0,1,2,3]);
7434 m.finishInsertingCells();
7435 m2=MEDCouplingUMesh.MergeUMeshesOnSameCoords(4*[m]);
7436 m2.convertToPolyTypes([2]);
7438 self.assertEqual(NORM_TETRA4,m2.getTypeOfCell(2));
7439 self.assertEqual(40,m2.getMeshLength());
7440 temp2=m2.getNodeIdsOfCell(2);
7441 self.assertEqual(temp2,[0,1,2,3]);
7442 m2.checkCoherency1();
7445 self.assertTrue(m3.isEqual(m2,1e-12));
7448 def testDACpyFrom1(self):
7449 d=DataArrayDouble.New();
7454 d.setInfoOnComponent(0,"X [m]");
7455 d.setInfoOnComponent(1,"Y [m]");
7456 d.setInfoOnComponent(2,"Z [m]");
7458 d1=DataArrayDouble.New();
7459 self.assertTrue(not d.isEqual(d1,1e-12));
7461 self.assertTrue(d.isEqual(d1,1e-12));
7463 self.assertTrue(d.isEqual(d1,1e-12));
7465 self.assertTrue(not d.isEqual(d1,1e-12));
7467 self.assertTrue(d.isEqual(d1,1e-12));
7469 d2=d.convertToIntArr();
7470 d4=DataArrayInt.New();
7471 self.assertTrue(not d2.isEqual(d4));
7473 self.assertTrue(d2.isEqual(d4));
7475 self.assertTrue(d2.isEqual(d4));
7477 self.assertTrue(not d2.isEqual(d4));
7479 self.assertTrue(d2.isEqual(d4));
7482 def testDAITransformWithIndArr1(self):
7484 tab2=[0,1,1,3,3,0,1,3,2,2,3,0]
7485 expected=[17,18,18,19,19,17,18,19,22,22,19,17]
7486 d=DataArrayInt.New();
7487 d.setValues(tab1,4,1);
7488 d1=DataArrayInt.New();
7489 d1.setValues(tab2,12,1);
7492 d1.transformWithIndArr(d);
7493 self.assertEqual(12,d1.getNumberOfTuples());
7494 self.assertEqual(1,d1.getNumberOfComponents());
7495 for i in xrange(12):
7496 self.assertEqual(expected[i],d1.getIJ(i,0));
7500 d1.transformWithIndArr(tab1)
7501 self.assertEqual(12,d1.getNumberOfTuples());
7502 self.assertEqual(1,d1.getNumberOfComponents());
7503 for i in xrange(12):
7504 self.assertEqual(expected[i],d1.getIJ(i,0));
7508 def testDAIBuildPermArrPerLevel1(self):
7509 arr=[2,0,1,1,0,1,2,0,1,1,0,0]
7510 expected1=[10,0,5,6,1,7,11,2,8,9,3,4]
7511 da=DataArrayInt.New();
7512 da.setValues(arr,12,1);
7513 da2=da.buildPermArrPerLevel();
7514 self.assertEqual(12,da2.getNumberOfTuples());
7515 self.assertEqual(1,da2.getNumberOfComponents());
7516 for i in xrange(12):
7517 self.assertEqual(expected1[i],da2.getIJ(i,0));
7521 def testDAIOperations1(self):
7522 arr1=[-1,-2,4,7,3,2,6,6,4,3,0,1]
7523 da=DataArrayInt.New();
7524 da.setValues(arr1,4,3);
7525 da1=DataArrayInt.New();
7528 self.assertRaises(InterpKernelException,DataArrayInt.Add,da,da1);#not same number of tuples/Components
7530 da2=DataArrayInt.Add(da,da1);
7531 self.assertEqual(4,da2.getNumberOfTuples());
7532 self.assertEqual(3,da2.getNumberOfComponents());
7533 expected1=[1,1,8,12,9,9,14,15,14,14,12,14]
7534 for i in xrange(12):
7535 self.assertEqual(expected1[i],da2.getIJ(0,i));
7537 da1.substractEqual(da);
7538 expected2=[3,5,0,-2,3,5,2,3,6,8,12,12]
7539 for i in xrange(12):
7540 self.assertEqual(expected2[i],da1.getIJ(0,i));
7542 da1.rearrange(1); da1.iota(2); da1.rearrange(3);
7544 for i in xrange(12):
7545 self.assertEqual(expected1[i],da1.getIJ(0,i));
7547 da1.rearrange(1); da1.iota(2); da1.rearrange(3);
7548 da2=DataArrayInt.Multiply(da,da1);
7549 self.assertEqual(4,da2.getNumberOfTuples());
7550 self.assertEqual(3,da2.getNumberOfComponents());
7551 expected3=[-2,-6,16,35,18,14,48,54,40,33,0,13]
7552 for i in xrange(12):
7553 self.assertEqual(expected3[i],da2.getIJ(0,i));
7555 da.divideEqual(da1);
7556 self.assertEqual(4,da.getNumberOfTuples());
7557 self.assertEqual(3,da.getNumberOfComponents());
7558 expected4=[0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0]
7559 for i in xrange(12):
7560 self.assertEqual(expected4[i],da.getIJ(0,i));
7562 da.setValues(arr1,4,3);
7563 da1.multiplyEqual(da);
7564 self.assertEqual(4,da1.getNumberOfTuples());
7565 self.assertEqual(3,da1.getNumberOfComponents());
7566 for i in xrange(12):
7567 self.assertEqual(expected3[i],da1.getIJ(0,i));
7569 da1.rearrange(1); da1.iota(2); da1.rearrange(3);
7570 da2=DataArrayInt.Divide(da,da1);
7571 self.assertEqual(4,da2.getNumberOfTuples());
7572 self.assertEqual(3,da2.getNumberOfComponents());
7573 for i in xrange(12):
7574 self.assertEqual(expected4[i],da2.getIJ(0,i));
7577 self.assertEqual(4,da1.getNumberOfTuples());
7578 self.assertEqual(3,da1.getNumberOfComponents());
7579 expected5=[160,107,80,64,53,45,40,35,32,29,26,24]
7580 for i in xrange(12):
7581 self.assertEqual(expected5[i],da1.getIJ(0,i));
7583 da1.applyDivideBy(2);
7584 self.assertEqual(4,da1.getNumberOfTuples());
7585 self.assertEqual(3,da1.getNumberOfComponents());
7586 expected6=[80,53,40,32,26,22,20,17,16,14,13,12]
7587 for i in xrange(12):
7588 self.assertEqual(expected6[i],da1.getIJ(0,i));
7590 expected7=[3,4,5,4,5,1,6,3,2,0,6,5]
7591 da1.applyModulus(7);
7592 for i in xrange(12):
7593 self.assertEqual(expected7[i],da1.getIJ(0,i));
7596 expected8=[3,3,3,3,3,1,3,3,0,0,3,3]
7597 da1.applyRModulus(3);
7598 for i in xrange(12):
7599 self.assertEqual(expected8[i],da1.getIJ(0,i));
7603 def testEmulateMEDMEMBDC1(self):
7604 m,m1=MEDCouplingDataForTest.buildPointe_1();
7605 m2,da1,da2,da3,da4,da5,da0=m.emulateMEDMEMBDC(m1)
7606 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]
7607 expected1=[1,32,29,23,41,36]
7608 self.assertEqual(47,da0.getNumberOfTuples());
7609 self.assertEqual(1,da0.getNumberOfComponents());
7610 for i in xrange(47):
7611 self.assertEqual(expected0[i],da0.getIJ(0,i));
7613 self.assertEqual(6,da5.getNumberOfTuples());
7614 self.assertEqual(1,da5.getNumberOfComponents());
7616 self.assertEqual(expected1[i],da5.getIJ(0,i));
7618 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]
7619 self.assertEqual(70,da1.getNumberOfTuples());
7620 self.assertEqual(1,da1.getNumberOfComponents());
7621 for i in xrange(70):
7622 self.assertEqual(expected2[i],da1.getIJ(0,i));
7624 expected3=[0,4,8,12,16,20,24,28,32,36,40,44,48,53,58,64,70]
7625 self.assertEqual(17,da2.getNumberOfTuples());
7626 self.assertEqual(1,da2.getNumberOfComponents());
7627 for i in xrange(17):
7628 self.assertEqual(expected3[i],da2.getIJ(0,i));
7630 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]
7631 #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];
7632 self.assertEqual(48,da4.getNumberOfTuples());
7633 self.assertEqual(1,da4.getNumberOfComponents());
7634 for i in xrange(48):
7635 self.assertEqual(expected4[i],da4.getIJ(0,i));
7637 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]
7638 self.assertEqual(70,da3.getNumberOfTuples());
7639 self.assertEqual(1,da3.getNumberOfComponents());
7640 for i in xrange(70):
7641 self.assertEqual(expected5[i],da3.getIJ(0,i));
7645 def testGetLevArrPerCellTypes1(self):
7646 m,m1=MEDCouplingDataForTest.buildPointe_1();
7647 m1,d0,d1,d2,d3=m.buildDescendingConnectivity();
7648 order=[NORM_TRI3,NORM_QUAD4];
7649 da0,da1=m1.getLevArrPerCellTypes(order);
7650 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]
7651 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]
7652 self.assertEqual(47,da0.getNumberOfTuples());
7653 self.assertEqual(1,da0.getNumberOfComponents());
7654 for i in xrange(47):
7655 self.assertEqual(expected0[i],da0.getIJ(0,i));
7657 self.assertEqual(2,da1.getNumberOfTuples());
7658 self.assertEqual(1,da1.getNumberOfComponents());
7659 self.assertEqual(36,da1.getIJ(0,0));#36 TRI3
7660 self.assertEqual(11,da1.getIJ(1,0));#11 QUAD4
7662 da2=da0.buildPermArrPerLevel();
7664 self.assertEqual(47,da2.getNumberOfTuples());
7665 self.assertEqual(1,da2.getNumberOfComponents());
7666 for i in xrange(47):
7667 self.assertEqual(expected1[i],da2.getIJ(0,i));
7671 def testSortCellsInMEDFileFrmt1(self):
7672 m,m1=MEDCouplingDataForTest.buildPointe_1();
7674 da=DataArrayInt.New()
7675 da.setValues([0,1,2,14,3,12,4,5,15,6,7,8,9,10,11,13],16,1)
7676 daa=da.invertArrayN2O2O2N(16)
7677 m.renumberCells(daa,False)
7678 da2=m.sortCellsInMEDFileFrmt()
7679 self.assertEqual(da2.getValues(),[0,1,2,14,3,12,4,5,15,6,7,8,9,10,11,13])
7680 self.assertTrue(m.isEqual(m2,1e-12))
7681 self.assertTrue(da.isEqual(da2))
7684 def testBuildPartAndReduceNodes1(self):
7685 m=MEDCouplingDataForTest.build2DTargetMesh_1();
7687 m2,da=m.buildPartAndReduceNodes(arr);
7688 self.assertEqual(5,m2.getNumberOfNodes());
7689 self.assertEqual(2,m2.getNumberOfCells());
7690 f=m2.getMeasureField(True);
7691 self.assertAlmostEqual(0.125,f.getArray().getIJ(0,0),12);
7692 self.assertAlmostEqual(0.25,f.getArray().getIJ(1,0),12);
7694 arr2=DataArrayInt.New()
7695 arr2.setValues(arr,2,1)
7696 m2,da=m.buildPartAndReduceNodes(arr2);
7697 self.assertEqual(5,m2.getNumberOfNodes());
7698 self.assertEqual(2,m2.getNumberOfCells());
7699 f=m2.getMeasureField(True);
7700 self.assertAlmostEqual(0.125,f.getArray().getIJ(0,0),12);
7701 self.assertAlmostEqual(0.25,f.getArray().getIJ(1,0),12);
7704 def testDAITransformWithIndArrR1(self):
7706 tab2=[-1,-1,0,1,2,3,4,5,-1,-1,-1,-1]
7707 expected=[0,3,1,2,4,5]
7708 d=DataArrayInt.New();
7709 d.setValues(tab1,6,1);
7710 d1=DataArrayInt.New();
7711 d1.setValues(tab2,12,1);
7714 d3=d.transformWithIndArrR(d1);
7715 self.assertEqual(6,d3.getNumberOfTuples());
7716 self.assertEqual(1,d3.getNumberOfComponents());
7718 self.assertEqual(expected[i],d3.getIJ(i,0));
7722 d3=d.transformWithIndArrR(tab2)
7723 self.assertEqual(6,d3.getNumberOfTuples());
7724 self.assertEqual(1,d3.getNumberOfComponents());
7726 self.assertEqual(expected[i],d3.getIJ(i,0));
7730 def testDAISplitByValueRange1(self):
7731 val1=[6,5,0,3,2,7,8,1,4]
7733 d=DataArrayInt.New();
7734 d.setValues(val1,9,1);
7735 e,f,g=d.splitByValueRange(val2);
7736 self.assertEqual(9,e.getNumberOfTuples());
7737 self.assertEqual(1,e.getNumberOfComponents());
7738 self.assertEqual(9,f.getNumberOfTuples());
7739 self.assertEqual(1,f.getNumberOfComponents());
7740 self.assertEqual(2,g.getNumberOfTuples());
7741 self.assertEqual(1,g.getNumberOfComponents());
7743 expected1=[1,1,0,0,0,1,1,0,1]
7744 expected2=[2,1,0,3,2,3,4,1,0]
7746 self.assertEqual(expected1[i],e.getIJ(i,0));
7747 self.assertEqual(expected2[i],f.getIJ(i,0));
7749 self.assertEqual(0,g.getIJ(0,0));
7750 self.assertEqual(1,g.getIJ(1,0));
7753 self.assertRaises(InterpKernelException,d.splitByValueRange,val2);
7756 def testUMeshSplitProfilePerType1(self):
7758 m=MEDCouplingDataForTest.build2DTargetMesh_1();
7759 m.renumberCells(val0,False);
7762 d=DataArrayInt.New();
7763 d.setValues(val1,3,1);
7765 code,idsInPflPerType,pfls=m.splitProfilePerType(d);
7766 self.assertEqual(2,len(code));
7767 self.assertEqual(2,len(idsInPflPerType));
7768 expected1=[[3,1,0], [4,2,1]]
7769 self.assertEqual(expected1,code)
7770 self.assertEqual(2,len(idsInPflPerType));
7771 self.assertEqual(1,idsInPflPerType[0].getNumberOfTuples());
7772 self.assertEqual(0,idsInPflPerType[0].getIJ(0,0));
7773 self.assertEqual(2,idsInPflPerType[1].getNumberOfTuples());
7774 self.assertEqual(1,idsInPflPerType[1].getIJ(0,0));
7775 self.assertEqual(2,idsInPflPerType[1].getIJ(1,0));
7777 self.assertEqual(2,len(pfls));
7778 self.assertEqual("sup",pfls[0].getName())
7779 self.assertEqual(1,pfls[0].getNumberOfTuples());
7780 self.assertEqual(0,pfls[0].getIJ(0,0));
7781 self.assertEqual("sup",pfls[1].getName())
7782 self.assertEqual(2,pfls[1].getNumberOfTuples());
7783 self.assertEqual(0,pfls[1].getIJ(0,0));
7784 self.assertEqual(1,pfls[1].getIJ(1,0));
7787 d=DataArrayInt.New();
7788 d.setValues(val2,4,1);
7789 code,idsInPflPerType,pfls=m.splitProfilePerType(d);
7790 self.assertEqual(2,len(code));
7791 self.assertEqual(2,len(idsInPflPerType));
7792 expected2=[[3,1,0], [4,3,-1]]
7793 self.assertEqual(expected2,code);
7794 self.assertEqual(2,len(idsInPflPerType));
7795 self.assertEqual(1,idsInPflPerType[0].getNumberOfTuples());
7796 self.assertEqual(0,idsInPflPerType[0].getIJ(0,0));
7797 self.assertEqual(3,idsInPflPerType[1].getNumberOfTuples());
7798 self.assertEqual(1,idsInPflPerType[1].getIJ(0,0));
7799 self.assertEqual(2,idsInPflPerType[1].getIJ(1,0));
7800 self.assertEqual(3,idsInPflPerType[1].getIJ(2,0));
7802 self.assertEqual(1,len(pfls));
7803 self.assertEqual(1,pfls[0].getNumberOfTuples());
7804 self.assertEqual(0,pfls[0].getIJ(0,0));
7807 d=DataArrayInt.New();
7808 d.setValues(val3,3,1);
7809 code,idsInPflPerType,pfls=m.splitProfilePerType(d);
7810 self.assertEqual(2,len(code));
7811 self.assertEqual(2,len(idsInPflPerType));
7812 expected3=[[3,2,0], [4,1,1]]
7813 self.assertEqual(expected3,code);
7814 self.assertEqual(2,len(idsInPflPerType));
7815 self.assertEqual(2,idsInPflPerType[0].getNumberOfTuples());
7816 self.assertEqual(0,idsInPflPerType[0].getIJ(0,0));
7817 self.assertEqual(1,idsInPflPerType[0].getIJ(1,0));
7818 self.assertEqual(1,idsInPflPerType[1].getNumberOfTuples());
7819 self.assertEqual(2,idsInPflPerType[1].getIJ(0,0));
7821 self.assertEqual(2,len(pfls));
7822 self.assertEqual(2,pfls[0].getNumberOfTuples());
7823 self.assertEqual(1,pfls[0].getIJ(0,0));
7824 self.assertEqual(0,pfls[0].getIJ(1,0));
7825 self.assertEqual(0,pfls[1].getIJ(0,0));
7828 d=DataArrayInt.New();
7829 d.setValues(val4,2,1);
7830 code,idsInPflPerType,pfls=m.splitProfilePerType(d);
7831 self.assertEqual(1,len(code));
7832 self.assertEqual(1,len(idsInPflPerType));
7834 self.assertEqual(expected4,code);
7835 self.assertEqual(1,len(idsInPflPerType));
7836 self.assertEqual(2,idsInPflPerType[0].getNumberOfTuples());
7837 self.assertEqual(0,idsInPflPerType[0].getIJ(0,0));
7838 self.assertEqual(1,idsInPflPerType[0].getIJ(1,0));
7840 self.assertEqual(1,len(pfls));
7841 self.assertEqual(2,pfls[0].getNumberOfTuples());
7842 self.assertEqual(1,pfls[0].getIJ(0,0));
7843 self.assertEqual(2,pfls[0].getIJ(1,0));
7846 def testDAIBuildExplicitArrByRanges1(self):
7847 d=DataArrayInt.New();
7849 d.setValues(vals1,3,1);
7850 e=DataArrayInt.New();
7851 vals2=[0,3,6,10,14,20]
7852 e.setValues(vals2,6,1);
7854 f=d.buildExplicitArrByRanges(e);
7855 self.assertEqual(11,f.getNumberOfTuples());
7856 self.assertEqual(1,f.getNumberOfComponents());
7857 expected1=[0,1,2,6,7,8,9,10,11,12,13]
7858 for i in xrange(11):
7859 self.assertEqual(expected1[i],f.getIJ(i,0));
7863 def testDAIComputeOffsets2(self):
7864 d=DataArrayInt.New();
7866 expected1=[0,3,8,9,11,11,19]
7867 d.setValues(vals1,6,1);
7868 d.computeOffsets2();
7869 self.assertEqual(7,d.getNumberOfTuples());
7870 self.assertEqual(1,d.getNumberOfComponents());
7872 self.assertEqual(expected1[i],d.getIJ(0,i));
7876 def testMergeField3(self):
7877 m=MEDCouplingDataForTest.build2DTargetMesh_1();
7878 m.getCoords().setInfoOnComponent(0,"x [m]");
7879 m.getCoords().setInfoOnComponent(1,"z [km]");
7881 m.setDescription("desc");
7882 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
7885 arr=DataArrayDouble.New();
7887 arr.setInfoOnComponent(0,"X [m]");
7888 arr.setInfoOnComponent(1,"YY [mm]");
7889 arr.fillWithValue(2.);
7892 f2=MEDCouplingFieldDouble.MergeFields([f1]);
7893 self.assertTrue(f1.isEqual(f2,1e-12,1e-12));
7897 def testGetDistributionOfTypes1(self):
7898 m=MEDCouplingDataForTest.build2DTargetMesh_1();
7900 self.assertRaises(InterpKernelException,m.getDistributionOfTypes);
7901 m.renumberCells(tab1,False);
7902 code=m.getDistributionOfTypes();
7903 self.assertEqual(2,len(code));
7904 self.assertEqual(3,code[0][0]);
7905 self.assertEqual(2,code[0][1]);
7906 self.assertEqual(-1,code[0][2]);
7907 self.assertEqual(4,code[1][0]);
7908 self.assertEqual(3,code[1][1]);
7909 self.assertEqual(-1,code[1][2]);
7912 def testNorm2_1(self):
7913 m=MEDCouplingDataForTest.build2DTargetMesh_1();
7914 f=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
7917 d=DataArrayDouble.New();
7918 tab=[1.2,1.3,2.2,2.3,3.2,3.3,4.2,4.3,5.2,5.3]
7919 d.setValues(tab,5,2);
7923 self.assertAlmostEqual(11.209371079592289,f.norm2(),14);
7927 def testNormMax1(self):
7928 m=MEDCouplingDataForTest.build2DTargetMesh_1();
7929 f=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
7932 d=DataArrayDouble.New();
7933 tab=[2.3,-1.2,6.3,-7.8,2.9,7.7,2.1,0.,3.6,-7.6]
7934 d.setValues(tab,5,2);
7938 self.assertAlmostEqual(7.8,f.normMax(),14);
7942 def testFindAndCorrectBadOriented3DExtrudedCells1(self):
7943 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];
7944 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]
7945 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]
7946 invalidCells=[2,3,6,7]
7947 m=MEDCouplingUMesh.New("Example",3);
7948 coo=DataArrayDouble.New();
7949 coo.setValues(coords,38,3);
7952 m.insertNextCell(NORM_PENTA6,6,conn[0:6])
7953 m.insertNextCell(NORM_PENTA6,6,conn[6:12])
7954 m.insertNextCell(NORM_PENTA6,6,conn[12:18])
7955 m.insertNextCell(NORM_PENTA6,6,conn[18:24])
7956 m.insertNextCell(NORM_HEXA8,8,conn[24:32])
7957 m.insertNextCell(NORM_HEXA8,8,conn[32:40])
7958 m.insertNextCell(NORM_HEXA8,8,conn[40:48])
7959 m.insertNextCell(NORM_HEXA8,8,conn[48:56])
7960 m.finishInsertingCells();
7962 v=m.findAndCorrectBadOriented3DExtrudedCells();
7963 self.assertEqual(4,len(v));
7964 self.assertEqual(v.getValues(),invalidCells);
7965 self.assertEqual(connExp,m.getNodalConnectivity().getValues());
7966 self.assertTrue(m.findAndCorrectBadOriented3DExtrudedCells().empty())
7970 def testConvertExtrudedPolyhedra1(self):
7971 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]
7972 m=MEDCouplingUMesh.New("Example",3);
7973 coo=DataArrayDouble.New();
7975 coo.rearrange(1); coo.iota(0); coo.rearrange(3);
7978 m.insertNextCell(NORM_TETRA4,4,conn[0:4])
7979 m.insertNextCell(NORM_HEXA8,8,conn[4:12])
7980 m.insertNextCell(NORM_TETRA4,4,conn[12:16])
7981 m.insertNextCell(NORM_POLYHED,6,conn[16:22])
7982 m.insertNextCell(NORM_PENTA6,6,conn[22:28])
7983 m.insertNextCell(NORM_POLYHED,10,conn[28:38])
7984 m.insertNextCell(NORM_HEXA8,8,conn[38:46])
7985 m.insertNextCell(NORM_HEXGP12,12,conn[46:58])
7986 m.insertNextCell(NORM_POLYHED,14,conn[58:72])
7987 m.finishInsertingCells();
7989 m.convertExtrudedPolyhedra();
7990 da=m.getNodalConnectivity();
7991 dai=m.getNodalConnectivityIndex();
7992 self.assertEqual(10,dai.getNbOfElems());
7993 self.assertEqual(159,da.getNbOfElems());
7995 expected1=[14,1,2,3,4,18,5,6,7,8,9,10,11,12,14,13,14,15,16,31,17,18,19,-1,20,22,21,-1,17,20,21,18,-1,18,21,22,19,-1,19,22,20,17,16,23,24,25,26,27,28,31,29,30,31,32,33,-1,34,38,37,36,35,-1,29,34,35,30,-1,30,35,36,31,-1,31,36,37,32,-1,32,37,38,33,-1,33,38,34,29,18,39,40,41,42,43,44,45,46,22,47,48,49,50,51,52,53,54,55,56,57,58,31,59,60,61,62,63,64,65,-1,66,72,71,70,69,68,67,-1,59,66,67,60,-1,60,67,68,61,-1,61,68,69,62,-1,62,69,70,63,-1,63,70,71,64,-1,64,71,72,65,-1,65,72,66,59];
7996 expected2=[0,5,14,19,42,49,86,95,108,159]
7997 self.assertEqual(expected1,da.getValues());
7998 self.assertEqual(expected2,dai.getValues());
8002 def testNonRegressionCopyTinyStrings(self):
8003 m=MEDCouplingDataForTest.build2DTargetMesh_1()
8004 f1=m.getMeasureField(True)
8005 f1.getArray().setInfoOnComponent(0,"P [N/m^2]")
8006 bary=m.getBarycenterAndOwner()
8007 f2=f1.buildNewTimeReprFromThis(NO_TIME,False)
8009 self.assertRaises(InterpKernelException,f1.copyTinyAttrFrom,f2)
8012 def testDaDSetPartOfValuesAdv1(self):
8013 tab1=[3.,4.,5., 13.,14.,15., 23.,24.,25., 33.,34.,35., 43.,44.,45., 53.,54.,55.]
8014 tab2=[6.,7.,8., 16.,17.,18., 26.,27.,28.]
8015 tab3=[4,1, 2,2, 3,0]
8016 a=DataArrayDouble.New();
8017 a.setValues(tab1,6,3);
8018 b=DataArrayDouble.New();
8019 b.setValues(tab2,3,3);
8020 c=DataArrayInt.New();
8021 c.setValues(tab3,3,2);
8023 a.setPartOfValuesAdv(b,c);
8024 expected1=[3.,4.,5., 13.,14.,15., 26.,27.,28., 6.,7.,8., 16.,17.,18., 53.,54.,55.]
8025 self.assertEqual(expected1,a.getValues());
8028 def testUMeshBuildSetInstanceFromThis1(self):
8029 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
8030 m2=m.buildSetInstanceFromThis(3);
8031 self.assertTrue(m.isEqual(m2,1e-12));
8033 m=MEDCouplingUMesh.New("toto",2);
8034 m2=m.buildSetInstanceFromThis(3);
8035 self.assertEqual(0,m2.getNumberOfNodes());
8036 self.assertEqual(0,m2.getNumberOfCells());
8039 def testUMeshMergeMeshesCVW1(self):
8040 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
8041 m2=MEDCouplingUMesh.New("toto",2);
8042 m3=MEDCouplingUMesh.MergeUMeshes([m,m2]);
8043 m3.setName(m.getName());
8044 self.assertTrue(m.isEqual(m3,1e-12));
8047 def testChangeUnderlyingMeshWithCMesh1(self):
8048 mesh=MEDCouplingCMesh.New();
8049 coordsX=DataArrayDouble.New();
8050 arrX=[ -1., 1., 2., 4. ]
8051 coordsX.setValues(arrX,4,1);
8052 coordsY=DataArrayDouble.New();
8053 arrY=[ -2., 2., 4., 8. ]
8054 coordsY.setValues(arrY,4,1);
8055 coordsZ=DataArrayDouble.New();
8056 arrZ=[ -3., 3., 6., 12. ]
8057 coordsZ.setValues(arrZ,4,1);
8058 mesh.setCoords(coordsX,coordsY,coordsZ);
8059 f=mesh.getMeasureField(True)
8060 mesh2=mesh.deepCpy()
8061 for myId in [0,1,2,10,11,12,20,21,22]:
8062 f=mesh.getMeasureField(True)
8063 f.changeUnderlyingMesh(mesh2,myId,1e-12);
8065 mesh2.setName("uuuu")
8066 for myId in [1,2,10,11,12,20,21,22]:
8067 f=mesh.getMeasureField(True)
8068 f.changeUnderlyingMesh(mesh2,myId,1e-12);
8072 def testDADFindCommonTuples1(self):
8073 da=DataArrayDouble.New();
8075 array1=[2.3,1.2,1.3,2.3,2.301,0.8]
8076 da.setValues(array1,6,1)
8077 c,cI=da.findCommonTuples(1e-2);
8080 self.assertEqual(3,c.getNbOfElems());
8081 self.assertEqual(2,cI.getNbOfElems());
8082 self.assertEqual(expected1,c.getValues())
8083 self.assertEqual(expected2,cI.getValues())
8084 c,cI=da.findCommonTuples(2e-1)
8085 expected3=[0,3,4,1,2]
8087 self.assertEqual(5,c.getNbOfElems());
8088 self.assertEqual(3,cI.getNbOfElems());
8089 self.assertEqual(expected3,c.getValues())
8090 self.assertEqual(expected4,cI.getValues())
8092 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]
8093 da.setValues(array2,6,2)
8094 c,cI=da.findCommonTuples(1e-2);
8095 self.assertEqual(3,c.getNbOfElems());
8096 self.assertEqual(2,cI.getNbOfElems());
8097 self.assertEqual(expected1,c.getValues())
8098 self.assertEqual(expected2,cI.getValues())
8099 c,cI=da.findCommonTuples(2e-1)
8100 self.assertEqual(5,c.getNbOfElems());
8101 self.assertEqual(3,cI.getNbOfElems());
8102 self.assertEqual(expected3,c.getValues())
8103 self.assertEqual(expected4,cI.getValues())
8105 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]
8106 da.setValues(array3,6,3)
8107 c,cI=da.findCommonTuples(1e-2);
8108 self.assertEqual(3,c.getNbOfElems());
8109 self.assertEqual(2,cI.getNbOfElems());
8110 self.assertEqual(expected1,c.getValues())
8111 self.assertEqual(expected2,cI.getValues())
8112 c,cI=da.findCommonTuples(2e-1)
8113 self.assertEqual(5,c.getNbOfElems());
8114 self.assertEqual(3,cI.getNbOfElems());
8115 self.assertEqual(expected3,c.getValues())
8116 self.assertEqual(expected4,cI.getValues())
8117 # nbOftuples=1, no common groups
8118 array11=[2.3,1.2,1.3,2.4,2.5,0.8]
8119 da.setValues(array11,6,1)
8120 c,cI=da.findCommonTuples(1e-2);
8121 self.assertEqual(0,c.getNbOfElems());
8122 self.assertEqual(1,cI.getNbOfElems());
8123 self.assertEqual([0],cI.getValues())
8126 da.setValues(array12,6,5) #bad NumberOfComponents
8127 self.assertRaises(InterpKernelException, da.findCommonTuples, 1e-2);
8130 def testDABack1(self):
8131 da=DataArrayDouble.New();
8132 array1=[2.3,1.2,1.3,2.3,2.301,0.8]
8133 da.setValues(array1,6,1);
8134 self.assertAlmostEqual(0.8,da.back(),14);
8136 self.assertRaises(InterpKernelException,da.back);
8138 self.assertRaises(InterpKernelException,da.back);
8140 da=DataArrayInt.New();
8142 da.setValues(array2,4,1);
8143 self.assertEqual(2,da.back());
8145 self.assertRaises(InterpKernelException,da.back);
8147 self.assertRaises(InterpKernelException,da.back);
8150 def testDADGetDifferentValues1(self):
8151 da=DataArrayDouble.New();
8152 array1=[2.3,1.2,1.3,2.3,2.301,0.8]
8153 da.setValues(array1,6,1)
8155 expected1=[2.301,1.2,1.3,0.8]
8156 dv=da.getDifferentValues(1e-2);
8157 self.assertEqual(4,dv.getNbOfElems());
8159 self.assertAlmostEqual(expected1[i],dv.getIJ(i,0),14);
8162 dv=da.getDifferentValues(2e-1);
8163 expected2=[2.301,1.3,0.8]
8164 self.assertEqual(3,dv.getNbOfElems());
8166 self.assertAlmostEqual(expected2[i],dv.getIJ(i,0),14);
8170 def testDAIBuildOld2NewArrayFromSurjectiveFormat2(self):
8173 a=DataArrayInt.New();
8174 a.setValues(arr,5,1);
8175 b=DataArrayInt.New();
8176 b.setValues(arrI,3,1);
8177 ret,newNbTuple=DataArrayInt.BuildOld2NewArrayFromSurjectiveFormat2(10,a,b);
8178 expected=[0,1,2,0,3,4,5,4,6,4]
8179 self.assertEqual(10,ret.getNbOfElems());
8180 self.assertEqual(7,newNbTuple);
8181 self.assertEqual(1,ret.getNumberOfComponents());
8182 self.assertEqual(expected,ret.getValues());
8183 self.assertRaises(InterpKernelException,DataArrayInt.BuildOld2NewArrayFromSurjectiveFormat2,9,a,b);
8186 def testDADIReverse1(self):
8188 a=DataArrayInt.New();
8189 a.setValues(arr,6,1);
8190 self.assertEqual(2,a.back());
8193 self.assertEqual(arr[5-i],a.getIJ(i,0));
8195 a.setValues(arr[:-1],5,1);
8198 self.assertEqual(arr[4-i],a.getIJ(i,0));
8201 arr2=[0.,3.,5.,7.,9.,2.]
8202 b=DataArrayDouble.New();
8203 b.setValues(arr2,6,1);
8206 self.assertAlmostEqual(arr2[5-i],b.getIJ(i,0),14);
8208 b.setValues(arr2[:5],5,1);
8209 self.assertAlmostEqual(9.,b.back(),14)
8212 self.assertAlmostEqual(arr2[4-i],b.getIJ(i,0),14);
8216 def testGetNodeIdsInUse1(self):
8217 m0=MEDCouplingDataForTest.build2DTargetMesh_1();
8219 m1=m0.buildPartOfMySelf(CellIds,True);
8220 arr,newNbOfNodes=m1.getNodeIdsInUse();
8221 expected=[-1,0,1,-1,2,3,-1,-1,-1]
8222 self.assertEqual(4,newNbOfNodes);
8223 self.assertEqual(9,arr.getNbOfElems());
8224 self.assertEqual(expected,arr.getValues());
8225 arr2=arr.invertArrayO2N2N2O(newNbOfNodes);
8226 self.assertEqual(4,arr2.getNbOfElems());
8228 self.assertEqual(expected2,arr2.getValues());
8231 def testBuildDescendingConnec2(self):
8232 mesh=MEDCouplingDataForTest.build2DTargetMesh_1();
8234 mesh2,desc,descIndx,revDesc,revDescIndx=mesh.buildDescendingConnectivity2();
8235 mesh2.checkCoherency();
8236 self.assertEqual(1,mesh2.getMeshDimension());
8237 self.assertEqual(13,mesh2.getNumberOfCells());
8238 self.assertEqual(14,revDescIndx.getNbOfElems()); self.assertEqual(14,revDescIndx.getNumberOfTuples());
8239 self.assertEqual(6,descIndx.getNbOfElems()); self.assertEqual(6,descIndx.getNumberOfTuples());
8240 self.assertEqual(18,desc.getNbOfElems()); self.assertEqual(18,desc.getNumberOfTuples());
8241 self.assertEqual(18,revDesc.getNbOfElems()); self.assertEqual(18,revDesc.getNumberOfTuples());
8242 expected1=[1,2,3,4,-3,5,6, 7,8,-5,9,10,-2,11, 12,13,-7,-10]
8243 self.assertEqual(expected1,desc.getValues());
8244 expected2=[0,4,7,10,14,18]
8245 self.assertEqual(expected2,descIndx.getValues());
8246 expected3=[0,1,3,5,6,8,9,11,12,13,15,16,17,18]
8247 self.assertEqual(expected3,revDescIndx.getValues());
8248 expected4=[0, 0,3, 0,1, 0, 1,2, 1, 2,4, 2, 3, 3,4, 3, 4, 4]
8249 self.assertEqual(expected4,revDesc.getValues());
8250 conn=mesh2.getNodalConnectivity();
8251 connIndex=mesh2.getNodalConnectivityIndex();
8252 expected5=[0,3,6,9,12,15,18,21,24,27,30,33,36,39]
8253 self.assertEqual(expected5,connIndex.getValues());
8254 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]
8255 self.assertEqual(expected6,conn.getValues());
8258 def testIntersect2DMeshesTmp1(self):
8259 m1c=MEDCouplingCMesh.New();
8260 coordsX=DataArrayDouble.New();
8261 arrX=[ -1., 1., 2., 4. ]
8262 coordsX.setValues(arrX,4,1);
8263 m1c.setCoordsAt(0,coordsX);
8264 coordsY=DataArrayDouble.New();
8265 arrY=[ -2., 2., 4., 8. ]
8266 coordsY.setValues(arrY,4,1);
8267 m1c.setCoordsAt(1,coordsY);
8268 m1=m1c.buildUnstructured()
8269 m1bis=m1.buildPartOfMySelf([3,4,5],False)
8271 m2=m2.buildPartOfMySelf([0,1,2],False)
8272 m2.translate([0.5,0.5])
8274 m3,d1,d2=MEDCouplingUMesh.Intersect2DMeshes(m1bis,m2,1e-10)
8275 expected1=[0,0,1,1,1,2,2,2]
8276 expected2=[0,-1,0,1,-1,1,2,-1]
8277 self.assertEqual(8,d1.getNumberOfTuples());
8278 self.assertEqual(8,d2.getNumberOfTuples());
8279 self.assertEqual(8,m3.getNumberOfCells());
8280 self.assertEqual(22,m3.getNumberOfNodes());
8281 self.assertEqual(2,m3.getSpaceDimension());
8282 self.assertEqual(expected1,d1.getValues());
8283 self.assertEqual(expected2,d2.getValues());
8284 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]
8285 expected4=[0,5,12,17,22,28,33,38,44]
8286 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]
8287 self.assertEqual(44,m3.getNodalConnectivity().getNumberOfTuples());
8288 self.assertEqual(9,m3.getNodalConnectivityIndex().getNumberOfTuples());
8289 self.assertEqual(expected3,m3.getNodalConnectivity().getValues());
8290 self.assertEqual(expected4,m3.getNodalConnectivityIndex().getValues());
8291 for i in xrange(44):
8292 self.assertAlmostEqual(expected5[i],m3.getCoords().getIJ(0,i),12);
8296 def testFindNodesOnLine1(self):
8297 mesh=MEDCouplingDataForTest.build2DTargetMesh_1();
8305 res=mesh.findNodesOnLine(pt,vec,1e-12);
8306 self.assertEqual(3,len(res));
8307 self.assertEqual(expected1,res.getValues());
8309 mesh.changeSpaceDimension(3);
8310 mesh.rotate(pt2,vec2,pi/4.);
8311 res=mesh.findNodesOnLine(pt3,vec3,1e-12);
8312 self.assertEqual(3,len(res));
8313 self.assertEqual(expected1,res.getValues());
8316 def testIntersect2DMeshesTmp2(self):
8317 m1c=MEDCouplingCMesh.New();
8318 coordsX1=DataArrayDouble.New();
8319 arrX1=[ 0., 1., 1.5, 2. ]
8320 coordsX1.setValues(arrX1,4,1);
8321 m1c.setCoordsAt(0,coordsX1);
8322 coordsY1=DataArrayDouble.New();
8323 arrY1=[ 0., 1.5, 3.]
8324 coordsY1.setValues(arrY1,3,1);
8325 m1c.setCoordsAt(1,coordsY1);
8326 m1=m1c.buildUnstructured();
8327 m2c=MEDCouplingCMesh.New();
8328 coordsX2=DataArrayDouble.New();
8329 arrX2=[ 0., 1., 2. ]
8330 coordsX2.setValues(arrX2,3,1);
8331 m2c.setCoordsAt(0,coordsX2);
8332 coordsY2=DataArrayDouble.New();
8334 coordsY2.setValues(arrY2,3,1);
8335 m2c.setCoordsAt(1,coordsY2);
8336 m2=m2c.buildUnstructured();
8338 m3,d1,d2=MEDCouplingUMesh.Intersect2DMeshes(m1,m2,1e-10)
8340 expected1=[0,0,1,1,2,2,3,4,5]
8341 expected2=[0,2,1,3,1,3,2,3,3]
8342 self.assertEqual(9,d1.getNumberOfTuples());
8343 self.assertEqual(9,d2.getNumberOfTuples());
8344 self.assertEqual(9,m3.getNumberOfCells());
8345 self.assertEqual(22,m3.getNumberOfNodes());
8346 self.assertEqual(2,m3.getSpaceDimension());
8347 self.assertEqual(expected1,d1.getValues());
8348 self.assertEqual(expected2,d2.getValues());
8349 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]
8350 expected4=[0,5,10,15,20,25,30,35,40,45]
8351 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]
8352 self.assertEqual(45,m3.getNodalConnectivity().getNumberOfTuples());
8353 self.assertEqual(10,m3.getNodalConnectivityIndex().getNumberOfTuples());
8354 self.assertEqual(expected3,m3.getNodalConnectivity().getValues());
8355 self.assertEqual(expected4,m3.getNodalConnectivityIndex().getValues());
8356 for i in xrange(44):
8357 self.assertAlmostEqual(expected5[i],m3.getCoords().getIJ(0,i),12);
8361 def testBuildPartOfMySelfSafe1(self):
8362 mesh=MEDCouplingDataForTest.build2DTargetMesh_1()
8363 self.assertRaises(InterpKernelException,mesh.buildPartOfMySelf,[0,-1,4,2],True)
8364 self.assertRaises(InterpKernelException,mesh.buildPartOfMySelf,[0,4,5,4],True)
8367 def testIntersect2DMeshesTmp3(self):
8368 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];
8369 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];
8370 m1=MEDCouplingUMesh.New();
8371 m1.setMeshDimension(2);
8372 m1.allocateCells(8);
8373 m1.insertNextCell(NORM_TRI6,6,m1Conn[0:6]);
8374 m1.insertNextCell(NORM_QUAD8,8,m1Conn[6:14]);
8375 m1.insertNextCell(NORM_TRI6,6,m1Conn[14:20]);
8376 m1.insertNextCell(NORM_QUAD8,8,m1Conn[20:28]);
8377 m1.insertNextCell(NORM_TRI6,6,m1Conn[28:34]);
8378 m1.insertNextCell(NORM_QUAD8,8,m1Conn[34:42]);
8379 m1.insertNextCell(NORM_TRI6,6,m1Conn[42:48]);
8380 m1.insertNextCell(NORM_QUAD8,8,m1Conn[48:56]);
8381 m1.finishInsertingCells();
8382 myCoords1=DataArrayDouble.New();
8383 myCoords1.setValues(m1Coords,25,2);
8384 m1.setCoords(myCoords1);
8386 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.]
8387 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]
8388 m2=MEDCouplingUMesh.New();
8389 m2.setMeshDimension(2);
8390 m2.allocateCells(8);
8392 m2.insertNextCell(NORM_QUAD4,4,m2Conn[4*i:4*(i+1)])
8394 m2.finishInsertingCells();
8395 myCoords2=DataArrayDouble.New();
8396 myCoords2.setValues(m2Coords,15,2);
8397 m2.setCoords(myCoords2);
8399 m3,d1,d2=MEDCouplingUMesh.Intersect2DMeshes(m1,m2,1e-10)
8402 expected1=[0,1,1,1,2,3,3,3,4,5,5,5,6,7,7,7]
8403 expected2=[0,0,1,-1,2,2,3,-1,4,4,5,-1,6,6,7,-1]
8404 self.assertEqual(16,d1.getNumberOfTuples());
8405 self.assertEqual(16,d2.getNumberOfTuples());
8406 self.assertEqual(16,m3.getNumberOfCells());
8407 self.assertEqual(104,m3.getNumberOfNodes());
8408 self.assertEqual(2,m3.getSpaceDimension());
8409 self.assertEqual(expected1,d1.getValues());
8410 self.assertEqual(expected2,d2.getValues());
8411 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]
8412 expected4=[0,7,16,25,34,41,50,59,68,75,84,93,102,109,118,127,136]
8413 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]
8414 self.assertEqual(136,m3.getNodalConnectivity().getNumberOfTuples());
8415 self.assertEqual(17,m3.getNodalConnectivityIndex().getNumberOfTuples());
8416 self.assertEqual(expected3,m3.getNodalConnectivity().getValues());
8417 self.assertEqual(expected4,m3.getNodalConnectivityIndex().getValues());
8418 for i in xrange(208):
8419 self.assertAlmostEqual(expected5[i],m3.getCoords().getIJ(0,i),12);
8423 def testUMeshTessellate2D1(self):
8424 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];
8425 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];
8426 m1=MEDCouplingUMesh.New();
8427 m1.setMeshDimension(2);
8428 m1.allocateCells(8);
8429 m1.insertNextCell(NORM_TRI6,6,m1Conn[0:6]);
8430 m1.insertNextCell(NORM_QUAD8,8,m1Conn[6:14]);
8431 m1.insertNextCell(NORM_TRI6,6,m1Conn[14:20]);
8432 m1.insertNextCell(NORM_QUAD8,8,m1Conn[20:28]);
8433 m1.insertNextCell(NORM_TRI6,6,m1Conn[28:34]);
8434 m1.insertNextCell(NORM_QUAD8,8,m1Conn[34:42]);
8435 m1.insertNextCell(NORM_TRI6,6,m1Conn[42:48]);
8436 m1.insertNextCell(NORM_QUAD8,8,m1Conn[48:56]);
8437 m1.finishInsertingCells();
8438 myCoords1=DataArrayDouble.New();
8439 myCoords1.setValues(m1Coords,25,2);
8440 m1.setCoords(myCoords1);
8443 m11.tessellate2D(1.);
8444 self.assertTrue(m11.getCoords().isEqual(m11.getCoords(),1e-12));
8445 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]
8446 expected2=[0,5,12,17,24,29,36,41,48]
8447 self.assertEqual(48,m11.getNodalConnectivity().getNumberOfTuples());
8448 self.assertEqual(9,m11.getNodalConnectivityIndex().getNumberOfTuples());
8449 self.assertEqual(expected1,m11.getNodalConnectivity().getValues());
8450 self.assertEqual(expected2,m11.getNodalConnectivityIndex().getValues());
8453 m12.tessellate2D(0.5);
8454 self.assertEqual(41,m12.getNumberOfNodes());
8455 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]
8456 expected4=[0,6,15,21,30,36,45,51,60]
8457 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]
8458 for i in xrange(82):
8459 self.assertAlmostEqual(expected5[i],m12.getCoords().getIJ(0,i),12);
8461 self.assertEqual(60,m12.getNodalConnectivity().getNumberOfTuples());
8462 self.assertEqual(9,m12.getNodalConnectivityIndex().getNumberOfTuples());
8463 self.assertEqual(expected3,m12.getNodalConnectivity().getValues());
8464 self.assertEqual(expected4,m12.getNodalConnectivityIndex().getValues());
8467 def testUMeshTessellate2DCurve1(self):
8468 # A quarter of circle:
8469 mcoords = [0.4,0.0, 0.0,-0.4, 0.283,-0.283]
8472 m1 = MEDCouplingUMesh.New()
8473 m1.setMeshDimension(1)
8475 m1.insertNextCell(NORM_SEG3, mconnec)
8477 myCoords = DataArrayDouble.New(mcoords, 3, 2)
8478 m1.setCoords(myCoords)
8481 m2.tessellate2DCurve(0.1)
8482 # If the following raises, the test will fail automatically:
8483 m2.checkCoherency1(0.0) # eps param not used
8485 def testIntersect2DMeshesTmp4(self):
8486 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];
8487 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];
8488 m1=MEDCouplingUMesh.New();
8489 m1.setMeshDimension(2);
8490 m1.allocateCells(8);
8491 m1.insertNextCell(NORM_TRI6,6,m1Conn[0:6]);
8492 m1.insertNextCell(NORM_QUAD8,8,m1Conn[6:14]);
8493 m1.insertNextCell(NORM_TRI6,6,m1Conn[14:20]);
8494 m1.insertNextCell(NORM_QUAD8,8,m1Conn[20:28]);
8495 m1.insertNextCell(NORM_TRI6,6,m1Conn[28:34]);
8496 m1.insertNextCell(NORM_QUAD8,8,m1Conn[34:42]);
8497 m1.insertNextCell(NORM_TRI6,6,m1Conn[42:48]);
8498 m1.insertNextCell(NORM_QUAD8,8,m1Conn[48:56]);
8499 m1.finishInsertingCells();
8500 myCoords1=DataArrayDouble.New();
8501 myCoords1.setValues(m1Coords,25,2);
8502 m1.setCoords(myCoords1);
8504 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.]
8505 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]
8506 m2=MEDCouplingUMesh.New();
8507 m2.setMeshDimension(2);
8508 m2.allocateCells(8);
8510 m2.insertNextCell(NORM_QUAD4,4,m2Conn[4*i:4*(i+1)])
8512 m2.finishInsertingCells();
8513 myCoords2=DataArrayDouble.New();
8514 myCoords2.setValues(m2Coords,15,2);
8515 m2.setCoords(myCoords2);
8517 m3,d1,d2=MEDCouplingUMesh.Intersect2DMeshes(m2,m1,1e-10)
8520 expected1=[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]
8521 expected2=[0,1,1,-1,2,3,3,-1,4,5,5,-1,6,7,7,-1]
8522 self.assertEqual(16,d1.getNumberOfTuples());
8523 self.assertEqual(16,d2.getNumberOfTuples());
8524 self.assertEqual(16,m3.getNumberOfCells());
8525 self.assertEqual(104,m3.getNumberOfNodes());
8526 self.assertEqual(2,m3.getSpaceDimension());
8527 self.assertEqual(expected1,d1.getValues());
8528 self.assertEqual(expected2,d2.getValues());
8529 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]
8530 expected4=[0,7,16,25,34,41,50,59,68,75,84,93,102,109,118,127,136]
8531 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]
8532 self.assertEqual(136,m3.getNodalConnectivity().getNumberOfTuples());
8533 self.assertEqual(17,m3.getNodalConnectivityIndex().getNumberOfTuples());
8534 self.assertEqual(expected3,m3.getNodalConnectivity().getValues());
8535 self.assertEqual(expected4,m3.getNodalConnectivityIndex().getValues());
8536 for i in xrange(208):
8537 self.assertAlmostEqual(expected5[i],m3.getCoords().getIJ(0,i),12);
8541 def testGetCellIdsCrossingPlane1(self):
8542 mesh3D,mesh2D=MEDCouplingDataForTest.build3DExtrudedUMesh_1();
8544 origin=[1.524,1.4552,1.74768]
8545 ids1=mesh3D.getCellIdsCrossingPlane(origin,vec,1e-10)
8546 self.assertEqual([1,3,4,7,9,10,13,15,16],ids1.getValues())
8548 ids2=mesh3D.getCellIdsCrossingPlane(origin,vec2,1e-10)
8549 self.assertEqual([6,7,8,9,10,11],ids2.getValues())
8552 def testBuildSlice3D1(self):
8553 mesh3D,mesh2D=MEDCouplingDataForTest.build3DExtrudedUMesh_1();
8554 vec1=[-0.07,1.,0.07]
8555 origin1=[1.524,1.4552,1.74768]
8556 slice1,ids=mesh3D.buildSlice3D(origin1,vec1,1e-10);
8557 expected1=[1,3,4,7,9,10,13,15,16]
8558 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]
8559 expected3=[0,6,11,17,22,27,32,37,42,47]
8560 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.]
8561 self.assertEqual(2,slice1.getMeshDimension());
8562 self.assertEqual(3,slice1.getSpaceDimension());
8563 self.assertEqual(57,slice1.getNumberOfNodes());
8564 self.assertEqual(9,slice1.getNumberOfCells());
8565 self.assertEqual(9,ids.getNumberOfTuples());
8566 self.assertEqual(47,slice1.getNodalConnectivity().getNumberOfTuples());
8567 self.assertEqual(10,slice1.getNodalConnectivityIndex().getNumberOfTuples());
8568 self.assertEqual(expected1,ids.getValues());
8569 self.assertEqual(expected2,slice1.getNodalConnectivity().getValues());
8570 self.assertEqual(expected3,slice1.getNodalConnectivityIndex().getValues());
8571 for i in xrange(171):
8572 self.assertAlmostEqual(expected4[i],slice1.getCoords().getIJ(0,i),12);
8574 # 2nd slice based on already existing nodes of mesh3D.
8577 slice1,ids=mesh3D.buildSlice3D(origin2,vec2,1e-10);
8578 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]
8579 expected6=[0,5,10,15,21,26,32,38,43,49]
8580 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]
8581 self.assertEqual(2,slice1.getMeshDimension());
8582 self.assertEqual(3,slice1.getSpaceDimension());
8583 self.assertEqual(60,slice1.getNumberOfNodes());
8584 self.assertEqual(9,slice1.getNumberOfCells());
8585 self.assertEqual(9,ids.getNumberOfTuples());
8586 self.assertEqual(49,slice1.getNodalConnectivity().getNumberOfTuples());
8587 self.assertEqual(10,slice1.getNodalConnectivityIndex().getNumberOfTuples());
8588 self.assertEqual(expected1,ids.getValues());
8589 self.assertEqual(expected5,slice1.getNodalConnectivity().getValues());
8590 self.assertEqual(expected6,slice1.getNodalConnectivityIndex().getValues());
8591 for i in xrange(180):
8592 self.assertAlmostEqual(expected7[i],slice1.getCoords().getIJ(0,i),12);
8594 # 3rd slice based on shared face of mesh3D.
8597 slice1,ids=mesh3D.buildSlice3D(origin3,vec3,1e-10);
8598 expected8=[6,7,8,9,10,11,12,13,14,15,16,17]
8599 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]
8600 expected10=[0,5,12,17,22,29,34,39,46,51,56,63,68]
8601 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.]
8602 self.assertEqual(2,slice1.getMeshDimension());
8603 self.assertEqual(3,slice1.getSpaceDimension());
8604 self.assertEqual(45,slice1.getNumberOfNodes());
8605 self.assertEqual(12,slice1.getNumberOfCells());
8606 self.assertEqual(12,ids.getNumberOfTuples());
8607 self.assertEqual(68,slice1.getNodalConnectivity().getNumberOfTuples());
8608 self.assertEqual(13,slice1.getNodalConnectivityIndex().getNumberOfTuples());
8609 self.assertEqual(expected8,ids.getValues());
8610 self.assertEqual(expected9,slice1.getNodalConnectivity().getValues());
8611 self.assertEqual(expected10,slice1.getNodalConnectivityIndex().getValues());
8612 for i in xrange(135):
8613 self.assertAlmostEqual(expected11[i],slice1.getCoords().getIJ(0,i),12);
8617 def testBuildSlice3DSurf1(self):
8618 mesh3D,mesh2D=MEDCouplingDataForTest.build3DExtrudedUMesh_1();
8619 mesh2D=mesh3D.buildDescendingConnectivity()[0];
8620 vec1=[-0.07,1.,0.07]
8621 origin1=[1.524,1.4552,1.74768]
8622 slice1,ids=mesh2D.buildSlice3DSurf(origin1,vec1,1e-10);
8623 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]
8624 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]
8625 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];
8626 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.]
8627 self.assertEqual(1,slice1.getMeshDimension());
8628 self.assertEqual(3,slice1.getSpaceDimension());
8629 self.assertEqual(57,slice1.getNumberOfNodes());
8630 self.assertEqual(25,slice1.getNumberOfCells());
8631 self.assertEqual(25,ids.getNumberOfTuples());
8632 self.assertEqual(75,slice1.getNodalConnectivity().getNumberOfTuples());
8633 self.assertEqual(26,slice1.getNodalConnectivityIndex().getNumberOfTuples());
8634 self.assertEqual(expected1,ids.getValues());
8635 self.assertEqual(expected2,slice1.getNodalConnectivity().getValues());
8636 self.assertEqual(expected3,slice1.getNodalConnectivityIndex().getValues());
8637 for i in xrange(171):
8638 self.assertAlmostEqual(expected4[i],slice1.getCoords().getIJ(0,i),12);
8643 slice1,ids=mesh2D.buildSlice3DSurf(origin2,vec2,1e-10);
8644 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]
8645 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]
8646 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];
8647 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.]
8648 self.assertEqual(1,slice1.getMeshDimension());
8649 self.assertEqual(3,slice1.getSpaceDimension());
8650 self.assertEqual(45,slice1.getNumberOfNodes());
8651 self.assertEqual(68,slice1.getNumberOfCells());
8652 self.assertEqual(68,ids.getNumberOfTuples());
8653 self.assertEqual(204,slice1.getNodalConnectivity().getNumberOfTuples());
8654 self.assertEqual(69,slice1.getNodalConnectivityIndex().getNumberOfTuples());
8655 self.assertEqual(expected5,ids.getValues());
8656 self.assertEqual(expected6,slice1.getNodalConnectivity().getValues());
8657 self.assertEqual(expected7,slice1.getNodalConnectivityIndex().getValues());
8658 for i in xrange(135):
8659 self.assertAlmostEqual(expected8[i],slice1.getCoords().getIJ(0,i),12);
8663 def testDataArrayDoubleAdvSetting1(self):
8664 data1=[1.,11.,2.,12.,3.,13.,4.,14.,5.,15.,6.,16.,7.,17.]
8665 data2=[8.,38.,9.,39.,0.,30.,11.,41.,12.,42.]
8666 compsCpp=["comp1","comp2"]
8667 da=DataArrayDouble.New();
8668 da.setInfoAndChangeNbOfCompo(compsCpp);
8671 compsCpp=compsCpp[:-1]
8672 self.assertRaises(InterpKernelException,da.setInfoAndChangeNbOfCompo,compsCpp);
8673 da.setValues(data1,7,2)
8675 p=[(0,3),(3,5),(5,7)]
8676 tmp=da.selectByTupleRanges(p);
8677 self.assertTrue(tmp.isEqual(da,1e-14));
8678 p=[(0,2),(3,4),(5,7)]
8679 tmp=da.selectByTupleRanges(p);
8680 expected1=[1.,11.,2.,12.,4.,14.,6.,16.,7.,17.]
8681 self.assertEqual(5,tmp.getNumberOfTuples());
8682 self.assertEqual(2,tmp.getNumberOfComponents());
8683 for i in xrange(10):
8684 self.assertAlmostEqual(expected1[i],tmp.getIJ(0,i),14);
8686 p=[(0,2),(0,2),(5,6)]
8687 tmp=da.selectByTupleRanges(p);
8688 expected2=[1.,11.,2.,12.,1.,11.,2.,12.,6.,16.]
8689 self.assertEqual(5,tmp.getNumberOfTuples());
8690 self.assertEqual(2,tmp.getNumberOfComponents());
8691 for i in xrange(10):
8692 self.assertAlmostEqual(expected2[i],tmp.getIJ(0,i),14);
8694 p=[(0,2),(-1,2),(5,6)]
8695 self.assertRaises(InterpKernelException,da.selectByTupleRanges,p);
8696 p=[(0,2),(0,2),(5,8)]
8697 self.assertRaises(InterpKernelException,da.selectByTupleRanges,p);
8699 da2=DataArrayDouble.New();
8700 da2.setValues(data2,5,2);
8703 dac.setContigPartOfSelectedValues2(1,da2,2,4,1);
8704 expected3=[1.,11.,0.,30.,11.,41.,4.,14.,5.,15.,6.,16.,7.,17.]
8705 for i in xrange(14):
8706 self.assertAlmostEqual(expected3[i],dac.getIJ(0,i),14);
8710 self.assertRaises(InterpKernelException,dac.setContigPartOfSelectedValues2,3,da2,0,5,1);
8711 self.assertRaises(InterpKernelException,dac.setContigPartOfSelectedValues2,0,da2,4,6,1);
8712 self.assertRaises(InterpKernelException,dac.setContigPartOfSelectedValues2,3,da2,5,0,1);
8713 dac.setContigPartOfSelectedValues2(3,da2,1,5,1);
8714 expected4=[1.,11.,2.,12.,3.,13.,9.,39.,0.,30.,11.,41.,12.,42.]
8715 for i in xrange(14):
8716 self.assertAlmostEqual(expected4[i],dac.getIJ(0,i),14);
8719 ids=DataArrayInt.New();
8722 ids.setIJ(0,0,2); ids.setIJ(1,0,0); ids.setIJ(2,0,4);
8723 dac.setContigPartOfSelectedValues(2,da2,ids);
8724 expected5=[1.,11.,2.,12.,0.,30.,8.,38.,12.,42.,6.,16.,7.,17.]
8725 for i in xrange(14):
8726 self.assertAlmostEqual(expected5[i],dac.getIJ(0,i),14);
8730 ids.setIJ(0,0,2); ids.setIJ(1,0,5); ids.setIJ(2,0,4);
8731 self.assertRaises(InterpKernelException,dac.setContigPartOfSelectedValues,1,da2,ids);
8732 ids.setIJ(0,0,2); ids.setIJ(1,0,2); ids.setIJ(2,0,-1);
8733 self.assertRaises(InterpKernelException,dac.setContigPartOfSelectedValues,1,da2,ids);
8734 ids.setIJ(0,0,2); ids.setIJ(1,0,2); ids.setIJ(2,0,1);
8735 self.assertRaises(InterpKernelException,dac.setContigPartOfSelectedValues,5,da2,ids);
8737 ids.setIJ(0,0,2); ids.setIJ(1,0,2); ids.setIJ(2,0,1);
8739 dac.setContigPartOfSelectedValues(4,da2,ids);
8740 expected6=[1.,11.,2.,12.,3.,13.,4.,14.,0.,30.,0.,30.,9.,39.]
8741 for i in xrange(14):
8742 self.assertAlmostEqual(expected6[i],dac.getIJ(0,i),14);
8746 def testDataArrayIntAdvSetting1(self):
8747 data1=[1,11,2,12,3,13,4,14,5,15,6,16,7,17]
8748 data2=[8,38,9,39,0,30,11,41,12,42]
8749 compsCpp=["comp1","comp2"]
8750 da=DataArrayInt.New();
8751 da.setInfoAndChangeNbOfCompo(compsCpp);
8754 compsCpp=compsCpp[:-1]
8755 self.assertRaises(InterpKernelException,da.setInfoAndChangeNbOfCompo,compsCpp);
8756 da.setValues(data1,7,2)
8758 p=[(0,3),(3,5),(5,7)]
8759 tmp=da.selectByTupleRanges(p);
8760 self.assertTrue(tmp.isEqual(da));
8761 p=[(0,2),(3,4),(5,7)]
8762 tmp=da.selectByTupleRanges(p);
8763 expected1=[1,11,2,12,4,14,6,16,7,17]
8764 self.assertEqual(5,tmp.getNumberOfTuples());
8765 self.assertEqual(2,tmp.getNumberOfComponents());
8766 for i in xrange(10):
8767 self.assertEqual(expected1[i],tmp.getIJ(0,i));
8769 p=[(0,2),(0,2),(5,6)]
8770 tmp=da.selectByTupleRanges(p);
8771 expected2=[1,11,2,12,1,11,2,12,6,16]
8772 self.assertEqual(5,tmp.getNumberOfTuples());
8773 self.assertEqual(2,tmp.getNumberOfComponents());
8774 for i in xrange(10):
8775 self.assertEqual(expected2[i],tmp.getIJ(0,i));
8777 p=[(0,2),(-1,2),(5,6)]
8778 self.assertRaises(InterpKernelException,da.selectByTupleRanges,p);
8779 p=[(0,2),(0,2),(5,8)]
8780 self.assertRaises(InterpKernelException,da.selectByTupleRanges,p);
8782 da2=DataArrayInt.New();
8783 da2.setValues(data2,5,2);
8786 dac.setContigPartOfSelectedValues2(1,da2,2,4,1);
8787 expected3=[1,11,0,30,11,41,4,14,5,15,6,16,7,17]
8788 for i in xrange(14):
8789 self.assertEqual(expected3[i],dac.getIJ(0,i));
8793 self.assertRaises(InterpKernelException,dac.setContigPartOfSelectedValues2,3,da2,0,5,1);
8794 self.assertRaises(InterpKernelException,dac.setContigPartOfSelectedValues2,0,da2,4,6,1);
8795 self.assertRaises(InterpKernelException,dac.setContigPartOfSelectedValues2,3,da2,5,0,1);
8796 dac.setContigPartOfSelectedValues2(3,da2,1,5,1);
8797 expected4=[1,11,2,12,3,13,9,39,0,30,11,41,12,42]
8798 for i in xrange(14):
8799 self.assertEqual(expected4[i],dac.getIJ(0,i));
8802 ids=DataArrayInt.New();
8805 ids.setIJ(0,0,2); ids.setIJ(1,0,0); ids.setIJ(2,0,4);
8806 dac.setContigPartOfSelectedValues(2,da2,ids);
8807 expected5=[1,11,2,12,0,30,8,38,12,42,6,16,7,17]
8808 for i in xrange(14):
8809 self.assertEqual(expected5[i],dac.getIJ(0,i));
8813 ids.setIJ(0,0,2); ids.setIJ(1,0,5); ids.setIJ(2,0,4);
8814 self.assertRaises(InterpKernelException,dac.setContigPartOfSelectedValues,1,da2,ids);
8815 ids.setIJ(0,0,2); ids.setIJ(1,0,2); ids.setIJ(2,0,-1);
8816 self.assertRaises(InterpKernelException,dac.setContigPartOfSelectedValues,1,da2,ids);
8817 ids.setIJ(0,0,2); ids.setIJ(1,0,2); ids.setIJ(2,0,1);
8818 self.assertRaises(InterpKernelException,dac.setContigPartOfSelectedValues,5,da2,ids);
8820 ids.setIJ(0,0,2); ids.setIJ(1,0,2); ids.setIJ(2,0,1);
8822 dac.setContigPartOfSelectedValues(4,da2,ids);
8823 expected6=[1,11,2,12,3,13,4,14,0,30,0,30,9,39]
8824 for i in xrange(14):
8825 self.assertEqual(expected6[i],dac.getIJ(0,i));
8829 def testBuildDescendingConnec2Of3DMesh1(self):
8830 mesh=MEDCouplingDataForTest.build3DSourceMesh_1();
8832 mesh2,desc,descIndx,revDesc,revDescIndx=mesh.buildDescendingConnectivity2();
8833 mesh2.checkCoherency();
8834 self.assertEqual(2,mesh2.getMeshDimension());
8835 self.assertEqual(30,mesh2.getNumberOfCells());
8836 self.assertEqual(31,revDescIndx.getNbOfElems()); self.assertEqual(31,revDescIndx.getNumberOfTuples());
8837 self.assertEqual(13,descIndx.getNbOfElems()); self.assertEqual(13,descIndx.getNumberOfTuples());
8838 self.assertEqual(48,desc.getNbOfElems()); self.assertEqual(48,desc.getNumberOfTuples());
8839 self.assertEqual(48,revDesc.getNbOfElems()); self.assertEqual(48,revDesc.getNumberOfTuples());
8840 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]
8841 self.assertEqual(expected1,desc.getValues());
8842 expected2=[0,4,8,12,16,20,24,28,32,36,40,44,48]
8843 self.assertEqual(expected2,descIndx.getValues());
8844 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]
8845 self.assertEqual(expected3,revDescIndx.getValues());
8846 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]
8847 self.assertEqual(expected4,revDesc.getValues());
8848 conn=mesh2.getNodalConnectivity();
8849 connIndex=mesh2.getNodalConnectivityIndex();
8850 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]
8851 self.assertEqual(expected5,connIndex.getValues());
8852 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]
8853 self.assertEqual(expected6,conn.getValues());
8856 def testAre2DCellsNotCorrectlyOriented1(self):
8857 m1Coords=[1.,1.,-1.,-1.,-1.,-1.,1.,-1.]
8859 m1=MEDCouplingUMesh.New();
8860 m1.setMeshDimension(2);
8861 m1.allocateCells(1);
8862 m1.insertNextCell(NORM_QUAD4,4,m1Conn[0:4])
8863 m1.finishInsertingCells();
8864 myCoords1=DataArrayDouble.New();
8865 myCoords1.setValues(m1Coords,4,2);
8866 m1.setCoords(myCoords1);
8869 for i in xrange(18):
8870 vec2=[3.*cos(pi/9.*i),3.*sin(pi/9.*i)];
8872 m1Cpy.translate(vec2);
8873 self.assertRaises(InterpKernelException,m1Cpy.are2DCellsNotCorrectlyOriented,vec1,False);
8874 m1Cpy.changeSpaceDimension(3);
8875 res=m1Cpy.are2DCellsNotCorrectlyOriented(vec1,False)
8876 self.assertEqual([0],res.getValues());
8880 def testDataArrayAbs1(self):
8881 d1=DataArrayDouble.New();
8882 val1=[2.,-3.,-5.,6.,-7.,-8.,9.,10.,-11.,-12.,-13.,-15.]
8883 expected1=[2.,3.,5.,6.,7.,8.,9.,10.,11.,12.,13.,15.]
8884 d1.setValues(val1,6,2);
8885 d2=d1.convertToIntArr();
8888 for i in xrange(12):
8889 self.assertAlmostEqual(expected1[i],d1.getIJ(0,i),14);
8892 expected2=[2,3,5,6,7,8,9,10,11,12,13,15]
8894 for i in xrange(12):
8895 self.assertEqual(expected2[i],d2.getIJ(0,i));
8901 def testGetValueOn3(self):
8903 v2=[0.7,1.25,0.,2.,1.5]
8904 disp=[5.,50.,500.,6.,60.,600.,7.,70.,700.,8.,80.,800.]
8905 m=MEDCouplingUMesh.New("myMesh",1)
8908 m.allocateCells(nbCells)
8909 coords=DataArrayDouble.New() ; coords.setValues(v,nbNodes,1)
8911 m.insertNextCell(NORM_SEG2,2,[0,1])
8912 m.insertNextCell(NORM_SEG2,2,[2,1])
8913 m.insertNextCell(NORM_SEG2,2,[2,3])
8914 m.finishInsertingCells()
8915 f=MEDCouplingFieldDouble.New(ON_NODES)
8917 array=DataArrayDouble.New(); array.setValues(disp,m.getNumberOfNodes(),3)
8919 arr1=f.getValueOnMulti(v2)
8920 self.assertEqual(5,arr1.getNumberOfTuples());
8921 self.assertEqual(3,arr1.getNumberOfComponents());
8922 expected1=[5.7,57.,570.,6.5,65.,650.,5.,50.,500.,8.,80.,800.,7.,70.,700.]
8923 for i in xrange(15):
8924 self.assertAlmostEqual(expected1[i],arr1.getIJ(0,i),14);
8928 def testGetNodeIdsOfCell2(self):
8929 m1c=MEDCouplingCMesh.New();
8930 coordsX=DataArrayDouble.New();
8931 arrX=[ -1., 1., 2., 4., 4.5 ]
8932 coordsX.setValues(arrX,5,1);
8933 coordsY=DataArrayDouble.New();
8934 arrY=[ -2., 2., 4., 8.]
8935 coordsY.setValues(arrY,4,1);
8936 coordsZ=DataArrayDouble.New();
8938 coordsZ.setValues(arrZ,3,1);
8940 m1c.setCoordsAt(0,coordsX);
8941 expected1=[[0,1],[1,2],[2,3],[3,4]]
8942 self.assertEqual(4,m1c.getNumberOfCells())
8943 for i in xrange(m1c.getNumberOfCells()):
8944 self.assertEqual(expected1[i],m1c.getNodeIdsOfCell(i))
8947 m1c.setCoordsAt(1,coordsY);
8948 self.assertEqual(12,m1c.getNumberOfCells())
8949 self.assertEqual(20,m1c.getNumberOfNodes())
8950 expected2=[[0,1,6,5],[1,2,7,6],[2,3,8,7],[3,4,9,8],[5,6,11,10],[6,7,12,11],[7,8,13,12],[8,9,14,13],[10,11,16,15],[11,12,17,16],[12,13,18,17],[13,14,19,18]]
8951 for i in xrange(m1c.getNumberOfCells()):
8952 self.assertEqual(expected2[i],m1c.getNodeIdsOfCell(i))
8955 m1c.setCoordsAt(2,coordsZ);
8956 self.assertEqual(24,m1c.getNumberOfCells())
8957 self.assertEqual(60,m1c.getNumberOfNodes())
8958 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],[5,6,11,10,25,26,31,30],[6,7,12,11,26,27,32,31],[7,8,13,12,27,28,33,32],[8,9,14,13,28,29,34,33],[10,11,16,15,30,31,36,35],[11,12,17,16,31,32,37,36],[12,13,18,17,32,33,38,37],[13,14,19,18,33,34,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],[25,26,31,30,45,46,51,50],[26,27,32,31,46,47,52,51],[27,28,33,32,47,48,53,52],[28,29,34,33,48,49,54,53],[30,31,36,35,50,51,56,55],[31,32,37,36,51,52,57,56],[32,33,38,37,52,53,58,57],[33,34,39,38,53,54,59,58]]
8959 self.assertEqual(24,m1c.getNumberOfCells())
8960 for i in xrange(m1c.getNumberOfCells()):
8961 self.assertEqual(expected3[i],m1c.getNodeIdsOfCell(i))
8965 def testSwigDADOp4(self):
8966 da=DataArrayDouble.New(range(6,30),12,2)
8967 self.assertEqual(12,da.getNumberOfTuples());
8968 self.assertEqual(2,da.getNumberOfComponents());
8969 for i in xrange(24):
8970 self.assertAlmostEqual(da.getIJ(0,i),float(i+6),13)
8972 # operator transpose
8974 self.assertEqual(2,da.getNumberOfTuples());
8975 self.assertEqual(12,da.getNumberOfComponents());
8976 for i in xrange(24):
8977 self.assertAlmostEqual(da.getIJ(0,i),float(i+6),13)
8981 da2=DataArrayDouble.New(12,1)
8984 for i in xrange(24):
8985 self.assertAlmostEqual(dabis.getIJ(0,i),-float(i+6),13)
8989 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.]
8990 for i in xrange(24):
8991 self.assertAlmostEqual(da.getIJ(0,i),expected1[i],13)
8995 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.]
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());
9008 self.assertAlmostEqual(li[0],100.,13) ; self.assertAlmostEqual(li[1],101.,13)
9011 da=DataArrayDouble.New(range(6,30),12,2)
9012 da2=DataArrayDouble.New(range(12),12,1)
9015 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.]
9016 for i in xrange(24):
9017 self.assertAlmostEqual(da.getIJ(0,i),expected1[i],13)
9021 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.]
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=[-88.,-87.,-84.,-83.,-80.,-79.,-76.,-75.,-72.,-71.,-68.,-67.,-64.,-63.,-60.,-59.,-56.,-55.,-52.,-51.,-48.,-47.,-44.,-43.]
9033 for i in xrange(24):
9034 self.assertAlmostEqual(da.getIJ(0,i),expected3[i],13)
9037 da=DataArrayDouble.New(range(6,30),12,2)
9038 da2=DataArrayDouble.New(range(12),12,1)
9041 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.]
9042 for i in xrange(24):
9043 self.assertAlmostEqual(da.getIJ(0,i),expected1[i],13)
9047 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.]
9048 self.assertEqual(12,da.getNumberOfTuples());
9049 self.assertEqual(2,da.getNumberOfComponents());
9050 for i in xrange(24):
9051 self.assertAlmostEqual(da.getIJ(0,i),expected2[i],13)
9053 for pos,elt in enumerate(dabis):
9056 self.assertEqual(12,da.getNumberOfTuples());
9057 self.assertEqual(2,da.getNumberOfComponents());
9058 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]
9059 for i in xrange(24):
9060 self.assertAlmostEqual(da.getIJ(0,i),expected3[i],13)
9063 da=DataArrayDouble.New(range(6,30),12,2)
9064 da2=DataArrayDouble.New(range(1,13),12,1)
9067 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]
9068 for i in xrange(24):
9069 self.assertAlmostEqual(da.getIJ(0,i),expected1[i],13)
9073 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]
9074 self.assertEqual(12,da.getNumberOfTuples());
9075 self.assertEqual(2,da.getNumberOfComponents());
9076 for i in xrange(24):
9077 self.assertAlmostEqual(da.getIJ(0,i),expected2[i],13)
9079 for pos,elt in enumerate(dabis):
9082 self.assertEqual(12,da.getNumberOfTuples());
9083 self.assertEqual(2,da.getNumberOfComponents());
9084 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]
9085 for i in xrange(24):
9086 self.assertAlmostEqual(da.getIJ(0,i),expected3[i],13)
9090 def testSwigDAIOp4(self):
9091 da=DataArrayInt.New(range(6,30),12,2)
9092 self.assertEqual(12,da.getNumberOfTuples());
9093 self.assertEqual(2,da.getNumberOfComponents());
9094 for i in xrange(24):
9095 self.assertEqual(da.getIJ(0,i),i+6)
9097 # operator transpose
9099 self.assertEqual(2,da.getNumberOfTuples());
9100 self.assertEqual(12,da.getNumberOfComponents());
9101 for i in xrange(24):
9102 self.assertEqual(da.getIJ(0,i),i+6)
9106 da2=DataArrayInt.New(12,1)
9109 for i in xrange(24):
9110 self.assertEqual(dabis.getIJ(0,i),-(i+6))
9114 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]
9115 for i in xrange(24):
9116 self.assertEqual(da.getIJ(0,i),expected1[i])
9120 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]
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());
9133 self.assertEqual(li[0],100) ; self.assertEqual(li[1],101)
9136 da=DataArrayInt.New(range(6,30),12,2)
9137 da2=DataArrayInt.New(range(12),12,1)
9140 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]
9141 for i in xrange(24):
9142 self.assertEqual(da.getIJ(0,i),expected1[i])
9146 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]
9147 self.assertEqual(12,da.getNumberOfTuples());
9148 self.assertEqual(2,da.getNumberOfComponents());
9149 for i in xrange(24):
9150 self.assertEqual(da.getIJ(0,i),expected2[i])
9152 for pos,elt in enumerate(dabis):
9155 self.assertEqual(12,da.getNumberOfTuples());
9156 self.assertEqual(2,da.getNumberOfComponents());
9157 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]
9158 for i in xrange(24):
9159 self.assertEqual(da.getIJ(0,i),expected3[i])
9162 da=DataArrayInt.New(range(6,30),12,2)
9163 da2=DataArrayInt.New(range(12),12,1)
9166 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]
9167 for i in xrange(24):
9168 self.assertEqual(da.getIJ(0,i),expected1[i])
9172 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]
9173 self.assertEqual(12,da.getNumberOfTuples());
9174 self.assertEqual(2,da.getNumberOfComponents());
9175 for i in xrange(24):
9176 self.assertEqual(da.getIJ(0,i),expected2[i])
9178 for pos,elt in enumerate(dabis):
9181 self.assertEqual(12,da.getNumberOfTuples());
9182 self.assertEqual(2,da.getNumberOfComponents());
9183 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]
9184 for i in xrange(24):
9185 self.assertEqual(da.getIJ(0,i),expected3[i])
9188 da=DataArrayInt.New(range(6,30),12,2)
9189 da2=DataArrayInt.New(range(1,13),12,1)
9192 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]
9193 for i in xrange(24):
9194 self.assertEqual(da.getIJ(0,i),expected1[i])
9197 da/=DataArrayInt.New([2,3],1,2)
9198 self.assertEqual(12,da.getNumberOfTuples());
9199 self.assertEqual(2,da.getNumberOfComponents());
9200 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]
9201 for i in xrange(24):
9202 self.assertEqual(da.getIJ(0,i),expected2[i])
9206 def testSwigDADOp5(self):
9207 da=DataArrayDouble.New([5,6,7,8,9,6,7,-2,3,9,8,10])
9209 da2=DataArrayDouble.New([5.,8.,10.,12])
9210 self.assertEqual(4,da2.getNumberOfTuples());
9211 self.assertEqual(1,da2.getNumberOfComponents());
9213 self.assertEqual(4,da3.getNumberOfTuples());
9214 self.assertEqual(3,da3.getNumberOfComponents());
9215 expected1=[10.,11.,12.,16.,17.,14.,17.,8.,13.,21.,20.,22.]
9216 for i in xrange(12):
9217 self.assertAlmostEqual(da3.getIJ(0,i),expected1[i],13)
9220 self.assertEqual(4,da3.getNumberOfTuples());
9221 self.assertEqual(3,da3.getNumberOfComponents());
9222 for i in xrange(12):
9223 self.assertAlmostEqual(da3.getIJ(0,i),expected1[i],13)
9225 # Test new API of classmethod DataArrayDouble.New
9226 vals=[5,6,7,8,9,6,7,-2,3,9,8,10]
9227 da=DataArrayDouble.New(vals)
9228 self.assertEqual(12,da.getNumberOfTuples());
9229 self.assertEqual(1,da.getNumberOfComponents());
9230 for i in xrange(12):
9231 self.assertAlmostEqual(da.getIJ(0,i),vals[i],13)
9233 da=DataArrayDouble.New(vals,12)
9234 self.assertEqual(12,da.getNumberOfTuples());
9235 self.assertEqual(1,da.getNumberOfComponents());
9236 for i in xrange(12):
9237 self.assertAlmostEqual(da.getIJ(0,i),vals[i],13)
9239 da=DataArrayDouble.New(vals,1,12)
9240 self.assertEqual(1,da.getNumberOfTuples());
9241 self.assertEqual(12,da.getNumberOfComponents());
9242 for i in xrange(12):
9243 self.assertAlmostEqual(da.getIJ(0,i),vals[i],13)
9245 da=DataArrayDouble.New(vals,6,2)
9246 self.assertEqual(6,da.getNumberOfTuples());
9247 self.assertEqual(2,da.getNumberOfComponents());
9248 for i in xrange(12):
9249 self.assertAlmostEqual(da.getIJ(0,i),vals[i],13)
9251 da=DataArrayDouble.New(vals,4,3)
9252 self.assertEqual(4,da.getNumberOfTuples());
9253 self.assertEqual(3,da.getNumberOfComponents());
9254 for i in xrange(12):
9255 self.assertAlmostEqual(da.getIJ(0,i),vals[i],13)
9257 self.assertRaises(InterpKernelException,DataArrayDouble.New,vals,11);
9258 self.assertRaises(InterpKernelException,DataArrayDouble.New,vals,13);
9259 self.assertRaises(InterpKernelException,DataArrayDouble.New,vals,5,2);
9260 self.assertRaises(InterpKernelException,DataArrayDouble.New,vals,7,2);
9263 def testSwigDADOp6(self):
9264 da=DataArrayInt.New([5,6,7,8,9,6,7,-2,3,9,8,10])
9266 da2=DataArrayInt.New([5,8,10,12])
9267 self.assertEqual(4,da2.getNumberOfTuples());
9268 self.assertEqual(1,da2.getNumberOfComponents());
9270 self.assertEqual(4,da3.getNumberOfTuples());
9271 self.assertEqual(3,da3.getNumberOfComponents());
9272 expected1=[10,11,12,16,17,14,17,8,13,21,20,22]
9273 for i in xrange(12):
9274 self.assertEqual(da3.getIJ(0,i),expected1[i])
9277 self.assertEqual(4,da3.getNumberOfTuples());
9278 self.assertEqual(3,da3.getNumberOfComponents());
9279 for i in xrange(12):
9280 self.assertEqual(da3.getIJ(0,i),expected1[i])
9282 da3=da+DataArrayInt.New(da2.getValues())
9283 # Test new API of classmethod DataArrayInt.New
9284 vals=[5,6,7,8,9,6,7,-2,3,9,8,10]
9285 da=DataArrayDouble.New(vals)
9286 self.assertEqual(12,da.getNumberOfTuples());
9287 self.assertEqual(1,da.getNumberOfComponents());
9288 for i in xrange(12):
9289 self.assertEqual(da.getIJ(0,i),vals[i])
9291 da=DataArrayDouble.New(vals,12)
9292 self.assertEqual(12,da.getNumberOfTuples());
9293 self.assertEqual(1,da.getNumberOfComponents());
9294 for i in xrange(12):
9295 self.assertEqual(da.getIJ(0,i),vals[i])
9297 da=DataArrayDouble.New(vals,1,12)
9298 self.assertEqual(1,da.getNumberOfTuples());
9299 self.assertEqual(12,da.getNumberOfComponents());
9300 for i in xrange(12):
9301 self.assertEqual(da.getIJ(0,i),vals[i])
9303 da=DataArrayDouble.New(vals,6,2)
9304 self.assertEqual(6,da.getNumberOfTuples());
9305 self.assertEqual(2,da.getNumberOfComponents());
9306 for i in xrange(12):
9307 self.assertEqual(da.getIJ(0,i),vals[i])
9309 da=DataArrayDouble.New(vals,4,3)
9310 self.assertEqual(4,da.getNumberOfTuples());
9311 self.assertEqual(3,da.getNumberOfComponents());
9312 for i in xrange(12):
9313 self.assertEqual(da.getIJ(0,i),vals[i])
9315 self.assertRaises(InterpKernelException,DataArrayDouble.New,vals,11);
9316 self.assertRaises(InterpKernelException,DataArrayDouble.New,vals,13);
9317 self.assertRaises(InterpKernelException,DataArrayDouble.New,vals,5,2);
9318 self.assertRaises(InterpKernelException,DataArrayDouble.New,vals,7,2);
9321 def testSwigDADOp9(self):
9322 l1=[(1.,2.,3),(4.,5.,6.),(7.,8.,9.),[10.,11.,12.]]
9323 da1=DataArrayDouble(l1,4,3)
9324 self.assertEqual(4,da1.getNumberOfTuples());
9325 self.assertEqual(3,da1.getNumberOfComponents());
9326 da2=DataArrayDouble(12) ; da2.iota(1.) ; da2.rearrange(3)
9327 self.assertTrue(da2.isEqual(da1,1e-12))
9328 self.assertRaises(InterpKernelException,DataArrayDouble.New,l1,3,4);
9329 da3=DataArrayDouble(l1,4)
9330 self.assertTrue(da3.isEqual(da1,1e-12))
9331 self.assertRaises(InterpKernelException,DataArrayDouble.New,l1,3);
9332 self.assertRaises(InterpKernelException,DataArrayDouble.New,l1,5);
9333 l1=[(1.,2.,3),(4.,(5.),((6.))),(7.,8.,9.),[10.,11.,12.]]
9334 da1=DataArrayDouble(l1,4,3)
9335 self.assertEqual(4,da1.getNumberOfTuples());
9336 self.assertEqual(3,da1.getNumberOfComponents());
9337 da2=DataArrayDouble(12) ; da2.iota(1.) ; da2.rearrange(3)
9338 self.assertTrue(da2.isEqual(da1,1e-12))
9339 self.assertRaises(InterpKernelException,DataArrayDouble.New,l1,3,4);
9340 da3=DataArrayDouble(l1,4)
9341 self.assertTrue(da3.isEqual(da1,1e-12))
9342 self.assertRaises(InterpKernelException,DataArrayDouble.New,l1,3);
9343 self.assertRaises(InterpKernelException,DataArrayDouble.New,l1,5);
9345 l1=[(1,2,3),(4,5,6),(7,8,9),[10,11,12]]
9346 da1=DataArrayInt(l1,4,3)
9347 self.assertEqual(4,da1.getNumberOfTuples());
9348 self.assertEqual(3,da1.getNumberOfComponents());
9349 da2=DataArrayInt(12) ; da2.iota(1) ; da2.rearrange(3)
9350 self.assertTrue(da2.isEqual(da1))
9351 self.assertRaises(InterpKernelException,DataArrayInt.New,l1,3,4);
9352 da3=DataArrayInt(l1,4)
9353 self.assertTrue(da3.isEqual(da1))
9354 self.assertRaises(InterpKernelException,DataArrayInt.New,l1,3);
9355 self.assertRaises(InterpKernelException,DataArrayInt.New,l1,5);
9356 l1=[(1,[2],3),(4,[(5)],6),((([7])),8,9),[10,11,12]]
9357 da1=DataArrayInt(l1,4,3)
9358 self.assertEqual(4,da1.getNumberOfTuples());
9359 self.assertEqual(3,da1.getNumberOfComponents());
9360 da2=DataArrayInt(12) ; da2.iota(1) ; da2.rearrange(3)
9361 self.assertTrue(da2.isEqual(da1))
9362 self.assertRaises(InterpKernelException,DataArrayInt.New,l1,3,4);
9363 da3=DataArrayInt(l1,4)
9364 self.assertTrue(da3.isEqual(da1))
9365 self.assertRaises(InterpKernelException,DataArrayInt.New,l1,3);
9366 self.assertRaises(InterpKernelException,DataArrayInt.New,l1,5);
9369 def testRenumberNodesInConn1(self):
9370 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. ]
9371 mesh2DConn=[1,4,2, 4,5,2, 0,3,4,1, 6,7,4,3, 7,8,5,4]
9372 mesh2D=MEDCouplingUMesh.New("mesh",2);
9373 mesh2D.allocateCells(5);
9374 mesh2D.insertNextCell(NORM_TRI3,3,mesh2DConn[0:3])
9375 mesh2D.insertNextCell(NORM_TRI3,3,mesh2DConn[3:6])
9376 mesh2D.insertNextCell(NORM_QUAD4,4,mesh2DConn[6:10])
9377 mesh2D.insertNextCell(NORM_QUAD4,4,mesh2DConn[10:14])
9378 mesh2D.insertNextCell(NORM_QUAD4,4,mesh2DConn[14:18])
9379 mesh2D.finishInsertingCells();
9380 myCoords=DataArrayDouble.New(mesh2DCoords,9,3);
9381 mesh2D.setCoords(myCoords);
9382 mesh2D.checkCoherency();
9384 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. ]
9385 mesh3DConn=[0,1,2,3,4,5,6,7]
9386 mesh3D=MEDCouplingUMesh.New("mesh",3);
9387 mesh3D.allocateCells(1);
9388 mesh3D.insertNextCell(NORM_HEXA8,8,mesh3DConn[:])
9389 mesh3D.finishInsertingCells();
9390 myCoords3D=DataArrayDouble.New(mesh3DCoords,8,3);
9391 mesh3D.setCoords(myCoords3D);
9392 mesh3D.checkCoherency();
9394 mesh3D_2=mesh3D.deepCpy();
9395 mesh2D_2=mesh2D.deepCpy();
9396 mesh3D_4=mesh3D.deepCpy();
9397 mesh2D_4=mesh2D.deepCpy();
9398 oldNbOf3DNodes=mesh3D.getNumberOfNodes();
9399 renumNodes=DataArrayInt.New();
9400 renumNodes.alloc(mesh2D.getNumberOfNodes(),1);
9401 renumNodes.iota(oldNbOf3DNodes);
9402 coo=DataArrayDouble.Aggregate(mesh3D.getCoords(),mesh2D.getCoords());
9403 mesh3D.setCoords(coo);
9404 mesh2D.setCoords(coo);
9405 mesh2DCpy=mesh2D.deepCpy()
9406 mesh2D_3=mesh2D.deepCpy();
9407 mesh2D_3.shiftNodeNumbersInConn(oldNbOf3DNodes);
9408 mesh2D.renumberNodesInConn(renumNodes);
9409 mesh2DCpy.renumberNodesInConn(renumNodes.getValues());
9410 self.assertTrue(mesh2D.isEqual(mesh2DCpy,1e-12))
9411 self.assertTrue(mesh2D.isEqual(mesh2D_3,1e-12))
9413 da1,da2=mesh3D.checkGeoEquivalWith(mesh3D_2,10,1e-12);
9414 self.assertTrue(da1==None);
9415 self.assertEqual(8,da2.getNumberOfTuples());
9416 self.assertEqual(1,da2.getNumberOfComponents());
9417 expected1=[8,11,12,9,4,5,6,7]
9419 self.assertEqual(expected1[i],da2.getIJ(i,0));
9422 da1,da2=mesh2D.checkGeoEquivalWith(mesh2D_2,10,1e-12);
9423 self.assertTrue(da1==None);
9424 self.assertEqual(9,da2.getNumberOfTuples());
9425 self.assertEqual(1,da2.getNumberOfComponents());
9427 self.assertEqual(8+i,da2.getIJ(i,0));
9430 mesh2D_5=mesh2D_4.deepCpy();
9431 mesh2D_5.translate([1.,0.,0.]);
9432 meshes=[mesh3D_4,mesh2D_4,mesh2D_5];
9433 MEDCouplingUMesh.PutUMeshesOnSameAggregatedCoords(meshes);
9434 self.assertTrue(mesh3D_4.getCoords().getHiddenCppPointer()==mesh2D_4.getCoords().getHiddenCppPointer());
9435 self.assertTrue(mesh2D_4.getCoords().getHiddenCppPointer()==mesh2D_5.getCoords().getHiddenCppPointer());
9436 mesh3D_4.checkCoherency(); mesh2D_4.checkCoherency(); mesh2D_5.checkCoherency();
9437 self.assertEqual(26,mesh3D_4.getNumberOfNodes());
9438 self.assertEqual(3,mesh3D_4.getSpaceDimension());
9439 self.assertEqual(9,mesh3D_4.getNodalConnectivity().getNumberOfTuples());
9440 self.assertEqual(23,mesh2D_4.getNodalConnectivity().getNumberOfTuples());
9441 self.assertEqual(23,mesh2D_5.getNodalConnectivity().getNumberOfTuples());
9442 expected2=[18,0,1,2,3,4,5,6,7]
9443 expected3=[3,9,12,10, 3,12,13,10, 4,8,11,12,9, 4,14,15,12,11, 4,15,16,13,12]
9444 expected4=[3,18,21,19, 3,21,22,19, 4,17,20,21,18, 4,23,24,21,20, 4,24,25,22,21]
9445 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]
9446 self.assertEqual(expected2,mesh3D_4.getNodalConnectivity().getValues());
9447 self.assertEqual(expected3,mesh2D_4.getNodalConnectivity().getValues());
9448 self.assertEqual(expected4,mesh2D_5.getNodalConnectivity().getValues());
9449 for i in xrange(78):
9450 self.assertAlmostEqual(expected5[i],mesh3D_4.getCoords().getIJ(0,i),12);
9453 MEDCouplingUMesh.MergeNodesOnUMeshesSharingSameCoords(meshes,1e-12);
9454 mesh3D_4.checkCoherency(); mesh2D_4.checkCoherency(); mesh2D_5.checkCoherency();
9455 self.assertTrue(mesh3D_4.getCoords().getHiddenCppPointer()==mesh2D_4.getCoords().getHiddenCppPointer());
9456 self.assertTrue(mesh2D_4.getCoords().getHiddenCppPointer()==mesh2D_5.getCoords().getHiddenCppPointer());
9457 self.assertEqual(19,mesh3D_4.getNumberOfNodes());
9458 self.assertEqual(3,mesh3D_4.getSpaceDimension());
9459 self.assertEqual(9,mesh3D_4.getNodalConnectivity().getNumberOfTuples());
9460 self.assertEqual(23,mesh2D_4.getNodalConnectivity().getNumberOfTuples());
9461 self.assertEqual(23,mesh2D_5.getNodalConnectivity().getNumberOfTuples());
9462 expected6=[18,0,1,2,3,4,5,6,7]
9463 expected7=[3,3,2,8, 3,2,9,8, 4,0,1,2,3, 4,10,11,2,1, 4,11,12,9,2]
9464 expected8=[3,13,15,14, 3,15,16,14, 4,8,9,15,13, 4,12,17,15,9, 4,17,18,16,15]
9465 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.,
9466 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.,
9467 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.]
9468 self.assertEqual(expected6,mesh3D_4.getNodalConnectivity().getValues());
9469 self.assertEqual(expected7,mesh2D_4.getNodalConnectivity().getValues());
9470 self.assertEqual(expected8,mesh2D_5.getNodalConnectivity().getValues());
9471 for i in xrange(57):
9472 self.assertAlmostEqual(expected9[i],mesh3D_4.getCoords().getIJ(0,i),12);
9477 def testComputeNeighborsOfCells1(self):
9478 m=MEDCouplingDataForTest.build2DTargetMesh_1();
9479 d1,d2=m.computeNeighborsOfCells();
9480 self.assertEqual(6,d2.getNumberOfTuples());
9481 self.assertEqual(10,d1.getNumberOfTuples());
9482 expected1=[0,2,4,6,8,10]
9483 expected2=[3,1,0,2,4,1,4,0,2,3]
9484 self.assertEqual(expected1,d2.getValues());
9485 self.assertEqual(expected2,d1.getValues());
9488 def testCheckButterflyCellsBug1(self):
9489 mesh2DCoords=[323.85,120.983748908684,317.5,131.982271536747,336.55,120.983748908686,330.2,131.982271536751,323.85,142.98079416481]
9490 mesh2DConn=[4,1,0,2,3]
9491 mesh2D=MEDCouplingUMesh.New("mesh",2);
9492 mesh2D.allocateCells(1);
9493 mesh2D.insertNextCell(NORM_POLYGON,5,mesh2DConn[0:5])
9494 mesh2D.finishInsertingCells();
9495 myCoords=DataArrayDouble.New(mesh2DCoords,5,2);
9496 mesh2D.setCoords(myCoords);
9497 mesh2D.checkCoherency();
9499 v=mesh2D.checkButterflyCells();
9500 self.assertTrue(v.empty());
9503 def testDataArrayIntRange1(self):
9504 d=DataArrayInt.Range(2,17,7);
9506 self.assertEqual(3,d.getNumberOfTuples());
9507 self.assertEqual(1,d.getNumberOfComponents());
9508 self.assertEqual(expected1,d.getValues());
9510 d=DataArrayInt.Range(2,23,7);
9511 self.assertEqual(3,d.getNumberOfTuples());
9512 self.assertEqual(1,d.getNumberOfComponents());
9513 self.assertEqual(expected1,d.getValues());
9515 d=DataArrayInt.Range(2,24,7);
9516 expected2=[2,9,16,23]
9517 self.assertEqual(4,d.getNumberOfTuples());
9518 self.assertEqual(1,d.getNumberOfComponents());
9519 self.assertEqual(expected2,d.getValues());
9521 d=DataArrayInt.Range(24,2,-7);
9522 expected3=[24,17,10,3]
9523 self.assertEqual(4,d.getNumberOfTuples());
9524 self.assertEqual(1,d.getNumberOfComponents());
9525 self.assertEqual(expected3,d.getValues());
9527 d=DataArrayInt.Range(23,2,-7);
9529 self.assertEqual(3,d.getNumberOfTuples());
9530 self.assertEqual(1,d.getNumberOfComponents());
9531 self.assertEqual(expected4,d.getValues());
9533 d=DataArrayInt.Range(23,22,-7);
9534 self.assertEqual(1,d.getNumberOfTuples());
9535 self.assertEqual(1,d.getNumberOfComponents());
9536 self.assertEqual(23,d.getIJ(0,0));
9538 d=DataArrayInt.Range(22,23,7);
9539 self.assertEqual(1,d.getNumberOfTuples());
9540 self.assertEqual(1,d.getNumberOfComponents());
9541 self.assertEqual(22,d.getIJ(0,0));
9543 d=DataArrayInt.Range(22,22,7);
9544 self.assertEqual(0,d.getNumberOfTuples());
9545 self.assertEqual(1,d.getNumberOfComponents());
9547 d=DataArrayInt.Range(22,22,-7);
9548 self.assertEqual(0,d.getNumberOfTuples());
9549 self.assertEqual(1,d.getNumberOfComponents());
9551 self.assertRaises(InterpKernelException,DataArrayInt.Range,22,23,-7);
9552 self.assertRaises(InterpKernelException,DataArrayInt.Range,23,22,7);
9553 self.assertRaises(InterpKernelException,DataArrayInt.Range,23,22,0);
9554 self.assertRaises(InterpKernelException,DataArrayInt.Range,22,23,0);
9557 def testSwigUMeshGetItem1(self):
9558 m=MEDCouplingDataForTest.build2DTargetMesh_1();
9559 subMesh=m.buildPartOfMySelf([1,3],True);
9560 self.assertTrue(isinstance(subMesh,MEDCouplingUMesh))
9562 self.assertTrue(isinstance(m1,MEDCouplingUMesh))
9564 self.assertTrue(isinstance(m2,MEDCouplingUMesh))
9566 self.assertTrue(isinstance(m3,MEDCouplingUMesh))
9567 m4=m[DataArrayInt.New([1,3])]
9569 self.assertTrue(isinstance(m5_1,MEDCouplingUMesh))
9571 self.assertTrue(isinstance(m5_2,MEDCouplingUMesh))
9572 m5=MEDCouplingUMesh.MergeUMeshesOnSameCoords([m5_1,m5_2]);
9573 m5.setName(subMesh.getName())
9574 self.assertTrue(isinstance(m4,MEDCouplingUMesh))
9575 self.assertTrue(subMesh.isEqual(m1,1e-12))
9576 self.assertTrue(subMesh.isEqual(m2,1e-12))
9577 self.assertTrue(subMesh.isEqual(m3,1e-12))
9578 self.assertTrue(subMesh.isEqual(m4,1e-12))
9579 self.assertTrue(subMesh.isEqual(m5,1e-12))
9580 self.assertRaises(InterpKernelException,m.buildPartOfMySelf,[1,5],True);
9583 def testSwigGetItem3(self):
9584 da=DataArrayInt.New([4,5,6])
9585 self.assertEqual(5,da[1])
9586 self.assertEqual(6,da[-1])
9587 self.assertRaises(InterpKernelException,da.__getitem__,3)
9588 da=DataArrayInt.New([4,5,6,7,8,9],2,3)
9589 self.assertEqual(9,da[1,2])
9590 da=DataArrayDouble.New([4.1,5.2,6.3])
9591 self.assertAlmostEqual(5.2,da[1],12)
9592 self.assertAlmostEqual(6.3,da[-1],12)
9593 self.assertRaises(InterpKernelException,da.__getitem__,3)
9594 da=DataArrayDouble.New([4.12,5.12,6.12,7.12,8.12,9.12],2,3)
9595 self.assertAlmostEqual(9.12,da[1,2],12)
9598 def testSwigDADISub1(self):
9599 mesh3D,mesh2D=MEDCouplingDataForTest.build3DExtrudedUMesh_1();
9600 bary=mesh3D.getBarycenterAndOwner()
9602 pts=bary.getDifferentValues(1e-12)
9603 expected=[[0,6,12],[1,7,13],[2,8,14],[3,9,15],[4,10,16],[5,11,17]]
9604 for pos,pt in enumerate(pts):
9607 norm=bary2.magnitude()
9608 self.assertEqual(expected[pos],norm.getIdsInRange(-1.,1e-5).getValues())
9610 expected2=[[3.,54.],[-141.,180.],[21.,54.],[39.,72.],[-15.,90.],[21.,90.]]
9611 for pos,pt in enumerate(pts):
9614 self.assertAlmostEqual(expected2[pos][0],bary2.accumulate()[0],12);
9615 self.assertAlmostEqual(expected2[pos][1],bary2.accumulate()[1],12);
9617 expected3=[[-3.,22.5],[45.,337.5],[-9., 22.5],[-15.,67.5],[3.,112.5],[-9.,112.5]]
9618 for pos,pt in enumerate(pts):
9621 self.assertAlmostEqual(expected3[pos][0],bary2.accumulate()[0],12);
9622 self.assertAlmostEqual(expected3[pos][1],bary2.accumulate()[1],12);
9624 expected4=[[-12.,90.],[0.8,6.],[-4,90.],[-2.4,30.],[12.,18],[-4,18.]]
9625 for pos,pt in enumerate(pts):
9628 self.assertAlmostEqual(expected4[pos][0],bary2.accumulate()[0],12);
9629 self.assertAlmostEqual(expected4[pos][1],bary2.accumulate()[1],12);
9632 d=DataArrayInt.New([1,2,0,1,0,2],3,2)
9633 e=DataArrayInt.New([1,11,101,2,12,102,3,13,103,4,14,104],4,3)
9634 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]]
9635 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]]
9636 for pos,tup in enumerate(d):
9638 self.assertTrue(isinstance(f,DataArrayInt))
9640 self.assertEqual(expected5[pos],f.getValues())
9641 self.assertEqual(6*[77],f[tup].getValues())
9644 self.assertEqual(expected6[pos],f.getValues())
9645 self.assertEqual(8*[77],f[:,tup].getValues())
9648 e=e.convertToDblArr()
9649 for pos,tup in enumerate(d):
9651 self.assertTrue(isinstance(f,DataArrayDouble))
9653 self.assertEqual(expected5[pos],f.convertToIntArr().getValues())
9654 self.assertEqual(6*[77],f[tup].convertToIntArr().getValues())
9657 self.assertEqual(expected6[pos],f.convertToIntArr().getValues())
9658 self.assertEqual(8*[77],f[:,tup].convertToIntArr().getValues())
9662 def testDataArrayDoubleGetMinMaxPerComponent1(self):
9663 values1=[1.,2.,3.,-0.9,2.1,3.,1.3,1.7,3.,1.,1.8,3.]
9664 d1=DataArrayDouble.New();
9665 self.assertRaises(InterpKernelException,d1.getMinMaxPerComponent)
9666 d1=DataArrayDouble.New(values1,4,3);
9667 res=d1.getMinMaxPerComponent();
9668 self.assertTrue(isinstance(res,list))
9669 self.assertEqual(3,len(res))
9671 self.assertTrue(isinstance(res[i],tuple))
9672 self.assertEqual(2,len(res[i]))
9674 expected1=[-0.9,1.3,1.7,2.1,3.,3.]
9676 self.assertAlmostEqual(expected1[i],res[i/2][i%2],14)
9680 res=d1.getMinMaxPerComponent();
9681 self.assertTrue(isinstance(res,list))
9682 self.assertEqual(2,len(res))
9684 self.assertTrue(isinstance(res[i],tuple))
9685 self.assertEqual(2,len(res[i]))
9687 expected2=[1.,3.,-0.9,3.]
9689 self.assertAlmostEqual(expected2[i],res[i/2][i%2],14)
9693 res=d1.getMinMaxPerComponent();
9694 self.assertTrue(isinstance(res,list))
9695 self.assertEqual(1,len(res))
9697 self.assertTrue(isinstance(res[i],tuple))
9698 self.assertEqual(2,len(res[i]))
9702 self.assertAlmostEqual(expected3[i],res[i/2][i%2],14)
9706 def testDataArrayIntGetHashCode1(self):
9707 d1=DataArrayInt.New(range(3545))
9708 d2=DataArrayInt.New(range(3545))
9709 self.assertEqual(d2.getHashCode(),d1.getHashCode())
9710 self.assertEqual(232341068,d1.getHashCode())
9712 self.assertEqual(232340188,d1.getHashCode())
9715 def testZipConnectivityPol1(self):
9716 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
9718 m2_1=m1.buildPartOfMySelf(cells1,True);
9720 self.assertTrue(isinstance(m2,MEDCouplingUMesh))
9721 # no permutation policy 0
9722 isOk,arr=m1.areCellsIncludedIn(m2,0)
9723 self.assertTrue(isOk);
9724 self.assertEqual(3,arr.getNumberOfTuples());
9725 self.assertEqual(1,arr.getNumberOfComponents());
9726 self.assertEqual(cells1,arr.getValues())
9727 # no permutation policy 1
9728 isOk,arr=m1.areCellsIncludedIn(m2,1)
9729 self.assertTrue(isOk);
9730 self.assertEqual(3,arr.getNumberOfTuples());
9731 self.assertEqual(1,arr.getNumberOfComponents());
9732 self.assertEqual(cells1,arr.getValues())
9733 # no permutation policy 2
9734 isOk,arr=m1.areCellsIncludedIn(m2,2)
9735 self.assertTrue(isOk);
9736 self.assertEqual(3,arr.getNumberOfTuples());
9737 self.assertEqual(1,arr.getNumberOfComponents());
9738 self.assertEqual(cells1,arr.getValues())
9739 # some modification into m2
9741 m2.getNodalConnectivity()[1:4]=modif1
9742 #policy 0 fails because cell0 in m2 has same orientation be not same connectivity
9744 isOk,arr=m1.areCellsIncludedIn(m2,0)
9745 self.assertTrue(not isOk);
9746 self.assertEqual(3,arr.getNumberOfTuples());
9747 self.assertEqual(1,arr.getNumberOfComponents());
9748 self.assertEqual(expected1,arr.getValues())
9749 #policy 1 succeeds because cell0 in m2 has not exactly the same conn
9750 isOk,arr=m1.areCellsIncludedIn(m2,1)
9751 self.assertTrue(isOk);
9752 self.assertEqual(3,arr.getNumberOfTuples());
9753 self.assertEqual(1,arr.getNumberOfComponents());
9754 self.assertEqual(cells1,arr.getValues())
9755 #policy 2 succeeds because cell0 in m2 has same nodes in connectivity
9756 isOk,arr=m1.areCellsIncludedIn(m2,2)
9757 self.assertTrue(isOk);
9758 self.assertEqual(3,arr.getNumberOfTuples());
9759 self.assertEqual(1,arr.getNumberOfComponents());
9760 self.assertEqual(cells1,arr.getValues())
9761 #some new modification into m2
9763 m2.getNodalConnectivity()[1:4]=modif2
9764 #policy 0 fails because cell0 in m2 has not exactly the same conn
9765 isOk,arr=m1.areCellsIncludedIn(m2,0)
9766 self.assertTrue(not isOk);
9767 self.assertEqual(3,arr.getNumberOfTuples());
9768 self.assertEqual(1,arr.getNumberOfComponents());
9769 self.assertEqual(expected1,arr.getValues())
9770 #policy 1 fails too because cell0 in m2 has not same orientation
9771 isOk,arr=m1.areCellsIncludedIn(m2,1)
9772 self.assertTrue(not isOk);
9773 self.assertEqual(3,arr.getNumberOfTuples());
9774 self.assertEqual(1,arr.getNumberOfComponents());
9775 self.assertEqual(expected1,arr.getValues())
9776 #policy 2 succeeds because cell0 in m2 has same nodes in connectivity
9777 isOk,arr=m1.areCellsIncludedIn(m2,2)
9778 self.assertTrue(isOk);
9779 self.assertEqual(3,arr.getNumberOfTuples());
9780 self.assertEqual(1,arr.getNumberOfComponents());
9781 self.assertEqual(cells1,arr.getValues())
9784 m1=MEDCouplingDataForTest.build1DSourceMesh_2();
9785 m2_1=m1.buildPartOfMySelf(cells2,True);
9787 self.assertTrue(isinstance(m2,MEDCouplingUMesh))
9788 # no permutation policy 0
9789 isOk,arr=m1.areCellsIncludedIn(m2,0)
9790 self.assertTrue(isOk);
9791 self.assertEqual(2,arr.getNumberOfTuples());
9792 self.assertEqual(1,arr.getNumberOfComponents());
9793 self.assertEqual(cells2,arr.getValues())
9794 # no permutation policy 1
9795 isOk,arr=m1.areCellsIncludedIn(m2,1)
9796 self.assertTrue(isOk);
9797 self.assertEqual(2,arr.getNumberOfTuples());
9798 self.assertEqual(1,arr.getNumberOfComponents());
9799 self.assertEqual(cells2,arr.getValues())
9800 # no permutation policy 2
9801 isOk,arr=m1.areCellsIncludedIn(m2,2)
9802 self.assertTrue(isOk);
9803 self.assertEqual(2,arr.getNumberOfTuples());
9804 self.assertEqual(1,arr.getNumberOfComponents());
9805 self.assertEqual(cells2,arr.getValues())
9806 # some modification into m2
9808 m2.getNodalConnectivity()[1:3]=modif3
9809 #policy 0 fails because cell0 in m2 has not exactly the same conn
9811 isOk,arr=m1.areCellsIncludedIn(m2,0)
9812 self.assertTrue(not isOk);
9813 self.assertEqual(2,arr.getNumberOfTuples());
9814 self.assertEqual(1,arr.getNumberOfComponents());
9815 self.assertEqual(expected2,arr.getValues())
9816 #policy 1 fails too because cell0 in m2 has not same orientation
9817 isOk,arr=m1.areCellsIncludedIn(m2,1)
9818 self.assertTrue(not isOk);
9819 self.assertEqual(2,arr.getNumberOfTuples());
9820 self.assertEqual(1,arr.getNumberOfComponents());
9821 self.assertEqual(expected2,arr.getValues())
9822 #policy 2 succeeds because cell0 in m2 has same nodes in connectivity
9823 isOk,arr=m1.areCellsIncludedIn(m2,2)
9824 self.assertTrue(isOk);
9825 self.assertEqual(2,arr.getNumberOfTuples());
9826 self.assertEqual(1,arr.getNumberOfComponents());
9827 self.assertEqual(cells2,arr.getValues())
9830 def toSeeIfDaIIopsAreOK(self,d):
9838 def testSwigDAIOp5(self):
9839 d=DataArrayInt.New([4,5,6,10,3,-1],2,3)
9840 self.toSeeIfDaIIopsAreOK(d)
9841 dExp=DataArrayInt.New([2,4,6,0,0,6],2,3)
9842 self.assertTrue(d.isEqual(dExp));
9845 def toSeeIfDaDIopsAreOK(self,d):
9852 def testSwigDADOp7(self):
9853 d=DataArrayDouble.New([4.,5.,6.,10.,3.,-1.],2,3)
9854 self.toSeeIfDaDIopsAreOK(d)
9855 dExp=DataArrayDouble.New([16.,18.,20.,28.,14.,6.],2,3)
9856 self.assertTrue(d.isEqual(dExp,1e-14));
9859 def testConvexEnvelop2D1(self):
9860 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]
9861 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]
9862 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]
9864 m=MEDCouplingUMesh.New("convexhull",2);
9865 m.allocateCells(331);
9866 for i in xrange(331):
9867 m.insertNextCell(NORM_POLYGON,conn[connI[i]:connI[i+1]]);
9869 m.finishInsertingCells();
9870 coordsDa=DataArrayDouble.New(coords,331,2);
9871 m.setCoords(coordsDa);
9874 da=m.convexEnvelop2D();
9876 self.assertEqual(coordsDa.getHiddenCppPointer(),m.getCoords().getHiddenCppPointer())
9877 daC=da.buildComplement(m.getNumberOfCells());
9878 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]);
9879 self.assertTrue(expected2.isEqual(daC));
9881 vals=m.getMeasureField(ON_CELLS).getArray()
9882 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]
9883 vals-=DataArrayDouble.New(ref)
9885 theTest=vals.getIdsInRange(-1.,1e-7)
9886 self.assertTrue(theTest.isIdentity())
9887 self.assertEqual(331,len(theTest))
9890 def testSwigDAIOp8(self):
9891 da=DataArrayInt.New([7,5,6,7,8,9,9,10,12,13,47,15])
9892 self.assertTrue(7 in da)
9893 self.assertTrue(47 in da)
9894 self.assertTrue(15 in da)
9895 self.assertEqual(0,da.index(7))
9896 self.assertEqual(10,da.index(47))
9897 self.assertTrue(14 not in da)
9898 self.assertEqual(5,da.search([9,9]))
9899 self.assertEqual(-1,da.search([5,8]))
9901 self.assertTrue([47,16] not in da)
9902 self.assertTrue([5,6] not in da)
9903 self.assertTrue([6,7] in da)
9904 self.assertEqual(4,da.index([12,13]))
9907 def testDataArraySort1(self):
9908 arr=DataArrayInt.New();
9909 self.assertRaises(InterpKernelException,arr.sort,True)
9910 self.assertRaises(InterpKernelException,arr.sort,False)
9911 values=[2,1,6,5,4,7]
9913 self.assertRaises(InterpKernelException,arr.sort,True)
9914 self.assertRaises(InterpKernelException,arr.sort,False)
9916 arr.setValues(values,6,1)
9920 expected1=[1,2,4,5,6,7]
9921 self.assertEqual(6,arr1.getNumberOfTuples());
9922 self.assertEqual(1,arr1.getNumberOfComponents());
9923 self.assertEqual(expected1,arr1.getValues());
9925 expected2=[7,6,5,4,2,1]
9926 self.assertEqual(6,arr2.getNumberOfTuples());
9927 self.assertEqual(1,arr2.getNumberOfComponents());
9928 self.assertTrue(expected2,arr2.getValues());
9930 ard=DataArrayDouble.New();
9931 self.assertRaises(InterpKernelException,ard.sort,True)
9932 self.assertRaises(InterpKernelException,ard.sort,False)
9933 valuesD=[2.,1.,6.,5.,4.,7.]
9935 self.assertRaises(InterpKernelException,ard.sort,True)
9936 self.assertRaises(InterpKernelException,ard.sort,False)
9938 ard.setValues(valuesD,6,1)
9942 expected3=[1.,2.,4.,5.,6.,7.]
9943 self.assertEqual(6,ard1.getNumberOfTuples());
9944 self.assertEqual(1,ard1.getNumberOfComponents());
9946 self.assertAlmostEqual(expected3[i],ard1.getIJ(i,0),12)
9949 expected4=[7.,6.,5.,4.,2.,1.]
9950 self.assertEqual(6,ard2.getNumberOfTuples());
9951 self.assertEqual(1,ard2.getNumberOfComponents());
9953 self.assertAlmostEqual(expected4[i],ard2.getIJ(i,0),12)
9957 def testPartitionBySpreadZone1(self):
9958 m=MEDCouplingDataForTest.build2DTargetMesh_1();
9959 m4=MEDCouplingUMesh.MergeUMeshes([m,m[-3:],m[0:2]]);
9960 m4.renumberCells([5,2,9,6,4,7,0,1,3,8]);
9962 v2=m4.partitionBySpreadZone();
9963 self.assertTrue(3,len(v2));
9964 self.assertTrue(v2[0].isEqual(DataArrayInt.New([0,1,7])))
9965 self.assertTrue(v2[1].isEqual(DataArrayInt.New([2,4,5,6,9])))
9966 self.assertTrue(v2[2].isEqual(DataArrayInt.New([3,8])))
9968 m5=m4.buildSpreadZonesWithPoly();
9969 self.assertEqual(3,m5.getNumberOfCells());
9970 self.assertTrue(m5.getCoords().getHiddenCppPointer()==m4.getCoords().getHiddenCppPointer());
9971 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())
9972 self.assertEqual([0,8,17,23],m5.getNodalConnectivityIndex().getValues())
9976 def testGiveCellsWithType1(self):
9979 m=MEDCouplingDataForTest.build2DTargetMesh_1();
9980 da=m.giveCellsWithType(NORM_TRI3);
9981 self.assertEqual(2,da.getNumberOfTuples());
9982 self.assertEqual(1,da.getNumberOfComponents());
9983 self.assertEqual(expected0,da.getValues())
9985 da=m.giveCellsWithType(NORM_QUAD4);
9986 self.assertEqual(3,da.getNumberOfTuples());
9987 self.assertEqual(1,da.getNumberOfComponents());
9988 self.assertEqual(expected1,da.getValues())
9990 da=m.giveCellsWithType(NORM_TRI6);
9991 self.assertEqual(0,da.getNumberOfTuples());
9992 self.assertEqual(1,da.getNumberOfComponents());
9994 self.assertRaises(InterpKernelException,m.giveCellsWithType,NORM_SEG2)
9995 self.assertRaises(InterpKernelException,m.giveCellsWithType,NORM_HEXA8)
9998 def testSwigDAOp1(self):
9999 d=DataArrayDouble.New(5,2)
10000 d.rearrange(1) ; d.iota(2.) ; d.rearrange(2)
10001 d.setInfoOnComponents(["X [m]","Y [m]"])
10005 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))
10006 d1bis=DataArrayDouble.New([8,9],1,2)+d
10007 self.assertTrue(d1bis.isEqual(d1,1e-12))
10009 self.assertTrue(d1ter.isEqual(d1,1e-12))
10012 self.assertTrue(d2.isEqual(d,1e-12))
10013 self.assertRaises(InterpKernelException,d1.__rsub__,[8,9])#[8,9]-d1
10016 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))
10017 d3bis=DataArrayDouble.New([8,9],1,2)*d
10018 self.assertTrue(d3bis.isEqual(d3,1e-12))
10020 self.assertTrue(d3ter.isEqual(d3,1e-12))
10023 self.assertTrue(d4.isEqual(d,1e-12))
10025 d=DataArrayInt.New(5,2)
10026 d.rearrange(1) ; d.iota(2) ; d.rearrange(2)
10027 d.setInfoOnComponents(["X [m]","Y [m]"])
10031 self.assertEqual(d1.getValues(),[10,12,12,14,14,16,16,18,18,20])
10032 d1bis=DataArrayInt.New([8,9],1,2)+d
10033 self.assertTrue(d1bis.isEqual(d1))
10035 self.assertTrue(d1ter.isEqual(d1))
10038 self.assertTrue(d2.isEqual(d))
10039 self.assertRaises(InterpKernelException,d1.__rsub__,[8,9])
10042 self.assertEqual(d3.getValues(),[16,27,32,45,48,63,64,81,80,99])
10043 d3bis=DataArrayInt.New([8,9],1,2)*d
10044 self.assertTrue(d3bis.isEqual(d3))
10046 self.assertTrue(d3ter.isEqual(d3))
10049 self.assertTrue(d4.isEqual(d))
10052 self.assertEqual(d5.getValues(),[2,3,0,0,2,2,0,4,2,1])
10055 def testSwigSelectTupleId2DAIBug1(self):
10056 da=DataArrayInt.New([0,1,2,3,12,13,4,5,6,7,14,15,8,9,10,11,16,17])
10057 self.assertEqual([2,6,10],da[2::6].getValues())
10058 self.assertEqual([0,4,8],da[::6].getValues())
10059 self.assertEqual([5,9],da[7::6].getValues())
10060 self.assertEqual([5],da[7:-5:6].getValues())
10063 def testSwigCpp5Safe1(self):
10064 m=MEDCouplingUMesh.New("toto",2)
10065 coords=DataArrayDouble.New([0.,0.,1.,0.,1.,1.,0.,1.],4,2)
10066 m.setCoords(coords)
10067 vecs=DataArrayDouble.New([2.,3.,4.,5.,6.,7.],3,2)
10068 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]]
10069 for pos,vec in enumerate(vecs):
10072 self.assertTrue(m2.getCoords().isEqual(DataArrayDouble.New(expected1[pos],4,2),1e-12))
10074 for pos,vec in enumerate(vecs):
10076 m2.translate(vec.buildDADouble())
10077 self.assertTrue(m2.getCoords().isEqual(DataArrayDouble.New(expected1[pos],4,2),1e-12))
10081 def testSwigBugNonRegressionZipDA(self):
10082 angles=map(lambda x:pi/3*x,xrange(6))
10085 dad=DataArrayDouble.New(6, 2)
10089 dad2=dad.fromPolarToCart()
10090 dads=[dad2.deepCpy() for elt in 7*[None]]
10092 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.)]]
10093 for d,t in zip(dads,translationToPerform):
10097 self.assertTrue(not dad2.isEqual(elt,1e-12))
10099 for d,t in zip(dads,translationToPerform):
10103 self.assertTrue(dad2.isEqual(elt,1e-12))
10107 def testBuildSlice3D2(self):
10108 mesh3D,mesh2D=MEDCouplingDataForTest.build3DExtrudedUMesh_1();
10109 vec1=[-0.07,1.,0.07]
10110 origin1=[1.524,1.4552,1.74768]
10111 slice1,ids=mesh3D.buildSlice3D(origin1,vec1,1e-10);
10112 f=MEDCouplingFieldDouble(ON_CELLS,ONE_TIME)
10113 f.setTime(4.5,6,7) ; f.setMesh(mesh3D)
10114 arr=DataArrayDouble(mesh3D.getNumberOfCells(),2)
10115 arr.rearrange(1) ; arr.iota(2.) ; arr.rearrange(2)
10118 expected1=DataArrayInt([1,3,4,7,9,10,13,15,16])
10119 self.assertTrue(expected1.isEqual(ids))
10120 arr2=arr[expected1]
10122 f2=f.extractSlice3D(origin1,vec1,1e-10)
10123 self.assertTrue(f2.getArray().isEqual(arr2,1e-12));
10124 self.assertTrue(slice1.isEqual(f2.getMesh(),1e-12))
10125 self.assertEqual(6,f2.getTime()[1]) ; self.assertEqual(7,f2.getTime()[2])
10126 self.assertAlmostEqual(4.5,f2.getTime()[0],12);
10129 def testComputeTupleIdsToSelectFromCellIds1(self):
10130 m=MEDCouplingDataForTest.build2DTargetMesh_3()
10131 f=MEDCouplingFieldDouble.New(ON_GAUSS_NE,NO_TIME);
10133 arr=DataArrayDouble(52,2) ; arr.rearrange(1) ; arr.iota(7.) ; arr.rearrange(2)
10136 f2=f.buildSubPart([1,5,9])
10137 f2.checkCoherency()
10138 cI=m.computeNbOfNodesPerCell()
10139 cI.computeOffsets2()
10140 sel=DataArrayInt([1,5,9])
10141 res=sel.buildExplicitArrByRanges(cI)
10143 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))
10144 self.assertTrue(arr2.isEqual(f2.getArray(),1e-12))
10147 def testComputeSkin1(self):
10148 arrX=DataArrayDouble([2.,3.4,5.6,7.7,8.0]) ; arrY=DataArrayDouble([2.,3.4,5.6,7.7,9.0,14.2])
10149 cmesh=MEDCouplingCMesh() ; cmesh.setCoordsAt(0,arrX) ; cmesh.setCoordsAt(1,arrY)
10150 umesh=cmesh.buildUnstructured()
10152 skin=umesh.computeSkin()
10153 self.assertEqual(18,skin.getNumberOfCells())
10154 self.assertEqual(1,skin.getMeshDimension())
10155 self.assertTrue(skin.getCoords().getHiddenCppPointer()==umesh.getCoords().getHiddenCppPointer())
10156 self.assertEqual([0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54],skin.getNodalConnectivityIndex().getValues())
10157 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())
10158 ids=skin.computeFetchedNodeIds()
10159 self.assertEqual([0,1,2,3,4,5,9,10,14,15,19,20,24,25,26,27,28,29],ids.getValues())
10160 part=umesh.buildFacePartOfMySelfNode(ids,True)
10161 part.setName(skin.getName());
10162 self.assertTrue(part.isEqual(skin,1e-12))
10165 self.assertTrue(not part.isEqual(skin,1e-12))
10166 trad=part.zipConnectivityTraducer(0)
10167 self.assertEqual(9,part.getNumberOfCells())
10168 self.assertEqual([0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8],trad.getValues())
10171 def testUMeshSetPartOfMySelf2(self):
10172 # resize with explicit ids list
10173 m=MEDCouplingDataForTest.build2DTargetMesh_1()
10174 self.assertEqual([3,4],m.getAllGeoTypes())
10177 part2=part[[1,2,5]]
10179 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())
10180 self.assertEqual([0,4,8,12,16,20],m.getNodalConnectivityIndex().getValues())
10181 self.assertEqual([3],m.getAllGeoTypes())
10182 # no resize with explicit ids list
10183 m=MEDCouplingDataForTest.build2DTargetMesh_1()
10185 part.convertAllToPoly()
10187 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())
10188 self.assertEqual([0,5,9,13,18,23],m.getNodalConnectivityIndex().getValues())
10189 self.assertEqual([3,4,5],m.getAllGeoTypes())
10190 # resize with range ids
10191 m=MEDCouplingDataForTest.build2DTargetMesh_1()
10194 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())
10195 self.assertEqual([0,5,10,15,20,25],m.getNodalConnectivityIndex().getValues())
10196 self.assertEqual([4],m.getAllGeoTypes())
10197 # no resize with range ids
10198 m=MEDCouplingDataForTest.build2DTargetMesh_1()
10200 part.convertAllToPoly()
10202 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())
10203 self.assertEqual([0,5,9,13,18,23],m.getNodalConnectivityIndex().getValues())
10204 self.assertEqual([3,4,5],m.getAllGeoTypes())
10205 # no resize with range ids negative direction
10206 m=MEDCouplingDataForTest.build2DTargetMesh_1()
10208 part.convertAllToPoly()
10210 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())
10211 self.assertEqual([0,5,9,13,18,23],m.getNodalConnectivityIndex().getValues())
10212 self.assertEqual([3,4,5],m.getAllGeoTypes())
10215 def testUnPolyze3(self):
10216 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]
10217 conn=[1,2,5,4,-1,4,3,0,1,-1,2,0,3,5,-1,0,2,1,-1,4,5,3]
10218 m=MEDCouplingUMesh.New("a mesh",3);
10219 m.allocateCells(1);
10220 m.insertNextCell(NORM_POLYHED,22,conn[0:22])
10221 m.finishInsertingCells();
10222 coords=DataArrayDouble(coord,6,3);
10223 m.setCoords(coords);
10224 m.checkCoherency();
10226 vol=m.getMeasureField(ON_CELLS);
10227 self.assertEqual(1,vol.getArray().getNumberOfTuples());
10228 self.assertAlmostEqual(0.5,vol.getArray().getIJ(0,0),12)
10232 self.assertEqual([NORM_PENTA6],m.getAllGeoTypes())
10233 self.assertTrue(DataArrayInt([0,7]).isEqual(m.getNodalConnectivityIndex()))
10234 self.assertTrue(DataArrayInt([16,0,2,1,3,5,4]).isEqual(m.getNodalConnectivity()))
10236 vol=m.getMeasureField(ON_CELLS);
10237 self.assertEqual(1,vol.getArray().getNumberOfTuples());
10238 self.assertAlmostEqual(0.5,vol.getArray().getIJ(0,0),12)
10241 def testKrSpatialDiscretization1(self):
10242 srcPointCoordsX=[0.8401877171547095, 0.7830992237586059, 0.9116473579367843, 0.335222755714889, 0.2777747108031878, 0.4773970518621602, 0.3647844727918433, 0.9522297251747128, 0.6357117279599009, 0.1416025553558034]
10243 srcFieldValsOnPoints=[2.129892434968836, 2.295320474540621, 1.931948594981134, 2.728013590937196, 2.715603240418478, 2.661778472822935, 2.695696990104364, 1.893710234970982, 2.529628016549284, 2.728432341300668]
10244 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]
10245 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]
10246 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])
10248 nbOfInputPoints=10;
10249 f=MEDCouplingFieldDouble.New(ON_NODES_KR,ONE_TIME);
10250 srcArrX=DataArrayDouble.New(srcPointCoordsX,nbOfInputPoints,1);
10251 cmesh=MEDCouplingCMesh.New("aMesh");
10252 cmesh.setCoordsAt(0,srcArrX);
10253 umesh=cmesh.buildUnstructured();
10255 srcVals=DataArrayDouble.New(srcFieldValsOnPoints,nbOfInputPoints,1);
10256 f.setArray(srcVals);
10257 f.checkCoherency();
10259 res0=f.getValueOn(targetPointCoordsX[:1]);
10260 self.assertAlmostEqual(targetFieldValsExpected[0],res0[0],10)
10262 valuesToTest=f.getValueOnMulti(targetPointCoordsX);
10263 self.assertEqual(40,valuesToTest.getNumberOfTuples());
10264 self.assertEqual(1,valuesToTest.getNumberOfComponents());
10265 for i in xrange(40):
10266 self.assertAlmostEqual(targetFieldValsExpected[i],valuesToTest.getIJ(i,0),10)
10268 fd=f.getDiscretization()
10270 self.assertTrue(isinstance(fd,MEDCouplingFieldDiscretizationKriging))
10271 coeffs,isDrift=fd.computeVectorOfCoefficients(umesh,srcVals)
10272 self.assertEqual(2,isDrift)
10273 self.assertTrue(coeffsExpected.isEqual(coeffs,1e-8))
10277 def testDuplicateEachTupleNTimes1(self):
10278 d=DataArrayDouble.New([9.,8.,7.,6.],4,1) ; d.setInfoOnComponents(["mass [kg]"]) ; d.setName("aname")
10279 d2=d.duplicateEachTupleNTimes(3)
10280 self.assertTrue(d2.isEqualWithoutConsideringStr(DataArrayDouble.New([9.,9.,9.,8.,8.,8.,7.,7.,7.,6.,6.,6.],4*3,1),1e-14))
10281 self.assertEqual("aname",d2.getName())
10282 self.assertEqual(["mass [kg]"],d2.getInfoOnComponents())
10284 d=DataArrayInt.New([9,8,7,6],4,1) ; d.setInfoOnComponents(["mass [kg]"]) ; d.setName("aname")
10285 d2=d.duplicateEachTupleNTimes(3)
10286 self.assertTrue(d2.isEqualWithoutConsideringStr(DataArrayInt.New([9,9,9,8,8,8,7,7,7,6,6,6],4*3,1)))
10287 self.assertEqual("aname",d2.getName())
10288 self.assertEqual(["mass [kg]"],d2.getInfoOnComponents())
10291 def testSwigComputeTupleIdsNearTuples1(self):
10292 da=DataArrayDouble([5.,6.,-5.,-6.,5.,-6.,-5.,6.,5.,6.],5,2)
10293 arr,arrI=da.computeTupleIdsNearTuples(DataArrayDouble([5.,-6.,5.,6.,-5.,-6.],3,2),1e-10)
10294 self.assertEqual([2,0,4,1],arr.getValues())
10295 self.assertEqual([0,1,3,4],arrI.getValues())
10296 arr,arrI=da.computeTupleIdsNearTuples([5.,-6.,5.,6.,-5.,-6.],1e-10)
10297 self.assertEqual([2,0,4,1],arr.getValues())
10298 self.assertEqual([0,1,3,4],arrI.getValues())
10299 expected0=[[2],[0,4],[1]]
10300 expected1=[[0,1],[0,2],[0,1]]
10301 for pos,it in enumerate(DataArrayDouble([5.,-6.,5.,6.,-5.,-6.],3,2)):
10302 arr,arrI=da.computeTupleIdsNearTuples(it,1e-10)
10303 self.assertEqual(expected0[pos],arr.getValues())
10304 self.assertEqual(expected1[pos],arrI.getValues())
10308 def testSwigDataTupleIOp1(self):
10309 d=DataArrayDouble(10,1)
10314 toTest=DataArrayDouble([9.0,10.0,11.0,12.0,13.0,14.0,15.0,16.0,17.0,18.0])
10315 self.assertTrue(toTest.isEqual(d,1e-12))
10319 toTest=DataArrayDouble([7.0,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0,16.0])
10320 self.assertTrue(toTest.isEqual(d,1e-12))
10324 toTest=DataArrayDouble([14.0,16.0,18.0,20.0,22.0,24.0,26.0,28.0,30.0,32.0])
10325 self.assertTrue(toTest.isEqual(d,1e-12))
10329 toTest=DataArrayDouble([7.0,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0,16.0])
10330 self.assertTrue(toTest.isEqual(d,1e-12))
10332 d=DataArrayInt(10,1)
10337 self.assertEqual(d.getValues(),[9,10,11,12,13,14,15,16,17,18])
10341 self.assertEqual(d.getValues(),[7,8,9,10,11,12,13,14,15,16])
10345 self.assertEqual(d.getValues(),[14,16,18,20,22,24,26,28,30,32])
10349 self.assertEqual(d.getValues(),[7,8,9,10,11,12,13,14,15,16])
10353 self.assertEqual(d.getValues(),[1,2,0,1,2,0,1,2,0,1])
10356 def testIntersect2DMeshesTmp5(self):
10357 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)
10358 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)
10359 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)
10361 m1=MEDCouplingUMesh.New("Fix",2);
10362 m1.setCoords(coords);
10363 m1.setConnectivity(conn,connI,True);
10365 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)
10367 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);
10369 connI=DataArrayInt([0,9,18,27,36,45,54,63,72],9)
10370 m2=MEDCouplingUMesh.New("Mobile",2);
10371 m2.setCoords(coords);
10372 m2.setConnectivity(conn,connI,True);
10374 m3,d1,d2=MEDCouplingUMesh.Intersect2DMeshes(m1,m2,1e-10);
10375 self.assertEqual(105,m3.getNumberOfCells());
10376 self.assertEqual(105,d1.getNumberOfTuples());
10377 self.assertEqual(105,d2.getNumberOfTuples());
10378 self.assertEqual(704,m3.getNumberOfNodes());
10380 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]
10381 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]
10382 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]
10383 f3=m3.getMeasureField(ON_CELLS).getArray().getValues();
10384 for i in xrange(105):
10385 self.assertAlmostEqual(areaExpected[i],f3[i],10)
10387 self.assertEqual(expected1,d1.getValues())
10388 self.assertEqual(expected2,d2.getValues())
10391 def testSwig2Intersect2DMeshesQuadra1(self):
10393 def createDiagCircle(lX, lY, R, cells=[0,1]):
10394 """ A circle in a square box, cut along the diagonal.
10398 c.append(cmath.rect(R, i*pi/4))
10400 coords = [0.0,0.0, c[3].real,c[3].imag, -lX/2.0, lY/2.0,
10401 0.0, lY/2.0, lX/2.0,lY/2.0, lX/2.0,0.0,
10403 lX/2.0,-lY/2.0, c[7].real,c[7].imag, c[1].real,c[1].imag,
10405 c[5].real,c[5].imag, -lX/2.0,-lY/2.0, 0.0, -lY/2.0,
10407 -lX/2.0,0.0, 0.0,0.0, 0.0, 0.0]
10408 # Points 13 (reps. 14) are average of points (6,7) (resp (1,2))
10409 coords[13*2] = 0.5*(coords[6*2]+coords[7*2])
10410 coords[13*2+1] = 0.5*(coords[6*2+1]+coords[7*2+1])
10411 coords[14*2] = 0.5*(coords[1*2]+coords[2*2])
10412 coords[14*2+1] = 0.5*(coords[1*2+1]+coords[2*2+1])
10413 connec = [1,7,8,0] # half circle up right
10414 connec3 = [6,7,1,2,4,13,8,14,3,5]
10416 baseMesh = MEDCouplingUMesh.New("box_circle", 2)
10417 baseMesh.allocateCells(2)
10418 meshCoords = DataArrayDouble.New(coords, len(coords)/2, 2)
10419 meshCoords.setInfoOnComponents(["X [au]", "Y [au]"])
10420 baseMesh.setCoords(meshCoords)
10423 baseMesh.insertNextCell(NORM_QPOLYG, connec)
10425 baseMesh.insertNextCell(NORM_QPOLYG, connec3)
10426 baseMesh.finishInsertingCells()
10427 baseMesh.checkCoherency()
10431 m1 = createDiagCircle(1.0, 1.0, 0.5*0.90, cells=[0,1])
10432 m2 = createDiagCircle(1.0, 1.0, 0.5*0.95, cells=[0])
10433 m3, _, _= MEDCouplingUMesh.Intersect2DMeshes(m1, m2, eps)
10435 m3.convertDegeneratedCells()
10438 m5, _, _ = MEDCouplingUMesh.Intersect2DMeshes(m3, m4, eps)
10440 # Check coordinates:
10441 self.assertTrue(m3.getCoords().isEqual(m5.getCoords(), eps))
10443 def testIntersect2DMeshesTmp7(self):
10445 coords = [-0.5,-0.5, -0.5, 0.5, 0.5, 0.5, 0.5,-0.5]
10447 m1 = MEDCouplingUMesh.New("box", 2)
10448 m1.allocateCells(1)
10449 meshCoords = DataArrayDouble.New(coords, len(coords)/2, 2)
10450 m1.setCoords(meshCoords)
10451 m1.insertNextCell(NORM_POLYGON, connec)
10452 m1.finishInsertingCells()
10454 m2 = MEDCouplingDataForTest.buildCircle(0.25, 0.2, 0.4)
10455 # Was looping indefinitly:
10456 m_intersec, resToM1, resToM2 = MEDCouplingUMesh.Intersect2DMeshes(m1, m2, eps)
10457 m_intersec.zipCoords()
10458 coo_tgt = DataArrayDouble([-0.5, -0.5, -0.5, 0.5, 0.5, 0.5, 0.5, -0.5, -0.03284271247461901, 0.4828427124746191,
10459 -0.014575131106459124, 0.5000000000000001, 0.5, -0.11224989991991996, 0.24271243444677046, 0.5, 0.5, 0.19387505004004,
10460 -0.04799910280454185, -0.06682678787499614, -0.023843325638122054, 0.4915644577163915, 0.5, -0.30612494995996, 0.0, -0.5,
10461 -0.5, 0.0, -0.25728756555322957, 0.5, -0.023843325638122026, 0.49156445771639157, -0.04799910280454181, -0.06682678787499613], 17 ,2)
10462 conn_tgt = [32, 5, 2, 6, 4, 7, 8, 9, 10, 32, 6, 3, 0, 1, 5, 4, 11, 12, 13, 14, 15, 16]
10463 connI_tgt = [0, 9, 22]
10466 self.assert_(coo_tgt.isEqualWithoutConsideringStr(m_intersec.getCoords(), 1e-12))
10467 self.assertEqual(conn_tgt, m_intersec.getNodalConnectivity().getValues())
10468 self.assertEqual(connI_tgt, m_intersec.getNodalConnectivityIndex().getValues())
10469 self.assertEqual(res1_tgt, resToM1.getValues())
10470 self.assertEqual(res2_tgt, resToM2.getValues())
10472 def testDAIBuildUnique1(self):
10473 d=DataArrayInt([1,2,2,3,3,3,3,4,5,5,7,7,7,19])
10475 self.assertTrue(e.isEqual(DataArrayInt([1,2,3,4,5,7,19])))
10478 def testDAIPartitionByDifferentValues1(self):
10479 d=DataArrayInt([1,0,1,2,0,2,2,-3,2])
10480 expected=[[-3,[7]],[0,[1,4]],[1,[0,2]],[2,[3,5,6,8]]]
10481 for i,elt in enumerate(zip(*d.partitionByDifferentValues())):
10482 self.assertEqual(expected[i][0],elt[1])
10483 self.assertEqual(expected[i][1],elt[0].getValues())
10487 def testFieldGaussMultiDiscPerType1(self):
10488 coords=DataArrayDouble([0.,0.,0.,1.,1.,1.,1.,0.,0.,0.5,0.5,1.,1.,0.5,0.5,0.],8,2)
10489 mQ8=MEDCouplingUMesh("",2) ; mQ8.setCoords(coords)
10490 mQ8.allocateCells(1)
10491 mQ8.insertNextCell(NORM_QUAD8,range(8))
10492 mQ8.finishInsertingCells()
10493 mQ4=MEDCouplingUMesh("",2) ; mQ4.setCoords(coords)
10494 mQ4.allocateCells(1)
10495 mQ4.insertNextCell(NORM_QUAD4,range(4))
10496 mQ4.finishInsertingCells()
10497 mT3=MEDCouplingUMesh("",2) ; mT3.setCoords(coords)
10498 mT3.allocateCells(1)
10499 mT3.insertNextCell(NORM_TRI3,range(3))
10500 mT3.finishInsertingCells()
10502 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.]]
10503 ms=2*[mQ4]+7*[mQ8]+11*[mT3]
10504 ms[:]=(elt.deepCpy() for elt in ms)
10505 for m,t in zip(ms,tr):
10506 d=m.getCoords() ; d+= t
10508 m=MEDCouplingUMesh.MergeUMeshes(ms)
10509 f=MEDCouplingFieldDouble.New(ON_GAUSS_PT,NO_TIME)
10511 # throw because cell 0,1 are QUAD4 and cell 3 is QUAD8
10512 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])
10513 f.setGaussLocalizationOnCells([0,1],[0.,0.,1.,0.,1.,1.,0.,1.],[0.3,0.3,0.7,0.7],[0.8,0.2])
10514 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])
10515 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])
10516 f.setGaussLocalizationOnCells([9,10,11,12,13],[0.,0.,1.,0.,1.,1.],[0.4,0.4],[1.])
10517 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])
10518 self.assertEqual(46,f.getNumberOfTuplesExpected())
10519 vals=DataArrayDouble.New(46*3,1) ; vals.iota(7.7) ; vals.rearrange(3)
10522 #f.getLocalizationOfDiscr()
10523 self.assertRaises(InterpKernelException,f.getGaussLocalizationIdOfOneType,NORM_QUAD8) #throw because several loc
10524 self.assertEqual([1,2],f.getGaussLocalizationIdsOfOneType(NORM_QUAD8))
10525 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())
10527 fc.checkCoherency()
10528 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))
10529 fc.renumberCells([3,2,0,1])
10530 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))
10534 def testSwigRotate(self):
10535 d=DataArrayDouble([1.,2.,3.,4.,6.,5.],2,3)
10536 MEDCouplingPointSet.Rotate3DAlg([0.,0.,0.],[0.,1.,0.],1.5707963267948966,d)
10537 self.assertTrue(d.isEqual(DataArrayDouble([3.,2.,-1.,5.,6.,-4.],2,3),1e-12))
10538 d=DataArrayDouble([1.,2.,3.,4.,6.,5.],3,2)
10539 MEDCouplingPointSet.Rotate2DAlg([0.,0.],1.5707963267948966,d)
10540 self.assertTrue(d.isEqual(DataArrayDouble([-2.,1.,-4.,3.,-5.,6.],3,2),1e-12))
10543 def testSwigCMeshProtection(self):
10544 cm=MEDCouplingCMesh()
10545 self.assertRaises(InterpKernelException,cm.setCoordsAt,0,DataArrayDouble([4.,4.5,6.,7.],2,2))
10546 self.assertRaises(InterpKernelException,cm.setCoords,DataArrayDouble([4.,4.5,6.,7.],2,2))
10549 def testSwigCellsInBoundingBox1(self):
10550 m3D=MEDCouplingDataForTest.build3DExtrudedUMesh_1()[0]
10551 self.assertTrue(m3D.getCellsInBoundingBox([(0,3),(0,3),(0,1)],-1e-12).isEqual(DataArrayInt([0,1,2,3,4,5])))
10552 self.assertRaises(InterpKernelException,m3D.getCellsInBoundingBox,[(0,3,0),(3,0,1)],-1e-12)
10555 def testDAICheckMonotonic1(self):
10556 data1=[-1,0,2,2,4,5]
10557 data2=[6,2,0,-8,-9,-56]
10558 data3=[-1,0,3,2,4,6]
10559 data4=[7,5,2,3,0,-6]
10560 d=DataArrayInt.New(data1);
10561 self.assertTrue(d.isMonotonic(True));
10562 self.assertTrue(not d.isMonotonic(False));
10563 d.checkMonotonic(True);
10564 self.assertRaises(InterpKernelException,d.checkMonotonic,False)
10565 d=DataArrayInt.New(data2);
10566 self.assertTrue(d.isMonotonic(False));
10567 self.assertTrue(not d.isMonotonic(True));
10568 d.checkMonotonic(False);
10569 self.assertRaises(InterpKernelException,d.checkMonotonic,True)
10570 d=DataArrayInt.New(data3);
10571 self.assertTrue(not d.isMonotonic(False));
10572 self.assertTrue(not d.isMonotonic(True));
10573 self.assertRaises(InterpKernelException,d.checkMonotonic,True)
10574 self.assertRaises(InterpKernelException,d.checkMonotonic,False)
10575 d=DataArrayInt.New(data4);
10576 self.assertTrue(not d.isMonotonic(False));
10577 self.assertTrue(not d.isMonotonic(True));
10578 self.assertRaises(InterpKernelException,d.checkMonotonic,True)
10579 self.assertRaises(InterpKernelException,d.checkMonotonic,False)
10580 d=DataArrayInt.New(0,1)
10581 self.assertTrue(d.isMonotonic(True));
10582 self.assertTrue(d.isMonotonic(False));
10583 d.checkMonotonic(True);
10584 d.checkMonotonic(False);
10585 d=DataArrayInt.New(data4,3,2);#throw because nbComp!=1
10586 self.assertRaises(InterpKernelException,d.isMonotonic,True)
10587 self.assertRaises(InterpKernelException,d.isMonotonic,False)
10588 self.assertRaises(InterpKernelException,d.checkMonotonic,True)
10589 self.assertRaises(InterpKernelException,d.checkMonotonic,False)
10592 def testSwigDASetItemOnEmpty1(self):
10593 d=DataArrayInt(0,1)
10597 except InterpKernelException as e:
10600 self.assertTrue(isThrow)
10604 d=DataArrayDouble(0,1)
10608 except InterpKernelException as e:
10611 self.assertTrue(isThrow)
10614 d=DataArrayInt([],0,1)
10616 self.assertTrue(d2.isEqual(d))
10617 d=DataArrayDouble([],0,1)
10618 d2=DataArrayDouble(0)
10619 self.assertTrue(d2.isEqual(d,1e-12))
10622 def testSwigDAITransformWithIndArr1(self):
10623 arr=DataArrayInt([0,4,5,1])
10624 d=DataArrayInt([7,8,9,10])
10625 self.assertRaises(InterpKernelException,arr.transformWithIndArr,d)
10628 def testIntersect2DMeshesTmp6(self):
10630 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);
10632 conn=DataArrayInt.New([8,0,3,5,1,4,6,7,2])
10633 connI=DataArrayInt.New([0,9]);
10634 m1=MEDCouplingUMesh.New("Fixe",2);
10635 m1.setCoords(coords);
10636 m1.setConnectivity(conn,connI,True);
10638 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);
10640 conn=DataArrayInt.New([8,0,1,2,3,4,5,6,7,8,3,2,8,9,6,10,11,12]);
10641 connI=DataArrayInt.New([0,9,18]);
10643 m2=MEDCouplingUMesh.New("Mobile",2);
10644 m2.setCoords(coords);
10645 m2.setConnectivity(conn,connI,True);
10647 m3,d1,d2=MEDCouplingUMesh.Intersect2DMeshes(m1,m2,1e-10);
10648 self.assertTrue(d1.isEqual(DataArrayInt([0,0,0,0])));
10649 self.assertTrue(d2.isEqual(DataArrayInt([0,1,-1,-1])));
10650 self.assertEqual(4,m3.getNumberOfCells());
10651 self.assertEqual(4,d1.getNumberOfTuples());
10652 self.assertEqual(4,d2.getNumberOfTuples());
10653 self.assertEqual(43,m3.getNumberOfNodes());
10654 dI,areMerged,newNbOfNodes=m3.mergeNodes(1e-12)
10655 self.assertEqual(35,m3.getNumberOfNodes());
10657 self.assertEqual(23,m3.getNumberOfNodes());
10659 f=m3.getMeasureField(True);
10660 valuesExpected=DataArrayDouble([1.6603638692585716,5.747555728471923,129.68907101754394,7.4162714498559694])
10661 self.assertTrue(f.getArray().isEqual(valuesExpected,1e-12))
10664 def testDAPushBack(self):
10665 d=DataArrayDouble(0,1)
10666 for i in xrange(8):
10667 d.pushBackSilent(i)
10669 self.assertEqual(d.getNumberOfTuples(),8)
10670 self.assertEqual(d.getNbOfElemAllocated(),8)
10671 d.pushBackSilent(4.44)
10672 self.assertEqual(d.getNumberOfTuples(),9)
10673 self.assertEqual(d.getNbOfElemAllocated(),16)
10674 self.assertTrue(d.isEqual(DataArrayDouble([0.,1.,2.,3.,4.,5.,6.,7.,4.44]),1e-12))
10676 self.assertEqual(e.getNumberOfTuples(),9)
10677 self.assertEqual(e.getNbOfElemAllocated(),9)
10678 self.assertTrue(e.isEqual(DataArrayDouble([0.,1.,2.,3.,4.,5.,6.,7.,4.44]),1e-12))
10679 self.assertAlmostEqual(d.popBackSilent(),4.44,12)
10680 self.assertEqual(d.getNumberOfTuples(),8)
10681 self.assertEqual(d.getNbOfElemAllocated(),16)
10682 self.assertTrue(d.isEqual(DataArrayDouble([0.,1.,2.,3.,4.,5.,6.,7.]),1e-12))
10683 f=DataArrayDouble()
10685 f.pushBackSilent(4.)
10686 self.assertTrue(f.isEqual(DataArrayDouble([4.]),1e-12))
10687 self.assertEqual(f.getNumberOfTuples(),1)
10688 self.assertEqual(f.getNbOfElemAllocated(),1000)
10690 self.assertTrue(ff.isEqual(DataArrayDouble([4.]),1e-12))
10691 self.assertEqual(ff.getNumberOfTuples(),1)
10692 self.assertEqual(ff.getNbOfElemAllocated(),1)
10693 d=DataArrayDouble()
10694 d.pushBackSilent(4.44)
10695 d.pushBackSilent(5.55)
10696 d.pushBackSilent(6.66)
10697 self.assertTrue(d.isEqual(DataArrayDouble([4.44,5.55,6.66]),1e-12))
10699 d=DataArrayInt(0,1)
10700 for i in xrange(8):
10701 d.pushBackSilent(i)
10703 self.assertEqual(d.getNumberOfTuples(),8)
10704 self.assertEqual(d.getNbOfElemAllocated(),8)
10705 d.pushBackSilent(444)
10706 self.assertEqual(d.getNumberOfTuples(),9)
10707 self.assertEqual(d.getNbOfElemAllocated(),16)
10708 self.assertTrue(d.isEqual(DataArrayInt([0,1,2,3,4,5,6,7,444])))
10710 self.assertEqual(e.getNumberOfTuples(),9)
10711 self.assertEqual(e.getNbOfElemAllocated(),9)
10712 self.assertTrue(e.isEqual(DataArrayInt([0,1,2,3,4,5,6,7,444])))
10713 self.assertEqual(d.popBackSilent(),444)
10714 self.assertEqual(d.getNumberOfTuples(),8)
10715 self.assertEqual(d.getNbOfElemAllocated(),16)
10716 self.assertTrue(d.isEqual(DataArrayInt([0,1,2,3,4,5,6,7])))
10719 f.pushBackSilent(4)
10720 self.assertTrue(f.isEqual(DataArrayInt([4])))
10721 self.assertEqual(f.getNumberOfTuples(),1)
10722 self.assertEqual(f.getNbOfElemAllocated(),1000)
10724 self.assertTrue(ff.isEqual(DataArrayInt([4])))
10725 self.assertEqual(ff.getNumberOfTuples(),1)
10726 self.assertEqual(ff.getNbOfElemAllocated(),1)
10728 d.pushBackSilent(444)
10729 d.pushBackSilent(555)
10730 d.pushBackSilent(666)
10731 self.assertTrue(d.isEqual(DataArrayInt([444,555,666])))
10735 d.setInfoOnComponent(0,"ABC")
10738 e=DataArrayInt([7,8,9,10,11,12,13,14,15,16]) ; e.copyStringInfoFrom(d) ; self.assertTrue(d.isEqual(e))
10739 self.assertEqual(10,d.getNbOfElemAllocated())
10740 d.pushBackSilent(55)
10741 e=DataArrayInt([7,8,9,10,11,12,13,14,15,16,55]) ; e.copyStringInfoFrom(d) ; self.assertTrue(d.isEqual(e))
10742 self.assertEqual(20,d.getNbOfElemAllocated())
10744 e=DataArrayInt([7,8,9,10]) ; e.copyStringInfoFrom(d) ; self.assertTrue(d.isEqual(e))
10745 self.assertEqual(4,d.getNbOfElemAllocated())
10746 d.pushBackSilent(5)
10747 e=DataArrayInt([7,8,9,10,5]) ; e.copyStringInfoFrom(d) ; self.assertTrue(d.isEqual(e))
10748 self.assertEqual(8,d.getNbOfElemAllocated())
10749 self.assertEqual(5,d.popBackSilent())
10750 e=DataArrayInt([7,8,9,10]) ; e.copyStringInfoFrom(d) ; self.assertTrue(d.isEqual(e))
10751 self.assertEqual(8,d.getNbOfElemAllocated())
10752 self.assertRaises(OverflowError,d.reserve,-1)
10753 e=DataArrayInt([7,8,9,10]) ; e.copyStringInfoFrom(d) ; self.assertTrue(d.isEqual(e))
10754 self.assertEqual(8,d.getNbOfElemAllocated())
10756 e=DataArrayInt([]) ; e.setInfoOnComponent(0,"ABC") ; e.setName("dEf") ; self.assertTrue(d.isEqual(e))
10757 self.assertEqual(0,d.getNbOfElemAllocated())
10759 d=DataArrayDouble()
10761 d.setInfoOnComponent(0,"ABC")
10764 e=DataArrayDouble([7,8,9,10,11,12,13,14,15,16]) ; e.copyStringInfoFrom(d) ; self.assertTrue(d.isEqual(e,1e-14))
10765 self.assertEqual(10,d.getNbOfElemAllocated())
10766 d.pushBackSilent(55)
10767 e=DataArrayDouble([7,8,9,10,11,12,13,14,15,16,55]) ; e.copyStringInfoFrom(d) ; self.assertTrue(d.isEqual(e,1e-14))
10768 self.assertEqual(20,d.getNbOfElemAllocated())
10770 e=DataArrayDouble([7,8,9,10]) ; e.copyStringInfoFrom(d) ; self.assertTrue(d.isEqual(e,1e-14))
10771 self.assertEqual(4,d.getNbOfElemAllocated())
10772 d.pushBackSilent(5)
10773 e=DataArrayDouble([7,8,9,10,5]) ; e.copyStringInfoFrom(d) ; self.assertTrue(d.isEqual(e,1e-14))
10774 self.assertEqual(8,d.getNbOfElemAllocated())
10775 self.assertEqual(5.,d.popBackSilent())
10776 e=DataArrayDouble([7,8,9,10]) ; e.copyStringInfoFrom(d) ; self.assertTrue(d.isEqual(e,1e-14))
10777 self.assertEqual(8,d.getNbOfElemAllocated())
10778 self.assertRaises(OverflowError,d.reserve,-1)
10779 e=DataArrayDouble([7,8,9,10]) ; e.copyStringInfoFrom(d) ; self.assertTrue(d.isEqual(e,1e-14))
10780 self.assertEqual(8,d.getNbOfElemAllocated())
10782 e=DataArrayDouble([]) ; e.setInfoOnComponent(0,"ABC") ; e.setName("dEf") ; self.assertTrue(d.isEqual(e,1e-14))
10783 self.assertEqual(0,d.getNbOfElemAllocated())
10786 def testDAIBuildSubstractionOptimized1(self):
10787 da1=DataArrayInt.New([1,3,5,6,7,9,13])
10788 da2=DataArrayInt.New([3,5,9])
10789 da3=DataArrayInt.New([1,3,5])
10790 da4=DataArrayInt.New([1,3,5,6,7,9,13])
10792 a=da1.buildSubstractionOptimized(da2);
10793 self.assertTrue(a.isEqual(DataArrayInt([1,6,7,13])));
10795 a=da1.buildSubstractionOptimized(da3);
10796 self.assertTrue(a.isEqual(DataArrayInt([6,7,9,13])));
10798 a=da1.buildSubstractionOptimized(da4);
10799 self.assertTrue(a.isEqual(DataArrayInt([])));
10802 def testDAIIsStrictlyMonotonic1(self):
10803 da1=DataArrayInt.New([1,3,5,6,7,9,13])
10804 self.assertTrue(da1.isStrictlyMonotonic(True));
10805 da1.checkStrictlyMonotonic(True);
10806 self.assertTrue(da1.isMonotonic(True));
10807 da1.checkMonotonic(True);
10808 self.assertTrue(not da1.isStrictlyMonotonic(False));
10809 self.assertRaises(InterpKernelException,da1.checkStrictlyMonotonic,False)
10810 self.assertTrue(not da1.isMonotonic(False));
10811 self.assertRaises(InterpKernelException,da1.checkMonotonic,False)
10813 da1=DataArrayInt.New([1,3,5,6,6,9,13])
10814 self.assertTrue(not da1.isStrictlyMonotonic(True));
10815 self.assertRaises(InterpKernelException,da1.checkStrictlyMonotonic,True)
10816 self.assertTrue(da1.isMonotonic(True));
10817 da1.checkMonotonic(True);
10818 self.assertTrue(not da1.isStrictlyMonotonic(False));
10819 self.assertRaises(InterpKernelException,da1.checkStrictlyMonotonic,False)
10820 self.assertTrue(not da1.isMonotonic(False));
10821 self.assertRaises(InterpKernelException,da1.checkMonotonic,False)
10823 da1=DataArrayInt.New([1,3,5,6,5,9,13])
10824 self.assertTrue(not da1.isStrictlyMonotonic(True));
10825 self.assertRaises(InterpKernelException,da1.checkStrictlyMonotonic,True)
10826 self.assertTrue(not da1.isMonotonic(True));
10827 self.assertRaises(InterpKernelException,da1.checkMonotonic,True)
10828 self.assertTrue(not da1.isStrictlyMonotonic(False));
10829 self.assertRaises(InterpKernelException,da1.checkStrictlyMonotonic,False)
10830 self.assertTrue(not da1.isMonotonic(False));
10831 self.assertRaises(InterpKernelException,da1.checkMonotonic,False)
10833 da1=DataArrayInt.New([13,9,7,6,5,3,1])
10834 self.assertTrue(not da1.isStrictlyMonotonic(True));
10835 self.assertRaises(InterpKernelException,da1.checkStrictlyMonotonic,True)
10836 self.assertTrue(not da1.isMonotonic(True));
10837 self.assertRaises(InterpKernelException,da1.checkMonotonic,True)
10838 self.assertTrue(da1.isStrictlyMonotonic(False));
10839 da1.checkStrictlyMonotonic(False);
10840 self.assertTrue(da1.isMonotonic(False));
10841 da1.checkMonotonic(False);
10843 da1=DataArrayInt.New([13,9,6,6,5,3,1])
10844 self.assertTrue(not da1.isStrictlyMonotonic(True));
10845 self.assertRaises(InterpKernelException,da1.checkStrictlyMonotonic,True)
10846 self.assertTrue(not da1.isMonotonic(True));
10847 self.assertRaises(InterpKernelException,da1.checkMonotonic,True)
10848 self.assertTrue(not da1.isStrictlyMonotonic(False));
10849 self.assertRaises(InterpKernelException,da1.checkStrictlyMonotonic,False)
10850 self.assertTrue(da1.isMonotonic(False));
10851 da1.checkMonotonic(False);
10853 da1=DataArrayInt.New([13,9,5,6,5,3,1])
10854 self.assertTrue(not da1.isStrictlyMonotonic(True));
10855 self.assertRaises(InterpKernelException,da1.checkStrictlyMonotonic,True)
10856 self.assertTrue(not da1.isMonotonic(True));
10857 self.assertRaises(InterpKernelException,da1.checkMonotonic,True)
10858 self.assertTrue(not da1.isStrictlyMonotonic(False));
10859 self.assertRaises(InterpKernelException,da1.checkStrictlyMonotonic,False)
10860 self.assertTrue(not da1.isMonotonic(False));
10861 self.assertRaises(InterpKernelException,da1.checkMonotonic,False)
10863 da1=DataArrayInt.New([])
10864 self.assertTrue(da1.isStrictlyMonotonic(True));
10865 da1.checkStrictlyMonotonic(True);
10866 self.assertTrue(da1.isMonotonic(True));
10867 da1.checkMonotonic(True);
10868 self.assertTrue(da1.isStrictlyMonotonic(False));
10869 da1.checkStrictlyMonotonic(False);
10870 self.assertTrue(da1.isMonotonic(False));
10871 da1.checkMonotonic(False);
10873 da1=DataArrayInt.New([13])
10874 self.assertTrue(da1.isStrictlyMonotonic(True));
10875 da1.checkStrictlyMonotonic(True);
10876 self.assertTrue(da1.isMonotonic(True));
10877 da1.checkMonotonic(True);
10878 self.assertTrue(da1.isStrictlyMonotonic(False));
10879 da1.checkStrictlyMonotonic(False);
10880 self.assertTrue(da1.isMonotonic(False));
10881 da1.checkMonotonic(False);
10884 def testFindAndCorrectBadOriented3DCells1(self):
10886 vects=([0,0,-1],[0.3,0.7,0.2],[-0.3,0.7,0.2],[-0.3,-0.7,0.2])
10888 m0=MEDCouplingUMesh("m",3) ; m0.allocateCells(0); m0.insertNextCell(NORM_TETRA4,[0,1,2,3]); #Well oriented
10889 m1=MEDCouplingUMesh("m",3) ; m1.allocateCells(0); m1.insertNextCell(NORM_PYRA5,[0,1,2,3,4]); #Well oriented
10890 m2=MEDCouplingUMesh("m",3) ; m2.allocateCells(0); m2.insertNextCell(NORM_PENTA6,[0,1,2,3,4,5]); #Well oriented
10891 m3=MEDCouplingUMesh("m",3) ; m3.allocateCells(0); m3.insertNextCell(NORM_HEXA8,[0,1,2,3,4,5,6,7]); #Well oriented
10892 m4=MEDCouplingUMesh("m",3) ; m4.allocateCells(0)
10893 self.assertRaises(InterpKernelException,m4.insertNextCell,NORM_HEXGP12,[0,1,2,3,4,5,6,7,8,9,10,11,12]);
10894 m4.insertNextCell(NORM_HEXGP12,[0,1,2,3,4,5,6,7,8,9,10,11]); #Well oriented
10895 c0=DataArrayDouble([0.,0.,0.,0.,1.,0.,1.,0.,0.,0.,0.,1.],4,3) ; m0.setCoords(c0)
10896 c1=DataArrayDouble([0.,0.,0.,0.,1.,0.,1.,1.,0.,1.,0.,0.,0.,0.,1.],5,3) ; m1.setCoords(c1)
10897 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)
10898 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)
10899 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)
10900 m=MEDCouplingMesh.MergeMeshes([m0,m1,m2,m3,m4])
10901 expected1=DataArrayDouble([0.16666666666666666,0.3333333333333333,0.5,1.,1.])
10903 for i in xrange(nbOfDisc):
10905 mm.rotate([0.,0.,0.],[0.3,0.7,0.2],float(i)/float(nbOfDisc)*2*pi)
10907 self.assertTrue(mm.getMeasureField(False).getArray().isEqual(expected1,1e-14))
10908 self.assertTrue(mm.findAndCorrectBadOriented3DCells().empty())
10909 self.assertTrue(mm.isEqual(mm2,1e-14))
10910 self.assertTrue(mm.getMeasureField(False).getArray().isEqual(expected1,1e-14))
10911 mm.convertAllToPoly()
10912 self.assertTrue(mm.getMeasureField(False).getArray().isEqual(expected1,1e-14))
10917 m0=MEDCouplingUMesh("m",3) ; m0.allocateCells(0); m0.insertNextCell(NORM_TETRA4,[0,2,1,3]); #Not well oriented
10918 m1=MEDCouplingUMesh("m",3) ; m1.allocateCells(0); m1.insertNextCell(NORM_PYRA5,[0,1,2,3,4]); #Well oriented
10919 m2=MEDCouplingUMesh("m",3) ; m2.allocateCells(0); m2.insertNextCell(NORM_PENTA6,[0,1,2,3,4,5]); #Well oriented
10920 m3=MEDCouplingUMesh("m",3) ; m3.allocateCells(0); m3.insertNextCell(NORM_HEXA8,[0,3,2,1,4,7,6,5]); #Not well oriented
10921 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
10922 m0.setCoords(c0) ; m1.setCoords(c1) ; m2.setCoords(c2) ; m3.setCoords(c3) ; m4.setCoords(c4)
10923 m=MEDCouplingMesh.MergeMeshes([m0,m1,m2,m3,m4])
10924 expected2=DataArrayDouble([-0.16666666666666666,0.3333333333333333,0.5,-1.,-1.])
10926 for i in xrange(nbOfDisc):
10928 mm.rotate([0.,0.,0.],[0.3,0.7,0.2],float(i)/float(nbOfDisc)*2*pi)
10929 mm2=mm.deepCpy() ; mm3=mm.deepCpy() ; mm3.convertAllToPoly()
10930 self.assertTrue(mm3.getMeasureField(False).getArray().isEqual(expected2,1e-14))
10931 self.assertTrue(mm.getMeasureField(False).getArray().isEqual(expected2,1e-14))
10932 self.assertTrue(mm.findAndCorrectBadOriented3DCells().isEqual(DataArrayInt([0,3,4])))
10933 mOK.setCoords(mm.getCoords())
10934 self.assertTrue(mm.isEqual(mOK,1e-14))
10935 self.assertTrue(mm.getMeasureField(False).getArray().isEqual(expected1,1e-14))
10937 self.assertTrue(mmm.findAndCorrectBadOriented3DCells().empty())
10938 mm.convertAllToPoly()
10939 self.assertTrue(mm.getMeasureField(False).getArray().isEqual(expected1,1e-14))
10943 m0=MEDCouplingUMesh("m",3) ; m0.allocateCells(0); m0.insertNextCell(NORM_TETRA4,[0,1,2,3]); #Well oriented
10944 m1=MEDCouplingUMesh("m",3) ; m1.allocateCells(0); m1.insertNextCell(NORM_PYRA5,[0,3,2,1,4]); #Not well oriented
10945 m2=MEDCouplingUMesh("m",3) ; m2.allocateCells(0); m2.insertNextCell(NORM_PENTA6,[0,2,1,3,5,4]); #Not well oriented
10946 m3=MEDCouplingUMesh("m",3) ; m3.allocateCells(0); m3.insertNextCell(NORM_HEXA8,[0,1,2,3,4,5,6,7]); #Well oriented
10947 m4=MEDCouplingUMesh("m",3) ; m4.allocateCells(0); m4.insertNextCell(NORM_HEXGP12,range(12)); #Well oriented
10948 m0.setCoords(c0) ; m1.setCoords(c1) ; m2.setCoords(c2) ; m3.setCoords(c3) ; m4.setCoords(c4)
10949 m=MEDCouplingMesh.MergeMeshes([m0,m1,m2,m3,m4])
10950 expected3=DataArrayDouble([0.16666666666666666,-0.3333333333333333,-0.5,1.,1.])
10952 for i in xrange(nbOfDisc):
10954 mm.rotate([0.,0.,0.],[0.3,0.7,0.2],float(i)/float(nbOfDisc)*2*pi)
10955 mm2=mm.deepCpy() ; mm3=mm.deepCpy() ; mm3.convertAllToPoly()
10956 self.assertTrue(mm3.getMeasureField(False).getArray().isEqual(expected3,1e-14))
10957 self.assertTrue(mm.getMeasureField(False).getArray().isEqual(expected3,1e-14))
10958 self.assertTrue(mm.findAndCorrectBadOriented3DCells().isEqual(DataArrayInt([1,2])))
10959 mOK.setCoords(mm.getCoords())
10960 self.assertTrue(mm.isEqual(mOK,1e-14))
10961 self.assertTrue(mm.getMeasureField(False).getArray().isEqual(expected1,1e-14))
10963 self.assertTrue(mmm.findAndCorrectBadOriented3DCells().empty())
10964 mm.convertAllToPoly()
10965 self.assertTrue(mm.getMeasureField(False).getArray().isEqual(expected1,1e-14))
10970 def testSwig2CellOrientation1(self):
10971 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)
10972 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]]
10973 for i in xrange(256):
10974 mesh=MEDCouplingUMesh("FluidMesh_1",3);
10975 mesh.allocateCells(0)
10976 conn2=[elt[:] for elt in conn]
10977 code=bin(i)[2:] ; code='0'*(8-len(code))+code
10978 for face,rev in zip(conn2,code):
10983 conn3=[elt+[-1] for elt in conn2]
10984 conn3=sum(conn3,[])[:-1]
10985 mesh.insertNextCell(NORM_POLYHED,conn3)
10986 mesh.setCoords(coords)
10987 mesh.orientCorrectlyPolyhedrons()
10988 self.assertTrue(mesh.getBarycenterAndOwner().isEqual(DataArrayDouble([-0.10803,0.,0.3385],1,3),1e-12))
10992 def testSwig2CheckConsecutiveCellTypesForMEDFileFrmt1(self):
10993 m1=MEDCouplingUMesh("",2) ; m1.allocateCells(0)
10994 m1.insertNextCell(NORM_QUAD4,[0,1,2,3])
10995 m1.insertNextCell(NORM_TRI3,[0,1,2])
10996 d=DataArrayDouble(4,3) ; d[:]=0.
10998 self.assertTrue(m1.checkConsecutiveCellTypes())
10999 self.assertTrue(not m1.checkConsecutiveCellTypesForMEDFileFrmt())
11000 m1.renumberCells([1,0])
11001 self.assertTrue(m1.checkConsecutiveCellTypes())
11002 self.assertTrue(m1.checkConsecutiveCellTypesForMEDFileFrmt())
11005 def testSwig2DAAccumulate1(self):
11006 d=DataArrayInt(10) ; d.iota(0)
11007 self.assertEqual([45],d.accumulate())
11008 self.assertEqual(45,d.accumulate(0))
11009 d=DataArrayInt(30) ; d.iota(0) ; d.rearrange(3)
11010 self.assertEqual([135,145,155],d.accumulate())
11011 self.assertEqual(135,d.accumulate(0))
11012 self.assertEqual(145,d.accumulate(1))
11013 self.assertEqual(155,d.accumulate(2))
11014 d=DataArrayDouble(10) ; d.iota(0.)
11015 self.assertEqual([45.],d.accumulate())
11016 self.assertEqual(45.,d.accumulate(0))
11017 d=DataArrayDouble(30) ; d.iota(0) ; d.rearrange(3)
11018 self.assertEqual([135.,145.,155.],d.accumulate())
11019 self.assertEqual(135.,d.accumulate(0))
11020 self.assertEqual(145.,d.accumulate(1))
11021 self.assertEqual(155.,d.accumulate(2))
11024 def testSwig2UMeshDistanceToMesh1(self):
11025 m=MEDCouplingUMesh("toto",2)
11026 coords=DataArrayDouble([2.3,3.4,5.6,6.5,-4.3,3.2,-9.8,7.6,-5.4],3,3)
11027 m.setCoords(coords)
11029 m.insertNextCell(NORM_TRI3,[0,1,2])
11030 a,b=m.distanceToPoint([-0.335,2.27,1.21])
11031 self.assertEqual(0,b)
11032 self.assertAlmostEqual(0.022360988100374124,a,14);
11033 a,b=m.distanceToPoint(DataArrayDouble([-0.335,2.27,1.21],1,3))
11034 self.assertEqual(0,b)
11035 self.assertAlmostEqual(0.022360988100374124,a,14);
11036 a,b=coords.distanceToTuple([-0.335,2.27,1.21])
11037 self.assertAlmostEqual(5.243302871282566,a,14)
11038 self.assertEqual(0,b)
11040 m=MEDCouplingUMesh("toto",2)
11041 coords=DataArrayDouble([0.,0.,0., 8.,0.,0., 8.,8.,0., 0.,8.,0.],4,3)
11042 m.setCoords(coords)
11044 m.insertNextCell(NORM_QUAD4,[0,1,2,3])
11045 m.checkCoherency2()
11046 self.assertEqual([4,0,1,2,3],m.getNodalConnectivity().getValues())
11047 a,b=m.distanceToPoint([5.,2.,0.1])
11048 self.assertAlmostEqual(0.1,a,14) ; self.assertEqual(0,b)
11049 a,b=m.distanceToPoint([5.,-2.,4.])
11050 self.assertAlmostEqual(sqrt(2*2+4*4),a,14) ; self.assertEqual(0,b)
11052 m.insertNextCell(NORM_POLYGON,[0,1,2,3])
11053 m.checkCoherency2()
11054 self.assertEqual([5,0,1,2,3],m.getNodalConnectivity().getValues())
11055 a,b=m.distanceToPoint([11.,3.,4.])
11056 self.assertAlmostEqual(sqrt(3*3+4*4),a,14) ; self.assertEqual(0,b)
11057 a,b=m.distanceToPoint([4.,12.,5.])
11058 self.assertAlmostEqual(sqrt(4*4+5*5),a,14) ; self.assertEqual(0,b)
11059 d=DataArrayDouble([-1.2,3.,2.],1,3)
11061 a,b=m.distanceToPoint(d)
11062 self.assertAlmostEqual(sqrt(1.2*1.2+2*2),a,14) ; self.assertEqual(0,b)
11065 m=MEDCouplingUMesh("toto",1)
11066 coords=DataArrayDouble([0.,0.,4.,0.,0.,4.],3,2) ; m.setCoords(coords)
11067 m.allocateCells(0) ; m.insertNextCell(NORM_SEG2,[0,1]) ; m.insertNextCell(NORM_SEG2,[1,2])
11068 a,b=m.distanceToPoint([-0.1,4.1])
11069 self.assertAlmostEqual(0.14142135623730925,a,14) # b==1 self.assertEqual(2,c)
11070 a,b=m.distanceToPoint([0.,3.9])
11071 self.assertAlmostEqual(0.07071067811865482,a,14) ; self.assertEqual(1,b) # self.assertEqual(2,c)
11074 def testSwig2NonRegressionPartitionBySpreadZone1(self):
11075 m=MEDCouplingCMesh()
11076 arr=DataArrayDouble(6) ; arr.iota(0.)
11077 m.setCoords(arr,arr,arr)
11078 m=m.buildUnstructured()
11079 mPart=m[50,80,85,87,92,122]
11080 zones=mPart.partitionBySpreadZone()
11081 self.assertEqual(4,len(zones))
11082 self.assertTrue(zones[0].isEqual(DataArrayInt([0])))
11083 self.assertTrue(zones[1].isEqual(DataArrayInt([1,2])))
11084 self.assertTrue(zones[2].isEqual(DataArrayInt([3,4])))
11085 self.assertTrue(zones[3].isEqual(DataArrayInt([5])))
11087 n,ni=m.computeNeighborsOfCells()
11088 a,b=MEDCouplingUMesh.ComputeSpreadZoneGraduallyFromSeed(0,n,ni)
11089 self.assertEqual(13,b) ; self.assertEqual(125,len(a)) ; self.assertTrue(a.isIdentity())
11090 a,b=MEDCouplingUMesh.ComputeSpreadZoneGraduallyFromSeed([1],n,ni)
11091 self.assertEqual(12,b) ; self.assertEqual(125,len(a)) ; self.assertTrue(a.isIdentity())
11092 a,b=MEDCouplingUMesh.ComputeSpreadZoneGraduallyFromSeed((2,),n,ni)
11093 self.assertEqual(11,b) ; self.assertEqual(125,len(a)) ; self.assertTrue(a.isIdentity())
11094 a,b=MEDCouplingUMesh.ComputeSpreadZoneGraduallyFromSeed(DataArrayInt([3]),n,ni)
11095 self.assertEqual(12,b) ; self.assertEqual(125,len(a)) ; self.assertTrue(a.isIdentity())
11098 def testSwigUMeshInsertNextCell1(self):
11099 m=MEDCouplingUMesh("toto",2)
11101 coords=DataArrayDouble([0.,0.,1.,1.,1.,0.]) ; m.setCoords(coords)
11102 da=DataArrayInt([0,1,2])
11104 for i in xrange(5):
11105 m.insertNextCell(NORM_TRI3,da)
11107 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])))
11108 self.assertTrue(m.getNodalConnectivityIndex().isEqual(DataArrayInt([0,4,8,12,16,20])))
11110 da=DataArrayInt([0,1,2,3])
11112 for i in xrange(5):
11113 m.insertNextCell(NORM_TRI3,3,da)
11115 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])))
11116 self.assertTrue(m.getNodalConnectivityIndex().isEqual(DataArrayInt([0,4,8,12,16,20])))
11118 da=DataArrayInt([0,1])
11120 self.assertRaises(InterpKernelException,m.insertNextCell,NORM_TRI3,3,da)
11122 da=DataArrayInt([0,1,2,0,1,3,0,1,4,0,1,5,0,1,6],5,3)
11125 m.insertNextCell(NORM_TRI3,t)
11127 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])))
11128 self.assertTrue(m.getNodalConnectivityIndex().isEqual(DataArrayInt([0,4,8,12,16,20])))
11129 self.assertRaises(InterpKernelException,m.insertNextCell,NORM_TRI3,None)
11132 def testSwigCurveLinearMesh1(self):
11133 m=MEDCouplingCurveLinearMesh("toto")
11134 m.setNodeGridStructure([2,3])
11135 coords=DataArrayDouble([0.,0., 2.,0., 0.,1., 1.9,1.1, 0.3,1.9, 2.2,2.1],6,2)
11136 m.setCoords(coords)
11139 self.assertTrue(m0.isEqual(m,1e-12))
11140 m.getCoords().setInfoOnComponents(["X [m]","Y [m]"])
11141 self.assertTrue(not m0.isEqual(m,1e-12))
11143 self.assertTrue(m0.isEqual(m,1e-12))
11144 self.assertEqual(m.getNodeGridStructure(),(2,3))
11147 def testSimplexize3(self):
11148 m=MEDCouplingUMesh("toto",3)
11150 m.insertNextCell(NORM_TETRA4,[0,1,2,3])
11151 self.assertEqual([NORM_TETRA4],m.getAllGeoTypesSorted())
11152 m.insertNextCell(NORM_HEXA8,[4,5,6,7,8,9,10,11])
11153 self.assertEqual([NORM_TETRA4,NORM_HEXA8],m.getAllGeoTypesSorted())
11154 m.insertNextCell(NORM_HEXA8,[12,13,14,15,16,17,18,19])
11155 self.assertEqual([NORM_TETRA4,NORM_HEXA8],m.getAllGeoTypesSorted())
11156 m.insertNextCell(NORM_TETRA4,[20,21,22,23])
11157 self.assertEqual([NORM_TETRA4,NORM_HEXA8,NORM_TETRA4],m.getAllGeoTypesSorted())
11158 c1=DataArrayDouble([0.,0.,0.,0.,1.,0.,1.,0.,0.,0.,0.,1.],4,3)
11159 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.]
11162 c=DataArrayDouble.Aggregate([c1,c2,c3,c4])
11164 m.checkCoherency2()
11167 d1=m1.simplexize(PLANAR_FACE_5)
11168 m1.checkCoherency2()
11169 vol1=m1.getMeasureField(ON_CELLS).getArray()
11170 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))
11171 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])
11172 self.assertEqual(m1.getNodalConnectivityIndex().getValues(),[0,5,10,15,20,25,30,35,40,45,50,55,60])
11173 self.assertTrue(d1.isEqual(DataArrayInt([0,1,1,1,1,1,2,2,2,2,2,3])))
11176 d2=m2.simplexize(PLANAR_FACE_6)
11177 m2.checkCoherency2()
11178 vol2=m2.getMeasureField(ON_CELLS).getArray()
11179 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))
11180 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])
11181 self.assertEqual(m2.getNodalConnectivityIndex().getValues(),[0,5,10,15,20,25,30,35,40,45,50,55,60,65,70])
11182 self.assertTrue(d2.isEqual(DataArrayInt([0,1,1,1,1,1,1,2,2,2,2,2,2,3])))
11185 def testSwig2CurveLinearMesh2(self):
11186 c=MEDCouplingCMesh()
11188 arr1=DataArrayDouble([0,1,3,7])
11189 arr2=DataArrayDouble([0,1,1.5])
11190 c.setCoords(arr1,arr2)
11191 u=c.buildUnstructured()
11193 cl=MEDCouplingCurveLinearMesh()
11195 cl.setNodeGridStructure([4,3])
11196 cl.checkCoherency2()
11197 li1=[1.,2.,4.,0.5,1.,2.]
11198 self.assertTrue(cl.getMeasureField(False).getArray().isEqual(DataArrayDouble(li1),1e-14))
11199 self.assertTrue(u.getMeasureField(False).getArray().isEqual(DataArrayDouble(li1),1e-14))
11200 li1_1=[0.5,0.5,2.,0.5,5.,0.5,0.5,1.25,2.,1.25,5.,1.25]
11201 self.assertTrue(cl.getBarycenterAndOwner().isEqual(DataArrayDouble(li1_1,6,2),1e-14))
11202 self.assertTrue(u.getBarycenterAndOwner().isEqual(DataArrayDouble(li1_1,6,2),1e-14))
11204 c.setCoords(arr1,arr2,arr2)
11205 u=c.buildUnstructured()
11207 cl=MEDCouplingCurveLinearMesh()
11209 cl.setNodeGridStructure([4,3,3])
11210 cl.checkCoherency2()
11211 li2=[1.,2.,4.,0.5, 1.,2.,0.5,1.,2.,0.25,0.5,1.]
11212 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]
11213 self.assertTrue(cl.getMeasureField(False).getArray().isEqual(DataArrayDouble(li2),1e-14))
11214 self.assertTrue(u.getMeasureField(False).getArray().isEqual(DataArrayDouble(li2),1e-14))
11215 self.assertTrue(cl.getBarycenterAndOwner().isEqual(DataArrayDouble(li2_1,12,3),1e-14))
11216 self.assertTrue(u.getBarycenterAndOwner().isEqual(DataArrayDouble(li2_1,12,3),1e-14))
11218 coo=DataArrayDouble(5) ; coo.iota(0.)
11221 cl.setNodeGridStructure([5])
11222 cl.checkCoherency2()
11224 li3_1=[0.5,2.5,6.5,12.5]
11225 self.assertTrue(cl.getMeasureField(False).getArray().isEqual(DataArrayDouble(li3),1e-14))
11226 self.assertTrue(cl.buildUnstructured().getMeasureField(False).getArray().isEqual(DataArrayDouble(li3),1e-14))
11227 self.assertTrue(cl.getBarycenterAndOwner().isEqual(DataArrayDouble(li3_1),1e-14))
11228 self.assertTrue(cl.buildUnstructured().getBarycenterAndOwner().isEqual(DataArrayDouble(li3_1),1e-14))
11230 coo=DataArrayDouble.Meld(coo,coo)
11232 cl.checkCoherency2()
11233 li4=[sqrt(2.)*elt for elt in [1.,3.,5.,7.]]
11234 li4_1=[0.5,0.5,2.5,2.5,6.5,6.5,12.5,12.5]
11235 self.assertEqual(2,cl.getSpaceDimension())
11236 self.assertEqual(1,cl.getMeshDimension())
11237 self.assertEqual(4,cl.getNumberOfCells())
11238 self.assertEqual(5,cl.getNumberOfNodes())
11239 self.assertTrue(cl.getMeasureField(False).getArray().isEqual(DataArrayDouble(li4),1e-14))
11240 self.assertTrue(cl.buildUnstructured().getMeasureField(False).getArray().isEqual(DataArrayDouble(li4),1e-14))
11241 self.assertTrue(cl.getBarycenterAndOwner().isEqual(DataArrayDouble(li4_1,4,2),1e-14))
11242 self.assertTrue(cl.buildUnstructured().getBarycenterAndOwner().isEqual(DataArrayDouble(li4_1,4,2),1e-14))
11245 def testSwig2CurveLinearMeshNonRegression1(self):
11246 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)
11247 m=MEDCouplingCurveLinearMesh("toto")
11248 m.setCoords(coords)
11249 m.setNodeGridStructure([3,3,3])
11251 vol=m.getMeasureField(False).getArray()
11252 self.assertTrue(vol.isEqual(DataArrayDouble([0.11450000709295281, 0.10583334351579375,0.11149999939029423,0.08866666863113633, 0.1404166805123294,0.1250000135352219,0.1270833433481557,0.13258334288001067]),1e-12))
11253 self.assertTrue(vol.isEqual(m.buildUnstructured().getMeasureField(False).getArray(),1e-12))
11255 self.assertTrue(m.getBarycenterAndOwner().isEqual(m.buildUnstructured().getBarycenterAndOwner(),1e-12))
11258 def testSwig2NonRegressionDASetSelectedComponents1(self):
11259 da=DataArrayDouble.New([1.,2.,3.,4.,5.,6.],3,2)
11260 dv=DataArrayDouble.New();
11263 # da has less tuples than dv
11264 dv.setSelectedComponents(da,[1,0])
11266 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))
11268 da=DataArrayInt.New([1,2,3,4,5,6],3,2)
11269 dv=DataArrayInt.New();
11272 # da has less tuples than dv
11273 dv.setSelectedComponents(da,[1,0])
11275 self.assertTrue(dv.isEqual(DataArrayInt([2,1,0,0,4,3,0,0,6,5,0,0,0,0,0,0],4,4)))
11278 def testSwigSetItem3(self):
11280 d=DataArrayDouble([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11282 self.assertTrue(d.isEqual(DataArrayDouble([0,0,0,0,0,0,1,2,0,0,0,0],6,2),1e-14))
11284 d=DataArrayDouble([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11286 self.assertTrue(d.isEqual(DataArrayDouble([0,0,0,0,1,2,1,2,0,0,1,2],6,2),1e-14))
11288 d=DataArrayDouble([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11290 self.assertTrue(d.isEqual(DataArrayDouble([1,2,1,2,1,2,1,2,1,2,1,2],6,2),1e-14))
11292 d=DataArrayDouble([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11293 d[DataArrayInt([0,3,4])]=[1,2]
11294 self.assertTrue(d.isEqual(DataArrayDouble([1,2,0,0,0,0,1,2,1,2,0,0],6,2),1e-14))
11296 d=DataArrayDouble([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11298 self.assertTrue(d.isEqual(DataArrayDouble([0,0,0,0,0,0,0,0,0,0,0,7],6,2),1e-14))
11300 d=DataArrayDouble([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11302 self.assertTrue(d.isEqual(DataArrayDouble([0,0,0,0,0,0,0,7,0,0,0,7],6,2),1e-14))
11304 d=DataArrayDouble([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11306 self.assertTrue(d.isEqual(DataArrayDouble([0,7,0,0,0,7,0,0,0,7,0,0],6,2),1e-14))
11308 d=DataArrayDouble([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11309 d[DataArrayInt([0,3,4]),1]=[7]
11310 self.assertTrue(d.isEqual(DataArrayDouble([0,7,0,0,0,0,0,7,0,7,0,0],6,2),1e-14))
11312 d=DataArrayDouble([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11314 self.assertTrue(d.isEqual(DataArrayDouble([0,0,0,0,0,0,8,7,0,0,0,0],6,2),1e-14))
11316 d=DataArrayDouble([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11317 d[[1,3,4],[1,0]]=[7,8]
11318 self.assertTrue(d.isEqual(DataArrayDouble([0,0,8,7,0,0,8,7,8,7,0,0],6,2),1e-14))
11320 d=DataArrayDouble([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11321 d[1::2,[1,0]]=[7,8]
11322 self.assertTrue(d.isEqual(DataArrayDouble([0,0,8,7,0,0,8,7,0,0,8,7],6,2),1e-14))
11324 d=DataArrayDouble([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11325 d[DataArrayInt([1,4]),[1,0]]=[7,8]
11326 self.assertTrue(d.isEqual(DataArrayDouble([0,0,8,7,0,0,0,0,8,7,0,0],6,2),1e-14))
11328 d=DataArrayDouble([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11330 self.assertTrue(d.isEqual(DataArrayDouble([0,0,9,0,0,0,0,0,0,0,0,0],6,2),1e-14))
11332 d=DataArrayDouble([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11334 self.assertTrue(d.isEqual(DataArrayDouble([0,0,7,8,0,0,0,0,7,8,7,8],6,2),1e-14))
11336 d=DataArrayDouble([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11338 self.assertTrue(d.isEqual(DataArrayDouble([0,0,3,9,0,0,3,9,0,0,3,9],6,2),1e-14))
11340 d=DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11342 self.assertTrue(d.isEqual(DataArrayInt([0,0,0,0,0,0,1,2,0,0,0,0],6,2)))
11344 d=DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11346 self.assertTrue(d.isEqual(DataArrayInt([0,0,0,0,1,2,1,2,0,0,1,2],6,2)))
11348 d=DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11350 self.assertTrue(d.isEqual(DataArrayInt([1,2,1,2,1,2,1,2,1,2,1,2],6,2)))
11352 d=DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11353 d[DataArrayInt([0,3,4])]=[1,2]
11354 self.assertTrue(d.isEqual(DataArrayInt([1,2,0,0,0,0,1,2,1,2,0,0],6,2)))
11356 d=DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11358 self.assertTrue(d.isEqual(DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,7],6,2)))
11360 d=DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11362 self.assertTrue(d.isEqual(DataArrayInt([0,0,0,0,0,0,0,7,0,0,0,7],6,2)))
11364 d=DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11366 self.assertTrue(d.isEqual(DataArrayInt([0,7,0,0,0,7,0,0,0,7,0,0],6,2)))
11368 d=DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11369 d[DataArrayInt([0,3,4]),1]=[7]
11370 self.assertTrue(d.isEqual(DataArrayInt([0,7,0,0,0,0,0,7,0,7,0,0],6,2)))
11372 d=DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11374 self.assertTrue(d.isEqual(DataArrayInt([0,0,0,0,0,0,8,7,0,0,0,0],6,2)))
11376 d=DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11377 d[[1,3,4],[1,0]]=[7,8]
11378 self.assertTrue(d.isEqual(DataArrayInt([0,0,8,7,0,0,8,7,8,7,0,0],6,2)))
11380 d=DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11381 d[1::2,[1,0]]=[7,8]
11382 self.assertTrue(d.isEqual(DataArrayInt([0,0,8,7,0,0,8,7,0,0,8,7],6,2)))
11384 d=DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11385 d[DataArrayInt([1,4]),[1,0]]=[7,8]
11386 self.assertTrue(d.isEqual(DataArrayInt([0,0,8,7,0,0,0,0,8,7,0,0],6,2)))
11388 d=DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11390 self.assertTrue(d.isEqual(DataArrayInt([0,0,9,0,0,0,0,0,0,0,0,0],6,2)))
11392 d=DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11394 self.assertTrue(d.isEqual(DataArrayInt([0,0,7,8,0,0,0,0,7,8,7,8],6,2)))
11396 d=DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11398 self.assertTrue(d.isEqual(DataArrayInt([0,0,3,9,0,0,3,9,0,0,3,9],6,2)))
11401 def testSwig2ConvertLinearCellsToQuadratic1(self):
11402 coordsExp=DataArrayDouble([-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,-0.3,-0.05,-0.05,0.2,0.2,-0.05,-0.05,-0.3,0.45,-0.05,0.45,-0.3,0.45,0.2,0.7,-0.05,-0.05,0.7,0.2,0.45,-0.3,0.45,0.45,0.7,0.7,0.45],22,2)
11404 m2D=MEDCouplingDataForTest.build2DTargetMesh_1()
11405 m2D.convertLinearCellsToQuadratic(0)
11406 m2D.checkCoherency1()
11407 self.assertEqual(m2D.getNodalConnectivity().getValues(),[8,0,3,4,1,9,10,11,12,6,1,4,2,11,13,14,6,4,5,2,15,16,13,8,6,7,4,3,17,18,10,19,8,7,8,5,4,20,21,15,18])
11408 self.assertEqual(m2D.getNodalConnectivityIndex().getValues(),[0,9,16,23,32,41])
11409 self.assertTrue(m2D.getCoords().isEqual(coordsExp,1e-14))
11411 m1D=MEDCouplingDataForTest.build2DTargetMesh_1().buildDescendingConnectivity()[0]
11412 m1D.convertLinearCellsToQuadratic(0)
11413 m1D.checkCoherency1()
11414 self.assertEqual(m1D.getNodalConnectivity().getValues(),[2,0,3,9,2,3,4,10,2,4,1,11,2,1,0,12,2,4,2,13,2,2,1,14,2,4,5,15,2,5,2,16,2,6,7,17,2,7,4,18,2,3,6,19,2,7,8,20,2,8,5,21])
11415 self.assertEqual(m1D.getNodalConnectivityIndex().getValues(),[0,4,8,12,16,20,24,28,32,36,40,44,48,52])
11416 self.assertTrue(m1D.getCoords().isEqual(coordsExp,1e-14))
11418 m2D=MEDCouplingDataForTest.build2DTargetMesh_1()
11419 m2D.changeSpaceDimension(3)
11420 arr=DataArrayDouble(4); arr.iota(0) ; z=MEDCouplingCMesh() ; z.setCoords(arr)
11421 m1D=z.buildUnstructured() ; m1D.setCoords(arr.changeNbOfComponents(3,0.))
11422 m1D.getCoords()[:]=m1D.getCoords()[:,[1,2,0]]
11423 cooTmp=m2D.getCoords()[:]
11424 m3D=m2D.buildExtrudedMesh(m1D,0)
11425 m3D.convertLinearCellsToQuadratic(0)
11426 m3D.checkCoherency1()
11427 # check of new m3D content
11428 coordsExp2=[coordsExp.changeNbOfComponents(3,i) for i in xrange(4)]
11429 coordsExp3=[DataArrayDouble.Meld(cooTmp[:,[0,1]],cooTmp[:,2]+(0.5+float(i))) for i in xrange(3)]
11430 coordsExp4=DataArrayDouble.Aggregate([coordsExp2[0],coordsExp3[0],coordsExp2[1],coordsExp3[1],coordsExp2[2],coordsExp3[2],coordsExp2[3]])
11431 c=DataArrayDouble.Aggregate(m3D.getCoords(),coordsExp4)
11432 self.assertEqual(len(coordsExp4),115)
11433 self.assertEqual(len(m3D.getCoords()),115)
11434 a,b=c.findCommonTuples(1e-14)
11435 self.assertEqual(len(b),len(coordsExp4)+1)
11436 e,f=DataArrayInt.BuildOld2NewArrayFromSurjectiveFormat2(2*115,a,b)
11437 self.assertEqual(f,115)
11438 self.assertTrue(e.isEqual(DataArrayInt([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,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,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,0,1,2,3,4,5,6,7,8,36,37,38,39,48,49,53,54,58,59,60,66,67,44,47,52,45,46,57,64,65,70,9,10,11,12,13,14,15,16,17,40,41,42,43,50,51,55,56,61,62,63,68,69,75,78,81,76,77,84,88,89,92,18,19,20,21,22,23,24,25,26,71,72,73,74,79,80,82,83,85,86,87,90,91,97,100,103,98,99,106,110,111,114,27,28,29,30,31,32,33,34,35,93,94,95,96,101,102,104,105,107,108,109,112,113])))
11439 self.assertTrue(DataArrayInt([30,0,3,4,1,9,12,13,10,36,37,38,39,40,41,42,43,44,45,46,47,25,1,4,2,10,13,11,38,48,49,42,50,51,47,46,52,25,4,5,2,13,14,11,53,54,48,55,56,50,46,57,52,30,6,7,4,3,15,16,13,12,58,59,37,60,61,62,41,63,64,65,46,45,30,7,8,5,4,16,17,14,13,66,67,53,59,68,69,55,62,65,70,57,46,30,9,12,13,10,18,21,22,19,40,41,42,43,71,72,73,74,75,76,77,78,25,10,13,11,19,22,20,42,50,51,73,79,80,78,77,81,25,13,14,11,22,23,20,55,56,50,82,83,79,77,84,81,30,15,16,13,12,24,25,22,21,61,62,41,63,85,86,72,87,88,89,77,76,30,16,17,14,13,25,26,23,22,68,69,55,62,90,91,82,86,89,92,84,77,30,18,21,22,19,27,30,31,28,71,72,73,74,93,94,95,96,97,98,99,100,25,19,22,20,28,31,29,73,79,80,95,101,102,100,99,103,25,22,23,20,31,32,29,82,83,79,104,105,101,99,106,103,30,24,25,22,21,33,34,31,30,85,86,72,87,107,108,94,109,110,111,99,98,30,25,26,23,22,34,35,32,31,90,91,82,86,112,113,104,108,111,114,106,99]).isEqual(m3D.getNodalConnectivity()))
11440 self.assertTrue(DataArrayInt([0,21,37,53,74,95,116,132,148,169,190,211,227,243,264,285]).isEqual(m3D.getNodalConnectivityIndex()))
11441 # testing explode3DMeshTo1D
11443 m3DSlice0.zipCoords()
11444 a,b,c,d,e=m3DSlice0.explode3DMeshTo1D()
11445 self.assertTrue(b.isEqual(DataArrayInt([0,1,2,3,4,5,6,7,8,9,10,11,2,12,13,6,14,15,11,10,16,17,18,12,19,20,14,10,21,16,22,23,1,24,25,26,5,27,28,29,10,9,30,31,17,23,32,33,19,26,29,34,21,10])))
11446 self.assertTrue(c.isEqual(DataArrayInt([0,12,21,30,42,54])))
11447 self.assertTrue(d.isEqual(DataArrayInt([0,0,3,0,1,0,0,0,3,0,1,0,0,0,3,0,1,2,3,4,0,1,1,2,1,1,2,1,1,2,2,4,2,2,4,2,2,4,3,3,4,3,3,3,4,3,3,3,4,4,4,4,4,4])))
11448 self.assertTrue(e.isEqual(DataArrayInt([0,1,3,5,6,7,9,11,12,13,15,20,22,24,25,27,28,30,32,33,35,36,38,39,41,42,43,45,46,47,49,50,51,52,53,54])))
11449 self.assertTrue(a.getNodalConnectivity().isEqual(DataArrayInt([2,0,3,18,2,3,4,19,2,4,1,20,2,1,0,21,2,9,12,22,2,12,13,23,2,13,10,24,2,10,9,25,2,0,9,26,2,3,12,27,2,4,13,28,2,1,10,29,2,4,2,30,2,2,1,31,2,13,11,32,2,11,10,33,2,2,11,34,2,4,5,35,2,5,2,36,2,13,14,37,2,14,11,38,2,5,14,39,2,6,7,40,2,7,4,41,2,3,6,42,2,15,16,43,2,16,13,44,2,12,15,45,2,6,15,46,2,7,16,47,2,7,8,48,2,8,5,49,2,16,17,50,2,17,14,51,2,8,17,52])))
11450 self.assertTrue(a.getNodalConnectivityIndex().isEqual(DataArrayInt([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,124,128,132,136,140])))
11451 self.assertTrue(a.getCoords().isEqual(DataArrayDouble([-0.3,-0.3,0.0,0.2,-0.3,0.0,0.7,-0.3,0.0,-0.3,0.2,0.0,0.2,0.2,0.0,0.7,0.2,0.0,-0.3,0.7,0.0,0.2,0.7,0.0,0.7,0.7,0.0,-0.3,-0.3,1.0,0.2,-0.3,1.0,0.7,-0.3,1.0,-0.3,0.2,1.0,0.2,0.2,1.0,0.7,0.2,1.0,-0.3,0.7,1.0,0.2,0.7,1.0,0.7,0.7,1.0,-0.3,-0.05,0.0,-0.05,0.2,0.0,0.2,-0.05,0.0,-0.05,-0.3,0.0,-0.3,-0.05,1.0,-0.05,0.2,1.0,0.2,-0.05,1.0,-0.05,-0.3,1.0,-0.3,-0.3,0.5,-0.3,0.2,0.5,0.2,0.2,0.5,0.2,-0.3,0.5,0.45,-0.05,0.0,0.45,-0.3,0.0,0.45,-0.05,1.0,0.45,-0.3,1.0,0.7,-0.3,0.5,0.45,0.2,0.0,0.7,-0.05,0.0,0.45,0.2,1.0,0.7,-0.05,1.0,0.7,0.2,0.5,-0.05,0.7,0.0,0.2,0.45,0.0,-0.3,0.45,0.0,-0.05,0.7,1.0,0.2,0.45,1.0,-0.3,0.45,1.0,-0.3,0.7,0.5,0.2,0.7,0.5,0.45,0.7,0.0,0.7,0.45,0.0,0.45,0.7,1.0,0.7,0.45,1.0,0.7,0.7,0.5],53,3),1e-14))
11454 def testSwig2DataArrayPushBackValsSilent1(self):
11455 d=DataArrayDouble()
11456 d.pushBackValsSilent([4,5,6])
11457 self.assertTrue(d.isEqual(DataArrayDouble([4.,5.,6.]),1e-14))
11458 e=DataArrayDouble([1,2,3],1,3)
11459 for t in e: d.pushBackValsSilent(t)
11460 self.assertTrue(d.isEqual(DataArrayDouble([4.,5.,6.,1.,2.,3.]),1e-14))
11461 d.pushBackValsSilent(DataArrayDouble([9,10.]))
11462 self.assertTrue(d.isEqual(DataArrayDouble([4.,5.,6.,1.,2.,3.,9.,10.]),1e-14))
11463 d.pushBackValsSilent(DataArrayDouble(0,1))
11464 self.assertTrue(d.isEqual(DataArrayDouble([4.,5.,6.,1.,2.,3.,9.,10.]),1e-14))
11465 e=DataArrayDouble([1,2,3],3,1)
11466 for t in e: d.pushBackValsSilent(t)
11467 self.assertTrue(d.isEqual(DataArrayDouble([4.,5.,6.,1.,2.,3.,9.,10.,1.,2.,3.]),1e-14))
11468 d.pushBackValsSilent(77)
11469 self.assertTrue(d.isEqual(DataArrayDouble([4.,5.,6.,1.,2.,3.,9.,10.,1.,2.,3.,77.]),1e-14))
11472 d.pushBackValsSilent([4,5,6])
11473 self.assertTrue(d.isEqual(DataArrayInt([4,5,6])))
11474 e=DataArrayInt([1,2,3],1,3)
11475 for t in e: d.pushBackValsSilent(t)
11476 self.assertTrue(d.isEqual(DataArrayInt([4,5,6,1,2,3])))
11477 d.pushBackValsSilent(DataArrayInt([9,10]))
11478 self.assertTrue(d.isEqual(DataArrayInt([4,5,6,1,2,3,9,10])))
11479 d.pushBackValsSilent(DataArrayInt(0,1))
11480 self.assertTrue(d.isEqual(DataArrayInt([4,5,6,1,2,3,9,10])))
11481 e=DataArrayInt([1,2,3],3,1)
11482 for t in e: d.pushBackValsSilent(t)
11483 self.assertTrue(d.isEqual(DataArrayInt([4,5,6,1,2,3,9,10,1,2,3])))
11484 d.pushBackValsSilent(77)
11485 self.assertTrue(d.isEqual(DataArrayInt([4,5,6,1,2,3,9,10,1,2,3,77])))
11488 def testSwig2ConvertLinearCellsToQuadratic2(self):
11489 m2D=MEDCouplingDataForTest.build2DTargetMesh_1()
11490 ret=m2D.convertLinearCellsToQuadratic(1)
11491 self.assertTrue(ret.isIdentity())
11492 self.assertEqual(5,len(ret))
11493 m2D.checkCoherency1()
11494 coordsExp=DataArrayDouble([-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,-0.3,-0.05,-0.05,0.2,0.2,-0.05,-0.05,-0.3,0.45,-0.05,0.45,-0.3,0.45,0.2,0.7,-0.05,-0.05,0.7,0.2,0.45,-0.3,0.45,0.45,0.7,0.7,0.45,-0.05,-0.05,0.3666666666666667,-0.1333333333333333,0.5333333333333332,0.03333333333333334,-0.05,0.45,0.45,0.45],27,2)
11495 self.assertTrue(m2D.getCoords().isEqual(coordsExp,1e-14))
11496 self.assertTrue(m2D.getNodalConnectivity().isEqual(DataArrayInt([9,0,3,4,1,9,10,11,12,22,7,1,4,2,11,13,14,23,7,4,5,2,15,16,13,24,9,6,7,4,3,17,18,10,19,25,9,7,8,5,4,20,21,15,18,26])))
11497 self.assertTrue(m2D.getNodalConnectivityIndex().isEqual(DataArrayInt([0,10,18,26,36,46])))
11499 m2D=MEDCouplingDataForTest.build2DTargetMesh_1()[(0,3)] ; m2D.zipCoords()
11500 m2D.changeSpaceDimension(3)
11501 arr=DataArrayDouble(3); arr.iota(0) ; z=MEDCouplingCMesh() ; z.setCoords(arr)
11502 m1D=z.buildUnstructured() ; m1D.setCoords(arr.changeNbOfComponents(3,0.))
11503 m1D.getCoords()[:]=m1D.getCoords()[:,[1,2,0]]
11504 cooTmp=m2D.getCoords()[:]
11505 m3D=m2D.buildExtrudedMesh(m1D,0)
11506 ret=m3D.convertLinearCellsToQuadratic(1)
11507 self.assertTrue(ret.isIdentity())
11508 self.assertEqual(4,len(ret))
11509 m3D.checkCoherency1()
11510 coordsExp2=DataArrayDouble([-0.3,-0.3,0.0,0.2,-0.3,0.0,-0.3,0.2,0.0,0.2,0.2,0.0,-0.3,0.7,0.0,0.2,0.7,0.0,-0.3,-0.3,1.0,0.2,-0.3,1.0,-0.3,0.2,1.0,0.2,0.2,1.0,-0.3,0.7,1.0,0.2,0.7,1.0,-0.3,-0.3,2.0,0.2,-0.3,2.0,-0.3,0.2,2.0,0.2,0.2,2.0,-0.3,0.7,2.0,0.2,0.7,2.0,-0.3,-0.05,0.0,-0.05,0.2,0.0,0.2,-0.05,0.0,-0.05,-0.3,0.0,-0.3,-0.05,1.0,-0.05,0.2,1.0,0.2,-0.05,1.0,-0.05,-0.3,1.0,-0.3,-0.3,0.5,-0.3,0.2,0.5,0.2,0.2,0.5,0.2,-0.3,0.5,-0.05,0.7,0.0,0.2,0.45,0.0,-0.3,0.45,0.0,-0.05,0.7,1.0,0.2,0.45,1.0,-0.3,0.45,1.0,-0.3,0.7,0.5,0.2,0.7,0.5,-0.3,-0.05,2.0,-0.05,0.2,2.0,0.2,-0.05,2.0,-0.05,-0.3,2.0,-0.3,-0.3,1.5,-0.3,0.2,1.5,0.2,0.2,1.5,0.2,-0.3,1.5,-0.05,0.7,2.0,0.2,0.45,2.0,-0.3,0.45,2.0,-0.3,0.7,1.5,0.2,0.7,1.5,-0.05,-0.05,0.0,-0.3,-0.05,0.5,-0.05,0.2,0.5,0.2,-0.05,0.5,-0.05,-0.3,0.5,-0.05,-0.05,1.0,-0.05,0.45,0.0,-0.05,0.7,0.5,0.2,0.45,0.5,-0.3,0.45,0.5,-0.05,0.45,1.0,-0.3,-0.05,1.5,-0.05,0.2,1.5,0.2,-0.05,1.5,-0.05,-0.3,1.5,-0.05,-0.05,2.0,-0.05,0.7,1.5,0.2,0.45,1.5,-0.3,0.45,1.5,-0.05,0.45,2.0,-0.05,-0.05,0.5,-0.05,0.45,0.5,-0.05,-0.05,1.5,-0.05,0.45,1.5],75,3)
11511 self.assertTrue(m3D.getCoords().isEqual(coordsExp2,1e-14))
11512 self.assertTrue(m3D.getNodalConnectivity().isEqual(DataArrayInt([27,0,2,3,1,6,8,9,7,18,19,20,21,22,23,24,25,26,27,28,29,51,52,53,54,55,56,71,27,4,5,3,2,10,11,9,8,30,31,19,32,33,34,23,35,36,37,28,27,57,58,59,53,60,61,72,27,6,8,9,7,12,14,15,13,22,23,24,25,38,39,40,41,42,43,44,45,56,62,63,64,65,66,73,27,10,11,9,8,16,17,15,14,33,34,23,35,46,47,39,48,49,50,44,43,61,67,68,63,69,70,74])))
11513 self.assertTrue(m3D.getNodalConnectivityIndex().isEqual(DataArrayInt([0,28,56,84,112])))
11516 def testSwig2GaussNEIntegral1(self):
11517 m2D=MEDCouplingDataForTest.build2DTargetMesh_1()
11518 m0=m2D[0] ; m0.zipCoords()
11519 m1=m2D[[1,2]] ; m1.zipCoords()
11520 m2=m2D[[3,4]] ; m2.zipCoords()
11521 m0.convertLinearCellsToQuadratic(1)
11522 m1.convertLinearCellsToQuadratic(0)
11523 m2.convertLinearCellsToQuadratic(1)
11524 m=MEDCouplingUMesh.MergeUMeshes([m0,m1,m2])
11525 m.mergeNodes(1e-12)
11526 f=MEDCouplingFieldDouble(ON_GAUSS_NE)
11528 arr=DataArrayDouble([1.1,2.2,3.3,4.4,5.5,6.6,7.7,8.8,9.9,
11529 11.1,12.2,13.3,14.4,15.5,16.6,
11530 21.1,22.2,23.3,24.4,25.5,26.6,
11531 31.1,32.2,33.3,34.4,35.5,36.6,37.7,38.8,39.9,
11532 41.1,42.2,43.3,44.4,45.5,46.6,47.7,48.8,49.9])
11533 arr2=DataArrayDouble(len(arr),2)
11534 arr2[:,0]=arr ; arr2[:,1]=arr+100
11537 res=f.integral(False)
11538 # a=25./81 ; b=40./81 ; c=64./81
11539 # p1=0.11169079483905 ; p2=0.0549758718227661
11541 # c0=(a*(1.1+2.2+3.3+4.4)+b*(5.5+6.6+7.7+8.8)+c*9.9)*0.25/3.9999999999999978 ; c0=1.5837962962962973
11542 # c1=(p2*(11.1+12.2+13.3)+p1*(14.4+15.5+16.6))*0.125/0.4999999999854482 ; c1=1.8014347172346943
11543 # c2=(p2*(21.1+22.2+23.3)+p1*(24.4+25.5+26.6))*0.125/0.4999999999854482 ; c2=3.0514347172346943
11544 # c3=(a*(31.1+32.2+33.3+34.4)+b*(35.5+36.6+37.7+38.8)+c*39.9)*0.25/3.9999999999999978 ; c3=9.0837962962963
11545 # c4=(a*(41.1+42.2+43.3+44.4)+b*(45.5+46.6+47.7+48.8)+c*49.9)*0.25/3.9999999999999978 ; c4=11.583796296296303
11546 # c0+c1+c2+c3+c4=27.104258323358287
11547 integExp0=27.104258323358287
11548 self.assertAlmostEqual(res[0],integExp0,13)
11550 # c0=(a*(101.1+102.2+103.3+104.4)+b*(105.5+106.6+107.7+108.8)+c*109.9)*0.25/3.9999999999999978 ; c0=26.58379629629631
11551 # c1=(p2*(111.1+112.2+113.3)+p1*(114.4+115.5+116.6))*0.125/0.4999999999854482 ; c1=14.301434717234699
11552 # c2=(p2*(121.1+122.2+123.3)+p1*(124.4+125.5+126.6))*0.125/0.4999999999854482 ; c2=15.5514347172347
11553 # c3=(a*(131.1+132.2+133.3+134.4)+b*(135.5+136.6+137.7+138.8)+c*139.9)*0.25/3.9999999999999978 ; c3=34.08379629629631
11554 # c4=(a*(141.1+142.2+143.3+144.4)+b*(145.5+146.6+147.7+148.8)+c*149.9)*0.25/3.9999999999999978 ; c4=36.58379629629632
11555 # c0+c1+c2+c3+c4=127.10425832335835
11556 integExp1=127.10425832335835
11557 self.assertAlmostEqual(res[1],integExp1,12)
11558 meas=f.getDiscretization().getMeasureField(f.getMesh(),False)
11560 res2=intPerTuple.accumulate()
11561 self.assertAlmostEqual(res2[0],integExp0,13)
11562 self.assertAlmostEqual(res2[1],integExp1,12)
11564 meas2=f.buildMeasureField(False)
11565 intPerTuple=meas2*f
11566 res3=intPerTuple.accumulate()
11567 self.assertAlmostEqual(res3[0],integExp0,13)
11568 self.assertAlmostEqual(res3[1],integExp1,12)
11570 res4=f.getWeightedAverageValue(False) # res4==res2 because sum of area of mesh is equal to 1
11571 self.assertAlmostEqual(res4[0],integExp0,13)
11572 self.assertAlmostEqual(res4[1],integExp1,12)
11576 res5=f.getWeightedAverageValue() # res4==res4 because weighted average is not sensitive to the scaling
11577 self.assertAlmostEqual(res5[0],integExp0,13)
11578 self.assertAlmostEqual(res5[1],integExp1,12)
11579 meas3=f.buildMeasureField(False)
11580 delta=4*meas2.getArray()-meas3.getArray()
11582 self.assertTrue(delta.isUniform(0.,1e-16))
11583 res6=f.integral(False)
11584 self.assertAlmostEqual(res6[0],4.*integExp0,12)
11585 self.assertAlmostEqual(res6[1],4.*integExp1,11)
11588 def testSwig2SlowDADFindClosestTupleId(self):
11591 d=DataArrayDouble(nbPt) ; d.iota() ; d*=1./(nbPt-1)
11592 c=MEDCouplingCMesh() ; c.setCoords(d,d) ; m=c.buildUnstructured() ; pts=m.getCoords() ; del m
11594 d0=DataArrayDouble((nbPt-1)*(nbPt-1)) ; d0.iota() ; d0*=(3./((nbPt-1)*(nbPt-1))) ; d0=d0.applyFunc("exp(x)-1")
11595 d1=DataArrayDouble((nbPt-1)*(nbPt-1)) ; d1.iota()
11596 d2=DataArrayDouble.Meld(d0,d1) ; d2=d2.fromPolarToCart() ; d2+=[0.32,0.73]
11597 ids=pts.findClosestTupleId(d2)
11598 #print "Start of costly computation"
11599 idsExpected=DataArrayInt(len(d2))
11601 for i,elt in enumerate(d2):
11602 l,m=(pts-elt).magnitude().getMinValue()
11603 idsExpected.setIJSilent(i,0,m)
11605 tmp=l ; tmp1=m ; tmp2=i
11608 #print "End of costly computation"
11609 self.assertTrue(idsExpected.isEqual(ids))
11610 a,b,c=pts.minimalDistanceTo(d2)
11611 self.assertEqual(tmp,a)
11612 self.assertEqual(tmp1,b)
11613 self.assertEqual(tmp2,c)
11615 l=[d2[:,i] for i in [0,1]]
11616 for elt in l: elt.reverse()
11617 d2i=DataArrayDouble.Meld(l)
11618 ids1=pts.findClosestTupleId(d2i)
11619 idsExpectedI=idsExpected.deepCpy() ; idsExpectedI.reverse()
11620 self.assertTrue(idsExpectedI.isEqual(ids1))
11622 l=[pts[:,i] for i in [0,1]]
11623 for elt in l: elt.reverse()
11624 ptsi=DataArrayDouble.Meld(l)
11625 ids2=ptsi.findClosestTupleId(d2)
11626 idsExpected2=nbPt*nbPt-1-ids
11627 self.assertTrue(idsExpected2.isEqual(ids2))
11629 ids3=ptsi.findClosestTupleId(d2i)
11630 idsExpected3=idsExpected2.deepCpy() ; idsExpected3.reverse()
11631 self.assertTrue(idsExpected3.isEqual(ids3))
11634 def testSwig2DataArrayAsciiChar1(self):
11635 alpha=DataArrayInt(26) ; alpha.iota(ord("A"))
11636 d=DataArrayAsciiChar(alpha.getValues(),2,13)
11637 d.setInfoOnComponents(["c%i"%(v) for v in xrange(13)])
11638 self.assertEqual('ABCDEFGHIJKLM',d.getTuple(0))
11639 self.assertEqual('NOPQRSTUVWXYZ',d.getTuple(1))
11640 self.assertEqual(2,d.getNumberOfTuples())
11641 self.assertEqual(26,d.getNbOfElems())
11642 self.assertEqual(13,d.getNumberOfComponents())
11644 self.assertTrue(d.isEqual(dd))
11646 self.assertTrue(not d.isEqual(dd))
11647 d.setIJ(0,3,ord('d'))
11648 self.assertTrue(d.isEqual(dd))
11651 self.assertEqual(20,d.getNumberOfTuples())
11652 self.assertEqual(20,d.getNbOfElems())
11653 self.assertEqual(1,d.getNumberOfComponents())
11655 d0=DataArrayAsciiChar([ord('a')],1,1)
11656 self.assertEqual('a',d0.asciiCharValue())
11657 self.assertTrue(not d0.empty())
11658 d0=DataArrayAsciiChar(0,3)
11659 self.assertTrue(d0.empty())
11660 d.pushBackSilent("U") ; d.pushBackSilent("V") ; d.pushBackSilent("W")
11661 self.assertEqual("W",d.popBackSilent())
11663 self.assertEqual(['AB','Cd','EF','GH','IJ','KL','MN','OP','QR','ST','UV'],d.toStrList())
11665 self.assertEqual(11*[''],d.toStrList())
11666 d.fillWithValue('T')
11667 self.assertEqual(11*["TT"],d.toStrList())
11669 self.assertTrue(d.isUniform("T"))
11674 dd.renumberInPlace([3,1,2,4,0,11,10,9,8,7,5,12,6])
11675 self.assertEqual(dd.toStrList(),['IJ','Cd','EF','AB','GH','UV','YZ','ST','QR','OP','MN','KL','WX'])
11676 dd.renumberInPlaceR([3,1,2,4,0,11,10,9,8,7,5,12,6])
11677 self.assertEqual(['AB','Cd','EF','GH','IJ','KL','MN','OP','QR','ST','UV','WX','YZ'],dd.toStrList())
11678 e=dd.renumber([3,1,2,4,0,11,10,9,8,7,5,12,6])
11679 self.assertEqual(e.toStrList(),['IJ','Cd','EF','AB','GH','UV','YZ','ST','QR','OP','MN','KL','WX'])
11680 e=dd.renumberR([3,1,2,4,0,11,10,9,8,7,5,12,6])
11681 self.assertEqual(e.toStrList(),['GH','Cd','EF','IJ','AB','WX','UV','ST','QR','OP','KL','YZ','MN'])
11682 e=dd.renumberAndReduce([1,1,1,1,1,1,1,2,0,0,0,0,0],3)
11683 self.assertEqual(['YZ','MN','OP'],e.toStrList())
11684 self.assertEqual(['GH','IJ'],dd.selectByTupleIdSafe([3,4]).toStrList())
11685 self.assertEqual(['AB','GH','MN','ST','YZ'],dd.selectByTupleId2(0,13,3).toStrList())
11686 dd3=dd.changeNbOfComponents(3,"G")
11687 self.assertEqual(['ABG','CdG','EFG','GHG','IJG','KLG','MNG','OPG','QRG','STG','UVG','WXG','YZG'],dd3.toStrList())
11688 dd3.rearrange(1) ; self.assertEqual("G",dd3.back()) ; dd3.rearrange(3)
11689 self.assertTrue(dd3.changeNbOfComponents(2,"\0").isEqual(dd))
11690 self.assertEqual(len(dd),13)
11691 d=DataArrayAsciiChar(13,2) ; d.fillWithValue('Y')
11693 self.assertEqual(['ABGYY','CdGYY','EFGYY','GHGYY','IJGYY','KLGYY','MNGYY','OPGYY','QRGYY','STGYY','UVGYY','WXGYY','YZGYY'],dd3.toStrList())
11694 self.assertEqual("d",dd3.getIJ(0,6))
11695 self.assertRaises(InterpKernelException,dd3.getIJSafe,0,6)
11696 self.assertEqual("d",dd3.getIJSafe(1,1))
11698 e=dd3.getIdsEqual("Y")
11699 self.assertTrue(e.isEqual(DataArrayInt([3,4,8,9,13,14,18,19,23,24,28,29,33,34,38,39,43,44,48,49,53,54,58,59,60,63,64])))
11700 e=dd3.getIdsNotEqual("Y")
11701 self.assertTrue(e.isEqual(DataArrayInt([0,1,2,5,6,7,10,11,12,15,16,17,20,21,22,25,26,27,30,31,32,35,36,37,40,41,42,45,46,47,50,51,52,55,56,57,61,62])))
11702 self.assertEqual(("d",6),dd3.getMaxValue())
11703 self.assertEqual(("A",0),dd3.getMinValue())
11704 self.assertEqual(26,dd3.search("LGYYM"))
11705 self.assertEqual(-1,dd3.search("LGYYN"))
11707 self.assertEqual(7,dd3.locateTuple("OPGYY"))
11708 self.assertTrue("OPGYY" in dd3)
11709 self.assertEqual(7,dd3.index("OPGYY"))
11710 self.assertEqual(-1,dd3.locateTuple("OPGYP"))
11712 self.assertEqual(2,dd3.locateValue("OPGYY"))
11713 self.assertTrue(dd3.presenceOfValue("OPGYY"))
11714 self.assertTrue("O" in dd3)
11715 self.assertTrue(not dd3.presenceOfValue("z"))
11716 self.assertTrue("z" not in dd3)
11719 self.assertEqual([e.buildDAAsciiChar().toStrList()[0] for e in list(dd3)],dd3.toStrList())
11721 dd4=DataArrayChar.Aggregate(dd3,dd3)
11722 self.assertEqual(['ABGYY','CdGYY','EFGYY','GHGYY','IJGYY','ABGYY','CdGYY','EFGYY','GHGYY','IJGYY'],dd4.toStrList())
11723 dd5=DataArrayChar.Aggregate([dd4,dd3,dd4])
11724 self.assertEqual(['ABGYY','CdGYY','EFGYY','GHGYY','IJGYY','ABGYY','CdGYY','EFGYY','GHGYY','IJGYY','ABGYY','CdGYY','EFGYY','GHGYY','IJGYY','ABGYY','CdGYY','EFGYY','GHGYY','IJGYY','ABGYY','CdGYY','EFGYY','GHGYY','IJGYY'],dd5.toStrList())
11725 # getitem,__iter__,__setitem__
11727 self.assertEqual("ABGYY",str(a[0]))
11729 self.assertEqual(['ABGYY','EFGYY','IJGYY'],dd4.toStrList())
11731 self.assertEqual(['GHGYY','EFGYY','CdGYY'],dd4.toStrList())
11733 dd4[::2]=["12","345","67890"]
11734 self.assertEqual(['12 ','CdGYY','345 ','GHGYY','67890'],dd4.toStrList())
11737 self.assertEqual(['ABGYY',' ',' ','GHGYY','IJGYY'],dd4.toStrList())
11740 self.assertEqual(['ABGYY','CdGYY','EFGYY','GHGYY','12345'],dd4.toStrList())
11742 self.assertEqual(['CdGYY','CdGYY','EFGYY','GHGYY','12345'],dd4.toStrList())
11743 dd4=DataArrayAsciiChar(["abc","de","fghi"])
11744 self.assertEqual(['abc ','de ','fghi'],dd4.toStrList())
11745 dd4=DataArrayAsciiChar(["abc","de","fghi"],"t")
11746 self.assertEqual(['abct','dett','fghi'],dd4.toStrList())
11749 def testSwig2GaussNELocalizationOfDiscValues(self):
11750 m=MEDCouplingDataForTest.build2DTargetMesh_3()[[0,1,3,4,5,6,8,9]] # suppression of polygons
11751 f=MEDCouplingFieldDouble(ON_GAUSS_NE)
11753 loc=f.getLocalizationOfDiscr()
11754 self.assertEqual(42,len(loc))
11755 self.assertTrue(loc.isEqual(DataArrayDouble([0.,0.,1.,0.,0.5,1.,0.,0.,1.,0.,1.,1.,0.,1.,0.,0.,1.,0.,0.5,1.,0.5,0.,0.75,0.5,0.25,0.5,0.,0.,1.,0.,1.,1.,0.,1.,0.5,0.,1.,0.5,0.5,1.,0.,0.5,0.,0.,0.5,1.,1.,0.,0.,0.,0.,1.,1.,1.,1.,0.,0.,0.,0.5,1.,1.,0.,0.25,0.5,0.75,0.5,0.5,0.,0.,0.,0.,1.,1.,1.,1.,0.,0.,0.5,0.5,1.,1.,0.5,0.5,0.],42,2),1e-13))
11756 m.changeSpaceDimension(3)
11757 m.getCoords()[:,2]=7.
11758 loc=f.getLocalizationOfDiscr()
11759 self.assertEqual(42,len(loc))
11760 self.assertTrue(loc.isEqual(DataArrayDouble([0.,0.,7.,1.,0.,7.,0.5,1.,7.,0.,0.,7.,1.,0.,7.,1.,1.,7.,0.,1.,7.,0.,0.,7.,1.,0.,7.,0.5,1.,7.,0.5,0.,7.,0.75,0.5,7.,0.25,0.5,7.,0.,0.,7.,1.,0.,7.,1.,1.,7.,0.,1.,7.,0.5,0.,7.,1.,0.5,7.,0.5,1.,7.,0.,0.5,7.,0.,0.,7.,0.5,1.,7.,1.,0.,7.,0.,0.,7.,0.,1.,7.,1.,1.,7.,1.,0.,7.,0.,0.,7.,0.5,1.,7.,1.,0.,7.,0.25,0.5,7.,0.75,0.5,7.,0.5,0.,7.,0.,0.,7.,0.,1.,7.,1.,1.,7.,1.,0.,7.,0.,0.5,7.,0.5,1.,7.,1.,0.5,7.,0.5,0.,7.],42,3),1e-13))
11763 def testSwig2GaussMeasureAndIntegral(self):
11764 ft=MEDCouplingDataForTest.buildFieldOnGauss_1()
11765 mea=ft.buildMeasureField(False)
11766 mea.checkCoherency()
11767 self.assertTrue(mea.getArray().isEqual(DataArrayDouble([-0.08504076274779823,-0.06378057206084897,-0.08504076274779869,-0.10630095343474463,-0.12756114412169625,-0.10630095343474734,-0.0637805720608491,-0.0850407627477968,-0.1063009534347449,-0.0850407627477994,-0.10630095343474809,-0.1275611441216954,-0.037205333702161475,-0.037205333702161475,-0.037205333702161475,-0.037205333702161475,-0.047835429045636084,-0.047835429045636084,-0.047835429045636084,-0.047835429045636084,-0.05846552438911087,-0.05846552438911087,-0.05846552438911087,-0.05846552438911087,-0.037205333702161725,-0.037205333702161725,-0.037205333702161725,-0.037205333702161725,-0.047835429045635834,-0.047835429045635834,-0.047835429045635834,-0.047835429045635834,-0.05846552438911058,-0.05846552438911058,-0.05846552438911058,-0.05846552438911058,-0.03879154890291829,-0.03879154890291829,-0.03879154890291829,-0.04120270848015563,-0.04120270848015563,-0.04120270848015563,-0.03393028948486933,-0.03393028948486933,-0.03393028948486933,-0.03151955746491709,-0.03151955746491709,-0.03151955746491709,-0.02424752187358276,-0.02424752187358276,-0.02424752187358276,-0.026657914642918758,-0.026657914642918758,-0.026657914642918758,-0.04120270848015456,-0.04120270848015456,-0.04120270848015456,-0.03879154890291757,-0.03879154890291757,-0.03879154890291757,-0.031519557464916595,-0.031519557464916595,-0.031519557464916595,-0.03393028948487046,-0.03393028948487046,-0.03393028948487046,-0.0266579146429191,-0.0266579146429191,-0.0266579146429191,-0.024247521873582645,-0.024247521873582645,-0.024247521873582645,-0.01851718920904466,-0.01851718920904466,-0.01851718920904466,-0.01851718920904466,-0.029627502734471456,-0.029627502734471456,-0.029627502734471456,-0.029627502734471456,-0.04740400437515433,-0.015150427534672922,-0.015150427534672922,-0.015150427534672922,-0.015150427534672922,-0.024240684055476674,-0.024240684055476674,-0.024240684055476674,-0.024240684055476674,-0.038785094488762675,-0.011783665860301345,-0.011783665860301345,-0.011783665860301345,-0.011783665860301345,-0.018853865376482152,-0.018853865376482152,-0.018853865376482152,-0.018853865376482152,-0.030166184602371443,-0.018517189209044892,-0.018517189209044892,-0.018517189209044892,-0.018517189209044892,-0.029627502734471827,-0.029627502734471827,-0.029627502734471827,-0.029627502734471827,-0.04740400437515492,-0.015150427534672776,-0.015150427534672776,-0.015150427534672776,-0.015150427534672776,-0.02424068405547644,-0.02424068405547644,-0.02424068405547644,-0.02424068405547644,-0.03878509448876231,-0.011783665860301277,-0.011783665860301277,-0.011783665860301277,-0.011783665860301277,-0.01885386537648204,-0.01885386537648204,-0.01885386537648204,-0.01885386537648204,-0.030166184602371266]),1e-14))
11768 f=MEDCouplingFieldDouble(ft)
11769 arr=DataArrayDouble(126,2)
11770 arr[:,0]=range(126)
11771 arr[:,1]=range(126)
11775 self.assertTrue(DataArrayDouble(f.integral(False)).isEqual(DataArrayDouble([-211.66121638700983,-4863.9563007698835]),1e-11))
11776 self.assertTrue(DataArrayDouble(f.getWeightedAverageValue()).isEqual(DataArrayDouble([45.496085813113595,1045.496085813114]),1e-11))
11777 self.assertTrue(DataArrayDouble(f.normL1()).isEqual(DataArrayDouble([45.49608581311362,1045.496085813114]),1e-11))
11778 self.assertTrue(DataArrayDouble(f.normL2()).isEqual(DataArrayDouble([58.16846378340898,1046.1241521947334]),1e-11))
11781 def testSwig2FieldDiscretizationComputeMeshRestrictionFromTupleIds1(self):
11782 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1()
11783 f=MEDCouplingFieldDouble(ON_GAUSS_NE)
11785 a,b=f.getDiscretization().computeMeshRestrictionFromTupleIds(f.getMesh(),[3,4,5,6,8,9,10,14,15,16,17])
11786 self.assertTrue(a.isEqual(DataArrayInt([1,4])))
11787 self.assertTrue(b.isEqual(DataArrayInt([4,5,6,14,15,16,17])))
11788 a,b=f.getDiscretization().computeMeshRestrictionFromTupleIds(f.getMesh(),DataArrayInt([0,1,2,3,5,7,8,9,10,11,12,18]))
11789 self.assertTrue(a.isEqual(DataArrayInt([0,2])))
11790 self.assertTrue(b.isEqual(DataArrayInt([0,1,2,3,7,8,9])))
11792 f=MEDCouplingFieldDouble(ON_CELLS)
11794 a,b=f.getDiscretization().computeMeshRestrictionFromTupleIds(f.getMesh(),[3,4])
11795 self.assertTrue(a.isEqual(DataArrayInt([3,4])))
11796 self.assertTrue(b.isEqual(DataArrayInt([3,4])))
11798 f=MEDCouplingFieldDouble(ON_NODES)
11800 a,b=f.getDiscretization().computeMeshRestrictionFromTupleIds(f.getMesh(),[1,2,3,4])
11801 self.assertTrue(a.isEqual(DataArrayInt([1])))
11802 self.assertTrue(b.isEqual(DataArrayInt([1,2,4])))
11804 f=MEDCouplingDataForTest.buildFieldOnGauss_1()
11805 a,b=f.getDiscretization().computeMeshRestrictionFromTupleIds(f.getMesh(),[0,11,12,13,14,15,17,18,19,36,37,38,115,117,118,119,120,121,122,123,124,125])
11806 self.assertTrue(a.isEqual(DataArrayInt([0,11,12,18,35])))
11807 self.assertTrue(b.isEqual(DataArrayInt([0,11,12,13,14,15,36,37,38,117,118,119,120,121,122,123,124,125])))
11809 d=DataArrayInt([0,3,7,9,15,18])
11810 e=DataArrayInt([0,1,2,3,7,8,15,16,17])
11811 a,b=d.searchRangesInListOfIds(e)
11812 self.assertTrue(a.isEqual(DataArrayInt([0,2,4])))
11813 self.assertTrue(b.isEqual(DataArrayInt([0,1,2,7,8,15,16,17])))
11816 def testSwig2BigMem(self):
11817 if MEDCouplingSizeOfVoidStar()==64:
11818 d=DataArrayAsciiChar(223456789,16)
11819 self.assertTrue(d.getNumberOfTuples(),223456789)
11820 self.assertTrue(d.getNumberOfComponents(),16)
11821 d.setIJ(223456788,5,"r")
11822 self.assertTrue(d.getIJ(223456788,5),'r')
11823 d[223456787]="1234567890123456"
11824 self.assertTrue(d[223456787],'1234567890123456')
11825 self.assertRaises(InterpKernelException,d.rearrange,1)# fails because it would lead to nb of tuples > 2147483647
11829 def testSwig2DAReverseMultiCompo1(self):
11830 d=DataArrayDouble(6,2)
11832 d[:,1]=range(10,16)
11834 self.assertTrue(d.isEqual(DataArrayDouble([5.,15.,4.,14.,3.,13.,2.,12.,1.,11.,0.,10.],6,2),1e-14))
11835 d=DataArrayDouble(7,2)
11837 d[:,1]=range(10,17)
11839 self.assertTrue(d.isEqual(DataArrayDouble([6.,16.,5.,15.,4.,14.,3.,13.,2.,12.,1.,11.,0.,10.],7,2),1e-14))
11841 d=DataArrayInt(6,2)
11843 d[:,1]=range(10,16)
11845 self.assertTrue(d.isEqual(DataArrayInt([5,15,4,14,3,13,2,12,1,11,0,10],6,2)))
11846 d=DataArrayInt(7,2)
11848 d[:,1]=range(10,17)
11850 self.assertTrue(d.isEqual(DataArrayInt([6,16,5,15,4,14,3,13,2,12,1,11,0,10],7,2)))
11853 def testSwigDAPow1(self):
11858 self.assertTrue((d**2).isEqual(DataArrayInt([0,1,4,9,16,25,36,49,64,81])))
11859 self.assertTrue((d**3).isEqual(DataArrayInt([0,1,-8,27,64,125,216,343,512,729])))
11863 self.assertTrue(d.isEqual(DataArrayInt([0,1,4,9,16,25,36,49,64,81])))
11864 self.assertTrue((d1[:4]**d1[:4]).isEqual(DataArrayInt([1,1,4,27])))
11865 self.assertTrue((3**d1[:4]).isEqual(DataArrayInt([1,3,9,27])))
11868 self.assertTrue(d2.isEqual(DataArrayInt([1,1,4,27])))
11869 self.assertRaises(InterpKernelException,d2.__pow__,-1)#non supporting negative pow in DataArrayInt.__pow__
11870 self.assertRaises(InterpKernelException,d2.__ipow__,-1)#non supporting negative pow in DataArrayInt.__pow__
11872 d=DataArrayDouble(10)
11876 self.assertTrue((d**2).isEqual(DataArrayDouble([0,1,4,9,16,25,36,49,64,81]),1e-12))
11877 self.assertTrue((d**3).isEqual(DataArrayDouble([0,1,-8,27,64,125,216,343,512,729]),1e-12))
11878 self.assertRaises(InterpKernelException,d.__pow__,3.1)#3.1 is double not integer -> not supporting negative values in d
11882 self.assertTrue(d.isEqual(DataArrayDouble([0,1,4,9,16,25,36,49,64,81]),1e-12))
11883 self.assertTrue((d1[:4]**d1[:4]).isEqual(DataArrayDouble([1,1,4,27]),1e-12))
11884 self.assertTrue((3**d1[:4]).isEqual(DataArrayDouble([1,3,9,27]),1e-12))
11887 self.assertTrue(d2.isEqual(DataArrayDouble([1,1,4,27]),1e-12))
11889 self.assertTrue(d2.isEqual(DataArrayDouble([1,1,1./2,1./sqrt(27.)]),1e-14))
11891 self.assertTrue((3**d3).isEqual(DataArrayDouble([0.3333333333333333,0.5773502691896257,0.6933612743506348,0.7598356856515925]),1e-14))
11892 d4=d3.deepCpy() ; d4.abs()
11893 self.assertTrue((d4**d3).isEqual(DataArrayDouble([1.,sqrt(2.),1.4422495703074083,sqrt(2.)]),1e-14))
11895 self.assertTrue(d4.isEqual(DataArrayDouble([1.,sqrt(2.),1.4422495703074083,sqrt(2.)]),1e-14))
11898 def testSwig2Baryenter3DForCellsWithVolumeZero1(self):
11899 coo=DataArrayDouble([0.,0.,0.,1.,0.,0.,0.,1.,0.],3,3)
11900 m2=MEDCouplingUMesh("mesh",2)
11901 m2.allocateCells(0)
11902 m2.insertNextCell(NORM_POLYGON,[0,1,2])
11904 m2.checkCoherency1()
11906 coo2=DataArrayDouble([0.,0.,0.,0.,0.,0.,0.,0.,2.],3,3)
11907 m1=MEDCouplingUMesh("mesh",1)
11908 m1.allocateCells(0)
11909 m1.insertNextCell(NORM_SEG2,[0,1])
11910 m1.insertNextCell(NORM_SEG2,[1,2])
11912 m1.checkCoherency1()
11914 m3=m2.buildExtrudedMesh(m1,0)
11915 m3.insertNextCell(NORM_POLYHED,[3,4,5,-1,8,7,6,-1,4,3,6,7,-1,5,4,7,8,-1,5,4,-1,3,5,8,6])# addition of face #4 with null surface
11916 self.assertTrue(m3.getBarycenterAndOwner().isEqual(DataArrayDouble([0.3333333333333333,0.3333333333333333,0.,0.3333333333333333,0.3333333333333333,1.,0.3333333333333333,0.3333333333333333,1.],3,3),1e-13))
11917 m4,a,b,c,d=m3.buildDescendingConnectivity()
11918 self.assertTrue(m4.getBarycenterAndOwner().isEqual(DataArrayDouble([0.3333333333333333,0.3333333333333333,0.,0.3333333333333333,0.3333333333333333,0.,0.5,0.,0.,0.5,0.5,0.,0.,0.5,0.,0.3333333333333333,0.3333333333333333,2.,0.5,0.,1.,0.5,0.5,1.,0.,0.5,1.,0.5,0.5,0.],10,3),1e-13))
11921 def testSwigRepr1(self):
11922 d=DataArrayDouble()
11923 self.assertTrue(len(d.__repr__())<120)
11924 d.alloc(1000,0) ; self.assertTrue(len(d.__repr__())<100)
11925 for i in xrange(100):
11926 d.alloc(i,1) ; d.iota(1.1234567890123456) ; d*=1e123
11927 self.assertTrue(len(d.__repr__())<500)
11929 for i in xrange(50):
11930 d.alloc(i,2) ; d.rearrange(1) ; d.iota(1.1234567890123456) ; d.rearrange(2) ; d*=1e123
11931 self.assertTrue(len(d.__repr__())<500)
11933 d.alloc(4000,1) ; d.iota() ; self.assertTrue(len(d.__repr__())<500)
11934 for i in xrange(2,4):
11935 d.alloc(362880,1) ; d.iota() ; d.rearrange(i) ; self.assertTrue(len(d.__repr__())<500)
11938 self.assertTrue(len(d.__repr__())<120)
11941 self.assertTrue(len(d.__repr__())<100)
11942 d.alloc(1000,0) ; self.assertTrue(len(d.__repr__())<100)
11943 for i in xrange(100):
11944 d.alloc(i,1) ; d.iota(123456789)
11945 self.assertTrue(len(d.__repr__())<500)
11947 for i in xrange(50):
11948 d.alloc(i,2) ; d.rearrange(1) ; d.iota(123456789) ; d.rearrange(2)
11949 self.assertTrue(len(d.__repr__())<500)
11951 d.alloc(4000,1) ; d.iota() ; self.assertTrue(len(d.__repr__())<500)
11952 for i in xrange(2,10):
11953 d.alloc(362880,1) ; d.iota() ; d.rearrange(i) ; self.assertTrue(len(d.__repr__())<500)
11956 self.assertTrue(len(d.__repr__())<100)
11958 d=DataArrayAsciiChar()
11959 d.alloc(1000,0) ; self.assertTrue(len(d.__repr__())<100)
11960 d.alloc(2,16) ; d[:]='1234567890ABCDEF'
11961 self.assertTrue(len(d.__repr__())<500)
11962 d.alloc(2000,16) ; d[:]='1234567890ABCDEF'
11963 self.assertTrue(len(d.__repr__())<500)
11964 d.alloc(0,16) ; d[:]='1234567890ABCDEF'
11965 self.assertTrue(len(d.__repr__())<120)
11968 self.assertTrue(len(d.__repr__())<100)
11969 d.alloc(1000,0) ; self.assertTrue(len(d.__repr__())<100)
11970 d.alloc(0,16) ; self.assertTrue(len(d.__repr__())<100)
11971 d.alloc(5,1) ; d.fillWithValue(127)
11972 self.assertTrue(len(d.__repr__())<200)
11973 d.alloc(1000,1) ; d.fillWithValue(127)
11974 self.assertTrue(len(d.__repr__())<500)
11975 d.alloc(1000,3) ; d.fillWithValue(127)
11976 self.assertTrue(len(d.__repr__())<500)
11979 def testSwig2MeshComputeIsoBarycenterOfNodesPerCell1(self):
11980 coo=DataArrayDouble([26.17509821414239,5.0374,200.,26.175098214142388,-5.0374,200.,17.450065476094927,20.1496,200.,8.725032738047464,25.187,200.,43.62516369023732,5.0374,200.,34.90013095218986,10.0748,200.,34.900130952189855,-10.0748,200.,43.625163690237315,-5.0374,200.,26.175098214142402,25.187,200.,26.175098214142395,35.2618,200.,17.45006547609493,40.2992,200.,8.725032738047469,35.2618,200.,26.17509821414239,5.0374,200.,26.175098214142388,-5.0374,200.,17.450065476094927,20.1496,200.,8.725032738047464,25.187,200.,43.62516369023732,5.0374,200.,34.90013095218986,10.0748,200.,34.900130952189855,-10.0748,200.,43.625163690237315,-5.0374,200.,26.175098214142402,25.187,200.,26.175098214142395,35.2618,200.,17.45006547609493,40.2992,200.,8.725032738047469,35.2618,200.],24,3)
11981 m=MEDCouplingUMesh.New("toto",3)
11983 m.insertNextCell(NORM_POLYHED,[4,5,0,1,6,7,-1,19,18,13,12,17,16,-1,5,4,16,17,-1,0,5,17,12,-1,1,0,12,13,-1,6,1,13,18,-1,7,6,18,19,-1,4,7,19,16])
11984 m.insertNextCell(NORM_POLYHED,[9,10,11,3,2,8,-1,20,14,15,23,22,21,-1,10,9,21,22,-1,11,10,22,23,-1,3,11,23,15,-1,2,3,15,14,-1,8,2,14,20,-1,9,8,20,21])
11986 m.checkCoherency1()
11988 dReference=DataArrayDouble([(34.900130952189848,0.,200),(17.450065476094931,30.2244,200.)])
11989 self.assertTrue(m.computeIsoBarycenterOfNodesPerCell().isEqual(dReference,1e-12))
11990 m.getNodalConnectivity().setIJ(87,0,24)
11991 self.assertRaises(InterpKernelException,m.computeIsoBarycenterOfNodesPerCell)
11992 m.getNodalConnectivity().setIJ(87,0,-2)
11993 self.assertRaises(InterpKernelException,m.computeIsoBarycenterOfNodesPerCell)
11994 m.getNodalConnectivity().setIJ(87,0,21)# put again 21 as at the beginning
11996 self.assertTrue(m.unPolyze())
11997 self.assertEqual([NORM_HEXGP12],m.getAllGeoTypes())
11998 self.assertTrue(m.computeIsoBarycenterOfNodesPerCell().isEqual(dReference,1e-12))
11999 m.getNodalConnectivity().setIJ(25,0,24)
12000 self.assertRaises(InterpKernelException,m.computeIsoBarycenterOfNodesPerCell)
12001 m.getNodalConnectivity().setIJ(25,0,-1)
12002 self.assertRaises(InterpKernelException,m.computeIsoBarycenterOfNodesPerCell)
12005 def testSwig2NonRegressionBugDescHexa20(self):
12006 coo=DataArrayDouble([0.,0.,0.,1.23,0.,0.,0.615,0.,0.,0.,2.1,0.,0.615,2.1,0.,1.23,2.1,0.,1.23,1.05,0.,0.,1.05,0.,0.,0.,2.16,1.23,0.,2.16,1.23,2.1,2.16,0.,2.1,2.16,0.,0.,4.32,0.615,0.,4.32,1.23,0.,4.32,1.23,1.05,4.32,1.23,2.1,4.32,0.615,2.1,4.32,0.,2.1,4.32,0.,1.05,4.32],20,3)
12007 m=MEDCouplingUMesh('mesh',3)
12009 m.insertNextCell(NORM_HEXA20,[0,3,5,1,12,18,16,14,7,4,6,2,19,17,15,13,8,11,10,9])
12011 m.checkCoherency1()
12013 a,b,c,d,e=m.buildDescendingConnectivity()
12014 m2=MEDCouplingUMesh('mesh',2)
12015 m2.allocateCells(0)
12017 conn2=[[0,3,5,1,7,4,6,2],[12,14,16,18,13,15,17,19],[0,12,18,3,8,19,11,7],[3,18,16,5,11,17,10,4],[5,16,14,1,10,15,9,6],[1,14,12,0,9,13,8,2]]
12018 for i in xrange(6):
12019 m2.insertNextCell(NORM_QUAD8,conn2[i])
12021 self.assertTrue(m2.isEqual(a,1e-12))
12022 self.assertTrue(b.isEqual(DataArrayInt([0,1,2,3,4,5])))
12023 self.assertTrue(c.isEqual(DataArrayInt([0,6])))
12024 self.assertTrue(d.isEqual(DataArrayInt([0,0,0,0,0,0])))
12025 self.assertTrue(e.isEqual(DataArrayInt([0,1,2,3,4,5,6])))
12027 m.convertQuadraticCellsToLinear() ; m.zipCoords()
12028 m.convertLinearCellsToQuadratic(1)
12030 coo2=DataArrayDouble([0.,0.,0.,1.23,0.,0.,0.,2.1,0.,1.23,2.1,0.,0.,0.,4.32,1.23,0.,4.32,1.23,2.1,4.32,0.,2.1,4.32,0.,1.05,0.,0.615,2.1,0.,1.23,1.05,0.,0.615,0.,0.,0.,1.05,4.32,0.615,2.1,4.32,1.23,1.05,4.32,0.615,0.,4.32,0.,0.,2.16,0.,2.1,2.16,1.23,2.1,2.16,1.23,0.,2.16,0.615,1.05,0.,0.,1.05,2.16,0.615,2.1,2.16,1.23,1.05,2.16,0.615,0.,2.16,0.615,1.05,4.32,0.615,1.05,2.16],27,3)
12031 m3=MEDCouplingUMesh("mesh",3)
12032 m3.allocateCells(1)
12033 m3.insertNextCell(NORM_HEXA27,[0,2,3,1,4,7,6,5,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26])
12035 self.assertTrue(m3.isEqual(m,1e-12))
12037 a,b,c,d,e=m.buildDescendingConnectivity()
12038 conn4=[[0,2,3,1,8,9,10,11,20],[4,5,6,7,15,14,13,12,25],[0,4,7,2,16,12,17,8,21],[2,7,6,3,17,13,18,9,22],[3,6,5,1,18,14,19,10,23],[1,5,4,0,19,15,16,11,24]]
12039 m4=MEDCouplingUMesh("mesh",2)
12040 m4.allocateCells(0)
12041 for i in xrange(6):
12042 m4.insertNextCell(NORM_QUAD9,conn4[i])
12045 self.assertTrue(m4.isEqual(a,1e-12))
12046 self.assertTrue(b.isEqual(DataArrayInt([0,1,2,3,4,5])))
12047 self.assertTrue(c.isEqual(DataArrayInt([0,6])))
12048 self.assertTrue(d.isEqual(DataArrayInt([0,0,0,0,0,0])))
12049 self.assertTrue(e.isEqual(DataArrayInt([0,1,2,3,4,5,6])))
12052 def testSwigAdvGauss(self):
12053 f=MEDCouplingFieldTemplate(ON_GAUSS_PT)
12054 f.setDiscretization(None)
12055 f.__repr__() ; f.__str__()
12057 f=MEDCouplingFieldTemplate(ON_GAUSS_PT)
12058 d=f.getDiscretization()
12059 i=DataArrayInt() ; i.alloc(10,1) ; i.iota(1)
12060 d.setArrayOfDiscIds(i)
12061 f.__repr__() ; f.__str__()
12062 i2=d.getArrayOfDiscIds()
12063 self.assertEqual(i.__repr__(),i2.__repr__())
12065 f=MEDCouplingFieldDouble(ON_GAUSS_PT)
12066 f.setDiscretization(None)
12067 f.__repr__() ; f.__str__()
12069 f=MEDCouplingFieldDouble(ON_GAUSS_PT)
12070 d=f.getDiscretization()
12071 i=DataArrayInt() ; i.alloc(10,1) ; i.iota(1)
12072 d.setArrayOfDiscIds(i)
12073 f.__repr__() ; f.__str__()
12075 gl=MEDCouplingGaussLocalization(NORM_SEG2,[0,1],[0.5],[1.])
12076 gl.setWeights([3.])
12077 gl.__repr__() ; gl.__str__()
12078 gl=MEDCouplingGaussLocalization(NORM_ERROR)
12079 gl.setWeights([3.])
12080 gl.__repr__() ; gl.__str__()
12083 def testSwig2NonRegressionBugSubstractInPlaceDM(self):
12084 m0=MEDCouplingCMesh()
12085 arr=DataArrayDouble(5,1) ; arr.iota(0.)
12086 m0.setCoords(arr,arr)
12087 m0=m0.buildUnstructured()
12088 m00=m0[::2] ; m00.simplexize(0) ; m01=m0[1::2]
12089 m0=MEDCouplingUMesh.MergeUMeshes([m00,m01])
12090 m0.getCoords()[:]*=1/4.
12093 NodeField=MEDCouplingFieldDouble(ON_NODES,ONE_TIME) ; NodeField.setTime(5.6,5,6) ; NodeField.setMesh(m0)
12094 NodeField.setName("NodeField")
12095 NodeField.fillFromAnalytic(1,"exp(-((x-1)*(x-1)+(y-1)*(y-1)))") ; NodeField.getArray().setInfoOnComponent(0,"powernode [W]")
12096 proc0=m0.getCellsInBoundingBox([(0.,0.4),(0.,0.4)],1e-10)
12097 proc1=proc0.buildComplement(m0.getNumberOfCells())
12099 NodeField0=NodeField[proc0] ; NodeField0.getMesh().setName(m0.getName())
12100 NodeField1=NodeField[proc1] ; NodeField1.getMesh().setName(m0.getName())
12102 NodeField_read=MEDCouplingFieldDouble.MergeFields([NodeField0,NodeField1])
12103 NodeField_read.mergeNodes(1e-10)
12104 NodeFieldCpy=NodeField.deepCpy()
12105 NodeFieldCpy.mergeNodes(1e-10)
12106 NodeField.checkCoherency()
12107 self.assertTrue(not NodeField.getArray().isUniform(0.,1e-12))
12108 NodeField.substractInPlaceDM(NodeField_read,10,1e-12)
12109 self.assertTrue(NodeField.getArray().isUniform(0.,1e-12))
12112 def testSwigFieldOperationOpen1(self):
12113 ## MEDCouplingFieldDouble.__add__
12114 m=MEDCouplingDataForTest.build2DTargetMesh_1()
12115 f=MEDCouplingFieldDouble(ON_CELLS)
12117 arr=DataArrayDouble(5,2)
12118 arr[:,0]=range(5) ; arr[:,1]=2*arr[:,0]
12120 self.assertRaises(InterpKernelException,f.__add__,2)
12121 self.assertRaises(InterpKernelException,f.__add__,range(5))
12122 self.assertRaises(InterpKernelException,f.__add__,arr)
12123 self.assertRaises(InterpKernelException,f.__add__,f2)
12124 f.setArray(DataArrayDouble())
12125 self.assertRaises(InterpKernelException,f.__add__,2)
12126 self.assertRaises(InterpKernelException,f.__add__,range(5))
12127 self.assertRaises(InterpKernelException,f.__add__,arr)
12128 self.assertRaises(InterpKernelException,f.__add__,f2)
12129 self.assertRaises(InterpKernelException,f.__getitem__,(slice(None),0))
12130 f.getArray().alloc(5,2)
12131 f.getArray()[:,0]=range(5) ; f.getArray()[:,1]=f.getArray()[:,0]+7
12133 ff.checkCoherency()
12134 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(2,9),(3,10),(4,11),(5,12),(6,13)]),1e-12))
12136 ff.checkCoherency()
12137 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(0,7),(2,10),(4,13),(6,16),(8,19)]),1e-12))
12138 self.assertRaises(InterpKernelException,f.__add__,f2)
12141 ff.checkCoherency()
12142 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(0,7),(2,10),(4,13),(6,16),(8,19)]),1e-12))
12144 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(5,15),(6,16),(7,17),(8,18),(9,19)]),1e-12))
12145 ### MEDCouplingFieldDouble.__sub__
12146 m=MEDCouplingDataForTest.build2DTargetMesh_1()
12147 f=MEDCouplingFieldDouble(ON_CELLS)
12149 arr=DataArrayDouble(5,2)
12150 arr[:,0]=range(5) ; arr[:,1]=2*arr[:,0]
12152 self.assertRaises(InterpKernelException,f.__sub__,2)
12153 self.assertRaises(InterpKernelException,f.__sub__,range(5))
12154 self.assertRaises(InterpKernelException,f.__sub__,arr)
12155 self.assertRaises(InterpKernelException,f.__sub__,f2)
12156 f.setArray(DataArrayDouble())
12157 self.assertRaises(InterpKernelException,f.__sub__,2)
12158 self.assertRaises(InterpKernelException,f.__sub__,range(5))
12159 self.assertRaises(InterpKernelException,f.__sub__,arr)
12160 self.assertRaises(InterpKernelException,f.__sub__,f2)
12161 self.assertRaises(InterpKernelException,f.__getitem__,(slice(None),0))
12162 f.getArray().alloc(5,2)
12163 f.getArray()[:,0]=range(5) ; f.getArray()[:,1]=f.getArray()[:,0]+7
12165 ff.checkCoherency()
12166 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(-2,5),(-1,6),(0,7),(1,8),(2,9)]),1e-12))
12168 ff.checkCoherency()
12169 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(0,7),(0,6),(0,5),(0,4),(0,3)]),1e-12))
12170 self.assertRaises(InterpKernelException,f.__sub__,f2)
12173 ff.checkCoherency()
12174 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(0,7),(0,6),(0,5),(0,4),(0,3)]),1e-12))
12176 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(-5,-1),(-4,0),(-3,1),(-2,2),(-1,3)]),1e-12))
12177 ### MEDCouplingFieldDouble.__mul__
12178 m=MEDCouplingDataForTest.build2DTargetMesh_1()
12179 f=MEDCouplingFieldDouble(ON_CELLS)
12181 arr=DataArrayDouble(5,2)
12182 arr[:,0]=range(5) ; arr[:,1]=2*arr[:,0]
12184 self.assertRaises(InterpKernelException,f.__mul__,2)
12185 self.assertRaises(InterpKernelException,f.__mul__,range(5))
12186 self.assertRaises(InterpKernelException,f.__mul__,arr)
12187 self.assertRaises(InterpKernelException,f.__mul__,f2)
12188 f.setArray(DataArrayDouble())
12189 self.assertRaises(InterpKernelException,f.__mul__,2)
12190 self.assertRaises(InterpKernelException,f.__mul__,range(5))
12191 self.assertRaises(InterpKernelException,f.__mul__,arr)
12192 self.assertRaises(InterpKernelException,f.__mul__,f2)
12193 self.assertRaises(InterpKernelException,f.__getitem__,(slice(None),0))
12194 f.getArray().alloc(5,2)
12195 f.getArray()[:,0]=range(5) ; f.getArray()[:,1]=f.getArray()[:,0]+7
12197 ff.checkCoherency()
12198 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(0,14),(2,16),(4,18),(6,20),(8,22)]),1e-12))
12200 ff.checkCoherency()
12201 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(0,0),(1,16),(4,36),(9,60),(16,88)]),1e-12))
12202 self.assertRaises(InterpKernelException,f.__mul__,f2)
12205 ff.checkCoherency()
12206 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(0,0),(1,16),(4,36),(9,60),(16,88)]),1e-12))
12208 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(0,56),(5,64),(10,72),(15,80),(20,88)]),1e-12))
12209 ### MEDCouplingFieldDouble.__div__
12210 m=MEDCouplingDataForTest.build2DTargetMesh_1()
12211 f=MEDCouplingFieldDouble(ON_CELLS)
12213 arr=DataArrayDouble(5,2)
12214 arr[:,0]=range(1,6) ; arr[:,1]=2*arr[:,0]
12216 self.assertRaises(InterpKernelException,f.__div__,2)
12217 self.assertRaises(InterpKernelException,f.__div__,range(5))
12218 self.assertRaises(InterpKernelException,f.__div__,arr)
12219 self.assertRaises(InterpKernelException,f.__div__,f2)
12220 f.setArray(DataArrayDouble())
12221 self.assertRaises(InterpKernelException,f.__div__,2)
12222 self.assertRaises(InterpKernelException,f.__div__,range(5))
12223 self.assertRaises(InterpKernelException,f.__div__,arr)
12224 self.assertRaises(InterpKernelException,f.__div__,f2)
12225 self.assertRaises(InterpKernelException,f.__getitem__,(slice(None),0))
12226 f.getArray().alloc(5,2)
12227 f.getArray()[:,0]=range(5) ; f.getArray()[:,1]=f.getArray()[:,0]+7
12228 self.assertRaises(InterpKernelException,f.__div__,0)
12230 ff.checkCoherency()
12231 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(0,3.5),(0.5,4),(1,4.5),(1.5,5),(2,5.5)]),1e-12))
12233 ff.checkCoherency()
12234 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(0,3.5),(0.5,2),(0.6666666666666666,1.5),(0.75,1.25),(0.8,1.1)]),1e-12))
12235 self.assertRaises(InterpKernelException,f.__div__,f2)
12238 ff.checkCoherency()
12239 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(0,3.5),(0.5,2),(0.6666666666666666,1.5),(0.75,1.25),(0.8,1.1)]),1e-12))
12241 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(0,0.875),(0.2,1),(0.4,1.125),(0.6,1.25),(0.8,1.375)]),1e-12))
12242 ### MEDCouplingFieldDouble.__pow__
12243 m=MEDCouplingDataForTest.build2DTargetMesh_1()
12244 f=MEDCouplingFieldDouble(ON_CELLS)
12246 arr=DataArrayDouble(5)
12249 self.assertRaises(InterpKernelException,f.__div__,2)
12250 self.assertRaises(InterpKernelException,f.__div__,range(5))
12251 self.assertRaises(InterpKernelException,f.__div__,arr)
12252 self.assertRaises(InterpKernelException,f.__div__,f2)
12253 f.setArray(DataArrayDouble())
12254 self.assertRaises(InterpKernelException,f.__div__,2)
12255 self.assertRaises(InterpKernelException,f.__div__,range(5))
12256 self.assertRaises(InterpKernelException,f.__div__,arr)
12257 self.assertRaises(InterpKernelException,f.__div__,f2)
12258 self.assertRaises(InterpKernelException,f.__getitem__,(slice(None),0))
12259 f.getArray().alloc(5,1)
12260 f.getArray()[:]=range(2,7)
12262 ff.checkCoherency()
12263 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([4,9,16,25,36]),1e-12))
12265 ff.checkCoherency()
12266 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([2,3,64,25,1]),1e-12))
12269 ff.checkCoherency()
12270 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([2,3,64,25,1]),1e-12))
12271 ## MEDCouplingFieldDouble.__iadd__
12272 m=MEDCouplingDataForTest.build2DTargetMesh_1()
12273 f=MEDCouplingFieldDouble(ON_CELLS)
12275 arr=DataArrayDouble(5,2)
12276 arr[:,0]=range(5) ; arr[:,1]=2*arr[:,0]
12278 self.assertRaises(InterpKernelException,f.__iadd__,2)
12279 self.assertRaises(InterpKernelException,f.__iadd__,range(5))
12280 self.assertRaises(InterpKernelException,f.__iadd__,arr)
12281 self.assertRaises(InterpKernelException,f.__iadd__,f2)
12282 f.setArray(DataArrayDouble())
12283 self.assertRaises(InterpKernelException,f.__iadd__,2)
12284 self.assertRaises(InterpKernelException,f.__iadd__,range(5))
12285 self.assertRaises(InterpKernelException,f.__iadd__,arr)
12286 self.assertRaises(InterpKernelException,f.__iadd__,f2)
12287 f.getArray().alloc(5,2)
12288 f.getArray()[:,0]=range(5) ; f.getArray()[:,1]=f.getArray()[:,0]+7
12292 self.assertTrue(f.getArray().isEqual(DataArrayDouble([(2,9),(3,10),(4,11),(5,12),(6,13)]),1e-12))
12295 self.assertTrue(f.getArray().isEqual(DataArrayDouble([(2,9),(4,12),(6,15),(8,18),(10,21)]),1e-12))
12299 self.assertTrue(f.getArray().isEqual(DataArrayDouble([(2,9),(5,14),(8,19),(11,24),(14,29)]),1e-12))
12302 self.assertTrue(f.getArray().isEqual(DataArrayDouble([(2.1,9.2),(5.1,14.2),(8.1,19.2),(11.1,24.2),(14.1,29.2)]),1e-12))
12303 ## MEDCouplingFieldDouble.__isub__
12304 m=MEDCouplingDataForTest.build2DTargetMesh_1()
12305 f=MEDCouplingFieldDouble(ON_CELLS)
12307 arr=DataArrayDouble(5,2)
12308 arr[:,0]=range(5) ; arr[:,1]=2*arr[:,0]
12310 self.assertRaises(InterpKernelException,f.__isub__,2)
12311 self.assertRaises(InterpKernelException,f.__isub__,range(5))
12312 self.assertRaises(InterpKernelException,f.__isub__,arr)
12313 self.assertRaises(InterpKernelException,f.__isub__,f2)
12314 f.setArray(DataArrayDouble())
12315 self.assertRaises(InterpKernelException,f.__isub__,2)
12316 self.assertRaises(InterpKernelException,f.__isub__,range(5))
12317 self.assertRaises(InterpKernelException,f.__isub__,arr)
12318 self.assertRaises(InterpKernelException,f.__isub__,f2)
12319 f.getArray().alloc(5,2)
12320 f.getArray()[:,0]=range(5) ; f.getArray()[:,1]=f.getArray()[:,0]+7
12324 self.assertTrue(f.getArray().isEqual(DataArrayDouble([(-2,5),(-1,6),(0,7),(1,8),(2,9)]),1e-12))
12327 self.assertTrue(f.getArray().isEqual(DataArrayDouble([(-2,5),(-2,4),(-2,3),(-2,2),(-2,1)]),1e-12))
12331 self.assertTrue(f.getArray().isEqual(DataArrayDouble([(-2,5),(-3,2),(-4,-1),(-5,-4),(-6,-7)]),1e-12))
12334 self.assertTrue(f.getArray().isEqual(DataArrayDouble([(-2.1,4.8),(-3.1,1.8),(-4.1,-1.2),(-5.1,-4.2),(-6.1,-7.2)]),1e-12))
12335 ## MEDCouplingFieldDouble.__imul__
12336 m=MEDCouplingDataForTest.build2DTargetMesh_1()
12337 f=MEDCouplingFieldDouble(ON_CELLS)
12339 arr=DataArrayDouble(5,2)
12340 arr[:,0]=range(5) ; arr[:,1]=2*arr[:,0]
12342 self.assertRaises(InterpKernelException,f.__imul__,2)
12343 self.assertRaises(InterpKernelException,f.__imul__,range(5))
12344 self.assertRaises(InterpKernelException,f.__imul__,arr)
12345 self.assertRaises(InterpKernelException,f.__imul__,f2)
12346 f.setArray(DataArrayDouble())
12347 self.assertRaises(InterpKernelException,f.__imul__,2)
12348 self.assertRaises(InterpKernelException,f.__imul__,range(5))
12349 self.assertRaises(InterpKernelException,f.__imul__,arr)
12350 self.assertRaises(InterpKernelException,f.__imul__,f2)
12351 f.getArray().alloc(5,2)
12352 f.getArray()[:,0]=range(5) ; f.getArray()[:,1]=f.getArray()[:,0]+7
12356 self.assertTrue(f.getArray().isEqual(DataArrayDouble([(0,14),(2,16),(4,18),(6,20),(8,22)]),1e-12))
12359 self.assertTrue(f.getArray().isEqual(DataArrayDouble([(0,0),(2,32),(8,72),(18,120),(32,176)]),1e-12))
12363 self.assertTrue(f.getArray().isEqual(DataArrayDouble([(0,0),(2,64),(16,288),(54,720),(128,1408)]),1e-12))
12366 self.assertTrue(f.getArray().isEqual(DataArrayDouble([(0,0),(0.2,12.8),(1.6,57.6),(5.4,144),(12.8,281.6)]),1e-12))
12367 ## MEDCouplingFieldDouble.__idiv__
12368 m=MEDCouplingDataForTest.build2DTargetMesh_1()
12369 f=MEDCouplingFieldDouble(ON_CELLS)
12371 arr=DataArrayDouble(5,2)
12372 arr[:,0]=range(1,6) ; arr[:,1]=2*arr[:,0]
12374 self.assertRaises(InterpKernelException,f.__idiv__,2)
12375 self.assertRaises(InterpKernelException,f.__idiv__,range(5))
12376 self.assertRaises(InterpKernelException,f.__idiv__,arr)
12377 self.assertRaises(InterpKernelException,f.__idiv__,f2)
12378 f.setArray(DataArrayDouble())
12379 self.assertRaises(InterpKernelException,f.__idiv__,2)
12380 self.assertRaises(InterpKernelException,f.__idiv__,range(5))
12381 self.assertRaises(InterpKernelException,f.__idiv__,arr)
12382 self.assertRaises(InterpKernelException,f.__idiv__,f2)
12383 f.getArray().alloc(5,2)
12384 f.getArray()[:,0]=range(5) ; f.getArray()[:,1]=f.getArray()[:,0]+7
12388 self.assertTrue(f.getArray().isEqual(DataArrayDouble([(0,3.5),(0.5,4),(1,4.5),(1.5,5),(2,5.5)]),1e-12))
12391 self.assertTrue(f.getArray().isEqual(DataArrayDouble([(0,1.75),(0.25,1),(0.3333333333333333,0.75),(0.375,0.625),(0.4,0.55)]),1e-12))
12395 self.assertTrue(f.getArray().isEqual(DataArrayDouble([(0,0.875),(0.125,0.25),(0.1111111111111111,0.125),(0.09375,0.078125),(0.08,0.055)]),1e-12))
12398 self.assertTrue(f.getArray().isEqual(DataArrayDouble([(0,4.375),(1.25,1.25),(1.1111111111111111,0.625),(0.9375,0.390625),(0.8,0.275)]),1e-12))
12399 ## MEDCouplingFieldDouble.__ipow__
12400 m=MEDCouplingDataForTest.build2DTargetMesh_1()
12401 f=MEDCouplingFieldDouble(ON_CELLS)
12403 arr=DataArrayDouble(5,2)
12404 arr[:,0]=range(1,6) ; arr[:,1]=2*arr[:,0]
12406 self.assertRaises(InterpKernelException,f.__ipow__,2)
12407 self.assertRaises(InterpKernelException,f.__ipow__,range(5))
12408 self.assertRaises(InterpKernelException,f.__ipow__,arr)
12409 self.assertRaises(InterpKernelException,f.__ipow__,f2)
12410 f.setArray(DataArrayDouble())
12411 self.assertRaises(InterpKernelException,f.__ipow__,2)
12412 self.assertRaises(InterpKernelException,f.__ipow__,range(5))
12413 self.assertRaises(InterpKernelException,f.__ipow__,arr)
12414 self.assertRaises(InterpKernelException,f.__ipow__,f2)
12415 f.getArray().alloc(5,2)
12416 f.getArray()[:,0]=range(5) ; f.getArray()[:,1]=f.getArray()[:,0]+7
12420 self.assertTrue(f.getArray().isEqual(DataArrayDouble([(0,49),(1,64),(4,81),(9,100),(16,121)]),1e-12))
12421 ## MEDCouplingFieldDouble.__radd__
12422 m=MEDCouplingDataForTest.build2DTargetMesh_1()
12423 f=MEDCouplingFieldDouble(ON_CELLS)
12425 arr=DataArrayDouble(5,2)
12426 arr[:,0]=range(5) ; arr[:,1]=2*arr[:,0]
12428 self.assertRaises(InterpKernelException,f.__radd__,2)
12429 self.assertRaises(InterpKernelException,f.__radd__,range(5))
12430 self.assertRaises(InterpKernelException,f.__radd__,arr)
12431 self.assertRaises(InterpKernelException,f.__radd__,f2)
12432 f.setArray(DataArrayDouble())
12433 self.assertRaises(InterpKernelException,f.__radd__,2)
12434 self.assertRaises(InterpKernelException,f.__radd__,range(5))
12435 self.assertRaises(InterpKernelException,f.__radd__,arr)
12436 self.assertRaises(InterpKernelException,f.__radd__,f2)
12437 self.assertRaises(InterpKernelException,f.__getitem__,(slice(None),0))
12438 f.getArray().alloc(5,2)
12439 f.getArray()[:,0]=range(5) ; f.getArray()[:,1]=f.getArray()[:,0]+7
12441 ff.checkCoherency()
12442 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(2,9),(3,10),(4,11),(5,12),(6,13)]),1e-12))
12444 ff.checkCoherency()
12445 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(0,7),(2,10),(4,13),(6,16),(8,19)]),1e-12))
12446 self.assertRaises(InterpKernelException,f.__radd__,f2)
12448 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(5,15),(6,16),(7,17),(8,18),(9,19)]),1e-12))
12449 ### MEDCouplingFieldDouble.__rsub__
12450 m=MEDCouplingDataForTest.build2DTargetMesh_1()
12451 f=MEDCouplingFieldDouble(ON_CELLS)
12453 arr=DataArrayDouble(5,2)
12454 arr[:,0]=range(5) ; arr[:,1]=2*arr[:,0]
12456 self.assertRaises(InterpKernelException,f.__rsub__,2)
12457 self.assertRaises(InterpKernelException,f.__rsub__,range(5))
12458 self.assertRaises(InterpKernelException,f.__rsub__,arr)
12459 self.assertRaises(InterpKernelException,f.__rsub__,f2)
12460 f.setArray(DataArrayDouble())
12461 self.assertRaises(InterpKernelException,f.__rsub__,2)
12462 self.assertRaises(InterpKernelException,f.__rsub__,range(5))
12463 self.assertRaises(InterpKernelException,f.__rsub__,arr)
12464 self.assertRaises(InterpKernelException,f.__rsub__,f2)
12465 self.assertRaises(InterpKernelException,f.__getitem__,(slice(None),0))
12466 f.getArray().alloc(5,2)
12467 f.getArray()[:,0]=range(5) ; f.getArray()[:,1]=f.getArray()[:,0]+7
12469 ff.checkCoherency()
12470 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(2,-5),(1,-6),(0,-7),(-1,-8),(-2,-9)]),1e-12))
12472 ff.checkCoherency()
12473 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(0,-7),(0,-6),(0,-5),(0,-4),(0,-3)]),1e-12))
12474 self.assertRaises(InterpKernelException,f.__rsub__,f2)
12475 ### MEDCouplingFieldDouble.__rmul__
12476 m=MEDCouplingDataForTest.build2DTargetMesh_1()
12477 f=MEDCouplingFieldDouble(ON_CELLS)
12479 arr=DataArrayDouble(5,2)
12480 arr[:,0]=range(5) ; arr[:,1]=2*arr[:,0]
12482 self.assertRaises(InterpKernelException,f.__rmul__,2)
12483 self.assertRaises(InterpKernelException,f.__rmul__,range(5))
12484 self.assertRaises(InterpKernelException,f.__rmul__,arr)
12485 self.assertRaises(InterpKernelException,f.__rmul__,f2)
12486 f.setArray(DataArrayDouble())
12487 self.assertRaises(InterpKernelException,f.__rmul__,2)
12488 self.assertRaises(InterpKernelException,f.__rmul__,range(5))
12489 self.assertRaises(InterpKernelException,f.__rmul__,arr)
12490 self.assertRaises(InterpKernelException,f.__rmul__,f2)
12491 self.assertRaises(InterpKernelException,f.__getitem__,(slice(None),0))
12492 f.getArray().alloc(5,2)
12493 f.getArray()[:,0]=range(5) ; f.getArray()[:,1]=f.getArray()[:,0]+7
12495 ff.checkCoherency()
12496 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(0,14),(2,16),(4,18),(6,20),(8,22)]),1e-12))
12498 ff.checkCoherency()
12499 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(0,0),(1,16),(4,36),(9,60),(16,88)]),1e-12))
12500 self.assertRaises(InterpKernelException,f.__rmul__,f2)
12502 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(0,56),(5,64),(10,72),(15,80),(20,88)]),1e-12))
12503 ### MEDCouplingFieldDouble.__rdiv__
12504 m=MEDCouplingDataForTest.build2DTargetMesh_1()
12505 f=MEDCouplingFieldDouble(ON_CELLS)
12507 arr=DataArrayDouble(5,2)
12508 arr[:,0]=range(1,6) ; arr[:,1]=2*arr[:,0]
12510 self.assertRaises(InterpKernelException,f.__rdiv__,2)
12511 self.assertRaises(InterpKernelException,f.__rdiv__,range(5))
12512 self.assertRaises(InterpKernelException,f.__rdiv__,arr)
12513 self.assertRaises(InterpKernelException,f.__rdiv__,f2)
12514 f.setArray(DataArrayDouble())
12515 self.assertRaises(InterpKernelException,f.__rdiv__,2)
12516 self.assertRaises(InterpKernelException,f.__rdiv__,range(5))
12517 self.assertRaises(InterpKernelException,f.__rdiv__,arr)
12518 self.assertRaises(InterpKernelException,f.__rdiv__,f2)
12519 self.assertRaises(InterpKernelException,f.__getitem__,(slice(None),0))
12520 f.getArray().alloc(5,2)
12521 f.getArray()[:,0]=range(1,6) ; f.getArray()[:,1]=f.getArray()[:,0]+7
12523 ff.checkCoherency()
12524 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(2,0.25),(1,0.22222222222222221),(0.66666666666666663,0.20000000000000001),(0.5,0.18181818181818182),(0.40000000000000002,0.16666666666666666)]),1e-12))
12526 ff.checkCoherency()
12527 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(1,0.25),(1,0.44444444444444442),(1,0.59999999999999998),(1,0.72727272727272729),(1,0.83333333333333337)]),1e-12))
12528 self.assertRaises(InterpKernelException,f.__rdiv__,f2)
12531 def testSwig2FieldDoubleBuildSubPartRange1(self):
12533 m=MEDCouplingDataForTest.build2DTargetMesh_1()
12534 f=MEDCouplingFieldDouble(ON_CELLS)
12536 arr=DataArrayDouble(5,2) ; arr[:,0]=range(7,12) ; arr[:,1]=100+arr[:,0]
12540 ff.checkCoherency()
12541 self.assertTrue((m.buildPartOfMySelf([1,3],True)).isEqual(ff.getMesh(),1e-12))
12542 self.assertTrue(9,ff.getMesh().getNumberOfNodes())
12543 self.assertTrue(2,ff.getMesh().getNumberOfCells())
12544 self.assertTrue(ff.getArray().isEqual(arr[[1,3]],1e-12))
12546 a,b=f.buildSubMeshDataRange(2,5,1)
12547 self.assertTrue(m.buildPartOfMySelf([2,3,4],True).isEqual(a,1e-12))
12548 self.assertEqual(b,slice(2,5,1))
12550 ff.checkCoherency()
12551 self.assertTrue((m.buildPartOfMySelf([2,3,4],True)).isEqual(ff.getMesh(),1e-12))
12552 self.assertTrue(9,ff.getMesh().getNumberOfNodes())
12553 self.assertTrue(3,ff.getMesh().getNumberOfCells())
12554 self.assertTrue(ff.getArray().isEqual(arr[[2,3,4]],1e-12))
12557 ff.checkCoherency()
12558 self.assertTrue((m.buildPartOfMySelf([3,2,1],True)).isEqual(ff.getMesh(),1e-12))
12559 self.assertTrue(9,ff.getMesh().getNumberOfNodes())
12560 self.assertTrue(3,ff.getMesh().getNumberOfCells())
12561 self.assertTrue(ff.getArray().isEqual(arr[[3,2,1]],1e-12))
12562 self.assertTrue(f[-2:0:-1,1].getArray().isEqual(arr[[3,2,1],1],1e-12))
12564 f=MEDCouplingFieldDouble(ON_NODES)
12566 arr=DataArrayDouble(9,2) ; arr[:,0]=range(7,16) ; arr[:,1]=100+arr[:,0]
12570 ff.checkCoherency()
12571 self.assertTrue((m.buildPartOfMySelf([1,3],False)).isEqual(ff.getMesh(),1e-12))
12572 self.assertTrue(6,ff.getMesh().getNumberOfNodes())
12573 self.assertTrue(2,ff.getMesh().getNumberOfCells())
12574 self.assertTrue(ff.getArray().isEqual(arr[[1,2,3,4,6,7]],1e-12))
12576 m2=m.buildPartRange(2,5,1)
12577 self.assertTrue(m.buildPartOfMySelf([2,3,4],True).isEqual(m2,1e-12))
12578 m2,b=m.buildPartRangeAndReduceNodes(2,5,1)
12579 self.assertTrue(m.buildPartOfMySelf([2,3,4],False).isEqual(m2,1e-12))
12580 self.assertTrue(b.isEqual(DataArrayInt([-1,-1,0,1,2,3,4,5,6])))
12581 a,b=f.buildSubMeshDataRange(2,5,1)
12582 self.assertTrue(m.buildPartOfMySelf([2,3,4],False).isEqual(a,1e-12))
12583 self.assertTrue(b.isEqual(DataArrayInt([2,3,4,5,6,7,8])))
12585 ff.checkCoherency()
12586 self.assertTrue((m.buildPartOfMySelf([2,3,4],False)).isEqual(ff.getMesh(),1e-12))
12587 self.assertTrue(7,ff.getMesh().getNumberOfNodes())
12588 self.assertTrue(3,ff.getMesh().getNumberOfCells())
12589 self.assertTrue(ff.getArray().isEqual(arr[[2,3,4,5,6,7,8]],1e-12))
12592 ff.checkCoherency()
12593 self.assertTrue((m.buildPartOfMySelf([3,2,1],False)).isEqual(ff.getMesh(),1e-12))
12594 self.assertTrue(7,ff.getMesh().getNumberOfNodes())
12595 self.assertTrue(3,ff.getMesh().getNumberOfCells())
12596 self.assertTrue(ff.getArray().isEqual(arr[[1,2,3,4,5,6,7]],1e-12))
12597 self.assertTrue(f[-2:0:-1,1].getArray().isEqual(arr[[1,2,3,4,5,6,7],1],1e-12))
12599 f=MEDCouplingFieldDouble(ON_GAUSS_NE)
12601 arr=DataArrayDouble(18,2) ; arr[:,0]=range(7,25) ; arr[:,1]=100+arr[:,0]
12605 ff.checkCoherency()
12606 self.assertTrue((m.buildPartOfMySelf([1,3],True)).isEqual(ff.getMesh(),1e-12))
12607 self.assertTrue(9,ff.getMesh().getNumberOfNodes())
12608 self.assertTrue(2,ff.getMesh().getNumberOfCells())
12609 self.assertTrue(ff.getArray().isEqual(arr[[4,5,6,10,11,12,13]],1e-12))
12611 a,b=f.buildSubMeshDataRange(2,5,1)
12612 self.assertTrue(m.buildPartOfMySelf([2,3,4],True).isEqual(a,1e-12))
12613 self.assertEqual(b,slice(7,18,1))
12615 ff.checkCoherency()
12616 self.assertTrue((m.buildPartOfMySelf([2,3,4],True)).isEqual(ff.getMesh(),1e-12))
12617 self.assertTrue(9,ff.getMesh().getNumberOfNodes())
12618 self.assertTrue(3,ff.getMesh().getNumberOfCells())
12619 self.assertTrue(ff.getArray().isEqual(arr[[7,8,9,10,11,12,13,14,15,16,17]],1e-12))
12622 ff.checkCoherency()
12623 self.assertTrue((m.buildPartOfMySelf([3,2,1],True)).isEqual(ff.getMesh(),1e-12))
12624 self.assertTrue(9,ff.getMesh().getNumberOfNodes())
12625 self.assertTrue(3,ff.getMesh().getNumberOfCells())
12626 self.assertTrue(ff.getArray().isEqual(arr[[10,11,12,13,7,8,9,4,5,6]],1e-12))
12627 self.assertTrue(f[-2:0:-1,1].getArray().isEqual(arr[[10,11,12,13,7,8,9,4,5,6],1],1e-12))
12629 f=MEDCouplingFieldDouble(ON_GAUSS_PT)
12631 f.setGaussLocalizationOnCells([0,4],[0,0,1,0,1,1,1,0],[1.1,1.1,2.2,2.2],[0.2,0.8]);
12632 f.setGaussLocalizationOnCells([3],[0,0,1,0,1,1,1,0],[1.1,1.1,2.2,2.2,3.,3.],[0.2,0.4,0.4]);
12633 f.setGaussLocalizationOnCells([1],[0,0,1,0,1,0],[1.1,1.1,2.2,2.2,3.,3.,4.,4.],[0.1,0.1,0.4,0.4]);
12634 f.setGaussLocalizationOnCells([2],[0,0,1,0,1,0],[1.1,1.1,2.2,2.2,3.,3.,4.,4.,5.,5.],[0.1,0.1,0.4,0.3,0.1]);
12635 arr=DataArrayDouble(16,2) ; arr[:,0]=range(7,23) ; arr[:,1]=100+arr[:,0]
12639 ff.checkCoherency()
12640 self.assertTrue((m.buildPartOfMySelf([1,3],True)).isEqual(ff.getMesh(),1e-12))
12641 self.assertTrue(9,ff.getMesh().getNumberOfNodes())
12642 self.assertTrue(2,ff.getMesh().getNumberOfCells())
12643 self.assertTrue(ff.getArray().isEqual(arr[[2,3,4,5,11,12,13]],1e-12))
12645 a,b=f.buildSubMeshDataRange(2,5,1)
12646 self.assertTrue(m.buildPartOfMySelf([2,3,4],True).isEqual(a,1e-12))
12647 self.assertEqual(b,slice(6,16,1))
12649 ff.checkCoherency()
12650 self.assertTrue((m.buildPartOfMySelf([2,3,4],True)).isEqual(ff.getMesh(),1e-12))
12651 self.assertTrue(9,ff.getMesh().getNumberOfNodes())
12652 self.assertTrue(3,ff.getMesh().getNumberOfCells())
12653 self.assertTrue(ff.getArray().isEqual(arr[[6,7,8,9,10,11,12,13,14,15]],1e-12))
12656 ff.checkCoherency()
12657 self.assertTrue((m.buildPartOfMySelf([3,2,1],True)).isEqual(ff.getMesh(),1e-12))
12658 self.assertTrue(9,ff.getMesh().getNumberOfNodes())
12659 self.assertTrue(3,ff.getMesh().getNumberOfCells())
12660 self.assertTrue(ff.getArray().isEqual(arr[[11,12,13,6,7,8,9,10,2,3,4,5]],1e-12))
12661 self.assertTrue(f[-2:0:-1,0].getArray().isEqual(arr[[11,12,13,6,7,8,9,10,2,3,4,5],0],1e-12))
12664 def testSwig2FieldDoubleApplyFuncBug1(self):
12665 f=MEDCouplingFieldDouble(ON_CELLS)
12666 f.setMesh(MEDCouplingDataForTest.build2DTargetMesh_1())
12667 f.applyFunc(3,700.)
12669 self.assertEqual(3,f.getArray().getNumberOfComponents())
12670 f.getArray().rearrange(1)
12671 self.assertTrue(f.getArray().isUniform(700.,1e-10))
12672 f.getArray().rearrange(3)
12674 f.applyFunc(4,800.)
12676 self.assertEqual(4,f.getArray().getNumberOfComponents())
12677 f.getArray().rearrange(1)
12678 self.assertTrue(f.getArray().isUniform(800.,1e-10))
12679 f.getArray().rearrange(4)
12683 def testSwig2ComputeTupleIdsNearTupleBug1(self):
12684 coords=[1.1,0.0, 1.1,0.0 ];
12685 coordsArr=DataArrayDouble(coords,2,2);
12686 mesh=MEDCouplingUMesh();
12687 mesh.setCoords(coordsArr);
12688 points=[1.1, 0.002]
12689 c,cI=mesh.getNodeIdsNearPoints(points,0.00185);
12690 self.assertTrue(c.isEqual(DataArrayInt([])))
12691 self.assertTrue(cI.isEqual(DataArrayInt([0,0])))
12692 c,cI=mesh.getNodeIdsNearPoints(points,0.00200000000000001);
12693 self.assertTrue(c.isEqual(DataArrayInt([0,1])))
12694 self.assertTrue(cI.isEqual(DataArrayInt([0,2])))
12697 def testSwig2NonRegressionBugChangeUnderlyingWithZeroCells(self):
12698 coords1=[0.,1.,2.,3.]
12699 coords2=[2.,1.,0.,3.] #0 <==> #2
12701 mesh1=MEDCouplingUMesh.New();
12702 coordsArr=DataArrayDouble.New(coords1,4,1);
12703 mesh1.setCoords(coordsArr);
12704 mesh1.setMeshDimension(0);
12705 mesh1.allocateCells(0);
12706 mesh1.finishInsertingCells();
12708 mesh2=mesh1.deepCpy();
12709 coordsArr=DataArrayDouble.New(coords2,4,1);
12710 mesh2.setCoords(coordsArr);
12711 field = mesh1.fillFromAnalytic(ON_NODES,1,"x")
12712 field.checkCoherency()
12714 field.changeUnderlyingMesh( mesh2, levOfCheck, 1e-13, 0 )
12715 self.assertTrue( field.getArray().getValues() == coords2 )
12718 def testSwig2UMeshDistanceToMesh2(self):
12720 m=MEDCouplingCMesh()
12721 arr=DataArrayDouble(sz+1) ; arr.iota() ; arr/=sz
12722 m.setCoords(arr,arr,arr)
12723 m=m.buildUnstructured()
12726 c=m1.getCoords()[:]
12727 d=2*(c-[0.5,0.5,0.5])+[0.5,0.5,0.5]
12728 time_deb = datetime.now()
12730 a,b=m1.distanceToPoints(d)
12731 #print 'time spent in distanceToPoints %s ' %str(datetime.now() - time_deb)
12732 time_deb = datetime.now()
12733 a1=DataArrayDouble(len(d))
12734 b1=DataArrayInt(len(d))
12735 m1s=[m1[i] for i in xrange(m1.getNumberOfCells())]
12736 for j,pt in enumerate(d):
12739 for i,miter in enumerate(m1s):
12740 e,f=miter.distanceToPoint(pt)
12741 self.assertEqual(0,f)
12749 #print 'time spent in naive distanceToPoints %s ' %str(datetime.now() - time_deb)
12750 self.assertTrue(a.isEqual(a1,1e-12))
12751 self.assertTrue(b.isEqual(b1))
12752 self.assertTrue(a.isEqual(DataArrayDouble([0.8660254037844386,0.714142842854285,0.7071067811865476,0.7071067811865476,0.714142842854285,0.8660254037844386,0.714142842854285,0.5196152422706632,0.5099019513592785,0.5099019513592785,0.5196152422706632,0.714142842854285,0.7071067811865475,0.5099019513592785,0.5,0.5,0.5099019513592785,0.7071067811865476,0.7071067811865475,0.5099019513592785,0.5,0.5,0.5099019513592785,0.7071067811865476,0.714142842854285,0.5196152422706632,0.5099019513592785,0.5099019513592785,0.5196152422706632,0.714142842854285,0.8660254037844386,0.714142842854285,0.7071067811865476,0.7071067811865476,0.714142842854285,0.8660254037844386,0.714142842854285,0.5196152422706632,0.5099019513592785,0.5099019513592785,0.5196152422706631,0.714142842854285,0.5196152422706631,0.5196152422706632,0.5099019513592784,0.5099019513592785,0.5099019513592784,0.5099019513592785,0.5196152422706631,0.5196152422706632,0.714142842854285,0.5196152422706632,0.5099019513592785,0.5099019513592785,0.5196152422706632,0.714142842854285,0.7071067811865475,0.5099019513592785,0.5,0.5,0.5099019513592784,0.7071067811865475,0.5099019513592784,0.5099019513592785,0.5,0.5,0.5,0.5,0.5099019513592785,0.5099019513592785,0.7071067811865476,0.5099019513592785,0.5,0.5,0.5099019513592785,0.7071067811865476,0.7071067811865475,0.5099019513592785,0.5,0.5,0.5099019513592784,0.7071067811865475,0.5099019513592784,0.5099019513592785,0.5,0.5,0.5,0.5,0.5099019513592785,0.5099019513592785,0.7071067811865476,0.5099019513592785,0.5,0.5,0.5099019513592785,0.7071067811865476,0.714142842854285,0.5196152422706632,0.5099019513592785,0.5099019513592785,0.5196152422706631,0.714142842854285,0.5196152422706631,0.5196152422706632,0.5099019513592784,0.5099019513592785,0.5099019513592784,0.5099019513592785,0.5196152422706631,0.5196152422706632,0.714142842854285,0.5196152422706632,0.5099019513592785,0.5099019513592785,0.5196152422706632,0.714142842854285,0.8660254037844386,0.714142842854285,0.7071067811865476,0.7071067811865476,0.714142842854285,0.8660254037844386,0.714142842854285,0.5196152422706632,0.5099019513592785,0.5099019513592785,0.5196152422706632,0.714142842854285,0.7071067811865475,0.5099019513592785,0.5,0.5,0.5099019513592785,0.7071067811865476,0.7071067811865475,0.5099019513592785,0.5,0.5,0.5099019513592785,0.7071067811865476,0.714142842854285,0.5196152422706632,0.5099019513592785,0.5099019513592785,0.5196152422706632,0.714142842854285,0.8660254037844386,0.714142842854285,0.7071067811865476,0.7071067811865476,0.714142842854285,0.8660254037844386]),1e-12))
12753 self.assertTrue(b.isEqual(DataArrayInt([0,0,3,7,9,9,0,0,3,7,9,9,12,12,14,16,17,17,26,26,28,30,31,31,33,33,36,40,42,42,33,33,36,40,42,42,0,0,3,7,11,9,0,9,12,17,26,31,33,42,33,33,36,40,42,42,45,45,47,49,51,51,45,50,52,53,56,57,58,63,58,58,60,62,63,63,85,85,87,89,91,91,85,90,92,93,96,97,98,103,98,98,100,102,103,103,105,105,108,112,116,114,105,114,117,122,131,136,138,147,138,138,141,145,147,147,105,105,108,112,114,114,105,105,108,112,114,114,117,117,119,121,122,122,131,131,133,135,136,136,138,138,141,145,147,147,138,138,141,145,147,147])))
12756 def testSwig2NonRegressionBugDistance1(self):
12757 pt=DataArrayDouble([(8.8452994616207476,3.1547005383792515,3.1547005383792515)])
12758 coo=DataArrayDouble([(8,0,0),(8,0,8),(8,8,8),(8,8,0),(16,0,0),(16,0,8),(16,8,8),(16,8,0),(8,0,4),(8,4,8),(8,8,4),(8,4,0),(16,0,4),(16,4,8),(16,8,4),(16,4,0),(12,0,0),(12,0,8),(12,8,8),(12,8,0),(8,4,4),(16,4,4),(12,0,4),(12,4,8),(12,8,4),(12,4,0)])
12759 conn=DataArrayInt([4,15,21,12,4,16,25,15,12,22,16,4,0,8,20,11,16,0,11,25,22,8,0,16,15,7,14,21,15,25,19,7,7,19,24,14,11,20,10,3,25,11,3,19,19,3,10,24,12,21,13,5,13,23,17,5,5,17,22,12,8,1,9,20,23,9,1,17,17,1,8,22,21,14,6,13,14,24,18,6 ,6,18,23,13,20,9,2,10,24,10,2,18,18,2,9,23])
12760 m=MEDCouplingUMesh("mesh",2)
12763 for i in xrange(24):
12764 m.insertNextCell(NORM_QUAD4,conn[4*i:4*i+4])
12766 m.checkCoherency2()
12767 m0=m[3] ; m0.zipCoords()
12768 expectedDist=0.8452994616207476
12769 a,b=m0.distanceToPoint(pt)
12770 self.assertAlmostEqual(expectedDist,a,14)
12771 self.assertEqual(0,b)
12773 a,b=m.distanceToPoint(pt)
12774 self.assertAlmostEqual(expectedDist,a,14)
12775 self.assertEqual(3,b)
12777 fd=MEDCouplingFieldDiscretization.New(ON_CELLS)
12778 self.assertEqual(24,fd.getNumberOfTuples(m))
12779 fd=MEDCouplingFieldDiscretization.New(ON_NODES)
12780 self.assertEqual(26,fd.getNumberOfTuples(m))
12783 def testSwig2AreaBarySeg3Quad8Tri6QPolyg(self):
12784 #QUAD8 representing a circle of center zeBary and radius zeRadius
12787 d=DataArrayDouble(8,2)
12789 d[:,1]=[87,-100,-170,110,5,-130,175,95] # angle in degree
12790 d[:,1]*=pi/180. # angle in radian
12791 d=d.fromPolarToCart()
12793 m=MEDCouplingUMesh("quad8",2) ; m.allocateCells() ; m.insertNextCell(NORM_QUAD8,range(8)) ; m.setCoords(d)
12794 self.assertTrue(m.getBarycenterAndOwner().isEqual(DataArrayDouble(zeBary,1,2),1e-13))
12795 self.assertAlmostEqual(float(m.getMeasureField(False).getArray()),pi*zeRadius*zeRadius,12)
12796 tri32D=m.buildDescendingConnectivity()[0][0] ; tri32D.zipCoords()
12797 # spaceDim=3 QUAD8 becomes QUAD4 ... for the moment
12798 m.setCoords(m.getCoords().changeNbOfComponents(3,0.))
12800 m2.convertQuadraticCellsToLinear()
12801 self.assertAlmostEqual(float(m.getMeasureField(False).getArray()),float(m2.getMeasureField(False).getArray()),12)
12802 self.assertTrue(m.getBarycenterAndOwner().isEqual(m2.getBarycenterAndOwner(),1e-13))
12803 #TRI6 representing a circle of center zeBary and radius zeRadius
12806 d=DataArrayDouble(6,2)
12808 d[:,1]=[87,-100,110,5,175,95] # angle in degree
12809 d[:,1]*=pi/180. # angle in radian
12810 d=d.fromPolarToCart()
12812 m=MEDCouplingUMesh("tri6",2) ; m.allocateCells() ; m.insertNextCell(NORM_TRI6,range(6)) ; m.setCoords(d)
12813 self.assertTrue(m.getBarycenterAndOwner().isEqual(DataArrayDouble(zeBary,1,2),1e-13))
12814 self.assertAlmostEqual(float(m.getMeasureField(False).getArray()),pi*zeRadius*zeRadius,12)
12815 # spaceDim=3 TRI6 becomes TRI3 ... for the moment
12816 m.setCoords(m.getCoords().changeNbOfComponents(3,0.))
12818 m2.convertQuadraticCellsToLinear()
12819 self.assertAlmostEqual(float(m.getMeasureField(False).getArray()),float(m2.getMeasureField(False).getArray()),12)
12820 self.assertTrue(m.getBarycenterAndOwner().isEqual(m2.getBarycenterAndOwner(),1e-13))
12821 # QPOLYG representing a circle of center zeBary and radius zeRadius
12824 d=DataArrayDouble(10,2)
12826 d[:,1]=[87,-80,-100,-170,110,5,-90,-130,175,95] # angle in degree
12827 d[:,1]*=pi/180. # angle in radian
12828 d=d.fromPolarToCart()
12830 m=MEDCouplingUMesh("qpolyg",2) ; m.allocateCells() ; m.insertNextCell(NORM_QPOLYG,range(10)) ; m.setCoords(d)
12831 self.assertTrue(m.getBarycenterAndOwner().isEqual(DataArrayDouble(zeBary,1,2),1e-13))
12832 self.assertAlmostEqual(float(m.getMeasureField(False).getArray()),pi*zeRadius*zeRadius,12)
12833 # spaceDim=3 QPOLYG becomes POLYG ... for the moment
12834 m.setCoords(m.getCoords().changeNbOfComponents(3,0.))
12836 m2.convertQuadraticCellsToLinear() ; m2.checkCoherency2()
12837 self.assertTrue(m2.getAllGeoTypes()==[NORM_POLYGON] and m2.getNodalConnectivity().getValues()==[5,0,1,2,3,4])
12838 self.assertAlmostEqual(float(m.getMeasureField(False).getArray()),float(m2.getMeasureField(False).getArray()),12)
12839 self.assertTrue(m.getBarycenterAndOwner().isEqual(m2.getBarycenterAndOwner(),1e-13))
12841 self.assertAlmostEqual(float(tri32D.getMeasureField(False).getArray()),(87+100)*pi/180*zeRadius,13)
12842 exp=DataArrayDouble(1,2) ; exp[:,0]=3 ; exp[:,1]=(87-100)/2. ; exp[:,1]*=pi/180. ; exp=exp.fromPolarToCart() ; exp+=DataArrayDouble([5,6],1,2)
12843 self.assertTrue(tri32D.getBarycenterAndOwner().isEqual(exp,1e-12))
12844 # spaceDim=3 TRI3 becomes TRI2 ... for the moment
12845 tri32D.changeSpaceDimension(3)
12846 tri2=tri32D.deepCpy() ; tri2.convertQuadraticCellsToLinear()
12847 self.assertAlmostEqual(float(tri32D.getMeasureField(False).getArray()),float(tri2.getMeasureField(False).getArray()),13)
12848 self.assertTrue(tri32D.getBarycenterAndOwner().isEqual(tri2.getBarycenterAndOwner(),1e-12))
12849 tri32D.changeSpaceDimension(1)
12850 self.assertAlmostEqual(float(tri32D.getMeasureField(False).getArray()),-0.67795240172962323,12)
12853 # this bug 5/6/2013 is swig specific
12854 def testSwigNonRegressionBugRotate3D1(self):
12855 m=MEDCouplingUMesh.New()
12856 dataArray=DataArrayDouble.New(100,3)
12858 dataArray[0]=[0.,1,3]
12859 m.setCoords(dataArray[0])
12861 m.rotate([0.,0.,3.],[1.,0.,0.],0.5*pi)
12862 self.assertTrue(m.getCoords().isEqual(DataArrayDouble([0.,0.,4.],1,3),1e-15))
12864 d1=DataArrayDouble([0.,0.,3.],1,3) ; d2=DataArrayDouble([1.,0.,0.],1,3)
12865 pts=[[0.,0.,3.],[(0.,0.,3.)],DataArrayDouble([0.,0.,3.],1,3),list(d1)[0]]
12866 vec=[[1.,0.,0.],[(1.,0.,0.)],DataArrayDouble([1.,0.,0.],1,3),list(d2)[0]]
12870 m2.rotate(p,v,0.5*pi)
12871 self.assertTrue(m2.getCoords().isEqual(DataArrayDouble([0.,0.,4.],1,3),1e-15))
12875 def testSwig2DataArrayCount1(self):
12877 self.assertEqual(0,d.getNumberOfTuples())
12878 self.assertEqual(1,d.getNumberOfComponents())
12879 self.assertEqual(0,d.count(0))
12880 self.assertEqual(0,d.count(1))
12881 self.assertEqual(0,d.count(-1))
12882 d=DataArrayInt([2,1,-2,-3,2,0,0,7,2,-2,3,0])
12883 self.assertEqual(12,d.getNumberOfTuples())
12884 self.assertEqual(1,d.getNumberOfComponents())
12885 self.assertEqual(3,d.count(0))
12886 self.assertEqual(1,d.count(1))
12887 self.assertEqual(0,d.count(-1))
12888 self.assertEqual(2,d.count(-2))
12889 self.assertEqual(3,d.count(2))
12890 e=d.getDifferentValues()
12893 f.pushBackSilent(d.count(int(it)))
12895 self.assertEqual(12,f.accumulate()[0])
12898 d=DataArrayDouble([])
12899 self.assertEqual(0,d.getNumberOfTuples())
12900 self.assertEqual(1,d.getNumberOfComponents())
12901 self.assertEqual(0,d.count(0,eps))
12902 self.assertEqual(0,d.count(1,eps))
12903 self.assertEqual(0,d.count(-1,eps))
12904 d=DataArrayDouble([2,1,-2,-3,2,0,eps/10,7,2+eps/10,-2,3,0])
12905 self.assertEqual(12,d.getNumberOfTuples())
12906 self.assertEqual(1,d.getNumberOfComponents())
12907 self.assertEqual(3,d.count(0,eps))
12908 self.assertEqual(1,d.count(1,eps))
12909 self.assertEqual(0,d.count(-1,eps))
12910 self.assertEqual(2,d.count(-2,eps))
12911 self.assertEqual(3,d.count(2,eps))
12912 self.assertEqual(3,d.count(2,eps))
12913 self.assertEqual(2,d.count(2,eps/100))
12914 e=d.getDifferentValues(eps)
12917 f.pushBackSilent(d.count(float(it),eps))
12919 self.assertEqual(12,f.accumulate()[0])
12922 def testSwig2DataArrayGetSlice1(self):
12924 self.assertEqual(DataArray.GetNumberOfItemGivenBESRelative(s),16)
12925 self.assertEqual(DataArray.GetNumberOfItemGivenBES(s),16)
12926 self.assertEqual(DataArray.GetSlice(s,0,4),slice(2,6,1))
12927 self.assertEqual(DataArray.GetSlice(s,1,4),slice(6,10,1))
12928 self.assertEqual(DataArray.GetSlice(s,2,4),slice(10,14,1))
12929 self.assertEqual(DataArray.GetSlice(s,3,4),slice(14,18,1))
12932 self.assertEqual(DataArray.GetNumberOfItemGivenBESRelative(s),8)
12933 self.assertEqual(DataArray.GetNumberOfItemGivenBES(s),8)
12934 self.assertEqual(DataArray.GetSlice(s,0,4),slice(2,6,2))
12935 self.assertEqual(DataArray.GetSlice(s,1,4),slice(6,10,2))
12936 self.assertEqual(DataArray.GetSlice(s,2,4),slice(10,14,2))
12937 self.assertEqual(DataArray.GetSlice(s,3,4),slice(14,18,2))
12940 self.assertEqual(DataArray.GetSlice(s,0,4),slice(1,5,1))
12941 self.assertEqual(DataArray.GetSlice(s,1,4),slice(5,9,1))
12942 self.assertEqual(DataArray.GetSlice(s,2,4),slice(9,13,1))
12943 self.assertEqual(DataArray.GetSlice(s,3,4),slice(13,18,1))# 18 not 17
12946 self.assertEqual(DataArray.GetNumberOfItemGivenBESRelative(s),9)
12947 self.assertEqual(DataArray.GetNumberOfItemGivenBES(s),9)
12948 self.assertEqual(DataArray.GetSlice(s,0,4),slice(1,5,2))
12949 self.assertEqual(DataArray.GetSlice(s,1,4),slice(5,9,2))
12950 self.assertEqual(DataArray.GetSlice(s,2,4),slice(9,13,2))
12951 self.assertEqual(DataArray.GetSlice(s,3,4),slice(13,18,2))# 18 not 17
12954 self.assertEqual(DataArray.GetSlice(s,0,4),slice(18,14,-1))
12955 self.assertEqual(DataArray.GetSlice(s,1,4),slice(14,10,-1))
12956 self.assertEqual(DataArray.GetSlice(s,2,4),slice(10,6,-1))
12957 self.assertEqual(DataArray.GetSlice(s,3,4),slice(6,2,-1))
12960 self.assertEqual(DataArray.GetSlice(s,0,4),slice(18,14,-2))
12961 self.assertEqual(DataArray.GetSlice(s,1,4),slice(14,10,-2))
12962 self.assertEqual(DataArray.GetSlice(s,2,4),slice(10,6,-2))
12963 self.assertEqual(DataArray.GetSlice(s,3,4),slice(6,2,-2))
12966 self.assertEqual(DataArray.GetSlice(s,0,4),slice(18,14,-1))
12967 self.assertEqual(DataArray.GetSlice(s,1,4),slice(14,10,-1))
12968 self.assertEqual(DataArray.GetSlice(s,2,4),slice(10,6,-1))
12969 self.assertEqual(DataArray.GetSlice(s,3,4),slice(6,1,-1))# 1 not 2
12972 self.assertEqual(DataArray.GetNumberOfItemGivenBESRelative(s),9)
12973 self.assertRaises(InterpKernelException,DataArray.GetNumberOfItemGivenBES,s)
12974 self.assertEqual(sum([DataArray.GetNumberOfItemGivenBESRelative(DataArray.GetSlice(s,i,4)) for i in xrange(4)]),DataArray.GetNumberOfItemGivenBESRelative(s))
12975 self.assertEqual(DataArray.GetSlice(s,0,4),slice(18,14,-2))
12976 self.assertEqual(DataArray.GetSlice(s,1,4),slice(14,10,-2))
12977 self.assertEqual(DataArray.GetSlice(s,2,4),slice(10,6,-2))
12978 self.assertEqual(DataArray.GetSlice(s,3,4),slice(6,1,-2))# 1 not 2
12979 self.assertRaises(InterpKernelException,DataArray.GetSlice,slice(0,None,2),0,4)
12981 d=DataArrayInt.Range(0,18,1)
12983 self.assertEqual(d.getNumberOfItemGivenBES(s),16)
12984 self.assertEqual(d.getNumberOfItemGivenBESRelative(s),16)
12985 self.assertEqual(d.getSlice(s,0,4),slice(2,6,1))
12986 self.assertEqual(d.getSlice(s,1,4),slice(6,10,1))
12987 self.assertEqual(d.getSlice(s,2,4),slice(10,14,1))
12988 self.assertEqual(d.getSlice(s,3,4),slice(14,18,1))
12990 d=DataArrayInt.Range(0,18,1)
12992 self.assertEqual(d.getSlice(s,0,4),slice(2,5,1))
12993 self.assertEqual(d.getSlice(s,1,4),slice(5,8,1))
12994 self.assertEqual(d.getSlice(s,2,4),slice(8,11,1))
12995 self.assertEqual(d.getSlice(s,3,4),slice(11,16,1))
12997 d=DataArrayInt.Range(0,18,1)
12998 s=slice(None,None,1)
12999 self.assertEqual(d.getSlice(s,0,4),slice(0,4,1))
13000 self.assertEqual(d.getSlice(s,1,4),slice(4,8,1))
13001 self.assertEqual(d.getSlice(s,2,4),slice(8,12,1))
13002 self.assertEqual(d.getSlice(s,3,4),slice(12,18,1))
13004 d=DataArrayInt.Range(0,18,1)
13006 self.assertRaises(InterpKernelException,d.getNumberOfItemGivenBES,s)
13007 self.assertEqual(d.getNumberOfItemGivenBESRelative(s),8)
13008 self.assertEqual(d.getSlice(s,0,4),slice(17,13,-2))
13009 self.assertEqual(d.getSlice(s,1,4),slice(13,9,-2))
13010 self.assertEqual(d.getSlice(s,2,4),slice(9,5,-2))
13011 self.assertEqual(d.getSlice(s,3,4),slice(5,2,-2))
13014 def testSwig2AccumulatePerChunk1(self):
13015 arr=DataArrayDouble(11) ; arr.iota()
13016 m=MEDCouplingCMesh() ; m.setCoords(arr,arr)
13017 m=m.buildUnstructured()
13018 m0=m[::2] ; ids0=m0.simplexize(0) ; m1=m[1::2]
13019 m=MEDCouplingUMesh.MergeUMeshesOnSameCoords(m0,m1) ; m.setName("mesh")
13020 m.checkConsecutiveCellTypesForMEDFileFrmt()
13022 formula="7-sqrt((x-5.)*(x-5.)+(y-5.)*(y-5.))"
13023 f=MEDCouplingFieldDouble(ON_CELLS,ONE_TIME) ; f.setMesh(m)
13024 f.fillFromAnalytic(1,formula)
13025 f.setName("Field1") ; f.setTime(1.1,1,-1)
13029 arr2=DataArrayDouble(len(arr),2) ; arr2[:,0]=arr
13030 arr2=DataArrayDouble(len(arr),2) ; arr2[:,0]=arr ; arr2[:,1]=2*arr
13033 # here the compact code to obviously put field on cell to nodes
13034 rn,rni=f.getMesh().getReverseNodalConnectivity()
13035 arr2=f.getArray()[rn]
13036 arr4=arr2.accumulatePerChunck(rni)
13037 nbOfCellsSharingNodes=rni.deltaShiftIndex()
13038 arr4/=nbOfCellsSharingNodes.convertToDblArr()
13040 maxNbCSN=nbOfCellsSharingNodes.getMaxValue()[0]
13041 arr3=DataArrayDouble(f.getMesh().getNumberOfNodes(),f.getArray().getNumberOfComponents()) ; arr3[:]=0.
13042 for i in xrange(1,maxNbCSN+1):
13043 ids=nbOfCellsSharingNodes.getIdsEqual(i)
13047 rni2=rni[ids] ; rni2+=j
13048 arr3[ids]+=arr2[rni2]
13052 fNode=MEDCouplingFieldDouble(ON_NODES,ONE_TIME) ; fNode.setMesh(m)
13053 fNode.setName("Field1Node") ; fNode.setTime(1.1,1,-1)
13054 fNode.setArray(arr3) ; fNode.checkCoherency()
13055 self.assertTrue(arr3.isEqual(arr4,1e-12))
13057 d=DataArrayInt.Range(0,20,1)
13058 self.assertTrue(d.accumulatePerChunck([2,4,12]).isEqual(DataArrayInt([5,60])))
13060 a=DataArrayDouble(12) ; a.iota() ; a.rearrange(3)
13061 b=DataArrayDouble(12) ; b.iota(20) ; b.rearrange(3)
13062 ids=DataArrayInt([])
13063 self.assertEqual(len(a[ids]),0)
13064 self.assertEqual(len(b[ids]),0)
13065 a2=a.deepCpy() ; a2[ids]+=b[ids] ; self.assertTrue(a2.isEqual(a,1e-15))
13066 a2=a.deepCpy() ; a2[ids]*=b[ids] ; self.assertTrue(a2.isEqual(a,1e-15))
13067 a2=a.deepCpy() ; a2[ids]/=b[ids] ; self.assertTrue(a2.isEqual(a,1e-15))
13068 a2=a.deepCpy() ; a2[ids]-=b[ids] ; self.assertTrue(a2.isEqual(a,1e-15))
13071 def testSwig2CheckAndPreparePermutation1(self):
13072 a=DataArrayInt([10003,9999999,5,67])
13073 self.assertTrue(a.checkAndPreparePermutation().isEqual(DataArrayInt([2,3,0,1])))
13074 a=DataArrayInt([10003,-9999999,5,67])
13075 self.assertTrue(a.checkAndPreparePermutation().isEqual(DataArrayInt([3,0,1,2])))
13077 self.assertTrue(a.checkAndPreparePermutation().isEqual(DataArrayInt([])))
13080 self.assertTrue(a.isEqual(DataArrayInt([])))
13083 def testSwig21SGTUMesh1(self):
13084 m=MEDCoupling1GTUMesh.New("m",NORM_PENTA6)
13085 m.__repr__() ; m.__str__()
13086 self.assertTrue(isinstance(m,MEDCoupling1SGTUMesh))
13087 m.setCoords(DataArrayDouble(20,3))
13089 m.__repr__() ; m.__str__()
13090 m.insertNextCell([0,1,2,5,7,2])
13091 self.assertEqual(1,m.getNumberOfCells())
13092 self.assertTrue(DataArrayInt([6]).isEqual(m.computeNbOfNodesPerCell()))
13093 self.assertTrue(DataArrayInt([5]).isEqual(m.computeNbOfFacesPerCell()))
13094 m.__repr__() ; m.__str__()
13096 m.checkCoherency2()
13098 cm=MEDCouplingCMesh() ; cm.setName("m")
13099 arr0=DataArrayDouble(6) ; arr0.iota()
13100 arr1=DataArrayDouble([0,1])
13101 cm.setCoords(arr0,arr1,arr1) ; um=cm.buildUnstructured()
13103 m=MEDCoupling1SGTUMesh("m",NORM_QUAD4)
13104 mem_m=m.getHeapMemorySize()
13106 self.assertIn(m.getHeapMemorySize()-mem_m,xrange(5*4*4,5*4*4+32))
13107 self.assertEqual(m.getNodalConnectivity().getNbOfElemAllocated(),20)
13108 m.setCoords(um.getCoords())
13109 m.insertNextCell([1,0,6,7])
13110 self.assertEqual(1,m.getNumberOfCells())
13111 m.insertNextCell([2,1,7,8])
13112 m.insertNextCell([3,2,8,9])
13113 m.insertNextCell([4,3,9,10])
13114 m.insertNextCell([5,4,10,11])
13115 self.assertEqual(5,m.getNumberOfCells())
13116 self.assertRaises(InterpKernelException,m.insertNextCell,[0,6,7])
13117 self.assertRaises(InterpKernelException,m.insertNextCell,[0,6,7,1,2])
13118 self.assertEqual(m.getNodalConnectivity().getNbOfElemAllocated(),20)
13119 f=m.getMeasureField(ON_CELLS)
13120 self.assertEqual(f.getMesh().getHiddenCppPointer(),m.getHiddenCppPointer())
13121 self.assertTrue(f.getArray().isUniform(1,1e-14))
13122 self.assertEqual(m.getType(),10)
13123 self.assertEqual(m.getCellModelEnum(),NORM_QUAD4)
13124 mo=MEDCoupling1SGTUMesh("m",NORM_QUAD4) ; mo.setCoords(m.getCoords())
13125 mo.setNodalConnectivity(DataArrayInt([1,0,6,7,2,1,7,8,3,2,8,9,4,3,9,10,5,4,10,11]))
13126 self.assertTrue(m.isEqual(mo,1e-12))
13128 mo2=MEDCoupling1SGTUMesh.Merge1SGTUMeshesOnSameCoords([m[[0,1]],m[[2]],m[[3,4]]])
13129 mo2.setName(m.getName())
13130 self.assertTrue(m.isEqual(mo2,1e-12))
13132 mp0=m[[0]] ; mp0.zipCoords() ; mp1=m[2] ; mp1.zipCoords() ; mp2=m[4] ; mp2.zipCoords()
13133 mo3=MEDCoupling1SGTUMesh.Merge1SGTUMeshes([mp0,mp1,mp2])
13134 self.assertTrue(isinstance(mo3,MEDCoupling1SGTUMesh))
13135 mo3.setName(m.getName())
13136 m_ref=m[(0,2,4)] ; m_ref.zipCoords()
13137 m_ref.tryToShareSameCoordsPermute(mo3,1e-12)
13138 self.assertTrue(m_ref.isEqual(mo3,1e-12))
13140 m1=um.buildDescendingConnectivity()[0]
13141 ids=m1.getCellIdsFullyIncludedInNodeIds(DataArrayInt.Range(0,12,1))
13143 m1c=m1.convertIntoSingleGeoTypeMesh()
13144 self.assertTrue(isinstance(m1c,MEDCoupling1SGTUMesh))
13145 self.assertEqual(m1c.getCoords().getHiddenCppPointer(),m.getCoords().getHiddenCppPointer())
13146 m1c.checkCoherency2()
13147 self.assertTrue(m1c.getNodalConnectivity().isEqual(DataArrayInt([1,0,6,7,2,1,7,8,3,2,8,9,4,3,9,10,5,4,10,11])))
13148 self.assertEqual(20,m1c.getNodalConnectivityLength())
13149 self.assertTrue(m.isEqual(m1c,1e-12))
13150 m.getNodalConnectivity().setIJ(1,0,1)
13151 self.assertTrue(not m.isEqual(m1c,1e-12))
13152 m.getNodalConnectivity().setIJ(1,0,0)
13153 self.assertTrue(m.isEqual(m1c,1e-12))
13154 m1c.setCoords(m.getCoords().deepCpy())
13155 self.assertTrue(m.isEqual(m1c,1e-12))
13156 m1c.getCoords().setIJ(0,1,0.1)
13157 self.assertTrue(not m.isEqual(m1c,1e-12))
13158 m1c.getCoords().setIJ(0,1,0)
13159 self.assertTrue(m.isEqual(m1c,1e-12))
13160 m1c.getCoords().setInfoOnComponent(1,"X")
13161 self.assertTrue(not m.isEqual(m1c,1e-12) and m.isEqualWithoutConsideringStr(m1c,1e-12))
13162 m.getCoords().setInfoOnComponent(1,"X")
13163 self.assertTrue(m.isEqual(m1c,1e-12) and m.isEqualWithoutConsideringStr(m1c,1e-12))
13165 self.assertTrue(not m.isEqual(m1c,1e-12) and m.isEqualWithoutConsideringStr(m1c,1e-12))
13167 m.checkCoherency() ; m.checkCoherency1() ; m.checkCoherency2()
13168 self.assertEqual(m.getMeshDimension(),2)
13169 self.assertTrue(m.giveCellsWithType(NORM_QUAD4).isEqual(DataArrayInt([0,1,2,3,4])))
13170 self.assertTrue(m.giveCellsWithType(NORM_TRI3).isEqual(DataArrayInt([])))
13171 self.assertEqual(m.getNumberOfCellsWithType(NORM_QUAD4),5)
13172 self.assertEqual(m.getNumberOfCellsWithType(NORM_TRI3),0)
13173 self.assertEqual(m.getTypeOfCell(3),NORM_QUAD4)
13174 self.assertRaises(InterpKernelException,m.getTypeOfCell,5)
13175 self.assertEqual(m.getAllGeoTypes(),[NORM_QUAD4])
13176 self.assertEqual(m.getDistributionOfTypes(),[[NORM_QUAD4,5,-1]])
13178 pfl1=DataArrayInt([1,3,4])
13179 a,b,c=m.splitProfilePerType(pfl1)
13180 d,e,f=m.buildUnstructured().splitProfilePerType(pfl1)
13181 self.assertTrue(a==[[4,3,0]] and len(b)==1 and b[0].isEqual(DataArrayInt([0,1,2])) and len(c)==1 and c[0].getHiddenCppPointer()==pfl1.getHiddenCppPointer())
13182 self.assertTrue(a==d and len(b)==1 and b[0].isEqual(e[0]) and len(c)==1 and c[0].isEqual(f[0]))
13184 pfl2=DataArrayInt([0,1,2,3])
13185 a,b,c=m.splitProfilePerType(pfl2)
13186 d,e,f=m.buildUnstructured().splitProfilePerType(pfl2)
13187 self.assertTrue(a==[[4,4,0]] and len(b)==1 and b[0].isEqual(DataArrayInt([0,1,2,3])) and len(c)==1 and c[0].getHiddenCppPointer()==pfl2.getHiddenCppPointer())
13188 self.assertTrue(a==d and len(b)==1 and b[0].isEqual(e[0]) and len(c)==1 and c[0].isEqual(f[0]))
13190 pfl3=DataArrayInt([0,1,2,3,4])
13191 a,b,c=m.splitProfilePerType(pfl3)
13192 d,e,f=m.buildUnstructured().splitProfilePerType(pfl3)
13193 self.assertTrue(a==[[4,5,-1]] and len(b)==1 and b[0].isEqual(DataArrayInt([0,1,2,3,4])) and c==[])
13194 self.assertTrue(a==d and len(b)==1 and b[0].isEqual(e[0]) and c==[])
13196 invalidPfl=DataArrayInt([1,2,3,4,5])
13197 self.assertRaises(InterpKernelException,m.splitProfilePerType,invalidPfl)
13198 self.assertRaises(InterpKernelException,m.buildUnstructured().splitProfilePerType,invalidPfl)
13200 pfl1=DataArrayInt([1,2,3])
13201 a=m.checkTypeConsistencyAndContig([NORM_QUAD4,3,0],[pfl1])
13202 b=m.buildUnstructured().checkTypeConsistencyAndContig([NORM_QUAD4,3,0],[pfl1])
13203 self.assertTrue(a.isEqual(b) and pfl1.getHiddenCppPointer(),a.getHiddenCppPointer())
13205 pfl2=DataArrayInt([0,1,2,3])
13206 a=m.checkTypeConsistencyAndContig([NORM_QUAD4,4,0],[pfl2])
13207 b=m.buildUnstructured().checkTypeConsistencyAndContig([NORM_QUAD4,4,0],[pfl2])
13208 self.assertTrue(a.isEqual(b) and pfl2.getHiddenCppPointer()==a.getHiddenCppPointer())
13210 pfl3=DataArrayInt([0,1,2,3,4])
13211 a=m.checkTypeConsistencyAndContig([NORM_QUAD4,4,0],[pfl3])
13212 b=m.buildUnstructured().checkTypeConsistencyAndContig([NORM_QUAD4,5,0],[pfl3])
13213 self.assertTrue(a.isEqual(b) and pfl3.getHiddenCppPointer()==a.getHiddenCppPointer())
13215 invalidPfl=DataArrayInt([1,2,3,4,5])
13216 self.assertRaises(InterpKernelException,m.checkTypeConsistencyAndContig,[NORM_QUAD4,5,0],[invalidPfl])
13217 self.assertRaises(InterpKernelException,m.buildUnstructured().checkTypeConsistencyAndContig,[NORM_QUAD4,5,0],[invalidPfl])
13219 self.assertTrue(DataArrayInt([4,4,4,4,4]).isEqual(m.computeNbOfNodesPerCell()))
13221 self.assertEqual(m.getNodeIdsOfCell(1),[2,1,7,8])
13223 self.assertTrue(m.computeIsoBarycenterOfNodesPerCell().isEqual(DataArrayDouble([(0.5,0.5,0),(1.5,0.5,0),(2.5,0.5,0),(3.5,0.5,0),(4.5,0.5,0)]),1e-13))
13225 ref=m.getCoords().getHiddenCppPointer()
13226 mcpy=m.deepCpy() ; mcpy.insertNextCell([1,0,6,7])
13227 c=m.getNodalConnectivity().deepCpy()
13228 o2n=DataArrayInt([2,0,1,4,3])
13229 m.renumberCells(o2n,False)
13230 c.rearrange(4) ; c.renumberInPlace(o2n) ; c.rearrange(1)
13231 self.assertTrue(c.isEqual(m.getNodalConnectivity()))
13232 self.assertEqual(ref,m.getCoords().getHiddenCppPointer())
13233 m2=mcpy.mergeMyselfWith(m)
13234 self.assertTrue(isinstance(m2,MEDCoupling1SGTUMesh))
13235 self.assertEqual(11,m2.getNumberOfCells())
13236 self.assertEqual(48,m2.getNumberOfNodes())
13237 self.assertTrue(m2.getCoords().isEqual(DataArrayDouble.Aggregate([m.getCoords(),m.getCoords()]),1e-12))
13238 self.assertTrue(m2.getNodalConnectivity().isEqual(DataArrayInt([1,0,6,7,2,1,7,8,3,2,8,9,4,3,9,10,5,4,10,11,1,0,6,7,26,25,31,32,27,26,32,33,25,24,30,31,29,28,34,35,28,27,33,34])))
13240 mu=m.buildUnstructured()
13241 mu.checkCoherency2()
13242 self.assertEqual(mu.getCoords().getHiddenCppPointer(),m.getCoords().getHiddenCppPointer())
13243 self.assertEqual(2,mu.getMeshDimension())
13244 self.assertEqual([NORM_QUAD4],mu.getAllGeoTypes())
13245 self.assertTrue(mu.getNodalConnectivity().isEqual(DataArrayInt([4,2,1,7,8,4,3,2,8,9,4,1,0,6,7,4,5,4,10,11,4,4,3,9,10])))
13246 self.assertTrue(mu.getNodalConnectivityIndex().isEqual(DataArrayInt([0,5,10,15,20,25])))
13249 mcpy2=m.deepCpy() ; umcpy2=mcpy2.buildUnstructured()
13250 ids=mcpy2.simplexize(typ) ; ids2=umcpy2.simplexize(typ)
13251 self.assertTrue(ids.isEqual(ids2))
13252 mcpy3=umcpy2.convertIntoSingleGeoTypeMesh()
13253 self.assertTrue(mcpy2.isEqual(mcpy3,1e-14))
13255 um1=um.convertIntoSingleGeoTypeMesh()
13256 self.assertEqual(8,um1.getNumberOfNodesPerCell())
13257 for typ in [PLANAR_FACE_5,PLANAR_FACE_6]:
13258 mcpy2=um1.deepCpy() ; umcpy2=mcpy2.buildUnstructured()
13259 ids=mcpy2.simplexize(typ) ; ids2=umcpy2.simplexize(typ)
13260 self.assertTrue(ids.isEqual(ids2))
13261 mcpy3=umcpy2.convertIntoSingleGeoTypeMesh()
13262 self.assertTrue(mcpy2.isEqual(mcpy3,1e-14))
13265 self.assertRaises(InterpKernelException,mcpy.mergeMyselfWithOnSameCoords,m)
13266 mcpy.tryToShareSameCoords(m,1e-14)
13267 m3=mcpy.mergeMyselfWithOnSameCoords(m)
13268 self.assertTrue(isinstance(m3,MEDCoupling1SGTUMesh))
13269 self.assertEqual(11,m3.getNumberOfCells())
13270 self.assertEqual(24,m3.getNumberOfNodes())
13271 self.assertEqual(m3.getCoords().getHiddenCppPointer(),mcpy.getCoords().getHiddenCppPointer())
13272 self.assertTrue(m3.getNodalConnectivity().isEqual(DataArrayInt([1,0,6,7,2,1,7,8,3,2,8,9,4,3,9,10,5,4,10,11,1,0,6,7,2,1,7,8,3,2,8,9,1,0,6,7,5,4,10,11,4,3,9,10])))
13274 ref=mcpy.getCoords().deepCpy()
13275 c3=mcpy.getNodalConnectivity()[:]
13276 mcpy.getNodalConnectivity().setIJ(int(c3.getIdsEqual(11)),0,24)
13277 c2=DataArrayDouble.Aggregate([mcpy.getCoords(),mcpy.getCoords()[11:]])
13279 mcpy.checkCoherency2()
13280 a,b=mcpy.getNodeIdsInUse()
13281 self.assertEqual(12,b)
13282 self.assertTrue(a.isEqual(DataArrayInt([0,1,2,3,4,5,6,7,8,9,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1])))
13283 ids=mcpy.zipCoordsTraducer()
13284 self.assertTrue(ids.isEqual(DataArrayInt([0,1,2,3,4,5,6,7,8,9,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1])))
13285 self.assertTrue(mcpy.getCoords().isEqual(ref[:12],1e-12))
13286 self.assertTrue(mcpy.getNodalConnectivity().isEqual(c3))
13287 mcpy.checkCoherency2()
13289 m4=mcpy[DataArrayInt([0,3,4])]
13290 m5=mcpy.buildPartOfMySelfKeepCoords(DataArrayInt([0,3,4]))
13291 self.assertTrue(isinstance(m4,MEDCoupling1SGTUMesh))
13292 self.assertTrue(m4.isEqual(m5,-1e-14))# < 0 not a bug it proves that coordinates pointer are equal
13293 self.assertTrue(m4.getNodalConnectivity().isEqual(DataArrayInt([1,0,6,7,4,3,9,10,5,4,10,11])))
13295 self.assertTrue(isinstance(m6,MEDCoupling1SGTUMesh))
13296 self.assertTrue(m6.getNodalConnectivity().isEqual(DataArrayInt([1,0,6,7,3,2,8,9,5,4,10,11])))
13298 mcpy.setCoords(DataArrayDouble.Aggregate([mcpy.getCoords(),mcpy.getCoords()]))
13299 mcpy.checkCoherency2()
13301 mcppy=mcpy.deepCpyConnectivityOnly()
13302 self.assertTrue(mcppy.isEqual(mcpy,1e-12))
13303 self.assertTrue(mcppy.getCoords().getHiddenCppPointer()==mcpy.getCoords().getHiddenCppPointer())
13304 self.assertTrue(mcppy.getNodalConnectivity().isEqual(mcpy.getNodalConnectivity()))
13305 self.assertTrue(mcppy.getNodalConnectivity().getHiddenCppPointer()!=mcpy.getNodalConnectivity().getHiddenCppPointer())
13307 a,b=mcpy.getReverseNodalConnectivity()
13308 self.assertTrue(a.isEqual(DataArrayInt([0,5,0,1,5,1,2,2,3,3,4,4,0,5,0,1,5,1,2,2,3,3,4,4])))
13309 self.assertTrue(b.isEqual(DataArrayInt([0,2,5,7,9,11,12,14,17,19,21,23,24,24,24,24,24,24,24,24,24,24,24,24,24])))
13310 self.assertTrue(mcpy.fillCellIdsToKeepFromNodeIds([0,1,6,7],False).isEqual(DataArrayInt([0,1,5])))
13311 self.assertTrue(mcpy.fillCellIdsToKeepFromNodeIds([0,1,6,7],True).isEqual(DataArrayInt([0,5])))
13312 self.assertTrue(mcpy.getCellsInBoundingBox([(0,1),(0,1),(0,1)],1e-12).isEqual(DataArrayInt([0,1,5])))
13313 f=mcpy.buildOrthogonalField()
13314 self.assertEqual(f.getMesh().getHiddenCppPointer(),mcpy.getHiddenCppPointer())
13315 self.assertTrue(f.getArray().isEqual(DataArrayDouble(6*[(0,0,-1)]),1e-12))
13316 mcpy.changeSpaceDimension(2)
13317 self.assertEqual(1,mcpy.getCellContainingPoint([1.5,0.5],1e-12))
13319 self.assertTrue(mcpy.fillCellIdsToKeepFromNodeIds(DataArrayInt([6,7]),False).isEqual(DataArrayInt([0,1,5])))
13321 mcpy2=mcpy.deepCpy()
13322 self.assertEqual([None,None],mcpy.checkGeoEquivalWith(mcpy2,1,1e-12))#fast equal
13323 mcpy.checkFastEquivalWith(mcpy2,1e-12)
13324 mcpy2.renumberCells([0,2,4,3,1,5])
13325 mcpy.checkFastEquivalWith(mcpy2,1e-12)
13326 self.assertEqual([None,None],mcpy.checkGeoEquivalWith(mcpy2,1,1e-12))#fast equal
13327 mcpy2.renumberCells([0,2,4,3,1,5])
13328 mcpy2.renumberCells([1,3,5,0,2,4])
13329 self.assertRaises(InterpKernelException,mcpy.checkFastEquivalWith,mcpy2,1e-12)
13330 self.assertRaises(InterpKernelException,mcpy.checkGeoEquivalWith,mcpy2,1,1e-12)#fast equal
13333 def testSwig21DGTUMesh1(self):
13334 a0=DataArrayInt([0,2,3,5,6,8])
13335 a1=DataArrayInt([0,4,7,11,14,18,21,25])
13336 a2=DataArrayInt([0,1,4,5])
13337 self.assertTrue(DataArrayInt.AggregateIndexes([a0,a1,a2]).isEqual(DataArrayInt([0,2,3,5,6,8,12,15,19,22,26,29,33,34,37,38])))
13338 self.assertEqual(a1[3:].front(),11)
13339 self.assertEqual(a1[4:].convertToDblArr().front(),14.)
13340 a1c=DataArrayInt([5,7,1,2, 8,11,0, 5,6,3,12, 1,5,2, 13,12,11,7, 6,1,0, 20,21,19,17])
13341 d,e=MEDCouplingUMesh.ExtractFromIndexedArrays2(1,5,2,a1c,a1)
13342 self.assertTrue(d.isEqual(DataArrayInt([8,11,0,1,5,2])))
13343 self.assertTrue(e.isEqual(DataArrayInt([0,3,6])))
13345 m=MEDCouplingDataForTest.build2DTargetMesh_1()[0,3,4]
13346 ref=DataArrayInt([0,3,4,1,6,7,4,3,7,8,5,4])
13347 self.assertTrue(m.convertNodalConnectivityToStaticGeoTypeMesh().isEqual(ref))
13348 d,e=m.convertNodalConnectivityToDynamicGeoTypeMesh()
13349 self.assertTrue(d.isEqual(ref))
13350 self.assertTrue(e.isEqual(DataArrayInt.Range(0,13,4)))
13351 self.assertTrue(m.fillCellIdsToKeepFromNodeIds(DataArrayInt([6,7]),False).isEqual(DataArrayInt([1,2])))
13353 m=MEDCoupling1GTUMesh.New("m",NORM_POLYHED)
13354 self.assertTrue(isinstance(m,MEDCoupling1DGTUMesh))
13355 m.__repr__() ; m.__str__()
13356 m.setCoords(DataArrayDouble(20,3))
13358 m.__repr__() ; m.__str__()
13359 m.insertNextCell([0,1,2,5,7,2,-1,1,3])
13360 self.assertEqual(1,m.getNumberOfCells())
13361 self.assertTrue(DataArrayInt([8]).isEqual(m.computeNbOfNodesPerCell()))
13362 self.assertTrue(DataArrayInt([2]).isEqual(m.computeNbOfFacesPerCell()))
13363 m.__repr__() ; m.__str__()
13365 m.checkCoherency2()
13367 cm=MEDCouplingCMesh() ; cm.setName("m")
13368 arr0=DataArrayDouble(6) ; arr0.iota()
13369 arr1=DataArrayDouble([0,1])
13370 cm.setCoords(arr0,arr1,arr1) ; um=cm.buildUnstructured() ; um.convertAllToPoly()
13371 um2=um.deepCpyConnectivityOnly()
13372 self.assertTrue(um2.isEqual(um,1e-12))
13373 self.assertEqual(um2.getCoords().getHiddenCppPointer(),um.getCoords().getHiddenCppPointer())
13374 self.assertTrue(um2.getNodalConnectivity().isEqual(um.getNodalConnectivity()))
13375 self.assertTrue(um2.getNodalConnectivity().getHiddenCppPointer()!=um.getNodalConnectivity().getHiddenCppPointer())
13376 self.assertTrue(um2.getNodalConnectivityIndex().isEqual(um.getNodalConnectivityIndex()))
13377 self.assertTrue(um2.getNodalConnectivityIndex().getHiddenCppPointer()!=um.getNodalConnectivityIndex().getHiddenCppPointer())
13379 self.assertRaises(InterpKernelException,MEDCoupling1SGTUMesh.New,"m",NORM_POLYHED)
13380 m=MEDCoupling1DGTUMesh("m",NORM_POLYHED)
13382 self.assertEqual(15,m.getNodalConnectivity().getNbOfElemAllocated())
13383 self.assertEqual(6,m.getNodalConnectivityIndex().getNbOfElemAllocated())
13384 m.setCoords(um.getCoords())
13385 m.insertNextCell([1,0,6,7,-1,7,6,1])
13386 self.assertEqual(1,m.getNumberOfCells())
13387 m.insertNextCell([2,1,7,8,-1,2,1,-1,8,-1,7])
13388 m.insertNextCell([3,2,8,9])
13389 m.insertNextCell([4,3,9,10,-1,5,3,9])
13390 m.insertNextCell([5,4,10,11,-1,11,10,-1,5])
13392 m.checkCoherency2()
13393 self.assertEqual(5,m.getNumberOfCells())
13394 self.assertTrue(m.getNodalConnectivityIndex().isEqual(DataArrayInt([0,8,19,23,31,40])))
13395 self.assertTrue(m.getNodalConnectivity().isEqual(DataArrayInt([1,0,6,7,-1,7,6,1,2,1,7,8,-1,2,1,-1,8,-1,7,3,2,8,9,4,3,9,10,-1,5,3,9,5,4,10,11,-1,11,10,-1,5])))
13398 self.assertTrue(m.isEqual(m4,1e-12))
13399 m4.getNodalConnectivity().setIJ(2,0,5)
13400 self.assertTrue(not m.isEqual(m4,1e-12))
13401 m4.getNodalConnectivity().setIJ(2,0,6)
13402 self.assertTrue(m.isEqual(m4,1e-12))
13403 m4.getNodalConnectivityIndex().setIJ(2,0,21)
13404 self.assertTrue(not m.isEqual(m4,1e-12))
13405 m4.getNodalConnectivityIndex().setIJ(2,0,19)
13406 self.assertTrue(m.isEqual(m4,1e-12))
13407 m4.getCoords().setIJ(10,1,1.1)
13408 self.assertTrue(not m.isEqual(m4,1e-12))
13409 m4.getCoords().setIJ(10,1,1.)
13410 self.assertTrue(m.isEqual(m4,1e-12))
13411 m4.getNodalConnectivity().pushBackSilent(7)
13412 self.assertTrue(not m.isEqual(m4,1e-12))
13413 self.assertEqual(7,m4.getNodalConnectivity().popBackSilent())
13414 self.assertTrue(m.isEqual(m4,1e-12))
13416 self.assertTrue(not m.isEqual(m4,1e-12))
13418 self.assertTrue(m.isEqual(m4,1e-12))
13420 self.assertEqual(6,m.getNodalConnectivityIndex().getNbOfElemAllocated())
13421 self.assertEqual(60,m.getNodalConnectivity().getNbOfElemAllocated())
13422 self.assertTrue(m.computeNbOfNodesPerCell().isEqual(DataArrayInt([7,8,4,7,7])))
13423 self.assertTrue(m.computeNbOfFacesPerCell().isEqual(DataArrayInt([2,4,1,2,3])))
13424 self.assertEqual(m.getNodeIdsOfCell(1),[2,1,7,8,-1,2,1,-1,8,-1,7])
13425 f=m.computeIsoBarycenterOfNodesPerCell()
13426 self.assertTrue(DataArrayDouble([(0.5714285714285714,0.5714285714285714,0),(1.5,0.5,0),(2.5,0.5,0),(3.5714285714285712,0.42857142857142855,0),(4.5714285714285712,0.5714285714285714,0)]).isEqual(f,1e-14))
13427 mu0=m.buildUnstructured()
13430 m3=m.deepCpyConnectivityOnly()
13431 self.assertTrue(m3.isEqual(m,1e-12))
13432 self.assertEqual(m3.getCoords().getHiddenCppPointer(),m.getCoords().getHiddenCppPointer())
13433 self.assertTrue(m3.getNodalConnectivity().getHiddenCppPointer()!=m.getNodalConnectivity().getHiddenCppPointer())
13434 self.assertTrue(m3.getNodalConnectivity().isEqual(m.getNodalConnectivity()))
13435 self.assertTrue(m3.getNodalConnectivityIndex().getHiddenCppPointer()!=m.getNodalConnectivityIndex().getHiddenCppPointer())
13436 self.assertTrue(m3.getNodalConnectivityIndex().isEqual(m.getNodalConnectivityIndex()))
13437 m.renumberCells(o2n)
13438 mu0.renumberCells(o2n)
13439 self.assertTrue(mu0.isEqual(m.buildUnstructured(),1e-12))
13440 self.assertTrue(m.getNodalConnectivityIndex().isEqual(DataArrayInt([0,4,12,23,32,40])))
13441 self.assertTrue(m.getNodalConnectivity().isEqual(DataArrayInt([3,2,8,9,1,0,6,7,-1,7,6,1,2,1,7,8,-1,2,1,-1,8,-1,7,5,4,10,11,-1,11,10,-1,5,4,3,9,10,-1,5,3,9])))
13443 mcpy0=m.buildUnstructured()
13444 self.assertTrue(isinstance(mcpy0,MEDCouplingUMesh))
13445 self.assertTrue(mcpy0.getNodalConnectivity().isEqual(DataArrayInt([31,3,2,8,9,31,1,0,6,7,-1,7,6,1,31,2,1,7,8,-1,2,1,-1,8,-1,7,31,5,4,10,11,-1,11,10,-1,5,31,4,3,9,10,-1,5,3,9])))
13446 self.assertTrue(mcpy0.getNodalConnectivityIndex().isEqual(DataArrayInt([0,5,14,26,36,45])))
13447 self.assertEqual(mcpy0.getAllGeoTypes(),[NORM_POLYHED])
13448 mcpy0.checkCoherency()
13449 mcpy0.checkCoherency2()
13450 mcpy1=mcpy0.convertIntoSingleGeoTypeMesh()
13451 self.assertTrue(mcpy1.isEqual(m,1e-12))
13453 m_mrg=MEDCoupling1DGTUMesh.Merge1DGTUMeshes([m2,m,m2])
13454 self.assertTrue(m_mrg.getNodalConnectivityIndex().isEqual(DataArrayInt([0,8,19,23,31,40,44,52,63,72,80,88,99,103,111,120])))
13455 self.assertTrue(m_mrg.getNodalConnectivity().isEqual(DataArrayInt([1,0,6,7,-1,7,6,1,2,1,7,8,-1,2,1,-1,8,-1,7,3,2,8,9,4,3,9,10,-1,5,3,9,5,4,10,11,-1,11,10,-1,5,27,26,32,33,25,24,30,31,-1,31,30,25,26,25,31,32,-1,26,25,-1,32,-1,31,29,28,34,35,-1,35,34,-1,29,28,27,33,34,-1,29,27,33,49,48,54,55,-1,55,54,49,50,49,55,56,-1,50,49,-1,56,-1,55,51,50,56,57,52,51,57,58,-1,53,51,57,53,52,58,59,-1,59,58,-1,53])))
13456 m_mrg2=MEDCoupling1DGTUMesh.Merge1DGTUMeshesOnSameCoords([m3,m,m3])
13457 self.assertTrue(m_mrg2.getNodalConnectivityIndex().isEqual(DataArrayInt([0,8,19,23,31,40,44,52,63,72,80,88,99,103,111,120])))
13458 self.assertTrue(m_mrg2.getNodalConnectivity().isEqual(DataArrayInt([1,0,6,7,-1,7,6,1,2,1,7,8,-1,2,1,-1,8,-1,7,3,2,8,9,4,3,9,10,-1,5,3,9,5,4,10,11,-1,11,10,-1,5,3,2,8,9,1,0,6,7,-1,7,6,1,2,1,7,8,-1,2,1,-1,8,-1,7,5,4,10,11,-1,11,10,-1,5,4,3,9,10,-1,5,3,9,1,0,6,7,-1,7,6,1,2,1,7,8,-1,2,1,-1,8,-1,7,3,2,8,9,4,3,9,10,-1,5,3,9,5,4,10,11,-1,11,10,-1,5])))
13459 a,b=m_mrg2.getReverseNodalConnectivity()
13460 self.assertTrue(b.isEqual(DataArrayInt([0,3,15,24,33,39,48,54,66,75,84,93,99,99,99,99,99,99,99,99,99,99,99,99,99])))
13461 self.assertTrue(a.isEqual(DataArrayInt([0,6,10,0,0,1,1,6,6,7,7,10,10,11,11,1,1,2,5,7,7,11,11,12,2,3,3,5,9,9,12,13,13,3,4,8,9,13,14,3,4,4,8,8,9,13,14,14,0,0,6,6,10,10,0,0,1,1,6,6,7,7,10,10,11,11,1,1,2,5,7,7,11,11,12,2,3,3,5,9,9,12,13,13,3,4,4,8,8,9,13,14,14,4,4,8,8,14,14])))
13462 self.assertTrue(m_mrg2.fillCellIdsToKeepFromNodeIds([7],False).isEqual(DataArrayInt([0,1,6,7,10,11])))
13463 self.assertTrue(m_mrg2.fillCellIdsToKeepFromNodeIds([0,1,6,7],True).isEqual(DataArrayInt([0,6,10])))
13465 self.assertTrue(m_mrg2.isPacked())
13466 self.assertEqual(120,m_mrg2.getNodalConnectivityIndex().popBackSilent())
13467 self.assertEqual(m_mrg2.getNumberOfCells(),14)
13468 m_mrg2.checkCoherency2()
13469 self.assertTrue(not m_mrg2.isPacked())
13470 m_mrg4,b=m_mrg2.copyWithNodalConnectivityPacked()
13471 self.assertTrue(not b)
13472 m_mrg4.checkCoherency2()
13473 self.assertEqual(m_mrg4.getNumberOfCells(),14)
13474 self.assertTrue(m_mrg4.getNodalConnectivityIndex().isEqual(m_mrg2.getNodalConnectivityIndex()))
13475 self.assertEqual(len(m_mrg4.getNodalConnectivity()),111)
13476 self.assertEqual(len(m_mrg2.getNodalConnectivity()),120)
13477 self.assertTrue(m_mrg4.getNodalConnectivity().isEqual(m_mrg2.getNodalConnectivity()[:111]))
13480 m1=m_mrg2[[5,6,7,8,9]]
13482 self.assertTrue(m1.isEqualWithoutConsideringStr(m,1e-12))
13483 a,b=m.checkGeoEquivalWith(m0,12,1e-12)
13484 self.assertTrue(a.isEqual(DataArrayInt(o2n)))
13485 self.assertTrue(b is None)
13488 def testSwig2DADAreIncludedInMe1(self):
13489 a=DataArrayDouble(30) ; a.iota() ; a.rearrange(3)
13490 p=DataArrayInt([5,2,1,9])
13491 b,c=a.areIncludedInMe(a[p],1e-12)
13493 self.assertTrue(c.isEqual(p))
13496 b,c=a.areIncludedInMe(d,1e-12)
13497 self.assertTrue(not b)
13498 self.assertTrue(c.isEqual(DataArrayInt([5,2,1,10])))
13501 def testSwig2DADesallocate1(self):
13502 d=DataArrayDouble([(1,2),(6,7),(6,8)]) ; d.setInfoOnComponents(["aa","bbb"])
13503 self.assertTrue(d.isAllocated())
13505 self.assertEqual(d.getInfoOnComponents(),["aa","bbb"])
13506 ref=d.getHeapMemorySize()
13508 self.assertEqual(ref-d.getHeapMemorySize(),6*8)
13509 self.assertTrue(not d.isAllocated())
13510 self.assertEqual(d.getInfoOnComponents(),["aa","bbb"])
13511 self.assertRaises(InterpKernelException,d.checkAllocated)
13513 d=DataArrayInt([(1,2),(6,7),(6,8)]) ; d.setInfoOnComponents(["aa","bbb"])
13514 self.assertTrue(d.isAllocated())
13516 self.assertEqual(d.getInfoOnComponents(),["aa","bbb"])
13517 ref=d.getHeapMemorySize()
13519 self.assertEqual(ref-d.getHeapMemorySize(),6*4)
13520 self.assertTrue(not d.isAllocated())
13521 self.assertEqual(d.getInfoOnComponents(),["aa","bbb"])
13522 self.assertRaises(InterpKernelException,d.checkAllocated)
13525 def testSwig2IsPartStructured1(self):
13527 d10=DataArrayInt([2,3,4,5,6,7,8,9,10,11])
13528 a,b=MEDCouplingStructuredMesh.IsPartStructured(d10,[13])
13529 self.assertTrue(a) ; self.assertEqual(b,[(2,12)])
13530 d11=DataArrayInt([2,3,4,5,6,7,8,10,9,11])
13531 a,b=MEDCouplingStructuredMesh.IsPartStructured(d11,[13])
13532 self.assertTrue(not a)
13533 self.assertRaises(InterpKernelException,MEDCouplingStructuredMesh.IsPartStructured,d10,[11])
13536 d20=DataArrayInt([1,2,3,4,11,12,13,14,21,22,23,24])
13537 a,b=MEDCouplingStructuredMesh.IsPartStructured(d20,st)
13538 self.assertTrue(a) ; self.assertEqual(b,[(1,5),(0,3)])
13539 self.assertEqual(12,MEDCouplingStructuredMesh.DeduceNumberOfGivenRangeInCompactFrmt(b))
13540 self.assertEqual(0,MEDCouplingStructuredMesh.DeduceNumberOfGivenRangeInCompactFrmt([(1,5),(1,3),(2,2)]))
13541 self.assertEqual(0,MEDCouplingStructuredMesh.DeduceNumberOfGivenRangeInCompactFrmt([(5,5),(3,3),(2,2)]))
13542 self.assertEqual(36,MEDCouplingStructuredMesh.DeduceNumberOfGivenStructure([3,2,6]))
13543 self.assertEqual(126,MEDCouplingStructuredMesh.DeduceNumberOfGivenStructure((3,7,6)))
13544 d20=DataArrayInt([1,2,3,4,12,11,13,14,21,22,23,24])
13545 a,b=MEDCouplingStructuredMesh.IsPartStructured(d20,st)
13546 self.assertTrue(not a)
13547 d20=DataArrayInt([1,2,3,4,11,12,13,15,21,22,23,24])
13548 a,b=MEDCouplingStructuredMesh.IsPartStructured(d20,st)
13549 self.assertTrue(not a)
13550 d21=DataArrayInt([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,32,33,34,35,36,37,38,39])
13551 a,b=MEDCouplingStructuredMesh.IsPartStructured(d21,st)
13552 self.assertTrue(a) ; self.assertEqual(b,[(0,10),(0,4)])
13553 d22=DataArrayInt([1,2,3,4,11,12,13,14,21,22,23,24,31,32,33,34,41,42,43,44])
13554 self.assertRaises(InterpKernelException,MEDCouplingStructuredMesh.IsPartStructured,d22,st)
13555 a,b=MEDCouplingStructuredMesh.IsPartStructured(d22,[10,5])
13556 self.assertTrue(a) ; self.assertEqual(b,[(1,5),(0,5)])
13558 d30=DataArrayInt([11,12,13,14,21,22,23,24,51,52,53,54,61,62,63,64])
13559 a,b=MEDCouplingStructuredMesh.IsPartStructured(d30,[10,4,2])
13560 self.assertTrue(a) ; self.assertEqual(b,[(1,5),(1,3),(0,2)])
13561 d31=DataArrayInt([11,12,13,14,21,22,24,23,51,52,53,54,61,62,63,64])
13562 a,b=MEDCouplingStructuredMesh.IsPartStructured(d31,[10,4,2])
13563 self.assertTrue(not a)
13564 self.assertRaises(InterpKernelException,MEDCouplingStructuredMesh.IsPartStructured,d30,[10,4,1])
13567 def testSwig2PartStructured1(self):
13568 c=MEDCouplingCMesh() ; c.setName("toto")
13569 arr0=DataArrayDouble(10); arr0.iota()
13570 arr1=DataArrayDouble(4) ; arr1.iota(3)
13571 c.setCoords(arr0,arr1)
13572 self.assertEqual(c.getNodeGridStructure(),(10,4))
13573 self.assertEqual(c.getCellGridStructure(),(9,3))
13574 d20=DataArrayInt([1,2,3,4,10,11,12,13,19,20,21,22])
13575 self.assertEqual(27,c.getNumberOfCells())
13576 self.assertEqual(40,c.getNumberOfNodes())
13577 self.assertEqual(2,c.getMeshDimension())
13580 arr2=MEDCouplingStructuredMesh.BuildExplicitIdsFrom([9,3],[(1,5),(0,3)])
13581 self.assertTrue(arr2.isEqual(DataArrayInt([1,2,3,4,10,11,12,13,19,20,21,22])))
13583 c2=c.buildStructuredSubPart([(1,5),(0,3)])
13584 c2.checkCoherency()
13585 self.assertTrue(isinstance(c2,MEDCouplingCMesh))
13586 self.assertEqual(12,c2.getNumberOfCells())
13587 self.assertEqual(20,c2.getNumberOfNodes())
13588 self.assertEqual(2,c2.getMeshDimension())
13589 self.assertEqual("toto",c2.getName())
13590 self.assertTrue(c2.getCoordsAt(0).isEqual(DataArrayDouble([1.,2.,3.,4.,5.]),1e-12))
13591 self.assertTrue(c2.getCoordsAt(1).isEqual(DataArrayDouble([3.,4.,5.,6.]),1e-12))
13593 a,b=c.buildPartAndReduceNodes(d20)
13595 exp2=DataArrayInt([-1,0,1,2,3,4,-1,-1,-1,-1,-1,5,6,7,8,9,-1,-1,-1,-1,-1,10,11,12,13,14,-1,-1,-1,-1,-1,15,16,17,18,19,-1,-1,-1,-1])
13596 self.assertTrue(exp2.isEqual(b))
13597 self.assertTrue(isinstance(a,MEDCouplingCMesh))
13598 self.assertTrue(a.buildUnstructured().isEqual(c.buildUnstructured().buildPartAndReduceNodes(d20)[0],1e-12))
13600 c2=MEDCouplingCurveLinearMesh() ; c2.setName("toto")
13601 c2.setCoords(c.buildUnstructured().getCoords())
13602 c2.setNodeGridStructure([10,4])
13603 c2.checkCoherency()
13604 a,b=c2.buildPartAndReduceNodes(d20)
13606 self.assertTrue(exp2.isEqual(b))
13607 self.assertTrue(isinstance(a,MEDCouplingCurveLinearMesh))
13608 self.assertTrue(a.buildUnstructured().isEqual(c2.buildUnstructured().buildPartAndReduceNodes(d20)[0],1e-12))
13611 def testSwig2FindPermutationFromFirstToSecond1(self):
13612 ids1=DataArrayInt([3,1,103,4,6,10,-7,205])
13613 ids2=DataArrayInt([-7,1,205,10,6,3,103,4])
13614 ids3=DataArrayInt.FindPermutationFromFirstToSecond(ids1,ids2)
13615 self.assertTrue(ids3.isEqual(DataArrayInt([5,1,6,7,4,3,0,2])))
13616 ids2ToTest=ids1.renumber(ids3)
13617 self.assertTrue(ids2ToTest.isEqual(ids2))
13618 self.assertRaises(InterpKernelException,DataArrayInt.FindPermutationFromFirstToSecond,DataArrayInt([3,1,103]),DataArrayInt([1,103]))
13619 self.assertRaises(InterpKernelException,DataArrayInt.FindPermutationFromFirstToSecond,DataArrayInt([3,1,103]),DataArrayInt([1,103,2]))
13620 self.assertRaises(InterpKernelException,DataArrayInt.FindPermutationFromFirstToSecond,DataArrayInt([3,1,103]),DataArrayInt([1,103,1]))
13621 self.assertTrue(DataArrayInt.FindPermutationFromFirstToSecond(DataArrayInt([]),DataArrayInt([])).empty())
13624 def testSwig2BugStructuredMeshGetNodeIdsOfCell1(self):
13625 m=MEDCouplingCMesh("mesh")
13626 coordsX=DataArrayDouble([0,1.1,2.2,3.3,4.4]) ; coordsX.setInfoOnComponents(["XX [m]"])
13627 coordsY=DataArrayDouble([0,1.7,3.4]) ; coordsY.setInfoOnComponents(["YYY [km]"])
13628 m.setCoords(coordsX,coordsY)
13629 self.assertEqual([2,3,8,7],m.getNodeIdsOfCell(2))
13630 self.assertEqual([3,4,9,8],m.getNodeIdsOfCell(3))
13631 self.assertEqual([7,8,13,12],m.getNodeIdsOfCell(6))
13632 self.assertEqual([8,9,14,13],m.getNodeIdsOfCell(7))
13635 def testSwig2ThrowOnDAIInvertN2O2ON2(self):
13636 p1=DataArrayInt([3,5,8])
13637 p2=DataArrayInt([0,3,4,5,6,7,8,9,10])
13638 p1.transformWithIndArr(p2.invertArrayN2O2O2N(11))
13639 self.assertTrue(p1.isEqual(DataArrayInt([1,3,6])))
13640 self.assertTrue(p2.invertArrayN2O2O2N(11).isEqual(DataArrayInt([0,-1,-1,1,2,3,4,5,6,7,8])))
13641 self.assertRaises(InterpKernelException,p2.invertArrayN2O2O2N,10)
13644 def testSwig2ComputeEffectiveNbOfNodesPerCell1(self):
13645 coords=DataArrayDouble([ 0.241310763507 , 0.0504777305619 , 0.0682283524903 , 0.252501053866 , -0.0625176732937 , 0.137272639894 ,
13646 0.152262663601 , 0.241816569527 , 0.133812556197 , 0.18047750211 , -0.0789949051358 , 0.339098173401 ,
13647 0.151741971857 , 0.238885278571 , 0.137715037333 , 0.242532155481 , -0.0928169086456 , 0.0678043417367 ,
13648 0.240941965335 , -0.015461491464 , 0.0617186345825 , 0.24127650112 , 0.0499427876717 , 0.0679634099148 ,
13649 -0.145828917428 , 0.206291632565 , 0.0310071927543 , 0.0125651775307 , 0.266262085828 , 0.105228430543 ,
13650 -0.0994066533286 , 0.233224271238 , 0.0572213839567 , -0.0951345338317 , 0.234819509426 , 0.0592126284538 ,
13651 0.136580574205 , -0.205486212579 , 0.0572866072014 , 0.0637270784978 , -0.168886355238 , 0.446614057077 ,
13652 0.041337157151 , -0.213402568198 , 0.372407095999 , 0.0411601970268 , -0.202387875756 , 0.411334979491 ,
13653 -0.108355701857 , 0.193636239335 , 0.204886756738 , 0.00639779029829 , 0.155296981517 , 0.252585892979 ,
13654 0.0262473111702 , -0.112919732543 , 0.424286639249 ,-0.224103052733 , -0.139430015438 , -0.0122352295701 ,
13655 -0.0312760589481 , -0.274272003594 , 0.0323959636568 , -0.166663422532 , -0.217754445175 , 0.00392109070364 ,
13656 -0.30586619777 , -0.0475168041091 , -0.0144585228182 , -0.280881480586 , 0.135571293538 , 0.00623923647986 ,
13657 -0.25548538234 , 0.156819217766 , 0.0645277879769 , -0.131567009284 , 0.184133752309 , 0.206021802753 ,
13658 -0.196204010965 , 0.151602971681 , 0.212974777736 , -0.183713879463 , 0.0802946639531 , 0.260115662599 ,
13659 -0.244241178767 , -0.0738873389604 , 0.144590565817 , -0.155804057829 , -0.164892720025 , 0.210613950558 ,
13660 -0.170950800428 , -0.215099334026 , 0.00610122860092 , -0.30552634869 , -0.0490020791904 , -0.0132786533145 ,
13661 0.271831011884 , 0.15105657296 , 0.0230534827908 , 0.281919192283 , 0.0898544306288 , -0.0625201489143 ,
13662 0.260240727276 , -0.0120688706637 , -0.0532316588626 , 0.244947737722 , 0.0197984684293 , 0.0309341209233 ,
13663 0.23439631578 , 0.229825279875 , 0.0508520585381 , 0.160921316875 , 0.265078502128 , 0.121716560626 ,
13664 -0.315088694175 , 0.0747700471918 , -0.245836615071 , -0.327728781776 , 0.0857114674649 , -0.239431905957 ,
13665 -0.308385460634 , 0.145142997084 , -0.149886828433 , 0.0488236045164 , 0.309462801914 , 0.0849169148265 ,
13666 -0.0244964803395 , 0.33145611751 , -0.0476415818061 , 0.0060567994229 , 0.32418412014 , 0.0367779543812 ,
13667 -0.0950221448063 , 0.236675326003 , 0.0572594453983 , 0.248723023186 , 0.0886648784791 , -0.176629430538 ,
13668 0.116796984 , 0.256596599567 , -0.292863523603 , 0.118024552914 , 0.229154257843 , -0.34233232501 ,
13669 0.217507892549 , -0.0417822335742 , -0.176771782888 , -0.224429321304 , 0.0125595300114 , -0.362064725588 ,
13670 0.0937301100955 , -0.0500824832657 , -0.299713548444 , -0.244162220397 , 0.0383853931293 , -0.389856984411 ,
13671 -0.0281989366102 , 0.097392811563 , -0.458244577284 , -0.385010847162 , 0.10122766194 , -0.140052859922 ,
13672 -0.377936358012 , 0.110875172128 , -0.176207095463 , 0.244483045556 , -0.0991073977045 , 0.0575134372934 ,
13673 0.262605120167 , -0.100243191645 , -0.0495620806935 , 0.240306880972 , -0.136153701579 , -0.114745281696 ,
13674 0.215763176129 , -0.0836766059189 , -0.183249640616 , 0.237870396603 , -0.132449578286 , -0.121598854639 ,
13675 -0.0637683083097 , -0.27921020214 , -0.149112321992 , -0.0856211014977 , -0.2973233473 , -0.0446878139589 ,
13676 0.104675342288 , -0.0625908305324 , -0.290346256534 , 0.0248264249186 , -0.247797708548 , -0.165830884019 ,
13677 0.0719302438309 , -0.178468260473 , -0.211432157345 , 0.142871843159 , -0.208769948542 , 0.0454101128246 ,
13678 0.167803379307 , -0.207851396623 , -0.088802726124 , 0.12868717152 , -0.230920439715 , 0.00760508389036 ,
13679 -0.0372812069535 , -0.286740286332 , 0.00963701291166 ], 69, 3)
13680 connN = [ #polyhedron 0
13681 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
13682 , 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
13683 , 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
13684 , 22 , 19 , 21 , 30 , 31 , -1 , 22 , 31 , 28 , 27 , 26 , 24 , 23 , -1 , 31 , 30 , 29 , 28,
13686 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
13687 , 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
13688 , 33 , 34 , 48 , 45 , -1 , 35 , 34 , 48 , 50 , 49 , 38 , -1 , 41 , 43 , 42 , 46 , 36 , 37 , -1 , 38 , 39 , 51 , 49 , -1
13689 , 39 , 40 , 42 , 46 , 47 , 52 , 51 , -1 , 45 , 47 , 52 , 50 , 48 , -1 , 52 , 51 , 49 , 50,
13691 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
13692 , 23 , 53 , 54 , 40 , 8 , -1 , 53 , 22 , 23 , -1 , 39 , 54 , 40,
13694 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
13695 , 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
13696 , 55 , 5 , 12 , 65 , -1 , 66 , 67 , 65 , 55 , 56 , 57 , -1 , 63 , 66 , 57 , 59 , 64 , -1 , 64 , 62 , 58 , 59 , -1
13697 , 60 , 63 , 66 , 67 , 68 , 61 , -1 , 61 , 68 , 20 , 21 , -1 , 67 , 68 , 20 , 12 , 65]
13698 meshN=MEDCouplingUMesh.New()
13699 meshN.setName("ForBary")
13700 meshN.setMeshDimension(3) ; meshN.setCoords(coords)
13701 meshN.allocateCells(4)
13702 meshN.insertNextCell(NORM_POLYHED,113,connN);
13703 meshN.insertNextCell(NORM_POLYHED,99,connN[113:])
13704 meshN.insertNextCell(NORM_POLYHED,43,connN[212:])
13705 meshN.insertNextCell(NORM_POLYHED,92,connN[255:])
13706 d=meshN.computeEffectiveNbOfNodesPerCell()
13707 e=meshN.computeNbOfNodesPerCell()
13708 self.assertTrue(d.isEqual(DataArrayInt([32,28,12,26])))
13709 self.assertTrue(e.isEqual(DataArrayInt([96,84,36,78])))
13710 m0=MEDCoupling1DGTUMesh(meshN)
13711 c=MEDCouplingCMesh()
13712 arr=DataArrayDouble(3) ; arr.iota(10)
13713 c.setCoords(arr,arr,arr)
13714 m10=c.buildUnstructured()
13715 m11=c.build1SGTUnstructured()
13716 m12=MEDCoupling1SGTUMesh.New(m10)
13717 self.assertTrue(m12.isEqual(m11,1e-12))
13718 m12.setCoords(m0.getCoords()) # m12 is not OK geometrically but the aim of the test is only connectivity values
13719 m3=MEDCoupling1GTUMesh.AggregateOnSameCoordsToUMesh([m12,m0])
13720 m3.checkCoherency()
13721 self.assertEqual(m3.getCoords().getHiddenCppPointer(),m12.getCoords().getHiddenCppPointer())
13722 self.assertTrue(m3.getNodalConnectivity().isEqual(DataArrayInt([18,1,0,3,4,10,9,12,13,18,2,1,4,5,11,10,13,14,18,4,3,6,7,13,12,15,16,18,5,4,7,8,14,13,16,17,18,10,9,12,13,19,18,21,22,18,11,10,13,14,20,19,22,23,18,13,12,15,16,22,21,24,25,18,14,13,16,17,23,22,25,26,31,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,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,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,22,19,21,30,31,-1,22,31,28,27,26,24,23,-1,31,30,29,28,31,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,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,33,34,48,45,-1,35,34,48,50,49,38,-1,41,43,42,46,36,37,-1,38,39,51,49,-1,39,40,42,46,47,52,51,-1,45,47,52,50,48,-1,52,51,49,50,31,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,23,53,54,40,8,-1,53,22,23,-1,39,54,40,31,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,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,55,5,12,65,-1,66,67,65,55,56,57,-1,63,66,57,59,64,-1,64,62,58,59,-1,60,63,66,67,68,61,-1,61,68,20,21,-1,67,68,20,12,65])))
13723 self.assertTrue(m3.getNodalConnectivityIndex().isEqual(DataArrayInt([0,9,18,27,36,45,54,63,72,186,286,330,423])))
13726 def testSwig2Tetrahedrize1(self):
13727 d=DataArrayInt([0,3,6,10,14,20])
13728 d2=d.buildExplicitArrOfSliceOnScaledArr(slice(0,5,2))
13729 self.assertTrue(d2.isEqual(DataArrayInt([0,0,0, 2,2,2,2, 4,4,4,4,4,4])))
13730 m=MEDCouplingUMesh("Penta6",3)
13731 m.setCoords(DataArrayDouble([0,0,0,0,1,0,1,0,0,0,0,2,0,1,2,1,0,2],6,3)) ; m.getCoords().setInfoOnComponents(["X","YY","ZZZ"])
13733 m.insertNextCell(NORM_PENTA6,[1,2,0,4,5,3])
13734 st=m.getCoords().getHiddenCppPointer()
13735 c,a,b=m.tetrahedrize(PLANAR_FACE_5)
13736 c.checkCoherency2()
13737 self.assertTrue(a.isEqual(DataArrayInt([0,0,0])))
13738 self.assertEqual(0,b)
13739 self.assertEqual(m.getCoords().getHiddenCppPointer(),c.getCoords().getHiddenCppPointer())
13740 self.assertTrue(c.getNodalConnectivity().isEqual(DataArrayInt([1,2,0,4,4,3,5,0,5,0,2,4])))
13743 m2=MEDCouplingUMesh("octa12",3)
13744 coords=DataArrayDouble([1.,0.,0.,0.5,0.8660254037844386,0.,-0.5,0.8660254037844387,0.,-1.,1.2246467991473532e-16,0.,-0.5,-0.8660254037844384,0.,0.5,-0.866025403784439,0.,1.,0.,2.,0.5,0.8660254037844386,2.,-0.5,0.8660254037844387,2.,-1.,1.2246467991473532e-16,2.,-0.5,-0.8660254037844384,2.,0.5,-0.866025403784439,2.0],12,3)
13745 m2.setCoords(coords)
13747 m2.insertNextCell(NORM_HEXGP12,[3,2,1,0,5,4,9,8,7,6,11,10])
13748 c,a,b=m2.tetrahedrize(PLANAR_FACE_5)
13749 c.checkCoherency2()
13750 self.assertTrue(a.isEqual(DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,0])))
13751 self.assertEqual(0,b)
13752 self.assertEqual(c.getCoords().getHiddenCppPointer(),coords.getHiddenCppPointer())
13753 self.assertTrue(c.getNodalConnectivity().isEqual(DataArrayInt([3,2,4,9,9,10,8,4,8,4,2,9,2,5,4,8,8,10,11,4,11,4,5,8,2,1,5,8,8,11,7,5,7,5,1,8,1,0,5,7,7,11,6,5,6,5,0,7])))
13756 coords=DataArrayDouble([0.,0.,0.,1.,0.,0.,1.,1.,0.,0.,1.,0.,0.,0.,2.,1.,0.,2.,1.,1.,2.,0.,1.,2.],8,3) ; coords.setInfoOnComponents(["X","YY","ZZZ"])
13757 m3=MEDCouplingUMesh("hexa8",3)
13758 m3.setCoords(coords)
13759 m3.allocateCells(0)
13760 m3.insertNextCell(NORM_HEXA8,[3,2,1,0,7,6,5,4])
13761 st=m3.getCoords().getHiddenCppPointer()
13762 c,a,b=m3.tetrahedrize(PLANAR_FACE_5)
13763 c.checkCoherency2()
13764 a.isEqual(DataArrayInt([0,0,0,0,0]))
13765 self.assertEqual(0,b)
13766 self.assertEqual(m3.getCoords().getHiddenCppPointer(),coords.getHiddenCppPointer())
13767 self.assertTrue(c.getNodalConnectivity().isEqual(DataArrayInt([3,6,2,1,3,7,6,4,3,0,4,1,6,4,5,1,3,6,1,4])))
13769 m4=MEDCouplingUMesh("hexa8",3)
13770 m4.setCoords(coords)
13771 m4.allocateCells(0)
13772 m4.insertNextCell(NORM_HEXA8,[3,2,1,0,7,6,5,4])
13773 c,a,b=m4.tetrahedrize(PLANAR_FACE_6)
13774 c.checkCoherency2()
13775 a.isEqual(DataArrayInt([0,0,0,0,0,0]))
13776 self.assertEqual(0,b)
13777 self.assertEqual(c.getCoords().getHiddenCppPointer(),coords.getHiddenCppPointer())
13778 self.assertTrue(c.getNodalConnectivity().isEqual(DataArrayInt([3,6,2,5,3,2,1,5,3,7,6,5,3,4,7,5,3,1,0,5,3,0,4,5])))
13780 m4=MEDCouplingUMesh("hexa8",3)
13781 m4.setCoords(coords)
13782 m4.allocateCells(0)
13783 m4.insertNextCell(NORM_HEXA8,[3,2,1,0,7,6,5,4])
13784 st=m4.getCoords().getHiddenCppPointer()
13785 c,a,b=m4.tetrahedrize(GENERAL_24)
13786 c.checkCoherency2()
13787 a.isEqual(DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]))
13788 self.assertEqual(7,b)
13789 self.assertTrue(c.getCoords().getHiddenCppPointer()!=coords.getHiddenCppPointer())
13790 self.assertTrue(c.getCoords()[:8].isEqual(coords,0))
13791 self.assertTrue(c.getNodalConnectivity().isEqual(DataArrayInt([3,7,8,14,7,6,8,14,6,2,8,14,2,3,8,14,3,2,9,14,2,1,9,14,1,0,9,14,0,3,9,14,3,0,10,14,0,4,10,14,4,7,10,14,7,3,10,14,2,6,11,14,6,5,11,14,5,1,11,14,1,2,11,14,7,4,12,14,4,5,12,14,5,6,12,14,6,7,12,14,1,5,13,14,5,4,13,14,4,0,13,14,0,1,13,14])))
13792 m4CoordsExp=DataArrayDouble([0.,0.,0.,1.,0.,0.,1.,1.,0.,0.,1.,0.,0.,0.,2.,1.,0.,2.,1.,1.,2.,0.,1.,2.,0.5,1.,1.,0.5,0.5,0.,0.,0.5,1.,1.,0.5,1.,0.5,0.5,2.,0.5,0.,1.,0.5,0.5,1.],15,3)
13793 m4CoordsExp.setInfoOnComponents(["X","YY","ZZZ"])
13794 self.assertTrue(c.getCoords().isEqual(m4CoordsExp,1e-12))
13795 self.assertAlmostEqual(2.,c.getMeasureField(False).accumulate()[0],12)
13797 m6=MEDCouplingUMesh("hexa8",3)
13798 m6.setCoords(coords)
13799 m6.allocateCells(0)
13800 m6.insertNextCell(NORM_HEXA8,[3,2,1,0,7,6,5,4])
13801 st=m6.getCoords().getHiddenCppPointer()
13802 c,a,b=m6.tetrahedrize(GENERAL_48)
13803 c.checkCoherency2()
13804 a.isEqual(DataArrayInt([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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]))
13805 self.assertEqual(19,b)
13806 self.assertTrue(c.getCoords().getHiddenCppPointer()!=coords.getHiddenCppPointer())
13807 self.assertTrue(c.getCoords()[:8].isEqual(coords,0))
13808 self.assertTrue(c.getNodalConnectivity().isEqual(DataArrayInt([3,20,8,26,3,8,21,26,3,9,20,26,3,22,9,26,3,21,12,26,3,12,22,26,8,10,2,23,8,2,13,23,8,20,10,23,8,26,20,23,8,13,21,23,8,21,26,23,12,26,21,25,12,21,16,25,12,22,26,25,12,17,22,25,12,16,0,25,12,0,17,25,21,23,13,18,21,13,1,18,21,26,23,18,21,25,26,18,21,1,16,18,21,16,25,18,9,11,20,24,9,20,26,24,9,7,11,24,9,14,7,24,9,26,22,24,9,22,14,24,20,6,10,15,20,10,23,15,20,11,6,15,20,24,11,15,20,23,26,15,20,26,24,15,22,24,26,19,22,26,25,19,22,14,24,19,22,4,14,19,22,25,17,19,22,17,4,19,26,15,23,5,26,23,18,5,26,24,15,5,26,19,24,5,26,18,25,5,26,25,19,5])))
13809 m6CoordsExp=DataArrayDouble([0.,0.,0.,1.,0.,0.,1.,1.,0.,0.,1.,0.,0.,0.,2.,1.,0.,2.,1.,1.,2.,0.,1.,2.,0.5,1.,0.,0.,1.,1.,1.,1.,1.,0.5,1.,2.,0.,0.5,0.,1.,0.5,0.,0.,0.5,2.,1.,0.5,2.,0.5,0.,0.,0.,0.,1.,1.,0.,1.,0.5,0.,2.,0.5,1.,1.,0.5,0.5,0.,0.,0.5,1.,1.,0.5,1.,0.5,0.5,2.,0.5,0.,1.,0.5,0.5,1.],27,3)
13810 m6CoordsExp.setInfoOnComponents(["X","YY","ZZZ"])
13811 self.assertTrue(c.getCoords().isEqual(m6CoordsExp,1e-12))
13812 self.assertAlmostEqual(2.,c.getMeasureField(False).accumulate()[0],12)
13814 m7=MEDCouplingUMesh("polyhed",3)
13815 coords=DataArrayDouble([1.,0.,0.,0.5,0.8660254037844386,0.,-0.5,0.8660254037844387,0.,-1.,0.,0.,-0.5,-0.8660254037844384,0.,0.5,-0.866025403784439,0.,1.,0.,2.,0.5,0.8660254037844386,2.,-0.5,0.8660254037844387,2.,-1.,0.,2.,-0.5,-0.8660254037844384,2.,0.5,-0.866025403784439,2.0],12,3) ; coords.setInfoOnComponents(["X","YY","ZZZ"])
13816 m7.setCoords(coords)
13818 m7.insertNextCell(NORM_POLYHED,[3,2,1,0,5,4,-1,9,10,11,6,7,8,-1,3,9,8,2,-1,2,8,7,1,-1,1,7,6,0,-1,0,6,11,5,-1,5,11,10,4,-1,4,10,9,3])
13819 c,a,b=m7.tetrahedrize(PLANAR_FACE_5)
13820 c.checkCoherency2()
13821 self.assertTrue(a.isEqual(DataArrayInt([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,0,0,0,0])))
13822 self.assertEqual(9,b)
13823 self.assertTrue(c.getNodalConnectivity().isEqual(DataArrayInt([3,2,12,20,2,1,12,20,1,0,12,20,0,5,12,20,5,4,12,20,4,3,12,20,9,10,13,20,10,11,13,20,11,6,13,20,6,7,13,20,7,8,13,20,8,9,13,20,3,9,14,20,9,8,14,20,8,2,14,20,2,3,14,20,2,8,15,20,8,7,15,20,7,1,15,20,1,2,15,20,1,7,16,20,7,6,16,20,6,0,16,20,0,1,16,20,0,6,17,20,6,11,17,20,11,5,17,20,5,0,17,20,5,11,18,20,11,10,18,20,10,4,18,20,4,5,18,20,4,10,19,20,10,9,19,20,9,3,19,20,3,4,19,20])))
13824 self.assertAlmostEqual(5.196152422706635,c.getMeasureField(False).accumulate()[0],12)
13825 m7CoordsExp=DataArrayDouble([1.0,0.0,0.0,0.5,0.8660254037844386,0.0,-0.5,0.8660254037844387,0.0,-1.0,0.,0.0,-0.5,-0.8660254037844384,0.0,0.5,-0.866025403784439,0.0,1.0,0.0,2.0,0.5,0.8660254037844386,2.0,-0.5,0.8660254037844387,2.0,-1.0,0.,2.0,-0.5,-0.8660254037844384,2.0,0.5,-0.866025403784439,2.0,0.0,0.0,0.0,0.0,0.,2.0,-0.75,0.4330127018922194,1.0,0.0,0.8660254037844386,1.0,0.75,0.4330127018922193,1.0,0.75,-0.4330127018922195,1.0,0.0,-0.8660254037844387,1.0,-0.75,-0.4330127018922191,1.0,0.0,0.,1.0],21,3)
13826 m7CoordsExp.setInfoOnComponents(["X","YY","ZZZ"])
13827 self.assertTrue(c.getCoords().isEqual(m7CoordsExp,1e-12))
13830 coords=DataArrayDouble([0.,0.,0.,1.,0.,0.,1.,1.,0.,0.,1.,0.,0.,0.,2.,1.,0.,2.,1.,1.,2.,0.,1.,2.],8,3) ; coords.setInfoOnComponents(["X","YY","ZZZ"])
13831 m8=MEDCouplingUMesh("pyra5",3)
13832 m8.setCoords(coords)
13833 m8.allocateCells(0)
13834 m8.insertNextCell(NORM_PYRA5,[3,2,1,0,7])
13835 st=m8.getCoords().getHiddenCppPointer()
13836 c,a,b=m8.tetrahedrize(PLANAR_FACE_5)
13837 self.assertEqual(m8.getCoords().getHiddenCppPointer(),coords.getHiddenCppPointer())
13838 c.checkCoherency2()
13839 self.assertTrue(a.isEqual(DataArrayInt([0,0])))
13840 self.assertEqual(0,b)
13841 self.assertTrue(c.getNodalConnectivity().isEqual(DataArrayInt([3,2,1,7,3,1,0,7])))
13842 self.assertAlmostEqual(0.6666666666666667,c.getMeasureField(False).accumulate()[0],12)
13845 def testDualMesh3D1(self):
13846 arr=DataArrayDouble(2) ; arr.iota()
13847 c=MEDCouplingCMesh() ; c.setCoords(arr,arr,arr)
13848 m=c.buildUnstructured()
13849 t=m.tetrahedrize(PLANAR_FACE_5)[0]
13850 d=t.computeDualMesh()
13851 self.assertTrue(d.getNodalConnectivityIndex().isEqual(DataArrayInt([0,29,118,207,236,325,354,383,472])))
13852 self.assertTrue(d.getNodalConnectivity().isEqual(DataArrayInt([26,11,42,8,-1,25,8,42,10,-1,29,10,42,11,-1,0,26,8,25,-1,0,25,10,29,-1,0,29,11,26,24,9,42,8,-1,26,8,42,11,-1,27,11,42,9,-1,1,24,8,26,-1,1,26,11,27,-1,30,13,43,12,-1,24,12,43,15,-1,32,15,43,13,-1,1,30,12,24,-1,1,32,13,30,-1,35,17,44,16,-1,32,16,44,19,-1,27,19,44,17,-1,1,35,16,32,-1,1,27,17,35,-1,24,15,46,9,-1,27,9,46,19,-1,32,19,46,15,27,9,42,11,-1,29,11,42,10,-1,28,10,42,9,-1,2,29,10,28,-1,2,27,11,29,-1,27,17,44,19,-1,38,19,44,18,-1,37,18,44,17,-1,2,37,17,27,-1,2,38,18,37,-1,28,21,45,23,-1,41,23,45,22,-1,38,22,45,21,-1,2,41,22,38,-1,2,28,23,41,-1,27,19,46,9,-1,28,9,46,21,-1,38,21,46,19,35,16,44,17,-1,36,18,44,16,-1,37,17,44,18,-1,3,36,16,35,-1,3,35,17,37,-1,3,37,18,36,24,8,42,9,-1,25,10,42,8,-1,28,9,42,10,-1,4,25,8,24,-1,4,28,10,25,-1,24,15,43,12,-1,31,12,43,14,-1,34,14,43,15,-1,4,24,12,31,-1,4,31,14,34,-1,34,21,45,20,-1,40,20,45,23,-1,28,23,45,21,-1,4,34,20,40,-1,4,40,23,28,-1,24,9,46,15,-1,28,21,46,9,-1,34,15,46,21,30,12,43,13,-1,31,14,43,12,-1,33,13,43,14,-1,5,31,12,30,-1,5,30,13,33,-1,5,33,14,31,40,23,45,20,-1,39,20,45,22,-1,41,22,45,23,-1,6,40,20,39,-1,6,39,22,41,-1,6,41,23,40,32,13,43,15,-1,34,15,43,14,-1,33,14,43,13,-1,7,33,13,32,-1,7,34,14,33,-1,32,19,44,16,-1,36,16,44,18,-1,38,18,44,19,-1,7,32,16,36,-1,7,36,18,38,-1,34,20,45,21,-1,39,22,45,20,-1,38,21,45,22,-1,7,39,20,34,-1,7,38,22,39,-1,32,15,46,19,-1,38,19,46,21,-1,34,21,46,15])))
13853 self.assertTrue(d.getCoords().isEqual(DataArrayDouble([0.,0.,0.,1.,0.,0.,0.,1.,0.,1.,1.,0.,0.,0.,1.,1.,0.,1.,0.,1.,1.,1.,1.,1.,0.3333333333333333,0.,0.3333333333333333,0.3333333333333333,0.3333333333333333,0.3333333333333333,0.,0.3333333333333333,0.3333333333333333,0.3333333333333333,0.3333333333333333,0.,0.6666666666666666,0.,0.6666666666666666,1.,0.3333333333333333,0.6666666666666666,0.6666666666666666,0.3333333333333333,1.,0.6666666666666666,0.3333333333333333,0.6666666666666666,1.,0.6666666666666666,0.3333333333333333,0.6666666666666666,0.6666666666666666,0.,0.6666666666666666,1.,0.3333333333333333,0.6666666666666666,0.6666666666666666,0.3333333333333333,0.3333333333333333,0.6666666666666666,1.,0.3333333333333333,0.6666666666666666,0.6666666666666666,0.3333333333333333,1.,0.6666666666666666,0.,0.6666666666666666,0.6666666666666666,0.5,0.,0.5,0.,0.,0.5,0.5,0.,0.,0.5,0.5,0.,0.,0.5,0.5,0.,0.5,0.,1.,0.,0.5,0.5,0.,1.,1.,0.5,0.5,1.,0.5,1.,0.5,0.5,1.,1.,0.5,0.,1.,1.,0.5,0.5,1.,0.,0.5,1.,0.5,0.5,1.,1.,0.,0.5,1.,0.,1.,0.5,0.25,0.25,0.25,0.75,0.25,0.75,0.75,0.75,0.25,0.25,0.75,0.75,0.5,0.5,0.5],47,3),1e-12))
13854 self.assertAlmostEqual(1.,d.getMeasureField(False).accumulate()[0],1e-13)
13857 def testDualMesh2D1(self):
13858 arr=DataArrayDouble(5) ; arr.iota()
13859 c=MEDCouplingCMesh() ; c.setCoords(arr,arr)
13860 m=c.buildUnstructured()
13862 t=MEDCoupling1SGTUMesh(m)
13863 d=t.computeDualMesh()
13864 self.assertTrue(d.getNodalConnectivityIndex().isEqual(DataArrayInt([0,4,12,20,28,34,42,54,66,78,86,94,106,118,130,138,146,158,170,182,190,196,204,212,220,224])))
13865 self.assertTrue(d.getNodalConnectivity().isEqual(DataArrayInt([26,81,25,0,25,81,27,82,29,83,30,1,30,83,31,84,33,85,34,2,34,85,35,86,37,87,38,3,38,87,39,88,41,4,27,81,26,5,42,89,28,82,29,82,28,89,43,90,45,91,32,84,31,83,33,84,32,91,46,92,48,93,36,86,35,85,37,86,36,93,49,94,51,95,40,88,39,87,41,88,40,95,52,96,54,9,43,89,42,10,55,97,44,90,45,90,44,97,56,98,58,99,47,92,46,91,48,92,47,99,59,100,61,101,50,94,49,93,51,94,50,101,62,102,64,103,53,96,52,95,54,96,53,103,65,104,67,14,56,97,55,15,68,105,57,98,58,98,57,105,69,106,71,107,60,100,59,99,61,100,60,107,72,108,74,109,63,102,62,101,64,102,63,109,75,110,77,111,66,104,65,103,67,104,66,111,78,112,80,19,69,105,68,20,70,106,71,106,70,21,73,108,72,107,74,108,73,22,76,110,75,109,77,110,76,23,79,112,78,111,80,112,79,24])))
13866 self.assertTrue(d.getCoords().isEqual(DataArrayDouble([0.,0.,1.,0.,2.,0.,3.,0.,4.,0.,0.,1.,1.,1.,2.,1.,3.,1.,4.,1.,0.,2.,1.,2.,2.,2.,3.,2.,4.,2.,0.,3.,1.,3.,2.,3.,3.,3.,4.,3.,0.,4.,1.,4.,2.,4.,3.,4.,4.,4.,0.5,0.,0.,0.5,0.5,0.5,0.5,1.,1.,0.5,1.5,0.,1.5,0.5,1.5,1.,2.,0.5,2.5,0.,2.5,0.5,2.5,1.,3.,0.5,3.5,0.,3.5,0.5,3.5,1.,4.,0.5,0.,1.5,0.5,1.5,0.5,2.,1.,1.5,1.5,1.5,1.5,2.,2.,1.5,2.5,1.5,2.5,2.,3.,1.5,3.5,1.5,3.5,2.,4.,1.5,0.,2.5,0.5,2.5,0.5,3.,1.,2.5,1.5,2.5,1.5,3.,2.,2.5,2.5,2.5,2.5,3.,3.,2.5,3.5,2.5,3.5,3.,4.,2.5,0.,3.5,0.5,3.5,0.5,4.,1.,3.5,1.5,3.5,1.5,4.,2.,3.5,2.5,3.5,2.5,4.,3.,3.5,3.5,3.5,3.5,4.,4.,3.5,0.3333333333333333,0.3333333333333333,0.6666666666666666,0.6666666666666666,1.3333333333333333,0.3333333333333333,1.6666666666666665,0.6666666666666666,2.333333333333333,0.3333333333333333,2.6666666666666665,0.6666666666666666,3.333333333333333,0.3333333333333333,3.6666666666666665,0.6666666666666666,0.3333333333333333,1.3333333333333333,0.6666666666666666,1.6666666666666665,1.3333333333333333,1.3333333333333333,1.6666666666666665,1.6666666666666665,2.333333333333333,1.3333333333333333,2.6666666666666665,1.6666666666666665,3.333333333333333,1.3333333333333333,3.6666666666666665,1.6666666666666665,0.3333333333333333,2.333333333333333,0.6666666666666666,2.6666666666666665,1.3333333333333333,2.333333333333333,1.6666666666666665,2.6666666666666665,2.333333333333333,2.333333333333333,2.6666666666666665,2.6666666666666665,3.333333333333333,2.333333333333333,3.6666666666666665,2.6666666666666665,0.3333333333333333,3.333333333333333,0.6666666666666666,3.6666666666666665,1.3333333333333333,3.333333333333333,1.6666666666666665,3.6666666666666665,2.333333333333333,3.333333333333333,2.6666666666666665,3.6666666666666665,3.333333333333333,3.333333333333333,3.6666666666666665,3.6666666666666665],113,2),1e-12))
13867 self.assertAlmostEqual(16.,d.getMeasureField(False).accumulate()[0],1e-13)
13870 def testSwig2LoadBalanceBBox1(self):
13871 arr=DataArrayDouble(5) ; arr.iota()
13872 t=MEDCouplingCMesh() ; t.setCoords(arr,arr)
13873 arr=DataArrayDouble(16) ; arr.iota() ; arr*=2./15
13874 s=MEDCouplingCMesh() ; s.setCoords(arr,arr[:]) ; s.translate([2.,1.])
13876 s1=s.build1SGTUnstructured()
13877 t1=t.build1SGTUnstructured()
13878 w=MEDCouplingPointSet.ComputeNbOfInteractionsWithSrcCells(s1,t1,1e-12)
13879 wExp=DataArrayInt([0,0,0,0,0,0,64,64,0,0,64,64,0,0,0,0])
13880 self.assertTrue(w.isEqual(wExp))
13881 slcs=w.splitInBalancedSlices(4)
13882 self.assertEqual(len(slcs),4)
13883 self.assertEqual(slcs,[slice(0,7,1),slice(7,8,1),slice(8,11,1),slice(11,16,1)])
13884 bbs=s1.getBoundingBoxForBBTree()
13885 bbt=t1.getBoundingBoxForBBTree()
13886 self.assertTrue(bbt.computeNbOfInteractionsWith(bbs,1e-12).isEqual(wExp))
13889 def testKrSpatialDiscretization2(self):
13890 srcPointCoordsXY=DataArrayDouble([0.8401877171547095,0.39438292681909304,0.7830992237586059,0.7984400334760733,0.9116473579367843,0.19755136929338396,0.335222755714889,0.768229594811904,0.2777747108031878,0.5539699557954305,0.47739705186216025,0.6288709247619244,0.36478447279184334,0.5134009101956155,0.9522297251747128,0.9161950680037007,0.6357117279599009,0.7172969294326831,0.14160255535580338,0.6069688762570586,0.01630057162432958,0.24288677062973696,0.13723157678601872,0.8041767542269904,0.15667908925408455,0.4009443942461835,0.12979044678145574,0.10880880202576929,0.998924518003559,0.21825690531090688,0.5129323944043984,0.8391122346926072,0.6126398325956612,0.29603161769734304,0.6375522677030192,0.5242871900667843,0.493582986990727,0.9727750238835695,0.29251678441302703,0.7713576977939148,0.5267449792133388,0.7699138362751873,0.4002286220901779,0.8915294520051822,0.2833147460051415,0.3524583472648907,0.8077245200088827,0.9190264739650424,0.06975527623191256,0.9493270753646861,0.5259953502221011,0.08605584785624214,0.19221384599442307,0.6632269270081198,0.8902326025488938,0.3488929352485076,0.06417132078864207,0.02002304886468828,0.4577017372742769,0.06309583832653977,0.23827995417559517,0.9706341316786754,0.9022080734848082,0.8509197867712563,0.2666657493760184,0.5397603407221662,0.3752069763723793,0.7602487363667454,0.5125353641400744,0.6677237607854063,0.5316064341606602,0.039280343353413204,0.4376375965949323,0.9318350562508382,0.9308097953585953,0.7209523430657351,0.28429340305006756,0.7385343149018168,0.6399788165651163,0.3540486797476414,0.687861390266503,0.16597416632155615,0.4401045276038835,0.880075236260926,0.829201093329676,0.3303371296871161,0.22896817104377232,0.8933724145839793,0.35036017855180435,0.6866699083180492,0.9564682529105192,0.5886401331930609,0.6573040395310633,0.8586763259296661,0.4395599194986559,0.9239697889070817,0.39843666665183225,0.8147668963366965,0.6842185252738271,0.9109720307919067,0.4824906566564416,0.21582495896882609,0.9502523741453198,0.9201282537170352,0.14766001475400292,0.8810621695039152,0.641080596317109,0.43195341826973177,0.6195964839400707,0.281059412416564,0.7860020980173732,0.3074578737409124,0.44703357920378145,0.22610662515559543,0.18753310953617705,0.27623467206779617,0.5564437553083728,0.4165012805799494,0.16960708618611428,0.9068039338601771,0.10317118843233734,0.1260753390966334,0.49544406658757667,0.7604752284290619,0.9847516650262995,0.9350039865518939,0.6844450168704823,0.3831883312124705,0.7497708824229291,0.36866354167864823,0.2941603620043771,0.2322615386137094,0.5844885006474743,0.24441273568403568,0.15238979186508328,0.7321485158671385,0.12547490472228962,0.7934703881821923,0.164101933671209,0.7450713891280216,0.07452980059875632,0.9501040316885822,0.05252926240327268,0.5215633798025378,0.1762106563785163,0.24006237240511102,0.797798051870334,0.732654411686889,0.6565636529850605,0.9674051385221095,0.6394583455470663,0.7597348418830591,0.09348047715308166,0.13490241166898162,0.5202100698464597,0.07823214171371988,0.06990639775521419,0.2046550862512808,0.4614204733918516,0.8196772801781433,0.5733186283955903,0.7555808353962288,0.05193881879185271,0.1578071285774033,0.9999935710802644,0.204328610656936,0.8899556444445419,0.12546847580255405,0.9977989993047895,0.054057577650089554,0.8705398649305757,0.07232879943788462,0.004161608873010431,0.9230691273338484,0.5938921792404224,0.180372265717188,0.16313149927329806,0.3916902306450951,0.9130266774040771,0.8196951527240198,0.35909536870154335,0.552485022485482,0.5794299941414176,0.452575845854625,0.687387434620125,0.09964006352221597,0.5308079880340062,0.7572938323753392,0.30429514977349675,0.9922284614258579,0.5769711125534824,0.877613778169087,0.7478092963564253,0.6289099313453351,0.03542090674649035,0.7478028669710285,0.8332385420022712,0.9253765511910322,0.8732713427735824,0.8310375408413995],100,2)
13891 srcFieldValsOnPoints=DataArrayDouble([0.7643742528498438,-0.023507696856211995,1.1082895131907775,0.6299357452572031,0.8892623544912389,0.72212114810697,0.9196401044320336,-0.759961711221917,0.40801932617748826,0.8441134300809151,0.982483804252809,0.6752368914020778,0.9924403977479798,1.1063334970204484,0.9403055261137516,0.3624481886322733,1.1344772505996308,0.7522965618948239,0.17077741651388564,0.6504551671311436,0.45843479588425423,0.41098905950326753,1.0681420394050904,-0.3483587903820091,0.5620151050607809,1.384969776596035,0.7948875141132845,0.7931192000237167,1.062498042490183,1.3709072529577366,0.44929346605311893,-0.4469683401788374,0.9035857424514101,0.6137249300593463,0.6355610879026966,1.4318174829507697,0.3097567072129551,-0.20515052260807165,0.6922559820922779,1.0341638749443423,1.3072652153341024,0.38511367353000436,0.9160514929274943,0.54513408530581,0.722252267913328,0.06684522818576251,0.10571899758067793,0.3193844999960903,0.5213532270828706,-0.04834998649603944,1.2408805068350615,-0.7632951295676795,0.5980054665011202,0.9064738717547436,1.1541070755096696,1.008234260272265,1.2225806960553827,1.0788560195121106,0.9818990282104452,0.5621951325841853,1.0796757508374188,0.5082872315589883,-0.9153702001062469,0.9560418838920791,0.9251098559152824,1.1603063610984021,1.2122303611181837,0.7379539363312343,0.6877611899207183,0.723966552446608,0.5596025827162566,0.8849725005989729,1.0908363665075547,0.08956512916455672,-0.10247645571248344,0.3236718069555875,1.069478546398975,1.3900071080692746,1.0322398863403262,0.45315515354558034,0.4249870238786733,1.030226761858634,0.974024629584669,1.2838885424020365,1.3451943506525155,1.4029933267831995,0.6025539675442462,1.2947650597767038,1.0006061239483002,-0.4017336259949164,0.8771165113201297,0.9158909024218246,1.403798605551443,0.4742904006425974,0.3671787905896653,0.20646491720419674,0.40739337434288925,0.7341932402033597,-0.4295893651836911,-0.3187777570661546],100,1)
13892 targetPointCoordsXY=DataArrayDouble([-0.5,-0.5,-0.5,-0.35,-0.5,-0.2,-0.5,-0.05,-0.5,0.1,-0.5,0.25,-0.5,0.4,-0.5,0.55,-0.5,0.7,-0.5,0.85,-0.5,1.0,-0.5,1.15,-0.5,1.3,-0.5,1.45,-0.35,-0.5,-0.35,-0.35,-0.35,-0.2,-0.35,-0.05,-0.35,0.1,-0.35,0.25,-0.35,0.4,-0.35,0.55,-0.35,0.7,-0.35,0.85,-0.35,1.0,-0.35,1.15,-0.35,1.3,-0.35,1.45,-0.2,-0.5,-0.2,-0.35,-0.2,-0.2,-0.2,-0.05,-0.2,0.1,-0.2,0.25,-0.2,0.4,-0.2,0.55,-0.2,0.7,-0.2,0.85,-0.2,1.0,-0.2,1.15,-0.2,1.3,-0.2,1.45,-0.05,-0.5,-0.05,-0.35,-0.05,-0.2,-0.05,-0.05,-0.05,0.1,-0.05,0.25,-0.05,0.4,-0.05,0.55,-0.05,0.7,-0.05,0.85,-0.05,1.0,-0.05,1.15,-0.05,1.3,-0.05,1.45,0.1,-0.5,0.1,-0.35,0.1,-0.2,0.1,-0.05,0.1,0.1,0.1,0.25,0.1,0.4,0.1,0.55,0.1,0.7,0.1,0.85,0.1,1.0,0.1,1.15,0.1,1.3,0.1,1.45,0.25,-0.5,0.25,-0.35,0.25,-0.2,0.25,-0.05,0.25,0.1,0.25,0.25,0.25,0.4,0.25,0.55,0.25,0.7,0.25,0.85,0.25,1.0,0.25,1.15,0.25,1.3,0.25,1.45,0.4,-0.5,0.4,-0.35,0.4,-0.2,0.4,-0.05,0.4,0.1,0.4,0.25,0.4,0.4,0.4,0.55,0.4,0.7,0.4,0.85,0.4,1.0,0.4,1.15,0.4,1.3,0.4,1.45,0.55,-0.5,0.55,-0.35,0.55,-0.2,0.55,-0.05,0.55,0.1,0.55,0.25,0.55,0.4,0.55,0.55,0.55,0.7,0.55,0.85,0.55,1.0,0.55,1.15,0.55,1.3,0.55,1.45,0.7,-0.5,0.7,-0.35,0.7,-0.2,0.7,-0.05,0.7,0.1,0.7,0.25,0.7,0.4,0.7,0.55,0.7,0.7,0.7,0.85,0.7,1.0,0.7,1.15,0.7,1.3,0.7,1.45,0.85,-0.5,0.85,-0.35,0.85,-0.2,0.85,-0.05,0.85,0.1,0.85,0.25,0.85,0.4,0.85,0.55,0.85,0.7,0.85,0.85,0.85,1.0,0.85,1.15,0.85,1.3,0.85,1.45,1.0,-0.5,1.0,-0.35,1.0,-0.2,1.0,-0.05,1.0,0.1,1.0,0.25,1.0,0.4,1.0,0.55,1.0,0.7,1.0,0.85,1.0,1.0,1.0,1.15,1.0,1.3,1.0,1.45,1.15,-0.5,1.15,-0.35,1.15,-0.2,1.15,-0.05,1.15,0.1,1.15,0.25,1.15,0.4,1.15,0.55,1.15,0.7,1.15,0.85,1.15,1.0,1.15,1.15,1.15,1.3,1.15,1.45,1.3,-0.5,1.3,-0.35,1.3,-0.2,1.3,-0.05,1.3,0.1,1.3,0.25,1.3,0.4,1.3,0.55,1.3,0.7,1.3,0.85,1.3,1.0,1.3,1.15,1.3,1.3,1.3,1.45,1.45,-0.5,1.45,-0.35,1.45,-0.2,1.45,-0.05,1.45,0.1,1.45,0.25,1.45,0.4,1.45,0.55,1.45,0.7,1.45,0.85,1.45,1.0,1.45,1.15,1.45,1.3,1.45,1.45],196,2)
13893 targetFieldValsExpected=DataArrayDouble([1.645976003316459, 1.454458180060204, 1.286087532859835, 1.147305389930914, 1.040143042030752, 0.9592075185603157, 0.8932542207607532, 0.8296417057622609, 0.7572539678257579, 0.6669048311361028, 0.551329882743212, 0.4064445075734602, 0.2323703965460786, 0.03253142054561309, 1.615321686989539, 1.414941300553572, 1.238383118538708, 1.096701655702075, 0.9955792747382535, 0.9271194507282707, 0.8741000712825546, 0.8201879508155141, 0.7537335933761495, 0.6656210809234322, 0.5470285414729397, 0.3927301586610237, 0.2044036897887453, -0.01181672742825013, 1.609602552867195, 1.400625195269133, 1.213287847440801, 1.065318574929208, 0.9717609562002842, 0.9182626517777217, 0.8760698972315855, 0.8258196104516153, 0.7586487405165288, 0.6686168424854784, 0.5434121624038266, 0.3741815029337978, 0.1661376046619205, -0.0704038088420833, 1.635421686625182, 1.422642113482769, 1.225977424080963, 1.066864693789366, 0.9864801043792362, 0.9486639217909161, 0.9075176697327381, 0.8471248730261529, 0.7660983406349626, 0.6675300501188994, 0.5320013361909732, 0.3404583135353376, 0.1074346390951333, -0.1520751802856468, 1.695346918429566, 1.489526279573347, 1.297678617961701, 1.139921240332637, 1.080508463804929, 1.036847769764088, 0.9687840669352359, 0.8790397822170175, 0.76938768351059, 0.6441978169925557, 0.4915328571013788, 0.2742929463574293, 0.0148214290833748, -0.2671755287427691, 1.782761788232491, 1.59423004798623, 1.422317125787222, 1.286999529473285, 1.20500638941831, 1.127058114031519, 1.022332539190471, 0.8945753999401338, 0.7469190939381181, 0.582396906110898, 0.4015920181411496, 0.1584700483835366, -0.1251860255418387, -0.4254052799545267, 1.881794862747652, 1.712890309994015, 1.557517508390291, 1.422727414977963, 1.308048056353061, 1.187569766723152, 1.03942150436647, 0.8677583087532357, 0.6766652050643343, 0.4703897480238999, 0.2497994532908829, -0.02005989176786582, -0.3224387891441491, -0.6331519303649853, 1.973114284621266, 1.820187301531605, 1.673403730111759, 1.528504440482262, 1.379693463484634, 1.207642134784147, 1.008217764780293, 0.7863328498822348, 0.5465383049529959, 0.2944879513187435, 0.03250657765404452, -0.2670900851421072, -0.5806516907976924, -0.8911331026431459, 2.038729888975378, 1.895652364645637, 1.751759791756183, 1.594035761810714, 1.403016809171641, 1.171403152610878, 0.913267035125007, 0.6343281031932027, 0.3434843176189371, 0.04195410032095204, -0.2645533663891493, -0.58577400250975, -0.8958218846257981, -1.192230697656513, 2.064018033720731, 1.922048791644444, 1.773847180028208, 1.600340336378483, 1.361620036333164, 1.060873411411508, 0.7373484802125152, 0.3868966266761109, 0.04316272760227413, -0.3009370030949727, -0.6505233805563486, -0.9669887470696283, -1.250005719852354, -1.519122595631787, 2.039938287785342, 1.887400820799651, 1.722008733683987, 1.523879290022419, 1.23834392230135, 0.8606985727866472, 0.4844892131548788, 0.08077959236877175, -0.3195742594962179, -0.726291368696764, -1.094357645641832, -1.359078900303776, -1.604725656501341, -1.845297168323687, 1.965762248218393, 1.791665198563286, 1.595056719739704, 1.353692777435502, 1.033006623003495, 0.6416349531117889, 0.2290046916364761, -0.1993180965088852, -0.6311618804827295, -1.051489875129883, -1.409404344854132, -1.681249363331096, -1.917859637689007, -2.145034400762945, 1.849053542205925, 1.648479366622312, 1.418493963148431, 1.141939527533839, 0.8042385795619003, 0.4127534639189761, -0.008572116677791453, -0.4428317297963555, -0.8745477268718713, -1.281769237471681, -1.635421857742795, -1.926210204560556, -2.175577364628722, -2.405762639746138, 1.701519686999922, 1.475879908746998, 1.219065416294153, 0.9203732349759972, 0.5740137315474942, 0.1856460506119944, -0.2298288912529738, -0.6558565521653752, -1.075391078040103, -1.469402631469075, -1.820558929095151, -2.123592211415966, -2.388177455227765, -2.628832075944413])
13894 coeffsExpected=DataArrayDouble([0.3953237723894342,-0.17220705170185724,0.620727139132215,-0.01938292763088709,-0.007524685306185282,0.0016277944443884584,-0.0005209587893117361,-1.8992696595839718,-0.13154330748345855,0.11248800965389728,-0.47310750305033406,0.03685741122098605,0.21362468750754374,0.8082608687799991,-0.6775548200221704,-0.027683208482275873,-0.007806877014495724,-0.013539239795959668,0.3478535665778018,0.005145793726360813,0.03708618549628136,-0.18235332489209385,-0.04517273339177797,-0.081755114492025,0.12791746560435255,0.09659355695676189,-0.024809653129318366,0.08327587452569823,-1.790380673650165,-0.10622983512164165,0.14989029282340274,0.05949513762355707,0.004548072841131278,0.011252095917834793,-0.004848057194721367,-0.2658537133108412,0.016651579133606154,-0.021640915366981317,0.008975511042160175,-0.021052213988815974,-0.09347841701844657,0.03533229488135717,-0.014556185287109863,-0.27228591670520086,0.002989987191209683,-0.5489428537951813,-0.02134456783001304,-0.22462281620064825,0.005230853443767429,-0.1894678262257301,0.0033140729457334884,5.295483062326795,-0.2724500716060311,0.026433905662192683,0.01368706308878908,-0.03014264855048227,0.053679001877659956,0.08109477254132096,-0.005004603067203444,0.016907143132293558,0.2105509502082437,0.003657404455024417,-4.904755847017426,0.01634808163992959,-0.008325515865305198,0.062188432751569676,-0.013114633511406406,0.11020519384963083,-0.008599402366091309,-0.012125149710784723,0.31723729052927313,-0.10298398036815914,-0.07250078775612204,0.39976713701763433,0.45897498107347223,0.01018626210400031,0.20163425809089347,0.19729093298588943,0.42863333455911523,0.015595097081693168,0.06060353651437489,-0.16379444813161725,-0.43290344196574165,-0.5931022701412187,1.1906610004748832,0.44418106894148945,0.06536220001548931,0.010261694323554562,-0.05943099382075491,-0.04939614579484797,0.002234505477641322,-0.011262130967449935,0.09644905007708474,-0.029518792883267808,0.41564004027396634,-0.18459770295961597,0.3100981306103734,-0.2509873737065425,0.5434321443668653,0.3009912967350914,1.9560655796099518,-0.7143435150084513,-1.5123449469879784])
13896 nbOfInputPoints=100;
13897 f=MEDCouplingFieldDouble.New(ON_NODES_KR,ONE_TIME);
13898 mesh=MEDCoupling1SGTUMesh.New("aMesh",NORM_POINT1);
13899 mesh.setCoords(srcPointCoordsXY);
13901 f.setArray(srcFieldValsOnPoints);
13902 f.checkCoherency();
13904 res0=f.getValueOn([-0.5,-0.5]);
13905 self.assertAlmostEqual(targetFieldValsExpected.getIJ(0,0),res0[0],10)
13907 valuesToTest=f.getValueOnMulti(targetPointCoordsXY);
13908 self.assertEqual(196,valuesToTest.getNumberOfTuples());
13909 self.assertEqual(1,valuesToTest.getNumberOfComponents());
13910 for i in xrange(40):
13911 self.assertAlmostEqual(targetFieldValsExpected[i],valuesToTest.getIJ(i,0),10)
13913 fd=f.getDiscretization()
13915 self.assertTrue(isinstance(fd,MEDCouplingFieldDiscretizationKriging))
13916 coeffs,isDrift=fd.computeVectorOfCoefficients(mesh,srcFieldValsOnPoints)
13917 self.assertEqual(3,isDrift)
13918 self.assertTrue(coeffsExpected.isEqual(coeffs,1e-8))
13920 pts3=[-0.5,-0.5,-0.5,-0.35,-0.35,-0.2]
13921 mesh.setCoords(srcPointCoordsXY[:4])
13922 m,nbCols=fd.computeEvaluationMatrixOnGivenPts(mesh,pts3)
13923 self.assertTrue(m.isEqual(DataArrayDouble([0.05768877688524917,-4.438982030395039,1.9495386255911573,3.431754627918642,0.11803848510231275,-4.138339658420563,1.6630742187104417,3.357226954607818,0.14630203028580618,-3.5156045565871734,1.414680070737206,2.954622455564169]),1e-12))
13924 if MEDCouplingHasNumPyBindings():
13926 m0=m.toNumPyArray() ; m0=m0.reshape(3,nbCols) ; m0=np.matrix(m0)
13927 srcFieldValsOnPoints2=DataArrayDouble(4,2) ; srcFieldValsOnPoints2[:,0]=srcFieldValsOnPoints[:4] ; srcFieldValsOnPoints2[:,1]=2*srcFieldValsOnPoints[:4]
13928 n0=srcFieldValsOnPoints2.toNumPyArray() ; n0=n0.reshape(4,2) ; n0=np.matrix(n0)
13930 f=MEDCouplingFieldDouble.New(ON_NODES_KR,ONE_TIME) ; f.setMesh(mesh) ; f.setArray(srcFieldValsOnPoints2) ; f.checkCoherency()
13931 self.assertTrue(DataArrayDouble(np.array((m0*n0))).isEqual(f.getValueOnMulti(pts3),1e-14))
13936 # test the when input slice is all the same object is return by MEDCouplingMesh.buildPartRange
13937 def testSwig2MeshPartSlice1(self):
13938 a=DataArrayDouble(4) ; a.iota()
13939 c=MEDCouplingCMesh() ; c.setCoords(a,a) ; m=c.buildUnstructured()
13940 fc0=c.getMeasureField(False) ; fc1=fc0[:] ; fc2=fc0*fc1 ; fc2.setName(fc0.getName())
13941 self.assertEqual(fc0.getMesh().getHiddenCppPointer(),fc1.getMesh().getHiddenCppPointer())
13942 self.assertEqual(fc2.getMesh().getHiddenCppPointer(),fc1.getMesh().getHiddenCppPointer())
13943 self.assertTrue(fc2.isEqual(fc1,1e-12,1e-12))
13945 fm0=m.getMeasureField(False) ; fm1=fm0[:] ; fm2=fm0*fm1 ; fm2.setName(fm0.getName())
13946 self.assertEqual(fm0.getMesh().getHiddenCppPointer(),fm1.getMesh().getHiddenCppPointer())
13947 self.assertEqual(fm2.getMesh().getHiddenCppPointer(),fm1.getMesh().getHiddenCppPointer())
13948 self.assertTrue(fm2.isEqual(fm1,1e-12,1e-12))
13951 # test the correct behaviour when attempting to aggregate two fields whose mesh is null
13952 def testSwig2MergeFieldsOnFieldsHavingNoMesh(self):
13953 a=DataArrayDouble(4) ; a.iota() ; a*=1.5
13954 c=MEDCouplingCMesh() ; c.setCoords(a,a) ; f1=c.getMeasureField(False)
13955 f1.setMesh(None) ; f2=f1.deepCpy() ; f2*=2
13956 f3=MEDCouplingFieldDouble.MergeFields(f1,f2)
13957 daExp=DataArrayDouble([2.25,2.25,2.25,2.25,2.25,2.25,2.25,2.25,2.25,4.5,4.5,4.5,4.5,4.5,4.5,4.5,4.5,4.5])
13958 self.assertTrue(f3.getArray().isEqual(daExp,1e-12))
13959 self.assertEqual(f3.getTypeOfField(),ON_CELLS)
13960 self.assertEqual(f3.getMesh(),None)
13961 f4=MEDCouplingFieldDouble.MergeFields([f1,f2])
13962 self.assertTrue(f4.getArray().isEqual(daExp,1e-12))
13963 self.assertEqual(f4.getTypeOfField(),ON_CELLS)
13964 self.assertEqual(f4.getMesh(),None)
13967 # test a simple node to cell convertion of a field
13968 def testSwig2NodeToCellDiscretization1(self):
13969 f=MEDCouplingFieldDouble(ON_NODES) ; f.setTime(1.1,2,3)
13970 a1=DataArrayDouble(4) ; a1.iota()
13971 a2=DataArrayDouble(3) ; a2.iota()
13972 m=MEDCouplingCMesh() ; m.setCoords(a1,a2)
13974 arr=DataArrayDouble([21.,121.,20.,120.,19.,119.,18.,118.,17.,117.,16.,116.,15.,115.,14.,114.,13.,113.,12.,112.,11.,111.,10.,110.],12,2) ; arr.setInfoOnComponents(["aa [km]","bbb [kJ]"])
13975 f.setArray(arr) ; f.setName("toto")
13977 f2=f.nodeToCellDiscretization()
13978 self.assertEqual(ON_CELLS,f2.getTypeOfField())
13979 self.assertEqual("toto",f2.getName())
13980 self.assertEqual([1.1,2,3],f2.getTime())
13981 self.assertEqual(["aa [km]","bbb [kJ]"],f2.getArray().getInfoOnComponents())
13982 self.assertEqual(6,f2.getArray().getNumberOfTuples())
13983 self.assertEqual(f.getMesh().getHiddenCppPointer(),f2.getMesh().getHiddenCppPointer())
13984 exp=DataArrayDouble([18.5,118.5,17.5,117.5,16.5,116.5,14.5,114.5,13.5,113.5,12.5,112.5],6,2) ; exp.setInfoOnComponents(["aa [km]","bbb [kJ]"])
13985 self.assertTrue(f2.getArray().isEqual(exp,1e-13))
13988 def testSwig2NonRegressionBugIntersectMeshes1(self):
13989 src=MEDCouplingUMesh("src",2)
13990 src.setCoords(DataArrayDouble([-2.5,-3,-2.5,3,2.5,3],3,2))
13991 src.allocateCells()
13992 src.insertNextCell(NORM_TRI3,[0,1,2])
13994 trg=MEDCouplingUMesh("trg",2)
13995 trg.setCoords(DataArrayDouble([-2.5,-3.,0.,-3.,0.,-2.,-2.,0.,-2.25,0.,-2.5,0.,-2.5,-1.5,0.,-2.5,-1.25,-3.,-1.414213562373095,-1.414213562373095],10,2))
13996 trg.allocateCells()
13997 trg.insertNextCell(NORM_QPOLYG,[2,1,0,5,3,7,8,6,4,9])
13999 a,b,c=MEDCouplingUMesh.Intersect2DMeshes(src,trg,1.0e-8)
14001 self.assertTrue(a.getCoords().isEqual(DataArrayDouble([-2.5,-3.,-2.5,3.,2.5,3.,0.,-3.,0.,-2.,-2.,0.,-2.25,0.,-2.5,0.,-2.5,-1.5,0.,-2.5,-1.25,-3.,-1.414213562373095,-1.414213562373095,-1.2803687993289596,-1.5364425591947515,-1.8901843996644798,-2.2682212795973755,-1.81117884244736,-0.8483107924994473,-2.5,1.5,0.,3.,0.6098156003355202,0.7317787204026243],18,2),1e-12))
14002 self.assertTrue(a.getNodalConnectivity().isEqual(DataArrayInt([32,12,0,7,5,13,8,6,14,32,7,1,2,12,5,15,16,17,14,6])))
14003 self.assertTrue(a.getNodalConnectivityIndex().isEqual(DataArrayInt([0,9,20])))
14004 self.assertTrue(b.isEqual(DataArrayInt([0,0])))
14005 self.assertTrue(c.isEqual(DataArrayInt([0,-1])))
14008 def testSwig2MeshOrientCorrectly2DCells1(self):
14009 m=MEDCouplingUMesh("mesh",2)
14010 coo=DataArrayDouble([1.,0.,0.5,-0.1,0.,1.,0.,0.,0.07,0.5,0.59,0.5],6,2)
14013 m.insertNextCell(NORM_TRI6,[3,0,2,1,5,4])
14014 m.insertNextCell(NORM_QPOLYG,[3,0,2,1,5,4])
14015 self.assertTrue(DataArrayDouble([-0.58093333350930543,-0.58093333350930543]).isEqual(m.getMeasureField(False).getArray(),1e-12))
14016 m.changeSpaceDimension(3)
14017 m.orientCorrectly2DCells([0.,0.,-1.],False)
14020 self.assertTrue(m.getNodalConnectivity().isEqual(DataArrayInt([6,3,2,0,4,5,1, 32,3,2,0,4,5,1])))
14021 self.assertTrue(m.getNodalConnectivityIndex().isEqual(DataArrayInt([0,7,14])))
14022 m.changeSpaceDimension(2)
14023 self.assertTrue(DataArrayDouble([0.58093333350930543,0.58093333350930543]).isEqual(m.getMeasureField(False).getArray(),1e-12))
14026 def testSwig2Hexa8HavingFacesWarped1(self):
14027 """ This test is bases on a "error" of interpolation detected. After investigation cell #3 of src is warped that leads to the fact that when trg is
14028 intersected with src the sum of intersection volume is greater than the volume of the trg cell.
14029 A test that can be done is to split the cell #3 of src into tetrohedrons and by summing all the volumes it does not fit the volume computed of cell#3 unsplitted (expect for
14032 srcCoo=DataArrayDouble([0.15694071546650565,0.09383333333333337,6.920842121738133,0.15774332475430292,0.185486666666667,6.920682472824616,0.1585459340420992,0.27713999999999994,6.9205228239111,0.07427195882345167,0.05782666666666668,6.937285959830335,0.06343673343819695,0.11347333333333297,6.939441220162809,0.05260150805294228,0.16911999999999996,6.941596480495282,0.014076262238703396,0.04800666666666667,6.949259628344076,0.014076262238703396,0.07092000000000007,6.949259628344076,0.15407499632681992,0.09383333333333338,6.897607484780063,0.15489234394181514,0.18548666666666702,6.897567331066572,0.15570969155680933,0.27714,6.897527177353081,0.06988819198237989,0.05782666666666669,6.901743317269663,0.05885399917995321,0.11347333333333298,6.9022853924017955,0.047819806377526586,0.16912,6.902827467533927,0.0085871208577874,0.048006666666666684,6.9047548457815076,0.0085871208577874,0.07092000000000008,6.9047548457815076,0.153883333333333,0.09383333333333338,6.820902,0.154701666666667,0.18548666666666702,6.820902,0.15551999999999996,0.27714,6.820902,0.06959499999999999,0.05782666666666669,6.820902,0.058547499999999975,0.11347333333333298,6.820902,0.04749999999999999,0.16912,6.820902],22,3)
14033 src=MEDCouplingUMesh("TBmesh3D",3) ; src.setCoords(srcCoo)
14034 src.allocateCells()
14035 src.insertNextCell(NORM_HEXA8,[0,1,4,3,8,9,12,11])
14036 src.insertNextCell(NORM_HEXA8,[1,2,5,4,9,10,13,12])
14037 src.insertNextCell(NORM_HEXA8,[4,5,7,6,12,13,15,14])
14038 src.insertNextCell(NORM_HEXA8,[8,9,12,11,16,17,20,19])
14039 src.insertNextCell(NORM_HEXA8,[9,10,13,12,17,18,21,20])
14040 src.checkCoherency2()
14041 # trg is useless here but I keep it in case of MEDCouplingRemapper were expected to do something about warped NORM_HEXA8
14042 trgCoo=DataArrayDouble([0.0960891897852753,0.105088620541845,6.8598,0.0599574480546212,0.118434267436059,6.8598,0.113514510609589,0.14874473653263,6.8598,0.0831322609794463,0.167319109733883,6.8598,0.0960891897852753,0.105088620541845,6.92146666666667,0.0599574480546212,0.118434267436059,6.92146666666667,0.113514510609589,0.14874473653263,6.92146666666667,0.0831322609794463,0.167319109733883,6.92146666666667],8,3)
14043 trg=MEDCouplingUMesh("MESH",3) ; trg.setCoords(trgCoo)
14044 trg.allocateCells()
14045 trg.insertNextCell(NORM_HEXA8,[0,1,3,2,4,5,7,6])
14047 srcFace=src.buildDescendingConnectivity()[0]
14048 conn=MEDCoupling1SGTUMesh(srcFace).getNodalConnectivity() ; conn.rearrange(4)
14049 eqFaces=srcFace.computePlaneEquationOf3DFaces()
14051 e=(srcFace.getCoords()[conn[:,nodeIdInCell]]*eqFaces[:,:-1]).sumPerTuple()+eqFaces[:,3]# e represent the error between the expected 'a*X+b*Y+c*Z+d' in eqFaces and 0. Closer e to 0. is closer the 4th point is to the plane built with the 3 first points
14052 lambd=-e/(eqFaces[:,:3]**2).sumPerTuple()
14053 pts=lambd*eqFaces[:,:-1]+srcFace.getCoords()[conn[:,nodeIdInCell]]#pts represent the projection of the last points of each NORM_QUAD4 to the plane defined by the 3 first points of the NORM_QUAD4 cell
14054 shouldBeZero=(pts*eqFaces[:,:-1]).sumPerTuple()+eqFaces[:,3]# this line is useless only to be sure that pts are on the plane.
14055 check=(pts-srcFace.getCoords()[conn[:,nodeIdInCell]]).magnitude() # check contains the distance of the last point to its plane
14056 idsToTest=check.getIdsNotInRange(0.,1e-10)
14057 self.assertTrue(idsToTest.isEqual(DataArrayInt([17,18,19,20,22,23,24])))
14058 idsToTest2=idsToTest.getIdsNotInRange(18,22)
14059 self.assertTrue(idsToTest2.isEqual(DataArrayInt([0,4,5,6])))
14060 idsToTest2.rearrange(2)
14061 self.assertTrue(idsToTest2.sumPerTuple().isEqual(DataArrayInt([4,11])))
14064 def testSwig2SortHexa8EachOther1(self):
14066 testing MEDCoupling1SGTUMesh.sortHexa8EachOther method
14068 coords1=DataArrayDouble([(-0.5,0.5,-0.5),(0.5,-0.5,-0.5),(-0.5,-0.5,0.5),(-0.5,-0.5,-0.5),(0.5,-0.5,0.5),(-0.5,0.5,0.5),(0.5,0.5,0.5),(0.5,0.5,-0.5)])
14069 m1=MEDCouplingUMesh("m1",3) ; m1.setCoords(coords1)
14070 m1.allocateCells() ; m1.insertNextCell(NORM_HEXA8,[7,1,3,0,6,4,2,5])
14071 m1.checkCoherency()
14073 m2=m1.deepCpy() ; m2.setName("m2")
14075 trs=[[0.,0.,-1.],[0.,0.,1.],[1.,0.,0.],[0.,-1.,0.],[-1.,0.,0.],[0.,1.,0.]]
14076 for i,t in enumerate(trs):
14077 for j in xrange(64):
14078 j2=(j//16) ; j1=((j%16)//4) ; j0=(j%4)
14080 m11.rotate([0.,0.,0.],[0.,0.,1.],float(j0)*pi/2)
14081 m11.rotate([0.,0.,0.],[0.,1.,0.],float(j1)*pi/2)
14082 m11.rotate([0.,0.,0.],[1.,0.,0.],float(j2)*pi/2)
14085 m=MEDCouplingUMesh.MergeUMeshes(m2,m11)
14086 m.mergeNodes(1e-12)
14087 self.assertEqual(12,m.getNumberOfNodes())
14088 m=MEDCoupling1SGTUMesh(m)
14089 m.sortHexa8EachOther()
14090 tmp0=m.buildUnstructured().tetrahedrize(PLANAR_FACE_6)[0].buildUnstructured()
14091 self.assertEqual(20,tmp0.computeSkin().getNumberOfCells())
14096 def testSwig2normMinComputeAbs1(self):
14097 d=DataArrayDouble([4,-5,2,6.1,-7.33,1,-1,3e2,0.07,-0.009,-6,-1e30],4,3)
14098 d.setInfoOnComponents(["XX [m]","YYY [km]","ABSJJ [MW]"])
14100 dExp=d.deepCpy() ; dExp.abs()
14101 self.assertTrue(dExp.isEqual(d0,1e-12))
14102 e=d0-DataArrayDouble([4,5,2,6.1,7.33,1,1,3e2,0.07,0.009,6,1e30],4,3)
14103 self.assertAlmostEqual(0.,e.normMin(),13)
14104 self.assertAlmostEqual(0.009,d.normMin(),13)
14106 di=DataArrayInt([3,-12,5,6,14,16,-23,100,23,-1,0,-6],4,3)
14107 di.setInfoOnComponents(["XX [m]","YYY [km]","ABSJJ [MW]"])
14108 d0i=di.computeAbs()
14109 diExp=di.deepCpy() ; diExp.abs()
14110 self.assertTrue(diExp.isEqual(d0i))
14111 self.assertEqual([3,12,5,6,14,16,23,100,23,1,0,6],d0i.getValues())
14114 def testSwig2GetCellsContainingPointsForNonConvexPolygon1(self):
14115 coo=DataArrayDouble([-0.5,-0.5,-0.5,0.5,0.5,0.5,0.5,-0.5,0.,-0.5,0.,0.,0.5,0.,],7,2)
14116 m=MEDCouplingUMesh("Intersect2D",2) ; m.setCoords(coo) ; m.allocateCells()
14117 m.insertNextCell(NORM_POLYGON,[6,3,4,5])
14118 m.insertNextCell(NORM_POLYGON,[4,0,1,2,6,5])
14119 m.checkCoherency2()
14121 self.assertTrue(m.getCellsContainingPoint((0.4,-0.4),1e-12).isEqual(DataArrayInt([0])))
14122 self.assertTrue(m.getCellsContainingPoint((-0.4,-0.4),1e-12).isEqual(DataArrayInt([1])))
14123 self.assertTrue(m.getCellsContainingPoint((0.,-0.4),1e-12).isEqual(DataArrayInt([0,1])))
14126 def testSwig2GetCellsContainingPointsForNonConvexPolygon2(self):
14127 coo=DataArrayDouble([-0.5,-0.5,-0.5,0.5,0.5,0.5,0.5,-0.5,-2.0816681711721685e-17,-2.0816681711721685e-17,-0.17677669529663687,0.1767766952966369,0.,0.5,0.5,0.,0.17677669529663684,-0.17677669529663692,0.17677669529663692,0.17677669529663684,-0.17677669529663692,-0.17677669529663687,0.,-0.5,-0.5,0.,0.33838834764831843,-0.3383883476483185,-0.33838834764831843,0.33838834764831843,-0.21213203435596423,0.21213203435596426,0.2121320343559642,-0.2121320343559643,0.21213203435596426,0.2121320343559642,-0.21213203435596423,-0.21213203435596428,0.3560660171779821,-0.35606601717798214,-0.35606601717798214,0.35606601717798214,0.19445436482630052,-0.19445436482630063,-0.19445436482630055,0.19445436482630057,0.,0.27],24,2)
14128 m=MEDCouplingUMesh("mesh",2) ; m.setCoords(coo) ; m.allocateCells()
14129 m.insertNextCell(NORM_QPOLYG,[8,5,4,9])
14130 m.insertNextCell(NORM_QPOLYG,[5,8,4,10])
14131 m.insertNextCell(NORM_QPOLYG,[16,8,5,15,21,9,22,17])
14132 m.insertNextCell(NORM_QPOLYG,[15,1,2,3,16,20,6,7,19,17])
14133 m.insertNextCell(NORM_QPOLYG,[15,5,8,16,22,10,21,18])
14134 m.insertNextCell(NORM_QPOLYG,[16,3,0,1,15,19,11,12,20,18])
14135 m.checkCoherency2()
14136 self.assertTrue(m.getCellsContainingPoint([0.,0.27],1e-12).isEqual(DataArrayInt([2])))
14139 def testSwig2DAIGetIdsEqualTuple1(self):
14140 da=DataArrayInt([0,7,1,2,4,1,2,1,1,2,0,1,2,1,5,1,1,2],9,2)
14141 self.assertTrue(da.getIdsEqualTuple([1,2]).isEqual(DataArrayInt([1,4,8])))
14142 self.assertTrue(da.getIdsEqualTuple((1,2)).isEqual(DataArrayInt([1,4,8])))
14143 self.assertTrue(da.getIdsEqualTuple(DataArrayInt([1,2])).isEqual(DataArrayInt([1,4,8])))
14145 self.assertRaises(InterpKernelException,da.getIdsEqualTuple,[1,2])# mismatch nb of compo (3) and nb of elts in input tuple (2)
14146 self.assertTrue(da.getIdsEqualTuple([2,0,1]).isEqual(DataArrayInt([3])))
14147 self.assertTrue(da.getIdsEqualTuple([2,0,7]).isEqual(DataArrayInt([])))
14149 self.assertTrue(da.getIdsEqualTuple(2).isEqual(DataArrayInt([3,6,9,12,17])))
14150 self.assertTrue(da.getIdsEqualTuple(2).isEqual(da.getIdsEqual(2)))
14153 def testSwig2GaussNEStaticInfo1(self):
14154 self.assertTrue(DataArrayDouble(MEDCouplingFieldDiscretizationGaussNE.GetWeightArrayFromGeometricType(NORM_TRI3)).isEqual(DataArrayDouble([0.16666666666666666,0.16666666666666666,0.16666666666666666]),1e-12))
14155 self.assertTrue(DataArrayDouble(MEDCouplingFieldDiscretizationGaussNE.GetRefCoordsFromGeometricType(NORM_TRI3)).isEqual(DataArrayDouble([0.,0.,1.,0.,0.,1.]),1e-12))
14156 self.assertTrue(DataArrayDouble(MEDCouplingFieldDiscretizationGaussNE.GetLocsFromGeometricType(NORM_TRI3)).isEqual(DataArrayDouble([0.16666666666666666,0.16666666666666666,0.6666666666666667,0.16666666666666666,0.16666666666666666,0.6666666666666667]),1e-12))
14159 def testSwigReverseNodalConnOnStructuredMesh(self):
14161 c=MEDCouplingCMesh() ; arr=DataArrayDouble(10) ; arr.iota()
14162 c.setCoordsAt(0,arr)
14163 rn,rni=c.getReverseNodalConnectivity()
14164 rn2,rni2=c.buildUnstructured().getReverseNodalConnectivity()
14165 self.assertTrue(rn.isEqual(DataArrayInt([0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8])))
14166 self.assertTrue(rni.isEqual(DataArrayInt([0,1,3,5,7,9,11,13,15,17,18])))
14167 self.assertTrue(rn.isEqual(rn2)) ; self.assertTrue(rni.isEqual(rni2))
14169 c=MEDCouplingCMesh() ; arr=DataArrayDouble(1) ; arr.iota()
14170 c.setCoordsAt(0,arr)
14171 rn,rni=c.getReverseNodalConnectivity()
14172 rn2,rni2=c.buildUnstructured().getReverseNodalConnectivity()
14173 self.assertTrue(rn.isEqual(DataArrayInt([0])))
14174 self.assertTrue(rni.isEqual(DataArrayInt([0,1])))
14175 self.assertTrue(rn.isEqual(rn2)) ; self.assertTrue(rni.isEqual(rni2))
14177 c=MEDCouplingCMesh() ; arr=DataArrayDouble(0) ; arr.iota()
14178 c.setCoordsAt(0,arr)
14179 rn,rni=c.getReverseNodalConnectivity()
14180 rn.isEqual(DataArrayInt([]))
14181 rni.isEqual(DataArrayInt([0]))
14183 c=MEDCouplingCMesh() ; arr=DataArrayDouble(5) ; arr.iota() ; arr2=DataArrayDouble(4) ; arr.iota()
14184 c.setCoords(arr,arr2)
14185 rn,rni=c.getReverseNodalConnectivity()
14186 rn2,rni2=c.buildUnstructured().getReverseNodalConnectivity()
14187 self.assertTrue(rn.isEqual(DataArrayInt([0,0,1,1,2,2,3,3,0,4,0,1,4,5,1,2,5,6,2,3,6,7,3,7,4,8,4,5,8,9,5,6,9,10,6,7,10,11,7,11,8,8,9,9,10,10,11,11])))
14188 self.assertTrue(rni.isEqual(DataArrayInt([0,1,3,5,7,8,10,14,18,22,24,26,30,34,38,40,41,43,45,47,48])))
14189 self.assertTrue(rn.isEqual(rn2)) ; self.assertTrue(rni.isEqual(rni2))
14191 c=MEDCouplingCMesh() ; arr=DataArrayDouble(10) ; arr.iota() ; arr2=DataArrayDouble(1) ; arr.iota()
14192 c.setCoords(arr,arr2)
14193 rn,rni=c.getReverseNodalConnectivity()
14194 self.assertTrue(rn.isEqual(DataArrayInt([0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8])))
14195 self.assertTrue(rni.isEqual(DataArrayInt([0,1,3,5,7,9,11,13,15,17,18])))
14197 c=MEDCouplingCMesh() ; arr=DataArrayDouble(10) ; arr.iota() ; arr2=DataArrayDouble(1) ; arr.iota()
14198 c.setCoords(arr2,arr)
14199 rn,rni=c.getReverseNodalConnectivity()
14200 self.assertTrue(rn.isEqual(DataArrayInt([0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8])))
14201 self.assertTrue(rni.isEqual(DataArrayInt([0,1,3,5,7,9,11,13,15,17,18])))
14203 c=MEDCouplingCMesh() ; arr0=DataArrayDouble(5) ; arr0.iota() ; arr1=DataArrayDouble(3) ; arr1.iota() ; arr2=DataArrayDouble(4) ; arr2.iota()
14204 c.setCoords(arr0,arr1,arr2)
14205 rn,rni=c.getReverseNodalConnectivity()
14206 self.assertTrue(rn.isEqual(DataArrayInt([0,0,1,1,2,2,3,3,0,4,0,1,4,5,1,2,5,6,2,3,6,7,3,7,4,4,5,5,6,6,7,7,0,8,0,1,8,9,1,2,9,10,2,3,10,11,3,11,0,4,8,12,0,1,4,5,8,9,12,13,1,2,5,6,9,10,13,14,2,3,6,7,10,11,14,15,3,7,11,15,4,12,4,5,12,13,5,6,13,14,6,7,14,15,7,15,8,16,8,9,16,17,9,10,17,18,10,11,18,19,11,19,8,12,16,20,8,9,12,13,16,17,20,21,9,10,13,14,17,18,21,22,10,11,14,15,18,19,22,23,11,15,19,23,12,20,12,13,20,21,13,14,21,22,14,15,22,23,15,23,16,16,17,17,18,18,19,19,16,20,16,17,20,21,17,18,21,22,18,19,22,23,19,23,20,20,21,21,22,22,23,23])))
14207 self.assertTrue(rni.isEqual(DataArrayInt([0,1,3,5,7,8,10,14,18,22,24,25,27,29,31,32,34,38,42,46,48,52,60,68,76,80,82,86,90,94,96,98,102,106,110,112,116,124,132,140,144,146,150,154,158,160,161,163,165,167,168,170,174,178,182,184,185,187,189,191,192])))
14208 rn2,rni2=c.buildUnstructured().getReverseNodalConnectivity()
14209 self.assertTrue(rn.isEqual(rn2)) ; self.assertTrue(rni.isEqual(rni2))
14212 def testSwig2CellToNodeDiscretization1(self):
14213 m=MEDCouplingCMesh() ; arr0=DataArrayDouble(5) ; arr0.iota() ; arr1=DataArrayDouble(4) ; arr1.iota() ; m.setCoords(arr0,arr1)
14214 f=MEDCouplingFieldDouble(ON_CELLS) ; f.setMesh(m) ; f.setTime(1.1,5,6)
14215 arr=DataArrayDouble(12) ; arr.iota()
14216 arr=DataArrayDouble.Meld(arr,arr+100.) ; arr.setInfoOnComponents(["aaa","bbb"])
14220 ref=DataArrayDouble([0.,0.5,1.5,2.5,3.,2.,2.5,3.5,4.5,5.,6.,6.5,7.5,8.5,9.,8.,8.5,9.5,10.5,11.])
14221 ref=DataArrayDouble.Meld(ref,ref+100.) ; ref.setInfoOnComponents(["aaa","bbb"])
14222 f2=f.cellToNodeDiscretization()
14223 f2.checkCoherency()
14224 self.assertEqual(f2.getTime()[1:],[5,6])
14225 self.assertAlmostEqual(f2.getTime()[0],1.1,15)
14226 self.assertEqual(f2.getMesh().getHiddenCppPointer(),m.getHiddenCppPointer())
14227 self.assertTrue(f2.getArray().isEqual(ref,1e-12))
14228 rn,rni=m.getReverseNodalConnectivity()
14229 rni2=(rni.deltaShiftIndex()).convertToDblArr()
14230 arr2=(f.getArray()[rn]).accumulatePerChunck(rni)/rni2
14231 self.assertTrue(f2.getArray().isEqual(arr2,1e-12))
14234 u=m.buildUnstructured() ; f.setMesh(u) ; del m
14235 f3=f.cellToNodeDiscretization()
14236 f3.checkCoherency()
14237 self.assertEqual(f3.getTime()[1:],[5,6])
14238 self.assertAlmostEqual(f3.getTime()[0],1.1,15)
14239 self.assertEqual(f3.getMesh().getHiddenCppPointer(),u.getHiddenCppPointer())
14240 self.assertTrue(f3.getArray().isEqual(ref,1e-12))
14243 def testSwig2GetMeshSpaceDimensionCMesh1(self):
14244 c=MEDCouplingCMesh()
14245 arr0=DataArrayDouble([0,1,2])
14246 arr1=DataArrayDouble([0])
14247 c.setCoords(arr0,arr0,arr0)
14248 self.assertEqual(c.getMeshDimension(),3)
14249 self.assertEqual(c.getSpaceDimension(),3)
14251 c.setCoords(arr0,arr0,arr1)
14252 self.assertEqual(c.getMeshDimension(),2)
14253 self.assertEqual(c.getSpaceDimension(),3)
14255 c.setCoords(arr0,arr0)
14256 self.assertEqual(c.getMeshDimension(),2)
14257 self.assertEqual(c.getSpaceDimension(),2)
14259 c.setCoords(arr0,arr1)
14260 self.assertEqual(c.getMeshDimension(),1)
14261 self.assertEqual(c.getSpaceDimension(),2)
14264 self.assertEqual(c.getMeshDimension(),1)
14265 self.assertEqual(c.getSpaceDimension(),1)
14268 self.assertEqual(c.getMeshDimension(),0)
14269 self.assertEqual(c.getSpaceDimension(),1)
14272 def testSwig2BuildSpreadZonesWithPolyOnQPolyg1(self):
14275 m=MEDCouplingCMesh()
14276 arr1=DataArrayDouble(nx) ; arr1.iota()
14277 arr2=DataArrayDouble(ny) ; arr2.iota()
14278 m.setCoords(arr1,arr2)
14279 m=m.buildUnstructured()
14280 da=DataArrayInt.Range(nx-1,(nx-1)*(ny-1),nx)
14281 m2=m[da] ; m2.simplexize(0)
14282 dan=da.buildComplement(m.getNumberOfCells())
14284 m=MEDCouplingUMesh.MergeUMeshesOnSameCoords(m1,m2)
14286 m.convertLinearCellsToQuadratic()
14287 m1=m[::2] ; m2=m[1::2] ; m2.convertAllToPoly()
14288 m=MEDCouplingUMesh.MergeUMeshesOnSameCoords(m1,m2)
14289 p=m.buildSpreadZonesWithPoly()
14290 self.assertTrue(p.getNodalConnectivity().isEqual(DataArrayInt([32,1,0,6,12,18,24,30,31,32,33,34,35,29,23,17,11,5,4,3,2,36,37,94,62,72,83,84,86,89,99,92,93,82,71,60,51,49,46,43,40])))
14291 self.assertTrue(p.getNodalConnectivityIndex().isEqual(DataArrayInt([0,41])))
14292 self.assertTrue(p.getCoords().isEqual(DataArrayDouble([0.,0.,1.,0.,2.,0.,3.,0.,4.,0.,5.,0.,0.,1.,1.,1.,2.,1.,3.,1.,4.,1.,5.,1.,0.,2.,1.,2.,2.,2.,3.,2.,4.,2.,5.,2.,0.,3.,1.,3.,2.,3.,3.,3.,4.,3.,5.,3.,0.,4.,1.,4.,2.,4.,3.,4.,4.,4.,5.,4.,0.,5.,1.,5.,2.,5.,3.,5.,4.,5.,5.,5.,0.5,0.,0.,0.5,0.5,1.,1.,0.5,1.5,0.,1.5,1.,2.,0.5,2.5,0.,2.5,1.,3.,0.5,3.5,0.,3.5,1.,4.,0.5,4.5,0.,4.5,1.,5.,0.5,1.,1.5,1.5,2.,2.,1.5,2.5,2.,3.,1.5,3.5,2.,4.,1.5,4.5,2.,5.,1.5,0.5,2.,0.,2.5,0.5,3.,1.,2.5,2.,2.5,2.5,3.,3.,2.5,3.5,3.,4.,2.5,4.5,3.,5.,2.5,0.,3.5,0.5,4.,1.,3.5,1.5,3.,1.5,4.,2.,3.5,3.,3.5,3.5,4.,4.,3.5,4.5,4.,5.,3.5,0.,4.5,0.5,5.,1.,4.5,1.5,5.,2.,4.5,2.5,4.,2.5,5.,3.,4.5,4.,4.5,4.5,5.,5.,4.5,0.,1.5,0.5,1.5,1.5,2.5,2.5,3.5,3.5,4.5,3.5,5.0],100,2),1e-13))
14295 def testSwig2Conformize2D1(self):
14297 coo = [0.,-0.5,0.,0.,0.5,0.,0.5,-0.5,0.25,
14298 -0.1,0.25,0.,0.5,-0.1,0.,0.5,0.5,0.5,0.25,0.4,0.25,0.5,0.5,0.4]
14299 conn = [5,5,2,6,4,5,6,3,0,1,5,4,5,10,8,11,9,5,11,2,1,7,10,9]
14300 connI = [0,5,12,17,24]
14301 m = MEDCouplingUMesh("box",2)
14302 cooArr = DataArrayDouble(coo,len(coo)/2,2)
14303 m.setCoords(cooArr)
14304 m.setConnectivity(DataArrayInt(conn),DataArrayInt(connI))
14307 self.assertTrue(m.conformize2D(eps).isEqual(DataArrayInt([3])))
14308 self.assertEqual(m.getCoords().getHiddenCppPointer(),cooArr.getHiddenCppPointer()) # check that coordinates remain the same here
14309 self.assertTrue(m.getNodalConnectivity().isEqual(DataArrayInt([5,5,2,6,4,5,6,3,0,1,5,4,5,10,8,11,9,5,11,2,5,1,7,10,9])))
14310 self.assertTrue(m.getNodalConnectivityIndex().isEqual(DataArrayInt([0,5,12,17,25])))
14313 def testSwig2Conformize2D2(self):
14315 coo=DataArrayDouble([-10,-6,0,-6,0,0,7,0,-10,2,0,2,0,6,7,6,0,8,7,8,-10,12,-4,12,0,12,0,11,7,11,-4,16,0,16,7,16],18,2)
14316 conn=DataArrayInt([2,3,7,6, 13,16,17,14, 4,10,12,5, 9,14,13,8, 8,9,7,6, 5,4,0,1, 16,12,11,15])
14317 m=MEDCoupling1SGTUMesh("mesh",NORM_QUAD4)
14319 m.setNodalConnectivity(conn)
14320 m=m.buildUnstructured()
14321 self.assertTrue(m.conformize2D(eps).isEqual(DataArrayInt([0,1,2,5])))
14322 self.assertEqual(m.getCoords().getHiddenCppPointer(),coo.getHiddenCppPointer()) # check that coordinates remain the same here
14323 self.assertTrue(m.getNodalConnectivity().isEqual(DataArrayInt([5,2,3,7,6,5, 5,13,12,16,17,14, 5,4,10,11,12,13,8,6,5, 4,9,14,13,8, 4,8,9,7,6, 5,5,4,0,1,2, 4,16,12,11,15])))
14324 self.assertTrue(m.getNodalConnectivityIndex().isEqual(DataArrayInt([0,6,12,21,26,31,37,42])))
14327 def testSwigSplit2DCells1(self):
14328 coo=DataArrayDouble([[0,0],[1,0],[1,1],[0,1],[0.5,0],[1,0.5],[0.5,1],[0.,0.5]])
14329 m=MEDCouplingUMesh("mesh",2)
14332 m.insertNextCell(NORM_QUAD8,[0,1,2,3,4,5,6,7])
14333 _,d,di,_,_=m.buildDescendingConnectivity()
14334 subb=DataArrayInt([5])
14335 subbi=DataArrayInt([0,0,1,1,1])
14336 mid=DataArrayInt([-1,-1])
14337 midi=DataArrayInt([0,0,2,2,2])
14338 self.assertEqual(2,m.split2DCells(d,di,subb,subbi,mid,midi))
14339 self.assertTrue(m.getNodalConnectivity().isEqual(DataArrayInt([32,0,1,5,2,3,4,8,9,6,7])))
14340 self.assertTrue(m.getNodalConnectivityIndex().isEqual(DataArrayInt([0,11])))
14341 self.assertTrue(m.getCoords().isEqual(DataArrayDouble([[0,0],[1,0],[1,1],[0,1],[0.5,0],[1,0.5],[0.5,1],[0.,0.5],[1.,0.25],[1.,0.75]]),1e-12))
14344 def testSwig2Conformize2D3(self):
14346 coo=DataArrayDouble([-10,-6,0,-6,0,0,7,0,-10,2,0,2,0,6.5,7,6.5,0,8,7,8,-10,12,-4,12,0,12,0,11,7,11,-4,16,0,16,7,16],18,2)
14347 conn=DataArrayInt([2,3,7,6, 13,16,17,14, 4,10,12,5, 9,14,13,8, 8,9,7,6, 5,4,0,1, 16,12,11,15])
14348 m=MEDCoupling1SGTUMesh("mesh",NORM_QUAD4)
14350 m.setNodalConnectivity(conn)
14351 m=m.buildUnstructured()
14352 m.convertLinearCellsToQuadratic()
14353 self.assertTrue(m.conformize2D(eps).isEqual(DataArrayInt([0,1,2,5])))
14354 self.assertTrue(m.getCoords().getHiddenCppPointer()!=coo.getHiddenCppPointer()) # coordinates are not the same here contrary to testSwig2Conformize2D2 ...
14355 self.assertTrue(m.getCoords()[:18].isEqual(coo,1e-12)) # but the 18 first nodes are the same
14358 def testSwig2Conformize2D4(self):
14360 coo=DataArrayDouble([-10,-6,0,-6,0,0,7,0,-10,2,0,2,0,6.5,7,6.5,0,8,7,8,-10,12,-4,12,0,12,0,11,7,11,-4,16,0,16,7,16],18,2)
14361 conn=DataArrayInt([2,3,7,6, 13,16,17,14, 4,10,12,5, 9,14,13,8, 8,9,7,6, 5,4,0,1, 16,12,11,15])
14362 m=MEDCoupling1SGTUMesh("mesh",NORM_QUAD4)
14364 m.setNodalConnectivity(conn)
14365 m=m.buildUnstructured()
14366 m.convertLinearCellsToQuadratic()
14367 self.assertEqual(42,m.getNumberOfNodes())
14368 oldCoo=m.getCoords().deepCpy()
14369 m.conformize2D(eps)
14370 self.assertTrue(m.getCoords()[:42].isEqual(oldCoo,1e-12))
14371 self.assertTrue(m.getNodalConnectivity().isEqual(DataArrayInt([32,2,3,7,6,5,18,19,20,42,43,32,13,12,16,17,14,44,38,23,24,25,32,4,10,11,12,13,8,6,5,26,45,39,44,31,34,42,29,8,9,14,13,8,30,25,31,32,8,8,9,7,6,32,33,20,34,32,5,4,0,1,2,29,35,36,46,43,8,16,12,11,15,38,39,40,41])))
14372 self.assertTrue(m.getNodalConnectivityIndex().isEqual(DataArrayInt([0,11,22,39,48,57,68,77])))
14373 self.assertTrue(m.getCoords().isEqual(DataArrayDouble([[-10.,-6.0],[0.,-6.0],[0.,0.0],[7.,0.0],[-10.,2.0],[0.,2.0],[0.,6.5],[7.,6.5],[0.,8.0],[7.,8.0],[-10.,12.0],[-4.,12.0],[0.,12.0],[0.,11.0],[7.,11.0],[-4.,16.0],[0.,16.0],[7.,16.0],[3.5, 0.0],[7.,3.25],[3.5, 6.5],[0.,3.25],[0.,13.5],[3.5, 16.0],[7.,13.5],[3.5, 11.0],[-10.,7.0],[-5.,12.0],[0.,7.0],[-5.,2.0],[7.,9.5],[0.,9.5],[3.5, 8.0],[7.,7.25],[0.,7.25],[-10.,-2.0],[-5.,-6.0],[0.,-2.0],[0.,14.0],[-2.,12.0],[-4.,14.0],[-2.,16.0],[0.,4.25],[0.,1.0],[0.,11.5],[-7.,12.0],[0.,-3.]]),1e-12))
14376 def testSwig2Conformize2D5(self):
14378 coo=DataArrayDouble([[2,2],[2,-6],[10,-2],[-2,-2],[6,0],[6,-4],[2,7],[2,4.5],[-1.4641016151377544,0],[-1.950753362380551,-1.3742621398390762],[-7,-3],[-0.8284271247461898,-4.82842712474619],[0.26794919243112281,3.5],[0,1.4641016151377548],[-4.4753766811902755,-2.1871310699195381],[-3.9142135623730949,-3.9142135623730949],[-1.8042260651806146,-3.23606797749979]])
14379 m=MEDCouplingUMesh("mesh",2)
14382 m.insertNextCell(NORM_TRI6,[1,2,0,5,4,3])
14383 m.insertNextCell(NORM_TRI6,[8,6,0,12,7,13])
14384 m.insertNextCell(NORM_TRI6,[11,9,10,16,14,15])
14385 self.assertTrue(m.conformize2D(eps).isEqual(DataArrayInt([0])))
14386 self.assertTrue(m.getCoords().isEqual(DataArrayDouble([2.,2.,2.,-6.,10.,-2.,-2.,-2.,6.,0.,6.,-4.,2.,7.,2.,4.5,-1.4641016151377544,0.,-1.950753362380551,-1.3742621398390762,-7.,-3.,-0.8284271247461898,-4.82842712474619,0.2679491924311228,3.5,8.881784197001252e-16,1.4641016151377548,-4.4753766811902755,-2.187131069919538,-3.914213562373095,-3.914213562373095,-1.8042260651806146,-3.236067977499789,-1.7705659643687133,-0.6647725630649153,0.46926627053963865,-5.695518130045146],19,2),1e-12))
14387 self.assertTrue(m.getNodalConnectivity().isEqual(DataArrayInt([32,1,2,0,8,9,11,5,4,13,17,16,18,6,8,6,0,12,7,13,6,11,9,10,16,14,15])))
14388 self.assertTrue(m.getNodalConnectivityIndex().isEqual(DataArrayInt([0,13,20,27])))
14391 def testSwigExtendedSlice1(self):
14392 d=DataArrayInt([5,6,7])
14393 self.assertTrue(d[2:].isEqual(DataArrayInt([7])))
14394 self.assertTrue(d[3:].isEqual(DataArrayInt([])))
14397 except InterpKernelException as e:
14398 self.assertTrue(True)
14400 self.assertTrue(False)
14402 d=DataArrayInt([5,6,7,8])
14403 self.assertEqual(d[-1],8)
14404 self.assertEqual(d[-4],5)
14407 except InterpKernelException as e:
14408 self.assertTrue(True)
14410 self.assertTrue(False)
14412 self.assertTrue(d[2::-1].isEqual(DataArrayInt([7,6,5])))
14413 self.assertTrue(d[0::-1].isEqual(DataArrayInt([5])))
14414 self.assertTrue(d[-1::-1].isEqual(DataArrayInt([8,7,6,5])))
14415 self.assertTrue(d[-3::-1].isEqual(DataArrayInt([6,5])))
14416 self.assertTrue(d[-5::-1].isEqual(DataArrayInt([])))
14419 except InterpKernelException as e:
14420 self.assertTrue(True)
14422 self.assertTrue(False)
14425 self.assertTrue(d[0:].isEqual(DataArrayInt([])))
14427 d=DataArrayDouble([5,6,7])
14428 self.assertTrue(d[2:].isEqual(DataArrayDouble([7]),1e-12))
14429 self.assertTrue(d[3:].isEqual(DataArrayDouble([]),1e-12))
14432 except InterpKernelException as e:
14433 self.assertTrue(True)
14435 self.assertTrue(False)
14437 d=DataArrayDouble([5,6,7,8])
14438 self.assertAlmostEqual(d[-1],8.,12)
14439 self.assertAlmostEqual(d[-4],5.,12)
14442 except InterpKernelException as e:
14443 self.assertTrue(True)
14445 self.assertTrue(False)
14447 self.assertTrue(d[2::-1].isEqual(DataArrayDouble([7,6,5]),1e-12))
14448 self.assertTrue(d[0::-1].isEqual(DataArrayDouble([5]),1e-12))
14449 self.assertTrue(d[-1::-1].isEqual(DataArrayDouble([8,7,6,5]),1e-12))
14450 self.assertTrue(d[-3::-1].isEqual(DataArrayDouble([6,5]),1e-12))
14451 self.assertTrue(d[-5::-1].isEqual(DataArrayDouble([]),1e-12))
14454 except InterpKernelException as e:
14455 self.assertTrue(True)
14457 self.assertTrue(False)
14459 d=DataArrayDouble([])
14460 self.assertTrue(d[0:].isEqual(DataArrayDouble([]),1e-12))
14463 def testSwig2Hexa27GP1(self):
14464 """ This test focused on shape functions of hexa27.
14466 coo=DataArrayDouble([[0.,2.,2.],[0.,0.,2.],[2.,0.,2.],[2.,2.,2.],[0.,2.,0.],[0.,0.,0.],[2.,0.,0.],[2.,2.,0.], [0.,1.,2.],[1.,0.,2.],[2.,1.,2.],[1.,2.,2.], [0.,1.,0.],[1.,0.,0.],[2.,1.,0.],[1.,2.,0.], [0.,2.,1.],[0.,0.,1.],[2.,0.,1.],[2.,2.,1.], [1.,1.,2.], [0.,1.,1.],[1.,0.,1.],[2.,1.,1.],[1.,2.,1.], [1.,1.,0.], [1.,1.,1.]])
14467 m=MEDCouplingUMesh("mesh",3) ; m.setCoords(coo)
14469 # the cell description is exactly those described in the description of HEXA27 in MED file 3.0.7 documentation
14470 m.insertNextCell(NORM_HEXA27,[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])
14471 refCoo=[-1.,-1.,-1.,-1.,1.,-1.,1.,1.,-1.,1.,-1.,-1.,-1.,-1.,1.,-1.,1.,1.,1.,1.,1.,1.,-1.,1.,-1.,0.,-1.,0.,1.,-1.,1.,0.,-1.,0.,-1.,-1.,-1.,0.,1.,0.,1.,1.,1.,0.,1.,0.,-1.,1.,-1.,-1.,0.,-1.,1.,0.,1.,1.,0.,1.,-1.,0.,0.,0.,-1.,-1.,0.,0.,0.,1.,0.,1.,0.,0.,0.,-1.,0.,0.,0.,1.,0.,0.,0.]
14472 weights=[0.1714677640603571,0.27434842249657115,0.1714677640603571,0.27434842249657115,0.43895747599451346,0.27434842249657115,0.1714677640603571,0.27434842249657115,0.1714677640603571,0.27434842249657115,0.43895747599451346,0.27434842249657115,0.43895747599451346,0.7023319615912209,0.43895747599451346,0.27434842249657115,0.43895747599451346,0.27434842249657115,0.1714677640603571,0.27434842249657115,0.1714677640603571,0.27434842249657115,0.43895747599451346,0.27434842249657115,0.1714677640603571,0.27434842249657115,0.1714677640603571]
14473 gCoords=[-0.774596669241483,-0.774596669241483,-0.774596669241483,-0.774596669241483,-0.774596669241483,0.0,-0.774596669241483,-0.774596669241483,0.774596669241483,-0.774596669241483,0.0,-0.774596669241483,-0.774596669241483,0.0,0.0,-0.774596669241483,0.0,0.774596669241483,-0.774596669241483,0.774596669241483,-0.774596669241483,-0.774596669241483,0.774596669241483,0.0,-0.774596669241483,0.774596669241483,0.774596669241483,0.0,-0.774596669241483,-0.774596669241483,0.0,-0.774596669241483,0.0,0.0,-0.774596669241483,0.774596669241483,0.0,0.0,-0.774596669241483,0.0,0.0,0.0,0.0,0.0,0.774596669241483,0.0,0.774596669241483,-0.774596669241483,0.0,0.774596669241483,0.0,0.0,0.774596669241483,0.774596669241483,0.774596669241483,-0.774596669241483,-0.774596669241483,0.774596669241483,-0.774596669241483,0.0,0.774596669241483,-0.774596669241483,0.774596669241483,0.774596669241483,0.0,-0.774596669241483,0.774596669241483,0.0,0.0,0.774596669241483,0.0,0.774596669241483,0.774596669241483,0.774596669241483,-0.774596669241483,0.774596669241483,0.774596669241483,0.0,0.774596669241483,0.774596669241483,0.774596669241483]
14474 fGauss=MEDCouplingFieldDouble(ON_GAUSS_PT) ; fGauss.setName("fGauss")
14476 fGauss.setGaussLocalizationOnType(NORM_HEXA27,refCoo,gCoords,weights)
14477 arr=DataArrayDouble(fGauss.getNumberOfTuplesExpected()) ; arr.iota()
14478 fGauss.setArray(arr)
14479 arrOfDisc=fGauss.getLocalizationOfDiscr()
14481 self.assertTrue(arrOfDisc.isEqual(DataArrayDouble([0.2254033307585172,1.7745966692414836,1.7745966692414834,0.22540333075851715,1.7745966692414834,1.,0.22540333075851715,1.7745966692414836,0.22540333075851715,0.22540333075851715,1.,1.7745966692414834,0.2254033307585171,1.,1.,0.22540333075851715,1.0000000000000002,0.2254033307585171,0.22540333075851715,0.22540333075851715,1.7745966692414838,0.22540333075851715,0.22540333075851715,1.,0.22540333075851715,0.22540333075851715,0.22540333075851715,1.,1.7745966692414832,1.7745966692414834,1.,1.774596669241483,1.,1.0000000000000002,1.7745966692414832,0.22540333075851712,1.,1.,1.774596669241483,1.,1.,1.,1.,1.,0.2254033307585171,1.,0.22540333075851715,1.7745966692414834,1.,0.2254033307585171,1.,1.0000000000000002,0.22540333075851715,0.2254033307585171,1.7745966692414834,1.7745966692414834,1.7745966692414836,1.7745966692414832,1.7745966692414834,1.0000000000000002,1.7745966692414834,1.7745966692414836,0.22540333075851712,1.7745966692414832,1.,1.7745966692414834,1.774596669241483,1.,1.,1.7745966692414832,1.0000000000000002,0.22540333075851712,1.7745966692414836,0.22540333075851715,1.7745966692414836,1.7745966692414832,0.22540333075851715,1.,1.7745966692414836,0.22540333075851715,0.22540333075851715],27,3),1e-12))
14485 fGauss.setGaussLocalizationOnType(NORM_HEXA27,refCoo,gCoords,weights)
14486 arrOfDisc2=fGauss.getLocalizationOfDiscr()
14487 self.assertTrue(arrOfDisc2.isEqual(coo,1e-12))
14490 def testSwig2Pyra13GP1(self):
14491 coo=DataArrayDouble([[0.,2.,0.],[2.,2.,0.],[2.,0.,0.],[0.,0.,0.],[1.,1.,2.],[1.,2.,0.],[2.,1.,0.],[1.,0.,0.],[0.,1.,0.],[0.5,1.5,1.],[1.5,1.5,1.],[1.5,0.5,1.],[0.5,0.5,1.]])
14492 m=MEDCouplingUMesh("mesh",3) ; m.setCoords(coo)
14494 # the cell description is exactly those described in the description of PYRA13 in MED file 3.0.7 documentation
14495 m.insertNextCell(NORM_PYRA13,[0,1,2,3,4,5,6,7,8,9,10,11,12])
14496 refCoords=[1.,0.,0.,0.,-1.,0.,-1.,0.,0.,0.,1.,0.,0.,0.,1.,0.5,-0.5,0.,-0.5,-0.5,0.,-0.5,0.5,0.,0.5,0.5,0.,0.5,0.,0.5,0.,-0.5,0.5,-0.5,0.,0.5,0.,0.5,0.5]
14497 gaussCoords=[0.,0.,0.5,0.21210450275,0.21210450275,0.5,-0.21210450275,0.21210450275,0.5,-0.21210450275,-0.21210450275,0.5,0.21210450275,-0.21210450275,0.5,0.,0.,0.07579099449999999,0.,0.,0.9242090055000001,0.5394929090572634,0.,0.17359176399999998,0.,0.5394929090572634,0.17359176399999998,-0.5394929090572634,0.,0.17359176399999998,0.,-0.5394929090572634,0.17359176399999998,0.1133235629427366,0.,0.826408236,0.,0.1133235629427366,0.826408236,-0.1133235629427366,0.,0.826408236,0.,-0.1133235629427366,0.826408236,0.5826406005183961,0.5826406005183961,-0.053206449499999975,-0.5826406005183961,0.5826406005183961,-0.053206449499999975,-0.5826406005183961,-0.5826406005183961,-0.053206449499999975,0.5826406005183961,-0.5826406005183961,-0.053206449499999975,0.5532064495,0.,0.5,0.,0.5532064495,0.5,-0.5532064495,0.,0.5,0.,-0.5532064495,0.5,-0.029434151018396033,-0.029434151018396033,1.0532064495,0.029434151018396033,-0.029434151018396033,1.0532064495,0.029434151018396033,0.029434151018396033,1.0532064495,-0.029434151018396033,0.029434151018396033,1.0532064495]
14498 weights=[0.0492545926875,0.031210562625,0.031210562625,0.031210562625,0.031210562625,0.10663554205740113,0.0007171281994273535,0.0816994048010844,0.0816994048010844,0.0816994048010844,0.0816994048010844,0.0036048554264914074,0.0036048554264914074,0.0036048554264914074,0.0036048554264914074,0.008958181586640837,0.008958181586640837,0.008958181586640837,0.008958181586640837,0.002018983875,0.002018983875,0.002018983875,0.002018983875,2.286237794882217e-05,2.286237794882217e-05,2.286237794882217e-05,2.286237794882217e-05]
14499 fGauss=MEDCouplingFieldDouble(ON_GAUSS_PT) ; fGauss.setName("fGauss")
14501 fGauss.setGaussLocalizationOnType(NORM_PYRA13,refCoords,gaussCoords,weights)
14502 arr=DataArrayDouble(fGauss.getNumberOfTuplesExpected()) ; arr.iota()
14503 fGauss.setArray(arr)
14504 arrOfDisc=fGauss.getLocalizationOfDiscr()
14506 self.assertTrue(arrOfDisc.isEqual(DataArrayDouble([1.,1.,1.,0.5757909945,1.,1.,1.,0.5757909945,1.,1.4242090055,1.,1.,1.,1.4242090055,1.,1.,1.,0.151581989,1.,1.,1.848418011,0.4605070909427367,1.5394929090572635,0.347183528,0.4605070909427367,0.4605070909427367,0.347183528,1.5394929090572638,0.4605070909427366,0.347183528,1.5394929090572635,1.5394929090572638,0.347183528,0.8866764370572636,1.1133235629427367,1.652816472,0.8866764370572636,0.8866764370572636,1.652816472,1.1133235629427367,0.8866764370572636,1.652816472,1.1133235629427365,1.1133235629427367,1.652816472,-0.16528120103679209,1.,-0.106412899,1.,-0.1652812010367921,-0.106412899,2.1652812010367914,1.,-0.106412899,1.,2.165281201036791,-0.106412899,0.4467935505,1.5532064495,1.,0.4467935505,0.4467935505,1.,1.5532064495,0.4467935505,1.,1.5532064495,1.5532064495,1.,1.0588683020367922,1.,2.106412899,1.,1.0588683020367922,2.106412899,0.9411316979632077,1.,2.106412899,1.,0.9411316979632078,2.106412899],27,3),1e-12))
14509 gaussCoords=refCoords[:] ; gaussCoords[14]=0.9999999999999 # change z of point #4 0.999... instead of 1. because with shape function it leads to division by 0. !
14510 fGauss.setGaussLocalizationOnType(NORM_PYRA13,refCoords,gaussCoords,weights)
14511 arrOfDisc2=fGauss.getLocalizationOfDiscr()
14512 self.assertTrue(arrOfDisc2.isEqual(coo,1e-10)) # be less exigent 1e-10 instead of 1e-12 due to shape function sensitivity arount 0.,0.,1. !
14515 def testSwig2Tri7GP1(self):
14516 coo=DataArrayDouble([[0,0],[0,2],[2,0],[0,1],[1,1],[1,0],[0.6666666666666667,0.6666666666666667]])
14517 m=MEDCouplingUMesh("mesh",2) ; m.setCoords(coo)
14519 # the cell description is exactly those described in the description of TRI7 in MED file 3.0.7 documentation
14520 m.insertNextCell(NORM_TRI7,range(7))
14521 refCoords=[0.,0.,1.,0.,0.,1.,0.5,0.,0.5,0.5,0.,0.5,0.3333333333333333,0.3333333333333333]
14522 gaussCoords=[0.3333333333333333,0.3333333333333333,0.470142064105115,0.470142064105115,0.05971587178977,0.470142064105115,0.470142064105115,0.05971587178977,0.101286507323456,0.101286507323456,0.797426985353088,0.101286507323456,0.101286507323456,0.797426985353088]
14523 weights=[0.062969590272413,0.062969590272413,0.062969590272413,0.066197076394253,0.066197076394253,0.066197076394253,0.1125]
14524 fGauss=MEDCouplingFieldDouble(ON_GAUSS_PT) ; fGauss.setName("fGauss")
14526 fGauss.setGaussLocalizationOnType(NORM_TRI7,refCoords,gaussCoords,weights)
14527 arr=DataArrayDouble(fGauss.getNumberOfTuplesExpected()) ; arr.iota()
14528 fGauss.setArray(arr)
14529 arrOfDisc=fGauss.getLocalizationOfDiscr()
14530 self.assertTrue(arrOfDisc.isEqual(DataArrayDouble([0.666666666666667,0.666666666666667,0.9402841282102293,0.9402841282102293,0.9402841282102299,0.11943174357954002,0.11943174357953992,0.9402841282102299,0.20257301464691194,0.20257301464691196,0.20257301464691205,1.5948539707061757,1.5948539707061757,0.20257301464691202],7,2),1e-12))
14533 gaussCoords=refCoords
14534 fGauss.setGaussLocalizationOnType(NORM_TRI7,refCoords,gaussCoords,weights)
14535 arrOfDisc2=fGauss.getLocalizationOfDiscr()
14536 self.assertTrue(arrOfDisc2.isEqual(coo,1e-12))
14539 def testSwig2StructuredDesc1(self):
14540 c=MEDCouplingCMesh()
14541 arr0=DataArrayDouble(3) ; arr0.iota()
14542 arr1=DataArrayDouble(4) ; arr1.iota()
14543 arr2=DataArrayDouble(5) ; arr2.iota()
14544 c.setCoords(arr0,arr1,arr2)
14546 self.assertEqual(98,c.getNumberOfCellsOfSubLevelMesh())
14547 m=c.build1SGTSubLevelMesh()
14548 self.assertTrue(m.getNodalConnectivity().isEqual(DataArrayInt([0,12,15,3,12,24,27,15,24,36,39,27,36,48,51,39,3,15,18,6,15,27,30,18,27,39,42,30,39,51,54,42,6,18,21,9,18,30,33,21,30,42,45,33,42,54,57,45,1,13,16,4,13,25,28,16,25,37,40,28,37,49,52,40,4,16,19,7,16,28,31,19,28,40,43,31,40,52,55,43,7,19,22,10,19,31,34,22,31,43,46,34,43,55,58,46,2,14,17,5,14,26,29,17,26,38,41,29,38,50,53,41,5,17,20,8,17,29,32,20,29,41,44,32,41,53,56,44,8,20,23,11,20,32,35,23,32,44,47,35,44,56,59,47,0,12,13,1,12,24,25,13,24,36,37,25,36,48,49,37,1,13,14,2,13,25,26,14,25,37,38,26,37,49,50,38,3,15,16,4,15,27,28,16,27,39,40,28,39,51,52,40,4,16,17,5,16,28,29,17,28,40,41,29,40,52,53,41,6,18,19,7,18,30,31,19,30,42,43,31,42,54,55,43,7,19,20,8,19,31,32,20,31,43,44,32,43,55,56,44,9,21,22,10,21,33,34,22,33,45,46,34,45,57,58,46,10,22,23,11,22,34,35,23,34,46,47,35,46,58,59,47,0,1,4,3,3,4,7,6,6,7,10,9,1,2,5,4,4,5,8,7,7,8,11,10,12,13,16,15,15,16,19,18,18,19,22,21,13,14,17,16,16,17,20,19,19,20,23,22,24,25,28,27,27,28,31,30,30,31,34,33,25,26,29,28,28,29,32,31,31,32,35,34,36,37,40,39,39,40,43,42,42,43,46,45,37,38,41,40,40,41,44,43,43,44,47,46,48,49,52,51,51,52,55,54,54,55,58,57,49,50,53,52,52,53,56,55,55,56,59,58])))
14549 self.assertEqual(NORM_QUAD4,m.getCellModelEnum())
14551 self.assertTrue(MEDCouplingStructuredMesh.Build1GTNodalConnectivityOfSubLevelMesh([3,7]).isEqual(DataArrayInt([0,3,3,6,6,9,9,12,12,15,15,18,1,4,4,7,7,10,10,13,13,16,16,19,2,5,5,8,8,11,11,14,14,17,17,20,0,1,1,2,3,4,4,5,6,7,7,8,9,10,10,11,12,13,13,14,15,16,16,17,18,19,19,20])))
14554 def testSwig2Colinearize2D1(self):
14555 coo=DataArrayDouble([-5.,0.,-1.,0.,4.,3.,7.,0.,1.,6.,1.,0.,-3.,0.,6.,1.,5.,0.,3.,0.],10,2)
14557 m=MEDCouplingUMesh("mesh",2) ; m.setCoords(coo) ; m.allocateCells()
14558 m.insertNextCell(NORM_POLYGON,[5,9,8,3,7,2,4,0,6,1])
14559 refPtr=m.getCoords().getHiddenCppPointer()
14560 self.assertTrue(m.colinearize2D(1e-12).isEqual(DataArrayInt([0])))
14561 self.assertEqual(refPtr,m.getCoords().getHiddenCppPointer())
14562 self.assertTrue(m.getNodalConnectivity().isEqual(DataArrayInt([5,0,3,4])))
14563 self.assertTrue(m.getNodalConnectivityIndex().isEqual(DataArrayInt([0,4])))
14564 self.assertTrue(m.colinearize2D(1e-12).isEqual(DataArrayInt([])))
14565 self.assertEqual(refPtr,m.getCoords().getHiddenCppPointer())
14566 self.assertTrue(m.getNodalConnectivity().isEqual(DataArrayInt([5,0,3,4])))
14567 self.assertTrue(m.getNodalConnectivityIndex().isEqual(DataArrayInt([0,4])))
14569 m=MEDCouplingUMesh("mesh",2) ; m.setCoords(coo) ; m.allocateCells()
14570 m.insertNextCell(NORM_POLYGON,[8,3,7,2,4,0,6,1,5,9])
14571 refPtr=m.getCoords().getHiddenCppPointer()
14572 self.assertTrue(m.colinearize2D(1e-12).isEqual(DataArrayInt([0])))
14573 self.assertEqual(refPtr,m.getCoords().getHiddenCppPointer())
14574 self.assertTrue(m.getNodalConnectivity().isEqual(DataArrayInt([5,0,3,4])))
14575 self.assertTrue(m.getNodalConnectivityIndex().isEqual(DataArrayInt([0,4])))
14577 m=MEDCouplingUMesh("mesh",2) ; m.setCoords(coo) ; m.allocateCells()
14578 m.insertNextCell(NORM_POLYGON,[3,7,2,4,0,6,1,5,9,8])
14579 refPtr=m.getCoords().getHiddenCppPointer()
14580 self.assertTrue(m.colinearize2D(1e-12).isEqual(DataArrayInt([0])))
14581 self.assertEqual(refPtr,m.getCoords().getHiddenCppPointer())
14582 self.assertTrue(m.getNodalConnectivity().isEqual(DataArrayInt([5,3,4,0])))
14583 self.assertTrue(m.getNodalConnectivityIndex().isEqual(DataArrayInt([0,4])))
14585 m=MEDCouplingUMesh("mesh",2) ; m.setCoords(coo) ; m.allocateCells()
14586 m.insertNextCell(NORM_POLYGON,[4,0,6,1,5,9,8,3,7,2,])
14587 refPtr=m.getCoords().getHiddenCppPointer()
14588 self.assertTrue(m.colinearize2D(1e-12).isEqual(DataArrayInt([0])))
14589 self.assertEqual(refPtr,m.getCoords().getHiddenCppPointer())
14590 self.assertTrue(m.getNodalConnectivity().isEqual(DataArrayInt([5,4,0,3])))
14591 self.assertTrue(m.getNodalConnectivityIndex().isEqual(DataArrayInt([0,4])))
14593 coo2=DataArrayDouble([(-5,0),(-1,0),(4,3),(7,0),(1,6),(1,0),(-3,0),(6,1),(5,0),(3,0),(2,0),(4,0),(6,0),(6.5,0.5),(5,2),(2.5,4.5),(-2,3),(-4,0),(-2,0),(0,0)])
14594 coo2.setInfoOnComponents(["aa","bbbb"])
14595 m=MEDCouplingUMesh("mesh",2) ; m.setCoords(coo2) ; m.allocateCells()
14596 m.insertNextCell(NORM_QPOLYG,[5,9,8,3,7,2,4,0,6,1,10,11,12,13,14,15,16,17,18,19])
14597 refPtr=m.getCoords().getHiddenCppPointer()
14598 self.assertTrue(m.colinearize2D(1e-12).isEqual(DataArrayInt([0])))
14599 self.assertNotEqual(refPtr,m.getCoords().getHiddenCppPointer())#not same coordinates here
14600 self.assertEqual(["aa","bbbb"],m.getCoords().getInfoOnComponents())
14601 refPtr=m.getCoords().getHiddenCppPointer()
14602 self.assertTrue(coo2.isEqual(m.getCoords()[:20],1e-12))
14603 self.assertTrue(m.getCoords()[20:].isEqualWithoutConsideringStr(DataArrayDouble([(1.,0.),(4.,3.)]),1e-12))
14604 self.assertTrue(m.getNodalConnectivity().isEqual(DataArrayInt([32,0,3,4,20,21,16])))
14605 self.assertTrue(m.getNodalConnectivityIndex().isEqual(DataArrayInt([0,7])))
14606 self.assertTrue(m.colinearize2D(1e-12).isEqual(DataArrayInt([])))
14607 self.assertEqual(refPtr,m.getCoords().getHiddenCppPointer())
14608 self.assertTrue(m.getNodalConnectivity().isEqual(DataArrayInt([32,0,3,4,20,21,16])))
14609 self.assertTrue(m.getNodalConnectivityIndex().isEqual(DataArrayInt([0,7])))
14610 # mix of quadratic and linear inside a QPOLYG cell
14611 coo2=DataArrayDouble([(-5,0),(-1,0),(7.,6.),(7,0),(1,6),(1,0),(-3,0),(8.2426406871192839,3),(5,0),(3,0), (2,0),(4,0),(6,0),(7.9196888946291288,1.3764116995614091),(7.9196888946291288,4.6235883004385911),(4,7.2426406871192848),(-2,3),(-4,0),(-2,0),(0,0)])
14612 m=MEDCouplingUMesh("mesh",2) ; m.setCoords(coo2) ; m.allocateCells()
14613 m.insertNextCell(NORM_QPOLYG,[5,9,8,3,7,2,4,0,6,1,10,11,12,13,14,15,16,17,18,19])
14614 refPtr=m.getCoords().getHiddenCppPointer()
14615 self.assertTrue(m.colinearize2D(1e-12).isEqual(DataArrayInt([0])))
14616 self.assertNotEqual(refPtr,m.getCoords().getHiddenCppPointer())#not same coordinates here
14617 self.assertTrue(coo2.isEqual(m.getCoords()[:20],1e-12))
14618 self.assertTrue(m.getCoords()[20:].isEqual(DataArrayDouble([(1.,0.),(7.,6.)]),1e-12))
14619 self.assertTrue(m.getNodalConnectivity().isEqual(DataArrayInt([32,0,3,4,20,21,16])))
14620 self.assertTrue(m.getNodalConnectivityIndex().isEqual(DataArrayInt([0,7])))
14623 def testSwig2BoundingBoxForBBTree1(self):
14624 """ This test appears simple but it checks that bounding box are correctly computed for quadratic polygons. It can help a lot to reduce the amount of intersections !
14626 coo=DataArrayDouble([-0.5,-0.5,-0.5,0.5,0.5,0.5,0.5,-0.5,0.45,0.,0.3181980515339464,0.31819805153394637,0.,0.45,-0.31819805153394637,0.3181980515339464,-0.45,0.,-0.3181980515339465,-0.31819805153394637,0.,-0.45,0.3181980515339463,-0.3181980515339465,-0.5,0.0,0.0,0.5,0.5,0.0,0.0,-0.5,-0.4090990257669732,-0.4090990257669732,0.40909902576697316,-0.4090990257669732],18,2)
14627 m=MEDCouplingUMesh("mesh",2) ; m.setCoords(coo)
14629 m.insertNextCell(NORM_QPOLYG,[0,1,2,3,11,5,7,9,12,13,14,17,4,6,8,16])
14630 m.insertNextCell(NORM_QPOLYG,[3,0,9,11,15,16,10,17])
14631 self.assertTrue(m.getBoundingBoxForBBTree().isEqual(DataArrayDouble([-0.5,0.5,-0.5,0.5,-0.5,0.5,-0.5,-0.31819805153394637],2,4),1e-12))
14634 def testSwig2CartBuildUnstructuredOnExoticCases1(self):
14635 """ Test focusing on traduction from cartesian to unstructured mesh when spaceDim greater than meshDim.
14638 m=MEDCouplingCMesh()
14639 arrX=DataArrayDouble(3) ; arrX.iota()
14640 arrY=DataArrayDouble(4) ; arrY.iota()
14641 arrZ=DataArrayDouble(1) ; arrZ.iota()
14642 m.setCoords(arrX,arrY,arrZ)
14643 self.assertEqual(2,m.getMeshDimension())
14644 self.assertEqual(3,m.getSpaceDimension())
14645 mu=m.buildUnstructured()
14646 self.assertTrue(mu.getNodalConnectivity().isEqual(DataArrayInt([4,1,0,3,4,4,2,1,4,5,4,4,3,6,7,4,5,4,7,8,4,7,6,9,10,4,8,7,10,11])))
14647 self.assertTrue(mu.getNodalConnectivityIndex().isEqual(DataArrayInt([0,5,10,15,20,25,30])))
14648 coo0=DataArrayDouble([(0,0,0),(1,0,0),(2,0,0),(0,1,0),(1,1,0),(2,1,0),(0,2,0),(1,2,0),(2,2,0),(0,3,0),(1,3,0),(2,3,0)])
14649 self.assertTrue(mu.getCoords().isEqual(coo0,1e-12))
14651 m=MEDCouplingCMesh()
14652 arrX=DataArrayDouble(3) ; arrX.iota()
14653 arrY=DataArrayDouble(1) ; arrY.iota()
14654 arrZ=DataArrayDouble(4) ; arrZ.iota()
14655 m.setCoords(arrX,arrY,arrZ)
14656 self.assertEqual(2,m.getMeshDimension())
14657 self.assertEqual(3,m.getSpaceDimension())
14658 mu=m.buildUnstructured()
14659 self.assertTrue(mu.getNodalConnectivity().isEqual(DataArrayInt([4,1,0,3,4,4,2,1,4,5,4,4,3,6,7,4,5,4,7,8,4,7,6,9,10,4,8,7,10,11])))
14660 self.assertTrue(mu.getNodalConnectivityIndex().isEqual(DataArrayInt([0,5,10,15,20,25,30])))
14661 coo1=DataArrayDouble([(0,0,0),(1,0,0),(2,0,0),(0,0,1),(1,0,1),(2,0,1),(0,0,2),(1,0,2),(2,0,2),(0,0,3),(1,0,3),(2,0,3)])
14662 self.assertTrue(mu.getCoords().isEqual(coo1,1e-12))
14664 m=MEDCouplingCMesh()
14665 arrX=DataArrayDouble(1) ; arrX.iota() ; arrX+=9
14666 arrY=DataArrayDouble(3) ; arrY.iota()
14667 arrZ=DataArrayDouble(4) ; arrZ.iota()
14668 m.setCoords(arrX,arrY,arrZ)
14669 self.assertEqual(2,m.getMeshDimension())
14670 self.assertEqual(3,m.getSpaceDimension())
14671 mu=m.buildUnstructured()
14672 self.assertTrue(mu.getNodalConnectivity().isEqual(DataArrayInt([4,1,0,3,4,4,2,1,4,5,4,4,3,6,7,4,5,4,7,8,4,7,6,9,10,4,8,7,10,11])))
14673 self.assertTrue(mu.getNodalConnectivityIndex().isEqual(DataArrayInt([0,5,10,15,20,25,30])))
14674 coo2=DataArrayDouble([(9,0,0),(9,1,0),(9,2,0),(9,0,1),(9,1,1),(9,2,1),(9,0,2),(9,1,2),(9,2,2),(9,0,3),(9,1,3),(9,2,3)])
14675 self.assertTrue(mu.getCoords().isEqual(coo2,1e-12))
14677 m=MEDCouplingCMesh()
14678 arrX=DataArrayDouble(3) ; arrX.iota()
14679 arrY=DataArrayDouble(1) ; arrY.iota(7)
14680 arrZ=DataArrayDouble(1) ; arrZ.iota(8)
14681 m.setCoords(arrX,arrY,arrZ)
14682 self.assertEqual(1,m.getMeshDimension())
14683 self.assertEqual(3,m.getSpaceDimension())
14684 mu=m.buildUnstructured()
14685 self.assertTrue(mu.getNodalConnectivity().isEqual(DataArrayInt([1,0,1,1,1,2])))
14686 self.assertTrue(mu.getNodalConnectivityIndex().isEqual(DataArrayInt([0,3,6])))
14687 coo3=DataArrayDouble([(0,7,8),(1,7,8),(2,7,8)])
14688 self.assertTrue(mu.getCoords().isEqual(coo3,1e-12))
14690 m=MEDCouplingCMesh()
14691 arrX=DataArrayDouble(1) ; arrX.iota(7)
14692 arrY=DataArrayDouble(1) ; arrY.iota(8)
14693 arrZ=DataArrayDouble(3) ; arrZ.iota()
14694 m.setCoords(arrX,arrY,arrZ)
14695 self.assertEqual(1,m.getMeshDimension())
14696 self.assertEqual(3,m.getSpaceDimension())
14697 mu=m.buildUnstructured()
14698 self.assertTrue(mu.getNodalConnectivity().isEqual(DataArrayInt([1,0,1,1,1,2])))
14699 self.assertTrue(mu.getNodalConnectivityIndex().isEqual(DataArrayInt([0,3,6])))
14700 coo4=DataArrayDouble([(7,8,0),(7,8,1),(7,8,2)])
14701 self.assertTrue(mu.getCoords().isEqual(coo4,1e-12))
14703 m=MEDCouplingCMesh()
14704 arrX=DataArrayDouble(3) ; arrX.iota()
14705 arrY=DataArrayDouble(1) ; arrY.iota(7)
14706 m.setCoords(arrX,arrY)
14707 self.assertEqual(1,m.getMeshDimension())
14708 self.assertEqual(2,m.getSpaceDimension())
14709 mu=m.buildUnstructured()
14710 self.assertTrue(mu.getNodalConnectivity().isEqual(DataArrayInt([1,0,1,1,1,2])))
14711 self.assertTrue(mu.getNodalConnectivityIndex().isEqual(DataArrayInt([0,3,6])))
14712 coo5=DataArrayDouble([(0,7),(1,7),(2,7)])
14713 self.assertTrue(mu.getCoords().isEqual(coo5,1e-12))
14715 m=MEDCouplingCMesh()
14716 arrX=DataArrayDouble(1) ; arrX.iota(7)
14717 arrY=DataArrayDouble(3) ; arrY.iota()
14718 m.setCoords(arrX,arrY)
14719 self.assertEqual(1,m.getMeshDimension())
14720 self.assertEqual(2,m.getSpaceDimension())
14721 mu=m.buildUnstructured()
14722 self.assertTrue(mu.getNodalConnectivity().isEqual(DataArrayInt([1,0,1,1,1,2])))
14723 self.assertTrue(mu.getNodalConnectivityIndex().isEqual(DataArrayInt([0,3,6])))
14724 coo6=DataArrayDouble([(7,0),(7,1),(7,2)])
14725 self.assertTrue(mu.getCoords().isEqual(coo6,1e-12))
14728 def testSwig2Colinearize2D2(self):
14729 """ simple non regression test but that has revealed a bug"""
14730 coo=DataArrayDouble([(0,0),(0,0.5),(0,1),(1,1),(1,0),(0.5,0)])
14731 m=MEDCouplingUMesh("mesh",2) ; m.setCoords(coo)
14732 m.allocateCells() ; m.insertNextCell(NORM_POLYGON,[0,1,2,3,4,5])
14733 m.checkCoherency2()
14734 refPtr=m.getCoords().getHiddenCppPointer()
14736 m.colinearize2D(1e-12)
14737 m.checkCoherency2()
14738 self.assertEqual(refPtr,m.getCoords().getHiddenCppPointer())
14739 self.assertTrue(m.getNodalConnectivity().isEqual(DataArrayInt([5,0,2,3,4])))
14740 self.assertTrue(m.getNodalConnectivityIndex().isEqual(DataArrayInt([0,5])))
14743 def testSwig2CheckAndPreparePermutation2(self):
14744 a=DataArrayInt([10003,9999999,5,67])
14745 self.assertTrue(DataArrayInt.CheckAndPreparePermutation(a).isEqual(DataArrayInt([2,3,0,1])))
14746 a=DataArrayInt([10003,-9999999,5,67])
14747 self.assertTrue(DataArrayInt.CheckAndPreparePermutation(a).isEqual(DataArrayInt([3,0,1,2])))
14749 self.assertTrue(DataArrayInt.checkAndPreparePermutation(a).isEqual(DataArrayInt([])))
14752 def testSwig2ComputeNeighborsOfNodes1(self):
14753 arrX=DataArrayDouble(3) ; arrX.iota()
14754 arrY=DataArrayDouble(4) ; arrY.iota()
14755 arrZ=DataArrayDouble(5) ; arrZ.iota()
14756 m=MEDCouplingCMesh() ; m.setCoords(arrX,arrY,arrZ) ; m=m.buildUnstructured()
14758 a,b=m.computeNeighborsOfNodes()
14759 self.assertTrue(a.isEqual(DataArrayInt([1,3,12,0,4,13,2,1,5,14,0,4,15,6,3,1,16,5,7,4,2,17,8,3,7,18,9,6,4,19,8,10,7,5,20,11,6,10,21,9,7,22,11,10,8,23,13,15,0,24,12,16,1,14,25,13,17,2,26,12,16,3,18,27,15,13,4,17,19,28,16,14,5,20,29,15,19,6,21,30,18,16,7,20,22,31,19,17,8,23,32,18,22,9,33,21,19,10,23,34,22,20,11,35,25,27,12,36,24,28,13,26,37,25,29,14,38,24,28,15,30,39,27,25,16,29,31,40,28,26,17,32,41,27,31,18,33,42,30,28,19,32,34,43,31,29,20,35,44,30,34,21,45,33,31,22,35,46,34,32,23,47,37,39,24,48,36,40,25,38,49,37,41,26,50,36,40,27,42,51,39,37,28,41,43,52,40,38,29,44,53,39,43,30,45,54,42,40,31,44,46,55,43,41,32,47,56,42,46,33,57,45,43,34,47,58,46,44,35,59,49,51,36,48,52,37,50,49,53,38,48,52,39,54,51,49,40,53,55,52,50,41,56,51,55,42,57,54,52,43,56,58,55,53,44,59,54,58,45,57,55,46,59,58,56,47])))
14760 self.assertTrue(b.isEqual(DataArrayInt([0,3,7,10,14,19,23,27,32,36,39,43,46,50,55,59,64,70,75,80,86,91,95,100,104,108,113,117,122,128,133,138,144,149,153,158,162,166,171,175,180,186,191,196,202,207,211,216,220,223,227,230,234,239,243,247,252,256,259,263,266])))
14762 m=MEDCouplingCMesh() ; m.setCoords(arrX,arrY) ; m=m.buildUnstructured()
14763 a,b=m.computeNeighborsOfNodes()
14764 self.assertTrue(a.isEqual(DataArrayInt([1,3,0,4,2,1,5,0,4,6,3,1,5,7,4,2,8,3,7,9,6,4,8,10,7,5,11,6,10,9,7,11,10,8])))
14765 self.assertTrue(b.isEqual(DataArrayInt([0,2,5,7,10,14,17,20,24,27,29,32,34])))
14767 m=m.buildDescendingConnectivity()[0]
14768 a,b=m.computeNeighborsOfNodes()
14769 self.assertTrue(a.isEqual(DataArrayInt([1,3,0,4,2,1,5,0,4,6,3,1,5,7,4,2,8,3,7,9,6,4,8,10,7,5,11,6,10,9,7,11,10,8])))
14770 self.assertTrue(b.isEqual(DataArrayInt([0,2,5,7,10,14,17,20,24,27,29,32,34])))
14773 def testSwigBugOnUnpackingTuplesInDataArray1(self):
14774 inp=DataArrayDouble([(1,2,3),(4,5,6),(7,8,9),(10,11,12)])
14777 self.assertRaises(StopIteration,r.__getitem__,4)
14778 self.assertEqual(len(r),3)
14781 self.assertEqual(len(r),3)
14784 self.assertEqual(len(r),3)
14787 self.assertEqual(len(r),3)
14789 self.assertTrue(inp.isEqual(DataArrayDouble([a,b,c,d,e,f,g,h,i,j,k,l],4,3),1e-12))
14791 inp=DataArrayInt([(1,2,3),(4,5,6),(7,8,9),(10,11,12)])
14794 self.assertRaises(StopIteration,r.__getitem__,4)
14795 self.assertEqual(len(r),3)
14798 self.assertEqual(len(r),3)
14801 self.assertEqual(len(r),3)
14804 self.assertEqual(len(r),3)
14806 self.assertTrue(inp.isEqual(DataArrayInt([a,b,c,d,e,f,g,h,i,j,k,l],4,3)))
14809 def testSwig2IMesh1(self):
14810 """ 1st test of image grid mesh.
14812 m=MEDCouplingIMesh()
14813 self.assertEqual(m.getSpaceDimension(),-1)
14814 self.assertEqual(1,len(m.__repr__().split("\n")))
14815 self.assertEqual(6,len(m.__str__().split("\n")))
14816 self.assertRaises(InterpKernelException,m.getNodeStruct)
14817 self.assertRaises(InterpKernelException,m.getOrigin)
14818 self.assertRaises(InterpKernelException,m.getDXYZ)
14819 m.setSpaceDimension(3)
14820 self.assertEqual(9,len(m.__str__().split("\n")))
14821 self.assertEqual(4,len(m.__repr__().split("\n")))
14822 self.assertEqual((0,0,0),m.getNodeStruct())
14823 self.assertEqual((0.,0.,0.),m.getOrigin())
14824 self.assertEqual((0.,0.,0.),m.getDXYZ())
14825 self.assertRaises(InterpKernelException,m.setNodeStruct,[3,4])
14826 m.setNodeStruct([3,4,2])
14827 self.assertEqual((3,4,2),m.getNodeStruct())
14828 m.setOrigin(DataArrayDouble([1.5,2.5,3.5]))
14829 self.assertEqual((1.5,2.5,3.5),m.getOrigin())
14830 m.setDXYZ((0.5,1.,0.25))
14831 self.assertEqual((0.5,1.,0.25),m.getDXYZ())
14832 for it in DataArrayDouble([(1.5,2.5,3.5)]):
14833 m2=MEDCouplingIMesh("",3,DataArrayInt([3,4,2]),it,DataArrayDouble((0.5,1.,0.25)))
14835 self.assertEqual(3,m.getSpaceDimension())
14836 self.assertEqual((3,4,2),m2.getNodeStruct())
14837 self.assertEqual((1.5,2.5,3.5),m2.getOrigin())
14838 self.assertEqual((0.5,1.,0.25),m2.getDXYZ())
14839 self.assertEqual(24,m2.getNumberOfNodes())
14840 self.assertEqual(6,m2.getNumberOfCells())
14841 self.assertTrue(m.isEqual(m2,1e-12)) ; self.assertTrue(m.isEqualWithoutConsideringStr(m2,1e-12))
14842 m2.setAxisUnit("m")
14843 self.assertTrue(not m.isEqual(m2,1e-12)) ; self.assertTrue(m.isEqualWithoutConsideringStr(m2,1e-12))
14845 self.assertTrue(m.isEqual(m2,1e-12)) ; self.assertTrue(m.isEqualWithoutConsideringStr(m2,1e-12))
14847 self.assertTrue(not m.isEqual(m2,1e-12)) ; self.assertTrue(m.isEqualWithoutConsideringStr(m2,1e-12))
14849 self.assertTrue(m.isEqual(m2,1e-12)) ; self.assertTrue(m.isEqualWithoutConsideringStr(m2,1e-12))
14850 m2.setTime(1.1,0,3)
14851 self.assertTrue(not m.isEqual(m2,1e-12))
14853 self.assertTrue(m.isEqual(m2,1e-12))
14854 m.setTimeUnit("ms")
14855 self.assertTrue(not m.isEqual(m2,1e-12)) ; self.assertTrue(m.isEqualWithoutConsideringStr(m2,1e-12))
14856 m2.setTimeUnit("ms")
14857 self.assertTrue(m.isEqual(m2,1e-12)) ; self.assertTrue(m.isEqualWithoutConsideringStr(m2,1e-12))
14859 m2.setNodeStruct([3,2,4])
14860 self.assertTrue(not m.isEqual(m2,1e-12))
14861 m.setNodeStruct([3,2,4])
14862 self.assertTrue(m.isEqual(m2,1e-12))
14863 m.setOrigin(DataArrayDouble([1.5,3.5,2.5]))
14864 self.assertTrue(not m.isEqual(m2,1e-12))
14865 m2.setOrigin([1.5,3.5,2.5])
14866 self.assertTrue(m.isEqual(m2,1e-12))
14867 m.setDXYZ((0.5,0.25,1.))
14868 self.assertTrue(not m.isEqual(m2,1e-12))
14869 m2.setDXYZ(DataArrayDouble((0.5,0.25,1.)))
14870 self.assertTrue(m.isEqual(m2,1e-12))
14872 self.assertTrue(m2bis.isEqual(m2,1e-12))
14874 self.assertEqual(6,m2bis.getNumberOfCells())#3,2,4
14875 m2bis.refineWithFactor([3,3,3])
14876 self.assertEqual(162,m2bis.getNumberOfCells())
14877 self.assertEqual((7,4,10),m2bis.getNodeStruct())
14878 self.assertEqual((1.5,3.5,2.5),m2bis.getOrigin())
14879 self.assertTrue(DataArrayDouble([0.16666666666666666,0.08333333333333333,0.3333333333333333]).isEqual(DataArrayDouble(m2bis.getDXYZ()),1e-12))
14881 self.assertEqual(3,m.getMeshDimension())
14882 self.assertAlmostEqual(0.125,m.getMeasureOfAnyCell(),16);
14883 mu=MEDCoupling1SGTUMesh(m.buildUnstructured())
14884 mu.checkCoherency2()
14885 cooExp=DataArrayDouble([(1.5,3.5,2.5),(2,3.5,2.5),(2.5,3.5,2.5),(1.5,3.75,2.5),(2,3.75,2.5),(2.5,3.75,2.5),(1.5,3.5,3.5),(2,3.5,3.5),(2.5,3.5,3.5),(1.5,3.75,3.5),(2,3.75,3.5),(2.5,3.75,3.5),(1.5,3.5,4.5),(2,3.5,4.5),(2.5,3.5,4.5),(1.5,3.75,4.5),(2,3.75,4.5),(2.5,3.75,4.5),(1.5,3.5,5.5),(2,3.5,5.5),(2.5,3.5,5.5),(1.5,3.75,5.5),(2,3.75,5.5),(2.5,3.75,5.5)]) ; cooExp.setInfoOnComponents(["X [m]","Y [m]","Z [m]"])
14886 self.assertTrue(isinstance(mu,MEDCoupling1SGTUMesh))
14887 self.assertEqual(NORM_HEXA8,mu.getCellModelEnum())
14888 self.assertTrue(mu.getCoords().isEqual(cooExp,1e-12))
14889 self.assertTrue(mu.getNodalConnectivity().isEqual(DataArrayInt([1,0,3,4,7,6,9,10,2,1,4,5,8,7,10,11,7,6,9,10,13,12,15,16,8,7,10,11,14,13,16,17,13,12,15,16,19,18,21,22,14,13,16,17,20,19,22,23])))
14890 bary=m.getBarycenterAndOwner()
14891 baryExp=DataArrayDouble([(1.75,3.625,3),(2.25,3.625,3),(1.75,3.625,4),(2.25,3.625,4),(1.75,3.625,5),(2.25,3.625,5)]) ; baryExp.setInfoOnComponents(["X [m]","Y [m]","Z [m]"])
14892 self.assertTrue(bary.isEqual(baryExp,1e-12))
14894 c=m.convertToCartesian()
14896 self.assertEqual([1.1,0,3],c.getTime())
14897 self.assertEqual("ms",c.getTimeUnit())
14898 self.assertEqual(3,c.getMeshDimension())
14899 self.assertEqual(3,c.getSpaceDimension())
14900 arrX=DataArrayDouble([1.5,2.,2.5]) ; arrX.setInfoOnComponents(["X [m]"])
14901 self.assertTrue(c.getCoordsAt(0).isEqual(arrX,1e-12))
14902 arrY=DataArrayDouble([3.5,3.75]) ; arrY.setInfoOnComponents(["Y [m]"])
14903 self.assertTrue(c.getCoordsAt(1).isEqual(arrY,1e-12))
14904 arrZ=DataArrayDouble([2.5,3.5,4.5,5.5]) ; arrZ.setInfoOnComponents(["Z [m]"])
14905 self.assertTrue(c.getCoordsAt(2).isEqual(arrZ,1e-12))
14906 self.assertTrue(c.buildUnstructured().isEqual(m.buildUnstructured(),1e-12))
14908 a,b=m.getCellsContainingPoints(baryExp,1e-12)
14909 self.assertTrue(a.isEqual(DataArrayInt([0,1,2,3,4,5])))
14910 self.assertTrue(b.isEqual(DataArrayInt([0,1,2,3,4,5,6])))
14911 for a,b in enumerate(baryExp):
14912 self.assertEqual(a,m.getCellContainingPoint(b,1e-12))
14915 m.translate([1.,2.,4.])
14916 self.assertEqual((3,2,4),m.getNodeStruct())
14917 self.assertEqual((2.5,5.5,6.5),m.getOrigin())
14918 self.assertEqual((0.5,0.25,1.),m.getDXYZ())
14919 m.scale([0.,1.,3.],2.)
14920 self.assertAlmostEqual(1.,m.getMeasureOfAnyCell(),16);
14921 self.assertEqual((3,2,4),m.getNodeStruct())
14922 self.assertEqual((5.,10.,10.),m.getOrigin())
14923 self.assertEqual((1.,0.5,2.),m.getDXYZ())
14925 f=m.getMeasureField(False)
14926 f2=MEDCouplingFieldDouble(ON_CELLS) ; f2.setTime(1.1,0,3) ; f2.setMesh(m) ; arr=DataArrayDouble(6) ; arr[:]=1. ; f2.setArray(arr) ; f2.setTimeUnit("ms")
14927 f2.setName("MeasureOfMesh_mesh")
14928 self.assertTrue(f.isEqual(f2,1e-12,1e-12))
14930 m3=m.buildStructuredSubPart([(1,2),(0,1),(1,3)])
14931 self.assertEqual((2,2,3),m3.getNodeStruct())
14932 self.assertEqual((6.,10.,12.),m3.getOrigin())
14933 self.assertEqual((1.,0.5,2.),m3.getDXYZ())
14934 # now playing with 3D surf
14935 m4=MEDCouplingIMesh("",3,DataArrayInt([3,1,4]),DataArrayDouble([1.5,2.5,3.5]),DataArrayDouble((0.5,1.,0.25))) ; m4.setAxisUnit("km")
14936 self.assertEqual([(1.5,2.5),(2.5,3.5),(3.5,4.25)],m4.getBoundingBox())
14937 self.assertEqual(3,m4.getSpaceDimension())
14938 self.assertEqual(2,m4.getMeshDimension())
14939 self.assertEqual(12,m4.getNumberOfNodes())
14940 self.assertEqual(6,m4.getNumberOfCells())
14941 mu=MEDCoupling1SGTUMesh(m4.buildUnstructured())
14942 mu.checkCoherency2()
14943 self.assertTrue(isinstance(mu,MEDCoupling1SGTUMesh))
14944 self.assertEqual(NORM_QUAD4,mu.getCellModelEnum())
14945 coordsExp=DataArrayDouble([(1.5,2.5,3.5),(2,2.5,3.5),(2.5,2.5,3.5),(1.5,2.5,3.75),(2,2.5,3.75),(2.5,2.5,3.75),(1.5,2.5,4),(2,2.5,4),(2.5,2.5,4),(1.5,2.5,4.25),(2,2.5,4.25),(2.5,2.5,4.25)]) ; coordsExp.setInfoOnComponents(["X [km]","Y [km]","Z [km]"])
14946 self.assertTrue(mu.getCoords().isEqual(coordsExp,1e-12))
14947 self.assertTrue(mu.getNodalConnectivity().isEqual(DataArrayInt([1,0,3,4,2,1,4,5,4,3,6,7,5,4,7,8,7,6,9,10,8,7,10,11])))
14950 def testSwig1GetValuesAsTuple1(self):
14951 d=DataArrayDouble()
14952 self.assertEqual(d.getValues(),[])
14953 self.assertEqual(d.getValuesAsTuple(),[])
14954 d=DataArrayDouble(24) ; d.iota() ; d.rearrange(3)
14955 self.assertEqual(d.getValues(),[0.,1.,2.,3.,4.,5.,6.,7.,8.,9.,10.,11.,12.,13.,14.,15.,16.,17.,18.,19.,20.,21.,22.,23.])
14956 self.assertEqual(d.getValuesAsTuple(),[(0.,1.,2.0),(3.,4.,5.0),(6.,7.,8.0),(9.,10.,11.0),(12.,13.,14.0),(15.,16.,17.0),(18.,19.,20.0),(21.,22.,23.)])
14958 self.assertEqual(d.getValues(),[])
14959 self.assertEqual(d.getValuesAsTuple(),[])
14960 d=DataArrayInt(24) ; d.iota() ; d.rearrange(3)
14961 self.assertEqual(d.getValues(),[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23])
14962 self.assertEqual(d.getValuesAsTuple(),[(0,1,2),(3,4,5),(6,7,8),(9,10,11),(12,13,14),(15,16,17),(18,19,20),(21,22,23)])
14965 def testSwig2AMR1(self):
14966 self.assertEqual((1,3,12),MEDCouplingStructuredMesh.GetSplitVectFromStruct([3,4,5]))
14967 self.assertEqual((3,2),MEDCouplingStructuredMesh.GetDimensionsFromCompactFrmt([(1,4),(2,4)]))
14969 amr=MEDCouplingCartesianAMRMesh("",2,[3,3],[0,0],[1,1])
14970 self.assertEqual(4,amr.getNumberOfCellsAtCurrentLevel())
14971 self.assertEqual(4,amr.getNumberOfCellsRecursiveWithOverlap())
14972 self.assertEqual(4,amr.getNumberOfCellsRecursiveWithoutOverlap())
14973 self.assertEqual(0,amr.getNumberOfPatches())
14974 self.assertEqual(1,amr.getMaxNumberOfLevelsRelativeToThis())
14975 self.assertEqual(2,amr.getSpaceDimension())
14976 amr.addPatch([(1,2),(0,1)],[4,4])
14977 self.assertEqual(4,amr.getNumberOfCellsAtCurrentLevel())
14978 self.assertEqual(20,amr.getNumberOfCellsRecursiveWithOverlap())
14979 self.assertEqual(19,amr.getNumberOfCellsRecursiveWithoutOverlap())
14980 self.assertEqual(1,amr.getNumberOfPatches())
14981 self.assertEqual(2,amr.getMaxNumberOfLevelsRelativeToThis())
14982 self.assertEqual(2,amr.getSpaceDimension())
14983 amr[0].addPatch([(2,3),(1,3)],[3,2])
14984 self.assertEqual(amr[0].getBLTRRange(),[(1,2),(0,1)])
14985 self.assertEqual(4,amr.getNumberOfCellsAtCurrentLevel())
14986 self.assertEqual(32,amr.getNumberOfCellsRecursiveWithOverlap())
14987 self.assertEqual(29,amr.getNumberOfCellsRecursiveWithoutOverlap())
14988 self.assertEqual(1,amr.getNumberOfPatches())
14989 self.assertEqual(3,amr.getMaxNumberOfLevelsRelativeToThis())
14990 self.assertEqual(2,amr.getSpaceDimension())
14991 amr[0].addPatch([(0,2),(3,4)],[3,2])
14992 self.assertEqual(16,amr[0].getMesh().getNumberOfCellsAtCurrentLevel())
14993 self.assertEqual(44,amr.getNumberOfCellsRecursiveWithOverlap())
14994 self.assertEqual(39,amr.getNumberOfCellsRecursiveWithoutOverlap())
14995 self.assertEqual(2,amr[0].getMesh().getNumberOfPatches())
14996 self.assertEqual(3,amr.getMaxNumberOfLevelsRelativeToThis())
14997 self.assertEqual(2,amr.getSpaceDimension())
14999 self.assertEqual(amr[0].getBLTRRange(),[(1,2),(0,1)])
15000 self.assertEqual(4,amr.getNumberOfCellsAtCurrentLevel())
15001 self.assertEqual(32,amr.getNumberOfCellsRecursiveWithOverlap())
15002 self.assertEqual(29,amr.getNumberOfCellsRecursiveWithoutOverlap())
15003 self.assertEqual(1,amr.getNumberOfPatches())
15004 self.assertEqual(3,amr.getMaxNumberOfLevelsRelativeToThis())
15005 self.assertEqual(2,amr.getSpaceDimension())
15008 def testSwig2NonRegressionTestPAL1164(self):
15009 """ Test PAL1164 Protection of applyLin against error in compoId ( #CEA22584 ) """
15010 xarr=DataArrayDouble(3,1)
15012 cmesh=MEDCouplingCMesh()
15013 cmesh.setCoords(xarr,xarr,xarr)
15014 mesh=cmesh.buildUnstructured()
15015 f=mesh.fillFromAnalytic(ON_CELLS,1,"(x-5.)*(x-5.)+(y-5.)*(y-5.)+(z-5.)*(z-5.)")
15016 f.setName("MyField")
15017 self.assertTrue(f.getArray().isEqual(DataArrayDouble([60.75,52.75,52.75,44.75,52.75,44.75,44.75,36.75]),1e-12))
15018 self.assertRaises(InterpKernelException,f.applyLin,2.,0.,1)# compoId 1 whereas f has only one component !
15019 self.assertTrue(f.getArray().isEqual(DataArrayDouble([60.75,52.75,52.75,44.75,52.75,44.75,44.75,36.75]),1e-12))
15020 f.applyLin(2.,0.,0)# here it is OK !
15021 self.assertTrue(f.getArray().isEqual(DataArrayDouble([121.5,105.5,105.5,89.5,105.5,89.5,89.5,73.5]),1e-12))
15023 self.assertTrue(f.getArray().isEqual(DataArrayDouble([243.,211.,211.,179.,211.,179.,179.,147.]),1e-12))
15026 def testSwig2StructurizeMe1(self):
15027 arrx=DataArrayDouble(3) ; arrx.iota() ; arrx*=2.
15028 arry=DataArrayDouble(4) ; arry.iota() ; arry+=3.
15029 arrz=DataArrayDouble(5) ; arrz.iota() ; arrz*=0.5 ; arrz+=2.
15030 c=MEDCouplingCMesh() ; c.setCoords(arrx,arry,arrz)
15031 c.setName("mesh") ; c.setDescription("mesh descr") ; c.setTimeUnit("us") ; c.setTime(1.2,3,4)
15032 u=c.buildUnstructured()
15033 cp=DataArrayInt([3,5,6,1,0,9,8,7,12,11,16,10,17,23,22,21,19,20,18,14,13,2,4,15])
15034 np=DataArrayInt([3,33,5,35,6,36,1,31,0,30,9,39,8,38,7,37,12,42,11,41,16,46,10,40,17,47,23,53,22,52,21,51,19,49,20,50,18,48,14,44,13,43,2,32,4,34,15,45,29,59,28,58,27,57,26,56,25,55,24,54])
15035 u.renumberCells(cp)
15036 u.renumberNodes(np,len(np))
15037 u=MEDCoupling1SGTUMesh(u)
15039 e,d,f=u.structurizeMe()
15040 self.assertTrue(c.isEqual(e,1e-12))
15041 self.assertTrue(d.isEqual(cp))
15042 self.assertTrue(f.isEqual(np))
15045 def testSwig2DenseMatrix1(self):
15046 m0=DenseMatrix(DataArrayDouble([2,3,4,5,1,6]),2,3)
15047 self.assertEqual(m0.getNumberOfRows(),2)
15048 self.assertEqual(m0.getNumberOfCols(),3)
15049 self.assertEqual(m0.getNbOfElems(),6)
15050 ref=m0.getData().getHiddenCppPointer()
15052 self.assertTrue(m0.isEqual(m00,1e-12))
15053 m00.getData().setIJ(0,0,2.1)
15054 self.assertTrue(not m0.isEqual(m00,1e-12))
15055 m00.getData().setIJ(0,0,2.)
15056 self.assertTrue(m0.isEqual(m00,1e-12))
15057 self.assertTrue(m0.getData().isEqual(DataArrayDouble([2,3,4,5,1,6]),1e-12))
15059 m000=m0*DataArrayDouble([5,9,3])
15060 self.assertTrue(m000.getData().isEqual(DataArrayDouble([49.,52.]),1e-12))
15063 self.assertTrue(not m0.isEqual(m00,1e-12))
15064 self.assertEqual(m0.getNumberOfRows(),3)
15065 self.assertEqual(m0.getNumberOfCols(),2)
15066 self.assertEqual(ref,m0.getData().getHiddenCppPointer())
15067 self.assertTrue(m0.getData().isEqual(DataArrayDouble([2,3,4,5,1,6]),1e-12))
15069 self.assertTrue(m0.isEqual(m00,1e-12))
15070 self.assertEqual(ref,m0.getData().getHiddenCppPointer())
15071 self.assertEqual(m0.getNumberOfRows(),2)
15072 self.assertEqual(m0.getNumberOfCols(),3)
15073 self.assertTrue(m0.getData().isEqual(DataArrayDouble([2,3,4,5,1,6]),1e-12))
15074 #m0np=m0.getData().toNumPyArray() ; m0np=matrix(m0np.reshape(m0.getNumberOfRows(),m0.getNumberOfCols()))
15076 self.assertEqual(m1.getNumberOfRows(),2)
15077 self.assertEqual(m1.getNumberOfCols(),3)
15078 self.assertTrue(m1.getData().isEqual(DataArrayDouble([2,3,4,5,1,6]),1e-12))
15079 m11=m0.deepCpy() ; m11+=m1
15080 self.assertEqual(m11.getNumberOfRows(),2)
15081 self.assertEqual(m11.getNumberOfCols(),3)
15082 self.assertTrue(m11.getData().isEqual(DataArrayDouble([4,6,8,10,2,12]),1e-12))
15084 self.assertEqual(m11.getNumberOfRows(),2)
15085 self.assertEqual(m11.getNumberOfCols(),3)
15086 self.assertTrue(m11.getData().isEqual(DataArrayDouble([6,9,12,15,3,18]),1e-12))
15088 self.assertEqual(m11.getNumberOfRows(),2)
15089 self.assertEqual(m11.getNumberOfCols(),3)
15090 self.assertTrue(m11.getData().isEqual(DataArrayDouble([4,6,8,10,2,12]),1e-12))
15092 self.assertEqual(m1.getNumberOfRows(),2)
15093 self.assertEqual(m1.getNumberOfCols(),3)
15094 self.assertTrue(m1.getData().isEqual(DataArrayDouble([2,3,4,5,1,6]),1e-12))
15096 self.assertEqual(m1.getNumberOfRows(),3)
15097 self.assertEqual(m1.getNumberOfCols(),2)
15098 self.assertTrue(m1.getData().isEqual(DataArrayDouble([2,5,3,1,4,6]),1e-12))
15099 #m1np=m0np.transpose()
15101 self.assertEqual(m2.getNumberOfRows(),2)
15102 self.assertEqual(m2.getNumberOfCols(),2)
15103 self.assertTrue(m2.getData().isEqual(DataArrayDouble([29,37,37,62]),1e-12))
15106 def testSwig2AMR2(self):
15107 """ Test condensation of fine IMesh instance into a coarse one, with a factor. See testRemapperAMR1 in MEDCouplingRemapperTest.py file to see how the expected value is obtained."""
15108 coarse=DataArrayDouble(35) ; coarse.iota(0) #X=5,Y=7
15109 fine=DataArrayDouble(3*2*4*4) ; fine.iota(0) #X=3,Y=2 refined by 4
15110 MEDCouplingIMesh.CondenseFineToCoarse([5,7],fine,[(1,4),(2,4)],[4,4],coarse)
15111 self.assertTrue(coarse.isEqual(DataArrayDouble([0,1,2,3,4,5,6,7,8,9,10,312,376,440,14,15,1080,1144,1208,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34]),1e-12))
15113 coarse=DataArrayDouble(175) ; coarse.iota(0) #X=5,Y=7,Z=5
15114 fine=DataArrayDouble(3*2*3*4*4*4) ; fine.iota(0) #X=3,Y=2,Z=3 refined by 4
15115 MEDCouplingIMesh.CondenseFineToCoarse([5,7,5],fine,[(1,4),(2,4),(1,4)],[4,4,4],coarse)
15116 self.assertTrue(coarse.isEqual(DataArrayDouble([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.,32.,33.,34.,35.,36.,37.,38.,39.,40.,41.,42.,43.,44.,45.,10464.,10720.,10976.,49.,50.,13536.,13792.,14048.,54.,55.,56.,57.,58.,59.,60.,61.,62.,63.,64.,65.,66.,67.,68.,69.,70.,71.,72.,73.,74.,75.,76.,77.,78.,79.,80.,35040.,35296.,35552.,84.,85.,38112.,38368.,38624.,89.,90.,91.,92.,93.,94.,95.,96.,97.,98.,99.,100.,101.,102.,103.,104.,105.,106.,107.,108.,109.,110.,111.,112.,113.,114.,115.,59616.,59872.,60128.,119.,120.,62688.,62944.,63200.,124.,125.,126.,127.,128.,129.,130.,131.,132.,133.,134.,135.,136.,137.,138.,139.,140.,141.,142.,143.,144.,145.,146.,147.,148.,149.,150.,151.,152.,153.,154.,155.,156.,157.,158.,159.,160.,161.,162.,163.,164.,165.,166.,167.,168.,169.,170.,171.,172.,173.,174.]),1e-12))
15118 coarse=DataArrayDouble(5) ; coarse.iota(0) #X=5
15119 fine=DataArrayDouble(3*4) ; fine.iota(0) #X=3 refined by 4
15120 MEDCouplingIMesh.CondenseFineToCoarse([5],fine,[(1,4)],[4],coarse)
15121 self.assertTrue(coarse.isEqual(DataArrayDouble([0,6,22,38,4]),1e-12))
15124 def testSwig2AMR3(self):
15125 """ Test spread of coarse IMesh instance into a fine one, with a factor."""
15126 coarse=DataArrayDouble(35) ; coarse.iota(0) #X=5,Y=7
15127 fine=DataArrayDouble(3*2*4*4) ; fine.iota(0) #X=3,Y=2 refined by 4
15128 MEDCouplingIMesh.SpreadCoarseToFine(coarse,[5,7],fine,[(1,4),(2,4)],[4,4])
15129 self.assertTrue(fine.isEqual(DataArrayDouble([11.,11.,11.,11.,12.,12.,12.,12.,13.,13.,13.,13.,11.,11.,11.,11.,12.,12.,12.,12.,13.,13.,13.,13.,11.,11.,11.,11.,12.,12.,12.,12.,13.,13.,13.,13.,11.,11.,11.,11.,12.,12.,12.,12.,13.,13.,13.,13.,16.,16.,16.,16.,17.,17.,17.,17.,18.,18.,18.,18.,16.,16.,16.,16.,17.,17.,17.,17.,18.,18.,18.,18.,16.,16.,16.,16.,17.,17.,17.,17.,18.,18.,18.,18.,16.,16.,16.,16.,17.,17.,17.,17.,18.,18.,18.,18.]),1e-12))
15131 coarse=DataArrayDouble(175) ; coarse.iota(0) #X=5,Y=7,Z=5
15132 fine=DataArrayDouble(3*2*3*4*4*4) ; fine.iota(0) #X=3,Y=2,Z=3 refined by 4
15133 MEDCouplingIMesh.SpreadCoarseToFine(coarse,[5,7,5],fine,[(1,4),(2,4),(1,4)],[4,4,4])
15134 self.assertTrue(fine.isEqual(DataArrayDouble([46.,46.,46.,46.,47.,47.,47.,47.,48.,48.,48.,48.,46.,46.,46.,46.,47.,47.,47.,47.,48.,48.,48.,48.,46.,46.,46.,46.,47.,47.,47.,47.,48.,48.,48.,48.,46.,46.,46.,46.,47.,47.,47.,47.,48.,48.,48.,48.,51.,51.,51.,51.,52.,52.,52.,52.,53.,53.,53.,53.,51.,51.,51.,51.,52.,52.,52.,52.,53.,53.,53.,53.,51.,51.,51.,51.,52.,52.,52.,52.,53.,53.,53.,53.,51.,51.,51.,51.,52.,52.,52.,52.,53.,53.,53.,53.,46.,46.,46.,46.,47.,47.,47.,47.,48.,48.,48.,48.,46.,46.,46.,46.,47.,47.,47.,47.,48.,48.,48.,48.,46.,46.,46.,46.,47.,47.,47.,47.,48.,48.,48.,48.,46.,46.,46.,46.,47.,47.,47.,47.,48.,48.,48.,48.,51.,51.,51.,51.,52.,52.,52.,52.,53.,53.,53.,53.,51.,51.,51.,51.,52.,52.,52.,52.,53.,53.,53.,53.,51.,51.,51.,51.,52.,52.,52.,52.,53.,53.,53.,53.,51.,51.,51.,51.,52.,52.,52.,52.,53.,53.,53.,53.,46.,46.,46.,46.,47.,47.,47.,47.,48.,48.,48.,48.,46.,46.,46.,46.,47.,47.,47.,47.,48.,48.,48.,48.,46.,46.,46.,46.,47.,47.,47.,47.,48.,48.,48.,48.,46.,46.,46.,46.,47.,47.,47.,47.,48.,48.,48.,48.,51.,51.,51.,51.,52.,52.,52.,52.,53.,53.,53.,53.,51.,51.,51.,51.,52.,52.,52.,52.,53.,53.,53.,53.,51.,51.,51.,51.,52.,52.,52.,52.,53.,53.,53.,53.,51.,51.,51.,51.,52.,52.,52.,52.,53.,53.,53.,53.,46.,46.,46.,46.,47.,47.,47.,47.,48.,48.,48.,48.,46.,46.,46.,46.,47.,47.,47.,47.,48.,48.,48.,48.,46.,46.,46.,46.,47.,47.,47.,47.,48.,48.,48.,48.,46.,46.,46.,46.,47.,47.,47.,47.,48.,48.,48.,48.,51.,51.,51.,51.,52.,52.,52.,52.,53.,53.,53.,53.,51.,51.,51.,51.,52.,52.,52.,52.,53.,53.,53.,53.,51.,51.,51.,51.,52.,52.,52.,52.,53.,53.,53.,53.,51.,51.,51.,51.,52.,52.,52.,52.,53.,53.,53.,53.,81.,81.,81.,81.,82.,82.,82.,82.,83.,83.,83.,83.,81.,81.,81.,81.,82.,82.,82.,82.,83.,83.,83.,83.,81.,81.,81.,81.,82.,82.,82.,82.,83.,83.,83.,83.,81.,81.,81.,81.,82.,82.,82.,82.,83.,83.,83.,83.,86.,86.,86.,86.,87.,87.,87.,87.,88.,88.,88.,88.,86.,86.,86.,86.,87.,87.,87.,87.,88.,88.,88.,88.,86.,86.,86.,86.,87.,87.,87.,87.,88.,88.,88.,88.,86.,86.,86.,86.,87.,87.,87.,87.,88.,88.,88.,88.,81.,81.,81.,81.,82.,82.,82.,82.,83.,83.,83.,83.,81.,81.,81.,81.,82.,82.,82.,82.,83.,83.,83.,83.,81.,81.,81.,81.,82.,82.,82.,82.,83.,83.,83.,83.,81.,81.,81.,81.,82.,82.,82.,82.,83.,83.,83.,83.,86.,86.,86.,86.,87.,87.,87.,87.,88.,88.,88.,88.,86.,86.,86.,86.,87.,87.,87.,87.,88.,88.,88.,88.,86.,86.,86.,86.,87.,87.,87.,87.,88.,88.,88.,88.,86.,86.,86.,86.,87.,87.,87.,87.,88.,88.,88.,88.,81.,81.,81.,81.,82.,82.,82.,82.,83.,83.,83.,83.,81.,81.,81.,81.,82.,82.,82.,82.,83.,83.,83.,83.,81.,81.,81.,81.,82.,82.,82.,82.,83.,83.,83.,83.,81.,81.,81.,81.,82.,82.,82.,82.,83.,83.,83.,83.,86.,86.,86.,86.,87.,87.,87.,87.,88.,88.,88.,88.,86.,86.,86.,86.,87.,87.,87.,87.,88.,88.,88.,88.,86.,86.,86.,86.,87.,87.,87.,87.,88.,88.,88.,88.,86.,86.,86.,86.,87.,87.,87.,87.,88.,88.,88.,88.,81.,81.,81.,81.,82.,82.,82.,82.,83.,83.,83.,83.,81.,81.,81.,81.,82.,82.,82.,82.,83.,83.,83.,83.,81.,81.,81.,81.,82.,82.,82.,82.,83.,83.,83.,83.,81.,81.,81.,81.,82.,82.,82.,82.,83.,83.,83.,83.,86.,86.,86.,86.,87.,87.,87.,87.,88.,88.,88.,88.,86.,86.,86.,86.,87.,87.,87.,87.,88.,88.,88.,88.,86.,86.,86.,86.,87.,87.,87.,87.,88.,88.,88.,88.,86.,86.,86.,86.,87.,87.,87.,87.,88.,88.,88.,88.,116.,116.,116.,116.,117.,117.,117.,117.,118.,118.,118.,118.,116.,116.,116.,116.,117.,117.,117.,117.,118.,118.,118.,118.,116.,116.,116.,116.,117.,117.,117.,117.,118.,118.,118.,118.,116.,116.,116.,116.,117.,117.,117.,117.,118.,118.,118.,118.,121.,121.,121.,121.,122.,122.,122.,122.,123.,123.,123.,123.,121.,121.,121.,121.,122.,122.,122.,122.,123.,123.,123.,123.,121.,121.,121.,121.,122.,122.,122.,122.,123.,123.,123.,123.,121.,121.,121.,121.,122.,122.,122.,122.,123.,123.,123.,123.,116.,116.,116.,116.,117.,117.,117.,117.,118.,118.,118.,118.,116.,116.,116.,116.,117.,117.,117.,117.,118.,118.,118.,118.,116.,116.,116.,116.,117.,117.,117.,117.,118.,118.,118.,118.,116.,116.,116.,116.,117.,117.,117.,117.,118.,118.,118.,118.,121.,121.,121.,121.,122.,122.,122.,122.,123.,123.,123.,123.,121.,121.,121.,121.,122.,122.,122.,122.,123.,123.,123.,123.,121.,121.,121.,121.,122.,122.,122.,122.,123.,123.,123.,123.,121.,121.,121.,121.,122.,122.,122.,122.,123.,123.,123.,123.,116.,116.,116.,116.,117.,117.,117.,117.,118.,118.,118.,118.,116.,116.,116.,116.,117.,117.,117.,117.,118.,118.,118.,118.,116.,116.,116.,116.,117.,117.,117.,117.,118.,118.,118.,118.,116.,116.,116.,116.,117.,117.,117.,117.,118.,118.,118.,118.,121.,121.,121.,121.,122.,122.,122.,122.,123.,123.,123.,123.,121.,121.,121.,121.,122.,122.,122.,122.,123.,123.,123.,123.,121.,121.,121.,121.,122.,122.,122.,122.,123.,123.,123.,123.,121.,121.,121.,121.,122.,122.,122.,122.,123.,123.,123.,123.,116.,116.,116.,116.,117.,117.,117.,117.,118.,118.,118.,118.,116.,116.,116.,116.,117.,117.,117.,117.,118.,118.,118.,118.,116.,116.,116.,116.,117.,117.,117.,117.,118.,118.,118.,118.,116.,116.,116.,116.,117.,117.,117.,117.,118.,118.,118.,118.,121.,121.,121.,121.,122.,122.,122.,122.,123.,123.,123.,123.,121.,121.,121.,121.,122.,122.,122.,122.,123.,123.,123.,123.,121.,121.,121.,121.,122.,122.,122.,122.,123.,123.,123.,123.,121.,121.,121.,121.,122.,122.,122.,122.,123.,123.,123.,123.]),1e-12))
15135 f=MEDCouplingFieldDouble(ON_CELLS) ; f.setMesh(MEDCouplingIMesh("",3,DataArrayInt([6,8,6]),[0.,0.,0.],DataArrayDouble((1.,1.,1.)))) ; f.setArray(coarse) ; f.setName("tutu") ; f.checkCoherency()
15136 f=MEDCouplingFieldDouble(ON_CELLS) ; f.setMesh(MEDCouplingIMesh("",3,DataArrayInt([13,9,13]),[1.,2.,1.],DataArrayDouble((0.25,0.25,0.25)))) ; f.setArray(fine) ; f.setName("tutu") ; f.checkCoherency()
15138 coarse=DataArrayDouble(5) ; coarse.iota(0) #X=5
15139 fine=DataArrayDouble(3*4) ; fine.iota(0) #X=3 refined by 4
15140 MEDCouplingIMesh.SpreadCoarseToFine(coarse,[5],fine,[(1,4)],[4])
15141 self.assertTrue(fine.isEqual(DataArrayDouble([1.,1.,1.,1.,2.,2.,2.,2.,3.,3.,3.,3.]),1e-12))
15144 def testSwig2AMR4(self):
15145 """This test focuses on MEDCouplingCartesianAMRMesh.createPatchesFromCriterion method. To test it a field containing 0 everywhere except in the annulus (centered on the center of the mesh) value is 1."""
15146 im=MEDCouplingIMesh("mesh",2,[51,51],[0.,0.],[0.04,0.04])
15147 b=im.getBarycenterAndOwner() ; b-=[1.,1.] ; b=b.magnitude()
15148 ids=b.getIdsInRange(0.4,0.7)
15149 f=MEDCouplingFieldDouble(ON_CELLS) ; f.setMesh(im) ; f.setName("toto") ; arr=DataArrayDouble(im.getNumberOfCells()) ; arr[:]=0. ; arr[ids]=1. ; f.setArray(arr)
15150 # f.write("test.vti")
15151 amr=MEDCouplingCartesianAMRMesh(MEDCouplingIMesh("mesh",2,[51,51],[0.,0.],[0.04,0.04]))
15152 arr2=DataArrayByte(im.getNumberOfCells()) ; arr2[:]=0 ; arr2[ids]=1
15153 bso=BoxSplittingOptions() ; bso.setEfficiencyGoal(0.5); bso.setEfficiencyThreshold(0.8) ; bso.setMaximumNbOfCellsInPatch(3000) ; bso.setMinimumPatchLength(6) ; bso.setMaximumPatchLength(11)
15154 amr.createPatchesFromCriterion(bso,arr2,[2,2])
15155 m=amr.getImageMesh() ; m=m.buildUnstructured() ; m.changeSpaceDimension(3,1.)
15156 self.assertEqual(12,amr.getNumberOfPatches())
15157 exp0=[[(9,19),(9,19)],[(9,19),(31,41)],[(31,41),(9,19)],[(8,17),(19,25)],[(8,17),(25,31)],[(19,25),(8,17)],[(25,31),(8,17)],[(19,25),(33,42)],[(25,31),(33,42)],[(31,41),(31,41)],[(33,42),(19,25)],[(33,42),(25,31)]]
15158 for i,bltr in enumerate(exp0):
15159 self.assertEqual(amr[i].getBLTRRange(),bltr)
15161 self.assertAlmostEqual(0.666666666667,amr[3].getMesh().getImageMesh().computeSquareness(),12)
15163 self.assertEqual(MEDCouplingStructuredMesh.ChangeReferenceToGlobalOfCompactFrmt([(8,32),(4,17)],[(0,24),(2,12)]),[(8,32),(6,16)])
15164 self.assertEqual(MEDCouplingStructuredMesh.ChangeReferenceFromGlobalOfCompactFrmt([(8,32),(4,17)],[(8,32),(6,16)]),[(0,24),(2,12)])
15165 self.assertTrue(amr.getImageMesh().isEqual(im,1e-12))
15166 m=amr.getImageMesh().asSingleCell().build1SGTUnstructured()
15167 self.assertTrue(m.getNodalConnectivity().isEqual(DataArrayInt([1,0,2,3])))
15168 self.assertTrue(m.getCoords().isEqualWithoutConsideringStr(DataArrayDouble([(0,0),(2,0),(0,2),(2,2)]),1e-12))
15171 def testSwig2AMR5(self):
15172 """ Idem testAMR3, test spread of coarse IMesh instance into a fine one, with a factor, but here ghost is used !"""
15174 coarse=DataArrayDouble(5+2) ; coarse.iota(-1) #X=5 with ghostLev=1
15175 fine=DataArrayDouble(3*4+2) ; fine.iota(1000) #X=3 refined by 4 with ghostLev=1
15176 MEDCouplingIMesh.SpreadCoarseToFineGhost(coarse,[5],fine,[(1,4)],[4],1)
15177 self.assertTrue(fine.isEqual(DataArrayDouble([0,1,1,1,1,2,2,2,2,3,3,3,3,4]),1e-12))
15179 MEDCouplingIMesh.CondenseFineToCoarseGhost([5],fine,[(1,4)],[4],coarse,1)
15180 self.assertTrue(coarse.isEqual(DataArrayDouble([-1000.,-999.,4.,8.,12.,-995.,-994.]),1e-12))
15182 coarse=DataArrayDouble((5+2*1)*(7+2*1)) ; coarse.iota(0) #X=5,Y=7 with ghostLev=1
15183 fine=DataArrayDouble((3*4+2*1)*(2*4+2*1)) ; fine.iota(1000) #X=3,Y=2 refined by 4
15184 MEDCouplingIMesh.SpreadCoarseToFineGhost(coarse,[5,7],fine,[(1,4),(2,4)],[4,4],1)
15185 self.assertTrue(fine.isEqual(DataArrayDouble([15.,16.,16.,16.,16.,17.,17.,17.,17.,18.,18.,18.,18.,19.,22.,23.,23.,23.,23.,24.,24.,24.,24.,25.,25.,25.,25.,26.,22.,23.,23.,23.,23.,24.,24.,24.,24.,25.,25.,25.,25.,26.,22.,23.,23.,23.,23.,24.,24.,24.,24.,25.,25.,25.,25.,26.,22.,23.,23.,23.,23.,24.,24.,24.,24.,25.,25.,25.,25.,26.,29.,30.,30.,30.,30.,31.,31.,31.,31.,32.,32.,32.,32.,33.,29.,30.,30.,30.,30.,31.,31.,31.,31.,32.,32.,32.,32.,33.,29.,30.,30.,30.,30.,31.,31.,31.,31.,32.,32.,32.,32.,33.,29.,30.,30.,30.,30.,31.,31.,31.,31.,32.,32.,32.,32.,33.,36.,37.,37.,37.,37.,38.,38.,38.,38.,39.,39.,39.,39.,40.]),1e-12))
15186 f=MEDCouplingFieldDouble(ON_CELLS) ; f.setMesh(MEDCouplingIMesh("",2,DataArrayInt([8,10]),[0.,0.],DataArrayDouble((1.,1.)))) ; f.setArray(coarse) ; f.setName("tutu") ; f.checkCoherency()
15188 fine2=DataArrayDouble.Meld(fine,3*fine) ; coarse2=DataArrayDouble.Meld(coarse,3*coarse)
15189 MEDCouplingIMesh.CondenseFineToCoarseGhost([5,7],fine,[(1,4),(2,4)],[4,4],coarse,1)
15190 MEDCouplingIMesh.CondenseFineToCoarseGhost([5,7],fine2,[(1,4),(2,4)],[4,4],coarse2,1)
15191 f=MEDCouplingFieldDouble(ON_CELLS) ; f.setMesh(MEDCouplingIMesh("",2,DataArrayInt([8,10]),[0.,0.],DataArrayDouble((1.,1.)))) ; f.setArray(coarse) ; f.setName("tutu") ; f.checkCoherency()
15192 coarseExp=DataArrayDouble([-1000.,-999.,-998.,-997.,-996.,-995.,-994.,-993.,-992.,-991.,-990.,-989.,-988.,-987.,-986.,-985.,-984.,-983.,-982.,-981.,-980.,-979.,-978.,368.,384.,400.,-974.,-973.,-972.,-971.,480.,496.,512.,-967.,-966.,-965.,-964.,-963.,-962.,-961.,-960.,-959.,-958.,-957.,-956.,-955.,-954.,-953.,-952.,-951.,-950.,-949.,-948.,-947.,-946.,-945.,-944.,-943.,-942.,-941.,-940.,-939.,-938.])
15193 self.assertTrue(coarse.isEqual(coarseExp,1e-12))
15194 self.assertTrue(coarse2[:,0].isEqual(coarseExp,1e-12))
15195 self.assertTrue(coarse2[:,1].isEqual(3*coarseExp,1e-12))
15198 def testSwig2AMR6(self):
15199 """ Idem testSwig2AMR5, except that only 2D is considered here, and fine to fine is considered here. At the end of the test some checks about typing with AMR structs."""
15200 amr=MEDCouplingCartesianAMRMesh("",2,[6,6],[0,0],[1,1])
15201 da=DataArrayDouble((5+2)*(5+2)) ; da.iota() ; da+=0.9
15202 amr.addPatch([(1,4),(2,4)],[4,4])
15203 amr.addPatch([(0,1),(0,1)],[4,4])
15204 amr.addPatch([(4,5),(3,4)],[4,4])
15205 amr.addPatch([(4,5),(1,3)],[4,4])
15206 amr.addPatch([(0,1),(1,4)],[4,4])
15207 da0=DataArrayDouble((3*4+2)*(2*4+2)) ; da0.iota() ; da0[:]+=0.2
15208 da1=DataArrayDouble((1*4+2)*(1*4+2)) ; da1.iota() ; da1[:]+=0.4
15209 da2=DataArrayDouble((1*4+2)*(1*4+2)) ; da2.iota() ; da2[:]+=0.6
15210 da3=DataArrayDouble((1*4+2)*(2*4+2)) ; da3.iota() ; da3[:]+=0.7
15211 da4=DataArrayDouble((1*4+2)*(3*4+2)) ; da4.iota() ; da4[:]+=0.8
15212 self.assertEqual(5,amr.getNumberOfPatches())
15213 l=[da0,da1,da2,da3,da4]
15214 lCpy=[elt.deepCpy() for elt in l]
15215 l2=[DataArrayDouble.Meld(elt,3*elt) for elt in l]
15216 amr.fillCellFieldOnPatchGhostAdv(0,da,1,l,False)
15217 amr.fillCellFieldOnPatchGhostAdv(0,DataArrayDouble.Meld(da,3*da),1,l2,False)
15218 amr.fillCellFieldOnPatchOnlyOnGhostZone(0,da,lCpy[0],1)
15220 f=MEDCouplingFieldDouble(ON_CELLS) ; f.setMesh(amr.getImageMesh().buildWithGhost(1)) ; f.setArray(da) ; f.setName("all")
15221 f0=MEDCouplingFieldDouble(ON_CELLS) ; f0.setMesh(amr[0].getMesh().getImageMesh().buildWithGhost(1)) ; f0.setArray(da0) ; f0.setName("p0") ; f0.checkCoherency()
15222 f1=MEDCouplingFieldDouble(ON_CELLS) ; f1.setMesh(amr[1].getMesh().getImageMesh().buildWithGhost(1)) ; f1.setArray(da1) ; f1.setName("p1") ; f1.checkCoherency()
15223 f2=MEDCouplingFieldDouble(ON_CELLS) ; f2.setMesh(amr[2].getMesh().getImageMesh().buildWithGhost(1)) ; f2.setArray(da2) ; f2.setName("p2") ; f2.checkCoherency()
15224 f3=MEDCouplingFieldDouble(ON_CELLS) ; f3.setMesh(amr[3].getMesh().getImageMesh().buildWithGhost(1)) ; f3.setArray(da3) ; f3.setName("p3") ; f3.checkCoherency()
15225 f4=MEDCouplingFieldDouble(ON_CELLS) ; f4.setMesh(amr[4].getMesh().getImageMesh().buildWithGhost(1)) ; f4.setArray(da4) ; f4.setName("p4") ; f4.checkCoherency()
15227 da0Exp=DataArrayDouble([28.8,16.9,16.9,16.9,16.9,17.9,17.9,17.9,17.9,18.9,18.9,18.9,18.9,25.7,34.8,23.9,23.9,23.9,23.9,24.9,24.9,24.9,24.9,25.9,25.9,25.9,25.9,31.7,40.8,23.9,23.9,23.9,23.9,24.9,24.9,24.9,24.9,25.9,25.9,25.9,25.9,37.7,46.8,23.9,23.9,23.9,23.9,24.9,24.9,24.9,24.9,25.9,25.9,25.9,25.9,43.7,52.8,23.9,23.9,23.9,23.9,24.9,24.9,24.9,24.9,25.9,25.9,25.9,25.9,49.7,58.8,30.9,30.9,30.9,30.9,31.9,31.9,31.9,31.9,32.9,32.9,32.9,32.9,7.6,64.8,30.9,30.9,30.9,30.9,31.9,31.9,31.9,31.9,32.9,32.9,32.9,32.9,13.6,70.8,30.9,30.9,30.9,30.9,31.9,31.9,31.9,31.9,32.9,32.9,32.9,32.9,19.6,76.8,30.9,30.9,30.9,30.9,31.9,31.9,31.9,31.9,32.9,32.9,32.9,32.9,25.6,36.9,37.9,37.9,37.9,37.9,38.9,38.9,38.9,38.9,39.9,39.9,39.9,39.9,40.9])
15228 da0Exp2=DataArrayDouble([15.9,16.9,16.9,16.9,16.9,17.9,17.9,17.9,17.9,18.9,18.9,18.9,18.9,19.9,22.9,15.2,16.2,17.2,18.2,19.2,20.2,21.2,22.2,23.2,24.2,25.2,26.2,26.9,22.9,29.2,30.2,31.2,32.2,33.2,34.2,35.2,36.2,37.2,38.2,39.2,40.2,26.9,22.9,43.2,44.2,45.2,46.2,47.2,48.2,49.2,50.2,51.2,52.2,53.2,54.2,26.9,22.9,57.2,58.2,59.2,60.2,61.2,62.2,63.2,64.2,65.2,66.2,67.2,68.2,26.9,29.9,71.2,72.2,73.2,74.2,75.2,76.2,77.2,78.2,79.2,80.2,81.2,82.2,33.9,29.9,85.2,86.2,87.2,88.2,89.2,90.2,91.2,92.2,93.2,94.2,95.2,96.2,33.9,29.9,99.2,100.2,101.2,102.2,103.2,104.2,105.2,106.2,107.2,108.2,109.2,110.2,33.9,29.9,113.2,114.2,115.2,116.2,117.2,118.2,119.2,120.2,121.2,122.2,123.2,124.2,33.9,36.9,37.9,37.9,37.9,37.9,38.9,38.9,38.9,38.9,39.9,39.9,39.9,39.9,40.9])
15229 self.assertTrue(da0.isEqual(da0Exp,1e-12))
15230 self.assertTrue(l2[0][:,0].isEqual(da0Exp,1e-12))
15231 self.assertTrue(l2[0][:,1].isEqual(3*da0Exp,1e-12))
15232 self.assertTrue(lCpy[0].isEqual(da0Exp2,1e-12))
15234 g0=amr.retrieveGridsAt(0)
15235 self.assertEqual(1,len(g0))
15236 self.assertTrue(isinstance(g0[0],MEDCouplingCartesianAMRPatchGF))
15237 g1=amr.retrieveGridsAt(1)
15238 self.assertEqual(5,len(g1))
15239 for i in xrange(5):
15240 self.assertTrue(isinstance(g1[i],MEDCouplingCartesianAMRPatch))
15244 def testSwig2AMR7(self):
15245 """Idem testSwig2AMR6 except that we are in 1D"""
15246 amr=MEDCouplingCartesianAMRMesh("",1,[6],[0],[1])
15247 da=DataArrayDouble(5+2) ; da.iota() ; da+=0.9
15248 amr.addPatch([(1,4)],[4])
15249 amr.addPatch([(0,1)],[4])
15250 da0=DataArrayDouble(3*4+2) ; da0.iota() ; da0[:]+=0.2
15251 da1=DataArrayDouble(1*4+2) ; da1.iota() ; da1[:]+=0.4
15252 self.assertEqual(2,amr.getNumberOfPatches())
15254 lCpy=[elt.deepCpy() for elt in l]
15255 l2=[DataArrayDouble.Meld(elt,3*elt) for elt in l]
15256 amr.fillCellFieldOnPatchGhostAdv(0,da,1,l,False)
15257 amr.fillCellFieldOnPatchGhostAdv(0,DataArrayDouble.Meld(da,3*da),1,l2,False)
15258 amr.fillCellFieldOnPatchOnlyOnGhostZone(0,da,lCpy[0],1)
15260 f=MEDCouplingFieldDouble(ON_CELLS) ; f.setMesh(amr.getImageMesh().buildWithGhost(1)) ; f.setArray(da) ; f.setName("all")
15261 f0=MEDCouplingFieldDouble(ON_CELLS) ; f0.setMesh(amr[0].getMesh().getImageMesh().buildWithGhost(1)) ; f0.setArray(da0) ; f0.setName("p0") ; f0.checkCoherency()
15262 f1=MEDCouplingFieldDouble(ON_CELLS) ; f1.setMesh(amr[1].getMesh().getImageMesh().buildWithGhost(1)) ; f1.setArray(da1) ; f1.setName("p1") ; f1.checkCoherency()
15264 da0Exp=DataArrayDouble([4.4,2.9,2.9,2.9,2.9,3.9,3.9,3.9,3.9,4.9,4.9,4.9,4.9,5.9])
15265 da0Exp2=DataArrayDouble([1.9,1.2,2.2,3.2,4.2,5.2,6.2,7.2,8.2,9.2,10.2,11.2,12.2,5.9])
15266 self.assertTrue(da0.isEqual(da0Exp,1e-12))
15267 self.assertTrue(l2[0][:,0].isEqual(da0Exp,1e-12))
15268 self.assertTrue(l2[0][:,1].isEqual(3*da0Exp,1e-12))
15269 self.assertTrue(lCpy[0].isEqual(da0Exp2,1e-12))
15272 def testSwig2AMR8(self):
15273 """This test checks 'basic' operations for ghost update."""
15275 amr=MEDCouplingCartesianAMRMesh("",2,[6,7],[0,0],[1,1])
15276 amr.addPatch([(1,4),(2,4)],[4,4])
15277 amr.addPatch([(4,5),(3,5)],[4,4])
15278 amr.addPatch([(0,1),(4,6)],[4,4])
15279 amr[0].addPatch([(10,12),(5,8)],[2,2])
15280 amr[1].addPatch([(0,1),(0,5)],[2,2])
15281 amr[2].addPatch([(3,4),(0,3)],[2,2])
15282 m=amr.buildMeshFromPatchEnvelop()
15283 self.assertTrue(m.getNodalConnectivity().isEqual(DataArrayInt([1,0,2,3,5,4,6,7,9,8,10,11])))
15284 self.assertTrue(m.getCoords().isEqualWithoutConsideringStr(DataArrayDouble([1.,2.,4.,2.,1.,4.,4.,4.,4.,3.,5.,3.,4.,5.,5.,5.,0.,4.,1.,4.,0.,6.,1.,6.],12,2),1e-12))
15285 self.assertEqual(3,amr.getMaxNumberOfLevelsRelativeToThis())
15286 att=MEDCouplingAMRAttribute(amr,[("Field",["X"])],ghostSz)
15288 d=att.getFieldOn(amr,"Field")
15289 self.assertEqual(56,d.getNumberOfTuples())
15290 self.assertEqual(1,d.getNumberOfComponents())
15292 d0=att.getFieldOn(amr[0].getMesh(),"Field")
15293 self.assertEqual(140,d0.getNumberOfTuples())
15294 self.assertEqual(1,d0.getNumberOfComponents())
15295 d0.iota() ; d0+=0.2
15296 d1=att.getFieldOn(amr[1].getMesh(),"Field")
15297 self.assertEqual(60,d1.getNumberOfTuples())
15298 self.assertEqual(1,d1.getNumberOfComponents())
15299 d1.iota() ; d1+=0.3
15300 d2=att.getFieldOn(amr[2].getMesh(),"Field")
15301 self.assertEqual(60,d2.getNumberOfTuples())
15302 self.assertEqual(1,d2.getNumberOfComponents())
15303 d2.iota() ; d2+=0.4
15304 d00=att.getFieldOn(amr[0][0].getMesh(),"Field")
15305 self.assertEqual(48,d00.getNumberOfTuples())
15306 self.assertEqual(1,d00.getNumberOfComponents())
15307 d00.iota() ; d00+=0.5
15308 d10=att.getFieldOn(amr[1][0].getMesh(),"Field")
15309 self.assertEqual(48,d10.getNumberOfTuples())
15310 self.assertEqual(1,d10.getNumberOfComponents())
15311 d10.iota() ; d10+=0.6
15312 d20=att.getFieldOn(amr[2][0].getMesh(),"Field")
15313 self.assertEqual(32,d20.getNumberOfTuples())
15314 self.assertEqual(1,d20.getNumberOfComponents())
15315 d20.iota() ; d20+=0.7
15316 f=att.buildCellFieldOnRecurseWithoutOverlapWithoutGhost(amr,"Field")
15317 arrExp=DataArrayDouble([8.1,9.1,10.1,11.1,12.1,15.1,16.1,17.1,18.1,19.1,22.1,26.1,29.1,37.1,38.1,39.1,44.1,45.1,46.1,47.1,15.2,16.2,17.2,18.2,19.2,20.2,21.2,22.2,23.2,24.2,25.2,26.2,29.2,30.2,31.2,32.2,33.2,34.2,35.2,36.2,37.2,38.2,39.2,40.2,43.2,44.2,45.2,46.2,47.2,48.2,49.2,50.2,51.2,52.2,53.2,54.2,57.2,58.2,59.2,60.2,61.2,62.2,63.2,64.2,65.2,66.2,67.2,68.2,71.2,72.2,73.2,74.2,75.2,76.2,77.2,78.2,79.2,80.2,81.2,82.2,85.2,86.2,87.2,88.2,89.2,90.2,91.2,92.2,93.2,94.2,99.2,100.2,101.2,102.2,103.2,104.2,105.2,106.2,107.2,108.2,113.2,114.2,115.2,116.2,117.2,118.2,119.2,120.2,121.2,122.2,7.5,8.5,9.5,10.5,13.5,14.5,15.5,16.5,19.5,20.5,21.5,22.5,25.5,26.5,27.5,28.5,31.5,32.5,33.5,34.5,37.5,38.5,39.5,40.5,8.3,9.3,10.3,14.3,15.3,16.3,20.3,21.3,22.3,26.3,27.3,28.3,32.3,33.3,34.3,37.3,38.3,39.3,40.3,43.3,44.3,45.3,46.3,49.3,50.3,51.3,52.3,5.6,6.6,9.6,10.6,13.6,14.6,17.6,18.6,21.6,22.6,25.6,26.6,29.6,30.6,33.6,34.6,37.6,38.6,41.6,42.6,7.4,8.4,9.4,13.4,14.4,15.4,19.4,20.4,21.4,25.4,26.4,27.4,28.4,31.4,32.4,33.4,34.4,37.4,38.4,39.4,40.4,43.4,44.4,45.4,46.4,49.4,50.4,51.4,52.4,5.7,6.7,9.7,10.7,13.7,14.7,17.7,18.7,21.7,22.7,25.7,26.7])
15318 arrExp.setName("Field") ; arrExp.setInfoOnComponents(["X"])
15319 self.assertTrue(f.getArray().isEqual(arrExp,1e-12))
15320 m=MEDCoupling1SGTUMesh(f.getMesh())
15321 self.assertTrue(m.getNodalConnectivity().isEqual(DataArrayInt([1,0,6,7,2,1,7,8,3,2,8,9,4,3,9,10,5,4,10,11,7,6,12,13,8,7,13,14,9,8,14,15,10,9,15,16,11,10,16,17,13,12,18,19,17,16,20,21,19,18,22,23,24,23,27,28,25,24,28,29,26,25,29,30,28,27,32,33,29,28,33,34,30,29,34,35,31,30,35,36,38,37,50,51,39,38,51,52,40,39,52,53,41,40,53,54,42,41,54,55,43,42,55,56,44,43,56,57,45,44,57,58,46,45,58,59,47,46,59,60,48,47,60,61,49,48,61,62,51,50,63,64,52,51,64,65,53,52,65,66,54,53,66,67,55,54,67,68,56,55,68,69,57,56,69,70,58,57,70,71,59,58,71,72,60,59,72,73,61,60,73,74,62,61,74,75,64,63,76,77,65,64,77,78,66,65,78,79,67,66,79,80,68,67,80,81,69,68,81,82,70,69,82,83,71,70,83,84,72,71,84,85,73,72,85,86,74,73,86,87,75,74,87,88,77,76,89,90,78,77,90,91,79,78,91,92,80,79,92,93,81,80,93,94,82,81,94,95,83,82,95,96,84,83,96,97,85,84,97,98,86,85,98,99,87,86,99,100,88,87,100,101,90,89,102,103,91,90,103,104,92,91,104,105,93,92,105,106,94,93,106,107,95,94,107,108,96,95,108,109,97,96,109,110,98,97,110,111,99,98,111,112,100,99,112,113,101,100,113,114,103,102,115,116,104,103,116,117,105,104,117,118,106,105,118,119,107,106,119,120,108,107,120,121,109,108,121,122,110,109,122,123,111,110,123,124,112,111,124,125,116,115,126,127,117,116,127,128,118,117,128,129,119,118,129,130,120,119,130,131,121,120,131,132,122,121,132,133,123,122,133,134,124,123,134,135,125,124,135,136,127,126,137,138,128,127,138,139,129,128,139,140,130,129,140,141,131,130,141,142,132,131,142,143,133,132,143,144,134,133,144,145,135,134,145,146,136,135,146,147,149,148,153,154,150,149,154,155,151,150,155,156,152,151,156,157,154,153,158,159,155,154,159,160,156,155,160,161,157,156,161,162,159,158,163,164,160,159,164,165,161,160,165,166,162,161,166,167,164,163,168,169,165,164,169,170,166,165,170,171,167,166,171,172,169,168,173,174,170,169,174,175,171,170,175,176,172,171,176,177,174,173,178,179,175,174,179,180,176,175,180,181,177,176,181,182,184,183,187,188,185,184,188,189,186,185,189,190,188,187,191,192,189,188,192,193,190,189,193,194,192,191,195,196,193,192,196,197,194,193,197,198,196,195,199,200,197,196,200,201,198,197,201,202,200,199,204,205,201,200,205,206,202,201,206,207,204,203,208,209,205,204,209,210,206,205,210,211,207,206,211,212,209,208,213,214,210,209,214,215,211,210,215,216,212,211,216,217,214,213,218,219,215,214,219,220,216,215,220,221,217,216,221,222,224,223,226,227,225,224,227,228,227,226,229,230,228,227,230,231,230,229,232,233,231,230,233,234,233,232,235,236,234,233,236,237,236,235,238,239,237,236,239,240,239,238,241,242,240,239,242,243,242,241,244,245,243,242,245,246,245,244,247,248,246,245,248,249,248,247,250,251,249,248,251,252,251,250,253,254,252,251,254,255,257,256,260,261,258,257,261,262,259,258,262,263,261,260,264,265,262,261,265,266,263,262,266,267,265,264,268,269,266,265,269,270,267,266,270,271,269,268,273,274,270,269,274,275,271,270,275,276,272,271,276,277,274,273,278,279,275,274,279,280,276,275,280,281,277,276,281,282,279,278,283,284,280,279,284,285,281,280,285,286,282,281,286,287,284,283,288,289,285,284,289,290,286,285,290,291,287,286,291,292,289,288,293,294,290,289,294,295,291,290,295,296,292,291,296,297,299,298,301,302,300,299,302,303,302,301,304,305,303,302,305,306,305,304,307,308,306,305,308,309,308,307,310,311,309,308,311,312,311,310,313,314,312,311,314,315,314,313,316,317,315,314,317,318])))
15322 self.assertTrue(m.getCoords().isEqualWithoutConsideringStr(DataArrayDouble([0.,0.,1.,0.,2.,0.,3.,0.,4.,0.,5.,0.,0.,1.,1.,1.,2.,1.,3.,1.,4.,1.,5.,1.,0.,2.,1.,2.,2.,2.,3.,2.,4.,2.,5.,2.,0.,3.,1.,3.,4.,3.,5.,3.,0.,4.,1.,4.,2.,4.,3.,4.,4.,4.,1.,5.,2.,5.,3.,5.,4.,5.,5.,5.,1.,6.,2.,6.,3.,6.,4.,6.,5.,6.,1.,2.,1.25,2.,1.5,2.,1.75,2.,2.,2.,2.25,2.,2.5,2.,2.75,2.,3.,2.,3.25,2.,3.5,2.,3.75,2.,4.,2.,1.,2.25,1.25,2.25,1.5,2.25,1.75,2.25,2.,2.25,2.25,2.25,2.5,2.25,2.75,2.25,3.,2.25,3.25,2.25,3.5,2.25,3.75,2.25,4.,2.25,1.,2.5,1.25,2.5,1.5,2.5,1.75,2.5,2.,2.5,2.25,2.5,2.5,2.5,2.75,2.5,3.,2.5,3.25,2.5,3.5,2.5,3.75,2.5,4.,2.5,1.,2.75,1.25,2.75,1.5,2.75,1.75,2.75,2.,2.75,2.25,2.75,2.5,2.75,2.75,2.75,3.,2.75,3.25,2.75,3.5,2.75,3.75,2.75,4.,2.75,1.,3.,1.25,3.,1.5,3.,1.75,3.,2.,3.,2.25,3.,2.5,3.,2.75,3.,3.,3.,3.25,3.,3.5,3.,3.75,3.,4.,3.,1.,3.25,1.25,3.25,1.5,3.25,1.75,3.25,2.,3.25,2.25,3.25,2.5,3.25,2.75,3.25,3.,3.25,3.25,3.25,3.5,3.25,3.75,3.25,4.,3.25,1.,3.5,1.25,3.5,1.5,3.5,1.75,3.5,2.,3.5,2.25,3.5,2.5,3.5,2.75,3.5,3.,3.5,3.25,3.5,3.5,3.5,1.,3.75,1.25,3.75,1.5,3.75,1.75,3.75,2.,3.75,2.25,3.75,2.5,3.75,2.75,3.75,3.,3.75,3.25,3.75,3.5,3.75,1.,4.,1.25,4.,1.5,4.,1.75,4.,2.,4.,2.25,4.,2.5,4.,2.75,4.,3.,4.,3.25,4.,3.5,4.,3.5,3.25,3.625,3.25,3.75,3.25,3.875,3.25,4.,3.25,3.5,3.375,3.625,3.375,3.75,3.375,3.875,3.375,4.,3.375,3.5,3.5,3.625,3.5,3.75,3.5,3.875,3.5,4.,3.5,3.5,3.625,3.625,3.625,3.75,3.625,3.875,3.625,4.,3.625,3.5,3.75,3.625,3.75,3.75,3.75,3.875,3.75,4.,3.75,3.5,3.875,3.625,3.875,3.75,3.875,3.875,3.875,4.,3.875,3.5,4.,3.625,4.,3.75,4.,3.875,4.,4.,4.,4.25,3.,4.5,3.,4.75,3.,5.,3.,4.25,3.25,4.5,3.25,4.75,3.25,5.,3.25,4.25,3.5,4.5,3.5,4.75,3.5,5.,3.5,4.25,3.75,4.5,3.75,4.75,3.75,5.,3.75,4.25,4.,4.5,4.,4.75,4.,5.,4.,4.,4.25,4.25,4.25,4.5,4.25,4.75,4.25,5.,4.25,4.,4.5,4.25,4.5,4.5,4.5,4.75,4.5,5.,4.5,4.,4.75,4.25,4.75,4.5,4.75,4.75,4.75,5.,4.75,4.,5.,4.25,5.,4.5,5.,4.75,5.,5.,5.,4.,3.,4.125,3.,4.25,3.,4.,3.125,4.125,3.125,4.25,3.125,4.,3.25,4.125,3.25,4.25,3.25,4.,3.375,4.125,3.375,4.25,3.375,4.,3.5,4.125,3.5,4.25,3.5,4.,3.625,4.125,3.625,4.25,3.625,4.,3.75,4.125,3.75,4.25,3.75,4.,3.875,4.125,3.875,4.25,3.875,4.,4.,4.125,4.,4.25,4.,4.,4.125,4.125,4.125,4.25,4.125,4.,4.25,4.125,4.25,4.25,4.25,0.,4.,0.25,4.,0.5,4.,0.75,4.,0.,4.25,0.25,4.25,0.5,4.25,0.75,4.25,0.,4.5,0.25,4.5,0.5,4.5,0.75,4.5,0.,4.75,0.25,4.75,0.5,4.75,0.75,4.75,1.,4.75,0.,5.,0.25,5.,0.5,5.,0.75,5.,1.,5.,0.,5.25,0.25,5.25,0.5,5.25,0.75,5.25,1.,5.25,0.,5.5,0.25,5.5,0.5,5.5,0.75,5.5,1.,5.5,0.,5.75,0.25,5.75,0.5,5.75,0.75,5.75,1.,5.75,0.,6.,0.25,6.,0.5,6.,0.75,6.,1.,6.,0.75,4.,0.875,4.,1.,4.,0.75,4.125,0.875,4.125,1.,4.125,0.75,4.25,0.875,4.25,1.,4.25,0.75,4.375,0.875,4.375,1.,4.375,0.75,4.5,0.875,4.5,1.,4.5,0.75,4.625,0.875,4.625,1.,4.625,0.75,4.75,0.875,4.75,1.,4.75],319,2),1e-12))
15323 # the test is here ! To be called after iteration with no remesh
15324 att.synchronizeAllGhostZones()
15325 f=att.buildCellFieldOnWithGhost(amr,"Field") ; f.checkCoherency()
15326 ftmp=att.buildCellFieldOnWithoutGhost(amr,"Field") ; ftmp.checkCoherency() ; self.assertTrue(ftmp.getArray().isEqualWithoutConsideringStr(DataArrayDouble([8.1,9.1,10.1,11.1,12.1,15.1,16.1,17.1,18.1,19.1,22.1,23.1,24.1,25.1,26.1,29.1,30.1,31.1,32.1,33.1,36.1,37.1,38.1,39.1,40.1,43.1,44.1,45.1,46.1,47.1]),1e-12))
15327 f0=att.buildCellFieldOnWithGhost(amr[0].getMesh(),"Field")
15328 f1=att.buildCellFieldOnWithGhost(amr[1].getMesh(),"Field")
15329 f2=att.buildCellFieldOnWithGhost(amr[2].getMesh(),"Field")
15330 f00=att.buildCellFieldOnWithGhost(amr[0][0].getMesh(),"Field")
15331 f10=att.buildCellFieldOnWithGhost(amr[1][0].getMesh(),"Field")
15332 f20=att.buildCellFieldOnWithGhost(amr[2][0].getMesh(),"Field")
15333 self.assertTrue(f.getArray().isEqualWithoutConsideringStr(DataArrayDouble([0.1,1.1,2.1,3.1,4.1,5.1,6.1,7.1,8.1,9.1,10.1,11.1,12.1,13.1,14.1,15.1,16.1,17.1,18.1,19.1,20.1,21.1,22.1,23.1,24.1,25.1,26.1,27.1,28.1,29.1,30.1,31.1,32.1,33.1,34.1,35.1,36.1,37.1,38.1,39.1,40.1,41.1,42.1,43.1,44.1,45.1,46.1,47.1,48.1,49.1,50.1,51.1,52.1,53.1,54.1,55.1]),1e-12))
15334 self.assertTrue(f0.getArray().isEqualWithoutConsideringStr(DataArrayDouble([15.1,16.1,16.1,16.1,16.1,17.1,17.1,17.1,17.1,18.1,18.1,18.1,18.1,19.1,22.1,15.2,16.2,17.2,18.2,19.2,20.2,21.2,22.2,23.2,24.2,25.2,26.2,26.1,22.1,29.2,30.2,31.2,32.2,33.2,34.2,35.2,36.2,37.2,38.2,39.2,40.2,26.1,22.1,43.2,44.2,45.2,46.2,47.2,48.2,49.2,50.2,51.2,52.2,53.2,54.2,26.1,22.1,57.2,58.2,59.2,60.2,61.2,62.2,63.2,64.2,65.2,66.2,67.2,68.2,26.1,29.1,71.2,72.2,73.2,74.2,75.2,76.2,77.2,78.2,79.2,80.2,81.2,82.2,7.3,29.1,85.2,86.2,87.2,88.2,89.2,90.2,91.2,92.2,93.2,94.2,95.2,96.2,13.3,29.1,99.2,100.2,101.2,102.2,103.2,104.2,105.2,106.2,107.2,108.2,109.2,110.2,19.3,29.1,113.2,114.2,115.2,116.2,117.2,118.2,119.2,120.2,121.2,122.2,123.2,124.2,25.3,10.4,37.1,37.1,37.1,37.1,38.1,38.1,38.1,38.1,39.1,39.1,39.1,39.1,31.3]),1e-12))
15335 self.assertTrue(f1.getArray().isEqualWithoutConsideringStr(DataArrayDouble([68.2,26.1,26.1,26.1,26.1,27.1,82.2,7.3,8.3,9.3,10.3,34.1,96.2,13.3,14.3,15.3,16.3,34.1,110.2,19.3,20.3,21.3,22.3,34.1,124.2,25.3,26.3,27.3,28.3,34.1,39.1,31.3,32.3,33.3,34.3,41.1,39.1,37.3,38.3,39.3,40.3,41.1,39.1,43.3,44.3,45.3,46.3,41.1,39.1,49.3,50.3,51.3,52.3,41.1,46.1,47.1,47.1,47.1,47.1,48.1]),1e-12))
15336 self.assertTrue(f2.getArray().isEqualWithoutConsideringStr(DataArrayDouble([28.1,29.1,29.1,29.1,29.1,113.2,35.1,7.4,8.4,9.4,10.4,37.1,35.1,13.4,14.4,15.4,16.4,37.1,35.1,19.4,20.4,21.4,22.4,37.1,35.1,25.4,26.4,27.4,28.4,37.1,42.1,31.4,32.4,33.4,34.4,44.1,42.1,37.4,38.4,39.4,40.4,44.1,42.1,43.4,44.4,45.4,46.4,44.1,42.1,49.4,50.4,51.4,52.4,44.1,49.1,50.1,50.1,50.1,50.1,51.1]),1e-12))
15337 self.assertTrue(f00.getArray().isEqualWithoutConsideringStr(DataArrayDouble([80.2,81.2,81.2,82.2,82.2,9.6,94.2,7.5,8.5,9.5,10.5,13.6,94.2,13.5,14.5,15.5,16.5,17.6,108.2,19.5,20.5,21.5,22.5,21.6,108.2,25.5,26.5,27.5,28.5,25.6,122.2,31.5,32.5,33.5,34.5,29.6,122.2,37.5,38.5,39.5,40.5,33.6,39.1,39.1,39.1,39.1,39.1,37.6]),1e-12))
15338 self.assertTrue(f10.getArray().isEqualWithoutConsideringStr(DataArrayDouble([68.2,26.1,26.1,26.1,82.2,5.6,6.6,8.3,82.2,9.6,10.6,8.3,10.5,13.6,14.6,14.3,16.5,17.6,18.6,14.3,22.5,21.6,22.6,20.3,28.5,25.6,26.6,20.3,34.5,29.6,30.6,26.3,40.5,33.6,34.6,26.3,39.1,37.6,38.6,32.3,39.1,41.6,42.6,32.3,39.1,37.3,37.3,38.3]),1e-12))
15339 self.assertTrue(f20.getArray().isEqualWithoutConsideringStr(DataArrayDouble([29.1,29.1,29.1,113.2,9.4,5.7,6.7,37.1,9.4,9.7,10.7,37.1,15.4,13.7,14.7,37.1,15.4,17.7,18.7,37.1,21.4,21.7,22.7,37.1,21.4,25.7,26.7,37.1,27.4,28.4,28.4,37.1]),1e-12))
15342 def testSwig2AMR9(self):
15343 """ Equivalent to testSwig2AMR8 except that here the ghost level is 2 !"""
15345 amr=MEDCouplingCartesianAMRMesh("",2,[6,7],[0,0],[1,1])
15346 amr.addPatch([(1,4),(2,4)],[4,4])
15347 amr.addPatch([(4,5),(3,5)],[4,4])
15348 amr.addPatch([(0,1),(4,6)],[4,4])
15349 amr[0].addPatch([(10,12),(5,8)],[2,2])
15350 amr[1].addPatch([(0,1),(0,5)],[2,2])
15351 amr[2].addPatch([(3,4),(0,3)],[2,2])
15352 self.assertEqual(3,amr.getMaxNumberOfLevelsRelativeToThis())
15353 att=MEDCouplingAMRAttribute(amr,[("Field",["X"])],ghostSz)
15355 d=att.getFieldOn(amr,"Field")
15356 self.assertEqual(90,d.getNumberOfTuples())
15357 self.assertEqual(1,d.getNumberOfComponents())
15359 d0=att.getFieldOn(amr[0].getMesh(),"Field")
15360 self.assertEqual(192,d0.getNumberOfTuples())
15361 self.assertEqual(1,d0.getNumberOfComponents())
15362 d0.iota() ; d0+=0.2
15363 d1=att.getFieldOn(amr[1].getMesh(),"Field")
15364 self.assertEqual(96,d1.getNumberOfTuples())
15365 self.assertEqual(1,d1.getNumberOfComponents())
15366 d1.iota() ; d1+=0.3
15367 d2=att.getFieldOn(amr[2].getMesh(),"Field")
15368 self.assertEqual(96,d2.getNumberOfTuples())
15369 self.assertEqual(1,d2.getNumberOfComponents())
15370 d2.iota() ; d2+=0.4
15371 d00=att.getFieldOn(amr[0][0].getMesh(),"Field")
15372 self.assertEqual(80,d00.getNumberOfTuples())
15373 self.assertEqual(1,d00.getNumberOfComponents())
15374 d00.iota() ; d00+=0.5
15375 d10=att.getFieldOn(amr[1][0].getMesh(),"Field")
15376 self.assertEqual(84,d10.getNumberOfTuples())
15377 self.assertEqual(1,d10.getNumberOfComponents())
15378 d10.iota() ; d10+=0.6
15379 d20=att.getFieldOn(amr[2][0].getMesh(),"Field")
15380 self.assertEqual(60,d20.getNumberOfTuples())
15381 self.assertEqual(1,d20.getNumberOfComponents())
15382 d20.iota() ; d20+=0.7
15383 # the test is here ! To be called after iteration with no remesh
15384 att.synchronizeAllGhostZones()
15385 f=att.buildCellFieldOnWithGhost(amr,"Field")
15386 f0=att.buildCellFieldOnWithGhost(amr[0].getMesh(),"Field")
15387 f1=att.buildCellFieldOnWithGhost(amr[1].getMesh(),"Field")
15388 f2=att.buildCellFieldOnWithGhost(amr[2].getMesh(),"Field")
15389 f00=att.buildCellFieldOnWithGhost(amr[0][0].getMesh(),"Field")
15390 f10=att.buildCellFieldOnWithGhost(amr[1][0].getMesh(),"Field")
15391 f20=att.buildCellFieldOnWithGhost(amr[2][0].getMesh(),"Field")
15392 self.assertTrue(f0.getArray().isEqualWithoutConsideringStr(DataArrayDouble([29.1,29.1,30.1,30.1,30.1,30.1,31.1,31.1,31.1,31.1,32.1,32.1,32.1,32.1,33.1,33.1,29.1,29.1,30.1,30.1,30.1,30.1,31.1,31.1,31.1,31.1,32.1,32.1,32.1,32.1,33.1,33.1,38.1,38.1,34.2,35.2,36.2,37.2,38.2,39.2,40.2,41.2,42.2,43.2,44.2,45.2,42.1,42.1,38.1,38.1,50.2,51.2,52.2,53.2,54.2,55.2,56.2,57.2,58.2,59.2,60.2,61.2,42.1,42.1,38.1,38.1,66.2,67.2,68.2,69.2,70.2,71.2,72.2,73.2,74.2,75.2,76.2,77.2,42.1,42.1,38.1,38.1,82.2,83.2,84.2,85.2,86.2,87.2,88.2,89.2,90.2,91.2,92.2,93.2,42.1,42.1,47.1,47.1,98.2,99.2,100.2,101.2,102.2,103.2,104.2,105.2,106.2,107.2,108.2,109.2,18.3,19.3,47.1,47.1,114.2,115.2,116.2,117.2,118.2,119.2,120.2,121.2,122.2,123.2,124.2,125.2,26.3,27.3,47.1,47.1,130.2,131.2,132.2,133.2,134.2,135.2,136.2,137.2,138.2,139.2,140.2,141.2,34.3,35.3,47.1,47.1,146.2,147.2,148.2,149.2,150.2,151.2,152.2,153.2,154.2,155.2,156.2,157.2,42.3,43.3,20.4,21.4,57.1,57.1,57.1,57.1,58.1,58.1,58.1,58.1,59.1,59.1,59.1,59.1,50.3,51.3,28.4,29.4,57.1,57.1,57.1,57.1,58.1,58.1,58.1,58.1,59.1,59.1,59.1,59.1,58.3,59.3]),1e-12))
15393 self.assertTrue(f1.getArray().isEqualWithoutConsideringStr(DataArrayDouble([76.2,77.2,42.1,42.1,42.1,42.1,43.1,43.1,92.2,93.2,42.1,42.1,42.1,42.1,43.1,43.1,108.2,109.2,18.3,19.3,20.3,21.3,52.1,52.1,124.2,125.2,26.3,27.3,28.3,29.3,52.1,52.1,140.2,141.2,34.3,35.3,36.3,37.3,52.1,52.1,156.2,157.2,42.3,43.3,44.3,45.3,52.1,52.1,59.1,59.1,50.3,51.3,52.3,53.3,61.1,61.1,59.1,59.1,58.3,59.3,60.3,61.3,61.1,61.1,59.1,59.1,66.3,67.3,68.3,69.3,61.1,61.1,59.1,59.1,74.3,75.3,76.3,77.3,61.1,61.1,68.1,68.1,69.1,69.1,69.1,69.1,70.1,70.1,68.1,68.1,69.1,69.1,69.1,69.1,70.1,70.1]),1e-12))
15394 self.assertTrue(f2.getArray().isEqualWithoutConsideringStr(DataArrayDouble([46.1,46.1,47.1,47.1,47.1,47.1,130.2,131.2,46.1,46.1,47.1,47.1,47.1,47.1,146.2,147.2,55.1,55.1,18.4,19.4,20.4,21.4,57.1,57.1,55.1,55.1,26.4,27.4,28.4,29.4,57.1,57.1,55.1,55.1,34.4,35.4,36.4,37.4,57.1,57.1,55.1,55.1,42.4,43.4,44.4,45.4,57.1,57.1,64.1,64.1,50.4,51.4,52.4,53.4,66.1,66.1,64.1,64.1,58.4,59.4,60.4,61.4,66.1,66.1,64.1,64.1,66.4,67.4,68.4,69.4,66.1,66.1,64.1,64.1,74.4,75.4,76.4,77.4,66.1,66.1,73.1,73.1,74.1,74.1,74.1,74.1,75.1,75.1,73.1,73.1,74.1,74.1,74.1,74.1,75.1,75.1]),1e-12))
15395 self.assertTrue(f00.getArray().isEqualWithoutConsideringStr(DataArrayDouble([107.2,107.2,108.2,108.2,109.2,109.2,14.6,15.6,107.2,107.2,108.2,108.2,109.2,109.2,20.6,21.6,123.2,123.2,18.5,19.5,20.5,21.5,26.6,27.6,123.2,123.2,26.5,27.5,28.5,29.5,32.6,33.6,139.2,139.2,34.5,35.5,36.5,37.5,38.6,39.6,139.2,139.2,42.5,43.5,44.5,45.5,44.6,45.6,155.2,155.2,50.5,51.5,52.5,53.5,50.6,51.6,155.2,155.2,58.5,59.5,60.5,61.5,56.6,57.6,59.1,59.1,59.1,59.1,59.1,59.1,62.6,63.6,59.1,59.1,59.1,59.1,59.1,59.1,68.6,69.6]),1e-12))
15396 self.assertTrue(f10.getArray().isEqualWithoutConsideringStr(DataArrayDouble([93.2,93.2,42.1,42.1,42.1,42.1,93.2,93.2,42.1,42.1,42.1,42.1,109.2,109.2,14.6,15.6,19.3,19.3,109.2,109.2,20.6,21.6,19.3,19.3,20.5,21.5,26.6,27.6,27.3,27.3,28.5,29.5,32.6,33.6,27.3,27.3,36.5,37.5,38.6,39.6,35.3,35.3,44.5,45.5,44.6,45.6,35.3,35.3,52.5,53.5,50.6,51.6,43.3,43.3,60.5,61.5,56.6,57.6,43.3,43.3,59.1,59.1,62.6,63.6,51.3,51.3,59.1,59.1,68.6,69.6,51.3,51.3,59.1,59.1,58.3,58.3,59.3,59.3,59.1,59.1,58.3,58.3,59.3,59.3]),1e-12))
15397 self.assertTrue(f20.getArray().isEqualWithoutConsideringStr(DataArrayDouble([47.1,47.1,47.1,47.1,146.2,146.2,47.1,47.1,47.1,47.1,146.2,146.2,20.4,20.4,14.7,15.7,57.1,57.1,20.4,20.4,20.7,21.7,57.1,57.1,28.4,28.4,26.7,27.7,57.1,57.1,28.4,28.4,32.7,33.7,57.1,57.1,36.4,36.4,38.7,39.7,57.1,57.1,36.4,36.4,44.7,45.7,57.1,57.1,44.4,44.4,45.4,45.4,57.1,57.1,44.4,44.4,45.4,45.4,57.1,57.1]),1e-12))
15398 self.assertTrue(MEDCouplingStructuredMesh.ComputeCornersGhost([3],1).isEqual(DataArrayInt([0,4])))
15399 self.assertTrue(MEDCouplingStructuredMesh.ComputeCornersGhost([3],2).isEqual(DataArrayInt([0,1,5,6])))
15400 self.assertTrue(MEDCouplingStructuredMesh.ComputeCornersGhost([5,6],1).isEqual(DataArrayInt([0,6,49,55])))
15401 self.assertTrue(MEDCouplingStructuredMesh.ComputeCornersGhost([5,6],2).isEqual(DataArrayInt([0,8,10,16,73,79,81,89])))
15402 self.assertTrue(MEDCouplingStructuredMesh.ComputeCornersGhost([5,6,3],1).isEqual(DataArrayInt([0,6,49,55,224,230,273,279])))
15403 self.assertTrue(MEDCouplingStructuredMesh.ComputeCornersGhost([5,6,3],2).isEqual(DataArrayInt([0,8,81,89,100,106,163,169,460,466,523,529,540,548,621,629])))
15406 def testSwig2AMR10(self):
15407 """ This test, focuses on basic operations of coarse to fine and fine to coarse and ghost zone update with a ghost size set to 2 and dimension equal to 2."""
15409 amr=MEDCouplingCartesianAMRMesh("",2,[11,11],[0,0],[0.1,0.1])
15410 amr.addPatch([(3,8),(0,3)],[2,2])
15411 amr[0].addPatch([(0,10),(3,6)],[3,3])
15412 amr[0].addPatch([(2,6),(0,3)],[3,3])
15413 amr[0].addPatch([(6,10),(2,3)],[3,3])
15414 amr.addPatch([(3,8),(3,6)],[2,2])
15415 amr[1].addPatch([(0,4),(0,6)],[3,3])
15416 amr[1].addPatch([(7,10),(0,4)],[3,3])
15417 amr[1].addPatch([(4,7),(0,3)],[3,3])
15418 amr[1].addPatch([(4,7),(3,6)],[3,3])
15419 amr.addPatch([(0,3),(6,10)],[2,2])
15420 self.assertEqual(([(30,39),(27,36)],[6,6]),amr[1][3].getMesh().positionRelativeToGodFather())
15421 self.assertEqual(([(6,16),(6,12)],[2,2]),amr[1].getMesh().positionRelativeToGodFather())
15422 self.assertTrue(not MEDCouplingStructuredMesh.AreRangesIntersect([(30,39),(27,36)],[(6,16),(6,12)]))
15423 self.assertTrue(MEDCouplingStructuredMesh.AreRangesIntersect([(30,39),(27,36)],[(28,32),(35,37)]))
15424 da=DataArrayDouble([0.,1.,2.,3.,4.,5.,6.,7.,8.,9.,10.,11.])
15425 MEDCouplingStructuredMesh.AssignPartOfFieldOfDoubleUsing([3,4],da,[(1,3),(2,3)],DataArrayDouble([7.7,8.8]))
15426 self.assertTrue(da.isEqual(DataArrayDouble([0.,1.,2.,3.,4.,5.,6.,7.7,8.8,9.,10.,11.]),1e-12))
15427 att=MEDCouplingAMRAttribute(amr,[("YY",1)],szGhost)
15428 att.spillNatures([ConservativeVolumic])
15430 yy=att.getFieldOn(amr,"YY") ; yy.iota(0.01)
15431 yy=att.getFieldOn(amr[0].getMesh(),"YY") ; yy.iota(0.02)
15432 yy=att.getFieldOn(amr[1].getMesh(),"YY") ; yy.iota(0.03)
15433 yy=att.getFieldOn(amr[0][0].getMesh(),"YY") ; yy.iota(0.04)
15434 yy=att.getFieldOn(amr[0][1].getMesh(),"YY") ; yy.iota(0.05)
15435 yy=att.getFieldOn(amr[0][2].getMesh(),"YY") ; yy.iota(0.06)
15436 yy=att.getFieldOn(amr[1][0].getMesh(),"YY") ; yy.iota(0.07)
15437 yy=att.getFieldOn(amr[1][1].getMesh(),"YY") ; yy.iota(0.08)
15438 yy=att.getFieldOn(amr[1][2].getMesh(),"YY") ; yy.iota(0.09)
15439 yy=att.getFieldOn(amr[1][3].getMesh(),"YY") ; yy.iota(0.10)
15440 yy=att.getFieldOn(amr[2].getMesh(),"YY") ; yy.iota(0.11)
15441 att2=att.deepCpy() ; att3=att2.deepCpy() ; att4=att3.deepCpy() ; att5=att4.deepCpy() ; att6=att5.deepCpy()
15443 att.synchronizeFineToCoarseBetween(2,1)
15445 for pos in [(),(0,0),(0,1),(0,2),(1,0),(1,1),(1,2),(1,3)]:
15446 self.assertTrue(att.getFieldOn(att.getMyGodFather().getMeshAtPosition(pos),"YY").isEqual(att2.getFieldOn(att2.getMyGodFather().getMeshAtPosition(pos),"YY"),1e-12))
15448 for pos in [(0,),(1,)]:
15449 self.assertTrue(not att.getFieldOn(att.getMyGodFather().getMeshAtPosition(pos),"YY").isEqual(att2.getFieldOn(att2.getMyGodFather().getMeshAtPosition(pos),"YY"),1e-12))
15451 self.assertTrue(att.getFieldOn(amr[0].getMesh(),"YY").isEqualWithoutConsideringStr(DataArrayDouble([0.02,1.02,2.02,3.02,4.02,5.02,6.02,7.02,8.02,9.02,10.02,11.02,12.02,13.02,14.02,15.02,16.02,17.02,18.02,19.02,20.02,21.02,22.02,23.02,24.02,25.02,26.02,27.02,28.02,29.02,30.02,31.02,51.05,54.05,57.05,60.05,36.02,37.02,38.02,39.02,40.02,41.02,42.02,43.02,44.02,45.02,99.05,102.05,105.05,108.05,50.02,51.02,52.02,53.02,54.02,55.02,56.02,57.02,58.02,59.02,147.05,150.05,153.05,156.05,51.06,54.06,57.06,60.06,68.02,69.02,70.02,71.02,105.04,108.04,111.04,114.04,117.04,120.04,123.04,126.04,129.04,132.04,82.02,83.02,84.02,85.02,207.04,210.04,213.04,216.04,219.04,222.04,225.04,228.04,231.04,234.04,96.02,97.02,98.02,99.02,309.04,312.04,315.04,318.04,321.04,324.04,327.04,330.04,333.04,336.04,110.02,111.02,112.02,113.02,114.02,115.02,116.02,117.02,118.02,119.02,120.02,121.02,122.02,123.02,124.02,125.02,126.02,127.02,128.02,129.02,130.02,131.02,132.02,133.02,134.02,135.02,136.02,137.02,138.02,139.02]),1e-12))
15452 self.assertTrue(att.getFieldOn(amr[1].getMesh(),"YY").isEqualWithoutConsideringStr(DataArrayDouble([0.03,1.03,2.03,3.03,4.03,5.03,6.03,7.03,8.03,9.03,10.03,11.03,12.03,13.03,14.03,15.03,16.03,17.03,18.03,19.03,20.03,21.03,22.03,23.03,24.03,25.03,26.03,27.03,28.03,29.03,51.07,54.07,57.07,60.07,42.09,45.09,48.09,42.08,45.08,48.08,40.03,41.03,42.03,43.03,99.07,102.07,105.07,108.07,81.09,84.09,87.09,81.08,84.08,87.08,54.03,55.03,56.03,57.03,147.07,150.07,153.07,156.07,120.09,123.09,126.09,120.08,123.08,126.08,68.03,69.03,70.03,71.03,195.07,198.07,201.07,204.07,42.1,45.1,48.1,159.08,162.08,165.08,82.03,83.03,84.03,85.03,243.07,246.07,249.07,252.07,81.1,84.1,87.1,93.03,94.03,95.03,96.03,97.03,98.03,99.03,291.07,294.07,297.07,300.07,120.1,123.1,126.1,107.03,108.03,109.03,110.03,111.03,112.03,113.03,114.03,115.03,116.03,117.03,118.03,119.03,120.03,121.03,122.03,123.03,124.03,125.03,126.03,127.03,128.03,129.03,130.03,131.03,132.03,133.03,134.03,135.03,136.03,137.03,138.03,139.03]),1e-12))
15455 att2.synchronizeAllGhostZonesOfDirectChidrenOf(att2.getMyGodFather())
15456 ### Only the 3 (0) (1) and (2) are modified (0,0), (0,1), (0,2), (1,0), (1,1), (1,2), (1,3) are not modified.
15457 exp2=DataArrayDouble([0.11,1.11,2.11,3.11,4.11,5.11,6.11,7.11,86.03,87.03,10.11,11.11,12.11,13.11,14.11,15.11,16.11,17.11,100.03,101.03,20.11,21.11,22.11,23.11,24.11,25.11,26.11,27.11,28.11,29.11,30.11,31.11,32.11,33.11,34.11,35.11,36.11,37.11,38.11,39.11,40.11,41.11,42.11,43.11,44.11,45.11,46.11,47.11,48.11,49.11,50.11,51.11,52.11,53.11,54.11,55.11,56.11,57.11,58.11,59.11,60.11,61.11,62.11,63.11,64.11,65.11,66.11,67.11,68.11,69.11,70.11,71.11,72.11,73.11,74.11,75.11,76.11,77.11,78.11,79.11,80.11,81.11,82.11,83.11,84.11,85.11,86.11,87.11,88.11,89.11,90.11,91.11,92.11,93.11,94.11,95.11,96.11,97.11,98.11,99.11,100.11,101.11,102.11,103.11,104.11,105.11,106.11,107.11,108.11,109.11,110.11,111.11,112.11,113.11,114.11,115.11,116.11,117.11,118.11,119.11])
15458 self.assertTrue(att2.getFieldOn(att2.getMyGodFather().getMeshAtPosition((2,)),"YY").isEqualWithoutConsideringStr(exp2,1e-12))
15459 exp3=DataArrayDouble([0.03,1.03,86.02,87.02,88.02,89.02,90.02,91.02,92.02,93.02,94.02,95.02,12.03,13.03,14.03,15.03,100.02,101.02,102.02,103.02,104.02,105.02,106.02,107.02,108.02,109.02,26.03,27.03,28.03,29.03,30.03,31.03,32.03,33.03,34.03,35.03,36.03,37.03,38.03,39.03,40.03,41.03,42.03,43.03,44.03,45.03,46.03,47.03,48.03,49.03,50.03,51.03,52.03,53.03,54.03,55.03,56.03,57.03,58.03,59.03,60.03,61.03,62.03,63.03,64.03,65.03,66.03,67.03,68.03,69.03,70.03,71.03,72.03,73.03,74.03,75.03,76.03,77.03,78.03,79.03,80.03,81.03,82.03,83.03,84.03,85.03,86.03,87.03,88.03,89.03,90.03,91.03,92.03,93.03,94.03,95.03,96.03,97.03,98.03,99.03,100.03,101.03,102.03,103.03,104.03,105.03,106.03,107.03,108.03,109.03,110.03,111.03,26.11,27.11,114.03,115.03,116.03,117.03,118.03,119.03,120.03,121.03,122.03,123.03,124.03,125.03,36.11,37.11,128.03,129.03,130.03,131.03,132.03,133.03,134.03,135.03,136.03,137.03,138.03,139.03])
15460 self.assertTrue(att2.getFieldOn(att2.getMyGodFather().getMeshAtPosition((1,)),"YY").isEqualWithoutConsideringStr(exp3,1e-12))
15461 exp4=DataArrayDouble([0.02,1.02,2.02,3.02,4.02,5.02,6.02,7.02,8.02,9.02,10.02,11.02,12.02,13.02,14.02,15.02,16.02,17.02,18.02,19.02,20.02,21.02,22.02,23.02,24.02,25.02,26.02,27.02,28.02,29.02,30.02,31.02,32.02,33.02,34.02,35.02,36.02,37.02,38.02,39.02,40.02,41.02,42.02,43.02,44.02,45.02,46.02,47.02,48.02,49.02,50.02,51.02,52.02,53.02,54.02,55.02,56.02,57.02,58.02,59.02,60.02,61.02,62.02,63.02,64.02,65.02,66.02,67.02,68.02,69.02,70.02,71.02,72.02,73.02,74.02,75.02,76.02,77.02,78.02,79.02,80.02,81.02,82.02,83.02,84.02,85.02,86.02,87.02,88.02,89.02,90.02,91.02,92.02,93.02,94.02,95.02,96.02,97.02,98.02,99.02,100.02,101.02,102.02,103.02,104.02,105.02,106.02,107.02,108.02,109.02,110.02,111.02,112.02,113.02,30.03,31.03,32.03,33.03,34.03,35.03,36.03,37.03,38.03,39.03,124.02,125.02,126.02,127.02,44.03,45.03,46.03,47.03,48.03,49.03,50.03,51.03,52.03,53.03,138.02,139.02])
15462 self.assertTrue(att2.getFieldOn(att2.getMyGodFather().getMeshAtPosition((0,)),"YY").isEqualWithoutConsideringStr(exp4,1e-12))
15463 for pos,iot in [((),0.01),((0,0),0.04),((0,1),0.05),((0,2),0.06),((1,0),0.07),((1,1),0.08),((1,2),0.09),((1,3),0.10)]:
15464 vals=att2.getFieldOn(att2.getMyGodFather().getMeshAtPosition(pos),"YY")
15465 l=vals.getNumberOfTuples()
15466 exps=DataArrayDouble(l) ; exps.iota(iot)
15467 self.assertTrue(vals.isEqualWithoutConsideringStr(exps,1e-12))
15471 att3.synchronizeCoarseToFineBetween(1,2)
15473 for pos in [(),(0,),(1,),(2,)]:
15474 self.assertTrue(att3.getFieldOn(att3.getMyGodFather().getMeshAtPosition(pos),"YY").isEqual(att4.getFieldOn(att4.getMyGodFather().getMeshAtPosition(pos),"YY"),1e-12))
15476 exp5=DataArrayDouble([57.02,57.02,58.02,58.02,58.02,59.02,59.02,59.02,60.02,60.02,60.02,61.02,61.02,61.02,62.02,62.02,62.02,63.02,63.02,63.02,64.02,64.02,64.02,65.02,65.02,65.02,66.02,66.02,66.02,67.02,67.02,67.02,68.02,68.02,57.02,57.02,58.02,58.02,58.02,59.02,59.02,59.02,60.02,60.02,60.02,61.02,61.02,61.02,62.02,62.02,62.02,63.02,63.02,63.02,64.02,64.02,64.02,65.02,65.02,65.02,66.02,66.02,66.02,67.02,67.02,67.02,68.02,68.02,71.02,71.02,72.02,72.02,72.02,73.02,73.02,73.02,74.02,74.02,74.02,75.02,75.02,75.02,76.02,76.02,76.02,77.02,77.02,77.02,78.02,78.02,78.02,79.02,79.02,79.02,80.02,80.02,80.02,81.02,81.02,81.02,82.02,82.02,71.02,71.02,72.02,72.02,72.02,73.02,73.02,73.02,74.02,74.02,74.02,75.02,75.02,75.02,76.02,76.02,76.02,77.02,77.02,77.02,78.02,78.02,78.02,79.02,79.02,79.02,80.02,80.02,80.02,81.02,81.02,81.02,82.02,82.02,71.02,71.02,72.02,72.02,72.02,73.02,73.02,73.02,74.02,74.02,74.02,75.02,75.02,75.02,76.02,76.02,76.02,77.02,77.02,77.02,78.02,78.02,78.02,79.02,79.02,79.02,80.02,80.02,80.02,81.02,81.02,81.02,82.02,82.02,85.02,85.02,86.02,86.02,86.02,87.02,87.02,87.02,88.02,88.02,88.02,89.02,89.02,89.02,90.02,90.02,90.02,91.02,91.02,91.02,92.02,92.02,92.02,93.02,93.02,93.02,94.02,94.02,94.02,95.02,95.02,95.02,96.02,96.02,85.02,85.02,86.02,86.02,86.02,87.02,87.02,87.02,88.02,88.02,88.02,89.02,89.02,89.02,90.02,90.02,90.02,91.02,91.02,91.02,92.02,92.02,92.02,93.02,93.02,93.02,94.02,94.02,94.02,95.02,95.02,95.02,96.02,96.02,85.02,85.02,86.02,86.02,86.02,87.02,87.02,87.02,88.02,88.02,88.02,89.02,89.02,89.02,90.02,90.02,90.02,91.02,91.02,91.02,92.02,92.02,92.02,93.02,93.02,93.02,94.02,94.02,94.02,95.02,95.02,95.02,96.02,96.02,99.02,99.02,100.02,100.02,100.02,101.02,101.02,101.02,102.02,102.02,102.02,103.02,103.02,103.02,104.02,104.02,104.02,105.02,105.02,105.02,106.02,106.02,106.02,107.02,107.02,107.02,108.02,108.02,108.02,109.02,109.02,109.02,110.02,110.02,99.02,99.02,100.02,100.02,100.02,101.02,101.02,101.02,102.02,102.02,102.02,103.02,103.02,103.02,104.02,104.02,104.02,105.02,105.02,105.02,106.02,106.02,106.02,107.02,107.02,107.02,108.02,108.02,108.02,109.02,109.02,109.02,110.02,110.02,99.02,99.02,100.02,100.02,100.02,101.02,101.02,101.02,102.02,102.02,102.02,103.02,103.02,103.02,104.02,104.02,104.02,105.02,105.02,105.02,106.02,106.02,106.02,107.02,107.02,107.02,108.02,108.02,108.02,109.02,109.02,109.02,110.02,110.02,113.02,113.02,114.02,114.02,114.02,115.02,115.02,115.02,116.02,116.02,116.02,117.02,117.02,117.02,118.02,118.02,118.02,119.02,119.02,119.02,120.02,120.02,120.02,121.02,121.02,121.02,122.02,122.02,122.02,123.02,123.02,123.02,124.02,124.02,113.02,113.02,114.02,114.02,114.02,115.02,115.02,115.02,116.02,116.02,116.02,117.02,117.02,117.02,118.02,118.02,118.02,119.02,119.02,119.02,120.02,120.02,120.02,121.02,121.02,121.02,122.02,122.02,122.02,123.02,123.02,123.02,124.02,124.02])
15477 self.assertTrue(att3.getFieldOn(att3.getMyGodFather().getMeshAtPosition((0,0)),"YY").isEqualWithoutConsideringStr(exp5,1e-12))
15478 exp6=DataArrayDouble([17.02,17.02,18.02,18.02,18.02,19.02,19.02,19.02,20.02,20.02,20.02,21.02,21.02,21.02,22.02,22.02,17.02,17.02,18.02,18.02,18.02,19.02,19.02,19.02,20.02,20.02,20.02,21.02,21.02,21.02,22.02,22.02,31.02,31.02,32.02,32.02,32.02,33.02,33.02,33.02,34.02,34.02,34.02,35.02,35.02,35.02,36.02,36.02,31.02,31.02,32.02,32.02,32.02,33.02,33.02,33.02,34.02,34.02,34.02,35.02,35.02,35.02,36.02,36.02,31.02,31.02,32.02,32.02,32.02,33.02,33.02,33.02,34.02,34.02,34.02,35.02,35.02,35.02,36.02,36.02,45.02,45.02,46.02,46.02,46.02,47.02,47.02,47.02,48.02,48.02,48.02,49.02,49.02,49.02,50.02,50.02,45.02,45.02,46.02,46.02,46.02,47.02,47.02,47.02,48.02,48.02,48.02,49.02,49.02,49.02,50.02,50.02,45.02,45.02,46.02,46.02,46.02,47.02,47.02,47.02,48.02,48.02,48.02,49.02,49.02,49.02,50.02,50.02,59.02,59.02,60.02,60.02,60.02,61.02,61.02,61.02,62.02,62.02,62.02,63.02,63.02,63.02,64.02,64.02,59.02,59.02,60.02,60.02,60.02,61.02,61.02,61.02,62.02,62.02,62.02,63.02,63.02,63.02,64.02,64.02,59.02,59.02,60.02,60.02,60.02,61.02,61.02,61.02,62.02,62.02,62.02,63.02,63.02,63.02,64.02,64.02,73.02,73.02,74.02,74.02,74.02,75.02,75.02,75.02,76.02,76.02,76.02,77.02,77.02,77.02,78.02,78.02,73.02,73.02,74.02,74.02,74.02,75.02,75.02,75.02,76.02,76.02,76.02,77.02,77.02,77.02,78.02,78.02])
15479 self.assertTrue(att3.getFieldOn(att3.getMyGodFather().getMeshAtPosition((0,1)),"YY").isEqualWithoutConsideringStr(exp6,1e-12))
15480 exp7=DataArrayDouble([49.02,49.02,50.02,50.02,50.02,51.02,51.02,51.02,52.02,52.02,52.02,53.02,53.02,53.02,54.02,54.02,49.02,49.02,50.02,50.02,50.02,51.02,51.02,51.02,52.02,52.02,52.02,53.02,53.02,53.02,54.02,54.02,63.02,63.02,64.02,64.02,64.02,65.02,65.02,65.02,66.02,66.02,66.02,67.02,67.02,67.02,68.02,68.02,63.02,63.02,64.02,64.02,64.02,65.02,65.02,65.02,66.02,66.02,66.02,67.02,67.02,67.02,68.02,68.02,63.02,63.02,64.02,64.02,64.02,65.02,65.02,65.02,66.02,66.02,66.02,67.02,67.02,67.02,68.02,68.02,77.02,77.02,78.02,78.02,78.02,79.02,79.02,79.02,80.02,80.02,80.02,81.02,81.02,81.02,82.02,82.02,77.02,77.02,78.02,78.02,78.02,79.02,79.02,79.02,80.02,80.02,80.02,81.02,81.02,81.02,82.02,82.02])
15481 self.assertTrue(att3.getFieldOn(att3.getMyGodFather().getMeshAtPosition((0,2)),"YY").isEqualWithoutConsideringStr(exp7,1e-12))
15482 exp8=DataArrayDouble([15.03,15.03,16.03,16.03,16.03,17.03,17.03,17.03,18.03,18.03,18.03,19.03,19.03,19.03,20.03,20.03,15.03,15.03,16.03,16.03,16.03,17.03,17.03,17.03,18.03,18.03,18.03,19.03,19.03,19.03,20.03,20.03,29.03,29.03,30.03,30.03,30.03,31.03,31.03,31.03,32.03,32.03,32.03,33.03,33.03,33.03,34.03,34.03,29.03,29.03,30.03,30.03,30.03,31.03,31.03,31.03,32.03,32.03,32.03,33.03,33.03,33.03,34.03,34.03,29.03,29.03,30.03,30.03,30.03,31.03,31.03,31.03,32.03,32.03,32.03,33.03,33.03,33.03,34.03,34.03,43.03,43.03,44.03,44.03,44.03,45.03,45.03,45.03,46.03,46.03,46.03,47.03,47.03,47.03,48.03,48.03,43.03,43.03,44.03,44.03,44.03,45.03,45.03,45.03,46.03,46.03,46.03,47.03,47.03,47.03,48.03,48.03,43.03,43.03,44.03,44.03,44.03,45.03,45.03,45.03,46.03,46.03,46.03,47.03,47.03,47.03,48.03,48.03,57.03,57.03,58.03,58.03,58.03,59.03,59.03,59.03,60.03,60.03,60.03,61.03,61.03,61.03,62.03,62.03,57.03,57.03,58.03,58.03,58.03,59.03,59.03,59.03,60.03,60.03,60.03,61.03,61.03,61.03,62.03,62.03,57.03,57.03,58.03,58.03,58.03,59.03,59.03,59.03,60.03,60.03,60.03,61.03,61.03,61.03,62.03,62.03,71.03,71.03,72.03,72.03,72.03,73.03,73.03,73.03,74.03,74.03,74.03,75.03,75.03,75.03,76.03,76.03,71.03,71.03,72.03,72.03,72.03,73.03,73.03,73.03,74.03,74.03,74.03,75.03,75.03,75.03,76.03,76.03,71.03,71.03,72.03,72.03,72.03,73.03,73.03,73.03,74.03,74.03,74.03,75.03,75.03,75.03,76.03,76.03,85.03,85.03,86.03,86.03,86.03,87.03,87.03,87.03,88.03,88.03,88.03,89.03,89.03,89.03,90.03,90.03,85.03,85.03,86.03,86.03,86.03,87.03,87.03,87.03,88.03,88.03,88.03,89.03,89.03,89.03,90.03,90.03,85.03,85.03,86.03,86.03,86.03,87.03,87.03,87.03,88.03,88.03,88.03,89.03,89.03,89.03,90.03,90.03,99.03,99.03,100.03,100.03,100.03,101.03,101.03,101.03,102.03,102.03,102.03,103.03,103.03,103.03,104.03,104.03,99.03,99.03,100.03,100.03,100.03,101.03,101.03,101.03,102.03,102.03,102.03,103.03,103.03,103.03,104.03,104.03,99.03,99.03,100.03,100.03,100.03,101.03,101.03,101.03,102.03,102.03,102.03,103.03,103.03,103.03,104.03,104.03,113.03,113.03,114.03,114.03,114.03,115.03,115.03,115.03,116.03,116.03,116.03,117.03,117.03,117.03,118.03,118.03,113.03,113.03,114.03,114.03,114.03,115.03,115.03,115.03,116.03,116.03,116.03,117.03,117.03,117.03,118.03,118.03])
15483 self.assertTrue(att3.getFieldOn(att3.getMyGodFather().getMeshAtPosition((1,0)),"YY").isEqualWithoutConsideringStr(exp8,1e-12))
15484 exp9=DataArrayDouble([22.03,22.03,23.03,23.03,23.03,24.03,24.03,24.03,25.03,25.03,25.03,26.03,26.03,22.03,22.03,23.03,23.03,23.03,24.03,24.03,24.03,25.03,25.03,25.03,26.03,26.03,36.03,36.03,37.03,37.03,37.03,38.03,38.03,38.03,39.03,39.03,39.03,40.03,40.03,36.03,36.03,37.03,37.03,37.03,38.03,38.03,38.03,39.03,39.03,39.03,40.03,40.03,36.03,36.03,37.03,37.03,37.03,38.03,38.03,38.03,39.03,39.03,39.03,40.03,40.03,50.03,50.03,51.03,51.03,51.03,52.03,52.03,52.03,53.03,53.03,53.03,54.03,54.03,50.03,50.03,51.03,51.03,51.03,52.03,52.03,52.03,53.03,53.03,53.03,54.03,54.03,50.03,50.03,51.03,51.03,51.03,52.03,52.03,52.03,53.03,53.03,53.03,54.03,54.03,64.03,64.03,65.03,65.03,65.03,66.03,66.03,66.03,67.03,67.03,67.03,68.03,68.03,64.03,64.03,65.03,65.03,65.03,66.03,66.03,66.03,67.03,67.03,67.03,68.03,68.03,64.03,64.03,65.03,65.03,65.03,66.03,66.03,66.03,67.03,67.03,67.03,68.03,68.03,78.03,78.03,79.03,79.03,79.03,80.03,80.03,80.03,81.03,81.03,81.03,82.03,82.03,78.03,78.03,79.03,79.03,79.03,80.03,80.03,80.03,81.03,81.03,81.03,82.03,82.03,78.03,78.03,79.03,79.03,79.03,80.03,80.03,80.03,81.03,81.03,81.03,82.03,82.03,92.03,92.03,93.03,93.03,93.03,94.03,94.03,94.03,95.03,95.03,95.03,96.03,96.03,92.03,92.03,93.03,93.03,93.03,94.03,94.03,94.03,95.03,95.03,95.03,96.03,96.03])
15485 self.assertTrue(att3.getFieldOn(att3.getMyGodFather().getMeshAtPosition((1,1)),"YY").isEqualWithoutConsideringStr(exp9,1e-12))
15486 exp10=DataArrayDouble([19.03,19.03,20.03,20.03,20.03,21.03,21.03,21.03,22.03,22.03,22.03,23.03,23.03,19.03,19.03,20.03,20.03,20.03,21.03,21.03,21.03,22.03,22.03,22.03,23.03,23.03,33.03,33.03,34.03,34.03,34.03,35.03,35.03,35.03,36.03,36.03,36.03,37.03,37.03,33.03,33.03,34.03,34.03,34.03,35.03,35.03,35.03,36.03,36.03,36.03,37.03,37.03,33.03,33.03,34.03,34.03,34.03,35.03,35.03,35.03,36.03,36.03,36.03,37.03,37.03,47.03,47.03,48.03,48.03,48.03,49.03,49.03,49.03,50.03,50.03,50.03,51.03,51.03,47.03,47.03,48.03,48.03,48.03,49.03,49.03,49.03,50.03,50.03,50.03,51.03,51.03,47.03,47.03,48.03,48.03,48.03,49.03,49.03,49.03,50.03,50.03,50.03,51.03,51.03,61.03,61.03,62.03,62.03,62.03,63.03,63.03,63.03,64.03,64.03,64.03,65.03,65.03,61.03,61.03,62.03,62.03,62.03,63.03,63.03,63.03,64.03,64.03,64.03,65.03,65.03,61.03,61.03,62.03,62.03,62.03,63.03,63.03,63.03,64.03,64.03,64.03,65.03,65.03,75.03,75.03,76.03,76.03,76.03,77.03,77.03,77.03,78.03,78.03,78.03,79.03,79.03,75.03,75.03,76.03,76.03,76.03,77.03,77.03,77.03,78.03,78.03,78.03,79.03,79.03])
15487 self.assertTrue(att3.getFieldOn(att3.getMyGodFather().getMeshAtPosition((1,2)),"YY").isEqualWithoutConsideringStr(exp10,1e-12))
15488 exp11=DataArrayDouble([61.03,61.03,62.03,62.03,62.03,63.03,63.03,63.03,64.03,64.03,64.03,65.03,65.03,61.03,61.03,62.03,62.03,62.03,63.03,63.03,63.03,64.03,64.03,64.03,65.03,65.03,75.03,75.03,76.03,76.03,76.03,77.03,77.03,77.03,78.03,78.03,78.03,79.03,79.03,75.03,75.03,76.03,76.03,76.03,77.03,77.03,77.03,78.03,78.03,78.03,79.03,79.03,75.03,75.03,76.03,76.03,76.03,77.03,77.03,77.03,78.03,78.03,78.03,79.03,79.03,89.03,89.03,90.03,90.03,90.03,91.03,91.03,91.03,92.03,92.03,92.03,93.03,93.03,89.03,89.03,90.03,90.03,90.03,91.03,91.03,91.03,92.03,92.03,92.03,93.03,93.03,89.03,89.03,90.03,90.03,90.03,91.03,91.03,91.03,92.03,92.03,92.03,93.03,93.03,103.03,103.03,104.03,104.03,104.03,105.03,105.03,105.03,106.03,106.03,106.03,107.03,107.03,103.03,103.03,104.03,104.03,104.03,105.03,105.03,105.03,106.03,106.03,106.03,107.03,107.03,103.03,103.03,104.03,104.03,104.03,105.03,105.03,105.03,106.03,106.03,106.03,107.03,107.03,117.03,117.03,118.03,118.03,118.03,119.03,119.03,119.03,120.03,120.03,120.03,121.03,121.03,117.03,117.03,118.03,118.03,118.03,119.03,119.03,119.03,120.03,120.03,120.03,121.03,121.03])
15489 self.assertTrue(att3.getFieldOn(att3.getMyGodFather().getMeshAtPosition((1,3)),"YY").isEqualWithoutConsideringStr(exp11,1e-12))
15492 att4.synchronizeAllGhostZonesAtASpecifiedLevel(2)
15493 for pos in [(),(0,),(1,),(2,)]:
15494 self.assertTrue(att4.getFieldOn(att4.getMyGodFather().getMeshAtPosition(pos),"YY").isEqual(att5.getFieldOn(att5.getMyGodFather().getMeshAtPosition(pos),"YY"),1e-12))
15496 exp12=DataArrayDouble([0.04,1.04,2.04,3.04,4.04,5.04,6.04,7.04,146.05,147.05,148.05,149.05,150.05,151.05,152.05,153.05,154.05,155.05,156.05,157.05,50.06,51.06,52.06,53.06,54.06,55.06,56.06,57.06,58.06,59.06,60.06,61.06,32.04,33.04,34.04,35.04,36.04,37.04,38.04,39.04,40.04,41.04,162.05,163.05,164.05,165.05,166.05,167.05,168.05,169.05,170.05,171.05,172.05,173.05,66.06,67.06,68.06,69.06,70.06,71.06,72.06,73.06,74.06,75.06,76.06,77.06,66.04,67.04,68.04,69.04,70.04,71.04,72.04,73.04,74.04,75.04,76.04,77.04,78.04,79.04,80.04,81.04,82.04,83.04,84.04,85.04,86.04,87.04,88.04,89.04,90.04,91.04,92.04,93.04,94.04,95.04,96.04,97.04,98.04,99.04,100.04,101.04,102.04,103.04,104.04,105.04,106.04,107.04,108.04,109.04,110.04,111.04,112.04,113.04,114.04,115.04,116.04,117.04,118.04,119.04,120.04,121.04,122.04,123.04,124.04,125.04,126.04,127.04,128.04,129.04,130.04,131.04,132.04,133.04,134.04,135.04,136.04,137.04,138.04,139.04,140.04,141.04,142.04,143.04,144.04,145.04,146.04,147.04,148.04,149.04,150.04,151.04,152.04,153.04,154.04,155.04,156.04,157.04,158.04,159.04,160.04,161.04,162.04,163.04,164.04,165.04,166.04,167.04,168.04,169.04,170.04,171.04,172.04,173.04,174.04,175.04,176.04,177.04,178.04,179.04,180.04,181.04,182.04,183.04,184.04,185.04,186.04,187.04,188.04,189.04,190.04,191.04,192.04,193.04,194.04,195.04,196.04,197.04,198.04,199.04,200.04,201.04,202.04,203.04,204.04,205.04,206.04,207.04,208.04,209.04,210.04,211.04,212.04,213.04,214.04,215.04,216.04,217.04,218.04,219.04,220.04,221.04,222.04,223.04,224.04,225.04,226.04,227.04,228.04,229.04,230.04,231.04,232.04,233.04,234.04,235.04,236.04,237.04,238.04,239.04,240.04,241.04,242.04,243.04,244.04,245.04,246.04,247.04,248.04,249.04,250.04,251.04,252.04,253.04,254.04,255.04,256.04,257.04,258.04,259.04,260.04,261.04,262.04,263.04,264.04,265.04,266.04,267.04,268.04,269.04,270.04,271.04,272.04,273.04,274.04,275.04,276.04,277.04,278.04,279.04,280.04,281.04,282.04,283.04,284.04,285.04,286.04,287.04,288.04,289.04,290.04,291.04,292.04,293.04,294.04,295.04,296.04,297.04,298.04,299.04,300.04,301.04,302.04,303.04,304.04,305.04,306.04,307.04,308.04,309.04,310.04,311.04,312.04,313.04,314.04,315.04,316.04,317.04,318.04,319.04,320.04,321.04,322.04,323.04,324.04,325.04,326.04,327.04,328.04,329.04,330.04,331.04,332.04,333.04,334.04,335.04,336.04,337.04,338.04,339.04,340.04,341.04,342.04,343.04,344.04,345.04,346.04,347.04,348.04,349.04,350.04,351.04,352.04,353.04,354.04,355.04,356.04,357.04,358.04,359.04,360.04,361.04,362.04,363.04,364.04,365.04,366.04,367.04,368.04,369.04,370.04,371.04,372.04,373.04,374.04,375.04,34.07,35.07,36.07,37.07,38.07,39.07,40.07,41.07,42.07,43.07,44.07,45.07,28.09,29.09,30.09,31.09,32.09,33.09,34.09,35.09,36.09,28.08,29.08,30.08,31.08,32.08,33.08,34.08,35.08,36.08,406.04,407.04,408.04,409.04,50.07,51.07,52.07,53.07,54.07,55.07,56.07,57.07,58.07,59.07,60.07,61.07,41.09,42.09,43.09,44.09,45.09,46.09,47.09,48.09,49.09,41.08,42.08,43.08,44.08,45.08,46.08,47.08,48.08,49.08,440.04,441.04])
15497 self.assertTrue(att4.getFieldOn(att4.getMyGodFather().getMeshAtPosition((0,0)),"YY").isEqualWithoutConsideringStr(exp12,1e-12))
15498 exp13=DataArrayDouble([[0.05,1.05,2.05,3.05,4.05,5.05,6.05,7.05,8.05,9.05,10.05,11.05,12.05,13.05,14.05,15.05,16.05,17.05,18.05,19.05,20.05,21.05,22.05,23.05,24.05,25.05,26.05,27.05,28.05,29.05,30.05,31.05,32.05,33.05,34.05,35.05,36.05,37.05,38.05,39.05,40.05,41.05,42.05,43.05,44.05,45.05,46.05,47.05,48.05,49.05,50.05,51.05,52.05,53.05,54.05,55.05,56.05,57.05,58.05,59.05,60.05,61.05,62.05,63.05,64.05,65.05,66.05,67.05,68.05,69.05,70.05,71.05,72.05,73.05,74.05,75.05,76.05,77.05,78.05,79.05,80.05,81.05,82.05,83.05,84.05,85.05,86.05,87.05,88.05,89.05,90.05,91.05,92.05,93.05,94.05,95.05,96.05,97.05,98.05,99.05,100.05,101.05,102.05,103.05,104.05,105.05,106.05,107.05,108.05,109.05,110.05,111.05,112.05,113.05,114.05,115.05,116.05,117.05,118.05,119.05,120.05,121.05,122.05,123.05,124.05,125.05,126.05,127.05,128.05,129.05,130.05,131.05,132.05,133.05,134.05,135.05,136.05,137.05,138.05,139.05,140.05,141.05,34.06,35.06,144.05,145.05,146.05,147.05,148.05,149.05,150.05,151.05,152.05,153.05,154.05,155.05,156.05,157.05,50.06,51.06,160.05,161.05,162.05,163.05,164.05,165.05,166.05,167.05,168.05,169.05,170.05,171.05,172.05,173.05,66.06,67.06,74.04,75.04,76.04,77.04,78.04,79.04,80.04,81.04,82.04,83.04,84.04,85.04,86.04,87.04,88.04,89.04,108.04,109.04,110.04,111.04,112.04,113.04,114.04,115.04,116.04,117.04,118.04,119.04,120.04,121.04,122.04,123.04]])
15499 self.assertTrue(att4.getFieldOn(att4.getMyGodFather().getMeshAtPosition((0,1)),"YY").isEqualWithoutConsideringStr(exp13,1e-12))
15500 exp14=DataArrayDouble([108.05,109.05,2.06,3.06,4.06,5.06,6.06,7.06,8.06,9.06,10.06,11.06,12.06,13.06,14.06,15.06,124.05,125.05,18.06,19.06,20.06,21.06,22.06,23.06,24.06,25.06,26.06,27.06,28.06,29.06,30.06,31.06,140.05,141.05,34.06,35.06,36.06,37.06,38.06,39.06,40.06,41.06,42.06,43.06,44.06,45.06,46.06,47.06,156.05,157.05,50.06,51.06,52.06,53.06,54.06,55.06,56.06,57.06,58.06,59.06,60.06,61.06,62.06,63.06,172.05,173.05,66.06,67.06,68.06,69.06,70.06,71.06,72.06,73.06,74.06,75.06,76.06,77.06,78.06,79.06,86.04,87.04,88.04,89.04,90.04,91.04,92.04,93.04,94.04,95.04,96.04,97.04,98.04,99.04,94.06,95.06,120.04,121.04,122.04,123.04,124.04,125.04,126.04,127.04,128.04,129.04,130.04,131.04,132.04,133.04,110.06,111.06])
15501 self.assertTrue(att4.getFieldOn(att4.getMyGodFather().getMeshAtPosition((0,2)),"YY").isEqualWithoutConsideringStr(exp14,1e-12))
15502 exp15=DataArrayDouble([0.07,1.07,308.04,309.04,310.04,311.04,312.04,313.04,314.04,315.04,316.04,317.04,318.04,319.04,320.04,321.04,16.07,17.07,342.04,343.04,344.04,345.04,346.04,347.04,348.04,349.04,350.04,351.04,352.04,353.04,354.04,355.04,32.07,33.07,34.07,35.07,36.07,37.07,38.07,39.07,40.07,41.07,42.07,43.07,44.07,45.07,28.09,29.09,48.07,49.07,50.07,51.07,52.07,53.07,54.07,55.07,56.07,57.07,58.07,59.07,60.07,61.07,41.09,42.09,64.07,65.07,66.07,67.07,68.07,69.07,70.07,71.07,72.07,73.07,74.07,75.07,76.07,77.07,54.09,55.09,80.07,81.07,82.07,83.07,84.07,85.07,86.07,87.07,88.07,89.07,90.07,91.07,92.07,93.07,67.09,68.09,96.07,97.07,98.07,99.07,100.07,101.07,102.07,103.07,104.07,105.07,106.07,107.07,108.07,109.07,80.09,81.09,112.07,113.07,114.07,115.07,116.07,117.07,118.07,119.07,120.07,121.07,122.07,123.07,124.07,125.07,93.09,94.09,128.07,129.07,130.07,131.07,132.07,133.07,134.07,135.07,136.07,137.07,138.07,139.07,140.07,141.07,106.09,107.09,144.07,145.07,146.07,147.07,148.07,149.07,150.07,151.07,152.07,153.07,154.07,155.07,156.07,157.07,119.09,120.09,160.07,161.07,162.07,163.07,164.07,165.07,166.07,167.07,168.07,169.07,170.07,171.07,172.07,173.07,132.09,133.09,176.07,177.07,178.07,179.07,180.07,181.07,182.07,183.07,184.07,185.07,186.07,187.07,188.07,189.07,28.1,29.1,192.07,193.07,194.07,195.07,196.07,197.07,198.07,199.07,200.07,201.07,202.07,203.07,204.07,205.07,41.1,42.1,208.07,209.07,210.07,211.07,212.07,213.07,214.07,215.07,216.07,217.07,218.07,219.07,220.07,221.07,54.1,55.1,224.07,225.07,226.07,227.07,228.07,229.07,230.07,231.07,232.07,233.07,234.07,235.07,236.07,237.07,67.1,68.1,240.07,241.07,242.07,243.07,244.07,245.07,246.07,247.07,248.07,249.07,250.07,251.07,252.07,253.07,80.1,81.1,256.07,257.07,258.07,259.07,260.07,261.07,262.07,263.07,264.07,265.07,266.07,267.07,268.07,269.07,93.1,94.1,272.07,273.07,274.07,275.07,276.07,277.07,278.07,279.07,280.07,281.07,282.07,283.07,284.07,285.07,106.1,107.1,288.07,289.07,290.07,291.07,292.07,293.07,294.07,295.07,296.07,297.07,298.07,299.07,300.07,301.07,119.1,120.1,304.07,305.07,306.07,307.07,308.07,309.07,310.07,311.07,312.07,313.07,314.07,315.07,316.07,317.07,132.1,133.1,320.07,321.07,322.07,323.07,324.07,325.07,326.07,327.07,328.07,329.07,330.07,331.07,332.07,333.07,334.07,335.07,336.07,337.07,338.07,339.07,340.07,341.07,342.07,343.07,344.07,345.07,346.07,347.07,348.07,349.07,350.07,351.07])
15503 self.assertTrue(att4.getFieldOn(att4.getMyGodFather().getMeshAtPosition((1,0)),"YY").isEqualWithoutConsideringStr(exp15,1e-12))
15504 exp16=DataArrayDouble([327.04,328.04,329.04,330.04,331.04,332.04,333.04,334.04,335.04,336.04,337.04,11.08,12.08,361.04,362.04,363.04,364.04,365.04,366.04,367.04,368.04,369.04,370.04,371.04,24.08,25.08,35.09,36.09,28.08,29.08,30.08,31.08,32.08,33.08,34.08,35.08,36.08,37.08,38.08,48.09,49.09,41.08,42.08,43.08,44.08,45.08,46.08,47.08,48.08,49.08,50.08,51.08,61.09,62.09,54.08,55.08,56.08,57.08,58.08,59.08,60.08,61.08,62.08,63.08,64.08,74.09,75.09,67.08,68.08,69.08,70.08,71.08,72.08,73.08,74.08,75.08,76.08,77.08,87.09,88.09,80.08,81.08,82.08,83.08,84.08,85.08,86.08,87.08,88.08,89.08,90.08,100.09,101.09,93.08,94.08,95.08,96.08,97.08,98.08,99.08,100.08,101.08,102.08,103.08,113.09,114.09,106.08,107.08,108.08,109.08,110.08,111.08,112.08,113.08,114.08,115.08,116.08,126.09,127.09,119.08,120.08,121.08,122.08,123.08,124.08,125.08,126.08,127.08,128.08,129.08,139.09,140.09,132.08,133.08,134.08,135.08,136.08,137.08,138.08,139.08,140.08,141.08,142.08,35.1,36.1,145.08,146.08,147.08,148.08,149.08,150.08,151.08,152.08,153.08,154.08,155.08,48.1,49.1,158.08,159.08,160.08,161.08,162.08,163.08,164.08,165.08,166.08,167.08,168.08,61.1,62.1,171.08,172.08,173.08,174.08,175.08,176.08,177.08,178.08,179.08,180.08,181.08,74.1,75.1,184.08,185.08,186.08,187.08,188.08,189.08,190.08,191.08,192.08,193.08,194.08,87.1,88.1,197.08,198.08,199.08,200.08,201.08,202.08,203.08,204.08,205.08,206.08,207.08])
15505 self.assertTrue(att4.getFieldOn(att4.getMyGodFather().getMeshAtPosition((1,1)),"YY").isEqualWithoutConsideringStr(exp16,1e-12))
15506 exp17=DataArrayDouble([318.04,319.04,320.04,321.04,322.04,323.04,324.04,325.04,326.04,327.04,328.04,329.04,330.04,352.04,353.04,354.04,355.04,356.04,357.04,358.04,359.04,360.04,361.04,362.04,363.04,364.04,44.07,45.07,28.09,29.09,30.09,31.09,32.09,33.09,34.09,35.09,36.09,28.08,29.08,60.07,61.07,41.09,42.09,43.09,44.09,45.09,46.09,47.09,48.09,49.09,41.08,42.08,76.07,77.07,54.09,55.09,56.09,57.09,58.09,59.09,60.09,61.09,62.09,54.08,55.08,92.07,93.07,67.09,68.09,69.09,70.09,71.09,72.09,73.09,74.09,75.09,67.08,68.08,108.07,109.07,80.09,81.09,82.09,83.09,84.09,85.09,86.09,87.09,88.09,80.08,81.08,124.07,125.07,93.09,94.09,95.09,96.09,97.09,98.09,99.09,100.09,101.09,93.08,94.08,140.07,141.07,106.09,107.09,108.09,109.09,110.09,111.09,112.09,113.09,114.09,106.08,107.08,156.07,157.07,119.09,120.09,121.09,122.09,123.09,124.09,125.09,126.09,127.09,119.08,120.08,172.07,173.07,132.09,133.09,134.09,135.09,136.09,137.09,138.09,139.09,140.09,132.08,133.08,188.07,189.07,28.1,29.1,30.1,31.1,32.1,33.1,34.1,35.1,36.1,145.08,146.08,204.07,205.07,41.1,42.1,43.1,44.1,45.1,46.1,47.1,48.1,49.1,158.08,159.08])
15507 self.assertTrue(att4.getFieldOn(att4.getMyGodFather().getMeshAtPosition((1,2)),"YY").isEqualWithoutConsideringStr(exp17,1e-12))
15508 exp18=DataArrayDouble([156.07,157.07,119.09,120.09,121.09,122.09,123.09,124.09,125.09,126.09,127.09,119.08,120.08,172.07,173.07,132.09,133.09,134.09,135.09,136.09,137.09,138.09,139.09,140.09,132.08,133.08,188.07,189.07,28.1,29.1,30.1,31.1,32.1,33.1,34.1,35.1,36.1,145.08,146.08,204.07,205.07,41.1,42.1,43.1,44.1,45.1,46.1,47.1,48.1,49.1,158.08,159.08,220.07,221.07,54.1,55.1,56.1,57.1,58.1,59.1,60.1,61.1,62.1,171.08,172.08,236.07,237.07,67.1,68.1,69.1,70.1,71.1,72.1,73.1,74.1,75.1,76.1,77.1,252.07,253.07,80.1,81.1,82.1,83.1,84.1,85.1,86.1,87.1,88.1,89.1,90.1,268.07,269.07,93.1,94.1,95.1,96.1,97.1,98.1,99.1,100.1,101.1,102.1,103.1,284.07,285.07,106.1,107.1,108.1,109.1,110.1,111.1,112.1,113.1,114.1,115.1,116.1,300.07,301.07,119.1,120.1,121.1,122.1,123.1,124.1,125.1,126.1,127.1,128.1,129.1,316.07,317.07,132.1,133.1,134.1,135.1,136.1,137.1,138.1,139.1,140.1,141.1,142.1,143.1,144.1,145.1,146.1,147.1,148.1,149.1,150.1,151.1,152.1,153.1,154.1,155.1,156.1,157.1,158.1,159.1,160.1,161.1,162.1,163.1,164.1,165.1,166.1,167.1,168.1])
15509 self.assertTrue(att4.getFieldOn(att4.getMyGodFather().getMeshAtPosition((1,3)),"YY").isEqualWithoutConsideringStr(exp18,1e-12))
15512 att5.synchronizeAllGhostZonesAtASpecifiedLevelUsingOnlyFather(2)
15513 for pos in [(),(0,),(1,),(2,)]:
15514 self.assertTrue(att5.getFieldOn(att5.getMyGodFather().getMeshAtPosition(pos),"YY").isEqual(att6.getFieldOn(att6.getMyGodFather().getMeshAtPosition(pos),"YY"),1e-12))
15516 att5.buildCellFieldOnWithGhost(att5.getMyGodFather().getMeshAtPosition((0,0)),"YY")
15517 exp19=DataArrayDouble([57.02,57.02,58.02,58.02,58.02,59.02,59.02,59.02,60.02,60.02,60.02,61.02,61.02,61.02,62.02,62.02,62.02,63.02,63.02,63.02,64.02,64.02,64.02,65.02,65.02,65.02,66.02,66.02,66.02,67.02,67.02,67.02,68.02,68.02,57.02,57.02,58.02,58.02,58.02,59.02,59.02,59.02,60.02,60.02,60.02,61.02,61.02,61.02,62.02,62.02,62.02,63.02,63.02,63.02,64.02,64.02,64.02,65.02,65.02,65.02,66.02,66.02,66.02,67.02,67.02,67.02,68.02,68.02,71.02,71.02,70.04,71.04,72.04,73.04,74.04,75.04,76.04,77.04,78.04,79.04,80.04,81.04,82.04,83.04,84.04,85.04,86.04,87.04,88.04,89.04,90.04,91.04,92.04,93.04,94.04,95.04,96.04,97.04,98.04,99.04,82.02,82.02,71.02,71.02,104.04,105.04,106.04,107.04,108.04,109.04,110.04,111.04,112.04,113.04,114.04,115.04,116.04,117.04,118.04,119.04,120.04,121.04,122.04,123.04,124.04,125.04,126.04,127.04,128.04,129.04,130.04,131.04,132.04,133.04,82.02,82.02,71.02,71.02,138.04,139.04,140.04,141.04,142.04,143.04,144.04,145.04,146.04,147.04,148.04,149.04,150.04,151.04,152.04,153.04,154.04,155.04,156.04,157.04,158.04,159.04,160.04,161.04,162.04,163.04,164.04,165.04,166.04,167.04,82.02,82.02,85.02,85.02,172.04,173.04,174.04,175.04,176.04,177.04,178.04,179.04,180.04,181.04,182.04,183.04,184.04,185.04,186.04,187.04,188.04,189.04,190.04,191.04,192.04,193.04,194.04,195.04,196.04,197.04,198.04,199.04,200.04,201.04,96.02,96.02,85.02,85.02,206.04,207.04,208.04,209.04,210.04,211.04,212.04,213.04,214.04,215.04,216.04,217.04,218.04,219.04,220.04,221.04,222.04,223.04,224.04,225.04,226.04,227.04,228.04,229.04,230.04,231.04,232.04,233.04,234.04,235.04,96.02,96.02,85.02,85.02,240.04,241.04,242.04,243.04,244.04,245.04,246.04,247.04,248.04,249.04,250.04,251.04,252.04,253.04,254.04,255.04,256.04,257.04,258.04,259.04,260.04,261.04,262.04,263.04,264.04,265.04,266.04,267.04,268.04,269.04,96.02,96.02,99.02,99.02,274.04,275.04,276.04,277.04,278.04,279.04,280.04,281.04,282.04,283.04,284.04,285.04,286.04,287.04,288.04,289.04,290.04,291.04,292.04,293.04,294.04,295.04,296.04,297.04,298.04,299.04,300.04,301.04,302.04,303.04,110.02,110.02,99.02,99.02,308.04,309.04,310.04,311.04,312.04,313.04,314.04,315.04,316.04,317.04,318.04,319.04,320.04,321.04,322.04,323.04,324.04,325.04,326.04,327.04,328.04,329.04,330.04,331.04,332.04,333.04,334.04,335.04,336.04,337.04,110.02,110.02,99.02,99.02,342.04,343.04,344.04,345.04,346.04,347.04,348.04,349.04,350.04,351.04,352.04,353.04,354.04,355.04,356.04,357.04,358.04,359.04,360.04,361.04,362.04,363.04,364.04,365.04,366.04,367.04,368.04,369.04,370.04,371.04,110.02,110.02,113.02,113.02,114.02,114.02,114.02,115.02,115.02,115.02,116.02,116.02,116.02,117.02,117.02,117.02,118.02,118.02,118.02,119.02,119.02,119.02,120.02,120.02,120.02,121.02,121.02,121.02,122.02,122.02,122.02,123.02,123.02,123.02,124.02,124.02,113.02,113.02,114.02,114.02,114.02,115.02,115.02,115.02,116.02,116.02,116.02,117.02,117.02,117.02,118.02,118.02,118.02,119.02,119.02,119.02,120.02,120.02,120.02,121.02,121.02,121.02,122.02,122.02,122.02,123.02,123.02,123.02,124.02,124.02])
15518 self.assertTrue(att5.getFieldOn(att5.getMyGodFather().getMeshAtPosition((0,0)),"YY").isEqualWithoutConsideringStr(exp19,1e-12))
15519 exp20=DataArrayDouble([17.02,17.02,18.02,18.02,18.02,19.02,19.02,19.02,20.02,20.02,20.02,21.02,21.02,21.02,22.02,22.02,17.02,17.02,18.02,18.02,18.02,19.02,19.02,19.02,20.02,20.02,20.02,21.02,21.02,21.02,22.02,22.02,31.02,31.02,34.05,35.05,36.05,37.05,38.05,39.05,40.05,41.05,42.05,43.05,44.05,45.05,36.02,36.02,31.02,31.02,50.05,51.05,52.05,53.05,54.05,55.05,56.05,57.05,58.05,59.05,60.05,61.05,36.02,36.02,31.02,31.02,66.05,67.05,68.05,69.05,70.05,71.05,72.05,73.05,74.05,75.05,76.05,77.05,36.02,36.02,45.02,45.02,82.05,83.05,84.05,85.05,86.05,87.05,88.05,89.05,90.05,91.05,92.05,93.05,50.02,50.02,45.02,45.02,98.05,99.05,100.05,101.05,102.05,103.05,104.05,105.05,106.05,107.05,108.05,109.05,50.02,50.02,45.02,45.02,114.05,115.05,116.05,117.05,118.05,119.05,120.05,121.05,122.05,123.05,124.05,125.05,50.02,50.02,59.02,59.02,130.05,131.05,132.05,133.05,134.05,135.05,136.05,137.05,138.05,139.05,140.05,141.05,64.02,64.02,59.02,59.02,146.05,147.05,148.05,149.05,150.05,151.05,152.05,153.05,154.05,155.05,156.05,157.05,64.02,64.02,59.02,59.02,162.05,163.05,164.05,165.05,166.05,167.05,168.05,169.05,170.05,171.05,172.05,173.05,64.02,64.02,73.02,73.02,74.02,74.02,74.02,75.02,75.02,75.02,76.02,76.02,76.02,77.02,77.02,77.02,78.02,78.02,73.02,73.02,74.02,74.02,74.02,75.02,75.02,75.02,76.02,76.02,76.02,77.02,77.02,77.02,78.02,78.02])
15520 self.assertTrue(att5.getFieldOn(att5.getMyGodFather().getMeshAtPosition((0,1)),"YY").isEqualWithoutConsideringStr(exp20,1e-12))
15521 exp21=DataArrayDouble([49.02,49.02,50.02,50.02,50.02,51.02,51.02,51.02,52.02,52.02,52.02,53.02,53.02,53.02,54.02,54.02,49.02,49.02,50.02,50.02,50.02,51.02,51.02,51.02,52.02,52.02,52.02,53.02,53.02,53.02,54.02,54.02,63.02,63.02,34.06,35.06,36.06,37.06,38.06,39.06,40.06,41.06,42.06,43.06,44.06,45.06,68.02,68.02,63.02,63.02,50.06,51.06,52.06,53.06,54.06,55.06,56.06,57.06,58.06,59.06,60.06,61.06,68.02,68.02,63.02,63.02,66.06,67.06,68.06,69.06,70.06,71.06,72.06,73.06,74.06,75.06,76.06,77.06,68.02,68.02,77.02,77.02,78.02,78.02,78.02,79.02,79.02,79.02,80.02,80.02,80.02,81.02,81.02,81.02,82.02,82.02,77.02,77.02,78.02,78.02,78.02,79.02,79.02,79.02,80.02,80.02,80.02,81.02,81.02,81.02,82.02,82.02])
15522 self.assertTrue(att5.getFieldOn(att5.getMyGodFather().getMeshAtPosition((0,2)),"YY").isEqualWithoutConsideringStr(exp21,1e-12))
15523 exp22=DataArrayDouble([15.03,15.03,16.03,16.03,16.03,17.03,17.03,17.03,18.03,18.03,18.03,19.03,19.03,19.03,20.03,20.03,15.03,15.03,16.03,16.03,16.03,17.03,17.03,17.03,18.03,18.03,18.03,19.03,19.03,19.03,20.03,20.03,29.03,29.03,34.07,35.07,36.07,37.07,38.07,39.07,40.07,41.07,42.07,43.07,44.07,45.07,34.03,34.03,29.03,29.03,50.07,51.07,52.07,53.07,54.07,55.07,56.07,57.07,58.07,59.07,60.07,61.07,34.03,34.03,29.03,29.03,66.07,67.07,68.07,69.07,70.07,71.07,72.07,73.07,74.07,75.07,76.07,77.07,34.03,34.03,43.03,43.03,82.07,83.07,84.07,85.07,86.07,87.07,88.07,89.07,90.07,91.07,92.07,93.07,48.03,48.03,43.03,43.03,98.07,99.07,100.07,101.07,102.07,103.07,104.07,105.07,106.07,107.07,108.07,109.07,48.03,48.03,43.03,43.03,114.07,115.07,116.07,117.07,118.07,119.07,120.07,121.07,122.07,123.07,124.07,125.07,48.03,48.03,57.03,57.03,130.07,131.07,132.07,133.07,134.07,135.07,136.07,137.07,138.07,139.07,140.07,141.07,62.03,62.03,57.03,57.03,146.07,147.07,148.07,149.07,150.07,151.07,152.07,153.07,154.07,155.07,156.07,157.07,62.03,62.03,57.03,57.03,162.07,163.07,164.07,165.07,166.07,167.07,168.07,169.07,170.07,171.07,172.07,173.07,62.03,62.03,71.03,71.03,178.07,179.07,180.07,181.07,182.07,183.07,184.07,185.07,186.07,187.07,188.07,189.07,76.03,76.03,71.03,71.03,194.07,195.07,196.07,197.07,198.07,199.07,200.07,201.07,202.07,203.07,204.07,205.07,76.03,76.03,71.03,71.03,210.07,211.07,212.07,213.07,214.07,215.07,216.07,217.07,218.07,219.07,220.07,221.07,76.03,76.03,85.03,85.03,226.07,227.07,228.07,229.07,230.07,231.07,232.07,233.07,234.07,235.07,236.07,237.07,90.03,90.03,85.03,85.03,242.07,243.07,244.07,245.07,246.07,247.07,248.07,249.07,250.07,251.07,252.07,253.07,90.03,90.03,85.03,85.03,258.07,259.07,260.07,261.07,262.07,263.07,264.07,265.07,266.07,267.07,268.07,269.07,90.03,90.03,99.03,99.03,274.07,275.07,276.07,277.07,278.07,279.07,280.07,281.07,282.07,283.07,284.07,285.07,104.03,104.03,99.03,99.03,290.07,291.07,292.07,293.07,294.07,295.07,296.07,297.07,298.07,299.07,300.07,301.07,104.03,104.03,99.03,99.03,306.07,307.07,308.07,309.07,310.07,311.07,312.07,313.07,314.07,315.07,316.07,317.07,104.03,104.03,113.03,113.03,114.03,114.03,114.03,115.03,115.03,115.03,116.03,116.03,116.03,117.03,117.03,117.03,118.03,118.03,113.03,113.03,114.03,114.03,114.03,115.03,115.03,115.03,116.03,116.03,116.03,117.03,117.03,117.03,118.03,118.03])
15524 self.assertTrue(att5.getFieldOn(att5.getMyGodFather().getMeshAtPosition((1,0)),"YY").isEqualWithoutConsideringStr(exp22,1e-12))
15525 exp23=DataArrayDouble([22.03,22.03,23.03,23.03,23.03,24.03,24.03,24.03,25.03,25.03,25.03,26.03,26.03,22.03,22.03,23.03,23.03,23.03,24.03,24.03,24.03,25.03,25.03,25.03,26.03,26.03,36.03,36.03,28.08,29.08,30.08,31.08,32.08,33.08,34.08,35.08,36.08,40.03,40.03,36.03,36.03,41.08,42.08,43.08,44.08,45.08,46.08,47.08,48.08,49.08,40.03,40.03,36.03,36.03,54.08,55.08,56.08,57.08,58.08,59.08,60.08,61.08,62.08,40.03,40.03,50.03,50.03,67.08,68.08,69.08,70.08,71.08,72.08,73.08,74.08,75.08,54.03,54.03,50.03,50.03,80.08,81.08,82.08,83.08,84.08,85.08,86.08,87.08,88.08,54.03,54.03,50.03,50.03,93.08,94.08,95.08,96.08,97.08,98.08,99.08,100.08,101.08,54.03,54.03,64.03,64.03,106.08,107.08,108.08,109.08,110.08,111.08,112.08,113.08,114.08,68.03,68.03,64.03,64.03,119.08,120.08,121.08,122.08,123.08,124.08,125.08,126.08,127.08,68.03,68.03,64.03,64.03,132.08,133.08,134.08,135.08,136.08,137.08,138.08,139.08,140.08,68.03,68.03,78.03,78.03,145.08,146.08,147.08,148.08,149.08,150.08,151.08,152.08,153.08,82.03,82.03,78.03,78.03,158.08,159.08,160.08,161.08,162.08,163.08,164.08,165.08,166.08,82.03,82.03,78.03,78.03,171.08,172.08,173.08,174.08,175.08,176.08,177.08,178.08,179.08,82.03,82.03,92.03,92.03,93.03,93.03,93.03,94.03,94.03,94.03,95.03,95.03,95.03,96.03,96.03,92.03,92.03,93.03,93.03,93.03,94.03,94.03,94.03,95.03,95.03,95.03,96.03,96.03])
15526 self.assertTrue(att5.getFieldOn(att5.getMyGodFather().getMeshAtPosition((1,1)),"YY").isEqualWithoutConsideringStr(exp23,1e-12))
15527 exp24=DataArrayDouble([19.03,19.03,20.03,20.03,20.03,21.03,21.03,21.03,22.03,22.03,22.03,23.03,23.03,19.03,19.03,20.03,20.03,20.03,21.03,21.03,21.03,22.03,22.03,22.03,23.03,23.03,33.03,33.03,28.09,29.09,30.09,31.09,32.09,33.09,34.09,35.09,36.09,37.03,37.03,33.03,33.03,41.09,42.09,43.09,44.09,45.09,46.09,47.09,48.09,49.09,37.03,37.03,33.03,33.03,54.09,55.09,56.09,57.09,58.09,59.09,60.09,61.09,62.09,37.03,37.03,47.03,47.03,67.09,68.09,69.09,70.09,71.09,72.09,73.09,74.09,75.09,51.03,51.03,47.03,47.03,80.09,81.09,82.09,83.09,84.09,85.09,86.09,87.09,88.09,51.03,51.03,47.03,47.03,93.09,94.09,95.09,96.09,97.09,98.09,99.09,100.09,101.09,51.03,51.03,61.03,61.03,106.09,107.09,108.09,109.09,110.09,111.09,112.09,113.09,114.09,65.03,65.03,61.03,61.03,119.09,120.09,121.09,122.09,123.09,124.09,125.09,126.09,127.09,65.03,65.03,61.03,61.03,132.09,133.09,134.09,135.09,136.09,137.09,138.09,139.09,140.09,65.03,65.03,75.03,75.03,76.03,76.03,76.03,77.03,77.03,77.03,78.03,78.03,78.03,79.03,79.03,75.03,75.03,76.03,76.03,76.03,77.03,77.03,77.03,78.03,78.03,78.03,79.03,79.03])
15528 self.assertTrue(att5.getFieldOn(att5.getMyGodFather().getMeshAtPosition((1,2)),"YY").isEqualWithoutConsideringStr(exp24,1e-12))
15529 exp25=DataArrayDouble([61.03,61.03,62.03,62.03,62.03,63.03,63.03,63.03,64.03,64.03,64.03,65.03,65.03,61.03,61.03,62.03,62.03,62.03,63.03,63.03,63.03,64.03,64.03,64.03,65.03,65.03,75.03,75.03,28.1,29.1,30.1,31.1,32.1,33.1,34.1,35.1,36.1,79.03,79.03,75.03,75.03,41.1,42.1,43.1,44.1,45.1,46.1,47.1,48.1,49.1,79.03,79.03,75.03,75.03,54.1,55.1,56.1,57.1,58.1,59.1,60.1,61.1,62.1,79.03,79.03,89.03,89.03,67.1,68.1,69.1,70.1,71.1,72.1,73.1,74.1,75.1,93.03,93.03,89.03,89.03,80.1,81.1,82.1,83.1,84.1,85.1,86.1,87.1,88.1,93.03,93.03,89.03,89.03,93.1,94.1,95.1,96.1,97.1,98.1,99.1,100.1,101.1,93.03,93.03,103.03,103.03,106.1,107.1,108.1,109.1,110.1,111.1,112.1,113.1,114.1,107.03,107.03,103.03,103.03,119.1,120.1,121.1,122.1,123.1,124.1,125.1,126.1,127.1,107.03,107.03,103.03,103.03,132.1,133.1,134.1,135.1,136.1,137.1,138.1,139.1,140.1,107.03,107.03,117.03,117.03,118.03,118.03,118.03,119.03,119.03,119.03,120.03,120.03,120.03,121.03,121.03,117.03,117.03,118.03,118.03,118.03,119.03,119.03,119.03,120.03,120.03,120.03,121.03,121.03])
15530 self.assertTrue(att5.getFieldOn(att5.getMyGodFather().getMeshAtPosition((1,3)),"YY").isEqualWithoutConsideringStr(exp25,1e-12))
15533 def testSwig2AMR11(self):
15534 """ Some tests in 3D with CondenseFineToCoarseGhost and SpreadCoarseToFineGhost"""
15535 coarse=DataArrayDouble((6+4)*(7+4)*(5+4)) ; coarse.iota()
15536 fine=DataArrayDouble((4*2+4)*(2*3+4)*(3*4+4))
15537 MEDCouplingIMesh.SpreadCoarseToFineGhost(coarse,[6,7,5],fine,[(1,5),(2,4),(1,4)],[2,3,4],2)
15538 exp0=DataArrayDouble([252.,252.,253.,253.,254.,254.,255.,255.,256.,256.,257.,257.,252.,252.,253.,253.,254.,254.,255.,255.,256.,256.,257.,257.,262.,262.,263.,263.,264.,264.,265.,265.,266.,266.,267.,267.,262.,262.,263.,263.,264.,264.,265.,265.,266.,266.,267.,267.,262.,262.,263.,263.,264.,264.,265.,265.,266.,266.,267.,267.,272.,272.,273.,273.,274.,274.,275.,275.,276.,276.,277.,277.,272.,272.,273.,273.,274.,274.,275.,275.,276.,276.,277.,277.,272.,272.,273.,273.,274.,274.,275.,275.,276.,276.,277.,277.,282.,282.,283.,283.,284.,284.,285.,285.,286.,286.,287.,287.,282.,282.,283.,283.,284.,284.,285.,285.,286.,286.,287.,287.])
15539 exp1=DataArrayDouble([362.,362.,363.,363.,364.,364.,365.,365.,366.,366.,367.,367.,362.,362.,363.,363.,364.,364.,365.,365.,366.,366.,367.,367.,372.,372.,373.,373.,374.,374.,375.,375.,376.,376.,377.,377.,372.,372.,373.,373.,374.,374.,375.,375.,376.,376.,377.,377.,372.,372.,373.,373.,374.,374.,375.,375.,376.,376.,377.,377.,382.,382.,383.,383.,384.,384.,385.,385.,386.,386.,387.,387.,382.,382.,383.,383.,384.,384.,385.,385.,386.,386.,387.,387.,382.,382.,383.,383.,384.,384.,385.,385.,386.,386.,387.,387.,392.,392.,393.,393.,394.,394.,395.,395.,396.,396.,397.,397.,392.,392.,393.,393.,394.,394.,395.,395.,396.,396.,397.,397.])
15540 exp2=DataArrayDouble([472.,472.,473.,473.,474.,474.,475.,475.,476.,476.,477.,477.,472.,472.,473.,473.,474.,474.,475.,475.,476.,476.,477.,477.,482.,482.,483.,483.,484.,484.,485.,485.,486.,486.,487.,487.,482.,482.,483.,483.,484.,484.,485.,485.,486.,486.,487.,487.,482.,482.,483.,483.,484.,484.,485.,485.,486.,486.,487.,487.,492.,492.,493.,493.,494.,494.,495.,495.,496.,496.,497.,497.,492.,492.,493.,493.,494.,494.,495.,495.,496.,496.,497.,497.,492.,492.,493.,493.,494.,494.,495.,495.,496.,496.,497.,497.,502.,502.,503.,503.,504.,504.,505.,505.,506.,506.,507.,507.,502.,502.,503.,503.,504.,504.,505.,505.,506.,506.,507.,507.])
15541 exp3=DataArrayDouble([582.,582.,583.,583.,584.,584.,585.,585.,586.,586.,587.,587.,582.,582.,583.,583.,584.,584.,585.,585.,586.,586.,587.,587.,592.,592.,593.,593.,594.,594.,595.,595.,596.,596.,597.,597.,592.,592.,593.,593.,594.,594.,595.,595.,596.,596.,597.,597.,592.,592.,593.,593.,594.,594.,595.,595.,596.,596.,597.,597.,602.,602.,603.,603.,604.,604.,605.,605.,606.,606.,607.,607.,602.,602.,603.,603.,604.,604.,605.,605.,606.,606.,607.,607.,602.,602.,603.,603.,604.,604.,605.,605.,606.,606.,607.,607.,612.,612.,613.,613.,614.,614.,615.,615.,616.,616.,617.,617.,612.,612.,613.,613.,614.,614.,615.,615.,616.,616.,617.,617.])
15542 exp4=DataArrayDouble([692.,692.,693.,693.,694.,694.,695.,695.,696.,696.,697.,697.,692.,692.,693.,693.,694.,694.,695.,695.,696.,696.,697.,697.,702.,702.,703.,703.,704.,704.,705.,705.,706.,706.,707.,707.,702.,702.,703.,703.,704.,704.,705.,705.,706.,706.,707.,707.,702.,702.,703.,703.,704.,704.,705.,705.,706.,706.,707.,707.,712.,712.,713.,713.,714.,714.,715.,715.,716.,716.,717.,717.,712.,712.,713.,713.,714.,714.,715.,715.,716.,716.,717.,717.,712.,712.,713.,713.,714.,714.,715.,715.,716.,716.,717.,717.,722.,722.,723.,723.,724.,724.,725.,725.,726.,726.,727.,727.,722.,722.,723.,723.,724.,724.,725.,725.,726.,726.,727.,727.])
15543 exp=DataArrayDouble.Aggregate([exp0,exp0,exp1,exp1,exp1,exp1,exp2,exp2,exp2,exp2,exp3,exp3,exp3,exp3,exp4,exp4])
15544 self.assertTrue(fine.isEqual(exp,1e-12))
15548 MEDCouplingIMesh.CondenseFineToCoarseGhost([6,7,5],fine,[(1,5),(2,4),(1,4)],[2,3,4],coarse,2)
15549 amr=MEDCouplingCartesianAMRMesh("mesh",3,[7,8,6],[0.,0.,0.],[1.,1.,1.])
15550 amr.addPatch([(1,5),(2,4),(1,4)],[2,3,4])
15551 att=MEDCouplingAMRAttribute(amr,[("YY",1)],2)
15553 exp1=DataArrayDouble(990) ; exp1.iota(0.5)
15554 ids=DataArrayInt([373,374,375,376,383,384,385,386,483,484,485,486,493,494,495,496,593,594,595,596,603,604,605,606])
15555 vals=DataArrayDouble([11004.,11052.,11100.,11148.,11868.,11916.,11964.,12012.,22524.,22572.,22620.,22668.,23388.,23436.,23484.,23532.,34044.,34092.,34140.,34188.,34908.,34956.,35004.,35052.])
15557 self.assertTrue(coarse.isEqual(exp1,1e-12))
15559 MEDCouplingStructuredMesh.MultiplyPartOf([10,11,9],[(3,7),(4,6),(3,6)],1/24.,coarse)
15560 exp2=DataArrayDouble(990) ; exp2.iota(0.5)
15562 self.assertTrue(coarse.isEqual(exp2,1e-12))
15564 coarse.iota(0.5) ; fine.iota(0.1)
15565 MEDCouplingIMesh.SpreadCoarseToFineGhostZone(coarse,[6,7,5],fine,[(1,5),(2,4),(1,4)],[2,3,4],2)
15567 coarse.iota(0.5) ; fine.iota(0.1)
15568 MEDCouplingIMesh.SpreadCoarseToFineGhostZone(coarse,[6,7,5],fine,[(1,5),(2,4),(1,4)],[2,3,4],2)
15569 exp00=DataArrayDouble.Aggregate([exp0,exp0]) ; exp00+=0.5
15570 self.assertTrue(fine[:240].isEqual(exp00,1e-12))
15571 exp44=DataArrayDouble.Aggregate([exp4,exp4]) ; exp44+=0.5
15572 self.assertTrue(fine[-240:].isEqual(exp44,1e-12))
15573 self.assertTrue(fine[240:-240].isEqual(DataArrayDouble([362.5,362.5,363.5,363.5,364.5,364.5,365.5,365.5,366.5,366.5,367.5,367.5,362.5,362.5,363.5,363.5,364.5,364.5,365.5,365.5,366.5,366.5,367.5,367.5,372.5,372.5,266.1,267.1,268.1,269.1,270.1,271.1,272.1,273.1,377.5,377.5,372.5,372.5,278.1,279.1,280.1,281.1,282.1,283.1,284.1,285.1,377.5,377.5,372.5,372.5,290.1,291.1,292.1,293.1,294.1,295.1,296.1,297.1,377.5,377.5,382.5,382.5,302.1,303.1,304.1,305.1,306.1,307.1,308.1,309.1,387.5,387.5,382.5,382.5,314.1,315.1,316.1,317.1,318.1,319.1,320.1,321.1,387.5,387.5,382.5,382.5,326.1,327.1,328.1,329.1,330.1,331.1,332.1,333.1,387.5,387.5,392.5,392.5,393.5,393.5,394.5,394.5,395.5,395.5,396.5,396.5,397.5,397.5,392.5,392.5,393.5,393.5,394.5,394.5,395.5,395.5,396.5,396.5,397.5,397.5,362.5,362.5,363.5,363.5,364.5,364.5,365.5,365.5,366.5,366.5,367.5,367.5,362.5,362.5,363.5,363.5,364.5,364.5,365.5,365.5,366.5,366.5,367.5,367.5,372.5,372.5,386.1,387.1,388.1,389.1,390.1,391.1,392.1,393.1,377.5,377.5,372.5,372.5,398.1,399.1,400.1,401.1,402.1,403.1,404.1,405.1,377.5,377.5,372.5,372.5,410.1,411.1,412.1,413.1,414.1,415.1,416.1,417.1,377.5,377.5,382.5,382.5,422.1,423.1,424.1,425.1,426.1,427.1,428.1,429.1,387.5,387.5,382.5,382.5,434.1,435.1,436.1,437.1,438.1,439.1,440.1,441.1,387.5,387.5,382.5,382.5,446.1,447.1,448.1,449.1,450.1,451.1,452.1,453.1,387.5,387.5,392.5,392.5,393.5,393.5,394.5,394.5,395.5,395.5,396.5,396.5,397.5,397.5,392.5,392.5,393.5,393.5,394.5,394.5,395.5,395.5,396.5,396.5,397.5,397.5,362.5,362.5,363.5,363.5,364.5,364.5,365.5,365.5,366.5,366.5,367.5,367.5,362.5,362.5,363.5,363.5,364.5,364.5,365.5,365.5,366.5,366.5,367.5,367.5,372.5,372.5,506.1,507.1,508.1,509.1,510.1,511.1,512.1,513.1,377.5,377.5,372.5,372.5,518.1,519.1,520.1,521.1,522.1,523.1,524.1,525.1,377.5,377.5,372.5,372.5,530.1,531.1,532.1,533.1,534.1,535.1,536.1,537.1,377.5,377.5,382.5,382.5,542.1,543.1,544.1,545.1,546.1,547.1,548.1,549.1,387.5,387.5,382.5,382.5,554.1,555.1,556.1,557.1,558.1,559.1,560.1,561.1,387.5,387.5,382.5,382.5,566.1,567.1,568.1,569.1,570.1,571.1,572.1,573.1,387.5,387.5,392.5,392.5,393.5,393.5,394.5,394.5,395.5,395.5,396.5,396.5,397.5,397.5,392.5,392.5,393.5,393.5,394.5,394.5,395.5,395.5,396.5,396.5,397.5,397.5,362.5,362.5,363.5,363.5,364.5,364.5,365.5,365.5,366.5,366.5,367.5,367.5,362.5,362.5,363.5,363.5,364.5,364.5,365.5,365.5,366.5,366.5,367.5,367.5,372.5,372.5,626.1,627.1,628.1,629.1,630.1,631.1,632.1,633.1,377.5,377.5,372.5,372.5,638.1,639.1,640.1,641.1,642.1,643.1,644.1,645.1,377.5,377.5,372.5,372.5,650.1,651.1,652.1,653.1,654.1,655.1,656.1,657.1,377.5,377.5,382.5,382.5,662.1,663.1,664.1,665.1,666.1,667.1,668.1,669.1,387.5,387.5,382.5,382.5,674.1,675.1,676.1,677.1,678.1,679.1,680.1,681.1,387.5,387.5,382.5,382.5,686.1,687.1,688.1,689.1,690.1,691.1,692.1,693.1,387.5,387.5,392.5,392.5,393.5,393.5,394.5,394.5,395.5,395.5,396.5,396.5,397.5,397.5,392.5,392.5,393.5,393.5,394.5,394.5,395.5,395.5,396.5,396.5,397.5,397.5,472.5,472.5,473.5,473.5,474.5,474.5,475.5,475.5,476.5,476.5,477.5,477.5,472.5,472.5,473.5,473.5,474.5,474.5,475.5,475.5,476.5,476.5,477.5,477.5,482.5,482.5,746.1,747.1,748.1,749.1,750.1,751.1,752.1,753.1,487.5,487.5,482.5,482.5,758.1,759.1,760.1,761.1,762.1,763.1,764.1,765.1,487.5,487.5,482.5,482.5,770.1,771.1,772.1,773.1,774.1,775.1,776.1,777.1,487.5,487.5,492.5,492.5,782.1,783.1,784.1,785.1,786.1,787.1,788.1,789.1,497.5,497.5,492.5,492.5,794.1,795.1,796.1,797.1,798.1,799.1,800.1,801.1,497.5,497.5,492.5,492.5,806.1,807.1,808.1,809.1,810.1,811.1,812.1,813.1,497.5,497.5,502.5,502.5,503.5,503.5,504.5,504.5,505.5,505.5,506.5,506.5,507.5,507.5,502.5,502.5,503.5,503.5,504.5,504.5,505.5,505.5,506.5,506.5,507.5,507.5,472.5,472.5,473.5,473.5,474.5,474.5,475.5,475.5,476.5,476.5,477.5,477.5,472.5,472.5,473.5,473.5,474.5,474.5,475.5,475.5,476.5,476.5,477.5,477.5,482.5,482.5,866.1,867.1,868.1,869.1,870.1,871.1,872.1,873.1,487.5,487.5,482.5,482.5,878.1,879.1,880.1,881.1,882.1,883.1,884.1,885.1,487.5,487.5,482.5,482.5,890.1,891.1,892.1,893.1,894.1,895.1,896.1,897.1,487.5,487.5,492.5,492.5,902.1,903.1,904.1,905.1,906.1,907.1,908.1,909.1,497.5,497.5,492.5,492.5,914.1,915.1,916.1,917.1,918.1,919.1,920.1,921.1,497.5,497.5,492.5,492.5,926.1,927.1,928.1,929.1,930.1,931.1,932.1,933.1,497.5,497.5,502.5,502.5,503.5,503.5,504.5,504.5,505.5,505.5,506.5,506.5,507.5,507.5,502.5,502.5,503.5,503.5,504.5,504.5,505.5,505.5,506.5,506.5,507.5,507.5,472.5,472.5,473.5,473.5,474.5,474.5,475.5,475.5,476.5,476.5,477.5,477.5,472.5,472.5,473.5,473.5,474.5,474.5,475.5,475.5,476.5,476.5,477.5,477.5,482.5,482.5,986.1,987.1,988.1,989.1,990.1,991.1,992.1,993.1,487.5,487.5,482.5,482.5,998.1,999.1,1000.1,1001.1,1002.1,1003.1,1004.1,1005.1,487.5,487.5,482.5,482.5,1010.1,1011.1,1012.1,1013.1,1014.1,1015.1,1016.1,1017.1,487.5,487.5,492.5,492.5,1022.1,1023.1,1024.1,1025.1,1026.1,1027.1,1028.1,1029.1,497.5,497.5,492.5,492.5,1034.1,1035.1,1036.1,1037.1,1038.1,1039.1,1040.1,1041.1,497.5,497.5,492.5,492.5,1046.1,1047.1,1048.1,1049.1,1050.1,1051.1,1052.1,1053.1,497.5,497.5,502.5,502.5,503.5,503.5,504.5,504.5,505.5,505.5,506.5,506.5,507.5,507.5,502.5,502.5,503.5,503.5,504.5,504.5,505.5,505.5,506.5,506.5,507.5,507.5,472.5,472.5,473.5,473.5,474.5,474.5,475.5,475.5,476.5,476.5,477.5,477.5,472.5,472.5,473.5,473.5,474.5,474.5,475.5,475.5,476.5,476.5,477.5,477.5,482.5,482.5,1106.1,1107.1,1108.1,1109.1,1110.1,1111.1,1112.1,1113.1,487.5,487.5,482.5,482.5,1118.1,1119.1,1120.1,1121.1,1122.1,1123.1,1124.1,1125.1,487.5,487.5,482.5,482.5,1130.1,1131.1,1132.1,1133.1,1134.1,1135.1,1136.1,1137.1,487.5,487.5,492.5,492.5,1142.1,1143.1,1144.1,1145.1,1146.1,1147.1,1148.1,1149.1,497.5,497.5,492.5,492.5,1154.1,1155.1,1156.1,1157.1,1158.1,1159.1,1160.1,1161.1,497.5,497.5,492.5,492.5,1166.1,1167.1,1168.1,1169.1,1170.1,1171.1,1172.1,1173.1,497.5,497.5,502.5,502.5,503.5,503.5,504.5,504.5,505.5,505.5,506.5,506.5,507.5,507.5,502.5,502.5,503.5,503.5,504.5,504.5,505.5,505.5,506.5,506.5,507.5,507.5,582.5,582.5,583.5,583.5,584.5,584.5,585.5,585.5,586.5,586.5,587.5,587.5,582.5,582.5,583.5,583.5,584.5,584.5,585.5,585.5,586.5,586.5,587.5,587.5,592.5,592.5,1226.1,1227.1,1228.1,1229.1,1230.1,1231.1,1232.1,1233.1,597.5,597.5,592.5,592.5,1238.1,1239.1,1240.1,1241.1,1242.1,1243.1,1244.1,1245.1,597.5,597.5,592.5,592.5,1250.1,1251.1,1252.1,1253.1,1254.1,1255.1,1256.1,1257.1,597.5,597.5,602.5,602.5,1262.1,1263.1,1264.1,1265.1,1266.1,1267.1,1268.1,1269.1,607.5,607.5,602.5,602.5,1274.1,1275.1,1276.1,1277.1,1278.1,1279.1,1280.1,1281.1,607.5,607.5,602.5,602.5,1286.1,1287.1,1288.1,1289.1,1290.1,1291.1,1292.1,1293.1,607.5,607.5,612.5,612.5,613.5,613.5,614.5,614.5,615.5,615.5,616.5,616.5,617.5,617.5,612.5,612.5,613.5,613.5,614.5,614.5,615.5,615.5,616.5,616.5,617.5,617.5,582.5,582.5,583.5,583.5,584.5,584.5,585.5,585.5,586.5,586.5,587.5,587.5,582.5,582.5,583.5,583.5,584.5,584.5,585.5,585.5,586.5,586.5,587.5,587.5,592.5,592.5,1346.1,1347.1,1348.1,1349.1,1350.1,1351.1,1352.1,1353.1,597.5,597.5,592.5,592.5,1358.1,1359.1,1360.1,1361.1,1362.1,1363.1,1364.1,1365.1,597.5,597.5,592.5,592.5,1370.1,1371.1,1372.1,1373.1,1374.1,1375.1,1376.1,1377.1,597.5,597.5,602.5,602.5,1382.1,1383.1,1384.1,1385.1,1386.1,1387.1,1388.1,1389.1,607.5,607.5,602.5,602.5,1394.1,1395.1,1396.1,1397.1,1398.1,1399.1,1400.1,1401.1,607.5,607.5,602.5,602.5,1406.1,1407.1,1408.1,1409.1,1410.1,1411.1,1412.1,1413.1,607.5,607.5,612.5,612.5,613.5,613.5,614.5,614.5,615.5,615.5,616.5,616.5,617.5,617.5,612.5,612.5,613.5,613.5,614.5,614.5,615.5,615.5,616.5,616.5,617.5,617.5,582.5,582.5,583.5,583.5,584.5,584.5,585.5,585.5,586.5,586.5,587.5,587.5,582.5,582.5,583.5,583.5,584.5,584.5,585.5,585.5,586.5,586.5,587.5,587.5,592.5,592.5,1466.1,1467.1,1468.1,1469.1,1470.1,1471.1,1472.1,1473.1,597.5,597.5,592.5,592.5,1478.1,1479.1,1480.1,1481.1,1482.1,1483.1,1484.1,1485.1,597.5,597.5,592.5,592.5,1490.1,1491.1,1492.1,1493.1,1494.1,1495.1,1496.1,1497.1,597.5,597.5,602.5,602.5,1502.1,1503.1,1504.1,1505.1,1506.1,1507.1,1508.1,1509.1,607.5,607.5,602.5,602.5,1514.1,1515.1,1516.1,1517.1,1518.1,1519.1,1520.1,1521.1,607.5,607.5,602.5,602.5,1526.1,1527.1,1528.1,1529.1,1530.1,1531.1,1532.1,1533.1,607.5,607.5,612.5,612.5,613.5,613.5,614.5,614.5,615.5,615.5,616.5,616.5,617.5,617.5,612.5,612.5,613.5,613.5,614.5,614.5,615.5,615.5,616.5,616.5,617.5,617.5,582.5,582.5,583.5,583.5,584.5,584.5,585.5,585.5,586.5,586.5,587.5,587.5,582.5,582.5,583.5,583.5,584.5,584.5,585.5,585.5,586.5,586.5,587.5,587.5,592.5,592.5,1586.1,1587.1,1588.1,1589.1,1590.1,1591.1,1592.1,1593.1,597.5,597.5,592.5,592.5,1598.1,1599.1,1600.1,1601.1,1602.1,1603.1,1604.1,1605.1,597.5,597.5,592.5,592.5,1610.1,1611.1,1612.1,1613.1,1614.1,1615.1,1616.1,1617.1,597.5,597.5,602.5,602.5,1622.1,1623.1,1624.1,1625.1,1626.1,1627.1,1628.1,1629.1,607.5,607.5,602.5,602.5,1634.1,1635.1,1636.1,1637.1,1638.1,1639.1,1640.1,1641.1,607.5,607.5,602.5,602.5,1646.1,1647.1,1648.1,1649.1,1650.1,1651.1,1652.1,1653.1,607.5,607.5,612.5,612.5,613.5,613.5,614.5,614.5,615.5,615.5,616.5,616.5,617.5,617.5,612.5,612.5,613.5,613.5,614.5,614.5,615.5,615.5,616.5,616.5,617.5,617.5]),1e-12))
15576 def testSwig2AMR12(self):
15577 """ This test check the MEDCouplingAMRAttribute.projectTo method."""
15578 amr0=MEDCouplingCartesianAMRMesh("mesh",2,[11,11],[0.,0.],[1.,1.])
15579 amr0.addPatch([(3,8),(0,3)],[2,2])
15580 amr0.addPatch([(3,8),(3,6)],[2,2])
15581 att0=MEDCouplingAMRAttribute(amr0,[("YY",1)],2)
15583 att0.getFieldOn(amr0,"YY").iota(0.01)
15584 att0.getFieldOn(amr0[0].getMesh(),"YY").iota(0.02)
15585 att0.getFieldOn(amr0[1].getMesh(),"YY").iota(0.03)
15586 amr1=MEDCouplingCartesianAMRMesh("mesh",2,[11,11],[0.,0.],[1.,1.])
15587 amr1.addPatch([(2,5),(1,4)],[2,2])
15588 att1=att0.projectTo(amr1)
15589 self.assertTrue(att1.getFieldOn(amr1,"YY").isEqualWithoutConsideringStr(att0.getFieldOn(amr0,"YY"),1e-12))
15590 self.assertTrue(att1.getFieldOn(amr1[0].getMesh(),"YY").isEqualWithoutConsideringStr(DataArrayDouble([31.01,31.01,32.01,32.01,33.01,33.01,34.01,34.01,35.01,35.01,31.01,31.01,32.01,32.01,33.01,33.01,34.01,34.01,35.01,35.01,45.01,45.01,46.01,46.01,58.02,59.02,60.02,61.02,49.01,49.01,45.01,45.01,46.01,46.01,72.02,73.02,74.02,75.02,49.01,49.01,59.01,59.01,60.01,60.01,86.02,87.02,88.02,89.02,63.01,63.01,59.01,59.01,60.01,60.01,100.02,101.02,102.02,103.02,63.01,63.01,73.01,73.01,74.01,74.01,30.03,31.03,32.03,33.03,77.01,77.01,73.01,73.01,74.01,74.01,44.03,45.03,46.03,47.03,77.01,77.01,87.01,87.01,88.01,88.01,89.01,89.01,90.01,90.01,91.01,91.01,87.01,87.01,88.01,88.01,89.01,89.01,90.01,90.01,91.01,91.01]),1e-12))
15592 amr0=MEDCouplingCartesianAMRMesh("mesh",2,[11,11],[0.,0.],[1.,1.])
15593 amr0.addPatch([(2,5),(2,7)],[2,2])
15594 amr0.addPatch([(5,8),(2,7)],[2,2])
15595 att0=MEDCouplingAMRAttribute(amr0,[("YY",1)],2)
15597 att0.getFieldOn(amr0,"YY").iota(0.01)
15598 att0.getFieldOn(amr0[0].getMesh(),"YY").iota(0.02)
15599 att0.getFieldOn(amr0[1].getMesh(),"YY").iota(0.03)
15600 amr1=MEDCouplingCartesianAMRMesh("mesh",2,[11,11],[0.,0.],[1.,1.])
15601 amr1.addPatch([(3,6),(2,7)],[2,2])
15602 amr1.addPatch([(6,9),(2,7)],[2,2])
15603 att1=att0.projectTo(amr1)
15604 self.assertTrue(att1.getFieldOn(amr1,"YY").isEqual(att0.getFieldOn(amr0,"YY"),1e-12))
15605 self.assertTrue(att1.getFieldOn(amr1[0].getMesh(),"YY").isEqualWithoutConsideringStr(DataArrayDouble([46.01,46.01,47.01,47.01,48.01,48.01,49.01,49.01,50.01,50.01,46.01,46.01,47.01,47.01,48.01,48.01,49.01,49.01,50.01,50.01,60.01,60.01,24.02,25.02,26.02,27.02,22.03,23.03,64.01,64.01,60.01,60.01,34.02,35.02,36.02,37.02,32.03,33.03,64.01,64.01,74.01,74.01,44.02,45.02,46.02,47.02,42.03,43.03,78.01,78.01,74.01,74.01,54.02,55.02,56.02,57.02,52.03,53.03,78.01,78.01,88.01,88.01,64.02,65.02,66.02,67.02,62.03,63.03,92.01,92.01,88.01,88.01,74.02,75.02,76.02,77.02,72.03,73.03,92.01,92.01,102.01,102.01,84.02,85.02,86.02,87.02,82.03,83.03,106.01,106.01,102.01,102.01,94.02,95.02,96.02,97.02,92.03,93.03,106.01,106.01,116.01,116.01,104.02,105.02,106.02,107.02,102.03,103.03,120.01,120.01,116.01,116.01,114.02,115.02,116.02,117.02,112.03,113.03,120.01,120.01,130.01,130.01,131.01,131.01,132.01,132.01,133.01,133.01,134.01,134.01,130.01,130.01,131.01,131.01,132.01,132.01,133.01,133.01,134.01,134.01]),1e-12))
15606 self.assertTrue(att1.getFieldOn(amr1[1].getMesh(),"YY").isEqualWithoutConsideringStr(DataArrayDouble([49.01,49.01,50.01,50.01,51.01,51.01,52.01,52.01,53.01,53.01,49.01,49.01,50.01,50.01,51.01,51.01,52.01,52.01,53.01,53.01,63.01,63.01,24.03,25.03,26.03,27.03,66.01,66.01,67.01,67.01,63.01,63.01,34.03,35.03,36.03,37.03,66.01,66.01,67.01,67.01,77.01,77.01,44.03,45.03,46.03,47.03,80.01,80.01,81.01,81.01,77.01,77.01,54.03,55.03,56.03,57.03,80.01,80.01,81.01,81.01,91.01,91.01,64.03,65.03,66.03,67.03,94.01,94.01,95.01,95.01,91.01,91.01,74.03,75.03,76.03,77.03,94.01,94.01,95.01,95.01,105.01,105.01,84.03,85.03,86.03,87.03,108.01,108.01,109.01,109.01,105.01,105.01,94.03,95.03,96.03,97.03,108.01,108.01,109.01,109.01,119.01,119.01,104.03,105.03,106.03,107.03,122.01,122.01,123.01,123.01,119.01,119.01,114.03,115.03,116.03,117.03,122.01,122.01,123.01,123.01,133.01,133.01,134.01,134.01,135.01,135.01,136.01,136.01,137.01,137.01,133.01,133.01,134.01,134.01,135.01,135.01,136.01,136.01,137.01,137.01]),1e-12))
15609 def testSwig2AMR13(self):
15610 """ non regression test"""
15611 for fact,len1,len2 in [([2,2],64,48),([3,3],100,70),([4,4],144,96)]:
15612 amr=MEDCouplingCartesianAMRMesh("mesh",2,[5,5],[0.,0.],[1.,1.])
15613 amr.addPatch([(1,3),(0,2)],fact)
15614 amr.addPatch([(1,3),(3,4)],fact)
15615 att=MEDCouplingAMRAttribute(amr,[("YY",1)],2)
15617 att.getFieldOn(amr,"YY").iota(0.1)
15618 att.getFieldOn(amr[0].getMesh(),"YY").iota(0.2)
15619 att.getFieldOn(amr[1].getMesh(),"YY").iota(0.3)
15620 att.synchronizeAllGhostZonesOfDirectChidrenOf(amr)
15621 exp=DataArrayDouble(64) ; exp.iota(0.1)
15622 self.assertTrue(att.getFieldOn(amr,"YY").isEqualWithoutConsideringStr(exp,1e-12))
15623 exp0=DataArrayDouble(len1) ; exp0.iota(0.2)
15624 self.assertTrue(att.getFieldOn(amr[0].getMesh(),"YY").isEqualWithoutConsideringStr(exp0,1e-12))
15625 exp1=DataArrayDouble(len2) ; exp1.iota(0.3)
15626 self.assertTrue(att.getFieldOn(amr[1].getMesh(),"YY").isEqualWithoutConsideringStr(exp1,1e-12))
15630 def testSwig2AMR14(self):
15631 """ non regression linked to VTHB write."""
15632 fact=[2,2] ; fact2=[3,3]
15633 amr=MEDCouplingCartesianAMRMesh("mesh",2,[5,5],[0.,0.],[1.,1.])
15634 amr.addPatch([(1,3),(0,2)],fact)
15635 amr.addPatch([(1,3),(3,4)],fact)
15636 amr[0].addPatch([(1,3),(1,3)],fact2)
15637 amr[1].addPatch([(1,3),(1,2)],fact2)
15638 att=MEDCouplingAMRAttribute(amr,[("YY",1)],2)
15640 att.getFieldOn(amr,"YY").iota(0.1)
15641 att.getFieldOn(amr[0].getMesh(),"YY").iota(0.2)
15642 att.getFieldOn(amr[1].getMesh(),"YY").iota(0.3)
15643 att.getFieldOn(amr[0][0].getMesh(),"YY").iota(0.4)
15644 att.getFieldOn(amr[1][0].getMesh(),"YY").iota(0.5)
15645 self.assertEqual(amr[0].getBLTRRangeRelativeToGF(),[(2,6),(0,4)])
15646 self.assertEqual(amr[1].getBLTRRangeRelativeToGF(),[(2,6),(6,8)])
15647 self.assertEqual(amr[0][0].getBLTRRangeRelativeToGF(),[(9,15),(3,9)])
15648 self.assertEqual(amr[1][0].getBLTRRangeRelativeToGF(),[(9,15),(21,24)])
15651 def testSwig2Intersect2DMeshWith1DLine1(self):
15652 """A basic test with no colinearity between m1 and m2."""
15653 i=MEDCouplingIMesh("mesh",2,[5,5],[0.,0.],[1.,1.])
15654 m1=i.buildUnstructured()
15655 m2=MEDCouplingUMesh("mesh",1) ; m2.setCoords(DataArrayDouble([0.75,3.5,3.75,1.75],2,2)) ; m2.allocateCells() ; m2.insertNextCell(NORM_SEG2,[0,1])
15656 a,b,c,d=MEDCouplingUMesh.Intersect2DMeshWith1DLine(m1,m2,1e-12)
15657 self.assertTrue(a.getNodalConnectivity().isEqual(DataArrayInt([4,1,0,5,6,4,2,1,6,7,4,3,2,7,8,4,4,3,8,9,4,6,5,10,11,4,7,6,11,12,4,8,7,12,13,4,11,10,15,16,4,18,17,22,23,4,19,18,23,24,5,16,15,20,21,31,5,21,22,17,28,31,5,16,31,28,5,17,29,28,5,12,11,16,28,29,5,17,18,30,29,5,13,12,29,30,5,18,19,14,27,30,5,13,30,27,5,9,8,13,27,14])))
15658 self.assertTrue(b.getNodalConnectivity().isEqual(DataArrayInt([1,25,31,1,31,28,1,28,29,1,29,30,1,30,27,1,27,26])))
15659 self.assertTrue(a.getNodalConnectivityIndex().isEqual(DataArrayInt([0,5,10,15,20,25,30,35,40,45,50,56,62,66,70,76,81,86,92,96,102])))
15660 self.assertTrue(b.getNodalConnectivityIndex().isEqual(DataArrayInt([0,3,6,9,12,15,18])))
15661 self.assertTrue(a.getCoords().getHiddenCppPointer()==b.getCoords().getHiddenCppPointer())
15662 self.assertTrue(a.getCoords()[:25].isEqual(m1.getCoords(),1e-12))
15663 self.assertTrue(a.getCoords()[25:25+2].isEqualWithoutConsideringStr(m2.getCoords(),1e-12))
15664 self.assertTrue(a.getCoords()[27:].isEqualWithoutConsideringStr(DataArrayDouble([(3.3214285714285716,2.),(1.6071428571428572,3.),(2.,2.7708333333333335),(3.,2.1875),(1.,3.354166666666667)]),1e-12))
15665 self.assertTrue(c.isEqual(DataArrayInt([0,1,2,3,4,5,6,8,14,15,12,13,13,9,9,10,10,11,11,7])))
15666 self.assertTrue(d.isEqual(DataArrayInt([(10,10),(11,12),(13,14),(15,16),(17,18),(19,19)])))
15669 def testSwig2Intersect2DMeshWith1DLine2(self):
15670 """A basic test with colinearity between m1 and m2 and the last cell of m2 outside m1."""
15671 i=MEDCouplingIMesh("mesh",2,[5,5],[0.,0.],[1.,1.])
15672 m1=i.buildUnstructured()
15673 m2=MEDCouplingUMesh("mesh",1) ; m2.setCoords(DataArrayDouble([0.5,2.,2.25,2.,2.5,2.,2.75,2.,3.,2.,4.,2.,5.,2.],7,2)) ; m2.allocateCells()
15674 for i in xrange(6):
15675 m2.insertNextCell(NORM_SEG2,[i,i+1])
15677 a,b,c,d=MEDCouplingUMesh.Intersect2DMeshWith1DLine(m1,m2,1e-12)
15678 self.assertTrue(a.getNodalConnectivity().isEqual(DataArrayInt([4,1,0,5,6,4,2,1,6,7,4,3,2,7,8,4,4,3,8,9,4,16,15,20,21,4,17,16,21,22,4,18,17,22,23,4,19,18,23,24,5,6,5,10,25,11,5,7,6,11,12,5,8,7,12,26,27,28,13,5,9,8,13,14,5,11,25,10,15,16,5,12,11,16,17,5,13,28,27,26,12,17,18,5,14,13,18,19])))
15679 self.assertTrue(a.getNodalConnectivityIndex().isEqual(DataArrayInt([0,5,10,15,20,25,30,35,40,46,51,59,64,70,75,83,88])))
15680 self.assertTrue(b.getNodalConnectivity().isEqual(DataArrayInt([1,25,11,1,11,12,1,12,26,1,26,27,1,27,28,1,28,13,1,13,14,1,14,31])))
15681 self.assertTrue(b.getNodalConnectivityIndex().isEqual(DataArrayInt([0,3,6,9,12,15,18,21,24])))
15682 self.assertTrue(a.getCoords().getHiddenCppPointer()==b.getCoords().getHiddenCppPointer())
15683 self.assertTrue(a.getCoords()[:25].isEqual(m1.getCoords(),1e-12))
15684 self.assertTrue(a.getCoords()[25:].isEqualWithoutConsideringStr(m2.getCoords(),1e-12))
15685 self.assertTrue(c.isEqual(DataArrayInt([0,1,2,3,12,13,14,15,4,5,6,7,8,9,10,11])))
15686 self.assertTrue(d.isEqual(DataArrayInt([(12,8),(13,9),(14,10),(14,10),(14,10),(14,10),(15,11),(-1,-1)])))
15689 def testSwig2Intersect2DMeshWith1DLine3(self):
15690 """m2 fully included in cell #12. of m1"""
15691 i=MEDCouplingIMesh("mesh",2,[5,5],[0.,0.],[1.,1.])
15692 m1=i.buildUnstructured()
15693 m2=MEDCouplingUMesh("mesh",1) ; m2.setCoords(DataArrayDouble([(0.75,3.25),(0.5,3.5),(0.25,3.25)])) ; m2.allocateCells()
15694 for i in xrange(2):
15695 m2.insertNextCell(NORM_SEG2,[i,i+1])
15697 a,b,c,d=MEDCouplingUMesh.Intersect2DMeshWith1DLine(m1,m2,1e-12)
15698 self.assertTrue(a.getNodalConnectivity().isEqual(DataArrayInt([4,1,0,5,6,4,2,1,6,7,4,3,2,7,8,4,4,3,8,9,4,6,5,10,11,4,7,6,11,12,4,8,7,12,13,4,9,8,13,14,4,11,10,15,16,4,12,11,16,17,4,13,12,17,18,4,14,13,18,19,4,17,16,21,22,4,18,17,22,23,4,19,18,23,24,5,16,15,20,21])))
15699 self.assertTrue(a.getNodalConnectivityIndex().isEqual(DataArrayInt([0,5,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80])))
15700 self.assertTrue(b.getNodalConnectivity().isEqual(DataArrayInt([1,25,26,1,26,27])))
15701 self.assertTrue(b.getNodalConnectivityIndex().isEqual(DataArrayInt([0,3,6])))
15702 self.assertTrue(a.getCoords().getHiddenCppPointer()==b.getCoords().getHiddenCppPointer())
15703 self.assertTrue(a.getCoords()[:25].isEqual(m1.getCoords(),1e-12))
15704 self.assertTrue(a.getCoords()[25:].isEqualWithoutConsideringStr(m2.getCoords(),1e-12))
15705 self.assertTrue(c.isEqual(DataArrayInt([0,1,2,3,4,5,6,7,8,9,10,11,13,14,15,12])))
15706 self.assertTrue(d.isEqual(DataArrayInt([(15,15),(15,15)])))
15709 def testSwig2Intersect2DMeshWith1DLine4(self):
15710 """A special case where an edge is simultaneously a cut and colinear. This tests also checks negative values in descending edges of m1."""
15711 i=MEDCouplingIMesh("mesh",2,[5,5],[0.,0.],[1.,1.])
15712 m1=i.buildUnstructured()
15713 part=DataArrayInt([0,1,2,3,4,7,8,11,12,13,14,15])
15715 m1_2=m1[part.buildComplement(m1.getNumberOfCells())]
15716 m1=MEDCouplingUMesh.MergeUMeshesOnSameCoords(m1_1,m1_2.buildSpreadZonesWithPoly())
15718 m2=MEDCouplingUMesh("mesh",1) ; m2.setCoords(DataArrayDouble([(3.5,2.),(0.5,2.)])) ; m2.allocateCells()
15719 m2.insertNextCell(NORM_SEG2,[0,1])
15720 a,b,c,d=MEDCouplingUMesh.Intersect2DMeshWith1DLine(m1,m2,1e-12)
15721 self.assertTrue(a.getNodalConnectivity().isEqual(DataArrayInt([4,1,0,5,6,4,2,1,6,7,4,3,2,7,8,4,4,3,8,9,4,15,14,19,20,4,16,15,20,21,4,17,16,21,22,4,18,17,22,23,5,6,5,10,25,11,5,9,8,12,24,13,5,11,25,10,14,15,5,13,24,12,17,18,5,8,7,6,11,12,5,15,16,17,12,11])))
15722 self.assertTrue(a.getNodalConnectivityIndex().isEqual(DataArrayInt([0,5,10,15,20,25,30,35,40,46,52,58,64,70,76])))
15723 self.assertTrue(b.getNodalConnectivity().isEqual(DataArrayInt([1,24,12,1,12,11,1,11,25])))
15724 self.assertTrue(b.getNodalConnectivityIndex().isEqual(DataArrayInt([0,3,6,9])))
15725 self.assertTrue(a.getCoords().getHiddenCppPointer()==b.getCoords().getHiddenCppPointer())
15726 self.assertTrue(a.getCoords()[:24].isEqual(m1.getCoords(),1e-12))
15727 self.assertTrue(a.getCoords()[24:].isEqualWithoutConsideringStr(m2.getCoords(),1e-12))
15728 self.assertTrue(c.isEqual(DataArrayInt([0,1,2,3,8,9,10,11,4,5,6,7,12,12])))
15729 self.assertTrue(d.isEqual(DataArrayInt([(9,11),(12,13),(8,10)])))
15732 def testSwig2Intersect2DMeshWith1DLine5(self):
15733 """A test focusing on a special case for cut."""
15734 i=MEDCouplingIMesh("mesh",2,[5,5],[0.,0.],[1.,1.])
15735 m1=i.buildUnstructured()
15736 m2=MEDCouplingUMesh("mesh",1) ; m2.setCoords(DataArrayDouble([(1.,0.),(3.,2.),(1.,4.)])) ; m2.allocateCells()
15737 for i in xrange(2):
15738 m2.insertNextCell(NORM_SEG2,[i,i+1])
15740 a,b,c,d=MEDCouplingUMesh.Intersect2DMeshWith1DLine(m1,m2,1e-12)
15741 self.assertTrue(a.getNodalConnectivity().isEqual(DataArrayInt([4,1,0,5,6,4,3,2,7,8,4,4,3,8,9,4,6,5,10,11,4,7,6,11,12,4,9,8,13,14,4,11,10,15,16,4,12,11,16,17,4,14,13,18,19,4,16,15,20,21,4,18,17,22,23,4,19,18,23,24,5,6,7,1,5,2,1,7,5,12,13,7,5,8,7,13,5,12,17,13,5,18,13,17,5,16,21,17,5,22,17,21])))
15742 self.assertTrue(a.getNodalConnectivityIndex().isEqual(DataArrayInt([0,5,10,15,20,25,30,35,40,45,50,55,60,64,68,72,76,80,84,88,92])))
15743 self.assertTrue(b.getNodalConnectivity().isEqual(DataArrayInt([1,1,7,1,7,13,1,13,17,1,17,21])))
15744 self.assertTrue(b.getNodalConnectivityIndex().isEqual(DataArrayInt([0,3,6,9,12])))
15745 self.assertTrue(a.getCoords().getHiddenCppPointer()==b.getCoords().getHiddenCppPointer())
15746 self.assertTrue(a.getCoords()[:25].isEqual(m1.getCoords(),1e-12))
15747 self.assertTrue(a.getCoords()[25:].isEqualWithoutConsideringStr(m2.getCoords(),1e-12))
15748 self.assertTrue(c.isEqual(DataArrayInt([0,2,3,4,5,7,8,9,11,12,14,15,1,1,6,6,10,10,13,13])))
15749 self.assertTrue(d.isEqual(DataArrayInt([(12,13),(14,15),(16,17),(18,19)])))
15752 def testIntersect2DMeshWith1DLine6(self):
15753 """ Basic test for Intersect2DMeshWith1DLine: a vertical line intersecting a square. """
15754 m1c = MEDCouplingCMesh()
15755 coordX = DataArrayDouble([-1., 1., 2])
15756 m1c.setCoordsAt(0,coordX)
15757 coordY = DataArrayDouble([0., 2.])
15758 m1c.setCoordsAt(1,coordY);
15759 m1 = m1c.buildUnstructured()
15762 m2 = MEDCouplingUMesh("bla", 1)
15763 coord2 = DataArrayDouble([0.,-1.0, 0.,1., 0.,3., 0.5,2.2], 4, 2)
15764 conn2 = DataArrayInt([NORM_SEG2,0,1,NORM_SEG3,1,2,3])
15765 connI2 = DataArrayInt([0,3,7])
15766 m2.setCoords(coord2)
15767 m2.setConnectivity(conn2, connI2)
15769 # End of construction of input meshes m1bis and m2 -> start of specific part of the test
15770 a,b,c,d = MEDCouplingUMesh.Intersect2DMeshWith1DLine(m1, m2, 1e-10)
15771 self.assertTrue(a.getNodalConnectivity().isEqual(DataArrayInt([4,2,1,4,5,32,0,3,11,7,10,14,15,16,17,18,32,4,1,10,7,11,19,20,21,22,23])))
15772 self.assertTrue(a.getNodalConnectivityIndex().isEqual(DataArrayInt([0,5,16,27])))
15773 self.assertTrue(b.getNodalConnectivity().isEqual(DataArrayInt([1,6,10,1,10,7,2,7,11,12,2,11,8,13])))
15774 self.assertTrue(b.getNodalConnectivityIndex().isEqual(DataArrayInt([0,3,6,10,14])))
15775 self.assertTrue(a.getCoords().getHiddenCppPointer()==b.getCoords().getHiddenCppPointer())
15776 self.assertTrue(a.getCoords()[:6].isEqual(m1.getCoords(),1e-12))
15777 self.assertTrue(a.getCoords()[6:10].isEqual(m2.getCoords(),1e-12))
15778 self.assertTrue(a.getCoords()[10:].isEqual(DataArrayDouble([(0.,0.),(0.5164175471673584,2.),(0.3796918047064557,1.43726403104512),(0.3796918047064557,2.56273596895488),(-1.,1.),(-0.24179122641632078,2.),(0.3796918047064558,1.4372640310451201),(0.,0.5),(-0.5,0.),(1.,1.),(0.5,0.),(0.,0.5),(0.3796918047064558,1.4372640310451201),(0.7582087735836792,2.)]),1e-12))
15779 self.assertTrue(c.isEqual(DataArrayInt([1,0,0])))
15780 self.assertTrue(d.isEqual(DataArrayInt([(-1,-1),(1,2),(1,2),(-1,-1)])))
15783 def testSwig2Intersect2DMeshWith1DLine7(self):
15784 """ Star pattern (a triangle intersecting another one upside down) """
15785 coords1 = DataArrayDouble([-2.,1., 2.,1., 0.,-2.], 3,2)
15786 coords2 = DataArrayDouble([0.,2., 2.,-1., -2.,-1., 0.,3.], 4,2)
15787 m1 = MEDCouplingUMesh("triangle", 2)
15788 m2 = MEDCouplingUMesh("tri_line", 1)
15789 m1.setCoords(coords1)
15790 m2.setCoords(coords2)
15791 m1.setConnectivity(DataArrayInt([NORM_TRI3, 0,1,2]), DataArrayInt([0,4]))
15792 m2.setConnectivity(DataArrayInt([NORM_SEG2,0,1,NORM_SEG2,1,2,NORM_SEG2,2,3]), DataArrayInt([0,3,6,9]))
15793 # End of construction of input meshes m1bis and m2 -> start of specific part of the test
15794 a,b,c,d = MEDCouplingUMesh.Intersect2DMeshWith1DLine(m1, m2, 1e-10)
15795 self.assertTrue(a.getNodalConnectivity().isEqual(DataArrayInt([5,1,9,7,5,2,11,10,5,0,8,12,5,7,9,10,11,12,8])))
15796 self.assertTrue(a.getNodalConnectivityIndex().isEqual(DataArrayInt([0,4,8,12,19])))
15797 self.assertTrue(b.getNodalConnectivity().isEqual(DataArrayInt([1,3,7,1,7,9,1,9,4,1,4,10,1,10,11,1,11,5,1,5,12,1,12,8,1,8,6])))
15798 self.assertTrue(b.getNodalConnectivityIndex().isEqual(DataArrayInt([0,3,6,9,12,15,18,21,24,27])))
15799 self.assertTrue(a.getCoords()[:3].isEqual(m1.getCoords(),1e-12))
15800 self.assertTrue(a.getCoords()[3:7].isEqual(m2.getCoords(),1e-12))
15801 self.assertTrue(a.getCoords()[7:].isEqual(DataArrayDouble([(0.6666666666666666,1.),(-1.,1.),(1.3333333333333333,1.1102230246251565e-16),(0.6666666666666665,-0.9999999999999996),(-0.6666666666666667,-1.),(-1.4285714285714284,0.14285714285714302)]),1e-12))
15802 self.assertTrue(a.getCoords().getHiddenCppPointer()==b.getCoords().getHiddenCppPointer())
15803 self.assertTrue(c.isEqual(DataArrayInt([0,0,0,0])))
15804 self.assertTrue(d.isEqual(DataArrayInt([(-1,-1),(0,3),(-1,-1),(-1,-1),(1,3),(-1,-1),(-1,-1),(2,3),(-1,-1)])))
15807 def testSwig2Intersect2DMeshWith1DLine8(self):
15808 """ Line pieces ending (or fully located) in the middle of a cell """
15809 m1c = MEDCouplingCMesh()
15810 m1c.setCoordsAt(0,DataArrayDouble([-1., 1.]))
15811 m1c.setCoordsAt(1,DataArrayDouble([-1., 1.]));
15812 m1 = m1c.buildUnstructured()
15813 coords2 = DataArrayDouble([0.,0., 0.,1.5, -1.5,0., 0.5,0.0, 0.0,-0.5, 1.1,-0.6], 6,2)
15814 m2 = MEDCouplingUMesh("piecewise_line", 1)
15815 m2.setCoords(coords2)
15816 c = DataArrayInt([NORM_SEG2,2,1, NORM_SEG2,1,4, NORM_SEG2,4,3, NORM_SEG2,3,5])
15817 cI = DataArrayInt([0,3,6,9,12])
15818 m2.setConnectivity(c, cI)
15819 a,b,c,d = MEDCouplingUMesh.Intersect2DMeshWith1DLine(m1, m2, 1e-10)
15820 self.assertTrue(a.getNodalConnectivity().isEqual(DataArrayInt([5,2,11,10,5,3,13,7,8,12,5,1,0,10,11,12,8,7,13])))
15821 self.assertTrue(a.getNodalConnectivityIndex().isEqual(DataArrayInt([0,4,10,19])))
15822 self.assertTrue(b.getNodalConnectivity().isEqual(DataArrayInt([1,6,10,1,10,11,1,11,5,1,5,12,1,12,8,1,8,7,1,7,13,1,13,9])))
15823 self.assertTrue(b.getNodalConnectivityIndex().isEqual(DataArrayInt([0,3,6,9,12,15,18,21,24])))
15824 self.assertTrue(a.getCoords()[:4].isEqual(m1.getCoords(),1e-12))
15825 self.assertTrue(a.getCoords()[4:10].isEqual(m2.getCoords(),1e-12))
15826 self.assertTrue(a.getCoords()[10:].isEqual(DataArrayDouble([(-1.,0.5),(-0.5,1.),(0.,1.),(1.,-0.5)]),1e-12))
15827 self.assertTrue(a.getCoords().getHiddenCppPointer()==b.getCoords().getHiddenCppPointer())
15828 self.assertTrue(c.isEqual(DataArrayInt([0,0,0])))
15829 self.assertTrue(d.isEqual(DataArrayInt([(-1,-1),(0,2),(-1,-1),(-1,-1),(1,2),(1,2),(1,2),(-1,-1)])))
15832 def testSwig2Intersect2DMeshWith1DLine9(self):
15833 """ Intersection with a line whose connectivity is not consecutive """
15834 m1c = MEDCouplingCMesh()
15835 coordX = DataArrayDouble([-1., 1., 2])
15836 m1c.setCoordsAt(0,coordX)
15837 coordY = DataArrayDouble([0., 2.])
15838 m1c.setCoordsAt(1,coordY);
15839 m1 = m1c.buildUnstructured()
15841 m2 = MEDCouplingUMesh("bla", 1)
15842 coord2 = DataArrayDouble([0.,1.5, 0.5,1., 0.0,0.5, 0.0,3.0, 0.0,-1.0], 5, 2)
15843 conn2 = DataArrayInt([NORM_SEG2,3,0,NORM_SEG3,0,2,1,NORM_SEG2,2,4])
15844 connI2 = DataArrayInt([0,3,7,10])
15845 m2.setCoords(coord2)
15846 m2.setConnectivity(conn2, connI2)
15847 # End of construction of input meshes m1bis and m2 -> start of specific part of the test
15848 a,b,c,d = MEDCouplingUMesh.Intersect2DMeshWith1DLine(m1, m2, 1e-10)
15849 self.assertTrue(a.getNodalConnectivity().isEqual(DataArrayInt([4,2,1,4,5,32,4,1,11,8,6,12,14,15,16,17,18,19,32,0,3,12,6,8,11,20,21,22,23,24,25])))
15850 self.assertTrue(a.getNodalConnectivityIndex().isEqual(DataArrayInt([0,5,18,31])))
15851 self.assertTrue(b.getNodalConnectivity().isEqual(DataArrayInt([1,9,12,1,12,6,2,6,8,13,1,8,11,1,11,10])))
15852 self.assertTrue(b.getNodalConnectivityIndex().isEqual(DataArrayInt([0,3,6,10,13,16])))
15853 self.assertTrue(a.getCoords()[:6].isEqual(m1.getCoords(),1e-12))
15854 self.assertTrue(a.getCoords()[6:11].isEqual(m2.getCoords(),1e-12))
15855 self.assertTrue(a.getCoords()[11:].isEqual(DataArrayDouble([(0.,0.),(0.,2.),(0.5,1.),(1.,1.),(0.5,0.),(0.,0.25),(0.5,1.),(0.,1.75),(0.5,2.),(-1.,1.),(-0.5,2.),(0.,1.75),(0.5,1.),(0.,0.25),(-0.5,0.)]),1e-12))
15856 self.assertTrue(a.getCoords().getHiddenCppPointer()==b.getCoords().getHiddenCppPointer())
15857 self.assertTrue(c.isEqual(DataArrayInt([1,0,0])))
15858 self.assertTrue(d.isEqual(DataArrayInt([(-1,-1),(1,2),(1,2),(1,2),(-1,-1)])))
15861 def testOrderConsecutiveCells1D1(self):
15862 """A line in several unconnected pieces:"""
15863 m2 = MEDCouplingUMesh.New("bla", 1)
15864 c = DataArrayInt([NORM_SEG2,0,1,NORM_SEG3,1,3,2, NORM_SEG2,3,4,
15865 NORM_SEG3,5,7,6, NORM_SEG3,7,9,8, NORM_SEG2,9,10,
15866 NORM_SEG2,11,12,NORM_SEG2,12,13,
15868 cI = DataArrayInt([0,3,7,10,14,18,21,24,27,30])
15869 coords2 = DataArrayDouble([float(i) for i in range(32)], 16,2)
15870 m2.setCoords(coords2);
15871 m2.setConnectivity(c, cI);
15872 m2.checkCoherency2(1.0e-8);
15874 # Shuffle a bit :-)
15875 m2.renumberCells(DataArrayInt([0,3,6,8,1,4,7,5,2]), True);
15876 res = m2.orderConsecutiveCells1D()
15877 expRes = [0,3,6,8,1,4,2,7,5]
15878 self.assertEqual(m2.getNumberOfCells(),res.getNumberOfTuples())
15879 self.assertEqual(expRes, res.getValues())
15881 # A closed line (should also work)
15882 m3 = MEDCouplingUMesh.New("bla3", 1)
15883 conn3A = DataArrayInt([NORM_SEG2,0,1,NORM_SEG3,1,3,2, NORM_SEG2,3,0])
15884 coord3 = coords2[0:5]
15888 m3.setCoords(coord3)
15889 m3.setConnectivity(conn3A, cI)
15890 m3.checkCoherency2(1.0e-8)
15891 res2 = m3.orderConsecutiveCells1D()
15893 self.assertEqual(m3.getNumberOfCells(),res2.getNumberOfTuples())
15894 self.assertEqual(expRes2, res2.getValues())
15897 def testDADApplyFuncOnThis1(self):
15898 d=DataArrayDouble(5) ; d.iota(0.)
15899 d.applyFuncOnThis("2*x+1")
15900 self.assertTrue(d.isEqual(DataArrayDouble([1.,3.,5.,7.,9.]),1e-12))
15901 d=DataArrayDouble(6) ; d.iota(0.) ; d.rearrange(2)
15902 d.applyFuncOnThis("2*x+1")
15903 self.assertTrue(d.isEqual(DataArrayDouble([1.,3.,5.,7.,9.,11.],3,2),1e-12))
15904 d.applyFuncOnThis("1+2*3")
15905 self.assertTrue(d.isEqual(DataArrayDouble([(7.,7.),(7.,7.),(7.,7.)]),1e-12))
15908 def testSwig2PointSetComputeFetchedNodeIds1(self):
15909 arr=DataArrayDouble(6) ; arr.iota()
15910 m=MEDCouplingCMesh() ; m.setCoords(arr,arr,arr)
15911 m=m.buildUnstructured()
15912 m0=m[[0,1,5,6,25,26,30,31,124]]
15913 ref=DataArrayInt([0,1,2,6,7,8,12,13,14,36,37,38,42,43,44,48,49,50,72,73,74,78,79,80,84,85,86,172,173,178,179,208,209,214,215])
15914 self.assertTrue(m0.computeFetchedNodeIds().isEqual(ref))
15915 self.assertTrue(MEDCoupling1SGTUMesh(m0).computeFetchedNodeIds().isEqual(ref))
15916 self.assertEqual(m0.getAllGeoTypes(),[NORM_HEXA8])
15917 m0.convertAllToPoly()
15918 self.assertEqual(m0.getAllGeoTypes(),[NORM_POLYHED])
15919 self.assertTrue(MEDCoupling1DGTUMesh(m0).computeFetchedNodeIds().isEqual(ref))
15922 def testSwig2PartDefinition1(self):
15923 pd=PartDefinition.New(5,22,3)
15924 self.assertTrue(isinstance(pd,SlicePartDefinition))
15925 self.assertTrue(pd.toDAI().isEqual(DataArrayInt([5,8,11,14,17,20])))
15926 self.assertEqual(pd.getNumberOfElems(),6)
15927 self.assertEqual(pd.getEffectiveStop(),23)
15928 pd=PartDefinition.New(5,23,3)
15929 self.assertTrue(isinstance(pd,SlicePartDefinition))
15930 self.assertTrue(pd.toDAI().isEqual(DataArrayInt([5,8,11,14,17,20])))
15931 self.assertEqual(pd.getNumberOfElems(),6)
15932 self.assertEqual(pd.getEffectiveStop(),23)
15933 self.assertEqual(pd.getSlice(),slice(5,23,3))
15934 pd=PartDefinition.New(5,22,1)
15935 self.assertTrue(isinstance(pd,SlicePartDefinition))
15936 self.assertTrue(pd.toDAI().isEqual(DataArrayInt([5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21])))
15937 self.assertEqual(pd.getNumberOfElems(),17)
15938 self.assertEqual(pd.getEffectiveStop(),22)
15939 pd=PartDefinition.New(5,23,3)+PartDefinition.New(23,27,3)
15940 self.assertTrue(isinstance(pd,SlicePartDefinition))
15941 self.assertEqual(pd.getNumberOfElems(),8)
15942 self.assertTrue(pd.toDAI().isEqual(DataArrayInt([5,8,11,14,17,20,23,26])))
15943 self.assertEqual(pd.getEffectiveStop(),29)
15944 pd=SlicePartDefinition(5,22,1)
15945 self.assertTrue(isinstance(pd,SlicePartDefinition))
15946 self.assertTrue(pd.toDAI().isEqual(DataArrayInt([5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21])))
15947 self.assertEqual(pd.getNumberOfElems(),17)
15948 self.assertEqual(pd.getEffectiveStop(),22)
15949 d=DataArrayInt([2,4,5,6,10])
15950 pd=PartDefinition.New(d)
15951 self.assertTrue(isinstance(pd,DataArrayPartDefinition))
15952 self.assertEqual(pd.toDAI().getHiddenCppPointer(),d.getHiddenCppPointer())
15953 pd=DataArrayPartDefinition(d)
15954 self.assertEqual(pd.toDAI().getHiddenCppPointer(),d.getHiddenCppPointer())
15955 pd=DataArrayPartDefinition(d)+DataArrayPartDefinition(DataArrayInt([12,14,20]))
15956 self.assertTrue(isinstance(pd,DataArrayPartDefinition))
15957 self.assertEqual(pd.getNumberOfElems(),8)
15958 self.assertTrue(pd.toDAI().isEqual(DataArrayInt([2,4,5,6,10,12,14,20])))
15961 def testSwig2SortEachPairToMakeALinkedList1(self):
15962 d=DataArrayInt([(50,49),(50,51),(51,52),(53,52),(53,54),(55,54),(55,56),(56,57),(58,57),(58,59),(60,59),(60,61),(61,62),(63,62),(63,64),(65,64),(65,66),(66,67)])
15963 d.sortEachPairToMakeALinkedList()
15964 self.assertTrue(d.isEqual(DataArrayInt([(49,50),(50,51),(51,52),(52,53),(53,54),(54,55),(55,56),(56,57),(57,58),(58,59),(59,60),(60,61),(61,62),(62,63),(63,64),(64,65),(65,66),(66,67)])))
15967 def testSwig2DAIIsRange(self):
15968 d=DataArrayInt([2,6,10])
15971 self.assertEqual(b,slice(2,11,4))
15972 self.assertTrue(DataArrayInt.Range(b.start,b.stop,b.step).isEqual(d))
15974 d=DataArrayInt([2,7,10])
15976 self.assertTrue(not a)
15977 self.assertTrue(b is None)
15979 d=DataArrayInt([22,17,12])
15982 self.assertEqual(b,slice(22,11,-5))
15983 self.assertTrue(DataArrayInt.Range(b.start,b.stop,b.step).isEqual(d))
15985 d=DataArrayInt([22,16,12])
15987 self.assertTrue(not a)
15988 self.assertTrue(b is None)
15990 d=DataArrayInt([33])
15993 self.assertEqual(b,slice(33,34,1))
15994 self.assertTrue(DataArrayInt.Range(b.start,b.stop,b.step).isEqual(d))
15999 self.assertEqual(b,slice(0,0,1))
16000 self.assertTrue(DataArrayInt.Range(b.start,b.stop,b.step).isEqual(d))
16002 d=DataArrayInt([2,6,10,2])
16004 self.assertTrue(not a)
16005 self.assertTrue(b is None)
16008 def testSwig2PartDefinitionComposeWith1(self):
16009 f=PartDefinition.New(DataArrayInt([0,1,2,3,6,7,8,9]))
16010 g=PartDefinition.New(4,14,1)
16012 self.assertTrue(isinstance(h,DataArrayPartDefinition))
16013 self.assertTrue(h.toDAI().isEqual(DataArrayInt([4,5,6,7,10,11,12,13])))
16014 f2=f.tryToSimplify()
16015 g2=g.tryToSimplify()
16016 self.assertEqual(f2.getHiddenCppPointer(),f.getHiddenCppPointer())# same because no simplification due to content of array
16017 self.assertEqual(g2.getHiddenCppPointer(),g.getHiddenCppPointer())# same because no simplification linked to type of PartDef
16018 p=PartDefinition.New(DataArrayInt([2,6,10]))
16019 p2=p.tryToSimplify()
16020 self.assertNotEqual(p2.getHiddenCppPointer(),p.getHiddenCppPointer())
16021 self.assertTrue(isinstance(p2,SlicePartDefinition))
16022 self.assertEqual(p2.getSlice(),slice(2,11,4))
16027 if __name__ == '__main__':