1 # -*- coding: iso-8859-1 -*-
2 # Copyright (C) 2007-2015 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.);
783 m3=m1.buildExtrudedMesh(m2,0);
784 expected1=[1,3,2,0,6,5,7,10,11,8,12,9,14,13,4]
785 rexpected1=[3, 0, 2, 1, 14, 5, 4, 6, 9, 11, 7, 8, 10, 13, 12]
786 m3.renumberCells(expected1,False);
787 m4=MEDCouplingExtrudedMesh.New(m3,m1,0);
788 self.assertEqual(NORM_HEXA8,m4.getTypeOfCell(0));
789 self.assertEqual(NORM_HEXA8,m4.getTypeOfCell(1));
790 self.assertEqual(NORM_POLYHED,m4.getTypeOfCell(2));
791 self.assertEqual(NORM_PENTA6,m4.getTypeOfCell(7));
792 f=m4.getMeasureField(True);
794 self.assertEqual(15,arr.getNumberOfTuples());
795 self.assertEqual(1,arr.getNumberOfComponents());
796 arrPtr=arr.getValues();
797 expected2=[0.075,0.0375,0.0375,0.075,0.075,
798 0.1125,0.05625,0.05625,0.1125,0.1125,
799 0.0625,0.03125,0.03125,0.0625,0.0625]
801 self.assertAlmostEqual(expected2[rexpected1[i]],arrPtr[i],16);
803 m5=m4.build3DUnstructuredMesh();
805 self.assertTrue(m5.isEqual(m3,1e-12));
806 f=m5.getMeasureField(True);
808 self.assertTrue(isinstance(f.getMesh(),MEDCouplingExtrudedMesh))
810 arrPtr=arr.getValues();
812 self.assertAlmostEqual(expected2[rexpected1[i]],arrPtr[i],15);
816 def testFindCommonNodes(self):
817 targetMesh=MEDCouplingDataForTest.build3DTargetMesh_1();
818 comm,commI=targetMesh.findCommonNodes(1e-10,-1);
819 self.assertEqual(1,commI.getNumberOfTuples());
820 self.assertEqual(0,comm.getNumberOfTuples());
821 o2n,newNbOfNodes=targetMesh.buildNewNumberingFromCommonNodesFormat(comm,commI);
822 self.assertEqual(27,newNbOfNodes);
823 self.assertEqual(27,o2n.getNumberOfTuples());
825 self.assertEqual(o2nExp1,list(o2n.getValues()));
827 targetMesh=MEDCouplingDataForTest.build3DTargetMeshMergeNode_1();
828 self.assertEqual(31,targetMesh.getNumberOfNodes());
829 comm,commI=targetMesh.findCommonNodes(1e-10);# testing default parameter
830 self.assertEqual(3,commI.getNumberOfTuples());
831 self.assertEqual(6,comm.getNumberOfTuples());
832 commExpected=[1,27,28,29,23,30]
833 commIExpected=[0,4,6]
834 self.assertEqual(commExpected,list(comm.getValues()));
835 self.assertEqual(commIExpected,list(commI.getValues()));
836 o2n,newNbOfNodes=targetMesh.buildNewNumberingFromCommonNodesFormat(comm,commI);
837 self.assertEqual(31,o2n.getNumberOfTuples());
838 self.assertEqual(27,newNbOfNodes);
839 o2nExp2=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,
840 21,22,23,24,25,26,1,1,1,23]
841 self.assertEqual(o2nExp2,list(o2n.getValues()));
843 targetMesh=MEDCouplingDataForTest.build3DTargetMesh_1();
844 time=targetMesh.getTimeOfThis();
845 o2n,areNodesMerged,newNbOfNodes=targetMesh.mergeNodes(1e-10);
846 targetMesh.updateTime();
847 self.assertEqual(time,targetMesh.getTimeOfThis());
848 self.assertTrue(not areNodesMerged);
850 targetMesh=MEDCouplingDataForTest.build3DTargetMeshMergeNode_1();
851 time=targetMesh.getTimeOfThis();
852 o2n,areNodesMerged,newNbOfNodes=targetMesh.mergeNodes(1e-10);
853 targetMesh.updateTime();
854 self.assertTrue(time!=targetMesh.getTimeOfThis());
855 self.assertTrue(areNodesMerged);
856 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,
857 18,4,5,8,7,13,14,17,16,
858 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,
859 18,13,14,17,16,22,23,26,25]
860 self.assertEqual(72,targetMesh.getNodalConnectivity().getNumberOfTuples());
861 self.assertEqual(connExp,list(targetMesh.getNodalConnectivity().getValues()));
862 self.assertEqual(27,targetMesh.getCoords().getNumberOfTuples());
863 coordsExp=[ 0., 0., 0., 50., 0., 0. , 200., 0., 0. , 0., 50., 0., 50., 50., 0. ,
864 200., 50., 0., 0., 200., 0., 50., 200., 0. , 200., 200., 0. ,
865 0., 0., 50., 50., 0., 50. , 200., 0., 50. , 0., 50., 50., 50.,
866 50., 50. , 200., 50., 50., 0., 200., 50., 50., 200., 50. ,
867 200., 200., 50. , 0., 0., 200., 50., 0., 200. , 200., 0., 200.
868 , 0., 50., 200., 50., 50., 200. , 200., 50., 200.,
869 0., 200., 200., 50., 200., 200. , 200., 200., 200. ]
870 self.assertEqual(coordsExp,targetMesh.getCoords().getValues());
872 targetMesh=MEDCouplingDataForTest.build2DTargetMeshMergeNode_1();
873 self.assertEqual(18,targetMesh.getNumberOfNodes());
874 time=targetMesh.getTimeOfThis();
875 o2n,areNodesMerged,newNbOfNodes=targetMesh.mergeNodes(1e-10);
876 self.assertTrue(time!=targetMesh.getTimeOfThis());
877 self.assertTrue(areNodesMerged);
878 self.assertEqual(9,targetMesh.getNumberOfNodes());
879 connExp2=[4,0,4,3,1, 3,1,3,2, 3,3,5,2, 4,4,6,7,3, 4,7,8,5,3]
880 self.assertEqual(23,targetMesh.getNodalConnectivity().getNumberOfTuples());
881 self.assertEqual(connExp2,list(targetMesh.getNodalConnectivity().getValues()));
882 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]
883 self.assertEqual(9,targetMesh.getCoords().getNumberOfTuples());
884 self.assertEqual(coordsExp2,targetMesh.getCoords().getValues());
887 def testCheckButterflyCells(self):
888 sourceMesh=MEDCouplingDataForTest.build2DTargetMesh_1();
889 cells=sourceMesh.checkButterflyCells();
890 self.assertEqual(0,len(cells));
891 conn=sourceMesh.getNodalConnectivity()
893 conn.setIJ(15,0,conn.getIJ(16,0))
895 cells=sourceMesh.checkButterflyCells();
896 self.assertEqual(1,len(cells));
897 self.assertEqual([3],cells.getValues());
899 conn.setIJ(15,0,conn.getIJ(16,0))
901 cells=sourceMesh.checkButterflyCells();
902 self.assertEqual(0,len(cells));
904 sourceMesh=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
905 cells=sourceMesh.checkButterflyCells();
906 self.assertEqual(0,len(cells));
907 conn=sourceMesh.getNodalConnectivity()
909 conn.setIJ(15,0,conn.getIJ(16,0))
911 cells=sourceMesh.checkButterflyCells();
912 self.assertEqual(1,len(cells));
913 self.assertEqual([3],cells.getValues());
915 conn.setIJ(15,0,conn.getIJ(16,0))
917 cells=sourceMesh.checkButterflyCells();
918 self.assertEqual(0,len(cells));
921 def testMergeMesh1(self):
922 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
923 m2=MEDCouplingDataForTest.build2DSourceMesh_1();
926 m3=m1.mergeMyselfWith(m2);
927 self.assertTrue(isinstance(m3,MEDCouplingUMesh));
929 m4=MEDCouplingDataForTest.build2DTargetMeshMerged_1();
930 self.assertTrue(m3.isEqual(m4,1.e-12));
931 da,isMerged,newNbOfNodes=m3.mergeNodes(1.e-12);
932 self.assertEqual(11,m3.getNumberOfNodes());
933 self.assertTrue(isMerged);
936 def testMergeMeshOnSameCoords1(self):
937 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
938 m2=MEDCouplingDataForTest.build2DTargetMesh_1();
940 m2.convertToPolyTypes(cells);
941 m1.tryToShareSameCoords(m2,1e-12);
942 m3=MEDCouplingDataForTest.build2DTargetMesh_1();
943 m3.tryToShareSameCoords(m2,1e-12);
945 m4=MEDCouplingUMesh.MergeUMeshesOnSameCoords(meshes);
947 self.assertEqual(15,m4.getNumberOfCells());
949 m1_1=m4.buildPartOfMySelf(cells1,True);
950 m1_1.setName(m1.getName());
951 self.assertTrue(m1.isEqual(m1_1,1e-12));
953 m2_1=m4.buildPartOfMySelf(cells2,True);
954 m2_1.setName(m2.getName());
955 self.assertTrue(m2.isEqual(m2_1,1e-12));
956 cells3=[10,11,12,13,14]
957 m3_1=m4.buildPartOfMySelf(cells3,True);
958 m3_1.setName(m3.getName());
959 self.assertTrue(m3.isEqual(m3_1,1e-12));
962 def testMergeField1(self):
963 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
964 m2=MEDCouplingDataForTest.build2DSourceMesh_1();
967 f1=m1.getMeasureField(True);
968 f2=m2.getMeasureField(True);
969 f3=MEDCouplingFieldDouble.MergeFields(f1,f2);
971 m4=MEDCouplingDataForTest.build2DTargetMeshMerged_1();
972 self.assertTrue(f3.getMesh().isEqual(m4,1.e-12));
974 self.assertEqual(name,"MeasureOfMesh_");
975 self.assertEqual(f3.getTypeOfField(),ON_CELLS);
976 self.assertEqual(f3.getTimeDiscretization(),ONE_TIME);
977 self.assertEqual(1,f3.getNumberOfComponents());
978 self.assertEqual(7,f3.getNumberOfTuples());
979 values=[0.25,0.125,0.125,0.25,0.25,0.5,0.5]
980 tmp=f3.getArray().getValues();
981 self.assertEqual(len(values),len(tmp))
983 self.assertTrue(abs(values[i]-tmp[i])<1e-12)
987 def testFillFromAnalytic(self):
988 m=MEDCouplingDataForTest.build2DTargetMesh_1();
989 m.setTime(3.4,5,6); m.setTimeUnit("us");
990 f1=m.fillFromAnalytic(ON_CELLS,1,"x+y");
991 self.assertAlmostEqual(3.4,f1.getTime()[0],12) ; self.assertEqual(5,f1.getTime()[1]) ; self.assertEqual(6,f1.getTime()[2])
992 self.assertEqual("us",f1.getTimeUnit())
994 self.assertEqual(f1.getTypeOfField(),ON_CELLS);
995 self.assertEqual(f1.getTimeDiscretization(),ONE_TIME);
996 self.assertEqual(1,f1.getNumberOfComponents());
997 self.assertEqual(5,f1.getNumberOfTuples());
998 values1=[-0.1,0.23333333333333336,0.56666666666666665,0.4,0.9]
999 tmp=f1.getArray().getValues();
1000 self.assertEqual(len(values1),len(tmp))
1001 for i in xrange(len(tmp)):
1002 self.assertTrue(abs(tmp[i]-values1[i])<1.e-12)
1005 f1=m.fillFromAnalytic(ON_NODES,1,"x+y");
1006 f1.checkCoherency();
1007 self.assertEqual(f1.getTypeOfField(),ON_NODES);
1008 self.assertEqual(f1.getTimeDiscretization(),ONE_TIME);
1009 self.assertEqual(1,f1.getNumberOfComponents());
1010 self.assertEqual(9,f1.getNumberOfTuples());
1011 values2=[-0.6,-0.1,0.4,-0.1,0.4,0.9,0.4,0.9,1.4]
1012 tmp=f1.getArray().getValues();
1013 self.assertEqual(len(values2),len(tmp))
1014 for i in xrange(len(tmp)):
1015 self.assertTrue(abs(tmp[i]-values2[i])<1.e-12)
1018 f1=m.fillFromAnalytic(ON_NODES,2,"(x+y)*IVec+(2*(x+y))*JVec");
1019 f1.checkCoherency();
1020 self.assertEqual(f1.getTypeOfField(),ON_NODES);
1021 self.assertEqual(f1.getTimeDiscretization(),ONE_TIME);
1022 self.assertEqual(2,f1.getNumberOfComponents());
1023 self.assertEqual(9,f1.getNumberOfTuples());
1024 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]
1025 tmp=f1.getArray().getValues();
1026 self.assertEqual(len(values3),len(tmp))
1027 for i in xrange(len(tmp)):
1028 self.assertTrue(abs(tmp[i]-values3[i])<1.e-12)
1030 values4=f1.accumulate();
1031 self.assertEqual(2,len(values4))
1032 self.assertTrue(abs(3.6-values4[0])<1.e-12);
1033 self.assertTrue(abs(7.2-values4[1])<1.e-12);
1034 values4=f1.integral(True);
1035 self.assertEqual(2,len(values4))
1036 self.assertTrue(abs(0.5-values4[0])<1.e-12);
1037 self.assertTrue(abs(1.-values4[1])<1.e-12);
1039 self.assertRaises(InterpKernelException,m.fillFromAnalytic,ON_NODES,1,"1./(x-0.2)");
1042 def testFillFromAnalytic2(self):
1043 m=MEDCouplingDataForTest.build2DTargetMesh_1();
1044 f1=m.fillFromAnalytic(ON_CELLS,1,"y+x");
1045 f1.checkCoherency();
1046 self.assertEqual(f1.getTypeOfField(),ON_CELLS);
1047 self.assertEqual(f1.getTimeDiscretization(),ONE_TIME);
1048 self.assertEqual(1,f1.getNumberOfComponents());
1049 self.assertEqual(5,f1.getNumberOfTuples());
1050 values1=[-0.1,0.23333333333333336,0.56666666666666665,0.4,0.9]
1051 tmp=f1.getArray().getValues();
1052 self.assertEqual(len(values1),len(tmp))
1053 for i in xrange(len(values1)):
1054 self.assertTrue(abs(values1[i]-tmp[i])<1.e-12);
1057 f1=m.fillFromAnalytic(ON_NODES,1,"y+2*x");
1058 f1.checkCoherency();
1059 self.assertEqual(f1.getTypeOfField(),ON_NODES);
1060 self.assertEqual(f1.getTimeDiscretization(),ONE_TIME);
1061 self.assertEqual(1,f1.getNumberOfComponents());
1062 self.assertEqual(9,f1.getNumberOfTuples());
1063 values2=[-0.9,0.1,1.1,-0.4,0.6,1.6,0.1,1.1,2.1]
1064 tmp=f1.getArray().getValues();
1065 self.assertEqual(len(values2),len(tmp))
1066 for i in xrange(len(values2)):
1067 self.assertTrue(abs(values2[i]-tmp[i])<1.e-12);
1069 f1=m.fillFromAnalytic(ON_NODES,1,"2.*x+y");
1070 f1.checkCoherency();
1071 self.assertEqual(f1.getTypeOfField(),ON_NODES);
1072 self.assertEqual(f1.getTimeDiscretization(),ONE_TIME);
1073 self.assertEqual(1,f1.getNumberOfComponents());
1074 self.assertEqual(9,f1.getNumberOfTuples());
1075 tmp=f1.getArray().getValues();
1076 values2Bis=[-0.9,0.1,1.1,-0.4,0.6,1.6,0.1,1.1,2.1]
1077 self.assertEqual(len(values2Bis),len(tmp))
1078 for i in xrange(len(values2Bis)):
1079 self.assertTrue(abs(values2Bis[i]-tmp[i])<1.e-12);
1082 f1=m.fillFromAnalytic(ON_NODES,2,"(x+y)*IVec+2*(x+y)*JVec");
1083 f1.checkCoherency();
1084 self.assertEqual(f1.getTypeOfField(),ON_NODES);
1085 self.assertEqual(f1.getTimeDiscretization(),ONE_TIME);
1086 self.assertEqual(2,f1.getNumberOfComponents());
1087 self.assertEqual(9,f1.getNumberOfTuples());
1088 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]
1089 tmp=f1.getArray().getValues();
1090 self.assertEqual(len(values3),len(tmp))
1091 for i in xrange(len(values3)):
1092 self.assertTrue(abs(values3[i]-tmp[i])<1.e-12);
1094 values4=f1.accumulate();
1095 self.assertTrue(abs(3.6-values4[0])<1.e-12);
1096 self.assertTrue(abs(7.2-values4[1])<1.e-12);
1097 values4=f1.integral(True);
1098 self.assertTrue(abs(0.5-values4[0])<1.e-12);
1099 self.assertTrue(abs(1.-values4[1])<1.e-12);
1102 def testApplyFunc(self):
1103 m=MEDCouplingDataForTest.build2DTargetMesh_1();
1104 f1=m.fillFromAnalytic(ON_NODES,2,"(x+y)*IVec+(2*(x+y))*JVec");
1105 f1.checkCoherency();
1106 self.assertEqual(f1.getTypeOfField(),ON_NODES);
1107 self.assertEqual(f1.getTimeDiscretization(),ONE_TIME);
1108 self.assertEqual(2,f1.getNumberOfComponents());
1109 self.assertEqual(9,f1.getNumberOfTuples());
1110 f1.applyFunc(1,"x+y");
1111 self.assertEqual(f1.getTypeOfField(),ON_NODES);
1112 self.assertEqual(f1.getTimeDiscretization(),ONE_TIME);
1113 self.assertEqual(1,f1.getNumberOfComponents());
1114 self.assertEqual(9,f1.getNumberOfTuples());
1115 values1=[-1.8,-0.3,1.2,-0.3,1.2,2.7,1.2,2.7,4.2]
1116 tmp=f1.getArray().getValues();
1117 self.assertEqual(len(values1),len(tmp))
1118 for i in xrange(len(tmp)):
1119 self.assertTrue(abs(tmp[i]-values1[i])<1.e-12)
1123 def testApplyFunc2(self):
1124 m=MEDCouplingDataForTest.build2DTargetMesh_1();
1125 f1=m.fillFromAnalytic(ON_NODES,2,"(x+y)*IVec+2*(x+y)*JVec");
1126 f1.checkCoherency();
1127 self.assertEqual(f1.getTypeOfField(),ON_NODES);
1128 self.assertEqual(f1.getTimeDiscretization(),ONE_TIME);
1129 self.assertEqual(2,f1.getNumberOfComponents());
1130 self.assertEqual(9,f1.getNumberOfTuples());
1133 self.assertRaises(InterpKernelException, f2.applyFunc, 1, "a+b+c+d");
1134 self.assertRaises(InterpKernelException, f2.applyFunc, 1, "a/0");
1135 self.assertRaises(InterpKernelException, f2.applyFunc, "a/0");
1136 f2.applyFunc("abs(u)^2.4+2*u");
1137 self.assertEqual(f1.getTypeOfField(),ON_NODES);
1138 self.assertEqual(f1.getTimeDiscretization(),ONE_TIME);
1139 self.assertEqual(2,f1.getNumberOfComponents());
1140 self.assertEqual(9,f1.getNumberOfTuples());
1141 values2=[-0.9065304805418678, -0.85105859001709905, -0.19601892829446504, -0.37898777756476987,
1142 0.91090317490482353, 2.1853504664669781, -0.19601892829446504, -0.37898777756476987,
1143 0.91090317490482353, 2.1853504664669781, 2.5765725275664879, 7.6987743736515295,
1144 0.91090317490482353, 2.1853504664669781, 2.5765725275664879, 7.6987743736515295,
1145 5.0423700574830965, 17.435300118916864]
1146 tmp=f2.getArray().getValues();
1147 self.assertEqual(len(tmp),len(values2))
1148 for i in xrange(len(tmp)):
1149 self.assertTrue(abs(tmp[i]-values2[i])<1.e-12)
1152 f1.applyFunc(1,"x+y");
1153 self.assertEqual(f1.getTypeOfField(),ON_NODES);
1154 self.assertEqual(f1.getTimeDiscretization(),ONE_TIME);
1155 self.assertEqual(1,f1.getNumberOfComponents());
1156 self.assertEqual(9,f1.getNumberOfTuples());
1157 values1=[-1.8,-0.3,1.2,-0.3,1.2,2.7,1.2,2.7,4.2]
1158 tmp=f1.getArray().getValues();
1159 self.assertEqual(len(tmp),len(values1))
1160 for i in xrange(len(tmp)):
1161 self.assertTrue(abs(tmp[i]-values1[i])<1.e-12)
1165 def testOperationsOnFields(self):
1166 m=MEDCouplingDataForTest.build2DTargetMesh_1();
1167 f1=m.fillFromAnalytic(ON_NODES,1,"x+y");
1168 f2=m.fillFromAnalytic(ON_NODES,1,"x+y");
1169 f1.checkCoherency();
1170 f2.checkCoherency();
1172 f3.checkCoherency();
1173 self.assertEqual(f3.getTypeOfField(),ON_NODES);
1174 self.assertEqual(f3.getTimeDiscretization(),ONE_TIME);
1175 values1=[-1.2,-0.2,0.8,-0.2,0.8,1.8,0.8,1.8,2.8]
1176 tmp=f3.getArray().getValues();
1177 self.assertEqual(len(values1),len(tmp))
1178 for i in xrange(len(tmp)):
1179 self.assertTrue(abs(tmp[i]-values1[i])<1.e-12)
1183 f3.checkCoherency();
1184 self.assertEqual(f3.getTypeOfField(),ON_NODES);
1185 self.assertEqual(f3.getTimeDiscretization(),ONE_TIME);
1186 values2=[0.36,0.01,0.16,0.01,0.16,0.81,0.16,0.81,1.96]
1187 tmp=f3.getArray().getValues();
1188 self.assertEqual(len(values2),len(tmp))
1189 for i in xrange(len(tmp)):
1190 self.assertTrue(abs(tmp[i]-values2[i])<1.e-12)
1195 f4.checkCoherency();
1196 self.assertEqual(f4.getTypeOfField(),ON_NODES);
1197 self.assertEqual(f4.getTimeDiscretization(),ONE_TIME);
1198 values3=[0.6,0.1,-0.4,0.1,-0.4,-0.9,-0.4,-0.9,-1.4]
1199 tmp=f4.getArray().getValues();
1200 self.assertEqual(len(values3),len(tmp))
1201 for i in xrange(len(tmp)):
1202 self.assertTrue(abs(tmp[i]-values3[i])<1.e-12)
1207 f4.checkCoherency();
1208 self.assertEqual(f4.getTypeOfField(),ON_NODES);
1209 self.assertEqual(f4.getTimeDiscretization(),ONE_TIME);
1210 tmp=f4.getArray().getValues();
1211 for i in xrange(len(tmp)):
1212 self.assertTrue(abs(tmp[i]-2.)<1.e-12)
1215 f4=f2.buildNewTimeReprFromThis(NO_TIME,False);
1216 f4.checkCoherency();
1217 self.assertEqual(f4.getTypeOfField(),ON_NODES);
1218 self.assertEqual(f4.getTimeDiscretization(),NO_TIME);
1219 self.assertRaises(InterpKernelException,f1.__add__,f4);
1220 f5=f4.buildNewTimeReprFromThis(ONE_TIME,False);
1221 self.assertEqual(f5.getTypeOfField(),ON_NODES);
1222 self.assertEqual(f5.getTimeDiscretization(),ONE_TIME);
1224 tmp=f3.getArray().getValues();
1225 values4=[-1.2,-0.2,0.8,-0.2,0.8,1.8,0.8,1.8,2.8]
1226 self.assertEqual(len(values3),len(tmp))
1227 for i in xrange(len(tmp)):
1228 self.assertTrue(abs(tmp[i]-values4[i])<1.e-12)
1231 f4=f2.buildNewTimeReprFromThis(NO_TIME,True);
1232 f4.checkCoherency();
1233 self.assertEqual(f4.getTypeOfField(),ON_NODES);
1234 self.assertEqual(f4.getTimeDiscretization(),NO_TIME);
1235 self.assertRaises(InterpKernelException,f1.__add__,f4);
1236 f5=f4.buildNewTimeReprFromThis(ONE_TIME,True);
1237 self.assertEqual(f5.getTypeOfField(),ON_NODES);
1238 self.assertEqual(f5.getTimeDiscretization(),ONE_TIME);
1240 tmp=f3.getArray().getValues();
1241 values5=[-1.2,-0.2,0.8,-0.2,0.8,1.8,0.8,1.8,2.8]
1242 self.assertEqual(len(values5),len(tmp))
1243 for i in xrange(len(tmp)):
1244 self.assertTrue(abs(tmp[i]-values5[i])<1.e-12)
1248 def testOperationsOnFields2(self):
1249 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
1250 m.setTime(3.4,5,6); m.setTimeUnit("us");
1251 f1=m.fillFromAnalytic(ON_NODES,1,"x+y+z");
1252 f2=m.fillFromAnalytic(ON_NODES,1,"a*a+b+c*c");
1254 f3.checkCoherency();
1255 self.assertEqual(f3.getTypeOfField(),ON_NODES);
1256 self.assertEqual(f3.getTimeDiscretization(),ONE_TIME);
1257 expected1=[-2.4999999999999991, 1.2162162162162162, 0.77868852459016391,
1258 0.7407407407407407, 1.129032258064516, 0.81632653061224492,
1259 0.86538461538461531, 1.0919540229885056, 0.84302325581395343]
1260 self.assertEqual(1,f3.getNumberOfComponents());
1261 self.assertEqual(9,f3.getNumberOfTuples());
1262 val=f3.getArray().getValues();
1264 self.assertTrue(abs(expected1[i]-val[i])<1.e-12);
1266 f1=m.buildOrthogonalField();
1267 self.assertAlmostEqual(3.4,f1.getTime()[0],12) ; self.assertEqual(5,f1.getTime()[1]) ; self.assertEqual(6,f1.getTime()[2])
1268 self.assertEqual("us",f1.getTimeUnit())
1269 f2=m.fillFromAnalytic(ON_CELLS,1,"x");
1271 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]
1272 val=f3.getArray().getValues();
1273 for i in xrange(15):
1274 self.assertTrue(abs(expected2[i]-val[i])<1.e-12);
1278 val=f3.getArray().getValues();
1279 for i in xrange(15):
1280 self.assertTrue(abs(expected2[i]-val[i])<1.e-12);
1284 def testOperationsOnFields3(self):
1285 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
1286 f1=m.fillFromAnalytic(ON_NODES,1,"x+y+z");
1287 f2=m.fillFromAnalytic(ON_NODES,1,"a*a+b+c*c");
1289 f1.checkCoherency();
1290 self.assertEqual(f1.getTypeOfField(),ON_NODES);
1291 self.assertEqual(f1.getTimeDiscretization(),ONE_TIME);
1292 expected1=[-2.4999999999999991, 1.2162162162162162, 0.77868852459016391,
1293 0.7407407407407407, 1.129032258064516, 0.81632653061224492,
1294 0.86538461538461531, 1.0919540229885056, 0.84302325581395343]
1295 self.assertEqual(1,f1.getNumberOfComponents());
1296 self.assertEqual(9,f1.getNumberOfTuples());
1297 val=f1.getArray().getValues();
1299 self.assertTrue(abs(expected1[i]-val[i])<1.e-12);
1302 f1=m.buildOrthogonalField();
1303 f2=m.fillFromAnalytic(ON_CELLS,1,"x");
1305 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]
1306 val=f1.getArray().getValues();
1307 for i in xrange(15):
1308 self.assertTrue(abs(expected2[i]-val[i])<1.e-12);
1311 f1=m.buildOrthogonalField();
1312 # to avoid valgrind leaks
1313 # self.assertRaises(InterpKernelException,f2.__imul__,f1);
1316 def testOperationsOnFields4(self):
1317 m=MEDCouplingDataForTest.build2DTargetMesh_1();
1318 nbOfCells=m.getNumberOfCells();
1319 f1=MEDCouplingFieldDouble.New(ON_CELLS,CONST_ON_TIME_INTERVAL);
1321 array=DataArrayDouble.New();
1323 self.assertRaises(InterpKernelException,f1.setEndArray,array);
1324 self.assertRaises(InterpKernelException,f1.getEndArray);
1325 arr1=[0.,10.,20.,1.,11.,21.,2.,12.,22.,3.,13.,23.,4.,14.,24.]
1326 arr2=[5.,15.,25.,6.,16.,26.,7.,17.,27.,8.,18.,28.,9.,19.,29.]
1327 array.setValues(arr1,nbOfCells,3);
1328 f1.setStartTime(2.,0,0);
1329 f1.setEndTime(3.,0,0);
1330 f1.checkCoherency();
1332 res=f1.getValueOn(pos);
1333 self.assertTrue(abs(arr1[3]-res[0])<1.e-12);
1334 self.assertTrue(abs(arr1[4]-res[1])<1.e-12);
1335 self.assertTrue(abs(arr1[5]-res[2])<1.e-12);
1337 res=f1.getValueOn(pos,2.2);
1338 self.assertTrue(abs(arr1[3]-res[0])<1.e-12);
1339 self.assertTrue(abs(arr1[4]-res[1])<1.e-12);
1340 self.assertTrue(abs(arr1[5]-res[2])<1.e-12);
1342 self.assertRaises(InterpKernelException,f1.getValueOn,pos,3.2)
1343 f2=MEDCouplingFieldDouble.New(ON_CELLS,LINEAR_TIME);
1345 f2.setArray(f1.getArray());
1346 f2.setStartTime(2.,3,0);
1347 f2.setEndTime(4.,13,0);
1348 self.assertRaises(InterpKernelException,f2.checkCoherency)
1349 array2=DataArrayDouble.New();
1350 array2.setValues(arr2,nbOfCells,3);
1351 f2.setEndArray(array2);
1352 f2.checkCoherency();
1355 res=f2.getValueOn(pos,3.21);
1356 self.assertTrue(abs(4.025-res[0])<1.e-12);
1357 self.assertTrue(abs(14.025-res[1])<1.e-12);
1358 self.assertTrue(abs(24.025-res[2])<1.e-12);
1360 self.assertTrue(f2.isEqual(f3,1e-12,1e-12));
1361 f3.getEndArray().setIJ(0,0,5.001);
1362 self.assertTrue(not f2.isEqual(f3,1e-12,1e-12));
1363 self.assertTrue(f2.isEqual(f3,1e-12,1e-2));
1364 f3.setStartTime(2.1,3,0);
1365 self.assertTrue(not f2.isEqual(f3,1e-12,1e-2));
1366 f3.setStartTime(2.,3,0);
1367 self.assertTrue(f2.isEqual(f3,1e-12,1e-2));
1368 f3.setStartTime(2.,4,0);
1369 self.assertTrue(not f2.isEqual(f3,1e-12,1e-2));
1370 f3.setStartTime(2.,3,1);
1371 self.assertTrue(not f2.isEqual(f3,1e-12,1e-2));
1372 f3.setStartTime(2.,3,0);
1373 self.assertTrue(f2.isEqual(f3,1e-12,1e-2));
1374 f3.setEndTime(4.1,13,0);
1375 self.assertTrue(not f2.isEqual(f3,1e-12,1e-2));
1376 f3.setEndTime(4.,13,0);
1377 self.assertTrue(f2.isEqual(f3,1e-12,1e-2));
1378 f3.setEndTime(4.,14,0);
1379 self.assertTrue(not f2.isEqual(f3,1e-12,1e-2));
1380 f3.setEndTime(4.,13,1);
1381 self.assertTrue(not f2.isEqual(f3,1e-12,1e-2));
1382 f3.setEndTime(4.,13,0);
1383 self.assertTrue(f2.isEqual(f3,1e-12,1e-2));
1386 res=f4.getValueOn(pos,3.21);
1387 self.assertTrue(abs(8.05-res[0])<1.e-12);
1388 self.assertTrue(abs(28.05-res[1])<1.e-12);
1389 self.assertTrue(abs(48.05-res[2])<1.e-12);
1392 res=f4.getValueOn(pos,3.21);
1393 self.assertTrue(abs(12.075-res[0])<1.e-12);
1394 self.assertTrue(abs(42.075-res[1])<1.e-12);
1395 self.assertTrue(abs(72.075-res[2])<1.e-12);
1398 def testMergeNodesOnField(self):
1399 targetMesh=MEDCouplingDataForTest.build3DTargetMeshMergeNode_1();
1400 f1=targetMesh.fillFromAnalytic(ON_NODES,1,"x+y+z");
1401 f1.mergeNodes(1e-10);
1403 targetMesh=MEDCouplingDataForTest.build3DTargetMeshMergeNode_1();
1404 f1=targetMesh.fillFromAnalytic(ON_NODES,1,"x+y+z");
1406 tmp.setIJ(0,0,1000.);
1407 f1.mergeNodes(1e-10);
1409 targetMesh=MEDCouplingDataForTest.build3DTargetMeshMergeNode_1();
1410 f1=targetMesh.fillFromAnalytic(ON_NODES,1,"x+y+z");
1412 tmp.setIJ(1,0,1000.);
1413 self.assertRaises(InterpKernelException,f1.mergeNodes,1.e-10)
1416 def testCheckConsecutiveCellTypes(self):
1417 sourceMesh=MEDCouplingDataForTest.build2DSourceMesh_1();
1418 targetMesh=MEDCouplingDataForTest.build2DTargetMesh_1();
1419 self.assertTrue(sourceMesh.checkConsecutiveCellTypes());
1420 order1=[NORM_TRI3,NORM_QUAD4]
1421 order2=[NORM_QUAD4,NORM_TRI3]
1422 self.assertTrue(not targetMesh.checkConsecutiveCellTypes());
1423 self.assertTrue(not targetMesh.checkConsecutiveCellTypesAndOrder(order1));
1424 self.assertTrue(not targetMesh.checkConsecutiveCellTypesAndOrder(order2));
1425 da=targetMesh.getRenumArrForConsecutiveCellTypesSpec(order1);
1426 self.assertEqual(5,da.getNumberOfTuples());
1427 self.assertEqual(1,da.getNumberOfComponents());
1428 expected1=[2,0,1,3,4]
1429 self.assertTrue(expected1==list(da.getValues()));
1430 da=targetMesh.getRenumArrForConsecutiveCellTypesSpec(order2);
1431 self.assertEqual(5,da.getNumberOfTuples());
1432 self.assertEqual(1,da.getNumberOfComponents());
1433 expected2=[0,3,4,1,2]
1434 self.assertTrue(expected2==list(da.getValues()));
1435 renumber1=[4,0,1,2,3]
1436 targetMesh.renumberCells(renumber1,False);
1437 self.assertTrue(targetMesh.checkConsecutiveCellTypes());
1438 self.assertTrue(targetMesh.checkConsecutiveCellTypesAndOrder(order1));
1439 self.assertTrue(not targetMesh.checkConsecutiveCellTypesAndOrder(order2));
1442 def testRearrange2ConsecutiveCellTypes(self):
1443 m1_1=MEDCouplingDataForTest.build2DSourceMesh_1();
1444 m2_1=MEDCouplingDataForTest.build2DTargetMesh_1();
1445 arr1=m1_1.rearrange2ConsecutiveCellTypes();
1446 m1_2=MEDCouplingDataForTest.build2DSourceMesh_1();
1447 self.assertTrue(m1_2.isEqual(m1_1,1e-12));
1449 self.assertEqual(2,arr1.getNumberOfTuples());
1450 self.assertEqual(1,arr1.getNumberOfComponents());
1451 self.assertEqual(expected1,arr1.getValues());
1452 expected2=[0,3,4,1,2]
1453 arr1=m2_1.rearrange2ConsecutiveCellTypes();
1454 self.assertEqual(5,arr1.getNumberOfTuples());
1455 self.assertEqual(1,arr1.getNumberOfComponents());
1456 self.assertEqual(expected2,list(arr1.getValues()));
1457 m2_2=MEDCouplingDataForTest.build2DTargetMesh_1();
1458 self.assertEqual(5,arr1.getNumberOfTuples());
1459 self.assertEqual(1,arr1.getNumberOfComponents());
1460 self.assertEqual(expected2,list(arr1.getValues()));
1461 self.assertTrue(not m2_2.isEqual(m2_1,1e-12));
1462 m2_2.renumberCells(expected2,False);
1463 self.assertTrue(m2_2.isEqual(m2_1,1e-12));
1466 def testSplitByType(self):
1467 m1=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
1469 self.assertEqual(3,len(v));
1470 m2=MEDCouplingUMesh.MergeUMeshesOnSameCoords(v);
1471 m2.setName(m1.getName());
1472 self.assertTrue(m1.isEqual(m2,1.e-12));
1475 def testFuseUMeshesOnSameCoords(self):
1476 m2=MEDCouplingDataForTest.build2DTargetMesh_1();
1478 m3=m2.buildPartOfMySelf(cells1,True);
1479 self.assertTrue(isinstance(m3,MEDCouplingUMesh))
1481 m4=m2.buildPartOfMySelf(cells2,True);
1482 self.assertTrue(isinstance(m4,MEDCouplingUMesh))
1484 m5=m2.buildPartOfMySelf(cells3,True);
1485 self.assertTrue(isinstance(m5,MEDCouplingUMesh))
1488 m7,corr=MEDCouplingUMesh.FuseUMeshesOnSameCoords(meshes,0);
1489 self.assertEqual(4,m7.getNumberOfCells());
1490 self.assertEqual(3,len(corr));
1491 expectedVals1=[3,3,2]
1492 expectedVals2=[[0,1,2],[3,0,2],[3,0]]
1495 self.assertEqual(1,arr.getNumberOfComponents());
1496 nbOfVals=expectedVals1[i];
1497 self.assertEqual(nbOfVals,arr.getNumberOfTuples());
1498 vals=arr.getValues();
1499 self.assertEqual(expectedVals2[i],list(vals));
1501 arr2,fidsOfGroups=DataArrayInt.MakePartition(corr,m7.getNumberOfCells());
1503 fidsGrp=[[1,3,5],[3,4,5],[4,5]]
1504 self.assertEqual(3,len(fidsOfGroups));
1505 self.assertEqual(1,arr2.getNumberOfComponents());
1506 self.assertEqual(4,arr2.getNumberOfTuples());
1507 self.assertEqual(fidExp,list(arr2.getValues()));
1509 nbOfVals=expectedVals1[i];
1510 self.assertEqual(list(fidsOfGroups[i]),fidsGrp[i]);
1514 def testFuseUMeshesOnSameCoords2(self):
1515 m1,m2=MEDCouplingDataForTest.build3DExtrudedUMesh_1();
1517 m3=m1.buildPartOfMySelf(part1,True);
1519 m4=m1.buildPartOfMySelf(part2,True);
1520 meshes=[m1,m3,m3,m4]
1521 m5,corr=MEDCouplingUMesh.FuseUMeshesOnSameCoords(meshes,0);
1522 self.assertEqual(18,m5.getNumberOfCells());
1524 [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],
1530 self.assertEqual(exp2[i],list(it.getValues()));
1535 def testBuildOrthogonalField(self):
1536 targetMesh=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
1537 field=targetMesh.buildOrthogonalField();
1538 expected=[0.70710678118654746,0.,-0.70710678118654746]
1539 self.assertEqual(5,field.getNumberOfTuples());
1540 self.assertEqual(3,field.getNumberOfComponents());
1541 vals=field.getArray().getValues();
1542 for i in xrange(15):
1543 self.assertTrue(abs(expected[i%3]-vals[i])<1e-12);
1545 targetCoords=[0.,0.,0.,0.5,0.,0.5,1.,0.,1.,0.,1.,0.]
1546 targetConn=[0,1,2,3]
1547 targetMesh=MEDCouplingUMesh.New();
1548 targetMesh.setMeshDimension(2);
1549 targetMesh.allocateCells(1);
1550 targetMesh.insertNextCell(NORM_QUAD4,targetConn[0:4])
1551 targetMesh.finishInsertingCells();
1552 myCoords=DataArrayDouble.New();
1553 myCoords.setValues(targetCoords,4,3);
1554 targetMesh.setCoords(myCoords);
1555 field=targetMesh.buildOrthogonalField();
1556 self.assertEqual(1,field.getNumberOfTuples());
1557 self.assertEqual(3,field.getNumberOfComponents());
1558 vals=field.getArray().getValues();
1559 self.assertTrue(abs(-0.70710678118654746-vals[0])<1e-12);
1560 self.assertTrue(abs(0.-vals[1])<1e-12);
1561 self.assertTrue(abs(0.70710678118654746-vals[2])<1e-12);
1564 def testGetCellsContainingPoint(self):
1565 targetMesh=MEDCouplingDataForTest.build2DTargetMesh_1();
1566 pos=[0.,0.,0.4,0.4,0.,0.4,0.1,0.1,0.25,0.,0.65,0.]
1568 t1,t2=targetMesh.getCellsContainingPoints(pos,6,1e-12);
1569 self.assertEqual(6,t1.getNumberOfTuples());
1570 self.assertEqual(1,t1.getNumberOfComponents());
1571 self.assertEqual(7,t2.getNumberOfTuples());
1572 self.assertEqual(1,t2.getNumberOfComponents());
1573 expectedValues1=[0,4,3,0,1,2]
1574 expectedValues2=[0,1,2,3,4,5,6]
1575 self.assertEqual(list(t1.getValues()),expectedValues1);
1576 self.assertEqual(list(t2.getValues()),expectedValues2);
1577 #2D with no help of bounding box.
1579 MEDCouplingPointSet.Rotate2DAlg(center,0.78539816339744830962,6,pos);
1580 targetMesh.rotate(center,0.78539816339744830962);
1583 t1,t2=targetMesh.getCellsContainingPoints(pos,1e-12);
1584 self.assertEqual(6,t1.getNumberOfTuples());
1585 self.assertEqual(7,t2.getNumberOfTuples());
1586 self.assertEqual(list(t1.getValues()),expectedValues1);
1587 self.assertEqual(list(t2.getValues()),expectedValues2);
1588 t1,t2=targetMesh.getCellsContainingPoints(DataArrayDouble.New(pos,6,2),1e-12);
1589 self.assertEqual(6,t1.getNumberOfTuples());
1590 self.assertEqual(7,t2.getNumberOfTuples());
1591 self.assertEqual(list(t1.getValues()),expectedValues1);
1592 self.assertEqual(list(t2.getValues()),expectedValues2);
1593 self.assertRaises(InterpKernelException,targetMesh.getCellsContainingPoints,DataArrayDouble.New(pos,4,3),1e-12);
1595 pos1bis=[-0.3303300858899107,-0.11819805153394641]
1596 self.assertEqual(-1,targetMesh.getCellContainingPoint(pos1bis,1e-12));
1598 targetMesh=MEDCouplingDataForTest.build2DTargetMesh_1();
1601 t1=targetMesh.getCellsContainingPoint(pos2,1e-12)
1602 self.assertEqual(2,len(t1));
1603 expectedValues3=[0,1]
1604 self.assertEqual(list(t1.getValues()),expectedValues3);
1607 t1=targetMesh.getCellsContainingPoint(pos3,1e-12);
1608 self.assertEqual(5,len(t1));
1609 expectedValues4=[0,1,2,3,4]
1610 self.assertEqual(list(t1.getValues()),expectedValues4);
1611 self.assertEqual(0,targetMesh.getCellContainingPoint(pos3,1e-12));
1613 targetMesh=MEDCouplingDataForTest.build3DTargetMesh_1();
1615 self.assertEqual(0,targetMesh.getCellContainingPoint(pos4,1e-12));
1618 t1=targetMesh.getCellsContainingPoint(pos5,1e-12);
1619 self.assertEqual(8,len(t1));
1620 expectedValues5=[0,1,2,3,4,5,6,7]
1621 self.assertEqual(list(t1.getValues()),expectedValues5);
1624 t1=targetMesh.getCellsContainingPoint(pos6,1e-12);
1625 self.assertEqual(2,len(t1));
1626 expectedValues6=[0,2]
1627 self.assertEqual(list(t1.getValues()),expectedValues6);
1630 self.assertEqual(-1,targetMesh.getCellContainingPoint(pos7,1e-12));
1634 targetMesh.rotate(center2,vec2,0.78539816339744830962);
1636 self.assertEqual(-1,targetMesh.getCellContainingPoint(pos8,1e-12));
1639 def testGetValueOn1(self):
1640 targetMesh=MEDCouplingDataForTest.build2DTargetMesh_1();
1641 fieldOnCells=MEDCouplingFieldDouble.New(ON_CELLS);
1642 nbOfCells=targetMesh.getNumberOfCells();
1643 fieldOnCells.setMesh(targetMesh);
1644 array=DataArrayDouble.New();
1645 tmp=2*nbOfCells*[None]
1646 for i in xrange(nbOfCells):
1647 tmp[2*i]=7.+float(i);
1648 tmp[2*i+1]=17.+float(i)
1650 array.setValues(tmp,nbOfCells,2);
1651 fieldOnCells.setArray(array);
1654 res=fieldOnCells.getValueOn(pos1);
1655 self.assertEqual(2,len(res))
1656 self.assertTrue(abs(8.-res[0])<1e-12);
1657 self.assertTrue(abs(18.-res[1])<1e-12);
1660 targetMesh=MEDCouplingDataForTest.build2DSourceMesh_1();
1661 fieldOnNodes=MEDCouplingFieldDouble.New(ON_NODES);
1662 nbOfNodes=targetMesh.getNumberOfNodes();
1663 fieldOnNodes.setMesh(targetMesh);
1664 array=DataArrayDouble.New();
1665 tmp=2*nbOfNodes*[None]
1666 for i in xrange(nbOfNodes):
1667 tmp[2*i]=17.+float(i);
1668 tmp[2*i+1]=27.+float(i)
1670 array.setValues(tmp,nbOfNodes,2);
1671 fieldOnNodes.setArray(array);
1673 pos2=[-0.13333333333333333,-0.13333333333333333]
1675 res=fieldOnNodes.getValueOn(pos2);
1676 self.assertEqual(2,len(res))
1677 self.assertTrue(abs(17.5-res[0])<1e-12);
1678 self.assertTrue(abs(27.5-res[1])<1e-12);
1679 pos3=[0.033333333333333326,0.36666666666666664]
1681 res=fieldOnNodes.getValueOn(pos3);
1682 self.assertEqual(2,len(res))
1683 self.assertTrue(abs(18.666666666666667-res[0])<1e-12);
1684 self.assertTrue(abs(28.666666666666667-res[1])<1e-12);
1687 def testCMesh0(self):
1688 mesh=MEDCouplingCMesh.New();
1689 meshEmpty=mesh.clone(True);
1690 self.assertTrue(meshEmpty.isEqual(mesh, 1e-12));
1692 coordsX=DataArrayDouble.New();
1693 arrX=[ -1., 1., 2., 4. ]
1694 coordsX.setValues(arrX, 4, 1);
1695 coordsY=DataArrayDouble.New();
1696 arrY=[ -2., 2., 4., 8. ]
1697 coordsY.setValues(arrY, 4, 1);
1698 coordsZ=DataArrayDouble.New();
1699 arrZ=[ -3., 3., 6., 12. ]
1700 coordsZ.setValues(arrZ, 4, 1);
1701 mesh.setCoords(coordsX, coordsY, coordsZ);
1703 fieldOnNodes=mesh.fillFromAnalytic(ON_NODES, 1, "x+y/2.+z/3.");
1704 self.assertEqual(1, fieldOnNodes.getNumberOfComponents());
1705 self.assertEqual(64, fieldOnNodes.getNumberOfTuples());
1706 expected1=[-3., -1., 0., 2., -1., 1., 2., 4., 0., 2., 3., 5., 2., 4., 5., 7., -1., 1., 2.,
1707 4., 1., 3., 4., 6., 2., 4., 5., 7., 4., 6., 7., 9., 0., 2., 3., 5., 2., 4., 5.,
1708 7., 3., 5., 6., 8., 5., 7., 8., 10., 2., 4., 5.,
1709 7., 4., 6., 7., 9., 5., 7., 8., 10., 7., 9., 10., 12.];
1711 val=fieldOnNodes.getArray().getValues();
1712 for i in xrange(64):
1713 self.assertAlmostEqual(expected1[i], val[i], 12)
1714 res=fieldOnNodes.getValueOnPos(1, 3, 2);
1715 self.assertAlmostEqual(7., res[0], 12);
1717 fieldOnCells=mesh.fillFromAnalytic(ON_CELLS, 1, "x+y/2.+z/3.");
1718 self.assertEqual(1, fieldOnCells.getNumberOfComponents());
1719 self.assertEqual(27, fieldOnCells.getNumberOfTuples());
1720 val=fieldOnCells.getArray().getValues();
1721 expected2=[0, 1.5, 3, 1.5, 3, 4.5, 3, 4.5, 6, 1.5, 3, 4.5, 3, 4.5,
1722 6, 4.5, 6, 7.5, 3, 4.5, 6, 4.5, 6, 7.5, 6, 7.5, 9];
1723 for i in xrange(27):
1724 self.assertAlmostEqual(expected2[i], val[i], 12);
1725 #res=fieldOnCells.getValueOnPos(1,2,1);
1726 #self.assertAlmostEqual(6.,res,12);
1728 meshDeepCopy=mesh.deepCpy();
1729 meshClone=mesh.clone(False);
1731 meshEmpty.copyTinyStringsFrom(mesh);
1732 #no data in meshEmpty, expected False
1733 self.assertTrue(not meshEmpty.isEqual(mesh, 1e-12));
1735 self.assertTrue(meshDeepCopy.isEqual(mesh, 1e-12));
1736 meshDeepCopy.copyTinyStringsFrom(mesh);
1737 self.assertTrue(meshDeepCopy.isEqual(mesh, 1e-12));
1738 self.assertTrue(meshClone.isEqual(mesh, 1e-12));
1740 self.assertEqual(CARTESIAN, mesh.getType());
1741 self.assertEqual(CARTESIAN, meshEmpty.getType());
1742 self.assertEqual(CARTESIAN, meshDeepCopy.getType());
1743 self.assertEqual(CARTESIAN, meshClone.getType());
1746 def testCMesh1(self):
1747 mesh1=MEDCouplingCMesh.New();
1748 coordsX1=DataArrayDouble.New();
1749 arrX1=[ -1., 1., 2., 4. ]
1750 coordsX1.setValues(arrX1, 4, 1);
1751 coordsY1=DataArrayDouble.New();
1752 arrY1=[ -2., 2., 4., 8. ]
1753 coordsY1.setValues(arrY1, 4, 1);
1754 coordsZ1=DataArrayDouble.New();
1755 arrZ1=[ -3., 3., 6., 12. ]
1756 coordsZ1.setValues(arrZ1, 4, 1);
1757 mesh1.setCoords(coordsX1, coordsY1, coordsZ1);
1759 mesh2=MEDCouplingCMesh.New();
1760 coordsX2=DataArrayDouble.New();
1761 arrX2=[ -1., 1., 2., 4. ]
1762 coordsX2.setValues(arrX2, 4, 1);
1763 coordsY2=DataArrayDouble.New();
1764 arrY2=[ -2., 2., 4., 8. ]
1765 coordsY2.setValues(arrY2, 4, 1);
1766 coordsZ2=DataArrayDouble.New();
1767 arrZ2=[ -3., 3., 6., 12.+1e-6 ]
1768 coordsZ2.setValues(arrZ2, 4, 1);
1769 mesh2.setCoords(coordsX2, coordsY2, coordsZ2);
1771 mesh3=MEDCouplingCMesh.New();
1772 coordsX3=DataArrayDouble.New();
1774 coordsX3.setValues(arrX3, 1, 1);
1775 coordsY3=DataArrayDouble.New();
1777 coordsY3.setValues(arrY3, 1, 1);
1778 coordsZ3=DataArrayDouble.New();
1780 coordsZ3.setValues(arrZ3, 1, 1);
1781 mesh3.setCoords(coordsX3, coordsY3, coordsZ3);
1783 self.assertEqual(3, mesh1.getSpaceDimension());
1784 self.assertEqual(3, mesh1.getMeshDimension());
1786 self.assertTrue(not mesh1.isEqual(mesh2, 1e-12));
1787 self.assertTrue(not mesh2.isEqual(mesh1, 1e-12));
1788 self.assertTrue(not mesh2.isEqualWithoutConsideringStr(mesh1, 1e-12));
1789 self.assertTrue(mesh1.isEqual(mesh2, 1e-5));
1790 self.assertTrue(not mesh1.isEqual(mesh2, 1e-7));
1792 self.assertRaises(InterpKernelException, mesh3.checkCoherency1, 1e-12);
1793 mesh1.checkCoherency2(1e-12);
1794 self.assertEqual(NORM_HEXA8, mesh1.getTypeOfCell(1));
1796 self.assertEqual(NORM_HEXA8, mesh1.getAllGeoTypes()[0]);
1797 self.assertEqual(27, mesh1.getNumberOfCellsWithType(NORM_HEXA8));
1798 self.assertRaises(InterpKernelException, mesh1.getNumberOfCellsWithType, NORM_QUAD4);
1800 coo=mesh1.getCoordinatesOfNode(0);
1801 self.assertEqual(3, len(coo));
1802 self.assertAlmostEqual(-1., coo[0], 14);
1803 self.assertAlmostEqual(-2., coo[1], 14);
1804 self.assertAlmostEqual(-3., coo[2], 14);
1805 coo=mesh1.getCoordinatesOfNode(63);
1806 self.assertEqual(3, len(coo));
1807 self.assertAlmostEqual(4., coo[0], 14);
1808 self.assertAlmostEqual(8., coo[1], 14);
1809 self.assertAlmostEqual(12., coo[2], 14);
1812 repr=mesh1.simpleRepr();
1813 repr=mesh1.advancedRepr();
1814 self.assertTrue("Cartesian" in repr);
1815 self.assertTrue("Number of components : 1" in repr);
1816 self.assertTrue("Number of tuples : 4" in repr);
1817 self.assertTrue("Z Array :" in repr);
1820 def testCMesh2(self):
1821 mesh1=MEDCouplingCMesh.New();
1822 coordsX1=DataArrayDouble.New();
1823 arrX1=[ -1., 1., 2., 4. ]
1824 coordsX1.setValues(arrX1, 4, 1);
1825 coordsY1=DataArrayDouble.New();
1826 arrY1=[ -2., 2., 4., 8. ]
1827 coordsY1.setValues(arrY1, 4, 1);
1828 coordsZ1=DataArrayDouble.New();
1829 arrZ1=[ -3., 3., 6., 12. ]
1830 coordsZ1.setValues(arrZ1, 4, 1);
1831 mesh1.setCoords(coordsX1, coordsY1, coordsZ1);
1833 dis=mesh1.getDistributionOfTypes();
1834 self.assertEqual(1, len(dis));
1835 self.assertEqual(NORM_HEXA8, dis[0][0]);
1836 self.assertEqual(27, dis[0][1]);
1837 self.assertEqual(-1, dis[0][2]);
1840 self.assertTrue(not mesh1.checkTypeConsistencyAndContig(dis, idsPerType));
1841 dis[0][0]=NORM_QUAD4;
1842 self.assertRaises(InterpKernelException, mesh1.checkTypeConsistencyAndContig, dis, idsPerType);
1843 dis[0][0]=NORM_HEXA8;
1845 ids=DataArrayInt.New();
1847 ids.fillWithValue(23);
1849 check=mesh1.checkTypeConsistencyAndContig(dis, idsPerType);
1850 self.assertTrue(check);
1851 self.assertTrue(check.isEqual(ids));
1853 code, idsInPflPerType, pfls=mesh1.splitProfilePerType(ids);
1854 self.assertEqual(1, len(code));
1855 self.assertEqual(NORM_HEXA8, code[0][0]);
1856 self.assertEqual(10, code[0][1]);
1857 self.assertEqual(0, code[0][2]);
1858 self.assertEqual(1, len(idsInPflPerType));
1859 self.assertEqual(1, len(pfls));
1860 self.assertTrue(idsInPflPerType[0].isEqual(DataArrayInt([0,1,2,3,4,5,6,7,8,9])));
1861 self.assertTrue(pfls[0].isEqual(ids));
1863 cells1=[0, 1, 25, 26]
1864 partMesh1=mesh1.buildPart(cells1)
1865 self.assertTrue(isinstance(partMesh1,MEDCouplingMesh))
1866 self.assertEqual(4, partMesh1.getNumberOfCellsWithType(NORM_HEXA8));
1867 self.assertEqual(64, mesh1.getNumberOfNodes());
1868 self.assertEqual(64, partMesh1.getNumberOfNodes());
1871 partMesh2, arr1=mesh1.buildPartAndReduceNodes(cells2)
1872 self.assertTrue(isinstance(partMesh2,MEDCouplingCMesh))
1873 self.assertEqual(2,partMesh2.getNumberOfCellsWithType(NORM_HEXA8));
1874 self.assertEqual(12,partMesh2.getNumberOfNodes());
1877 partMesh3, arr2=partMesh1.buildPartAndReduceNodes(cells3)
1878 self.assertTrue(isinstance(partMesh3,MEDCouplingUMesh))
1879 self.assertEqual(2, partMesh3.getNumberOfCellsWithType(NORM_HEXA8));
1880 self.assertEqual(12, partMesh3.getNumberOfNodes());
1882 self.assertRaises(InterpKernelException, mesh1.simplexize, 0);
1883 self.assertRaises(InterpKernelException, mesh1.getMeasureFieldOnNode, True);
1887 bbox1=mesh1.getBoundingBox(); #[(-1.0, 4.0), (-2.0, 8.0), (-3.0, 12.0)]
1888 bbox2=partMesh1.getBoundingBox();
1889 self.assertTrue(bbox1==bbox2);
1890 bbox1=partMesh3.getBoundingBox();
1891 bbox2=partMesh2.getBoundingBox();
1892 self.assertTrue(bbox1==bbox2);
1894 self.assertRaises(InterpKernelException, mesh1.buildOrthogonalField);
1895 mesh2d=MEDCouplingCMesh.New();
1896 mesh2d.setCoords(coordsX1, coordsY1);
1897 f1=mesh2d.buildOrthogonalField();
1901 def testScale(self):
1902 mesh=MEDCouplingDataForTest.build2DTargetMesh_1();
1904 mesh.scale(pos,0.5);
1905 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,
1906 -0.05,0.45, 0.2,0.45, 0.45,0.45]
1907 val=mesh.getCoords().getValues();
1908 self.assertEqual(18,len(val))
1909 for i in xrange(18):
1910 self.assertTrue(abs(expected1[i]-val[i])<1e-12);
1914 def testTryToShareSameCoords(self):
1915 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
1916 m2=MEDCouplingDataForTest.build2DTargetMesh_1();
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 m1.tryToShareSameCoords(m2,1e-12);
1921 self.assertTrue(m1.getCoords().getHiddenCppPointer()==m2.getCoords().getHiddenCppPointer());
1922 m2.tryToShareSameCoords(m1,1e-12);
1923 self.assertTrue(m1.getCoords().getHiddenCppPointer()==m2.getCoords().getHiddenCppPointer());
1925 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
1926 m2=MEDCouplingDataForTest.build2DTargetMesh_2();
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 m1.tryToShareSameCoords(m2,1e-12);
1931 self.assertTrue(m1.getCoords().getHiddenCppPointer()==m2.getCoords().getHiddenCppPointer());
1932 m2.tryToShareSameCoords(m1,1e-12);
1933 self.assertTrue(m1.getCoords().getHiddenCppPointer()==m2.getCoords().getHiddenCppPointer());
1935 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
1936 m2=MEDCouplingDataForTest.build2DSourceMesh_1();
1937 self.assertTrue(m1.getCoords().getHiddenCppPointer()!=m2.getCoords().getHiddenCppPointer());
1938 self.assertRaises(InterpKernelException,m1.tryToShareSameCoords,m2,1e-12)
1941 def testFindNodeOnPlane(self):
1942 mesh=MEDCouplingDataForTest.build3DTargetMesh_1();
1945 n=mesh.findNodesOnPlane(pt,v,1e-12);
1946 self.assertEqual(9,len(n));
1947 m3dSurf=mesh.buildFacePartOfMySelfNode(n,True);
1948 self.assertTrue(isinstance(m3dSurf,MEDCouplingUMesh))
1949 me=MEDCouplingExtrudedMesh.New(mesh,m3dSurf,0);
1950 da=me.getMesh3DIds();
1951 self.assertEqual(8,me.getNumberOfCells());
1952 expected=[0,1,2,3,4,5,6,7]
1954 self.assertEqual(expected,list(val));
1956 m3dSurf=mesh.buildFacePartOfMySelfNode(n,True);
1957 self.assertTrue(isinstance(m3dSurf,MEDCouplingUMesh))
1958 me=MEDCouplingExtrudedMesh.New(mesh,m3dSurf,0);
1959 da=me.getMesh3DIds();
1960 self.assertEqual(8,me.getNumberOfCells());
1961 expected=[0,1,2,3,4,5,6,7]
1963 self.assertEqual(expected,list(val));
1966 def testRenumberCells(self):
1967 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
1968 m2=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
1969 self.assertTrue(m.isEqual(m2,0));
1971 m.renumberCells(arr,True);
1972 self.assertTrue(not m.isEqual(m2,0));
1973 self.assertEqual(NORM_QUAD4,m.getTypeOfCell(0));
1974 self.assertEqual(NORM_TRI3,m.getTypeOfCell(1));
1975 self.assertEqual(NORM_QUAD4,m.getTypeOfCell(2));
1976 self.assertEqual(NORM_TRI3,m.getTypeOfCell(3));
1977 self.assertEqual(NORM_QUAD4,m.getTypeOfCell(4));
1979 m.renumberCells(arr2,True);
1980 self.assertTrue(m.isEqual(m2,0));
1983 def testChangeSpaceDimension(self):
1984 m1=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
1985 m2=MEDCouplingDataForTest.build2DTargetMesh_1();
1987 self.assertEqual(3,m1.getSpaceDimension());
1988 m1.changeSpaceDimension(2);
1989 self.assertEqual(2,m1.getSpaceDimension());
1990 m1.setName(m2.getName());
1991 self.assertTrue(m1.isEqual(m2,1e-12));
1992 m1.changeSpaceDimension(3);
1993 self.assertEqual(3,m1.getSpaceDimension());
1994 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.]
1995 val=m1.getCoords().getValues();
1996 for i in xrange(27):
1997 self.assertTrue(abs(expected[i]-val[i])<1e-14);
2001 def testGaussPointField1(self):
2002 _a=0.446948490915965;
2003 _b=0.091576213509771;
2004 _p1=0.11169079483905;
2005 _p2=0.0549758718227661;
2006 refCoo1=[ 0.,0., 1.,0., 0.,1. ]
2007 gsCoo1=[ 2*_b-1, 1-4*_b, 2*_b-1, 2.07*_b-1, 1-4*_b,
2008 2*_b-1, 1-4*_a, 2*_a-1, 2*_a-1, 1-4*_a, 2*_a-1, 2*_a-1 ]
2009 wg1=[ 4*_p2, 4*_p2, 4*_p2, 4*_p1, 4*_p1, 4*_p1 ]
2014 m=MEDCouplingDataForTest.build2DTargetMesh_1();
2015 f=MEDCouplingFieldDouble.New(ON_GAUSS_PT,NO_TIME);
2017 self.assertEqual(5,f.getNumberOfMeshPlacesExpected());
2018 self.assertEqual(0,f.getNbOfGaussLocalization());
2019 f.setGaussLocalizationOnType(NORM_TRI3,_refCoo1,_gsCoo1,_wg1);
2020 f.setGaussLocalizationOnType(NORM_TRI3,_refCoo1,_gsCoo1,_wg1); # not a bug only to check that it works well
2021 self.assertRaises(InterpKernelException,f.setGaussLocalizationOnType,NORM_QUAD4,_refCoo1,_gsCoo1,_wg1)
2022 self.assertEqual(1,f.getNbOfGaussLocalization());
2023 refCoo2=[ 0.,0., 1.,0., 1.,1., 0.,1. ]
2025 _gsCoo1=_gsCoo1[0:4]
2027 f.setGaussLocalizationOnType(NORM_QUAD4,_refCoo2,_gsCoo1,_wg1);
2028 self.assertEqual(2,f.getNbOfGaussLocalization());
2029 array=DataArrayDouble.New();
2031 for i in xrange(18*2):
2033 array.setValues(ptr,18,2);
2034 ptr=array.getPointer();
2036 f.setName("MyFirstFieldOnGaussPoint");
2038 self.assertAlmostEqual(27.,f.getIJK(2,5,0),14);
2039 self.assertAlmostEqual(16.,f.getIJK(1,5,1),14);
2041 f.clearGaussLocalizations();
2042 self.assertEqual(0,f.getNbOfGaussLocalization());
2043 self.assertRaises(InterpKernelException,f.checkCoherency);
2045 self.assertRaises(InterpKernelException,f.setGaussLocalizationOnCells,ids1,_refCoo2,_gsCoo1,_wg1);
2046 self.assertEqual(0,f.getNbOfGaussLocalization());
2048 f.setGaussLocalizationOnCells(ids2,_refCoo2,_gsCoo1,_wg1);
2049 self.assertEqual(1,f.getNbOfGaussLocalization());
2050 self.assertEqual(0,f.getGaussLocalizationIdOfOneCell(0));
2051 self.assertRaises(InterpKernelException,f.getGaussLocalizationIdOfOneCell,1);
2053 f.setGaussLocalizationOnCells(ids3,_refCoo1,_gsCoo1,_wg1);
2054 self.assertEqual(2,f.getNbOfGaussLocalization());
2055 self.assertEqual(0,f.getGaussLocalizationIdOfOneCell(0));
2056 self.assertEqual(1,f.getGaussLocalizationIdOfOneCell(1));
2057 self.assertEqual(1,f.getGaussLocalizationIdOfOneCell(2));
2058 self.assertRaises(InterpKernelException,f.checkCoherency);#<- cell 3 has no localization
2062 _gsCoo2[0]=0.8888777776666;
2063 _wg2[0]=0.1234567892377;
2064 f.setGaussLocalizationOnCells(ids4,_refCoo2,_gsCoo2,_wg2);
2065 self.assertEqual(3,f.getNbOfGaussLocalization());
2066 tmpIds=f.getCellIdsHavingGaussLocalization(0);
2067 self.assertEqual(ids2,list(tmpIds.getValues()));
2068 self.assertRaises(InterpKernelException,f.checkCoherency);#<- it's always not ok because undelying array not with the good size.
2069 array2=f.getArray().substr(0,10);
2071 f.checkCoherency();#<- here it is OK
2073 self.assertTrue(f.isEqual(f2,1e-14,1e-14));
2074 gl1=f2.getGaussLocalization(0);
2075 tmp=gl1.getGaussCoord(1,1);
2076 self.assertAlmostEqual(2.07*_b-1,tmp,14);
2077 gl1.setGaussCoord(1,1,0.07);
2078 self.assertTrue(not f.isEqual(f2,1e-14,1e-14));
2079 gl1.setGaussCoord(1,1,tmp);
2080 self.assertTrue(f.isEqual(f2,1e-14,1e-14));
2081 f2.checkCoherency();
2084 def testGaussPointNEField1(self):
2085 m=MEDCouplingDataForTest.build2DTargetMesh_1();
2086 f=MEDCouplingFieldDouble.New(ON_GAUSS_NE,NO_TIME);
2088 self.assertEqual(5,f.getNumberOfMeshPlacesExpected());
2089 f.setName("MyFirstFieldOnNE");
2090 f.setDescription("MyDescriptionNE");
2091 array=DataArrayDouble.New();
2093 for i in xrange(18*2):
2096 array.setValues(tmp,18,2);
2097 ptr=array.getPointer();
2102 self.assertTrue(f.isEqual(f2,1e-14,1e-14));
2103 self.assertAlmostEqual(21.,f.getIJK(2,0,0),14);
2104 self.assertAlmostEqual(18.,f.getIJK(1,1,1),14);
2107 def testCellOrientation1(self):
2108 m=MEDCouplingDataForTest.build2DTargetMesh_1();
2110 self.assertRaises(InterpKernelException,m.are2DCellsNotCorrectlyOriented,vec,False);
2111 m.changeSpaceDimension(3);
2112 res1=m.are2DCellsNotCorrectlyOriented(vec,False);
2113 self.assertTrue(len(res1)==0);
2115 res1=m.are2DCellsNotCorrectlyOriented(vec,False);
2116 self.assertEqual(5,len(res1));
2119 # connectivity inversion
2120 conn=m.getNodalConnectivity().getValues();
2124 m.getNodalConnectivity().setValues(conn,len(conn),1)
2125 res1=m.are2DCellsNotCorrectlyOriented(vec,False);
2126 self.assertEqual(1,len(res1));
2127 self.assertEqual(2,res1.getValues()[0]);
2128 m.orientCorrectly2DCells(vec,False);
2129 res1=m.are2DCellsNotCorrectlyOriented(vec,False);
2130 self.assertTrue(len(res1)==0);
2131 m2=MEDCouplingDataForTest.build2DTargetMesh_1();
2132 m2.changeSpaceDimension(3);
2133 self.assertTrue(m.isEqual(m2,1e-12));
2136 def testCellOrientation2(self):
2137 m2,m1=MEDCouplingDataForTest.build3DExtrudedUMesh_1();
2138 res1=m2.arePolyhedronsNotCorrectlyOriented();
2139 self.assertEqual(6,len(res1));
2140 m2.orientCorrectlyPolyhedrons();
2141 res1=m2.arePolyhedronsNotCorrectlyOriented();
2142 self.assertTrue(len(res1)==0);
2143 m2.checkCoherency();
2144 self.assertEqual(18,m2.getNumberOfCells());
2146 m2.convertToPolyTypes(cellIds2);
2147 m2.orientCorrectlyPolyhedrons();
2148 res1=m2.arePolyhedronsNotCorrectlyOriented();
2149 self.assertTrue(len(res1)==0);
2150 f2=m2.getMeasureField(False);
2151 f2Ptr=f2.getArray().getValues();
2152 #Test to check global reverse in MEDCouplingUMesh::tryToCorrectPolyhedronOrientation
2153 m3=MEDCouplingDataForTest.build2DTargetMesh_1();
2155 m3.changeSpaceDimension(3);
2157 m3.convertToPolyTypes(ids2);
2158 m3.orientCorrectly2DCells(vec,False);
2159 m4=MEDCouplingDataForTest.buildCU1DMesh_U();
2160 m4.changeSpaceDimension(3);
2163 m4.rotate(center,vector,-pi/2.);
2164 m5=m3.buildExtrudedMesh(m4,0);
2165 res1=m5.arePolyhedronsNotCorrectlyOriented();
2166 self.assertEqual(15,len(res1));
2167 m5.orientCorrectlyPolyhedrons();
2168 res1=m5.arePolyhedronsNotCorrectlyOriented();
2169 self.assertTrue(len(res1)==0);
2170 f3=m5.getMeasureField(False);
2171 self.assertEqual(15,f3.getArray().getNumberOfTuples());
2172 self.assertEqual(1,f3.getNumberOfComponents());
2173 f3Ptr=f3.getArray().getValues();
2174 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];
2175 for i in xrange(15):
2176 self.assertTrue(abs(expected1[i]-f3Ptr[i])<1e-12);
2178 f4=m5.getBarycenterAndOwner();
2179 self.assertEqual(15,f4.getNumberOfTuples());
2180 self.assertEqual(3,f4.getNumberOfComponents());
2181 f4Ptr=f4.getValues();
2182 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];
2183 for i in xrange(45):
2184 self.assertTrue(abs(expected2[i]-f4Ptr[i])<1e-12);
2188 def testCellOrientation3(self):
2189 from cmath import rect
2191 c = [rect(1.0, i*pi/4.0) for i in range(8)]
2192 coords = [c[-1].real,c[-1].imag, c[3].real,c[3].imag,
2193 c[5].real,c[5].imag, c[1].real,c[1].imag]
2195 baseMesh = MEDCouplingUMesh.New("circle", 2)
2196 baseMesh.allocateCells(1)
2197 meshCoords = DataArrayDouble.New(coords, 4, 2)
2198 baseMesh.setCoords(meshCoords)
2199 baseMesh.insertNextCell(NORM_QPOLYG, connec) # a circle
2200 baseMesh.finishInsertingCells()
2201 baseMesh.changeSpaceDimension(3)
2202 Oz = [0.0, 0.0, -1.0]
2203 cell_lst = baseMesh.are2DCellsNotCorrectlyOriented(Oz, False)
2204 self.assertEqual(cell_lst.getNumberOfTuples(), 0)
2206 cell_lst = baseMesh.are2DCellsNotCorrectlyOriented(Oz, False)
2207 self.assertEqual(cell_lst.getNumberOfTuples(), 1)
2209 def testPolyhedronBarycenter(self):
2210 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];
2211 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];
2212 meshN=MEDCouplingUMesh.New();
2213 meshN.setName("ForBary");
2214 meshN.setMeshDimension(3);
2215 meshN.allocateCells(4);
2216 meshN.insertNextCell(NORM_POLYHED,29,connN[0:29])
2217 meshN.finishInsertingCells();
2218 myCoords=DataArrayDouble.New();
2219 myCoords.setValues(coords,9,3);
2220 meshN.setCoords(myCoords);
2221 meshN.checkCoherency();
2223 res1=meshN.arePolyhedronsNotCorrectlyOriented();
2224 meshN.orientCorrectlyPolyhedrons();
2225 self.assertTrue(len(res1)==0);
2226 da=meshN.getBarycenterAndOwner();
2227 self.assertEqual(1,da.getNumberOfTuples());
2228 self.assertEqual(3,da.getNumberOfComponents());
2229 daPtr=da.getValues();
2230 ref=meshN.getCoords().getValues()[24:];
2232 self.assertTrue(abs(ref[i]-daPtr[i])<1e-12);
2237 da=meshN.getBarycenterAndOwner();
2238 daPtr=da.getValues();
2239 ref=meshN.getCoords().getValues()[24:];
2241 self.assertTrue(abs(ref[i]-daPtr[i])<1e-12);
2244 meshN.rotate(center,vec,pi/7.);
2245 meshN.translate(vec);
2246 da=meshN.getBarycenterAndOwner();
2247 daPtr=da.getValues();
2248 ref=meshN.getCoords().getValues()[24:];
2250 self.assertTrue(abs(ref[i]-daPtr[i])<1e-12);
2253 center2=[1.12,3.45,6.78]
2255 meshN.rotate(center2,vec2,e);
2256 meshN.translate(vec2);
2257 da=meshN.getBarycenterAndOwner();
2258 daPtr=da.getValues();
2259 ref=meshN.getCoords().getValues()[24:];
2261 self.assertTrue(abs(ref[i]-daPtr[i])<1e-10);
2265 def testNormL12Integ1D(self):
2266 m1=MEDCouplingDataForTest.build1DTargetMesh_3();
2267 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
2269 array=DataArrayDouble.New();
2270 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]
2271 array.setValues(arr,m1.getNumberOfCells(),3);
2274 f3=m1.getBarycenterAndOwner();
2275 self.assertEqual(4,f3.getNumberOfTuples());
2276 self.assertEqual(1,f3.getNumberOfComponents());
2277 expected9=[0.75,5.105,0.8,5.155]
2280 self.assertTrue(abs(expected9[i]-ptr[i])<1e-12);
2283 f2=m1.getMeasureField(False);
2284 self.assertEqual(4,f2.getArray().getNumberOfTuples());
2285 self.assertEqual(1,f2.getNumberOfComponents());
2286 expected1=[0.5,0.21,-0.6,-0.31]
2287 ptr=f2.getArray().getValues();
2289 self.assertTrue(abs(expected1[i]-ptr[i])<1e-12);
2291 expected2=[0.5,0.21,0.6,0.31]
2292 f2=m1.getMeasureField(True);
2293 ptr=f2.getArray().getValues();
2295 self.assertTrue(abs(expected2[i]-ptr[i])<1e-12);
2298 self.assertTrue(4,f1.getNumberOfTuples())
2299 res=f1.integral(False);
2300 self.assertTrue(3,len(res))
2301 expected3=[0.9866,-0.3615,0.4217]
2303 self.assertTrue(abs(expected3[i]-res[i])<1e-12);
2305 self.assertTrue(abs(expected3[0]-f1.integral(0,False))<1e-12);
2306 self.assertTrue(abs(expected3[1]-f1.integral(1,False))<1e-12);
2307 self.assertTrue(abs(expected3[2]-f1.integral(2,False))<1e-12);
2308 res=f1.integral(True);
2309 expected4=[-3.4152,8.7639,-14.6879]
2311 self.assertTrue(abs(expected4[i]-res[i])<1e-12);
2315 self.assertTrue(3,len(res))
2316 expected5=[6.979506172839505, 16.89018518518518, 27.02969135802469]
2318 self.assertTrue(abs(expected5[i]-res[i])<1e-12);
2320 self.assertTrue(abs(expected5[0]-f1.normL1(0))<1e-12);
2321 self.assertTrue(abs(expected5[1]-f1.normL1(1))<1e-12);
2322 self.assertTrue(abs(expected5[2]-f1.normL1(2))<1e-12);
2325 self.assertTrue(3,len(res))
2326 expected7=[7.090910979452395, 16.9275542960123, 27.053271464160858]
2328 self.assertTrue(abs(expected7[i]-res[i])<1e-9);
2330 self.assertTrue(abs(expected7[0]-f1.normL2(0))<1e-9);
2331 self.assertTrue(abs(expected7[1]-f1.normL2(1))<1e-9);
2332 self.assertTrue(abs(expected7[2]-f1.normL2(2))<1e-9);
2334 f4=f1.buildMeasureField(False);
2335 self.assertTrue(abs(-0.2-f4.accumulate(0))<1e-12);
2336 f4=f1.buildMeasureField(True);
2337 self.assertTrue(abs(1.62-f4.accumulate(0))<1e-12);
2338 # Testing with 2D Curve
2339 m1=MEDCouplingDataForTest.build2DCurveTargetMesh_3();
2340 f2=m1.getMeasureField(False);
2341 self.assertEqual(4,f2.getArray().getNumberOfTuples());
2342 self.assertEqual(1,f2.getNumberOfComponents());
2343 ptr=f2.getArray().getValues();
2345 self.assertTrue(abs(sqrt(2.)*expected2[i]-ptr[i])<1e-12);
2347 f2=m1.getMeasureField(True);
2348 self.assertEqual(4,f2.getArray().getNumberOfTuples());
2349 self.assertEqual(1,f2.getNumberOfComponents());
2350 ptr=f2.getArray().getValues();
2352 self.assertTrue(abs(expected2[i]*sqrt(2.)-ptr[i])<1e-12);
2355 f3=m1.getBarycenterAndOwner();
2356 self.assertEqual(4,f3.getNumberOfTuples());
2357 self.assertEqual(2,f3.getNumberOfComponents());
2358 expected10=[0.75,0.75,5.105,5.105,0.8,0.8,5.155,5.155]
2361 self.assertTrue(abs(expected10[i]-ptr[i])<1e-12);
2364 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
2366 array=DataArrayDouble.New();
2367 array.setValues(arr,m1.getNumberOfCells(),3);
2369 res=f1.integral(False);
2371 self.assertTrue(abs(sqrt(2.)*expected4[i]-res[i])<1e-12);
2373 res=f1.integral(True);
2375 self.assertTrue(abs(sqrt(2.)*expected4[i]-res[i])<1e-12);
2379 self.assertTrue(abs(expected5[i]-res[i])<1e-12);
2383 self.assertTrue(abs(expected7[i]-res[i])<1e-12);
2387 def testAreaBary2D(self):
2388 m1=MEDCouplingDataForTest.build2DTargetMesh_3();
2389 f1=m1.getMeasureField(False);
2390 self.assertEqual(10,f1.getArray().getNumberOfTuples());
2391 self.assertEqual(1,f1.getNumberOfComponents());
2392 expected1=[-0.5,-1,-1.5,-0.5,-1, 0.5,1,1.5,0.5,1]
2393 ptr=f1.getArray().getValues();
2394 for i in xrange(10):
2395 self.assertTrue(abs(expected1[i]-ptr[i])<1e-12);
2397 f1=m1.getMeasureField(True);
2398 ptr=f1.getArray().getValues();
2399 for i in xrange(10):
2400 self.assertTrue(abs(abs(expected1[i])-ptr[i])<1e-12);
2402 f2=m1.getBarycenterAndOwner();
2403 self.assertEqual(10,f2.getNumberOfTuples());
2404 self.assertEqual(2,f2.getNumberOfComponents());
2405 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]
2407 for i in xrange(20):
2408 self.assertTrue(abs(expected2[i]-ptr[i])<1e-12);
2410 m1.changeSpaceDimension(3);
2411 f1=m1.getMeasureField(False);
2412 self.assertEqual(10,f1.getArray().getNumberOfTuples());
2413 self.assertEqual(1,f1.getNumberOfComponents());
2414 ptr=f1.getArray().getValues();
2415 for i in xrange(10):
2416 self.assertTrue(abs(abs(expected1[i])-ptr[i])<1e-12);
2418 f2=m1.getBarycenterAndOwner();
2419 self.assertEqual(10,f2.getNumberOfTuples());
2420 self.assertEqual(3,f2.getNumberOfComponents());
2422 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.]
2423 for i in xrange(30):
2424 self.assertTrue(abs(expected3[i]-ptr[i])<1e-12);
2428 def testAreaBary3D(self):
2429 coords=[ 0.241310763507 , 0.0504777305619 , 0.0682283524903 , 0.252501053866 , -0.0625176732937 , 0.137272639894 ,
2430 0.152262663601 , 0.241816569527 , 0.133812556197 , 0.18047750211 , -0.0789949051358 , 0.339098173401 ,
2431 0.151741971857 , 0.238885278571 , 0.137715037333 , 0.242532155481 , -0.0928169086456 , 0.0678043417367 ,
2432 0.240941965335 , -0.015461491464 , 0.0617186345825 , 0.24127650112 , 0.0499427876717 , 0.0679634099148 ,
2433 -0.145828917428 , 0.206291632565 , 0.0310071927543 , 0.0125651775307 , 0.266262085828 , 0.105228430543 ,
2434 -0.0994066533286 , 0.233224271238 , 0.0572213839567 , -0.0951345338317 , 0.234819509426 , 0.0592126284538 ,
2435 0.136580574205 , -0.205486212579 , 0.0572866072014 , 0.0637270784978 , -0.168886355238 , 0.446614057077 ,
2436 0.041337157151 , -0.213402568198 , 0.372407095999 , 0.0411601970268 , -0.202387875756 , 0.411334979491 ,
2437 -0.108355701857 , 0.193636239335 , 0.204886756738 , 0.00639779029829 , 0.155296981517 , 0.252585892979 ,
2438 0.0262473111702 , -0.112919732543 , 0.424286639249 ,-0.224103052733 , -0.139430015438 , -0.0122352295701 ,
2439 -0.0312760589481 , -0.274272003594 , 0.0323959636568 , -0.166663422532 , -0.217754445175 , 0.00392109070364 ,
2440 -0.30586619777 , -0.0475168041091 , -0.0144585228182 , -0.280881480586 , 0.135571293538 , 0.00623923647986 ,
2441 -0.25548538234 , 0.156819217766 , 0.0645277879769 , -0.131567009284 , 0.184133752309 , 0.206021802753 ,
2442 -0.196204010965 , 0.151602971681 , 0.212974777736 , -0.183713879463 , 0.0802946639531 , 0.260115662599 ,
2443 -0.244241178767 , -0.0738873389604 , 0.144590565817 , -0.155804057829 , -0.164892720025 , 0.210613950558 ,
2444 -0.170950800428 , -0.215099334026 , 0.00610122860092 , -0.30552634869 , -0.0490020791904 , -0.0132786533145 ,
2445 0.271831011884 , 0.15105657296 , 0.0230534827908 , 0.281919192283 , 0.0898544306288 , -0.0625201489143 ,
2446 0.260240727276 , -0.0120688706637 , -0.0532316588626 , 0.244947737722 , 0.0197984684293 , 0.0309341209233 ,
2447 0.23439631578 , 0.229825279875 , 0.0508520585381 , 0.160921316875 , 0.265078502128 , 0.121716560626 ,
2448 -0.315088694175 , 0.0747700471918 , -0.245836615071 , -0.327728781776 , 0.0857114674649 , -0.239431905957 ,
2449 -0.308385460634 , 0.145142997084 , -0.149886828433 , 0.0488236045164 , 0.309462801914 , 0.0849169148265 ,
2450 -0.0244964803395 , 0.33145611751 , -0.0476415818061 , 0.0060567994229 , 0.32418412014 , 0.0367779543812 ,
2451 -0.0950221448063 , 0.236675326003 , 0.0572594453983 , 0.248723023186 , 0.0886648784791 , -0.176629430538 ,
2452 0.116796984 , 0.256596599567 , -0.292863523603 , 0.118024552914 , 0.229154257843 , -0.34233232501 ,
2453 0.217507892549 , -0.0417822335742 , -0.176771782888 , -0.224429321304 , 0.0125595300114 , -0.362064725588 ,
2454 0.0937301100955 , -0.0500824832657 , -0.299713548444 , -0.244162220397 , 0.0383853931293 , -0.389856984411 ,
2455 -0.0281989366102 , 0.097392811563 , -0.458244577284 , -0.385010847162 , 0.10122766194 , -0.140052859922 ,
2456 -0.377936358012 , 0.110875172128 , -0.176207095463 , 0.244483045556 , -0.0991073977045 , 0.0575134372934 ,
2457 0.262605120167 , -0.100243191645 , -0.0495620806935 , 0.240306880972 , -0.136153701579 , -0.114745281696 ,
2458 0.215763176129 , -0.0836766059189 , -0.183249640616 , 0.237870396603 , -0.132449578286 , -0.121598854639 ,
2459 -0.0637683083097 , -0.27921020214 , -0.149112321992 , -0.0856211014977 , -0.2973233473 , -0.0446878139589 ,
2460 0.104675342288 , -0.0625908305324 , -0.290346256534 , 0.0248264249186 , -0.247797708548 , -0.165830884019 ,
2461 0.0719302438309 , -0.178468260473 , -0.211432157345 , 0.142871843159 , -0.208769948542 , 0.0454101128246 ,
2462 0.167803379307 , -0.207851396623 , -0.088802726124 , 0.12868717152 , -0.230920439715 , 0.00760508389036 ,
2463 -0.0372812069535 , -0.286740286332 , 0.00963701291166 ]
2465 connN = [ #polyhedron 0
2466 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
2467 , 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
2468 , 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
2469 , 22 , 19 , 21 , 30 , 31 , -1 , 22 , 31 , 28 , 27 , 26 , 24 , 23 , -1 , 31 , 30 , 29 , 28,
2471 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
2472 , 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
2473 , 33 , 34 , 48 , 45 , -1 , 35 , 34 , 48 , 50 , 49 , 38 , -1 , 41 , 43 , 42 , 46 , 36 , 37 , -1 , 38 , 39 , 51 , 49 , -1
2474 , 39 , 40 , 42 , 46 , 47 , 52 , 51 , -1 , 45 , 47 , 52 , 50 , 48 , -1 , 52 , 51 , 49 , 50,
2476 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
2477 , 23 , 53 , 54 , 40 , 8 , -1 , 53 , 22 , 23 , -1 , 39 , 54 , 40,
2479 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
2480 , 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
2481 , 55 , 5 , 12 , 65 , -1 , 66 , 67 , 65 , 55 , 56 , 57 , -1 , 63 , 66 , 57 , 59 , 64 , -1 , 64 , 62 , 58 , 59 , -1
2482 , 60 , 63 , 66 , 67 , 68 , 61 , -1 , 61 , 68 , 20 , 21 , -1 , 67 , 68 , 20 , 12 , 65]
2484 barys = [ -0.0165220465527 , -0.0190922868195 , 0.158882733414 ,
2485 0.0287618656076 , 0.135874379934 , -0.14601588119 ,
2486 -0.147128055553 , 0.0465995097041 , -0.049391174453 ,
2487 -0.00142506732317 , -0.0996953090351 , -0.115159183132 ]
2488 meshN=MEDCouplingUMesh.New();
2489 meshN.setName("ForBary");
2490 meshN.setMeshDimension(3);
2491 meshN.allocateCells(4);
2492 meshN.insertNextCell(NORM_POLYHED,113,connN);
2493 meshN.insertNextCell(NORM_POLYHED,99,connN[113:]);
2494 meshN.insertNextCell(NORM_POLYHED,43,connN[212:]);
2495 meshN.insertNextCell(NORM_POLYHED,92,connN[255:]);
2496 meshN.finishInsertingCells();
2497 myCoords=DataArrayDouble.New();
2498 myCoords.setValues(coords,69,3);
2499 meshN.setCoords(myCoords);
2500 meshN.checkCoherency();
2501 res1=meshN.arePolyhedronsNotCorrectlyOriented();
2502 meshN.orientCorrectlyPolyhedrons();
2503 res1=meshN.arePolyhedronsNotCorrectlyOriented();
2504 self.assertTrue(len(res1)==0);
2506 da=meshN.getBarycenterAndOwner();
2507 self.assertEqual(4,da.getNumberOfTuples());
2508 self.assertEqual(3,da.getNumberOfComponents());
2509 daPtr=da.getValues();
2510 for i in xrange(12):
2511 self.assertTrue(abs(barys[i]-daPtr[i])<1e-12);
2515 def testRenumberCellsForFields(self):
2516 m=MEDCouplingDataForTest.build2DTargetMesh_1();
2517 f=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
2519 arr=DataArrayDouble.New();
2520 nbOfCells=m.getNumberOfCells();
2521 values1=[7.,107.,10007.,8.,108.,10008.,9.,109.,10009.,10.,110.,10010.,11.,111.,10011.]
2522 arr.setValues(values1,nbOfCells,3);
2524 renumber1=[3,1,0,4,2]
2525 loc=[-0.05,-0.05, 0.55,-0.25, 0.55,0.15, -0.05,0.45, 0.45,0.45]
2527 res=f.getValueOn(loc[2*j:2*j+2]);
2529 self.assertTrue(abs(values1[i+3*j]-res[i])<1e-12);
2532 f.renumberCells(renumber1,False);
2533 ptr=f.getArray().getValues();
2534 expected1=[9.,109.,10009.,8.,108.,10008.,11.,111.,10011.,7.,107.,10007.,10.,110.,10010.]
2535 for i in xrange(15):
2536 self.assertTrue(abs(expected1[i]-ptr[i])<1e-12);
2538 #check that fields remains the same geometrically
2540 res=f.getValueOn(loc[2*j:2*(j+1)]);
2542 self.assertTrue(abs(values1[i+3*j]-res[i])<1e-12);
2546 f=MEDCouplingFieldDouble.New(ON_GAUSS_PT,NO_TIME);
2548 _a=0.446948490915965;
2549 _b=0.091576213509771;
2550 _p1=0.11169079483905;
2551 _p2=0.0549758718227661;
2552 refCoo1=[ 0.,0., 1.,0., 0.,1. ]
2553 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 ];
2554 wg1=[ 4*_p2, 4*_p2, 4*_p2, 4*_p1, 4*_p1, 4*_p1 ]
2555 _refCoo1=refCoo1[0:6];
2556 _gsCoo1=gsCoo1[0:12];
2558 f.setGaussLocalizationOnType(NORM_TRI3,_refCoo1,_gsCoo1,_wg1);
2559 refCoo2=[ 0.,0., 1.,0., 1.,1., 0.,1. ]
2560 _refCoo2=refCoo2[0:8];
2561 _gsCoo1=_gsCoo1[0:4]
2563 f.setGaussLocalizationOnType(NORM_QUAD4,_refCoo2,_gsCoo1,_wg1);
2564 arr=DataArrayDouble.New();
2565 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.]
2566 arr.setValues(values2,18,2);
2570 self.assertTrue(f.isEqual(fCpy,1e-12,1e-12));
2571 f.renumberCells(renumber1,False);
2572 self.assertTrue(not f.isEqual(fCpy,1e-12,1e-12));
2573 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.]
2574 ptr=f.getArray().getValues();
2575 for i in xrange(36):
2576 self.assertTrue(abs(expected2[i]-ptr[i])<1e-12);
2578 renumber2=[2,1,4,0,3]
2579 f.renumberCells(renumber2,False);
2580 self.assertTrue(f.isEqual(fCpy,1e-12,1e-12));
2582 f=MEDCouplingFieldDouble.New(ON_GAUSS_NE,NO_TIME);
2584 arr=DataArrayDouble.New();
2585 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.]
2586 arr.setValues(values3,18,2);
2590 self.assertTrue(f.isEqual(fCpy,1e-12,1e-12));
2591 f.renumberCells(renumber1,False);
2592 self.assertTrue(not f.isEqual(fCpy,1e-12,1e-12));
2593 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.]
2594 ptr=f.getArray().getValues();
2595 for i in xrange(36):
2596 self.assertTrue(abs(expected3[i]-ptr[i])<1e-12);
2598 f.renumberCells(renumber2,False);#perform reverse operation of renumbering to check that the resulting field is equal.
2599 self.assertTrue(f.isEqual(fCpy,1e-12,1e-12));
2603 def testRenumberNodesForFields(self):
2604 m=MEDCouplingDataForTest.build2DTargetMesh_1();
2605 f=MEDCouplingFieldDouble.New(ON_NODES,NO_TIME);
2607 self.assertEqual(9,f.getNumberOfMeshPlacesExpected());
2608 arr=DataArrayDouble.New();
2609 nbOfNodes=m.getNumberOfNodes();
2610 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.]
2611 arr.setValues(values1,nbOfNodes,3);
2614 renumber1=[0,4,1,3,5,2,6,7,8]
2615 loc=[0.5432,-0.2432, 0.5478,0.1528]
2616 expected1=[9.0272, 109.0272, 10009.0272, 11.4124,111.4124,10011.4124]
2618 res=f.getValueOn(loc[2*j:2*j+2]);
2620 self.assertTrue(abs(expected1[i+3*j]-res[i])<1e-12);
2624 self.assertTrue(f.isEqual(fCpy,1e-12,1e-12));
2625 f.renumberNodes(renumber1);
2626 self.assertTrue(not f.isEqual(fCpy,1e-12,1e-12));
2628 res=f.getValueOn(loc[2*j:2*j+2]);
2630 self.assertTrue(abs(expected1[i+3*j]-res[i])<1e-12);
2633 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.]
2634 for i in xrange(27):
2635 self.assertTrue(abs(expected2[i]-f.getArray().getValues()[i])<1e-12);
2637 renumber2=[0,2,5,3,1,4,6,7,8]
2638 f.renumberNodes(renumber2);
2639 self.assertTrue(f.isEqual(fCpy,1e-12,1e-12));
2642 def testConvertQuadraticCellsToLinear(self):
2643 mesh=MEDCouplingDataForTest.build2DTargetMesh_3();
2644 mesh.checkCoherency();
2645 types=mesh.getAllGeoTypes();
2647 self.assertEqual(5,len(types));
2648 expected1=[NORM_POLYGON, NORM_TRI3, NORM_QUAD4, NORM_TRI6, NORM_QUAD8]
2650 self.assertEqual(expected1,types);
2651 self.assertTrue(mesh.isPresenceOfQuadratic());
2652 self.assertEqual(62,mesh.getMeshLength());
2653 f1=mesh.getMeasureField(False);
2655 mesh.convertQuadraticCellsToLinear();
2656 self.assertTrue(not mesh.isPresenceOfQuadratic());
2658 mesh.checkCoherency();
2659 f2=mesh.getMeasureField(False);
2660 self.assertTrue(f1.getArray().isEqual(f2.getArray(),1e-12));
2661 self.assertEqual(48,mesh.getMeshLength());
2662 types2=mesh.getAllGeoTypes();
2664 self.assertEqual(3,len(types2));
2665 expected2=[NORM_POLYGON, NORM_TRI3, NORM_QUAD4]
2667 self.assertEqual(expected2,types2);
2670 def testCheckGeoEquivalWith(self):
2671 mesh1=MEDCouplingDataForTest.build2DTargetMesh_3();
2672 mesh2=MEDCouplingDataForTest.build2DTargetMesh_3();
2674 cellCor,nodeCor=mesh1.checkGeoEquivalWith(mesh1,0,1e-12);#deepEqual
2675 self.assertTrue(cellCor==None);
2676 self.assertTrue(nodeCor==None);
2677 cellCor,nodeCor=mesh1.checkGeoEquivalWith(mesh1,1,1e-12);#fastEqual
2678 self.assertTrue(cellCor==None);
2679 self.assertTrue(nodeCor==None);
2680 cellCor,nodeCor=mesh1.checkGeoEquivalWith(mesh1,10,1e-12);#deepEqual with geo permutations
2681 self.assertTrue(cellCor==None);
2682 self.assertTrue(nodeCor==None);
2683 #Second test mesh1 and mesh2 are 2 different meshes instance
2684 cellCor,nodeCor=mesh1.checkGeoEquivalWith(mesh2,0,1e-12);#deepEqual
2685 self.assertTrue(cellCor==None);
2686 self.assertTrue(nodeCor==None);
2687 cellCor,nodeCor=mesh1.checkGeoEquivalWith(mesh2,1,1e-12);#fastEqual
2688 self.assertTrue(cellCor==None);
2689 self.assertTrue(nodeCor==None);
2690 cellCor,nodeCor=mesh1.checkGeoEquivalWith(mesh2,10,1e-12);#deepEqual with geo permutations
2691 self.assertTrue(cellCor==None);
2692 self.assertTrue(nodeCor==None);
2693 #Third test : cell permutation by keeping the first the middle and the last as it is.
2694 renum=[0,2,1,3,4,5,6,8,7,9]
2695 mesh2.renumberCells(renum,False);
2696 self.assertRaises(InterpKernelException,mesh1.checkGeoEquivalWith,mesh2,0,1e-12);#deepEqual fails
2697 self.assertTrue(cellCor==None);
2698 self.assertTrue(nodeCor==None);
2699 cellCor,nodeCor=mesh1.checkGeoEquivalWith(mesh2,1,1e-12);#fastEqual do not see anything
2700 self.assertTrue(cellCor==None);
2701 self.assertTrue(nodeCor==None);
2702 cellCor,nodeCor=mesh1.checkGeoEquivalWith(mesh2,10,1e-12);#deepEqual with geo permutations
2703 self.assertTrue(cellCor);
2704 self.assertEqual(10,cellCor.getNumberOfTuples());
2705 self.assertEqual(1,cellCor.getNumberOfComponents());
2706 self.assertEqual(renum,list(cellCor.getValues()))
2707 self.assertTrue(nodeCor==None);
2709 self.assertTrue(nodeCor==None);
2710 a,b=mesh1.checkDeepEquivalWith(mesh2,0,1e-12);
2711 self.assertEqual(renum,list(a.getValues()))
2712 self.assertTrue(b==None);
2713 mesh2.setCoords(mesh1.getCoords())
2714 a=mesh1.checkDeepEquivalOnSameNodesWith(mesh2,0,1e-12);
2715 self.assertEqual(renum,list(a.getValues()))
2716 #4th test : cell and node permutation by keeping the first the middle and the last as it is.
2717 mesh2=MEDCouplingDataForTest.build2DTargetMesh_3();
2718 renum2=[0,2,1,3,4,5,6,8,7,9,10]
2719 mesh2.renumberCells(renum,False);
2720 mesh2.renumberNodes(renum2,11);
2723 self.assertRaises(InterpKernelException,mesh1.checkGeoEquivalWith,mesh2,0,1e-12);#deepEqual fails
2724 self.assertTrue(cellCor==None);
2725 self.assertTrue(nodeCor==None);
2726 cellCor,nodeCor=mesh1.checkGeoEquivalWith(mesh2,1,1e-12);#fastEqual do not see anything
2727 self.assertTrue(cellCor==None);
2728 self.assertTrue(nodeCor==None);
2729 cellCor,nodeCor=mesh1.checkGeoEquivalWith(mesh2,10,1e-12);#deepEqual with geo permutations
2730 self.assertTrue(cellCor);
2731 self.assertEqual(10,cellCor.getNumberOfTuples());
2732 self.assertEqual(1,cellCor.getNumberOfComponents());
2733 self.assertEqual(renum,list(cellCor.getValues()))
2734 self.assertTrue(nodeCor);
2735 self.assertEqual(11,nodeCor.getNumberOfTuples());
2736 self.assertEqual(1,nodeCor.getNumberOfComponents());
2737 self.assertEqual(renum2,list(nodeCor.getValues()))
2740 #5th test : modification of the last cell to check fastCheck detection.
2741 mesh2=MEDCouplingDataForTest.build2DTargetMesh_3();
2742 renum3=[0,2,1,3,4,5,6,8,9,7]
2743 mesh2.renumberCells(renum3,False);
2744 mesh2.renumberNodes(renum2,11);
2747 self.assertRaises(InterpKernelException,mesh1.checkGeoEquivalWith,mesh2,0,1e-12)
2748 self.assertTrue(cellCor==None);
2749 self.assertTrue(nodeCor==None);
2750 self.assertRaises(InterpKernelException,mesh1.checkGeoEquivalWith,mesh2,1,1e-12)
2751 self.assertTrue(cellCor==None);
2752 self.assertTrue(nodeCor==None);
2753 cellCor,nodeCor=mesh2.checkGeoEquivalWith(mesh1,10,1e-12);#deepEqual with geo permutations
2754 self.assertTrue(cellCor!=None);
2755 self.assertEqual(10,cellCor.getNumberOfTuples());
2756 self.assertEqual(1,cellCor.getNumberOfComponents());
2757 self.assertEqual(renum3,list(cellCor.getValues()))
2758 self.assertTrue(nodeCor!=None);
2759 self.assertEqual(11,nodeCor.getNumberOfTuples());
2760 self.assertEqual(1,nodeCor.getNumberOfComponents());
2761 self.assertEqual(renum2,list(nodeCor.getValues()));
2764 def testCheckGeoEquivalWith2(self):
2765 mesh1=MEDCouplingDataForTest.build2DTargetMesh_4();
2766 mesh2=MEDCouplingDataForTest.build2DTargetMesh_1();
2767 cellCor,nodeCor=mesh1.checkGeoEquivalWith(mesh2,10,1e-12);
2768 self.assertEqual(None,cellCor);
2769 self.assertNotEqual(None,nodeCor);
2770 expected1=[0, 1, 3, 4, 5, 6, 7, 8, 9]
2772 self.assertEqual(expected1[i],nodeCor.getIJ(i,0));
2776 def testSwig2CheckDeepEquivalWith1(self):
2778 mcart = MEDCouplingCMesh()
2779 mcart.setCoordsAt(0, DataArrayDouble([0.0,1.5,2.0]))
2780 mcart.setCoordsAt(1, DataArrayDouble([1.0,2.5,3.0,4.0]))
2781 m = mcart.buildUnstructured()
2782 m2 = m[1:m.getNumberOfCells()]
2783 self.assertRaises(InterpKernelException, m.checkDeepEquivalWith, m2, 0, eps)
2784 self.assertRaises(InterpKernelException, m.checkDeepEquivalWith, m2, 1, eps)
2785 self.assertRaises(InterpKernelException, m.checkDeepEquivalWith, m2, 2, eps)
2788 def testSwig2CheckDeepEquivalWith2(self):
2790 m = MEDCouplingUMesh("tst", 2)
2791 m.setCoords(DataArrayDouble([], 0,2))
2792 m.setConnectivity(DataArrayInt([]), DataArrayInt([0]))
2794 m.checkDeepEquivalWith(m2, 0, eps) # Should not raise!
2797 def testCopyTinyStringsFromOnFields(self):
2798 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
2799 nbOfCells=m.getNumberOfCells();
2800 f=MEDCouplingFieldDouble.New(ON_CELLS,LINEAR_TIME);
2802 self.assertEqual(5,f.getNumberOfMeshPlacesExpected());
2804 f.setDescription("b");
2805 a1=DataArrayDouble.New();
2806 a1.alloc(nbOfCells,2);
2808 a1.setInfoOnComponent(0,"c");
2809 a1.setInfoOnComponent(1,"d");
2811 a2.setInfoOnComponent(0,"e");
2812 a2.setInfoOnComponent(1,"f");
2815 f.setEndTime(3.,3,4);
2817 m.getCoords().setInfoOnComponent(0,"h");
2818 m.getCoords().setInfoOnComponent(1,"i");
2819 m.getCoords().setInfoOnComponent(2,"j");
2823 self.assertTrue(f2.isEqual(f,1e-12,1e-12));
2825 self.assertTrue(not f2.isEqual(f,1e-12,1e-12));
2826 f2.copyTinyStringsFrom(f);
2827 self.assertTrue(f2.isEqual(f,1e-12,1e-12));
2828 f2.setDescription("GGG");
2829 self.assertTrue(not f2.isEqual(f,1e-12,1e-12));
2830 f2.copyTinyStringsFrom(f);
2831 self.assertTrue(f2.isEqual(f,1e-12,1e-12));
2832 f2.getArray().setInfoOnComponent(0,"mmmm");
2833 self.assertTrue(not f2.isEqual(f,1e-12,1e-12));
2834 f2.copyTinyStringsFrom(f);
2835 self.assertTrue(f2.isEqual(f,1e-12,1e-12));
2836 f2.getEndArray().setInfoOnComponent(1,"mmmm");
2837 self.assertTrue(not f2.isEqual(f,1e-12,1e-12));
2838 f2.copyTinyStringsFrom(f);
2839 self.assertTrue(f2.isEqual(f,1e-12,1e-12));
2841 self.assertTrue(m2.isEqual(m,1e-12));
2843 self.assertTrue(not m2.isEqual(m,1e-12));
2844 m2.copyTinyStringsFrom(m);
2845 self.assertTrue(m2.isEqual(m,1e-12));
2846 m2.getCoords().setInfoOnComponent(1,"eee");
2847 self.assertTrue(not m2.isEqual(m,1e-12));
2848 m2.copyTinyStringsFrom(m);
2849 self.assertTrue(m2.isEqual(m,1e-12));
2852 def testTryToShareSameCoordsPermute(self):
2853 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
2854 m2=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
2855 #self.assertTrue(m.getCoords()!=m2.getCoords());
2856 m.tryToShareSameCoordsPermute(m2,1e-12);
2857 #self.assertTrue(m.getCoords()==m2.getCoords());
2858 self.assertTrue(m2.isEqual(m,1e-12));
2859 renum1=[1,2,0,5,8,7,4,3,6]
2860 r1=DataArrayInt.New()
2861 r1.setValues(renum1,len(renum1),1)
2862 m.renumberNodes(r1,9);
2863 #self.assertTrue(m.getCoords()!=m2.getCoords());
2864 self.assertTrue(not m2.isEqual(m,1e-12));
2865 m.tryToShareSameCoordsPermute(m2,1e-12);
2866 #self.assertTrue(m.getCoords()==m2.getCoords());
2867 self.assertTrue(m2.isEqual(m,1e-12));
2870 def testTryToShareSameCoordsPermute2(self):
2871 m1=MEDCouplingDataForTest.build2DTargetMesh_4();
2872 targetCoords=[-0.3,-0.3, 0.2,-0.3, -0.3,0.2, 0.2,0.2 ]
2873 targetConn=[0,2,3,1]
2874 m2=MEDCouplingUMesh.New();
2875 m2.setMeshDimension(2);
2876 m2.allocateCells(1);
2877 m2.insertNextCell(NORM_QUAD4,targetConn[0:4])
2878 m2.finishInsertingCells();
2879 myCoords=DataArrayDouble.New();
2880 myCoords.setValues(targetCoords,4,2);
2881 m2.setCoords(myCoords);
2882 m2.checkCoherency();
2883 m1.checkCoherency();
2885 expected1=[0.25,0.125,0.125,0.25,0.25]
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);
2894 self.assertRaises(InterpKernelException,m1.tryToShareSameCoordsPermute,m2,1e-12);# <- here in this order the sharing is impossible.
2895 # Let's go for deeper test of tryToShareSameCoordsPermute
2896 m2.tryToShareSameCoordsPermute(m1,1e-12);
2897 f1=m1.getMeasureField(False);
2898 f2=m2.getMeasureField(False);
2899 self.assertEqual(5,f1.getArray().getNumberOfTuples());
2900 self.assertEqual(1,f2.getArray().getNumberOfTuples());
2902 self.assertAlmostEqual(expected1[i],f1.getIJ(i,0),12);
2904 self.assertAlmostEqual(expected1[0],f2.getIJ(0,0),12);
2907 def testChangeUnderlyingMesh1(self):
2908 mesh1=MEDCouplingDataForTest.build2DTargetMesh_3();
2909 mesh2=MEDCouplingDataForTest.build2DTargetMesh_3();
2910 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
2912 array=DataArrayDouble.New();
2913 arr=[7., 107., 8., 108., 9., 109., 10., 110., 11., 111., 12., 112., 13., 113., 14., 114., 15., 115., 16., 116.]
2914 array.setValues(arr,mesh1.getNumberOfCells(),2);
2917 renum=[0,2,1,3,4,5,6,8,7,9]
2918 mesh2.renumberCells(renum,False);
2919 #self.assertTrue(f1.getMesh()==mesh1);
2920 f1.changeUnderlyingMesh(mesh1,10,1e-12);# nothing done only to check that nothing done.
2921 #self.assertTrue(f1.getMesh()==mesh1);
2922 f1.changeUnderlyingMesh(mesh2,10,1e-12);
2923 #self.assertTrue(f1.getMesh()==mesh2);
2924 expected1=[7.,107.,9.,109.,8.,108.,10.,110.,11.,111.,12.,112.,13.,113.,15.,115.,14.,114.,16.,116.]
2925 for i in xrange(20):
2926 self.assertAlmostEqual(expected1[i],f1.getArray().getIJ(0,i),12);
2929 f1=MEDCouplingFieldDouble.New(ON_NODES,NO_TIME);
2931 array=DataArrayDouble.New();
2932 arr2=[7.,107.,8.,108.,9.,109.,10.,110.,11.,111.,12.,112.,13.,113.,14.,114.,15.,115.,16.,116.,17.,117.]
2933 array.setValues(arr2,mesh1.getNumberOfNodes(),2);
2936 renum2=[0,2,10,3,4,5,6,8,7,9,1]
2937 mesh2.renumberNodes(renum2,11);
2938 #self.assertTrue(f1.getMesh()==mesh1);
2939 f1.changeUnderlyingMesh(mesh2,10,1e-12);
2940 #self.assertTrue(f1.getMesh()==mesh2);
2941 expected2=[7.,107.,17.,117.,8.,108.,10.,110.,11.,111.,12.,112.,13.,113.,15.,115.,14.,114.,16.,116.,9.,109.]
2942 for i in xrange(22):
2943 self.assertAlmostEqual(expected2[i],f1.getArray().getIJ(0,i),12);
2947 def testGetMaxValue1(self):
2948 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
2949 nbOfCells=m.getNumberOfCells();
2950 f=MEDCouplingFieldDouble.New(ON_CELLS,LINEAR_TIME);
2952 a1=DataArrayDouble.New();
2953 val1=[3.,4.,5.,6.,7.]
2954 a1.setValues(val1,nbOfCells,1);
2955 a2=DataArrayDouble.New();
2956 val2=[0.,1.,2.,8.,7.]
2957 a2.setValues(val2,nbOfCells,1);
2960 f.setEndTime(3.,3,4);
2963 self.assertAlmostEqual(8.,f.getMaxValue(),14);
2964 self.assertAlmostEqual(0.,f.getMinValue(),14);
2965 self.assertAlmostEqual(5.,f.getAverageValue(),14);
2966 self.assertAlmostEqual(5.125,f.getWeightedAverageValue(0,True),14);
2968 self.assertAlmostEqual(9.5,f.getMaxValue(),14);
2969 self.assertAlmostEqual(0.,f.getMinValue(),14);
2971 self.assertAlmostEqual(9.5,f.getMaxValue(),14);
2972 self.assertAlmostEqual(1.,f.getMinValue(),14);
2975 def testSubstractInPlaceDM1(self):
2976 mesh1=MEDCouplingDataForTest.build2DTargetMesh_3();
2977 mesh2=MEDCouplingDataForTest.build2DTargetMesh_3();
2978 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
2980 array=DataArrayDouble.New();
2981 arr=[7.,107.,8.,108.,9.,109.,10.,110.,11.,111.,12.,112.,13.,113.,14.,114.,15.,115.,16.,116.]
2982 array.setValues(arr,mesh1.getNumberOfCells(),2);
2985 self.assertEqual(10,f1.getNumberOfTuples());
2986 self.assertEqual(2,f1.getNumberOfComponents());
2987 self.assertEqual(20,f1.getNumberOfValues());
2989 renum=[0,2,3,1,4,5,6,8,7,9]
2990 mesh2.renumberCells(renum,False);
2992 f2=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
2994 array=DataArrayDouble.New();
2995 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]
2996 array.setValues(arr2,mesh2.getNumberOfCells(),2);
2999 f1.substractInPlaceDM(f2,10,1e-12);
3000 f1.applyFunc(1,"abs(x+y+0.2)");
3001 self.assertAlmostEqual(0.,f1.getMaxValue(),13);
3004 def testDotCrossProduct1(self):
3005 mesh1=MEDCouplingDataForTest.build2DTargetMesh_3();
3006 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
3007 f1.setTime(2.3,5,6);
3009 array=DataArrayDouble.New();
3010 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.]
3011 array.setValues(arr1,mesh1.getNumberOfCells(),3);
3013 f2=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
3014 f2.setTime(7.8,4,5);
3016 array=DataArrayDouble.New();
3017 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.]
3018 array.setValues(arr2,mesh1.getNumberOfCells(),3);
3022 expected1=[842.,1820.,2816.,3830.,4862.,5912.,6980.,8066.,9170.,10292.]
3023 for i in xrange(10):
3024 self.assertAlmostEqual(expected1[i],f3.getIJ(i,0),9);
3027 f4=f1.crossProduct(f2);
3028 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.]
3029 for i in xrange(30):
3030 self.assertAlmostEqual(expected2[i],f4.getIJ(0,i),9);
3034 def testMinMaxFields1(self):
3035 mesh1=MEDCouplingDataForTest.build2DTargetMesh_3();
3036 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
3037 f1.setTime(2.3,5,6);
3039 array=DataArrayDouble.New();
3040 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.]
3041 array.setValues(arr1,mesh1.getNumberOfCells(),3);
3043 f2=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
3044 f2.setTime(7.8,4,5);
3046 array=DataArrayDouble.New();
3047 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.]
3048 array.setValues(arr2,mesh1.getNumberOfCells(),3);
3052 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.]
3053 for i in xrange(30):
3054 self.assertAlmostEqual(expected1[i],f3.getIJ(0,i),9);
3058 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.]
3059 for i in xrange(30):
3060 self.assertAlmostEqual(expected2[i],f4.getIJ(0,i),9);
3065 def testApplyLin1(self):
3066 mesh1=MEDCouplingDataForTest.build2DTargetMesh_3();
3067 f1=MEDCouplingFieldDouble.New(ON_CELLS,LINEAR_TIME);
3069 array=DataArrayDouble.New();
3070 arr=[7.,107.,8.,108.,9.,109.,10.,110.,11.,111.,12.,112.,13.,113.,14.,114.,15.,115.,16.,116.]
3071 array.setValues(arr,mesh1.getNumberOfCells(),2);
3074 f1.applyLin(2.,3.,0);
3075 expected1=[17.,107.,19.,108.,21.,109.,23.,110.,25.,111.,27.,112.,29.,113.,31.,114.,33.,115.,35.,116.]
3076 for i in xrange(20):
3077 self.assertAlmostEqual(expected1[i],f1.getIJ(0,i),9);
3080 arr2=[2.,102.,3.,103.,4.,104.,5.,105.,6.,106.,7.,107.,8.,108.,9.,109.,10.,110.,11.,111.]
3081 array=DataArrayDouble.New();
3082 array.setValues(arr2,mesh1.getNumberOfCells(),2);
3083 f1.setEndArray(array);
3085 f1.applyLin(4.,5.,1);
3087 expected2=[17.,433.,19.,437.,21.,441.,23.,445.,25.,449.,27.,453.,29.,457.,31.,461.,33.,465.,35.,469.]
3088 for i in xrange(20):
3089 self.assertAlmostEqual(expected2[i],f1.getIJ(0,i),9);
3091 expected3=[2.,413.,3.,417.,4.,421.,5.,425.,6.,429.,7.,433.,8.,437.,9.,441.,10.,445.,11.,449.]
3092 for i in xrange(20):
3093 self.assertAlmostEqual(expected3[i],f1.getEndArray().getIJ(0,i),9);
3098 def testGetIdsInRange1(self):
3099 mesh1=MEDCouplingDataForTest.build2DTargetMesh_3();
3100 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
3101 f1.setTime(2.3,5,6);
3103 array=DataArrayDouble.New();
3104 arr1=[2.,8.,6.,5.,11.,7.,9.,3.,10.,4.]
3105 array.setValues(arr1,mesh1.getNumberOfCells(),1);
3108 f1.checkCoherency();
3109 da=f1.getIdsInRange(2.9,7.1);
3110 self.failUnlessEqual(5,da.getNbOfElems());
3111 expected1=[2,3,5,7,9]
3112 self.failUnlessEqual(expected1,list(da.getValues()));
3113 da=f1.getIdsInRange(8.,12.);
3114 self.failUnlessEqual(4,da.getNbOfElems());
3116 self.failUnlessEqual(expected2,list(da.getValues()));
3120 def testBuildSubPart1(self):
3121 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
3122 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
3123 f1.setTime(2.3,5,6);
3125 array=DataArrayDouble.New();
3126 arr1=[3.,103.,4.,104.,5.,105.,6.,106.,7.,107.]
3127 array.setValues(arr1,mesh1.getNumberOfCells(),2);
3133 self.failUnlessEqual(3,f2.getNumberOfTuples());
3134 self.failUnlessEqual(2,f2.getNumberOfComponents());
3135 expected1=[5.,105.,4.,104.,7.,107.]
3137 self.assertAlmostEqual(f2.getIJ(0,i),expected1[i],12);
3139 self.failUnlessEqual(3,f2.getMesh().getNumberOfCells());
3140 self.failUnlessEqual(6,f2.getMesh().getNumberOfNodes());
3141 self.failUnlessEqual(2,f2.getMesh().getSpaceDimension());
3142 self.failUnlessEqual(2,f2.getMesh().getMeshDimension());
3144 self.failUnlessEqual(13,m2C.getMeshLength());
3145 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]
3146 for i in xrange(12):
3147 self.assertAlmostEqual(expected2[i],m2C.getCoords().getIJ(0,i),12);
3149 expected3=[3,2,3,1,3,0,2,1,4,4,5,3,2]
3150 self.failUnlessEqual(expected3,list(m2C.getNodalConnectivity().getValues()));
3151 expected4=[0,4,8,13]
3152 self.failUnlessEqual(expected4,list(m2C.getNodalConnectivityIndex().getValues()));
3153 # Test with field on nodes.
3154 f1=MEDCouplingFieldDouble.New(ON_NODES,ONE_TIME);
3155 f1.setTime(2.3,5,6);
3157 array=DataArrayDouble.New();
3158 arr2=[3.,103.,4.,104.,5.,105.,6.,106.,7.,107.,8.,108.,9.,109.,10.,110.,11.,111.]
3159 array.setValues(arr2,mesh1.getNumberOfNodes(),2);
3162 f2=f1.buildSubPart(part2);
3163 self.failUnlessEqual(4,f2.getNumberOfTuples());
3164 self.failUnlessEqual(2,f2.getNumberOfComponents());
3165 expected5=[4.,104.,5.,105.,7.,107.,8.,108.]
3167 self.assertAlmostEqual(f2.getIJ(0,i),expected5[i],12);
3169 self.failUnlessEqual(2,f2.getMesh().getNumberOfCells());
3170 self.failUnlessEqual(4,f2.getMesh().getNumberOfNodes());
3171 self.failUnlessEqual(2,f2.getMesh().getSpaceDimension());
3172 self.failUnlessEqual(2,f2.getMesh().getMeshDimension());
3174 self.failUnlessEqual(8,m2C.getMeshLength());
3175 for i in xrange(8):#8 is not an error
3176 self.assertAlmostEqual(expected2[i],m2C.getCoords().getIJ(0,i),12);
3178 self.failUnlessEqual(expected3[:4],list(m2C.getNodalConnectivity().getValues())[4:]);
3179 self.failUnlessEqual(expected3[4:8],list(m2C.getNodalConnectivity().getValues())[:4]);
3180 self.failUnlessEqual(expected4[:3],list(m2C.getNodalConnectivityIndex().getValues()));
3181 #idem previous because nodes of cell#4 are not fully present in part3
3183 arrr=DataArrayInt.New();
3184 arrr.setValues(part3,2,1);
3185 f2=f1.buildSubPart(arrr);
3186 self.failUnlessEqual(4,f2.getNumberOfTuples());
3187 self.failUnlessEqual(2,f2.getNumberOfComponents());
3189 self.assertAlmostEqual(f2.getIJ(0,i),expected5[i],12);
3191 self.failUnlessEqual(2,f2.getMesh().getNumberOfCells());
3192 self.failUnlessEqual(4,f2.getMesh().getNumberOfNodes());
3193 self.failUnlessEqual(2,f2.getMesh().getSpaceDimension());
3194 self.failUnlessEqual(2,f2.getMesh().getMeshDimension());
3196 self.failUnlessEqual(8,m2C.getMeshLength());
3197 for i in xrange(8):#8 is not an error
3198 self.assertAlmostEqual(expected2[i],m2C.getCoords().getIJ(0,i),12);
3200 self.failUnlessEqual(expected3[:4],list(m2C.getNodalConnectivity().getValues())[4:8]);
3201 self.failUnlessEqual(expected3[4:8],list(m2C.getNodalConnectivity().getValues())[:4]);
3202 self.failUnlessEqual(expected4[:3],list(m2C.getNodalConnectivityIndex().getValues()));
3205 f2=f1.buildSubPart(part4);
3206 self.failUnlessEqual(6,f2.getNumberOfTuples());
3207 self.failUnlessEqual(2,f2.getNumberOfComponents());
3208 expected6=[4.,104.,5.,105.,7.,107.,8.,108.,10.,110.,11.,111.]
3209 for i in xrange(12):
3210 self.assertAlmostEqual(f2.getIJ(0,i),expected6[i],12);
3212 self.failUnlessEqual(3,f2.getMesh().getNumberOfCells());
3213 self.failUnlessEqual(6,f2.getMesh().getNumberOfNodes());
3214 self.failUnlessEqual(2,f2.getMesh().getSpaceDimension());
3215 self.failUnlessEqual(2,f2.getMesh().getMeshDimension());
3217 self.failUnlessEqual(13,m2C.getMeshLength());
3218 for i in xrange(12):
3219 self.assertAlmostEqual(expected2[i],m2C.getCoords().getIJ(0,i),12);
3221 self.failUnlessEqual(expected3[0:4],list(m2C.getNodalConnectivity().getValues())[4:8]);
3222 self.failUnlessEqual(expected3[4:8],list(m2C.getNodalConnectivity().getValues())[0:4]);
3223 self.failUnlessEqual(expected3[8:13],list(m2C.getNodalConnectivity().getValues())[8:13]);
3224 self.failUnlessEqual(expected4,list(m2C.getNodalConnectivityIndex().getValues()));
3227 def testDoublyContractedProduct1(self):
3228 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
3229 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
3231 array=DataArrayDouble.New();
3232 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]
3233 array.setValues(arr1,mesh1.getNumberOfCells(),6);
3235 f1.checkCoherency();
3237 f2=f1.doublyContractedProduct();
3238 f2.checkCoherency();
3239 self.assertEqual(1,f2.getNumberOfComponents());
3240 self.assertEqual(5,f2.getNumberOfTuples());
3242 self.assertAlmostEqual(3906.56,f2.getIJ(i,0),9);
3247 def testDeterminant1(self):
3248 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
3249 f1=MEDCouplingFieldDouble.New(ON_CELLS,CONST_ON_TIME_INTERVAL);
3250 f1.setTime(2.3,5,6);
3251 f1.setEndTime(3.8,7,3);
3253 array=DataArrayDouble.New();
3254 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]
3255 array.setValues(arr1,mesh1.getNumberOfCells(),4);
3258 f1.checkCoherency();
3259 f2=f1.determinant();
3260 f2.checkCoherency();
3261 self.assertEqual(CONST_ON_TIME_INTERVAL,f2.getTimeDiscretization());
3262 self.assertEqual(1,f2.getNumberOfComponents());
3263 self.assertEqual(5,f2.getNumberOfValues());
3265 self.assertAlmostEqual(-2.42,f2.getIJ(i,0),13);
3267 #6 components multi arrays with end array not defined
3268 f1=MEDCouplingFieldDouble.New(ON_NODES,LINEAR_TIME);
3269 f1.setTime(2.3,5,6);
3270 f1.setEndTime(3.8,7,3);
3272 array=DataArrayDouble.New();
3273 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,
3274 1.2,2.3,3.4,4.5,5.6,6.7, 1.2,2.3,3.4,4.5,5.6,6.7, 1.2,2.3,3.4,4.5,5.6,6.7, 1.2,2.3,3.4,4.5,5.6,6.7]
3275 array.setValues(arr2,mesh1.getNumberOfNodes(),6);
3277 self.assertRaises(InterpKernelException,f1.checkCoherency);#no end array specified !
3279 f2=f1.determinant();
3280 self.assertEqual(LINEAR_TIME,f2.getTimeDiscretization());
3281 self.assertEqual(1,f2.getArray().getNumberOfComponents());
3282 self.assertEqual(9,f2.getNumberOfTuples());
3284 self.assertAlmostEqual(137.335,f2.getIJ(i,0),10);
3286 #6 components multi arrays with end array defined
3287 array=DataArrayDouble.New();
3288 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,
3289 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]
3290 array.setValues(arr3,mesh1.getNumberOfNodes(),6);
3291 f1.setEndArray(array);
3292 f1.checkCoherency();
3293 f2=f1.determinant();
3294 f2.checkCoherency();
3295 self.assertEqual(LINEAR_TIME,f2.getTimeDiscretization());
3296 self.assertEqual(1,f2.getNumberOfComponents());
3297 self.assertEqual(9,f2.getNumberOfTuples());
3298 time2,it,order=f2.getTime()
3299 self.assertAlmostEqual(2.3,time2,12);
3300 self.assertEqual(5,it);
3301 self.assertEqual(6,order);
3302 time2,it,order=f2.getEndTime()
3303 self.assertAlmostEqual(3.8,time2,12);
3304 self.assertEqual(7,it);
3305 self.assertEqual(3,order);
3307 self.assertAlmostEqual(137.335,f2.getIJ(i,0),10);
3308 self.assertAlmostEqual(1289.685,f2.getEndArray().getIJ(i,0),9);
3311 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
3312 f1.setTime(7.8,10,2);
3314 array=DataArrayDouble.New();
3315 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]
3316 array.setValues(arr4,mesh1.getNumberOfCells(),9);
3319 f1.checkCoherency();
3320 f2=f1.determinant();
3321 f2.checkCoherency();
3322 self.assertEqual(ONE_TIME,f2.getTimeDiscretization());
3323 self.assertEqual(1,f2.getNumberOfComponents());
3324 self.assertEqual(5,f2.getNumberOfTuples());
3325 time2,it,order=f2.getTime()
3326 self.assertAlmostEqual(7.8,time2,12);
3327 self.assertEqual(10,it);
3328 self.assertEqual(2,order);
3330 self.assertAlmostEqual(3.267,f2.getIJ(i,0),13);
3334 def testEigenValues1(self):
3335 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
3336 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
3338 array=DataArrayDouble.New();
3339 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]
3340 array.setValues(arr1,mesh1.getNumberOfCells(),6);
3342 f1.checkCoherency();
3344 f2=f1.eigenValues();
3345 f2.checkCoherency();
3346 self.assertEqual(3,f2.getNumberOfComponents());
3347 self.assertEqual(5,f2.getNumberOfTuples());
3348 expected1=[13.638813677891717,-4.502313844635971,-2.2364998332557486]
3350 self.assertAlmostEqual(expected1[0],f2.getIJ(i,0),13);
3351 self.assertAlmostEqual(expected1[1],f2.getIJ(i,1),13);
3352 self.assertAlmostEqual(expected1[2],f2.getIJ(i,2),13);
3356 def testEigenVectors1(self):
3357 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
3358 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
3360 array=DataArrayDouble.New();
3361 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]
3362 array.setValues(arr1,mesh1.getNumberOfCells(),6);
3364 f1.checkCoherency();
3366 f2=f1.eigenVectors();
3367 f2.checkCoherency();
3368 self.assertEqual(9,f2.getNumberOfComponents());
3369 self.assertEqual(5,f2.getNumberOfTuples());
3370 expected1=[0.5424262364180696, 0.5351201064614425, 0.6476266283176001,#eigenvect 0
3371 0.7381111277307373, 0.06458838384003074, -0.6715804522117897,#eigenvect 1
3372 -0.4012053603397987, 0.8423032781211455, -0.3599436712889738#eigenvect 2
3375 self.assertAlmostEqual(expected1[0],f2.getIJ(i,0),13);
3376 self.assertAlmostEqual(expected1[1],f2.getIJ(i,1),13);
3377 self.assertAlmostEqual(expected1[2],f2.getIJ(i,2),13);
3378 self.assertAlmostEqual(expected1[3],f2.getIJ(i,3),13);
3379 self.assertAlmostEqual(expected1[4],f2.getIJ(i,4),13);
3380 self.assertAlmostEqual(expected1[5],f2.getIJ(i,5),13);
3381 self.assertAlmostEqual(expected1[6],f2.getIJ(i,6),13);
3382 self.assertAlmostEqual(expected1[7],f2.getIJ(i,7),13);
3383 self.assertAlmostEqual(expected1[8],f2.getIJ(i,8),13);
3388 def testInverse1(self):
3389 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
3390 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
3392 array=DataArrayDouble.New();
3393 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]
3394 array.setValues(arr1,mesh1.getNumberOfCells(),9);
3396 f1.checkCoherency();
3399 f2.checkCoherency();
3400 self.assertEqual(9,f2.getNumberOfComponents());
3401 self.assertEqual(5,f2.getNumberOfTuples());
3402 expected1=[-2.6538108356290113, 2.855831037649208, -1.1111111111111067, 3.461891643709813, -4.775022956841121, 2.2222222222222143, -1.1111111111111054, 2.222222222222214, -1.1111111111111072]
3404 self.assertAlmostEqual(expected1[0],f2.getIJ(i,0),13);
3405 self.assertAlmostEqual(expected1[1],f2.getIJ(i,1),13);
3406 self.assertAlmostEqual(expected1[2],f2.getIJ(i,2),13);
3407 self.assertAlmostEqual(expected1[3],f2.getIJ(i,3),13);
3408 self.assertAlmostEqual(expected1[4],f2.getIJ(i,4),13);
3409 self.assertAlmostEqual(expected1[5],f2.getIJ(i,5),13);
3410 self.assertAlmostEqual(expected1[6],f2.getIJ(i,6),13);
3411 self.assertAlmostEqual(expected1[7],f2.getIJ(i,7),13);
3412 self.assertAlmostEqual(expected1[8],f2.getIJ(i,8),13);
3415 array=DataArrayDouble.New();
3416 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]
3417 array.setValues(arr3,mesh1.getNumberOfCells(),6);
3419 f1.checkCoherency();
3422 f2.checkCoherency();
3423 self.assertEqual(6,f2.getNumberOfComponents());
3424 self.assertEqual(5,f2.getNumberOfTuples());
3425 expected3=[-0.3617705098531818, -0.8678630828458127, -0.026843764174972983, 0.5539957431465833, 0.13133439560823013, -0.05301294502145887]
3427 self.assertAlmostEqual(expected3[0],f2.getIJ(i,0),13);
3428 self.assertAlmostEqual(expected3[1],f2.getIJ(i,1),13);
3429 self.assertAlmostEqual(expected3[2],f2.getIJ(i,2),13);
3430 self.assertAlmostEqual(expected3[3],f2.getIJ(i,3),13);
3431 self.assertAlmostEqual(expected3[4],f2.getIJ(i,4),13);
3432 self.assertAlmostEqual(expected3[5],f2.getIJ(i,5),13);
3435 array=DataArrayDouble.New();
3436 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]
3437 array.setValues(arr2,mesh1.getNumberOfCells(),4);
3439 f1.checkCoherency();
3442 f2.checkCoherency();
3443 self.assertEqual(4,f2.getNumberOfComponents());
3444 self.assertEqual(5,f2.getNumberOfTuples());
3445 expected2=[-1.8595041322314059, 0.9504132231404963, 1.404958677685951, -0.49586776859504156]
3447 self.assertAlmostEqual(expected2[0],f2.getIJ(i,0),13);
3448 self.assertAlmostEqual(expected2[1],f2.getIJ(i,1),13);
3449 self.assertAlmostEqual(expected2[2],f2.getIJ(i,2),13);
3450 self.assertAlmostEqual(expected2[3],f2.getIJ(i,3),13);
3455 def testTrace1(self):
3456 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
3457 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
3459 array=DataArrayDouble.New();
3460 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]
3461 array.setValues(arr1,mesh1.getNumberOfCells(),9);
3463 f1.checkCoherency();
3466 f2.checkCoherency();
3467 self.assertEqual(1,f2.getNumberOfComponents());
3468 self.assertEqual(5,f2.getNumberOfTuples());
3470 self.assertAlmostEqual(15.9,f2.getIJ(i,0),13);
3473 array=DataArrayDouble.New();
3474 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]
3475 array.setValues(arr3,mesh1.getNumberOfCells(),6);
3477 f1.checkCoherency();
3480 f2.checkCoherency();
3481 self.assertEqual(1,f2.getNumberOfComponents());
3482 self.assertEqual(5,f2.getNumberOfTuples());
3484 self.assertAlmostEqual(25.8,f2.getIJ(i,0),13);
3487 array=DataArrayDouble.New();
3488 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]
3489 array.setValues(arr2,mesh1.getNumberOfCells(),4);
3491 f1.checkCoherency();
3494 f2.checkCoherency();
3495 self.assertEqual(1,f2.getNumberOfComponents());
3496 self.assertEqual(5,f2.getNumberOfTuples());
3498 self.assertAlmostEqual(5.7,f2.getIJ(i,0),13);
3503 def testDeviator1(self):
3504 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
3505 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
3507 array=DataArrayDouble.New();
3508 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]
3509 array.setValues(arr1,mesh1.getNumberOfCells(),6);
3511 f1.checkCoherency();
3514 f2.checkCoherency();
3515 self.assertEqual(6,f2.getNumberOfComponents());
3516 self.assertEqual(5,f2.getNumberOfTuples());
3517 expected1=[-1.1,0.,1.1,4.5,5.6,6.7]
3519 self.assertAlmostEqual(expected1[0],f2.getIJ(i,0),13);
3520 self.assertAlmostEqual(expected1[1],f2.getIJ(i,1),13);
3521 self.assertAlmostEqual(expected1[2],f2.getIJ(i,2),13);
3522 self.assertAlmostEqual(expected1[3],f2.getIJ(i,3),13);
3523 self.assertAlmostEqual(expected1[4],f2.getIJ(i,4),13);
3524 self.assertAlmostEqual(expected1[5],f2.getIJ(i,5),13);
3529 def testMagnitude1(self):
3530 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
3531 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
3533 array=DataArrayDouble.New();
3534 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]
3535 array.setValues(arr1,mesh1.getNumberOfCells(),5);
3537 f1.checkCoherency();
3540 f2.checkCoherency();
3541 self.assertEqual(1,f2.getNumberOfComponents());
3542 self.assertEqual(5,f2.getNumberOfTuples());
3544 self.assertAlmostEqual(8.3606219864313918,f2.getIJ(i,0),13);
3549 def testMaxPerTuple1(self):
3550 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
3551 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
3553 array=DataArrayDouble.New();
3554 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]
3555 array.setValues(arr1,mesh1.getNumberOfCells(),5);
3557 f1.checkCoherency();
3559 f2=f1.maxPerTuple();
3560 f2.checkCoherency();
3561 self.assertEqual(1,f2.getNumberOfComponents());
3562 self.assertEqual(5,f2.getNumberOfTuples());
3564 self.assertAlmostEqual(5.6,f2.getIJ(i,0),13);
3567 d2,d2I=array.maxPerTupleWithCompoId()
3568 self.assertEqual(1,d2.getNumberOfComponents());
3569 self.assertEqual(5,d2.getNumberOfTuples());
3571 self.assertAlmostEqual(5.6,d2.getIJ(i,0),13);
3573 self.assertTrue(d2I.isEqual(DataArrayInt([4,3,2,0,1])))
3576 def testChangeNbOfComponents(self):
3577 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
3578 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
3580 array=DataArrayDouble.New();
3581 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]
3582 array.setValues(arr1,mesh1.getNumberOfCells(),5);
3584 f1.checkCoherency();
3586 f1.changeNbOfComponents(3,7.77);
3587 f1.checkCoherency();
3588 self.assertEqual(3,f1.getNumberOfComponents());
3589 self.assertEqual(5,f1.getNumberOfTuples());
3590 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]
3591 for i in xrange(15):
3592 self.assertAlmostEqual(expected1[i],f1.getIJ(0,i),13);
3594 f1.changeNbOfComponents(4,7.77);
3595 f1.checkCoherency();
3596 self.assertEqual(4,f1.getNumberOfComponents());
3597 self.assertEqual(5,f1.getNumberOfTuples());
3598 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]
3599 for i in xrange(20):
3600 self.assertAlmostEqual(expected2[i],f1.getIJ(0,i),13);
3605 def testSortPerTuple1(self):
3606 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
3607 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
3609 array=DataArrayDouble.New();
3610 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]
3611 array.setValues(arr1,mesh1.getNumberOfCells(),5);
3613 f1.checkCoherency();
3615 f1.sortPerTuple(True);
3616 f1.checkCoherency();
3617 self.assertEqual(5,f1.getNumberOfComponents());
3618 self.assertEqual(5,f1.getNumberOfTuples());
3620 self.assertAlmostEqual(arr1[0],f1.getIJ(i,0),13);
3621 self.assertAlmostEqual(arr1[1],f1.getIJ(i,1),13);
3622 self.assertAlmostEqual(arr1[2],f1.getIJ(i,2),13);
3623 self.assertAlmostEqual(arr1[3],f1.getIJ(i,3),13);
3624 self.assertAlmostEqual(arr1[4],f1.getIJ(i,4),13);
3627 f1.sortPerTuple(False);
3628 f1.checkCoherency();
3629 self.assertEqual(5,f1.getNumberOfComponents());
3630 self.assertEqual(5,f1.getNumberOfTuples());
3632 self.assertAlmostEqual(arr1[4],f1.getIJ(i,0),13);
3633 self.assertAlmostEqual(arr1[3],f1.getIJ(i,1),13);
3634 self.assertAlmostEqual(arr1[2],f1.getIJ(i,2),13);
3635 self.assertAlmostEqual(arr1[1],f1.getIJ(i,3),13);
3636 self.assertAlmostEqual(arr1[0],f1.getIJ(i,4),13);
3641 def testIsEqualWithoutConsideringStr1(self):
3642 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
3643 mesh2=MEDCouplingDataForTest.build2DTargetMesh_1();
3645 self.assertTrue(mesh1.isEqual(mesh2,1e-12));
3646 self.assertTrue(mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
3647 mesh2.setName("rr");
3648 self.assertTrue(not mesh1.isEqual(mesh2,1e-12));
3649 self.assertTrue(mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
3650 da1,da2=mesh1.checkGeoEquivalWith(mesh2,2,1e-12);
3651 self.assertRaises(InterpKernelException,mesh1.checkGeoEquivalWith,mesh2,0,1e-12);
3653 self.assertTrue(mesh1.isEqual(mesh2,1e-12));
3654 self.assertTrue(mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
3655 mesh2.getCoords().setInfoOnComponent(0,"tty");
3656 self.assertTrue(not mesh1.isEqual(mesh2,1e-12));
3657 self.assertTrue(mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
3658 mesh2.getCoords().setInfoOnComponent(0,"");
3659 self.assertTrue(mesh1.isEqual(mesh2,1e-12));
3660 self.assertTrue(mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
3661 mesh2.getCoords().setInfoOnComponent(1,"tty");
3662 self.assertTrue(not mesh1.isEqual(mesh2,1e-12));
3663 self.assertTrue(mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
3664 mesh2.getCoords().setInfoOnComponent(1,"");
3665 self.assertTrue(mesh1.isEqual(mesh2,1e-12));
3666 self.assertTrue(mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
3667 tmp=mesh2.getCoords().getIJ(0,3);
3668 mesh2.getCoords().setIJ(0,3,9999.);
3669 self.assertTrue(not mesh1.isEqual(mesh2,1e-12));
3670 self.assertTrue(not mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
3671 mesh2.getCoords().setIJ(0,3,tmp);
3672 self.assertTrue(mesh1.isEqual(mesh2,1e-12));
3673 self.assertTrue(mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
3674 tmp2=mesh2.getNodalConnectivity().getIJ(0,4);
3675 mesh2.getNodalConnectivity().setIJ(0,4,0);
3676 self.assertTrue(not mesh1.isEqual(mesh2,1e-12));
3677 self.assertTrue(not mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
3678 mesh2.getNodalConnectivity().setIJ(0,4,tmp2);
3679 self.assertTrue(mesh1.isEqual(mesh2,1e-12));
3680 self.assertTrue(mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
3682 f1=mesh1.getMeasureField(True);
3683 f2=mesh2.getMeasureField(True);
3684 self.assertTrue(f1.isEqual(f2,1e-12,1e-12));
3685 self.assertTrue(f1.isEqualWithoutConsideringStr(f2,1e-12,1e-12));
3686 f2.setName("ftest");
3687 self.assertTrue(not f1.isEqual(f2,1e-12,1e-12));
3688 self.assertTrue(f1.isEqualWithoutConsideringStr(f2,1e-12,1e-12));
3689 f1.setName("ftest");
3690 self.assertTrue(f1.isEqual(f2,1e-12,1e-12));
3691 self.assertTrue(f1.isEqualWithoutConsideringStr(f2,1e-12,1e-12));
3693 f2.getArray().setInfoOnComponent(0,"eee");
3694 self.assertTrue(not f1.isEqual(f2,1e-12,1e-12));
3695 self.assertTrue(f1.isEqualWithoutConsideringStr(f2,1e-12,1e-12));
3696 f2.getArray().setInfoOnComponent(0,"");
3697 self.assertTrue(f1.isEqual(f2,1e-12,1e-12));
3698 self.assertTrue(f1.isEqualWithoutConsideringStr(f2,1e-12,1e-12));
3700 f2.getArray().setIJ(1,0,0.123);
3701 self.assertTrue(not f1.isEqual(f2,1e-12,1e-12));
3702 self.assertTrue(not f1.isEqualWithoutConsideringStr(f2,1e-12,1e-12));
3703 f2.getArray().setIJ(1,0,0.125);
3704 self.assertTrue(f1.isEqual(f2,1e-12,1e-12));
3705 self.assertTrue(f1.isEqualWithoutConsideringStr(f2,1e-12,1e-12));
3709 def testGetNodeIdsOfCell1(self):
3710 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
3711 li=mesh1.getNodeIdsOfCell(1)
3713 self.assertEqual(expected1,list(li))
3714 li=mesh1.getCoordinatesOfNode(4)
3715 self.assertEqual(2,len(li))
3716 self.assertAlmostEqual(0.2,li[0],13);
3717 self.assertAlmostEqual(0.2,li[1],13);
3718 li=mesh1.getCoords().getValuesAsTuple()
3719 self.assertEqual(9,len(li))
3720 li2=mesh1.getNodalConnectivityIndex().getValuesAsTuple()
3721 self.assertEqual(6,len(li2))
3724 def testGetEdgeRatioField1(self):
3725 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
3726 m1.setTime(3.4,5,6); m1.setTimeUnit("us");
3727 f1=m1.getEdgeRatioField();
3728 self.assertAlmostEqual(3.4,f1.getTime()[0],12) ; self.assertEqual(5,f1.getTime()[1]) ; self.assertEqual(6,f1.getTime()[2])
3729 self.assertEqual("us",f1.getTimeUnit())
3730 self.assertEqual(m1.getNumberOfCells(),f1.getNumberOfTuples());
3731 self.assertEqual(5,f1.getNumberOfTuples());
3732 self.assertEqual(1,f1.getNumberOfComponents());
3733 expected1=[1.,1.4142135623730951, 1.4142135623730951,1.,1.]
3735 self.assertAlmostEqual(expected1[i],f1.getIJ(i,0),14);
3738 m1=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
3739 f1=m1.getEdgeRatioField();
3740 self.assertEqual(m1.getNumberOfCells(),f1.getNumberOfTuples());
3741 self.assertEqual(5,f1.getNumberOfTuples());
3742 self.assertEqual(1,f1.getNumberOfComponents());
3743 expected2=[1.4142135623730951, 1.7320508075688772, 1.7320508075688772, 1.4142135623730951, 1.4142135623730951]
3745 self.assertAlmostEqual(expected2[i],f1.getIJ(i,0),14);
3749 def testFillFromAnalytic3(self):
3750 m=MEDCouplingDataForTest.build2DTargetMesh_1()
3751 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME)
3752 self.assertRaises(InterpKernelException,f1.fillFromAnalytic,1,"y+x");
3754 f1.setName("myField");
3755 f1.fillFromAnalytic(1,"y+x");
3756 f1.checkCoherency();
3757 self.assertEqual(f1.getName(),"myField");
3758 self.assertEqual(f1.getTypeOfField(),ON_CELLS);
3759 self.assertEqual(f1.getTimeDiscretization(),ONE_TIME);
3760 self.assertEqual(1,f1.getNumberOfComponents());
3761 self.assertEqual(5,f1.getNumberOfTuples());
3762 values1=[-0.1,0.23333333333333336,0.56666666666666665,0.4,0.9]
3763 tmp=f1.getArray().getValues();
3764 self.assertEqual(len(values1),len(tmp))
3765 for i in xrange(len(values1)):
3766 self.assertTrue(abs(values1[i]-tmp[i])<1.e-12);
3769 f1=MEDCouplingFieldDouble.New(ON_NODES,CONST_ON_TIME_INTERVAL)
3771 f1.fillFromAnalytic(1,"y+2*x");
3772 f1.setEndTime(1.2,3,4);
3773 f1.checkCoherency();
3774 self.assertEqual(f1.getTypeOfField(),ON_NODES);
3775 self.assertEqual(f1.getTimeDiscretization(),CONST_ON_TIME_INTERVAL);
3776 self.assertEqual(1,f1.getNumberOfComponents());
3777 self.assertEqual(9,f1.getNumberOfTuples());
3778 values2=[-0.9,0.1,1.1,-0.4,0.6,1.6,0.1,1.1,2.1]
3779 tmp=f1.getArray().getValues();
3780 self.assertEqual(len(values2),len(tmp))
3781 for i in xrange(len(values2)):
3782 self.assertTrue(abs(values2[i]-tmp[i])<1.e-12);
3784 f1=MEDCouplingFieldDouble.New(ON_NODES,LINEAR_TIME);
3786 f1.fillFromAnalytic(1,"2.*x+y");
3787 f1.setEndTime(1.2,3,4);
3788 f1.checkCoherency();
3789 self.assertEqual(f1.getTypeOfField(),ON_NODES);
3790 self.assertEqual(f1.getTimeDiscretization(),LINEAR_TIME);
3791 self.assertEqual(1,f1.getNumberOfComponents());
3792 self.assertEqual(9,f1.getNumberOfTuples());
3793 tmp=f1.getArray().getValues();
3794 values2Bis=[-0.9,0.1,1.1,-0.4,0.6,1.6,0.1,1.1,2.1]
3795 self.assertEqual(len(values2Bis),len(tmp))
3796 for i in xrange(len(values2Bis)):
3797 self.assertTrue(abs(values2Bis[i]-tmp[i])<1.e-12);
3799 tmp=f1.getEndArray().getValues();
3800 self.assertEqual(len(values2Bis),len(tmp))
3801 for i in xrange(len(values2Bis)):
3802 self.assertTrue(abs(values2Bis[i]-tmp[i])<1.e-12);
3805 f1=MEDCouplingFieldDouble.New(ON_NODES,ONE_TIME);
3807 f1.fillFromAnalytic(2,"(x+y)*IVec+2*(x+y)*JVec");
3808 f1.checkCoherency();
3809 self.assertEqual(f1.getTypeOfField(),ON_NODES);
3810 self.assertEqual(f1.getTimeDiscretization(),ONE_TIME);
3811 self.assertEqual(2,f1.getNumberOfComponents());
3812 self.assertEqual(9,f1.getNumberOfTuples());
3813 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]
3814 tmp=f1.getArray().getValues();
3815 self.assertEqual(len(values3),len(tmp))
3816 for i in xrange(len(values3)):
3817 self.assertTrue(abs(values3[i]-tmp[i])<1.e-12);
3819 values4=f1.accumulate();
3820 self.assertTrue(abs(3.6-values4[0])<1.e-12);
3821 self.assertTrue(abs(7.2-values4[1])<1.e-12);
3822 values4=f1.integral(True);
3823 self.assertTrue(abs(0.5-values4[0])<1.e-12);
3824 self.assertTrue(abs(1.-values4[1])<1.e-12);
3826 f1=MEDCouplingFieldDouble.New(ON_NODES,NO_TIME);
3828 self.assertRaises(InterpKernelException,f1.fillFromAnalytic,1,"1./(x-0.2)");
3831 def testFieldDoubleOpEqual1(self):
3832 m=MEDCouplingDataForTest.build2DTargetMesh_1();
3833 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
3834 self.assertRaises(InterpKernelException,f1.assign,0.07);
3837 f1.checkCoherency();
3838 self.assertEqual(1,f1.getNumberOfComponents());
3839 self.assertEqual(5,f1.getNumberOfTuples());
3841 self.assertAlmostEqual(0.07,f1.getIJ(i,0),16);
3844 f1.checkCoherency();
3845 self.assertEqual(1,f1.getNumberOfComponents());
3846 self.assertEqual(5,f1.getNumberOfTuples());
3848 self.assertAlmostEqual(0.09,f1.getIJ(i,0),16);
3851 f1=MEDCouplingFieldDouble.New(ON_NODES,LINEAR_TIME);
3852 f1.setEndTime(4.5,2,3);
3855 f1.checkCoherency();
3856 self.assertEqual(1,f1.getNumberOfComponents());
3857 self.assertEqual(9,f1.getNumberOfTuples());
3859 self.assertAlmostEqual(0.08,f1.getIJ(i,0),16);
3861 self.assertEqual(1,f1.getEndArray().getNumberOfComponents());
3862 self.assertEqual(9,f1.getEndArray().getNumberOfTuples());
3864 self.assertAlmostEqual(0.08,f1.getEndArray().getIJ(i,0),16);
3868 def testAreaBary3D2(self):
3869 coordsForHexa8=[-75.45749305371, 180.95495078401, 39.515472018008,
3870 -9.755591679144, 23.394927935279, 5.108794294848,
3871 14.337630157832, 61.705351002702, 160.42422501908,
3872 -27.273893776752, 167.567731083961, 192.830034145464,
3873 99.857193154796,264.499264735586,-8.287335493412,
3874 144.939882761126,156.38626563134,-31.896173894226,
3875 161.34096835726,182.4654895809,73.832387065572,
3876 132.680430393685,255.37973247196,96.15235602819];
3877 volHexa8=3258520.29637466;
3878 baryHexa8=[43.925705821778, 155.31893955289, 65.874418109644]
3880 coordsForPenta6=[-68.199829618726,178.938498373416,62.608505919588,
3881 8.461744647847,76.653979804423,165.00018874933,
3882 -27.273893776752,167.567731083961,192.830034145464,
3883 106.586501038965,262.629609408327,13.124533008813,
3884 155.465082847275,197.414118382622,78.408350795821,
3885 132.680430393685,255.37973247196,96.15235602819];
3886 volPenta6=944849.868507338;
3887 baryPenta6=[39.631002313543,182.692711783428,106.98540473964]
3889 coordsForPyra5=[132.680430393685,255.37973247196,96.15235602819,
3890 -27.273893776752,167.567731083961,192.830034145464,
3891 8.461744647847,76.653979804423,165.00018874933,
3892 155.465082847275,197.414118382622,78.408350795821,
3893 -68.199829618726,178.938498373416,62.608505919588];
3894 volPyra5=756943.92980254;
3895 baryPyra5=[29.204294116618,172.540129749156,118.01035951483]
3896 mesh=MEDCouplingUMesh.New("Bary3D2",3);
3897 coo=DataArrayDouble.New();
3898 tmp=coordsForHexa8+coordsForPenta6+coordsForPyra5
3899 coo.setValues(tmp,19,3);
3900 mesh.setCoords(coo);
3902 tmpConn=[0,1,2,3,4,5,6,7]
3903 mesh.allocateCells(3);
3904 self.assertRaises(InterpKernelException,mesh.insertNextCell,NORM_HEXA8,9,tmpConn[0:8])
3905 mesh.insertNextCell(NORM_HEXA8,tmpConn[0:8])
3906 mesh.insertNextCell(NORM_PENTA6,6,[i+8 for i in tmpConn])
3907 mesh.insertNextCell(NORM_PYRA5,5,[i+14 for i in tmpConn])
3908 mesh.finishInsertingCells();
3909 mesh.checkCoherency();
3910 mesh.mergeNodes(1e-7)
3911 self.assertEqual(12,mesh.getNumberOfNodes());
3912 vols=mesh.getMeasureField(True);
3913 self.assertEqual(3,vols.getNumberOfTuples());
3914 self.assertEqual(1,vols.getNumberOfComponents());
3915 self.assertAlmostEqual(volHexa8,vols.getIJ(0,0),6);
3916 self.assertAlmostEqual(volPenta6,vols.getIJ(1,0),7);
3917 self.assertAlmostEqual(volPyra5,vols.getIJ(2,0),7);
3918 bary=mesh.getBarycenterAndOwner();
3919 self.assertEqual(3,bary.getNumberOfTuples());
3920 self.assertEqual(3,bary.getNumberOfComponents());
3921 self.assertAlmostEqual(baryHexa8[0],bary.getIJ(0,0),11);
3922 self.assertAlmostEqual(baryHexa8[1],bary.getIJ(0,1),11);
3923 self.assertAlmostEqual(baryHexa8[2],bary.getIJ(0,2),11);
3924 self.assertAlmostEqual(baryPenta6[0],bary.getIJ(1,0),11);
3925 self.assertAlmostEqual(baryPenta6[1],bary.getIJ(1,1),11);
3926 self.assertAlmostEqual(baryPenta6[2],bary.getIJ(1,2),11);
3927 self.assertAlmostEqual(baryPyra5[0],bary.getIJ(2,0),11);
3928 self.assertAlmostEqual(baryPyra5[1],bary.getIJ(2,1),11);
3929 self.assertAlmostEqual(baryPyra5[2],bary.getIJ(2,2),11);
3932 def testGetMeasureFieldCMesh1(self):
3933 m=MEDCouplingCMesh.New();
3934 da=DataArrayDouble.New();
3935 discX=[2.3,3.4,5.8,10.2]
3936 discY=[12.3,23.4,45.8]
3937 discZ=[-0.7,1.2,1.25,2.13,2.67]
3938 da.setValues(discX,4,1);
3939 m.setCoordsAt(0,da);
3941 self.assertEqual(4,m.getNumberOfNodes());
3942 self.assertEqual(3,m.getNumberOfCells());
3943 self.assertEqual(1,m.getSpaceDimension());
3944 f=m.getMeasureField(True);
3945 self.assertEqual(3,f.getNumberOfTuples());
3946 self.assertEqual(1,f.getNumberOfComponents());
3947 expected1=[1.1,2.4,4.4]
3949 self.assertAlmostEqual(expected1[i],f.getIJ(i,0),12);
3951 coords=m.getCoordinatesAndOwner();
3952 self.assertEqual(4,coords.getNumberOfTuples());
3953 self.assertEqual(1,coords.getNumberOfComponents());
3955 self.assertAlmostEqual(discX[i],coords.getIJ(i,0),12);
3957 coords=m.getBarycenterAndOwner();
3958 self.assertEqual(3,coords.getNumberOfTuples());
3959 self.assertEqual(1,coords.getNumberOfComponents());
3960 expected1_3=[2.85,4.6,8.]
3962 self.assertAlmostEqual(expected1_3[i],coords.getIJ(i,0),12);
3965 da=DataArrayDouble.New();
3966 da.setValues(discY,3,1);
3967 m.setCoordsAt(1,da);
3969 self.assertEqual(12,m.getNumberOfNodes());
3970 self.assertEqual(6,m.getNumberOfCells());
3971 self.assertEqual(2,m.getSpaceDimension());
3972 f=m.getMeasureField(True);
3973 self.assertEqual(6,f.getNumberOfTuples());
3974 self.assertEqual(1,f.getNumberOfComponents());
3975 expected2=[12.21,26.64,48.84,24.64,53.76,98.56]
3977 self.assertAlmostEqual(expected2[i],f.getIJ(i,0),12);
3979 coords=m.getCoordinatesAndOwner();
3980 self.assertEqual(12,coords.getNumberOfTuples());
3981 self.assertEqual(2,coords.getNumberOfComponents());
3982 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]
3983 for i in xrange(24):
3984 self.assertAlmostEqual(expected2_2[i],coords.getIJ(0,i),12);
3986 coords=m.getBarycenterAndOwner();
3987 self.assertEqual(6,coords.getNumberOfTuples());
3988 self.assertEqual(2,coords.getNumberOfComponents());
3989 expected2_3=[2.85,17.85,4.6,17.85,8.,17.85, 2.85,34.6,4.6,34.6,8.,34.6]
3990 for i in xrange(12):
3991 self.assertAlmostEqual(expected2_3[i],coords.getIJ(0,i),12);
3994 da=DataArrayDouble.New();
3995 da.setValues(discZ,5,1);
3996 m.setCoordsAt(2,da);
3998 self.assertEqual(60,m.getNumberOfNodes());
3999 self.assertEqual(24,m.getNumberOfCells());
4000 self.assertEqual(3,m.getSpaceDimension());
4001 f=m.getMeasureField(True);
4002 self.assertEqual(24,f.getNumberOfTuples());
4003 self.assertEqual(1,f.getNumberOfComponents());
4004 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]
4005 for i in xrange(24):
4006 self.assertAlmostEqual(expected3[i],f.getIJ(i,0),12);
4008 coords=m.getCoordinatesAndOwner();
4009 self.assertEqual(60,coords.getNumberOfTuples());
4010 self.assertEqual(3,coords.getNumberOfComponents());
4012 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,
4013 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,
4014 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,
4015 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,
4016 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];
4017 for i in xrange(180):
4018 self.assertAlmostEqual(expected3_2[i],coords.getIJ(0,i),12);
4020 coords=m.getBarycenterAndOwner();
4021 self.assertEqual(24,coords.getNumberOfTuples());
4022 self.assertEqual(3,coords.getNumberOfComponents());
4024 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,
4025 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,
4026 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,
4027 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];
4028 for i in xrange(72):
4029 self.assertAlmostEqual(expected3_3[i],coords.getIJ(0,i),12);
4033 def testFieldDoubleZipCoords1(self):
4034 m=MEDCouplingDataForTest.build2DTargetMeshMergeNode_1();
4035 f=m.fillFromAnalytic(ON_NODES,2,"x*2.");
4036 f.getArray().setInfoOnComponent(0,"titi");
4037 f.getArray().setInfoOnComponent(1,"tutu");
4039 self.assertEqual(18,f.getNumberOfTuples());
4040 self.assertEqual(2,f.getNumberOfComponents());
4041 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]
4042 for i in xrange(36):
4043 self.assertAlmostEqual(expected1[i],f.getIJ(0,i),12);
4045 self.assertTrue(f.zipCoords());
4047 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]
4048 for i in xrange(30):
4049 self.assertAlmostEqual(expected2[i],f.getIJ(0,i),12);
4051 self.assertTrue(not f.zipCoords());
4053 for i in xrange(30):
4054 self.assertAlmostEqual(expected2[i],f.getIJ(0,i),12);
4056 self.assertTrue(f.getArray().getInfoOnComponent(0)=="titi");
4057 self.assertTrue(f.getArray().getInfoOnComponent(1)=="tutu");
4060 def testFieldDoubleZipConnectivity1(self):
4061 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
4062 m2=MEDCouplingDataForTest.build2DTargetMesh_1();
4064 m3_1=m2.buildPartOfMySelf(cells1,True);
4066 m4=MEDCouplingDataForTest.build2DSourceMesh_1();
4067 m5=MEDCouplingUMesh.MergeUMeshes(m1,m3);
4068 m6=MEDCouplingUMesh.MergeUMeshes(m5,m4);
4070 self.assertEqual(10,m6.getNumberOfCells());
4071 self.assertEqual(22,m6.getNumberOfNodes());
4072 arr,areNodesMerged,newNbOfNodes=m6.mergeNodes(1e-13);
4073 self.assertEqual(9,m6.getNumberOfNodes());
4074 f=m6.fillFromAnalytic(ON_CELLS,2,"x");
4075 f2=m6.fillFromAnalytic(ON_NODES,2,"x");
4076 self.assertEqual(10,f.getNumberOfTuples());
4077 self.assertEqual(2,f.getNumberOfComponents());
4078 expected1=[-0.05, -0.05, 0.3666666666666667, 0.3666666666666667, 0.53333333333333321, 0.53333333333333321,
4079 -0.05, -0.05, 0.45, 0.45, 0.53333333333333321, 0.53333333333333321, -0.05, -0.05, 0.45, 0.45,
4080 0.36666666666666659, 0.36666666666666659, 0.033333333333333326, 0.033333333333333326];
4081 for i in xrange(20):
4082 self.assertAlmostEqual(expected1[i],f.getIJ(0,i),12);
4084 f.getArray().setInfoOnComponent(0,"titi");
4085 f.getArray().setInfoOnComponent(1,"tutu");
4087 self.assertTrue(f.zipConnectivity(0));
4088 expected2=[-0.05, -0.05, 0.3666666666666667, 0.3666666666666667, 0.53333333333333321, 0.53333333333333321,
4089 -0.05, -0.05, 0.45, 0.45, 0.36666666666666659, 0.36666666666666659, 0.033333333333333326, 0.033333333333333326];
4090 self.assertEqual(7,f.getNumberOfTuples());
4091 self.assertEqual(2,f.getNumberOfComponents());
4092 for i in xrange(14):
4093 self.assertAlmostEqual(expected2[i],f.getIJ(0,i),12);
4095 self.assertTrue(f.getArray().getInfoOnComponent(0)=="titi");
4096 self.assertTrue(f.getArray().getInfoOnComponent(1)=="tutu");
4097 self.assertTrue(not f.zipConnectivity(0));
4099 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,
4100 -0.3, -0.3, 0.2, 0.2, 0.7, 0.7];
4101 self.assertEqual(9,f2.getNumberOfTuples());
4102 self.assertEqual(2,f2.getNumberOfComponents());
4103 for i in xrange(18):
4104 self.assertAlmostEqual(expected3[i],f2.getIJ(0,i),12);
4106 self.assertTrue(f2.zipConnectivity(0));
4107 self.assertEqual(9,f2.getNumberOfTuples());
4108 self.assertEqual(2,f2.getNumberOfComponents());
4109 for i in xrange(18):
4110 self.assertAlmostEqual(expected3[i],f2.getIJ(0,i),12);
4114 def testDaDoubleRenumber1(self):
4115 a=DataArrayDouble.New();
4116 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]
4117 a.setValues(arr1,7,2);
4118 a.setInfoOnComponent(0,"toto");
4119 a.setInfoOnComponent(1,"tata");
4121 arr2=[3,1,0,6,5,4,2]
4123 self.assertEqual(7,b.getNumberOfTuples());
4124 self.assertEqual(2,b.getNumberOfComponents());
4125 self.assertTrue(b.getInfoOnComponent(0)=="toto");
4126 self.assertTrue(b.getInfoOnComponent(1)=="tata");
4127 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]
4128 for i in xrange(14):
4129 self.assertAlmostEqual(expected1[i],b.getIJ(0,i),14);
4132 c=DataArrayInt.New();
4133 arr3=[1,11,2,12,3,13,4,14,5,15,6,16,7,17]
4134 c.setValues(arr3,7,2);
4135 c.setInfoOnComponent(0,"toto");
4136 c.setInfoOnComponent(1,"tata");
4138 self.assertEqual(7,d.getNumberOfTuples());
4139 self.assertEqual(2,d.getNumberOfComponents());
4140 self.assertTrue(d.getInfoOnComponent(0)=="toto");
4141 self.assertTrue(d.getInfoOnComponent(1)=="tata");
4142 expected2=[3, 13, 2, 12, 7, 17, 1, 11, 6, 16, 5, 15, 4, 14]
4143 for i in xrange(14):
4144 self.assertEqual(expected2[i],d.getIJ(0,i));
4148 def testDaDoubleRenumberAndReduce1(self):
4149 a=DataArrayDouble.New();
4150 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]
4151 a.setValues(arr1,7,2);
4152 a.setInfoOnComponent(0,"toto");
4153 a.setInfoOnComponent(1,"tata");
4155 arr2=[2,-1,1,-1,0,4,3]
4156 b=a.renumberAndReduce(arr2,5);
4157 self.assertEqual(5,b.getNumberOfTuples());
4158 self.assertEqual(2,b.getNumberOfComponents());
4159 self.assertTrue(b.getInfoOnComponent(0)=="toto");
4160 self.assertTrue(b.getInfoOnComponent(1)=="tata");
4161 expected1=[5.1,15.1,3.1,13.1,1.1,11.1,7.1,17.1,6.1,16.1]
4162 for i in xrange(10):
4163 self.assertAlmostEqual(expected1[i],b.getIJ(0,i),14);
4166 c=DataArrayInt.New();
4167 arr3=[1,11,2,12,3,13,4,14,5,15,6,16,7,17]
4168 c.setValues(arr3,7,2);
4169 c.setInfoOnComponent(0,"toto");
4170 c.setInfoOnComponent(1,"tata");
4171 d=c.renumberAndReduce(arr2,5);
4172 self.assertEqual(5,d.getNumberOfTuples());
4173 self.assertEqual(2,d.getNumberOfComponents());
4174 self.assertTrue(d.getInfoOnComponent(0)=="toto");
4175 self.assertTrue(d.getInfoOnComponent(1)=="tata");
4176 expected2=[5,15,3,13,1,11,7,17,6,16]
4177 for i in xrange(10):
4178 self.assertEqual(expected2[i],d.getIJ(0,i));
4182 def testDaDoubleRenumberInPlace1(self):
4183 a=DataArrayDouble.New();
4184 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]
4185 a.setValues(arr1,7,2);
4187 arr2=[3,1,0,6,5,4,2]
4188 a.renumberInPlace(arr2);
4189 self.assertEqual(7,a.getNumberOfTuples());
4190 self.assertEqual(2,a.getNumberOfComponents());
4191 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]
4192 for i in xrange(14):
4193 self.assertAlmostEqual(expected1[i],a.getIJ(0,i),14);
4196 c=DataArrayInt.New();
4197 arr3=[1,11,2,12,3,13,4,14,5,15,6,16,7,17]
4198 c.setValues(arr3,7,2);
4199 c.renumberInPlace(arr2);
4200 self.assertEqual(7,c.getNumberOfTuples());
4201 self.assertEqual(2,c.getNumberOfComponents());
4202 expected2=[3, 13, 2, 12, 7, 17, 1, 11, 6, 16, 5, 15, 4, 14]
4203 for i in xrange(14):
4204 self.assertEqual(expected2[i],c.getIJ(0,i));
4208 def testDaDoubleRenumberR1(self):
4209 a=DataArrayDouble.New();
4210 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]
4211 a.setValues(arr1,7,2);
4212 a.setInfoOnComponent(0,"toto");
4213 a.setInfoOnComponent(1,"tata");
4215 arr2=[3,1,0,6,5,4,2]
4216 b=a.renumberR(arr2);
4217 self.assertEqual(7,b.getNumberOfTuples());
4218 self.assertEqual(2,b.getNumberOfComponents());
4219 self.assertTrue(b.getInfoOnComponent(0)=="toto");
4220 self.assertTrue(b.getInfoOnComponent(1)=="tata");
4221 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]
4222 for i in xrange(14):
4223 self.assertAlmostEqual(expected1[i],b.getIJ(0,i),14);
4226 c=DataArrayInt.New();
4227 arr3=[1,11,2,12,3,13,4,14,5,15,6,16,7,17]
4228 c.setValues(arr3,7,2);
4229 c.setInfoOnComponent(0,"toto");
4230 c.setInfoOnComponent(1,"tata");
4231 d=c.renumberR(arr2);
4232 self.assertEqual(7,d.getNumberOfTuples());
4233 self.assertEqual(2,d.getNumberOfComponents());
4234 self.assertTrue(d.getInfoOnComponent(0)=="toto");
4235 self.assertTrue(d.getInfoOnComponent(1)=="tata");
4236 expected2=[4, 14, 2, 12, 1, 11, 7, 17, 6, 16, 5, 15, 3, 13]
4237 for i in xrange(14):
4238 self.assertEqual(expected2[i],d.getIJ(0,i));
4242 def testDaDoubleRenumberInPlaceR1(self):
4243 a=DataArrayDouble.New();
4244 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]
4245 a.setValues(arr1,7,2);
4247 arr2=[3,1,0,6,5,4,2]
4248 a.renumberInPlaceR(arr2);
4249 self.assertEqual(7,a.getNumberOfTuples());
4250 self.assertEqual(2,a.getNumberOfComponents());
4251 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]
4252 for i in xrange(14):
4253 self.assertAlmostEqual(expected1[i],a.getIJ(0,i),14);
4256 c=DataArrayInt.New();
4257 arr3=[1,11,2,12,3,13,4,14,5,15,6,16,7,17]
4258 c.setValues(arr3,7,2);
4259 c.renumberInPlaceR(arr2);
4260 self.assertEqual(7,c.getNumberOfTuples());
4261 self.assertEqual(2,c.getNumberOfComponents());
4262 expected2=[4, 14, 2, 12, 1, 11, 7, 17, 6, 16, 5, 15, 3, 13]
4263 for i in xrange(14):
4264 self.assertEqual(expected2[i],c.getIJ(0,i));
4268 def testDaDoubleSelectByTupleId1(self):
4269 a=DataArrayDouble.New();
4270 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]
4271 a.setValues(arr1,7,2);
4272 a.setInfoOnComponent(0,"toto");
4273 a.setInfoOnComponent(1,"tata");
4276 b=a.selectByTupleId(arr2);
4277 self.assertEqual(5,b.getNumberOfTuples());
4278 self.assertEqual(2,b.getNumberOfComponents());
4279 self.assertTrue(b.getInfoOnComponent(0)=="toto");
4280 self.assertTrue(b.getInfoOnComponent(1)=="tata");
4281 expected1=[5.1,15.1,3.1,13.1,1.1,11.1,7.1,17.1,6.1,16.1]
4282 for i in xrange(10):
4283 self.assertAlmostEqual(expected1[i],b.getIJ(0,i),14);
4286 c=DataArrayInt.New();
4287 arr3=[1,11,2,12,3,13,4,14,5,15,6,16,7,17]
4288 c.setValues(arr3,7,2);
4289 c.setInfoOnComponent(0,"toto");
4290 c.setInfoOnComponent(1,"tata");
4291 d=c.selectByTupleId(arr2);
4292 self.assertEqual(5,d.getNumberOfTuples());
4293 self.assertEqual(2,d.getNumberOfComponents());
4294 self.assertTrue(d.getInfoOnComponent(0)=="toto");
4295 self.assertTrue(d.getInfoOnComponent(1)=="tata");
4296 expected2=[5,15,3,13,1,11,7,17,6,16]
4297 for i in xrange(10):
4298 self.assertEqual(expected2[i],d.getIJ(0,i));
4302 def testDaDoubleGetMinMaxValues1(self):
4303 a=DataArrayDouble.New();
4304 arr1=[2.34,4.56,-6.77,4.55,4.56,2.24,2.34,1.02,4.56]
4305 a.setValues(arr1,9,1);
4306 m,where=a.getMaxValue();
4307 self.assertEqual(1,where);
4308 self.assertAlmostEqual(4.56,m,12);
4309 m,ws=a.getMaxValue2();
4310 self.assertAlmostEqual(4.56,m,12);
4311 self.assertEqual(3,ws.getNumberOfTuples());
4312 self.assertEqual(1,ws.getNumberOfComponents());
4315 self.assertEqual(expected1[i],ws.getIJ(i,0));
4317 a=DataArrayDouble.New();
4318 arr2=[-2.34,-4.56,6.77,-4.55,-4.56,-2.24,-2.34,-1.02,-4.56]
4319 a.setValues(arr2,9,1);
4320 m,where=a.getMinValue();
4321 self.assertEqual(1,where);
4322 self.assertAlmostEqual(-4.56,m,12);
4323 m,ws=a.getMinValue2();
4324 self.assertAlmostEqual(-4.56,m,12);
4325 self.assertEqual(3,ws.getNumberOfTuples());
4326 self.assertEqual(1,ws.getNumberOfComponents());
4328 self.assertEqual(expected1[i],ws.getIJ(i,0));
4332 def testFieldDoubleGetMinMaxValues2(self):
4333 m2,m1=MEDCouplingDataForTest.build3DExtrudedUMesh_1();
4334 self.assertEqual(18,m2.getNumberOfCells());
4335 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]
4336 f=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
4337 a=DataArrayDouble.New();
4338 a.setValues(arr1,18,1);
4344 self.assertAlmostEqual(8.71,m,12);
4345 m,ws=f.getMaxValue2();
4346 self.assertAlmostEqual(8.71,m,12);
4347 self.assertEqual(4,ws.getNumberOfTuples());
4348 self.assertEqual(1,ws.getNumberOfComponents());
4349 expected1=[0,3,7,17]
4351 self.assertEqual(expected1[i],ws.getIJ(i,0));
4354 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]
4355 a.setValues(arr2,18,1);
4358 self.assertAlmostEqual(-8.71,m,12);
4359 m,ws=f.getMinValue2();
4360 self.assertAlmostEqual(-8.71,m,12);
4361 self.assertEqual(4,ws.getNumberOfTuples());
4362 self.assertEqual(1,ws.getNumberOfComponents());
4364 self.assertEqual(expected1[i],ws.getIJ(i,0));
4368 def testBuildUnstructuredCMesh1(self):
4369 m=MEDCouplingCMesh.New();
4370 da=DataArrayDouble.New();
4371 discX=[2.3,3.4,5.8,10.2]
4372 discY=[12.3,23.4,45.8]
4373 discZ=[-0.7,1.2,1.25,2.13,2.67]
4374 da.setValues(discX,4,1);
4375 m.setCoordsAt(0,da);
4377 self.assertEqual(0,m.getCellContainingPoint([2.4],1e-12));
4378 self.assertEqual(1,m.getCellContainingPoint([3.7],1e-12));
4379 self.assertEqual(2,m.getCellContainingPoint([5.9],1e-12));
4380 self.assertEqual(-1,m.getCellContainingPoint([10.3],1e-12));
4381 self.assertEqual(-1,m.getCellContainingPoint([1.3],1e-12));
4383 m2=m.buildUnstructured();
4384 m2.checkCoherency();
4385 f1=m.getMeasureField(False);
4386 f2=m2.getMeasureField(False);
4387 self.assertTrue(isinstance(f1.getMesh(),MEDCouplingCMesh))
4388 self.assertEqual(f1.getNumberOfTuples(),3);
4389 self.assertEqual(f2.getNumberOfTuples(),3);
4390 self.assertEqual(1,m2.getMeshDimension());
4391 self.assertEqual(1,m2.getSpaceDimension());
4393 self.assertAlmostEqual(f1.getIJ(i,0),f2.getIJ(i,0),10);
4395 da=DataArrayDouble.New();
4396 da.setValues(discY,3,1);
4397 m.setCoordsAt(1,da);
4399 m2=m.buildUnstructured();
4400 m2.checkCoherency();
4401 f1=m.getMeasureField(False);
4402 f2=m2.getMeasureField(False);
4403 self.assertEqual(f1.getNumberOfTuples(),6);
4404 self.assertEqual(f2.getNumberOfTuples(),6);
4405 self.assertEqual(2,m2.getMeshDimension());
4406 self.assertEqual(2,m2.getSpaceDimension());
4408 self.assertAlmostEqual(f1.getIJ(i,0),f2.getIJ(i,0),10);
4411 da=DataArrayDouble.New();
4412 da.setValues(discZ,5,1);
4413 m.setCoordsAt(2,da);
4414 m2=m.buildUnstructured();
4415 m2.checkCoherency();
4416 f1=m.getMeasureField(False);
4417 f2=m2.getMeasureField(False);
4418 self.assertEqual(f1.getNumberOfTuples(),24);
4419 self.assertEqual(f2.getNumberOfTuples(),24);
4420 self.assertEqual(3,m2.getMeshDimension());
4421 self.assertEqual(3,m2.getSpaceDimension());
4422 for i in xrange(24):
4423 self.assertAlmostEqual(f1.getIJ(i,0),f2.getIJ(i,0),10);
4427 self.assertEqual(16,m.getCellContainingPoint(pos1,1e-12));
4429 elems=m2.getCellsInBoundingBox([3.5,6.,12.2,25.,0.,1.5],1e-7)
4430 self.assertEqual([1, 2, 4, 5, 7, 8, 10, 11, 13, 14, 16, 17],elems.getValues())
4434 m3=m.buildUnstructured();
4436 self.assertTrue(m3.isEqual(m2,1e-12));
4439 def testDataArrayIntInvertO2NNO21(self):
4441 da=DataArrayInt.New();
4442 da.setValues(arr1,6,1);
4443 da2=da.invertArrayO2N2N2O(6);
4444 self.assertEqual(6,da2.getNumberOfTuples());
4445 self.assertEqual(1,da2.getNumberOfComponents());
4446 expected1=[1,3,0,5,2,4]
4448 self.assertEqual(expected1[i],da2.getIJ(i,0));
4450 da3=da2.invertArrayN2O2O2N(6);
4452 self.assertEqual(arr1[i],da3.getIJ(i,0));
4455 arr2=[3,-1,5,4,-1,0,-1,1,2,-1]
4456 da=DataArrayInt.New();
4457 da.setValues(arr2,10,1);
4458 da2=da.invertArrayO2N2N2O(6);
4459 self.assertEqual(6,da2.getNumberOfTuples());
4460 self.assertEqual(1,da2.getNumberOfComponents());
4461 expected2=[5,7,8,0,3,2]
4463 self.assertEqual(expected2[i],da2.getIJ(i,0));
4465 da3=da2.invertArrayN2O2O2N(10);
4466 for i in xrange(10):
4467 self.assertEqual(arr2[i],da3.getIJ(i,0));
4471 def testKeepSetSelectedComponent1(self):
4472 arr1=[1.,2.,3.,4., 11.,12.,13.,14., 21.,22.,23.,24., 31.,32.,33.,34., 41.,42.,43.,44.]
4473 a1=DataArrayDouble.New();
4474 a1.setValues(arr1,5,4);
4475 expp=[21.,22.,23.,24.]
4476 self.assertEqual(4,len(a1.getTuple(2)));
4478 self.assertAlmostEqual(expp[i],a1.getTuple(2)[i],12)
4480 a1.setInfoOnComponent(0,"aaaa");
4481 a1.setInfoOnComponent(1,"bbbb");
4482 a1.setInfoOnComponent(2,"cccc");
4483 a1.setInfoOnComponent(3,"dddd");
4485 a2=a1.keepSelectedComponents(arr2V);
4486 self.assertEqual(6,a2.getNumberOfComponents());
4487 self.assertEqual(5,a2.getNumberOfTuples());
4488 self.assertTrue(a2.getInfoOnComponent(0)=="bbbb");
4489 self.assertTrue(a2.getInfoOnComponent(1)=="cccc");
4490 self.assertTrue(a2.getInfoOnComponent(2)=="bbbb");
4491 self.assertTrue(a2.getInfoOnComponent(3)=="cccc");
4492 self.assertTrue(a2.getInfoOnComponent(4)=="aaaa");
4493 self.assertTrue(a2.getInfoOnComponent(5)=="aaaa");
4494 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.]
4495 for i in xrange(30):
4496 self.assertAlmostEqual(expected1[i],a2.getIJ(0,i),14);
4498 a3=a1.convertToIntArr();
4499 self.assertEqual([21,22,23,24],a3.getTuple(2))
4500 a4=a3.keepSelectedComponents(arr2V);
4501 self.assertEqual(6,a4.getNumberOfComponents());
4502 self.assertEqual(5,a4.getNumberOfTuples());
4503 self.assertTrue(a4.getInfoOnComponent(0)=="bbbb");
4504 self.assertTrue(a4.getInfoOnComponent(1)=="cccc");
4505 self.assertTrue(a4.getInfoOnComponent(2)=="bbbb");
4506 self.assertTrue(a4.getInfoOnComponent(3)=="cccc");
4507 self.assertTrue(a4.getInfoOnComponent(4)=="aaaa");
4508 self.assertTrue(a4.getInfoOnComponent(5)=="aaaa");
4509 for i in xrange(30):
4510 self.assertEqual(int(expected1[i]),a4.getIJ(0,i));
4512 # setSelectedComponents
4514 a5=a1.keepSelectedComponents(arr3V);
4515 a5.setInfoOnComponent(0,"eeee");
4516 a5.setInfoOnComponent(1,"ffff");
4518 a2.setSelectedComponents(a5,arr4V);
4519 self.assertEqual(6,a2.getNumberOfComponents());
4520 self.assertEqual(5,a2.getNumberOfTuples());
4521 self.assertTrue(a2.getInfoOnComponent(0)=="bbbb");
4522 self.assertTrue(a2.getInfoOnComponent(1)=="eeee");
4523 self.assertTrue(a2.getInfoOnComponent(2)=="ffff");
4524 self.assertTrue(a2.getInfoOnComponent(3)=="cccc");
4525 self.assertTrue(a2.getInfoOnComponent(4)=="aaaa");
4526 self.assertTrue(a2.getInfoOnComponent(5)=="aaaa");
4527 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.]
4528 for i in xrange(30):
4529 self.assertAlmostEqual(expected2[i],a2.getIJ(0,i),14);
4531 a6=a5.convertToIntArr();
4532 a6.setInfoOnComponent(0,"eeee");
4533 a6.setInfoOnComponent(1,"ffff");
4534 a4.setSelectedComponents(a6,arr4V);
4535 self.assertEqual(6,a4.getNumberOfComponents());
4536 self.assertEqual(5,a4.getNumberOfTuples());
4537 self.assertTrue(a4.getInfoOnComponent(0)=="bbbb");
4538 self.assertTrue(a4.getInfoOnComponent(1)=="eeee");
4539 self.assertTrue(a4.getInfoOnComponent(2)=="ffff");
4540 self.assertTrue(a4.getInfoOnComponent(3)=="cccc");
4541 self.assertTrue(a4.getInfoOnComponent(4)=="aaaa");
4542 self.assertTrue(a4.getInfoOnComponent(5)=="aaaa");
4543 for i in xrange(30):
4544 self.assertEqual(int(expected2[i]),a4.getIJ(0,i));
4550 self.assertRaises(InterpKernelException,a2.keepSelectedComponents,arr5V);
4551 self.assertRaises(InterpKernelException,a2.keepSelectedComponents,arr6V);
4552 self.assertRaises(InterpKernelException,a2.setSelectedComponents,a1,arr7V);
4554 self.assertRaises(InterpKernelException,a2.setSelectedComponents,a1,arr7V);
4558 def testKeepSetSelectedComponent2(self):
4559 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
4560 arr1=[1.,2.,3.,4., 11.,12.,13.,14., 21.,22.,23.,24., 31.,32.,33.,34., 41.,42.,43.,44.]
4561 a1=DataArrayDouble.New();
4562 a1.setValues(arr1,5,4);
4563 a1.setInfoOnComponent(0,"aaaa");
4564 a1.setInfoOnComponent(1,"bbbb");
4565 a1.setInfoOnComponent(2,"cccc");
4566 a1.setInfoOnComponent(3,"dddd");
4567 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
4568 f1.setTime(2.3,4,5);
4572 f1.checkCoherency();
4575 f2=f1.keepSelectedComponents(arr2V);
4576 self.assertTrue(f2.getTimeDiscretization()==ONE_TIME);
4577 t,dt,it=f2.getTime()
4578 self.assertAlmostEqual(2.3,t,13);
4579 self.assertEqual(4,dt);
4580 self.assertEqual(5,it);
4581 f2.checkCoherency();
4582 self.assertEqual(6,f2.getNumberOfComponents());
4583 self.assertEqual(5,f2.getNumberOfTuples());
4584 self.assertTrue(f2.getArray().getInfoOnComponent(0)=="bbbb");
4585 self.assertTrue(f2.getArray().getInfoOnComponent(1)=="cccc");
4586 self.assertTrue(f2.getArray().getInfoOnComponent(2)=="bbbb");
4587 self.assertTrue(f2.getArray().getInfoOnComponent(3)=="cccc");
4588 self.assertTrue(f2.getArray().getInfoOnComponent(4)=="aaaa");
4589 self.assertTrue(f2.getArray().getInfoOnComponent(5)=="aaaa");
4590 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.]
4591 for i in xrange(30):
4592 self.assertAlmostEqual(expected1[i],f2.getIJ(0,i),14);
4594 #setSelectedComponents
4596 f5=f1.keepSelectedComponents(arr3V);
4597 f5.setTime(6.7,8,9);
4598 f5.getArray().setInfoOnComponent(0,"eeee");
4599 f5.getArray().setInfoOnComponent(1,"ffff");
4600 f5.checkCoherency();
4602 f2.setSelectedComponents(f5,arr4V);
4603 self.assertEqual(6,f2.getNumberOfComponents());
4604 self.assertEqual(5,f2.getNumberOfTuples());
4605 f2.checkCoherency();
4606 t,dt,it=f2.getTime()
4607 self.assertAlmostEqual(2.3,t,13);
4608 self.assertEqual(4,dt);
4609 self.assertEqual(5,it);
4610 self.assertTrue(f2.getArray().getInfoOnComponent(0)=="bbbb");
4611 self.assertTrue(f2.getArray().getInfoOnComponent(1)=="eeee");
4612 self.assertTrue(f2.getArray().getInfoOnComponent(2)=="ffff");
4613 self.assertTrue(f2.getArray().getInfoOnComponent(3)=="cccc");
4614 self.assertTrue(f2.getArray().getInfoOnComponent(4)=="aaaa");
4615 self.assertTrue(f2.getArray().getInfoOnComponent(5)=="aaaa");
4616 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.]
4617 for i in xrange(30):
4618 self.assertAlmostEqual(expected2[i],f2.getIJ(0,i),14);
4623 def testElementaryDAThrowAndSpecialCases(self):
4624 da=DataArrayInt.New();
4625 self.assertRaises(InterpKernelException, da.checkAllocated);
4626 self.assertRaises(InterpKernelException, da.fillWithValue, 1);
4627 self.assertRaises(InterpKernelException, da.iota, 1);
4629 da.fillWithValue(11); #11,11,11,11...
4630 da.iota(10); #10,11,12,13...
4632 db=DataArrayInt.New();
4635 dbl2=DataArrayDouble.New();
4637 self.assertRaises(InterpKernelException, dbl2.isUniform, 10., 1e-15);
4638 self.assertRaises(InterpKernelException, dbl2.sort);
4639 self.assertRaises(InterpKernelException, dbl2.iota, 10.);
4641 dbl=DataArrayDouble.New();
4642 #DataArrayDouble not allocated yet
4643 self.assertRaises(InterpKernelException, dbl.iota, 10.);
4644 self.assertRaises(InterpKernelException, dbl.isUniform, 10., 1e-15);
4645 self.assertRaises(InterpKernelException, dbl.sort);
4646 self.assertRaises(InterpKernelException, dbl.fromNoInterlace);
4647 self.assertRaises(InterpKernelException, dbl.toNoInterlace);
4651 self.assertTrue(not dbl.isUniform(10.,1e-15));
4653 self.assertTrue(dbl.isMonotonic(True, .99));
4654 self.assertTrue(dbl.isMonotonic(True, -.99));
4655 self.assertTrue(not dbl.isMonotonic(True, 1.1));
4656 self.assertTrue(not dbl.isMonotonic(True, -1.1));
4658 self.assertTrue(dbl.isMonotonic(False, .99));
4659 self.assertTrue(not dbl.isMonotonic(False, 1.1));
4660 self.assertTrue(not dbl.isMonotonic(False, -1.1));
4662 dc=DataArrayInt.New();
4665 dd=DataArrayDouble.New();
4666 self.assertRaises(InterpKernelException, dd.checkAllocated);
4667 self.assertRaises(InterpKernelException, dd.fillWithValue, 1.);
4668 self.assertRaises(InterpKernelException, dd.iota, 1.);
4669 self.assertTrue(not ((dd.repr().find("No data"))==-1));
4671 dd.alloc(0,1); #Allocated but nbOfElements==0!
4672 self.assertTrue(not ((dd.repr().find("Number of tuples : 0"))==-1));
4673 self.assertTrue(not ((dd.repr().find("Empty Data"))==-1));
4674 dd.fillWithValue(11); #?!...ok
4675 dd.iota(10); #?!...ok
4676 self.assertTrue(dd.isMonotonic(True, 1.)); #nothing is monotonic
4677 self.assertTrue(dd.isMonotonic(False, 1.));
4679 self.assertRaises(InterpKernelException, db.copyStringInfoFrom, da);
4680 self.assertRaises(InterpKernelException, db.copyStringInfoFrom, da);
4682 self.assertRaises(InterpKernelException, da.copyPartOfStringInfoFrom, db, cIds);
4685 self.assertRaises(InterpKernelException, da.copyPartOfStringInfoFrom, db, cIds);
4687 info=["infoOfOneComponent"]*2;
4688 self.assertRaises(InterpKernelException, da.setInfoOnComponents, info);
4689 self.assertRaises(InterpKernelException, da.setInfoOnComponent, 1, info[0]);
4690 db.setInfoOnComponents(info);
4692 self.assertRaises(InterpKernelException, da.getInfoOnComponent, -1);
4693 self.assertRaises(InterpKernelException, da.getInfoOnComponent, 2);
4694 self.assertTrue(db.getInfoOnComponent(1)==db.getInfoOnComponent(0));
4695 self.assertRaises(InterpKernelException, db.getVarOnComponent, -1);
4696 self.assertRaises(InterpKernelException, db.getVarOnComponent, 2);
4697 self.assertRaises(InterpKernelException, db.getUnitOnComponent, -1);
4698 self.assertRaises(InterpKernelException, db.getUnitOnComponent, 2);
4700 self.assertTrue(da.GetVarNameFromInfo("varname unit ")=="varname unit ");
4701 self.assertTrue(da.GetVarNameFromInfo("varname]unit[")=="varname]unit[");
4702 self.assertTrue(da.GetVarNameFromInfo("[unit]")=="");
4703 self.assertTrue(da.GetVarNameFromInfo("varname [unit]")=="varname");
4705 self.assertTrue(da.GetUnitFromInfo("varname unit ")=="");
4706 self.assertTrue(da.GetUnitFromInfo("varname]unit[")=="");
4707 self.assertTrue(da.GetUnitFromInfo("[unit]")=="unit");
4708 self.assertTrue(da.GetUnitFromInfo("varname [unit]")=="unit");
4710 self.assertRaises(InterpKernelException, da.checkNbOfTuplesAndComp, db, "theMessageInThrow");
4711 self.assertRaises(InterpKernelException, da.checkNbOfTuplesAndComp, dc, "theMessageInThrow");
4712 self.assertRaises(InterpKernelException, db.checkNbOfTuplesAndComp, dc, "theMessageInThrow");
4714 self.assertRaises(InterpKernelException, da.checkNbOfTuplesAndComp, 7, 2, "theMessageInThrow");
4715 da.checkNbOfTuplesAndComp(7,1,"theMessageInThrow");
4717 self.assertRaises(InterpKernelException, db.checkNbOfElems, 7*2+1, "theMessageInThrow");
4718 db.checkNbOfElems(7*2,"theMessageInThrow");
4720 self.assertRaises(InterpKernelException, db.GetNumberOfItemGivenBES, 10, 9, 1, "theMessageInThrow");
4721 self.assertRaises(InterpKernelException, db.GetNumberOfItemGivenBES, 0, 1, -1, "theMessageInThrow");
4722 self.assertEqual(10,db.GetNumberOfItemGivenBES(0,10,1,"theMessageInThrow"));
4723 self.assertEqual(5,db.GetNumberOfItemGivenBES(0,10,2,"theMessageInThrow"));
4724 self.assertEqual(6,db.GetNumberOfItemGivenBES(0,11,2,"theMessageInThrow"));
4726 self.assertTrue(not ((da.repr().find("Number of components : 1"))==-1));
4727 self.assertTrue(not ((dd.repr().find("Number of components : 1"))==-1));
4728 self.assertTrue(not ((dbl.repr().find("Number of components : 1"))==-1));
4730 self.assertTrue(not ((da.reprZip().find("Number of components : 1"))==-1));
4731 self.assertTrue(not ((dd.reprZip().find("Number of components : 1"))==-1));
4732 self.assertTrue(not ((dbl.reprZip().find("Number of components : 1"))==-1));
4734 self.assertRaises(InterpKernelException, dbl.selectByTupleId2, 0, 1, -1);
4735 self.assertRaises(InterpKernelException, dbl.substr, -1, 1);
4736 self.assertRaises(InterpKernelException, dbl.substr, 8, 1);
4737 self.assertRaises(InterpKernelException, dbl.substr, 0, 8);
4738 self.assertRaises(InterpKernelException, dbl.meldWith, dd);
4740 self.assertRaises(InterpKernelException, dbl.setPartOfValuesAdv, dbl2, da); #dbl dbl2 not have the same number of components
4741 self.assertRaises(InterpKernelException, dbl.setPartOfValuesAdv, dd, da); #da tuple selector DataArrayInt instance not have exactly 2 components
4743 dbl3=DataArrayDouble.New();
4745 dbl3.fillWithValue(11.);
4746 #bad number of components
4747 self.assertRaises(InterpKernelException, dbl3.getMaxValue);
4748 self.assertRaises(InterpKernelException, dd.getMaxValue);
4749 self.assertRaises(InterpKernelException, dbl3.getMinValue);
4750 self.assertRaises(InterpKernelException, dd.getMinValue);
4751 self.assertRaises(InterpKernelException, dbl3.getAverageValue);
4752 self.assertRaises(InterpKernelException, dd.getAverageValue);
4753 self.assertRaises(InterpKernelException, dd.accumulate, 100);
4754 self.assertRaises(InterpKernelException, dbl.fromPolarToCart);
4755 self.assertRaises(InterpKernelException, dbl3.fromCylToCart);
4756 self.assertRaises(InterpKernelException, dbl3.fromSpherToCart);
4757 self.assertRaises(InterpKernelException, dbl3.doublyContractedProduct);
4758 self.assertRaises(InterpKernelException, dbl3.determinant);
4759 self.assertRaises(InterpKernelException, dbl3.eigenValues);
4760 self.assertRaises(InterpKernelException, dbl3.eigenVectors);
4761 self.assertRaises(InterpKernelException, dbl3.inverse);
4762 self.assertRaises(InterpKernelException, dbl3.trace);
4763 self.assertRaises(InterpKernelException, dbl3.deviator);
4765 dbl3.setIJ(5,1,12.);
4766 self.assertTrue(dbl3.getMaxValueInArray()==12.);
4767 self.assertTrue(dbl3.getMinValueInArray()==11.);
4769 db.fillWithValue(100); #bad Ids
4770 self.assertRaises(InterpKernelException, dbl3.setPartOfValuesAdv, dbl2, db);
4771 db.fillWithValue(-1); #bad Ids
4772 self.assertRaises(InterpKernelException, dbl3.setPartOfValuesAdv, dbl2, db);
4773 db.fillWithValue(6); #bad Ids for dbl3
4774 self.assertRaises(InterpKernelException, dbl3.setPartOfValuesAdv, dbl2, db);
4776 dbl3.checkNoNullValues();
4778 self.assertRaises(InterpKernelException, dbl3.checkNoNullValues);
4779 self.assertRaises(InterpKernelException, dbl3.applyInv, 1.); #div by zero
4780 self.assertRaises(InterpKernelException, dbl2.getIdsInRange, 1., 2.);
4782 self.assertRaises(InterpKernelException, DataArrayDouble_Aggregate, a);
4783 self.assertRaises(InterpKernelException, DataArrayDouble_Meld, a);
4785 a=[dbl2,dbl]; #Nb of components mismatch
4786 self.assertRaises(InterpKernelException, DataArrayDouble_Aggregate, a);
4788 self.assertRaises(InterpKernelException, DataArrayDouble_Dot, dbl2, dbl);
4790 self.assertRaises(InterpKernelException, DataArrayDouble_CrossProduct, dbl2, dbl); #Nb of components mismatch
4791 self.assertRaises(InterpKernelException, DataArrayDouble_CrossProduct, dbl2, dbl2); #Nb of components must be equal to 3
4792 dbl4=DataArrayDouble.New();
4794 dbl5=DataArrayDouble.New();
4796 self.assertRaises(InterpKernelException, DataArrayDouble_CrossProduct, dbl4, dbl5); #Nb of tuples mismatch
4798 a[0]=dbl4; #Nb of tuple mismatch
4799 a[1]=dbl5; #Nb of tuple mismatch
4800 self.assertRaises(InterpKernelException, DataArrayDouble_Meld, a);
4801 self.assertRaises(InterpKernelException, DataArrayDouble_Dot, dbl4, dbl5);
4804 def testDAIGetIdsEqual1(self):
4805 tab1=[5,-2,-4,-2,3,2,-2];
4806 da=DataArrayInt.New();
4807 da.setValues(tab1,7,1);
4808 da2=da.getIdsEqual(-2);
4809 self.assertEqual(3,da2.getNumberOfTuples());
4810 self.assertEqual(1,da2.getNumberOfComponents());
4812 self.assertEqual(expected1,da2.getValues());
4815 def testDAIGetIdsEqualList1(self):
4816 tab1=[5,-2,-4,-2,3,2,-2];
4817 da=DataArrayInt.New();
4818 da.setValues(tab1,7,1);
4819 da2=da.getIdsEqualList([3,-2,0]);
4820 self.assertEqual(4,da2.getNumberOfTuples());
4821 self.assertEqual(1,da2.getNumberOfComponents());
4822 expected1=[1,3,4,6];
4823 self.assertEqual(expected1,da2.getValues());
4826 def testDAFromNoInterlace1(self):
4827 tab1=[1,11,21,31,41,2,12,22,32,42,3,13,23,33,43]
4828 da=DataArrayInt.New();
4829 da.setValues(tab1,5,3);
4830 da2=da.fromNoInterlace();
4831 expected1=[1,2,3,11,12,13,21,22,23,31,32,33,41,42,43]
4832 self.assertEqual(5,da2.getNumberOfTuples());
4833 self.assertEqual(3,da2.getNumberOfComponents());# it's not a bug. Avoid to have 1 million components !
4834 self.assertEqual(expected1,da2.getValues());
4835 da3=da.convertToDblArr();
4836 da4=da3.fromNoInterlace();
4837 self.assertEqual(5,da4.getNumberOfTuples());
4838 self.assertEqual(3,da4.getNumberOfComponents());# it's not a bug. Avoid to have 1 million components !
4839 for i in xrange(15):
4840 self.assertAlmostEqual(expected1[i],da4.getIJ(0,i),14);
4844 def testDAToNoInterlace1(self):
4845 tab1=[1,2,3,11,12,13,21,22,23,31,32,33,41,42,43]
4846 da=DataArrayInt.New();
4847 da.setValues(tab1,5,3);
4848 da2=da.toNoInterlace();
4849 expected1=[1,11,21,31,41,2,12,22,32,42,3,13,23,33,43]
4850 self.assertEqual(5,da2.getNumberOfTuples());
4851 self.assertEqual(3,da2.getNumberOfComponents());# it's not a bug. Avoid to have 1 million components !
4852 self.assertEqual(expected1,da2.getValues());
4853 da3=da.convertToDblArr();
4854 da4=da3.toNoInterlace();
4855 self.assertEqual(5,da4.getNumberOfTuples());
4856 self.assertEqual(3,da4.getNumberOfComponents());# it's not a bug. Avoid to have 1 million components !
4857 for i in xrange(15):
4858 self.assertAlmostEqual(expected1[i],da4.getIJ(0,i),14);
4862 def testDAIsUniform1(self):
4864 da=DataArrayInt.New();
4865 da.setValues(tab1,5,1);
4866 self.assertTrue(da.isUniform(1));
4868 self.assertTrue(not da.isUniform(1));
4870 self.assertTrue(da.isUniform(1));
4871 da2=da.convertToDblArr();
4872 self.assertTrue(da2.isUniform(1.,1.e-12));
4873 da2.setIJ(1,0,1.+1.e-13);
4874 self.assertTrue(da2.isUniform(1.,1.e-12));
4875 da2.setIJ(1,0,1.+1.e-11);
4876 self.assertTrue(not da2.isUniform(1.,1.e-12));
4879 def testDADFromPolarToCart1(self):
4880 tab1=[2.,0.2,2.5,0.7]
4881 da=DataArrayDouble.New();
4882 da.setValues(tab1,2,2);
4883 da2=da.fromPolarToCart();
4884 expected1=[1.9601331556824833,0.39733866159012243, 1.9121054682112213,1.6105442180942275]
4886 self.assertAlmostEqual(expected1[i],da2.getIJ(0,i),13);
4890 def testDADFromCylToCart1(self):
4891 tab1=[2.,0.2,4.,2.5,0.7,9.]
4892 da=DataArrayDouble.New();
4893 da.setValues(tab1,2,3);
4894 da2=da.fromCylToCart();
4895 expected1=[1.9601331556824833,0.39733866159012243,4., 1.9121054682112213,1.6105442180942275,9.]
4897 self.assertAlmostEqual(expected1[i],da2.getIJ(0,i),13);
4901 def testDADFromSpherToCart1(self):
4902 tab1=[2.,0.2,0.3,2.5,0.7,0.8]
4903 da=DataArrayDouble.New();
4904 da.setValues(tab1,2,3);
4905 da2=da.fromSpherToCart();
4906 expected1=[0.37959212195737485,0.11742160338765303,1.9601331556824833, 1.1220769624465328,1.1553337045129035,1.9121054682112213]
4908 self.assertAlmostEqual(expected1[i],da2.getIJ(0,i),13);
4912 def testUnPolyze1(self):
4913 elts=[0,1,2,3,4,5,6,7]
4915 mesh=MEDCouplingDataForTest.build3DTargetMesh_1();
4916 mesh.convertToPolyTypes(eltsV);
4918 mesh2=MEDCouplingDataForTest.build3DTargetMesh_1();
4919 mesh.checkCoherency();
4920 self.assertTrue(mesh.isEqual(mesh2,1e-12));
4921 mesh.convertToPolyTypes(eltsV);
4922 self.assertTrue(not mesh.isEqual(mesh2,1e-12));
4923 mesh.getNodalConnectivity().setIJ(0,6,10);
4924 mesh.getNodalConnectivity().setIJ(0,7,9);
4925 mesh.getNodalConnectivity().setIJ(0,8,12);
4926 mesh.getNodalConnectivity().setIJ(0,9,13);
4928 self.assertTrue(mesh.isEqual(mesh2,1e-12));
4929 mesh.convertToPolyTypes(eltsV);
4930 mesh.getNodalConnectivity().setIJ(0,6,12);
4931 mesh.getNodalConnectivity().setIJ(0,7,13);
4932 mesh.getNodalConnectivity().setIJ(0,8,10);
4933 mesh.getNodalConnectivity().setIJ(0,9,9);
4935 self.assertTrue(mesh.isEqual(mesh2,1e-12));
4936 mesh.convertToPolyTypes(eltsV);
4937 mesh.getNodalConnectivity().setIJ(0,6,12);
4938 mesh.getNodalConnectivity().setIJ(0,7,10);
4939 mesh.getNodalConnectivity().setIJ(0,8,13);
4940 mesh.getNodalConnectivity().setIJ(0,9,9);
4942 self.assertTrue(not mesh.isEqual(mesh2,1e-12));
4944 mesh=MEDCouplingDataForTest.build2DTargetMesh_1();
4945 mesh2=MEDCouplingDataForTest.build2DTargetMesh_1();
4947 mesh.convertToPolyTypes(eltsV);
4948 self.assertTrue(not mesh.isEqual(mesh2,1e-12));
4950 self.assertTrue(mesh.isEqual(mesh2,1e-12));
4953 def testConvertDegeneratedCells1(self):
4954 mesh=MEDCouplingDataForTest.build3DTargetMesh_1();
4955 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]
4956 mesh.allocateCells(4);
4957 mesh.insertNextCell(NORM_HEXA8,8,conn[0:8])
4958 mesh.insertNextCell(NORM_HEXA8,8,conn[8:16])
4959 mesh.insertNextCell(NORM_HEXA8,8,conn[16:24])
4960 mesh.insertNextCell(NORM_HEXA8,8,conn[24:32])
4961 mesh.finishInsertingCells();
4962 mesh.checkCoherency();
4963 self.assertEqual(4,mesh.getNumberOfCells());
4964 self.assertEqual(NORM_HEXA8,mesh.getTypeOfCell(0));
4965 self.assertEqual(NORM_HEXA8,mesh.getTypeOfCell(1));
4966 self.assertEqual(NORM_HEXA8,mesh.getTypeOfCell(2));
4967 self.assertEqual(NORM_HEXA8,mesh.getTypeOfCell(3));
4968 f1=mesh.getMeasureField(True);
4969 mesh.convertDegeneratedCells();
4970 mesh.checkCoherency();
4971 f2=mesh.getMeasureField(True);
4972 self.assertEqual(4,mesh.getNumberOfCells());
4973 self.assertEqual(NORM_PENTA6,mesh.getTypeOfCell(0));
4974 self.assertEqual(NORM_PYRA5,mesh.getTypeOfCell(1));
4975 self.assertEqual(NORM_TETRA4,mesh.getTypeOfCell(2));
4976 self.assertEqual(NORM_PYRA5,mesh.getTypeOfCell(3));
4978 self.assertAlmostEqual(f1.getArray().getIJ(0,i),f2.getArray().getIJ(0,i),5);
4982 def testGetNodeIdsNearPoints1(self):
4983 mesh=MEDCouplingDataForTest.build2DTargetMesh_1();
4984 coords=mesh.getCoords();
4985 tmp=DataArrayDouble.New();
4986 vals=[0.2,0.2,0.1,0.2,0.2,0.2]
4987 tmp.setValues(vals,3,2);
4988 tmp2=DataArrayDouble.Aggregate(coords,tmp);
4989 mesh.setCoords(tmp2);
4990 pts=[0.2,0.2,0.1,0.3,-0.3,0.7]
4991 c=mesh.getNodeIdsNearPoint(pts[:2],1e-7);
4992 self.assertEqual([4,9,11],c.getValues());
4993 c,cI=mesh.getNodeIdsNearPoints(pts,3,1e-7);
4994 self.assertEqual([0,3,3,4],cI.getValues());
4995 self.assertEqual([4,9,11,6],c.getValues());
4996 c,cI=mesh.getNodeIdsNearPoints(pts,1e-7);
4997 self.assertEqual([0,3,3,4],cI.getValues());
4998 self.assertEqual([4,9,11,6],c.getValues());
4999 c,cI=mesh.getNodeIdsNearPoints(DataArrayDouble.New(pts,3,2),1e-7);
5000 self.assertEqual([0,3,3,4],cI.getValues());
5001 self.assertEqual([4,9,11,6],c.getValues());
5002 self.assertRaises(InterpKernelException,mesh.getNodeIdsNearPoints,DataArrayDouble.New(pts,2,3),1e-7);
5005 def testFieldCopyTinyAttrFrom1(self):
5006 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
5008 f1.setTimeTolerance(1.e-5);
5009 f1.setDescription("f1Desc");
5010 f1.setTime(1.23,4,5);
5011 f2=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
5013 f2.setDescription("f2Desc");
5014 f2.setTime(6.78,9,10);
5015 f2.setTimeTolerance(4.556e-12);
5017 f1.copyTinyAttrFrom(f2);
5018 self.assertAlmostEqual(4.556e-12,f1.getTimeTolerance(),24);
5019 t,dt,it=f1.getTime()
5020 self.assertAlmostEqual(6.78,t,12);
5021 self.assertEqual(9,dt);
5022 self.assertEqual(10,it);
5023 self.assertTrue(f1.getName()=="f1");#name unchanged
5024 self.assertTrue(f1.getDescription()=="f1Desc");#description unchanged
5026 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
5028 f1.setTimeTolerance(1.e-5);
5029 f1.setDescription("f1Desc");
5030 f2=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
5032 f2.setDescription("f2Desc");
5033 f2.setTimeTolerance(4.556e-12);
5035 f1.copyTinyAttrFrom(f2);
5036 self.assertAlmostEqual(4.556e-12,f1.getTimeTolerance(),24);
5037 self.assertTrue(f1.getName()=="f1");#name unchanged
5038 self.assertTrue(f1.getDescription()=="f1Desc");#description unchanged
5040 f1=MEDCouplingFieldDouble.New(ON_CELLS,CONST_ON_TIME_INTERVAL);
5042 f1.setTimeTolerance(1.e-5);
5043 f1.setDescription("f1Desc");
5044 f1.setTime(1.23,4,5);
5045 f1.setEndTime(5.43,2,1);
5046 f2=MEDCouplingFieldDouble.New(ON_CELLS,CONST_ON_TIME_INTERVAL);
5048 f2.setDescription("f2Desc");
5049 f2.setTimeTolerance(4.556e-12);
5050 f2.setTime(6.78,9,10);
5051 f2.setEndTime(10.98,7,6);
5053 f1.copyTinyAttrFrom(f2);
5054 self.assertAlmostEqual(4.556e-12,f1.getTimeTolerance(),24);
5055 self.assertTrue(f1.getName()=="f1");#name unchanged
5056 self.assertTrue(f1.getDescription()=="f1Desc");#description unchanged
5057 t,dt,it=f1.getTime()
5058 self.assertAlmostEqual(6.78,t,12);
5059 self.assertEqual(9,dt);
5060 self.assertEqual(10,it);
5061 t,dt,it=f1.getEndTime()
5062 self.assertAlmostEqual(10.98,t,12);
5063 self.assertEqual(7,dt);
5064 self.assertEqual(6,it);
5066 f1=MEDCouplingFieldDouble.New(ON_CELLS,LINEAR_TIME);
5068 f1.setTimeTolerance(1.e-5);
5069 f1.setDescription("f1Desc");
5070 f1.setTime(1.23,4,5);
5071 f1.setEndTime(5.43,2,1);
5072 f2=MEDCouplingFieldDouble.New(ON_CELLS,LINEAR_TIME);
5074 f2.setDescription("f2Desc");
5075 f2.setTimeTolerance(4.556e-12);
5076 f2.setTime(6.78,9,10);
5077 f2.setEndTime(10.98,7,6);
5079 f1.copyTinyAttrFrom(f2);
5080 self.assertAlmostEqual(4.556e-12,f1.getTimeTolerance(),24);
5081 self.assertTrue(f1.getName()=="f1");#name unchanged
5082 self.assertTrue(f1.getDescription()=="f1Desc");#description unchanged
5083 t,dt,it=f1.getTime()
5084 self.assertAlmostEqual(6.78,t,12);
5085 self.assertEqual(9,dt);
5086 self.assertEqual(10,it);
5087 t,dt,it=f1.getEndTime()
5088 self.assertAlmostEqual(10.98,t,12);
5089 self.assertEqual(7,dt);
5090 self.assertEqual(6,it);
5093 def testExtrudedMesh5(self):
5095 a=DataArrayDouble.New();
5096 a.setValues(coo1,4,1);
5097 b=MEDCouplingCMesh.New();
5099 c=b.buildUnstructured();
5100 self.assertEqual(1,c.getSpaceDimension());
5101 c.changeSpaceDimension(2);
5103 d=DataArrayDouble.New();
5106 e=MEDCouplingCMesh.New();
5108 f=e.buildUnstructured();
5109 g=f.getCoords().applyFunc(2,"3.5*IVec+x/6*3.14159265359*JVec");
5110 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 !
5111 h=g.fromPolarToCart();
5113 i=c.buildExtrudedMesh(f,1);
5114 self.assertEqual(52,i.getNumberOfNodes());
5115 tmp,tmp2,tmp3=i.mergeNodes(1e-9);
5116 self.assertTrue(tmp2);
5117 self.assertEqual(37,tmp3);
5118 i.convertDegeneratedCells();
5120 self.assertEqual(36,i.getNumberOfCells());
5121 self.assertEqual(37,i.getNumberOfNodes());
5122 self.assertEqual(12,i.getNumberOfCellsWithType(NORM_TRI3));
5123 self.assertEqual(24,i.getNumberOfCellsWithType(NORM_QUAD4));
5124 expected1=[0.25,0.75,2.0625]
5125 j=i.getMeasureField(True);
5126 for ii in xrange(12):
5128 self.assertAlmostEqual(expected1[k],j.getIJ(0,ii*3+k),10);
5131 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]
5132 m=i.getBarycenterAndOwner();
5133 for i in xrange(72):
5134 self.assertAlmostEqual(expected2[i],m.getIJ(0,i),10);
5139 def testExtrudedMesh6(self):
5141 a=DataArrayDouble.New();
5142 a.setValues(coo1,4,1);
5143 b=MEDCouplingCMesh.New();
5145 c=b.buildUnstructured();
5146 self.assertEqual(1,c.getSpaceDimension());
5147 c.changeSpaceDimension(2);
5149 d=DataArrayDouble.New();
5152 e=MEDCouplingCMesh.New();
5154 f=e.buildUnstructured();
5155 d2=f.getCoords().applyFunc("x*x/2");
5157 f.changeSpaceDimension(2);
5160 f.rotate(center,None,pi/3);
5161 g=c.buildExtrudedMesh(f,0);
5163 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 ]
5164 f1=g.getMeasureField(True);
5165 for i in xrange(12):
5166 self.assertAlmostEqual(expected1[i],f1.getIJ(0,i),12);
5168 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]
5169 f2=g.getBarycenterAndOwner();
5170 for i in xrange(24):
5171 self.assertAlmostEqual(expected2[i],f2.getIJ(0,i),12);
5175 def testExtrudedMesh7(self):
5177 a=DataArrayDouble.New();
5178 a.setValues(coo1,4,1);
5179 b=MEDCouplingCMesh.New();
5181 c=b.buildUnstructured();
5182 self.assertEqual(1,c.getSpaceDimension());
5183 c.changeSpaceDimension(2);
5185 d=DataArrayDouble.New();
5188 e=MEDCouplingCMesh.New();
5190 f=e.buildUnstructured();
5191 g=f.getCoords().applyFunc(2,"3.5*IVec+x/6*3.14159265359*JVec");
5192 h=g.fromPolarToCart();
5194 i=c.buildExtrudedMesh(f,1);
5195 self.assertEqual(52,i.getNumberOfNodes());
5196 tmp,tmp2,tmp3=i.mergeNodes(1e-9);
5197 self.assertTrue(tmp2);
5198 self.assertEqual(37,tmp3);
5199 i.convertDegeneratedCells();
5202 g2=h.applyFunc(3,"13.5/3.5*x*IVec+0*JVec+13.5/3.5*y*KVec");
5204 i.changeSpaceDimension(3);
5205 i3=i.buildExtrudedMesh(f,1);
5206 f2=i3.getMeasureField(True);
5207 tmp,tmp2,tmp3=i.mergeNodes(1e-9);
5208 self.assertTrue(tmp2);
5209 self.assertEqual(444,tmp3);
5210 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]
5211 for ii in xrange(12):
5212 for jj in xrange(36):
5213 self.assertAlmostEqual(expected1[jj],f2.getIJ(0,ii*36+jj),9);
5218 def testSimplexize1(self):
5219 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
5220 m.convertToPolyTypes([3]);
5222 self.assertEqual(7,da.getNumberOfTuples());
5223 self.assertEqual(1,da.getNumberOfComponents());
5224 expected2=[0,0,1,2,3,4,4]
5226 self.assertEqual(expected2[i],da.getIJ(i,0));
5229 self.assertEqual(7,m.getNumberOfCells());
5230 self.assertEqual(NORM_TRI3,m.getTypeOfCell(0));
5231 self.assertEqual(NORM_TRI3,m.getTypeOfCell(1));
5232 self.assertEqual(NORM_TRI3,m.getTypeOfCell(2));
5233 self.assertEqual(NORM_TRI3,m.getTypeOfCell(3));
5234 self.assertEqual(NORM_POLYGON,m.getTypeOfCell(4));
5235 self.assertEqual(NORM_TRI3,m.getTypeOfCell(5));
5236 self.assertEqual(NORM_TRI3,m.getTypeOfCell(6));
5237 expected1=[0.125,0.125,0.125,0.125,0.25,0.125,0.125]
5238 f=m.getMeasureField(False);
5240 self.assertAlmostEqual(expected1[i]*sqrt(2.),f.getIJ(i,0),10);
5242 types=m.getAllGeoTypes();
5243 self.assertEqual([NORM_TRI3,NORM_POLYGON],types);
5245 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
5246 m.convertToPolyTypes([3]);
5248 self.assertEqual(7,da.getNumberOfTuples());
5249 self.assertEqual(1,da.getNumberOfComponents());
5251 self.assertEqual(expected2[i],da.getIJ(i,0));
5254 types=m.getAllGeoTypes();
5255 self.assertEqual([NORM_TRI3,NORM_POLYGON],types);
5256 self.assertEqual(7,m.getNumberOfCells());
5257 self.assertEqual(NORM_TRI3,m.getTypeOfCell(0));
5258 self.assertEqual(NORM_TRI3,m.getTypeOfCell(1));
5259 self.assertEqual(NORM_TRI3,m.getTypeOfCell(2));
5260 self.assertEqual(NORM_TRI3,m.getTypeOfCell(3));
5261 self.assertEqual(NORM_POLYGON,m.getTypeOfCell(4));
5262 self.assertEqual(NORM_TRI3,m.getTypeOfCell(5));
5263 self.assertEqual(NORM_TRI3,m.getTypeOfCell(6));
5264 f=m.getMeasureField(False);
5266 self.assertAlmostEqual(expected1[i]*sqrt(2.),f.getIJ(i,0),10);
5270 def testSimplexize2(self):
5271 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
5272 m.convertToPolyTypes([3]);
5273 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
5275 arr=DataArrayDouble.New();
5276 arr1=[10.,110.,20.,120.,30.,130.,40.,140.,50.,150.]
5277 arr.setValues(arr1,5,2);
5280 f1.checkCoherency();
5281 self.assertTrue(f1.simplexize(0));
5282 f1.checkCoherency();
5283 expected1=[10.,110.,10.,110.,20.,120.,30.,130.,40.,140.,50.,150.,50.,150.]
5284 for i in xrange(14):
5285 self.assertAlmostEqual(expected1[i],f1.getIJ(0,i),10);
5287 self.assertTrue(not f1.simplexize(0));
5288 for i in xrange(14):
5289 self.assertAlmostEqual(expected1[i],f1.getIJ(0,i),10);
5294 def testDAMeld1(self):
5295 da1=DataArrayDouble.New();
5297 da2=DataArrayDouble.New();
5300 da1.fillWithValue(7.);
5302 da3=da2.applyFunc(3,"10*x*IVec+100*x*JVec+1000*x*KVec");
5304 da1.setInfoOnComponent(0,"c0da1");
5305 da1.setInfoOnComponent(1,"c1da1");
5306 da3.setInfoOnComponent(0,"c0da3");
5307 da3.setInfoOnComponent(1,"c1da3");
5308 da3.setInfoOnComponent(2,"c2da3");
5312 self.assertEqual(5,da1.getNumberOfComponents());
5313 self.assertEqual(7,da1.getNumberOfTuples());
5314 self.assertTrue(da1.getInfoOnComponent(0)=="c0da1");
5315 self.assertTrue(da1.getInfoOnComponent(1)=="c1da1");
5316 self.assertTrue(da1.getInfoOnComponent(2)=="c0da3");
5317 self.assertTrue(da1.getInfoOnComponent(3)=="c1da3");
5318 self.assertTrue(da1.getInfoOnComponent(4)=="c2da3");
5320 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.]
5321 for i in xrange(35):
5322 self.assertAlmostEqual(expected1[i],da1.getIJ(0,i),10);
5325 dai1=da1C.convertToIntArr();
5326 dai3=da3.convertToIntArr();
5327 dai1.meldWith(dai3);
5328 self.assertEqual(5,dai1.getNumberOfComponents());
5329 self.assertEqual(7,dai1.getNumberOfTuples());
5330 self.assertTrue(dai1.getInfoOnComponent(0)=="c0da1");
5331 self.assertTrue(dai1.getInfoOnComponent(1)=="c1da1");
5332 self.assertTrue(dai1.getInfoOnComponent(2)=="c0da3");
5333 self.assertTrue(dai1.getInfoOnComponent(3)=="c1da3");
5334 self.assertTrue(dai1.getInfoOnComponent(4)=="c2da3");
5335 for i in xrange(35):
5336 self.assertEqual(int(expected1[i]),dai1.getIJ(0,i));
5338 # test of static method DataArrayDouble::meld
5339 da4=DataArrayDouble.Meld(da1C,da3);
5340 tmp=DataArrayDouble.Meld([da1C,da3]);
5341 self.assertTrue(da4.isEqual(tmp,1e-10))
5342 self.assertEqual(5,da4.getNumberOfComponents());
5343 self.assertEqual(7,da4.getNumberOfTuples());
5344 self.assertTrue(da4.getInfoOnComponent(0)=="c0da1");
5345 self.assertTrue(da4.getInfoOnComponent(1)=="c1da1");
5346 self.assertTrue(da4.getInfoOnComponent(2)=="c0da3");
5347 self.assertTrue(da4.getInfoOnComponent(3)=="c1da3");
5348 self.assertTrue(da4.getInfoOnComponent(4)=="c2da3");
5349 for i in xrange(35):
5350 self.assertAlmostEqual(expected1[i],da4.getIJ(0,i),10);
5352 # test of static method DataArrayInt::meld
5353 dai1=da1C.convertToIntArr();
5354 dai4=DataArrayInt.Meld(dai1,dai3);
5355 tmp=DataArrayInt.Meld([dai1,dai3]);
5356 self.assertTrue(dai4.isEqual(tmp))
5357 self.assertEqual(5,dai4.getNumberOfComponents());
5358 self.assertEqual(7,dai4.getNumberOfTuples());
5359 self.assertTrue(dai4.getInfoOnComponent(0)=="c0da1");
5360 self.assertTrue(dai4.getInfoOnComponent(1)=="c1da1");
5361 self.assertTrue(dai4.getInfoOnComponent(2)=="c0da3");
5362 self.assertTrue(dai4.getInfoOnComponent(3)=="c1da3");
5363 self.assertTrue(dai4.getInfoOnComponent(4)=="c2da3");
5364 for i in xrange(35):
5365 self.assertEqual(int(expected1[i]),dai4.getIJ(0,i));
5369 def testFieldMeld1(self):
5370 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
5371 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
5373 da1=DataArrayDouble.New();
5374 arr1=[12.,23.,34.,45.,56.]
5375 da1.setValues(arr1,5,1);
5376 da1.setInfoOnComponent(0,"aaa");
5378 f1.setTime(3.4,2,1);
5379 f1.checkCoherency();
5382 f2.setMesh(f1.getMesh());
5383 f2.checkCoherency();
5384 f2.changeNbOfComponents(2,5.);
5386 f2.getArray().setInfoOnComponent(0,"bbb");
5387 f2.getArray().setInfoOnComponent(1,"ccc");
5388 f2.checkCoherency();
5390 f3=MEDCouplingFieldDouble.MeldFields(f2,f1);
5391 f3.checkCoherency();
5392 self.assertEqual(5,f3.getNumberOfTuples());
5393 self.assertEqual(3,f3.getNumberOfComponents());
5394 self.assertTrue(f3.getArray().getInfoOnComponent(0)=="bbb");
5395 self.assertTrue(f3.getArray().getInfoOnComponent(1)=="ccc");
5396 self.assertTrue(f3.getArray().getInfoOnComponent(2)=="aaa");
5397 expected1=[5.,5.,12.,5.,5.,23.,5.,5.,34.,5.,5.,45.,5.,5.,56.]
5398 for i in xrange(15):
5399 self.assertAlmostEqual(expected1[i],f3.getIJ(0,i),12);
5401 time,dt,it=f3.getTime();
5402 self.assertAlmostEqual(3.4,time,14);
5403 self.assertEqual(2,dt);
5404 self.assertEqual(1,it);
5406 f4=f2.buildNewTimeReprFromThis(NO_TIME,False);
5407 f5=f1.buildNewTimeReprFromThis(NO_TIME,False);
5408 f6=MEDCouplingFieldDouble.MeldFields(f4,f5);
5409 f6.checkCoherency();
5410 self.assertEqual(5,f6.getNumberOfTuples());
5411 self.assertEqual(3,f6.getNumberOfComponents());
5412 self.assertTrue(f6.getArray().getInfoOnComponent(0)=="bbb");
5413 self.assertTrue(f6.getArray().getInfoOnComponent(1)=="ccc");
5414 self.assertTrue(f6.getArray().getInfoOnComponent(2)=="aaa");
5415 for i in xrange(15):
5416 self.assertAlmostEqual(expected1[i],f6.getIJ(0,i),12);
5421 def testMergeNodes2(self):
5422 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
5423 m2=MEDCouplingDataForTest.build2DTargetMesh_1();
5427 m3=MEDCouplingUMesh.MergeUMeshes([m1,m2]);
5428 da,b,newNbOfNodes=m3.mergeNodes2(0.01);
5429 self.assertEqual(9,m3.getNumberOfNodes());
5430 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]
5431 for i in xrange(18):
5432 self.assertAlmostEqual(expected1[i],m3.getCoords().getIJ(0,i),13);
5437 def testMergeField2(self):
5438 m=MEDCouplingDataForTest.build2DTargetMesh_1();
5439 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
5441 arr=DataArrayDouble.New();
5443 arr.fillWithValue(2.);
5445 f2=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
5447 arr=DataArrayDouble.New();
5449 arr.fillWithValue(5.);
5451 f3=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
5453 arr=DataArrayDouble.New();
5455 arr.fillWithValue(7.);
5458 f4=MEDCouplingFieldDouble.MergeFields([f1,f2,f3]);
5459 self.assertEqual(15,f4.getMesh().getNumberOfCells());
5460 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.]
5461 for i in xrange(30):
5462 self.assertAlmostEqual(expected1[i],f4.getIJ(0,i),13);
5467 def testDAIBuildComplement1(self):
5468 a=DataArrayInt.New();
5470 a.setValues(tab,4,1);
5471 b=a.buildComplement(12);
5472 self.assertEqual(8,b.getNumberOfTuples());
5473 self.assertEqual(1,b.getNumberOfComponents());
5474 expected1=[0,2,4,5,6,9,10,11]
5476 self.assertEqual(expected1[i],b.getIJ(0,i));
5480 def testDAIBuildUnion1(self):
5481 a=DataArrayInt.New();
5483 a.setValues(tab1,4,1);
5484 c=DataArrayInt.New();
5486 c.setValues(tab2,5,1);
5488 self.assertEqual(7,b.getNumberOfTuples());
5489 self.assertEqual(1,b.getNumberOfComponents());
5490 expected1=[0,1,3,5,7,8,18]
5492 self.assertEqual(expected1[i],b.getIJ(0,i));
5494 b=DataArrayInt.BuildUnion([a,c]);
5495 self.assertEqual(7,b.getNumberOfTuples());
5496 self.assertEqual(1,b.getNumberOfComponents());
5497 expected1=[0,1,3,5,7,8,18]
5499 self.assertEqual(expected1[i],b.getIJ(0,i));
5503 def testDAIBuildIntersection1(self):
5504 a=DataArrayInt.New();
5506 a.setValues(tab1,4,1);
5507 c=DataArrayInt.New();
5509 c.setValues(tab2,5,1);
5510 b=a.buildIntersection(c);
5511 self.assertEqual(2,b.getNumberOfTuples());
5512 self.assertEqual(1,b.getNumberOfComponents());
5515 self.assertEqual(expected1[i],b.getIJ(0,i));
5517 b=DataArrayInt.BuildIntersection([a,c]);
5518 self.assertEqual(2,b.getNumberOfTuples());
5519 self.assertEqual(1,b.getNumberOfComponents());
5522 self.assertEqual(expected1[i],b.getIJ(0,i));
5526 def testDAIDeltaShiftIndex1(self):
5527 a=DataArrayInt.New();
5528 tab=[1,3,6,7,7,9,15]
5529 a.setValues(tab,7,1);
5530 b=a.deltaShiftIndex();
5531 self.assertEqual(6,b.getNumberOfTuples());
5532 self.assertEqual(1,b.getNumberOfComponents());
5533 expected1=[2,3,1,0,2,6]
5535 self.assertEqual(expected1[i],b.getIJ(0,i));
5539 def testDaDoubleSelectByTupleIdSafe1(self):
5540 a=DataArrayDouble.New();
5541 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]
5542 a.setValues(arr1,7,2);
5543 a.setInfoOnComponent(0,"toto");
5544 a.setInfoOnComponent(1,"tata");
5547 b=a.selectByTupleIdSafe(arr2);
5548 self.assertEqual(5,b.getNumberOfTuples());
5549 self.assertEqual(2,b.getNumberOfComponents());
5550 self.assertTrue(b.getInfoOnComponent(0)=="toto");
5551 self.assertTrue(b.getInfoOnComponent(1)=="tata");
5552 expected1=[5.1,15.1,3.1,13.1,1.1,11.1,7.1,17.1,6.1,16.1]
5553 for i in xrange(10):
5554 self.assertAlmostEqual(expected1[i],b.getIJ(0,i),14);
5557 self.assertRaises(InterpKernelException,a.selectByTupleIdSafe,arr4);
5559 self.assertRaises(InterpKernelException,a.selectByTupleIdSafe,arr5);
5561 c=DataArrayInt.New();
5562 arr3=[1,11,2,12,3,13,4,14,5,15,6,16,7,17]
5563 c.setValues(arr3,7,2);
5564 c.setInfoOnComponent(0,"toto");
5565 c.setInfoOnComponent(1,"tata");
5566 d=c.selectByTupleIdSafe(arr2);
5567 self.assertEqual(5,d.getNumberOfTuples());
5568 self.assertEqual(2,d.getNumberOfComponents());
5569 self.assertTrue(d.getInfoOnComponent(0)=="toto");
5570 self.assertTrue(d.getInfoOnComponent(1)=="tata");
5571 expected2=[5,15,3,13,1,11,7,17,6,16]
5572 for i in xrange(10):
5573 self.assertEqual(expected2[i],d.getIJ(0,i));
5575 self.assertRaises(InterpKernelException,c.selectByTupleIdSafe,arr4);
5576 self.assertRaises(InterpKernelException,c.selectByTupleIdSafe,arr5);
5579 def testAreCellsIncludedIn1(self):
5580 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
5582 m2=m.buildPartOfMySelf(pt,True);
5583 ret,tmp=m.areCellsIncludedIn(m2,0)
5584 self.assertTrue(ret);
5585 self.assertEqual(2,tmp.getNumberOfTuples());
5586 self.assertEqual(1,tmp.getNumberOfComponents());
5587 self.assertEqual(pt[0],tmp.getIJ(0,0));
5588 self.assertEqual(pt[1],tmp.getIJ(0,1));
5589 ret,tmp=m2.areCellsIncludedIn(m,0)
5590 self.assertTrue(not ret);
5591 m3=MEDCouplingUMesh.MergeUMeshesOnSameCoords(m,m2)
5592 c,cI=m3.findCommonCells(2,m.getNumberOfCells())
5593 self.assertTrue(c.isEqual(DataArrayInt([1,5,3,6])))
5594 self.assertTrue(cI.isEqual(DataArrayInt([0,2,4])))
5597 def testSwigErrorProtection1(self):
5598 m=MEDCouplingDataForTest.build3DTargetMesh_1();
5599 m.rotate([0.,0.,0.],[0.3,0.6,1.2],0.37)
5600 m.rotate([0.,0.,0.],[0.3,6,1.2],0.37)
5601 self.assertRaises(InterpKernelException,m.rotate,[0.,0.,0.],(0.3,6,"1.2"),0.37)
5602 self.assertRaises(InterpKernelException,m.rotate,[0.,"0.",0.],[0.3,0.6,1.2],0.37)
5603 self.assertRaises(InterpKernelException,m.rotate,[0.,0.,0.],[0.3,'0.6',1.2],0.37)
5604 m2=m.buildPartOfMySelf([2,5],True)
5605 m3=m.buildPartOfMySelf((2,5),True)
5606 self.assertTrue(m2.isEqual(m3,1e-12))
5607 self.assertRaises(InterpKernelException,m.buildPartOfMySelf,[2,5.],True)
5608 da1=m.getCoords().keepSelectedComponents([1])
5609 da2=m.getCoords().keepSelectedComponents((1,))
5610 self.assertTrue(da1.isEqual(da2,1e-12))
5611 self.assertRaises(InterpKernelException,m.getCoords().keepSelectedComponents,["1"])
5614 def testDAIBuildSubstraction1(self):
5615 a=DataArrayInt.New()
5618 b=DataArrayInt.New()
5621 self.assertEqual([2,6,8],a.buildSubstraction(b).getValues())
5624 def testBuildOrthogonalField2(self):
5625 m=MEDCouplingDataForTest.build2DTargetMesh_1();
5626 d1=DataArrayInt.New();
5627 d2=DataArrayInt.New();
5628 d3=DataArrayInt.New();
5629 d4=DataArrayInt.New();
5630 m1=m.buildDescendingConnectivity(d1,d2,d3,d4);
5632 f1=m1.buildOrthogonalField();
5634 self.assertEqual(2,da1.getNumberOfComponents());
5635 self.assertEqual(13,da1.getNumberOfTuples());
5637 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.];
5638 for i in xrange(26):
5639 self.assertAlmostEqual(expected1[i],da1.getIJ(0,i),14);
5643 def testSwigErrorProtection2(self):
5644 m=MEDCouplingDataForTest.build2DTargetMesh_1();
5646 c=m.getNodalConnectivity()
5647 ci=m.getNodalConnectivityIndex()
5649 self.assertEqual(2,coo.getNumberOfComponents());
5650 self.assertEqual(6,ci.getNumberOfTuples());
5651 self.assertEqual(23,c.getNumberOfTuples());
5652 m=MEDCouplingDataForTest.build2DTargetMesh_1();
5653 f=m.getMeasureField(True)
5656 self.assertEqual(1,c.getNumberOfComponents());
5657 m=MEDCouplingCMesh.New()
5658 x=DataArrayDouble.New()
5659 x.setValues([1.,2.,4.],3,1)
5664 self.assertEqual(3,xx.getNumberOfTuples());
5666 m=MEDCouplingDataForTest.build2DTargetMesh_1();
5667 f=m.getMeasureField(True)
5671 self.assertEqual(5,m2.getNumberOfCells());
5674 def testUMInsertNextCell1(self):
5675 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 ]
5676 targetConn=[0,3,4,1, 1,4,2, 4,5,2, 6,7,4,3, 7,8,5,4]
5677 targetMesh=MEDCouplingUMesh.New();
5678 targetMesh.allocateCells(5);
5679 self.assertRaises(InterpKernelException,targetMesh.insertNextCell,NORM_QUAD4,4,targetConn[0:4])
5680 targetMesh.setMeshDimension(2);
5681 targetMesh.insertNextCell(NORM_QUAD4,4,targetConn[0:4])
5682 self.assertRaises(InterpKernelException,targetMesh.insertNextCell,NORM_TETRA4,4,targetConn[0:4])
5683 self.assertRaises(InterpKernelException,targetMesh.insertNextCell,NORM_SEG2,2,targetConn[0:2])
5684 self.assertRaises(InterpKernelException,targetMesh.insertNextCell,NORM_POINT1,1,targetConn[0:1])
5685 targetMesh.insertNextCell(NORM_TRI3,3,targetConn[4:7])
5686 targetMesh.insertNextCell(NORM_TRI3,3,targetConn[7:10])
5687 targetMesh.insertNextCell(NORM_QUAD4,4,targetConn[10:14])
5688 targetMesh.insertNextCell(NORM_QUAD4,4,targetConn[14:18])
5689 targetMesh.finishInsertingCells();
5690 myCoords=DataArrayDouble.New();
5691 myCoords.setValues(targetCoords,9,2);
5692 targetMesh.setCoords(myCoords);
5693 targetMesh.checkCoherency();
5696 def testFieldOperatorDivDiffComp1(self):
5697 m=MEDCouplingDataForTest.build2DTargetMesh_1();
5698 m1,d0,d1,d2,d3=m.buildDescendingConnectivity();
5700 f1=m1.buildOrthogonalField();
5701 arr1=[2.,3.,4.,5.,6.,7.,8.,9.,10.,11.,12.,13.,14.]
5702 arr=DataArrayDouble.New();
5703 arr.setValues(arr1,13,1);
5704 f2=MEDCouplingFieldDouble.New(ON_CELLS);
5707 f2.checkCoherency();
5710 self.assertRaises(InterpKernelException,f2.__div__,f1)
5711 f3.checkCoherency();
5713 #self.assertRaises(InterpKernelException,f2.__idiv__,f1) # mem leaks
5714 self.assertTrue(f1.isEqual(f3,1e-10,1e-10));
5715 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]
5716 for i in xrange(26):
5717 self.assertAlmostEqual(expected1[i],f3.getIJ(0,i),10);
5721 def testDARearrange1(self):
5722 da1=DataArrayInt.New();
5726 self.assertEqual(12,da1.getNbOfElems());
5727 self.assertEqual(1,da1.getNumberOfComponents());
5728 self.assertEqual(12,da1.getNumberOfTuples());
5730 self.assertEqual(12,da1.getNbOfElems());
5731 self.assertEqual(4,da1.getNumberOfComponents());
5732 self.assertEqual(3,da1.getNumberOfTuples());
5733 for i in xrange(12):
5734 self.assertEqual(i,da1.getIJ(0,i));
5737 self.assertEqual(12,da1.getNbOfElems());
5738 self.assertEqual(6,da1.getNumberOfComponents());
5739 self.assertEqual(2,da1.getNumberOfTuples());
5740 for i in xrange(12):
5741 self.assertEqual(i,da1.getIJ(0,i));
5743 self.assertRaises(InterpKernelException,da1.rearrange,7);
5746 self.assertEqual(12,da1.getNbOfElems());
5747 self.assertEqual(12,da1.getNumberOfComponents());
5748 self.assertEqual(1,da1.getNumberOfTuples());
5749 for i in xrange(12):
5750 self.assertEqual(i,da1.getIJ(0,i));
5753 self.assertEqual(12,da1.getNbOfElems());
5754 self.assertEqual(3,da1.getNumberOfComponents());
5755 self.assertEqual(4,da1.getNumberOfTuples());
5756 for i in xrange(12):
5757 self.assertEqual(i,da1.getIJ(0,i));
5759 da2=da1.convertToDblArr();
5760 st=da2.getHiddenCppPointer()
5762 self.assertEqual(12,da2.getNbOfElems());
5763 self.assertEqual(3,da2.getNumberOfComponents());
5764 self.assertEqual(4,da2.getNumberOfTuples());
5766 self.assertEqual(12,da2.getNbOfElems());
5767 self.assertEqual(4,da2.getNumberOfComponents());
5768 self.assertEqual(3,da2.getNumberOfTuples());
5769 for i in xrange(12):
5770 self.assertAlmostEqual(float(i),da2.getIJ(0,i),14);
5773 self.assertEqual(12,da2.getNbOfElems());
5774 self.assertEqual(6,da2.getNumberOfComponents());
5775 self.assertEqual(2,da2.getNumberOfTuples());
5776 for i in xrange(12):
5777 self.assertAlmostEqual(float(i),da2.getIJ(0,i),14);
5779 self.assertRaises(InterpKernelException,da2.rearrange,7);
5782 self.assertEqual(st,da2.getHiddenCppPointer())
5783 self.assertEqual(12,da2.getNbOfElems());
5784 self.assertEqual(1,da2.getNumberOfComponents());
5785 self.assertEqual(12,da2.getNumberOfTuples());
5786 for i in xrange(12):
5787 self.assertAlmostEqual(float(i),da2.getIJ(0,i),14);
5790 self.assertEqual(12,da2.getNbOfElems());
5791 self.assertEqual(3,da2.getNumberOfComponents());
5792 self.assertEqual(4,da2.getNumberOfTuples());
5793 for i in xrange(12):
5794 self.assertAlmostEqual(float(i),da2.getIJ(0,i),14);
5797 def testDARearrange2(self):
5798 da1=DataArrayInt.New();
5799 arr=[1,2,3,2,2,3,5,1,5,5,2,2]
5800 da1.setValues(arr,4,3);
5801 s=da1.getDifferentValues();
5802 expected1=DataArrayInt([1,2,3,5])
5803 self.assertTrue(expected1.isEqual(s));
5806 def testSwigErrorProtection3(self):
5807 da=DataArrayInt.New()
5808 da.setValues([1,2,3,4,0,0,0,0,0,0,0,0],4,3)
5809 self.assertEqual([1, 2, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0],da.getValues())
5810 self.assertEqual(3,da.getNumberOfComponents());
5811 self.assertEqual(4,da.getNumberOfTuples());
5812 da=DataArrayInt.New()
5813 da.setValues(((1,2,3),(4,4,3),(0,0,0),(0,0,0)),4,3)
5814 self.assertEqual([1, 2, 3, 4, 4, 3, 0, 0, 0, 0, 0, 0],da.getValues())
5815 self.assertEqual(3,da.getNumberOfComponents());
5816 self.assertEqual(4,da.getNumberOfTuples());
5817 da.setValues((10*[1]+290*[2])[:12],4,3)
5818 self.assertEqual(10*[1]+[2,2],da.getValues())
5819 self.assertEqual(3,da.getNumberOfComponents());
5820 self.assertEqual(4,da.getNumberOfTuples());
5822 da=DataArrayDouble.New()
5823 da.setValues([1,2,3.,4,0,0,0,0,0,0,0,0],4,3)
5824 self.assertEqual([1., 2., 3., 4., 0., 0., 0., 0., 0., 0., 0., 0.],da.getValues())
5825 self.assertEqual(3,da.getNumberOfComponents());
5826 self.assertEqual(4,da.getNumberOfTuples());
5827 da=DataArrayDouble.New()
5828 da.setValues(((1,2,3),(4.,4,3),(0,0,0),(0,0,0)),4,3)
5829 self.assertEqual([1., 2., 3., 4., 4., 3., 0., 0., 0., 0., 0., 0.],da.getValues())
5830 self.assertEqual(3,da.getNumberOfComponents());
5831 self.assertEqual(4,da.getNumberOfTuples());
5832 da.setValues((10*[1]+290*[2])[:12],4,3)
5833 self.assertEqual(10*[1.]+[2.,2.],da.getValues())
5834 self.assertEqual(3,da.getNumberOfComponents());
5835 self.assertEqual(4,da.getNumberOfTuples());
5838 def testDAIBuildPermutationArr1(self):
5839 a=DataArrayInt.New()
5840 a.setValues([4,5,6,7,8],5,1)
5841 b=DataArrayInt.New()
5842 b.setValues([5,4,8,6,7],5,1)
5843 c=a.buildPermutationArr(b)
5844 self.assertEqual([1,0,4,2,3],c.getValues())
5845 self.assertTrue(a.isEqualWithoutConsideringStrAndOrder(b))
5847 self.assertTrue(not a.isEqualWithoutConsideringStrAndOrder(b))
5848 self.assertRaises(InterpKernelException,a.buildPermutationArr,b)
5851 b.setIJ(4,0,4)#a==[4,5,6,4,8] and b==[5,4,8,6,4]
5852 self.assertTrue(a.isEqualWithoutConsideringStrAndOrder(b))
5853 c=a.buildPermutationArr(b)
5854 self.assertEqual([1,3,4,2,3],c.getValues())
5855 d=b.convertToDblArr()
5858 self.assertEqual(expect3,b.getValues())
5860 self.assertEqual(5,d.getNumberOfTuples());
5861 self.assertEqual(1,d.getNumberOfComponents());
5863 self.assertAlmostEqual(float(expect3[i]),d.getIJ(i,0),14);
5867 def testAreCellsIncludedIn2(self):
5869 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
5870 m2=m.buildPartOfMySelf([],True);
5871 self.assertEqual(0,m2.getNumberOfCells());
5872 self.assertEqual(3,m2.getSpaceDimension());
5873 self.assertEqual(2,m2.getMeshDimension());
5875 test,tmp=m.areCellsIncludedIn(m2,0)
5876 self.assertTrue(test);
5877 self.assertEqual(myName,tmp.getName());
5878 self.assertEqual(0,tmp.getNumberOfTuples())
5879 self.assertEqual(1,tmp.getNumberOfComponents())
5882 def testUMeshGetPartBarycenterAndOwner1(self):
5883 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
5885 part=DataArrayInt.New();
5886 part.setValues(part1,3,1);
5887 b=m1.getPartBarycenterAndOwner(part);
5888 self.assertEqual(2,b.getNumberOfComponents());
5889 self.assertEqual(3,b.getNumberOfTuples());
5890 expected1=[0.36666666666666665,-0.13333333333333333,-0.05,-0.05,0.45,0.45];
5892 self.assertAlmostEqual(expected1[i],b.getIJ(0,i),14);
5896 def testUMeshGetPartMeasureField1(self):
5897 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
5899 part=DataArrayInt.New();
5900 part.setValues(part1,3,1);
5901 b=m1.getPartMeasureField(True,part);
5902 self.assertEqual(1,b.getNumberOfComponents());
5903 self.assertEqual(3,b.getNumberOfTuples());
5904 expected1=[0.125,0.25,0.25];
5906 self.assertAlmostEqual(expected1[i],b.getIJ(0,i),14);
5910 def testUMeshBuildPartOrthogonalField1(self):
5911 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
5912 m1.changeSpaceDimension(3);
5914 part=DataArrayInt.New();
5915 part.setValues(part1,3,1);
5916 b=m1.buildPartOrthogonalField(part);
5917 self.assertEqual(3,b.getArray().getNumberOfComponents());
5918 self.assertEqual(3,b.getArray().getNumberOfTuples());
5919 expected1=[0.,0.,-1.,0.,0.,-1.,0.,0.,-1.];
5921 self.assertAlmostEqual(expected1[i],b.getArray().getIJ(0,i),14);
5925 def testUMeshGetTypesOfPart1(self):
5926 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
5928 p1=DataArrayInt.New()
5929 p1.setValues(part1,3,1)
5930 s=m1.getTypesOfPart(p1);
5931 self.assertEqual([NORM_QUAD4],s);
5933 p2=DataArrayInt.New()
5934 p2.setValues(part2,4,1)
5935 s=m1.getTypesOfPart(p2);
5936 self.assertEqual([NORM_TRI3],s);
5938 p3=DataArrayInt.New()
5939 p3.setValues(part3,3,1)
5940 s=m1.getTypesOfPart(p3);
5941 self.assertEqual(s,[NORM_TRI3,NORM_QUAD4]);
5944 def testUMeshKeepCellIdsByType1(self):
5945 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
5947 p1=DataArrayInt.New()
5948 p1.setValues(part1,3,1)
5950 a=m1.keepCellIdsByType(NORM_TRI3,p1);
5951 self.assertEqual("p1",a.getName())
5952 self.assertEqual(1,a.getNumberOfComponents());
5953 self.assertEqual(0,a.getNumberOfTuples());
5956 p2=DataArrayInt.New()
5957 p2.setValues(part2,5,1)
5959 a=m1.keepCellIdsByType(NORM_TRI3,p2);
5960 self.assertEqual("p2",a.getName())
5961 self.assertEqual(1,a.getNumberOfComponents());
5962 self.assertEqual(2,a.getNumberOfTuples());
5963 self.assertEqual(2,a.getIJ(0,0));
5964 self.assertEqual(2,a.getIJ(1,0));
5966 a=m1.keepCellIdsByType(NORM_QUAD4,p2);
5967 self.assertEqual("p2",a.getName())
5968 self.assertEqual(1,a.getNumberOfComponents());
5969 self.assertEqual(3,a.getNumberOfTuples());
5970 self.assertEqual(3,a.getIJ(0,0));
5971 self.assertEqual(0,a.getIJ(1,0));
5972 self.assertEqual(4,a.getIJ(2,0));
5975 def testSwigErrorDaIntSelectByTupleId1(self):
5976 a=DataArrayInt.New();
5977 arr1=[1,11,2,12,3,13,4,14,5,15,6,16,7,17]
5978 a.setValues(arr1,7,2);
5979 a.setInfoOnComponent(0,"toto");
5980 a.setInfoOnComponent(1,"tata");
5983 b=a.selectByTupleId(arr2);
5984 self.assertEqual(5,b.getNumberOfTuples());
5985 self.assertEqual(2,b.getNumberOfComponents());
5986 self.assertTrue(b.getInfoOnComponent(0)=="toto");
5987 self.assertTrue(b.getInfoOnComponent(1)=="tata");
5988 expected1=[5,15,3,13,1,11,7,17,6,16]
5989 self.assertEqual(expected1,b.getValues())
5991 a2=DataArrayInt.New()
5992 a2.setValues(arr2,5,1)
5993 b=a.selectByTupleId(a2);
5994 self.assertEqual(5,b.getNumberOfTuples());
5995 self.assertEqual(2,b.getNumberOfComponents());
5996 self.assertTrue(b.getInfoOnComponent(0)=="toto");
5997 self.assertTrue(b.getInfoOnComponent(1)=="tata");
5998 expected1=[5,15,3,13,1,11,7,17,6,16]
5999 self.assertEqual(expected1,b.getValues())
6002 def testSwigErrorRenum(self):
6003 da=DataArrayDouble.New()
6004 da.setValues([7.,107.,8.,108.,9.,109.,10.,110.,11.,111.,12.,112.,13.,113.,14.,114.,15.,115.,16.,116.],10,2)
6005 d=DataArrayInt.New()
6006 d.setValues([0,2,3,1,4,5,6,8,7,9],10,1)
6007 da.renumberInPlace(d)
6011 def testSwigGetItem1(self):
6012 da=DataArrayInt.New()
6017 da.setInfoOnComponent(0,"X [m]")
6018 da.setInfoOnComponent(1,"Y [m]")
6019 da.setInfoOnComponent(2,"Z [km]")
6021 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())
6023 self.assertEqual([19, 20, 21],da2.getValues())
6026 except InterpKernelException as e:
6027 self.assertTrue(True)
6029 self.assertTrue(False)
6032 self.assertEqual([24, 27, 30, 33, 36, 39, 42, 45, 48],da2.getValues())
6034 self.assertEqual([22, 23, 24, 25, 26, 27, 28, 29, 30],da2.getValues())
6036 self.assertTrue(da2.isEqual(da))
6038 self.assertTrue(da2.isEqual(da))
6041 except InterpKernelException as e:
6042 self.assertTrue(True)
6044 self.assertTrue(False)
6046 self.assertTrue(da[5:8,-2].isEqualWithoutConsideringStr(DataArrayInt([23,26,29])))
6048 self.assertEqual([22, 25, 28],da2.getValues())
6051 except InterpKernelException as e:
6052 self.assertTrue(True)
6054 self.assertTrue(False)
6057 self.assertEqual([],da2.getValues())
6060 def testSwigGetItem2(self):
6061 da=DataArrayDouble.New()
6066 da.setInfoOnComponent(0,"X [m]")
6067 da.setInfoOnComponent(1,"Y [m]")
6068 da.setInfoOnComponent(2,"Z [km]")
6070 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())
6072 self.assertEqual([19., 20., 21],da2.getValues())
6075 except InterpKernelException as e:
6076 self.assertTrue(True)
6078 self.assertTrue(False)
6081 self.assertEqual([24., 27., 30., 33., 36., 39., 42., 45., 48.],da2.getValues())
6083 self.assertEqual([22., 23., 24., 25., 26., 27., 28., 29., 30.],da2.getValues())
6085 self.assertTrue(da2.isEqual(da,1e-12))
6087 self.assertTrue(da2.isEqual(da,1e-12))
6090 except InterpKernelException as e:
6091 self.assertTrue(True)
6093 self.assertTrue(False)
6095 self.assertTrue(da[5:8,-2].isEqualWithoutConsideringStr(DataArrayDouble([23.,26.,29.]),1e-12))
6097 self.assertEqual([22., 25., 28.],da2.getValues())
6100 except InterpKernelException as e:
6101 self.assertTrue(True)
6103 self.assertTrue(False)
6106 self.assertEqual([],da2.getValues())
6109 def testSwigSetItem1(self):
6110 da=DataArrayInt.New()
6114 da.setInfoOnComponent(0,"X [m]") ; da.setInfoOnComponent(1,"Y [km]") ; da.setInfoOnComponent(2,"Y [m]")
6115 da.setInfoOnComponent(3,"Z [W]") ; da.setInfoOnComponent(4,"ZZ [km]") ;
6117 self.assertEqual([7, 8, 3, 10, 11, 12, 13, 3, 15, 16, 17, 18, 3, 20, 21, 22, 23, 3, 25, 26],da.getValues())
6118 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6120 self.assertEqual([7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3, 3, 3, 3, 3, 22, 23, 24, 25, 26],da.getValues())
6121 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6123 self.assertEqual([-1, -1, -1, -1, -1, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, -1, -1, -1, -1, -1],da.getValues())
6124 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6126 self.assertEqual([7, -3, 9, -3, -3, 12, -3, 14, -3, -3, 17, -3, 19, -3, -3, 22, -3, 24, -3, -3],da.getValues())
6127 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6128 da2=DataArrayInt.New() ; da2.setValues([0,2,3],3,1)
6130 self.assertEqual([-7, -7, -7, -7, -7, 12, 13, 14, 15, 16, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7],da.getValues())
6131 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6133 self.assertEqual([7, 8, 9, -7, -7, 12, 13, 14, 15, 16, 17, 18, 19, -7, -7, 22, 23, 24, -7, -7],da.getValues())
6134 # Let's test with DAI right hand side
6135 da1=DataArrayInt.New()
6136 da1.setValues([25,26,27,125,126,127],2,3)
6138 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6140 self.assertEqual([7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 25, 26, 27, 21, 22, 125, 126, 127, 26],da.getValues())
6141 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6142 da[1:,3]=[225,226,227]
6143 self.assertEqual([7, 8, 9, 10, 11, 12, 13, 14, 225, 16, 17, 18, 19, 226, 21, 22, 23, 24, 227, 26],da.getValues())
6144 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6145 da[1,2:]=[225,226,227]
6146 self.assertEqual([7, 8, 9, 10, 11, 12, 13, 225, 226, 227, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26],da.getValues())
6147 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6148 da[da2,-2:]=[88,99,1010,1111,1212,1313]
6149 self.assertEqual([7, 8, 9, 88, 99, 12, 13, 14, 15, 16, 17, 18, 19, 1010, 1111, 22, 23, 24, 1212, 1313],da.getValues())
6150 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6151 da3=DataArrayInt.New(); da3.setValues([88,99,1010,1111,1212,1313],3,2)
6153 self.assertEqual([7, 8, 9, 88, 99, 12, 13, 14, 15, 16, 17, 18, 19, 1010, 1111, 22, 23, 24, 1212, 1313],da.getValues())
6154 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6156 self.assertEqual([88, 8, 99, 10, 11, 12, 13, 14, 15, 16, 1010, 18, 1111, 20, 21, 1212, 23, 1313, 25, 26],da.getValues())
6157 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6159 self.assertEqual([88, 8, 99, 10, 11, 12, 13, 14, 15, 16, 1010, 18, 1111, 20, 21, 1212, 23, 1313, 25, 26],da.getValues())
6160 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6162 self.assertEqual([-8, 8, -8, 10, 11, 12, 13, 14, 15, 16, -8, 18, -8, 20, 21, -8, 23, -8, 25, 26],da.getValues())
6165 def testSwigSetItem2(self):
6166 da=DataArrayDouble.New()
6170 da.setInfoOnComponent(0,"X [m]") ; da.setInfoOnComponent(1,"Y [km]") ; da.setInfoOnComponent(2,"Y [m]")
6171 da.setInfoOnComponent(3,"Z [W]") ; da.setInfoOnComponent(4,"ZZ [km]") ;
6173 self.assertEqual([7., 8., 3., 10., 11., 12., 13., 3., 15., 16., 17., 18., 3., 20., 21., 22., 23., 3., 25., 26.],da.getValues())
6174 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6176 self.assertEqual([7., 8., 9., 10., 11., 12., 13., 14., 15., 16., 3., 3., 3., 3., 3., 22., 23., 24., 25., 26.],da.getValues())
6177 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6179 self.assertEqual([-1., -1., -1., -1., -1., 12., 13., 14., 15., 16., 17., 18., 19., 20., 21., -1., -1., -1., -1., -1.],da.getValues())
6180 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6182 self.assertEqual([7., -3., 9., -3., -3., 12., -3., 14., -3., -3., 17., -3., 19., -3., -3., 22., -3., 24., -3., -3.],da.getValues())
6183 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6184 da2=DataArrayInt.New() ; da2.setValues([0,2,3],3,1)
6186 self.assertEqual([-7., -7., -7., -7., -7., 12., 13., 14., 15., 16., -7., -7., -7., -7., -7., -7., -7., -7., -7., -7.],da.getValues())
6187 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6189 self.assertEqual([7., 8., 9., -7., -7., 12., 13., 14., 15., 16., 17., 18., 19., -7., -7., 22., 23., 24., -7., -7.],da.getValues())
6190 # Let's test with DAI right hand side
6191 da1=DataArrayDouble.New()
6192 da1.setValues([25,26,27,125,126,127],2,3)
6194 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6196 self.assertEqual([7., 8., 9., 10., 11., 12., 13., 14., 15., 16., 17., 25., 26., 27., 21., 22., 125., 126., 127., 26.],da.getValues())
6197 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6198 da[1:,3]=[225.,226.,227.]
6199 self.assertEqual([7., 8., 9., 10., 11., 12., 13., 14., 225., 16., 17., 18., 19., 226., 21., 22., 23., 24., 227., 26.],da.getValues())
6200 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6201 da[1,2:]=[225,226,227]
6202 self.assertEqual([7., 8., 9., 10., 11., 12., 13., 225., 226., 227., 17., 18., 19., 20., 21., 22., 23., 24., 25., 26.],da.getValues())
6203 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6204 da[da2,-2:]=[88,99,1010,1111,1212,1313]
6205 self.assertEqual([7., 8., 9., 88., 99., 12., 13., 14., 15., 16., 17., 18., 19., 1010., 1111., 22., 23., 24., 1212., 1313.],da.getValues())
6206 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6207 da3=DataArrayDouble.New(); da3.setValues([88,99,1010,1111,1212,1313],3,2)
6209 self.assertEqual([7., 8., 9., 88., 99., 12., 13., 14., 15., 16., 17., 18., 19., 1010., 1111., 22., 23., 24., 1212., 1313.],da.getValues())
6210 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6212 self.assertEqual([88., 8., 99., 10., 11., 12., 13., 14., 15., 16., 1010., 18., 1111., 20., 21., 1212., 23., 1313., 25., 26.],da.getValues())
6213 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6215 self.assertEqual([88., 8., 99., 10., 11., 12., 13., 14., 15., 16., 1010., 18., 1111., 20., 21., 1212., 23., 1313., 25., 26.],da.getValues())
6216 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6218 self.assertEqual([-8., 8., -8., 10., 11., 12., 13., 14., 15., 16., -8., 18., -8., 20., 21., -8., 23., -8., 25., 26.],da.getValues())
6221 def testSwigDADOp(self):
6222 da=DataArrayDouble.New()
6225 da1=DataArrayDouble.New()
6229 self.assertEqual([15., 17., 19., 21., 23., 25., 27., 29., 31., 33., 35., 37.],da2.getValues())
6232 self.assertTrue(da2.isEqual(da3,1e-12))
6234 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())
6236 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())
6238 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())
6240 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())
6242 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())
6244 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())
6247 self.assertTrue(da4.isUniform(1.,1e-12))
6248 st1=da.getHiddenCppPointer()
6250 st2=da.getHiddenCppPointer()
6251 self.assertEqual(st1,st2)
6252 self.assertTrue(da.isEqual(da1,1e-12))
6254 st2=da.getHiddenCppPointer()
6255 self.assertEqual(st1,st2)
6256 self.assertEqual(range(12),da.getValues())
6258 st2=da.getHiddenCppPointer()
6259 self.assertEqual(st1,st2)
6260 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())
6262 st2=da.getHiddenCppPointer()
6263 self.assertEqual(st1,st2)
6264 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())
6266 st2=da.getHiddenCppPointer()
6267 self.assertEqual(st1,st2)
6268 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())
6270 self.assertEqual(st1,st2)
6271 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())
6273 st2=da.getHiddenCppPointer()
6274 self.assertEqual(st1,st2)
6275 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())
6277 da5=DataArrayDouble.New()
6278 da5.setValues([5.,4.,3.,2.],4,1)
6279 da*=da5 # it works with unmathing number of compo
6280 st2=da.getHiddenCppPointer()
6281 self.assertEqual(st1,st2)
6282 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())
6287 ids=DataArrayInt.New()
6288 ids.setValues([3,4,7],3,1)
6289 da[ids,:]=[5.,8.,9.]
6290 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())
6292 da.rearrange(1) ; da.iota(7) ; da.rearrange(3)
6294 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())
6297 def testSwigDAIOp(self):
6298 da=DataArrayInt.New()
6301 da1=DataArrayInt.New()
6305 self.assertEqual([15,17,19,21,23,25,27,29,31,33,35,37],da2.getValues())
6308 self.assertTrue(da2.isEqual(da3))
6310 self.assertEqual([6,7,8,9,10,11,12,13,14,15,16,17],da2.getValues())
6312 self.assertEqual([-6,-7,-8,-9,-10,-11,-12,-13,-14,-15,-16,-17],da2.getValues())
6314 self.assertEqual([21,24,27,30,33,36,39,42,45,48,51,54.0],da2.getValues())
6316 self.assertEqual([21,24,27,30,33,36,39,42,45,48,51,54.0],da2.getValues())
6318 self.assertEqual([56,72,90,110,132,156,182,210,240,272,306,342.0],da2.getValues())
6320 self.assertEqual([1,2,2,2,2,3,3,3,3,4,4,4],da2.getValues())
6323 self.assertTrue(da4.isUniform(0))
6324 st1=da.getHiddenCppPointer()
6326 st2=da.getHiddenCppPointer()
6327 self.assertEqual(st1,st2)
6328 self.assertTrue(da.isEqual(da1))
6330 st2=da.getHiddenCppPointer()
6331 self.assertEqual(st1,st2)
6332 self.assertEqual(range(12),da.getValues())
6334 st2=da.getHiddenCppPointer()
6335 self.assertEqual(st1,st2)
6336 self.assertEqual([8,10,12,14,16,18,20,22,24,26,28,30],da.getValues())
6338 st2=da.getHiddenCppPointer()
6339 self.assertEqual(st1,st2)
6340 self.assertEqual([4,5,6,7,8,9,10,11,12,13,14,15],da.getValues())
6342 st2=da.getHiddenCppPointer()
6343 self.assertEqual(st1,st2)
6344 self.assertEqual([32,45,60,77,96,117,140,165,192,221,252,285],da.getValues())
6346 self.assertEqual(st1,st2)
6347 self.assertEqual([4,5,6,7,8,9,10,11,12,13,14,15],da.getValues())
6349 st2=da.getHiddenCppPointer()
6350 self.assertEqual(st1,st2)
6351 self.assertEqual([2,2, 3,3, 4,4, 5,5, 6,6, 7,7],da.getValues())
6353 da5=DataArrayInt.New()
6354 da5.setValues([5,4,3,2],4,1)
6355 da*=da5 # it works with unmathing number of compo
6356 st2=da.getHiddenCppPointer()
6357 self.assertEqual(st1,st2)
6358 self.assertEqual([10,10, 15,12,16,16,15,15, 18,12,14,14],da.getValues())
6360 st2=da.getHiddenCppPointer()
6361 self.assertEqual(st1,st2)
6362 self.assertEqual([4,4,3,0,4,4,3,3,0,0,2,2],da.getValues())
6367 ids=DataArrayInt.New()
6368 ids.setValues([3,4,7],3,1)
6370 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())
6372 da.rearrange(1) ; da.iota(7) ; da.rearrange(3)
6374 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())
6377 def testSwigDAIOp2(self):
6378 da=DataArrayInt.New()
6379 st=da.getHiddenCppPointer()
6389 self.assertEqual(st,da.getHiddenCppPointer())
6390 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])
6393 def testSwigDAIOp3(self):
6394 da=DataArrayInt.New()
6395 self.assertRaises(InterpKernelException,da.__len__)
6396 self.assertRaises(InterpKernelException,da.__int__)
6398 self.assertTrue(False)
6401 da.rearrange(1) ; da.fillWithZero()
6403 self.assertEqual(36,len(da));
6406 self.assertRaises(InterpKernelException,tmp.__int__)
6407 self.assertEqual(12,len(da));
6409 for elt in enumerate(l):
6412 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]
6413 self.assertEqual(ref,da.getValues());
6415 l=[int(elt) for elt in l1]
6416 self.assertEqual(ref,da.getValues());
6417 self.assertEqual(11,int(da[-1:]))
6420 def testSwigDADOp3(self):
6421 da=DataArrayDouble.New()
6422 self.assertRaises(InterpKernelException,da.__len__)
6423 self.assertRaises(InterpKernelException,da.__float__)
6425 self.assertTrue(False)
6428 da.rearrange(1) ; da.fillWithZero()
6430 self.assertEqual(36,len(da));
6433 self.assertRaises(InterpKernelException,tmp.__float__)
6434 self.assertEqual(12,len(da));
6436 for elt in enumerate(l):
6439 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.]
6440 self.assertEqual(ref,da.getValues());
6442 l=[float(elt) for elt in l1]
6443 self.assertEqual(ref,da.getValues());
6444 self.assertEqual(11.,float(da[-1:]))
6447 def testSwigDataArrayIntIterator1(self):
6448 da=DataArrayInt.New()
6452 # __getitem__ testing
6457 self.assertEqual([3, 4, 6, 7, 9, 10, 12, 13],li)
6462 self.assertEqual([4, 7, 10, 13],li)
6467 self.assertEqual([4, 3, 2, 7, 6, 5, 10, 9, 8, 13, 12, 11],li)
6468 # __setitem__ testing
6470 da2=DataArrayInt.New()
6480 self.assertTrue(da.isEqual(da2))
6488 self.assertTrue(da.isUniform(5))
6495 self.assertEqual([8, 9, 12, 8, 9, 12, 8, 9, 12, 8, 9, 12],da.getValues())
6502 self.assertEqual([2, 3, 7, 5, 6, 7, 8, 9, 7, 11, 12, 7],da.getValues())
6505 def testSwigDataArrayDoubleIterator1(self):
6506 da=DataArrayDouble.New()
6510 # __getitem__ testing
6515 self.assertEqual([3, 4, 6, 7, 9, 10, 12, 13],li)
6520 self.assertEqual([4, 7, 10, 13],li)
6525 self.assertEqual([4, 3, 2, 7, 6, 5, 10, 9, 8, 13, 12, 11],li)
6526 # __setitem__ testing
6528 da2=DataArrayDouble.New()
6538 self.assertTrue(da.isEqual(da2,1e-12))
6546 self.assertTrue(da.isUniform(5,1e-12))
6553 self.assertEqual([8, 9, 12, 8, 9, 12, 8, 9, 12, 8, 9, 12],da.getValues())
6560 self.assertEqual([2, 3, 7, 5, 6, 7, 8, 9, 7, 11, 12, 7],da.getValues())
6563 def testSwigUMeshIterator1(self):
6564 m=MEDCouplingDataForTest.build2DTargetMesh_1()
6568 li1+=cell.getAllConn()[1:]
6569 li2+=[cell.getType()]
6571 self.assertEqual(li1,[0, 3, 4, 1, 1, 4, 2, 4, 5, 2, 6, 7, 4, 3, 7, 8, 5, 4])
6572 self.assertEqual(li2,[4, 3, 3, 4, 4])
6575 def testSwigUMeshIterator2(self):
6576 m=MEDCouplingDataForTest.build2DTargetMesh_1()
6577 self.assertRaises(InterpKernelException,m.cellsByType);
6578 m.rearrange2ConsecutiveCellTypes()
6582 for cellsByType in m.cellsByType():
6583 li1.append(cellsByType.getType())
6584 li2.append(cellsByType.getNumberOfElems())
6586 for cell in cellsByType:
6589 t[1]=cell.getAllConn()[1:]
6594 self.assertEqual(li1,[4, 3])
6595 self.assertEqual(li2,[3, 2])
6596 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)]]])
6599 def testDAIAggregateMulti1(self):
6600 a=DataArrayInt.New()
6601 a.setValues(range(4),2,2)
6603 b=DataArrayInt.New()
6604 b.setValues(range(6),3,2)
6605 c=DataArrayInt.Aggregate([a,b])
6606 self.assertEqual(range(4)+range(6),c.getValues())
6607 self.assertEqual("aa",c.getName())
6608 self.assertEqual(5,c.getNumberOfTuples())
6609 self.assertEqual(2,c.getNumberOfComponents())
6612 def testMergeUMeshes2(self):
6613 m1=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
6614 m2=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
6615 m3=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
6618 m2_2=m2.buildPartOfMySelf(vec1,False);
6620 m3_2=m3.buildPartOfMySelf(vec2,False);
6624 self.assertRaises(InterpKernelException,MEDCouplingUMesh.MergeUMeshes,ms+[None]);
6625 self.assertRaises(InterpKernelException,MEDCouplingUMesh.MergeUMeshes,ms+[3.4])
6626 m4=MEDCouplingUMesh.MergeUMeshes(ms);
6627 m4.checkCoherency();
6628 self.assertEqual(10,m4.getNumberOfCells());
6629 self.assertEqual(20,m4.getNumberOfNodes());
6630 self.assertEqual(45,m4.getMeshLength());
6631 m4bis=MEDCouplingMesh.MergeMeshes(ms);
6632 self.assertTrue(m4.isEqual(m4bis,1e-12))
6636 m4_1=m4.buildPartOfMySelf(vec3,False);
6637 m4_1.setName(m1.getName());
6638 self.assertTrue(m4_1.isEqual(m1,1e-12));
6641 m4_2=m4.buildPartOfMySelf(vec4,False);
6642 cellCor,nodeCor=m4_2.checkGeoEquivalWith(m2_2,10,1e-12);
6645 m4_3=m4.buildPartOfMySelf(vec5,False);
6646 self.assertEqual(2,m4_3.getNumberOfCells());
6647 self.assertEqual(3,m4_3.getNumberOfNodes());
6649 m4_3.setName(m3_2.getName());
6650 self.assertTrue(m4_3.isEqual(m3_2,1e-12));
6654 def testBuild0DMeshFromCoords1(self):
6655 sourceCoords=[-0.3,-0.3,0., 0.7,-0.3,0., -0.3,0.7,0., 0.7,0.7,0.]
6656 coo=DataArrayDouble.New();
6657 coo.setValues(sourceCoords,4,3);
6658 coo.setName("My0D");
6659 m=MEDCouplingUMesh.Build0DMeshFromCoords(coo);
6661 self.assertEqual(4,m.getNumberOfNodes());
6662 self.assertEqual(4,m.getNumberOfCells());
6663 self.assertEqual(3,m.getSpaceDimension());
6664 self.assertEqual(0,m.getMeshDimension());
6665 types1=m.getAllGeoTypes();
6666 self.assertEqual([NORM_POINT1],types1);
6668 conn=m.getNodeIdsOfCell(i);
6669 self.assertEqual([i],conn);
6670 self.assertTrue(NORM_POINT1==m.getTypeOfCell(i));
6672 self.assertEqual(m.getName(),"My0D");
6675 def testDescriptionInMeshTimeUnit1(self):
6677 m=MEDCouplingDataForTest.build2DTargetMesh_1();
6678 m.setDescription(text1);
6679 self.assertEqual(m.getDescription(),text1);
6681 self.assertTrue(m.isEqual(m2,1e-12));
6682 self.assertEqual(m2.getDescription(),text1);
6683 m2.setDescription("ggg");
6684 self.assertTrue(not m.isEqual(m2,1e-12));
6686 f=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
6687 f.setTimeUnit(text1);
6688 self.assertEqual(f.getTimeUnit(),text1);
6690 self.assertEqual(f2.getTimeUnit(),text1);
6694 def testMultiFields1(self):
6695 mfs=MEDCouplingDataForTest.buildMultiFields_1();
6697 dms,refs=mfs.getDifferentMeshes()
6698 das=mfs.getArrays();
6699 das2,refs2=mfs.getDifferentArrays()
6700 self.assertEqual(5,len(mfs.getFields()))
6701 self.assertEqual(1,len(mfs.getFields()[0].getArrays()));
6702 self.assertEqual(2,len(mfs.getFields()[1].getArrays()));
6703 self.assertEqual(1,len(mfs.getFields()[2].getArrays()));
6704 self.assertEqual(1,len(mfs.getFields()[3].getArrays()));
6705 self.assertEqual(1,len(mfs.getFields()[4].getArrays()));
6706 self.assertEqual(5,len(ms));
6707 self.assertEqual(2,len(dms));
6708 self.assertEqual(6,len(das));
6709 self.assertEqual(5,len(das2));
6711 self.assertTrue(mfs.isEqual(mfs2,1e-12,1e-12))
6714 def testFieldOverTime1(self):
6715 fs=MEDCouplingDataForTest.buildMultiFields_2();
6716 self.assertRaises(InterpKernelException,MEDCouplingFieldOverTime.New,fs);
6717 f4bis=fs[4].buildNewTimeReprFromThis(ONE_TIME,False);
6719 self.assertRaises(InterpKernelException,MEDCouplingFieldOverTime.New,fs);
6720 f4bis.setTime(2.7,20,21);
6721 fot=MEDCouplingFieldOverTime.New(fs);
6722 dt=fot.getDefinitionTimeZone();
6723 hs=dt.getHotSpotsTime();
6724 self.assertEqual(6,len(hs));
6725 expected1=[0.2,0.7,1.2,1.35,1.7,2.7]
6727 self.assertAlmostEqual(expected1[i],hs[i],12);
6729 meshId,arrId,arrIdInField,fieldId=dt.getIdsOnTimeRight(0.2);
6730 self.assertEqual(0,meshId);
6731 self.assertEqual(0,arrId);
6732 self.assertEqual(0,arrIdInField);
6733 self.assertEqual(0,fieldId);
6735 meshId,arrId,arrIdInField,fieldId=dt.getIdsOnTimeRight(0.7);
6736 self.assertEqual(0,meshId);
6737 self.assertEqual(1,arrId);
6738 self.assertEqual(0,arrIdInField);
6739 self.assertEqual(1,fieldId);
6741 meshId,arrId,arrIdInField,fieldId=dt.getIdsOnTimeLeft(1.2);#**** WARNING left here
6742 self.assertEqual(0,meshId);
6743 self.assertEqual(2,arrId);
6744 self.assertEqual(1,arrIdInField);
6745 self.assertEqual(1,fieldId);
6747 meshId,arrId,arrIdInField,fieldId=dt.getIdsOnTimeRight(1.2);#**** WARNING right again here
6748 self.assertEqual(1,meshId);
6749 self.assertEqual(3,arrId);
6750 self.assertEqual(0,arrIdInField);
6751 self.assertEqual(2,fieldId);
6753 meshId,arrId,arrIdInField,fieldId=dt.getIdsOnTimeRight(1.35);
6754 self.assertEqual(1,meshId);
6755 self.assertEqual(3,arrId);
6756 self.assertEqual(0,arrIdInField);
6757 self.assertEqual(2,fieldId);
6759 meshId,arrId,arrIdInField,fieldId=dt.getIdsOnTimeRight(1.7);
6760 self.assertEqual(0,meshId);
6761 self.assertEqual(3,arrId);
6762 self.assertEqual(0,arrIdInField);
6763 self.assertEqual(3,fieldId);
6765 meshId,arrId,arrIdInField,fieldId=dt.getIdsOnTimeRight(2.7);
6766 self.assertEqual(1,meshId);
6767 self.assertEqual(4,arrId);
6768 self.assertEqual(0,arrIdInField);
6769 self.assertEqual(4,fieldId);
6771 dt2=MEDCouplingDefinitionTime();
6772 self.assertTrue(not dt2.isEqual(dt));
6774 dt2.assign(dt);#to check memory management
6775 self.assertTrue(dt2.isEqual(dt));
6777 dt3=MEDCouplingDefinitionTime();
6781 def testDAICheckAndPreparePermutation1(self):
6782 vals1=[9,10,0,6,4,11,3,7];
6783 expect1=[5,6,0,3,2,7,1,4];
6784 vals2=[9,10,0,6,10,11,3,7];
6785 da=DataArrayInt.New();
6786 da.setValues(vals1,8,1);
6787 da2=da.checkAndPreparePermutation();
6788 self.assertEqual(8,da2.getNumberOfTuples());
6789 self.assertEqual(1,da2.getNumberOfComponents());
6791 self.assertEqual(expect1[i],da2.getIJ(i,0));
6794 da=DataArrayInt.New();
6797 da2=da.checkAndPreparePermutation();
6798 self.assertEqual(8,da2.getNumberOfTuples());
6799 self.assertEqual(1,da2.getNumberOfComponents());
6800 self.assertTrue(da2.isIdentity());
6802 da=DataArrayInt.New();
6804 da.setValues(vals2,8,1);
6805 self.assertRaises(InterpKernelException,da.checkAndPreparePermutation);
6808 def testDAIChangeSurjectiveFormat1(self):
6809 vals1=[0,3,2,3,2,2,1,2]
6810 expected1=[0,1,2,6,8]
6811 expected2=[0, 6, 2,4,5,7, 1,3]
6812 da=DataArrayInt.New();
6813 da.setValues(vals1,8,1);
6815 da2,da2I=da.changeSurjectiveFormat(4);
6816 self.assertEqual(5,da2I.getNumberOfTuples());
6817 self.assertEqual(8,da2.getNumberOfTuples());
6818 self.assertEqual(expected1,da2I.getValues());
6819 self.assertEqual(expected2,da2.getValues());
6821 self.assertRaises(InterpKernelException,da.changeSurjectiveFormat,3);
6825 def testUMeshGetCellIdsLyingOnNodes1(self):
6826 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
6827 nodeIds1=[1,2,3,4,6]
6829 da=m.getCellIdsLyingOnNodes(nodeIds1,True);
6830 self.assertEqual(1,da.getNumberOfTuples());
6831 self.assertEqual(1,da.getNumberOfComponents());
6832 self.assertEqual(1,da.getIJ(0,0));
6833 da2=DataArrayInt.New()
6834 da2.setValues(nodeIds2,2,1)
6835 da=m.getCellIdsLyingOnNodes(da2,False);
6836 self.assertEqual(2,da.getNumberOfTuples());
6837 self.assertEqual(1,da.getNumberOfComponents());
6838 self.assertEqual(3,da.getIJ(0,0));
6839 self.assertEqual(4,da.getIJ(1,0));
6842 def testUMeshFindCellIdsOnBoundary1(self):
6843 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
6844 da5=m.findCellIdsOnBoundary();
6845 self.assertEqual(5,da5.getNumberOfTuples());
6846 self.assertTrue(da5.isIdentity());
6849 def testMeshSetTime1(self):
6850 m1=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
6851 m2=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
6853 self.assertTrue(m1.isEqual(m2,1e-12));
6854 m1.setTime(3.14,6,7);
6855 tmp3,tmp1,tmp2=m1.getTime();
6856 self.assertEqual(6,tmp1);
6857 self.assertEqual(7,tmp2);
6858 self.assertAlmostEqual(3.14,tmp3,12);
6859 self.assertTrue(not m1.isEqual(m2,1e-12));
6860 m2.setTime(3.14,6,7);
6861 self.assertTrue(m1.isEqual(m2,1e-12));
6862 m1.setTimeUnit("ms");
6863 self.assertTrue(m1.getTimeUnit()=="ms");
6864 m1.setTimeUnit("us");
6865 self.assertTrue(m1.getTimeUnit()=="us");
6866 self.assertTrue(not m1.isEqual(m2,1e-12));
6867 m2.setTimeUnit("us");
6868 self.assertTrue(m1.isEqual(m2,1e-12));
6869 m2.setTime(3.14,6,8);
6870 self.assertTrue(not m1.isEqual(m2,1e-12));
6871 m2.setTime(3.14,7,7);
6872 self.assertTrue(not m1.isEqual(m2,1e-12));
6873 m2.setTime(3.15,6,7);
6874 self.assertTrue(not m1.isEqual(m2,1e-12));
6876 m1.setTime(10.34,55,12);
6878 self.assertTrue(m1.isEqual(m3,1e-12));
6879 tmp3,tmp1,tmp2=m3.getTime();
6880 self.assertEqual(55,tmp1);
6881 self.assertEqual(12,tmp2);
6882 self.assertAlmostEqual(10.34,tmp3,12);
6886 a=DataArrayDouble.New();
6887 a.setValues(coo1,4,1);
6888 b=MEDCouplingCMesh.New();
6891 b.setTime(5.67,8,100);
6892 tmp3,tmp1,tmp2=b.getTime();
6893 self.assertEqual(8,tmp1);
6894 self.assertEqual(100,tmp2);
6895 self.assertAlmostEqual(5.67,tmp3,12);
6897 self.assertTrue(c.isEqual(b,1e-12));
6898 tmp3,tmp1,tmp2=c.getTime();
6899 self.assertEqual(8,tmp1);
6900 self.assertEqual(100,tmp2);
6901 self.assertAlmostEqual(5.67,tmp3,12);
6904 def testApplyFuncTwo1(self):
6905 m1=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
6906 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
6909 vals=[1.,11.,21.,2.,12.,22.,3.,13.,23.,4.,14.,24.,5.,15.,25.]
6910 da=DataArrayDouble.New();
6911 da.setValues(vals,5,3);
6914 self.assertRaises(InterpKernelException,da.applyFunc2,1,"y+z");
6915 da.setInfoOnComponent(0,"x [m]");
6916 da.setInfoOnComponent(1,"y [mm]");
6917 da.setInfoOnComponent(2,"z [km]");
6919 self.assertRaises(InterpKernelException, da.applyFunc2, 1, "x+y+zz+zzz");
6920 self.assertRaises(InterpKernelException, da.applyFunc2, 1, "toto(x+y)");
6921 self.assertRaises(InterpKernelException, da.applyFunc2, 1, "x/0");
6923 da2=da.applyFunc2(1,"y+z");
6924 self.assertEqual(1,da2.getNumberOfComponents());
6925 self.assertEqual(5,da2.getNumberOfTuples());
6926 expected1=[32.,34.,36.,38.,40.]
6928 self.assertAlmostEqual(expected1[i],da2.getIJ(0,i),12);
6930 da2=da.applyFunc(1,"y+z");
6931 expected2=[12.,14.,16.,18.,20.]
6933 self.assertAlmostEqual(expected2[i],da2.getIJ(0,i),12);
6936 self.assertEqual(3,f1.getNumberOfComponents());
6937 self.assertEqual(5,f1.getNumberOfTuples());
6938 f1.applyFunc2(1,"y+z");
6939 self.assertEqual(1,f1.getNumberOfComponents());
6940 self.assertEqual(5,f1.getNumberOfTuples());
6942 self.assertAlmostEqual(expected1[i],f1.getArray().getIJ(0,i),12);
6947 def testApplyFuncThree1(self):
6948 m1=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
6949 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
6952 vals=[1.,11.,21.,2.,12.,22.,3.,13.,23.,4.,14.,24.,5.,15.,25.]
6953 da=DataArrayDouble.New();
6954 da.setValues(vals,5,3);
6958 vs[0]="x"; vs[1]="Y"; vs[2]="z";
6959 self.assertRaises(InterpKernelException, da.applyFunc3, 1, vs, "y+z");
6960 self.assertRaises(InterpKernelException, da.applyFunc3, 1, vs, "x+Y+z+zz+zzz");
6961 self.assertRaises(InterpKernelException, da.applyFunc3, 1, vs, "x/0");
6963 da2=da.applyFunc3(1,vs,"y+z");
6964 expected1=[32.,34.,36.,38.,40.]
6966 self.assertAlmostEqual(expected1[i],da2.getIJ(0,i),12);
6968 self.assertRaises(InterpKernelException, da.applyFunc3, 1, ["x","y","z","a"],"x+a")
6970 self.assertEqual(3,f1.getNumberOfComponents());
6971 self.assertEqual(5,f1.getNumberOfTuples());
6972 f1.applyFunc3(1,vs,"y+z");
6973 self.assertEqual(1,f1.getNumberOfComponents());
6974 self.assertEqual(5,f1.getNumberOfTuples());
6976 self.assertAlmostEqual(expected1[i],f1.getArray().getIJ(0,i),12);
6980 def testFillFromAnalyticTwo1(self):
6981 m1=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
6982 m1.setTime(3.4,5,6); m1.setTimeUnit("us");
6983 self.assertRaises(InterpKernelException,m1.fillFromAnalytic2,ON_NODES,1,"y+z");
6984 m1.getCoords().setInfoOnComponent(0,"x [m]");
6985 m1.getCoords().setInfoOnComponent(1,"y");
6986 m1.getCoords().setInfoOnComponent(2,"z");
6987 f1=m1.fillFromAnalytic2(ON_NODES,1,"y+z");
6988 self.assertAlmostEqual(3.4,f1.getTime()[0],12) ; self.assertEqual(5,f1.getTime()[1]) ; self.assertEqual(6,f1.getTime()[2])
6989 self.assertEqual("us",f1.getTimeUnit())
6990 self.assertEqual(1,f1.getNumberOfComponents());
6991 self.assertEqual(9,f1.getNumberOfTuples());
6992 expected1=[0.2, 0.7, 1.2, 0.7, 1.2, 1.7, 1.2, 1.7, 2.2]
6994 self.assertAlmostEqual(expected1[i],f1.getArray().getIJ(0,i),12);
6998 def testFillFromAnalyticThree1(self):
6999 m1=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
7000 m1.setTime(3.4,5,6); m1.setTimeUnit("us");
7002 vs[0]="x"; vs[1]="Y"; vs[2]="z";
7003 self.assertRaises(InterpKernelException,m1.fillFromAnalytic3,ON_NODES,1,vs,"y+z");
7005 f1=m1.fillFromAnalytic3(ON_NODES,1,vs,"y+z");
7006 self.assertAlmostEqual(3.4,f1.getTime()[0],12) ; self.assertEqual(5,f1.getTime()[1]) ; self.assertEqual(6,f1.getTime()[2])
7007 self.assertEqual("us",f1.getTimeUnit())
7008 self.assertEqual(1,f1.getNumberOfComponents());
7009 self.assertEqual(9,f1.getNumberOfTuples());
7010 expected1=[0.2, 0.7, 1.2, 0.7, 1.2, 1.7, 1.2, 1.7, 2.2]
7012 self.assertAlmostEqual(expected1[i],f1.getArray().getIJ(0,i),12);
7016 def testDAUnitVar1(self):
7017 da=DataArrayDouble.New();
7019 da.setInfoOnComponent(0,"XPS [m]");
7020 st1=da.getVarOnComponent(0);
7021 self.assertTrue(st1=="XPS");
7022 st2=da.getUnitOnComponent(0);
7023 self.assertTrue(st2=="m");
7025 da.setInfoOnComponent(0,"XPS [m]");
7026 st1=da.getVarOnComponent(0);
7027 self.assertTrue(st1=="XPS");
7028 st2=da.getUnitOnComponent(0);
7029 self.assertTrue(st2=="m");
7031 da.setInfoOnComponent(0,"XPP [m]");
7032 st1=da.getVarOnComponent(0);
7033 self.assertTrue(st1=="XPP");
7034 st2=da.getUnitOnComponent(0);
7035 self.assertTrue(st2=="m");
7037 da.setInfoOnComponent(0,"XPP kdep kefer [ m ]");
7038 st1=da.getVarOnComponent(0);
7039 self.assertTrue(st1=="XPP kdep kefer");
7040 st2=da.getUnitOnComponent(0);
7041 self.assertTrue(st2==" m ");
7043 da.setInfoOnComponent(0," XPP k[ dep k]efer [ m^ 2/s^3*kJ ]");
7044 st1=da.getVarOnComponent(0);
7045 self.assertTrue(st1==" XPP k[ dep k]efer");
7046 st2=da.getUnitOnComponent(0);
7047 self.assertTrue(st2==" m^ 2/s^3*kJ ");
7049 da.setInfoOnComponent(0," XPP kefer ");
7050 st1=da.getVarOnComponent(0);
7051 self.assertTrue(st1==" XPP kefer ");
7052 st2=da.getUnitOnComponent(0);
7053 self.assertTrue(st2=="");
7055 da.setInfoOnComponent(0,"temperature( bof)");
7056 st1=da.getVarOnComponent(0);
7057 self.assertTrue(st1=="temperature( bof)");
7058 st2=da.getUnitOnComponent(0);
7059 self.assertTrue(st2=="");
7061 da.setInfoOnComponent(0,"kkk [m]");
7062 da.setInfoOnComponent(1,"ppp [m^2/kJ]");
7063 da.setInfoOnComponent(2,"abcde [MW/s]");
7065 vs=da.getVarsOnComponent();
7066 self.assertEqual(3,len(vs));
7067 self.assertTrue(vs[0]=="kkk");
7068 self.assertTrue(vs[1]=="ppp");
7069 self.assertTrue(vs[2]=="abcde");
7070 vs=da.getUnitsOnComponent();
7071 self.assertEqual(3,len(vs));
7072 self.assertTrue(vs[0]=="m");
7073 self.assertTrue(vs[1]=="m^2/kJ");
7074 self.assertTrue(vs[2]=="MW/s");
7077 def testGaussCoordinates1(self):
7078 #Testing 1D cell types
7079 m1=MEDCouplingDataForTest.build1DMultiTypes_1();
7080 f=MEDCouplingFieldDouble.New(ON_GAUSS_PT,ONE_TIME);
7085 f.setGaussLocalizationOnType(NORM_SEG2,refCoo1,gsCoo1,wg1);
7088 refCoo2=[-1.0,1.0,0.0];
7089 f.setGaussLocalizationOnType(NORM_SEG3,refCoo2,gsCoo2,wg2);
7091 resToTest=f.getLocalizationOfDiscr();
7092 self.assertEqual(3,resToTest.getNumberOfComponents());
7093 self.assertEqual(2,resToTest.getNumberOfTuples());
7094 expected1=[0.6,0.6,0.6, 0.6,0.6,0.6]
7096 self.assertAlmostEqual(expected1[i],resToTest.getIJ(0,i),14);
7099 #Testing 2D cell types
7100 m2=MEDCouplingDataForTest.build2DMultiTypes_1();
7101 f=MEDCouplingFieldDouble.New(ON_GAUSS_PT,ONE_TIME);
7104 tria3CooGauss=[ 0.1, 0.8, 0.2, 0.7 ]
7105 gsCoo3=tria3CooGauss
7106 tria3CooRef=[ 0.0, 0.0, 1.0 , 0.0, 0.0, 1.0 ]
7107 refCoo3=tria3CooRef;
7108 f.setGaussLocalizationOnType(NORM_TRI3,refCoo3,gsCoo3,wg3);
7110 tria6CooGauss=[ 0.3, 0.2, 0.2, 0.1, 0.2, 0.4 ]
7111 gsCoo4=tria6CooGauss;
7112 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]
7113 refCoo4=tria6CooRef;
7114 f.setGaussLocalizationOnType(NORM_TRI6,refCoo4,gsCoo4,wg4);
7115 wg5=[0.3,0.3,0.3,0.3];
7116 quad4CooGauss=[ 0.3, 0.2, 0.2, 0.1, 0.2, 0.4, 0.15, 0.27 ]
7117 gsCoo5=quad4CooGauss;
7118 quad4CooRef=[-1.0, 1.0, -1.0, -1.0, 1.0, -1.0, 1.0, 1.0]
7119 refCoo5=quad4CooRef;
7120 f.setGaussLocalizationOnType(NORM_QUAD4,refCoo5,gsCoo5,wg5);
7121 wg6=[0.3,0.3,0.3,0.3];
7122 quad8CooGauss=[ 0.34, 0.16, 0.21, 0.3, 0.23, 0.4, 0.14, 0.37 ]
7123 gsCoo6=quad8CooGauss;
7124 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]
7125 refCoo6=quad8CooRef;
7126 f.setGaussLocalizationOnType(NORM_QUAD8,refCoo6,gsCoo6,wg6);
7128 resToTest=f.getLocalizationOfDiscr();
7129 self.assertEqual(3,resToTest.getNumberOfComponents());
7130 self.assertEqual(13,resToTest.getNumberOfTuples());#2+3+4+4 gauss points for resp TRI3,TRI6,QUAD4,QUAD8
7131 expected2=[5.1,1.55,0.0, 4.7,1.65,0.0,
7132 2.32,1.52,0.0, 1.6,1.32,0.0, 3.52,1.26,0.0,#TRI6
7133 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
7134 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
7135 for i in xrange(39):
7136 self.assertAlmostEqual(expected2[i],resToTest.getIJ(0,i),14);
7139 #Testing 3D cell types
7140 m3=MEDCouplingDataForTest.build3DMultiTypes_1();
7141 f=MEDCouplingFieldDouble.New(ON_GAUSS_PT,ONE_TIME);
7145 tetra4CooGauss=[0.34, 0.16, 0.21]
7146 gsCoo7=tetra4CooGauss;
7147 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]
7148 refCoo7=tetra4CooRef;
7149 f.setGaussLocalizationOnType(NORM_TETRA4,refCoo7,gsCoo7,wg7);
7151 tetra10CooGauss=[0.2, 0.3, 0.1]
7152 gsCoo8=tetra10CooGauss;
7153 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]
7154 refCoo8=tetra10CooRef;
7155 f.setGaussLocalizationOnType(NORM_TETRA10,refCoo8,gsCoo8,wg8);
7157 pyra5CooGauss=[0.2, 0.3, 0.1]
7158 gsCoo9=pyra5CooGauss;
7159 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]
7160 refCoo9=pyra5CooRef;
7161 f.setGaussLocalizationOnType(NORM_PYRA5,refCoo9,gsCoo9,wg9);
7163 pyra13CooGauss=[0.1, 0.2, 0.7]
7164 gsCoo10=pyra13CooGauss;
7165 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]
7166 refCoo10=pyra13CooRef;
7167 f.setGaussLocalizationOnType(NORM_PYRA13,refCoo10,gsCoo10,wg10);
7169 penta6CooGauss=[0.2, 0.3, 0.1]
7170 gsCoo11=penta6CooGauss;
7171 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]
7172 refCoo11=penta6CooRef;
7173 f.setGaussLocalizationOnType(NORM_PENTA6,refCoo11,gsCoo11,wg11);
7175 penta15CooGauss=[0.2, 0.3,0.15]
7176 gsCoo12=penta15CooGauss;
7177 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]
7178 refCoo12=penta15CooRef;
7179 f.setGaussLocalizationOnType(NORM_PENTA15,refCoo12,gsCoo12,wg12);
7181 hexa8CooGauss=[0.2,0.3,0.15]
7182 gsCoo13=hexa8CooGauss;
7183 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]
7184 refCoo13=hexa8CooRef;
7185 f.setGaussLocalizationOnType(NORM_HEXA8,refCoo13,gsCoo13,wg13);
7187 hexa20CooGauss=[0.11,0.3,0.55]
7188 gsCoo14=hexa20CooGauss;
7189 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]
7190 refCoo14=hexa20CooRef;
7191 f.setGaussLocalizationOnType(NORM_HEXA20,refCoo14,gsCoo14,wg14);
7193 resToTest=f.getLocalizationOfDiscr();
7194 self.assertEqual(3,resToTest.getNumberOfComponents());
7195 self.assertEqual(8,resToTest.getNumberOfTuples());#2+3+4+4 gauss points for resp TRI3,TRI6,QUAD4,QUAD8
7196 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]
7197 for i in xrange(24):
7198 self.assertAlmostEqual(expected3[i],resToTest.getIJ(0,i),14);
7203 def testP2Localization1(self):
7204 m=MEDCouplingUMesh.New("testP2",2);
7205 coords=[0.,2.,3.5,0.,4.5,1.5,1.2,0.32,3.4,1.,2.1,2.4]
7207 coo=DataArrayDouble.New();
7208 coo.setValues(coords,6,2);
7211 m.insertNextCell(NORM_TRI6,6,conn[0:6])
7212 m.finishInsertingCells();
7214 f=MEDCouplingFieldDouble.New(ON_NODES,ONE_TIME);
7216 da=DataArrayDouble.New();
7217 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]
7218 da.setValues(vals1,6,3);
7222 locs=f.getValueOnMulti(loc);
7223 expected1=[6.0921164547752236, 7.1921164547752232, 8.2921164547752255]
7225 self.assertAlmostEqual(expected1[i],locs.getIJ(0,i),12);
7229 def testP2Localization2(self):
7230 m=MEDCouplingUMesh.New("testP2_2",3);
7231 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]
7232 conn=[0,1,2,3,4,5,6,7,8,9]
7233 coo=DataArrayDouble.New();
7234 coo.setValues(coords,10,3);
7237 m.insertNextCell(NORM_TETRA10,10,conn[0:10])
7238 m.finishInsertingCells();
7240 f=MEDCouplingFieldDouble.New(ON_NODES,ONE_TIME);
7242 da=DataArrayDouble.New();
7243 vals1=[1.1,2.1,3.1,4.1,5.2,6.2,7.2,8.2,9.2,10.2]
7244 da.setValues(vals1,10,1);
7247 loc=[0.64637931739890486, -0.16185896817550552, 0.22678966365273748]
7248 locs=f.getValueOnMulti(loc);
7249 expected1=[10.0844021968047]
7251 self.assertAlmostEqual(expected1[i],locs.getIJ(0,i),12);
7255 def testGetValueOn2(self):
7256 m=MEDCouplingDataForTest.build2DTargetMesh_1();
7257 f=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
7259 arr=DataArrayDouble.New();
7260 nbOfCells=m.getNumberOfCells();
7262 values1=[7.,107.,10007.,8.,108.,10008.,9.,109.,10009.,10.,110.,10010.,11.,111.,10011.]
7263 arr.setValues(values1,nbOfCells,3);
7264 loc=[-0.05,-0.05, 0.55,-0.25, 0.55,0.15, -0.05,0.45, 0.45,0.45]
7266 locs=f.getValueOnMulti(loc);
7267 self.assertEqual(5,locs.getNumberOfTuples());
7268 self.assertEqual(3,locs.getNumberOfComponents());
7269 for j in xrange(15):
7270 self.assertAlmostEqual(values1[j],locs.getIJ(0,j),12);
7273 f=MEDCouplingFieldDouble.New(ON_NODES,NO_TIME);
7275 arr=DataArrayDouble.New();
7276 nbOfNodes=m.getNumberOfNodes();
7278 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.]
7279 arr.setValues(values2,nbOfNodes,3);
7280 loc2=[0.5432,-0.2432, 0.5478,0.1528, 0.5432,-0.2432, 0.5432,-0.2432]
7281 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]
7283 loc3=DataArrayDouble.New()
7284 loc3.setValues(loc2,4,2);
7285 locs=f.getValueOnMulti(loc3);
7286 self.assertEqual(4,locs.getNumberOfTuples());
7287 self.assertEqual(3,locs.getNumberOfComponents());
7288 for i in xrange(12):
7289 self.assertAlmostEqual(expected2[i],locs.getIJ(0,i),12);
7294 def testDAIGetIdsNotEqual1(self):
7295 d=DataArrayInt.New();
7296 vals1=[2,3,5,6,8,5,5,6,1,-5]
7297 d.setValues(vals1,10,1);
7298 d2=d.getIdsNotEqual(5);
7299 self.assertEqual(7,d2.getNumberOfTuples());
7300 self.assertEqual(1,d2.getNumberOfComponents());
7301 expected1=[0,1,3,4,7,8,9]
7303 self.assertEqual(expected1[i],d2.getIJ(0,i));
7306 self.assertRaises(InterpKernelException,d.getIdsNotEqual,5);
7310 d3=d.getIdsNotEqualList(vals3);
7311 self.assertEqual(5,d3.getNumberOfTuples());
7312 self.assertEqual(1,d3.getNumberOfComponents());
7313 expected2=[0,1,4,8,9]
7315 self.assertEqual(expected2[i],d3.getIJ(0,i));
7319 def testDAIComputeOffsets1(self):
7320 d=DataArrayInt.New();
7322 expected1=[0,3,8,9,11,11]
7323 d.setValues(vals1,6,1);
7325 self.assertEqual(6,d.getNumberOfTuples());
7326 self.assertEqual(1,d.getNumberOfComponents());
7328 self.assertEqual(expected1[i],d.getIJ(0,i));
7332 def testUMeshHexagonPrism1(self):
7333 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,
7334 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];
7335 conn=[1,2,3,4,5,0,7,8,9,10,11,6]
7336 mesh=MEDCouplingUMesh.New("MyFirstHexagonalPrism",3);
7337 coo=DataArrayDouble.New();
7338 coo.setValues(coords,12,3);
7339 mesh.setCoords(coo);
7340 mesh.allocateCells(1);
7341 mesh.insertNextCell(NORM_HEXGP12,12,conn[0:12])
7342 mesh.finishInsertingCells();
7344 mesh.checkCoherency();
7345 vols=mesh.getMeasureField(False);
7346 self.assertEqual(1,vols.getNumberOfTuples());
7347 self.assertEqual(1,vols.getNumberOfComponents());
7348 self.assertAlmostEqual(-5.196152422706632,vols.getIJ(0,0),12);
7349 bary=mesh.getBarycenterAndOwner();
7350 self.assertEqual(1,bary.getNumberOfTuples());
7351 self.assertEqual(3,bary.getNumberOfComponents());
7352 expected1=[0.,0.,1.]
7354 self.assertAlmostEqual(expected1[i],bary.getIJ(0,i),12);
7356 d1=DataArrayInt.New();
7357 d2=DataArrayInt.New();
7358 d3=DataArrayInt.New();
7359 d4=DataArrayInt.New();
7360 m2=mesh.buildDescendingConnectivity(d1,d2,d3,d4);
7361 self.assertEqual(8,m2.getNumberOfCells());
7362 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]];
7363 expected2=[NORM_POLYGON, NORM_POLYGON, NORM_QUAD4, NORM_QUAD4, NORM_QUAD4, NORM_QUAD4, NORM_QUAD4, NORM_QUAD4];
7364 expected3=[6,6,4,4,4,4,4,4]
7366 self.assertTrue(m2.getTypeOfCell(i)==expected2[i]);
7367 v=m2.getNodeIdsOfCell(i);
7368 self.assertTrue(len(v)==expected3[i]);
7369 self.assertEqual(expected4[i],v);
7371 mesh.convertAllToPoly();
7372 self.assertTrue(NORM_POLYHED==mesh.getTypeOfCell(0));
7374 self.assertTrue(NORM_HEXGP12==mesh.getTypeOfCell(0));
7375 self.assertEqual(13,mesh.getMeshLength());
7379 def testDADCheckIsMonotonic(self):
7380 da=DataArrayDouble.New();
7381 da.setValues([-1.,1.01,2.03,6.],2,2);
7382 self.assertRaises(InterpKernelException,da.isMonotonic,True,1e-12);
7384 self.assertTrue(da.isMonotonic(True,1e-12));
7385 da.checkMonotonic(True,1e-12);
7387 self.assertTrue(not da.isMonotonic(True,1e-12));
7388 self.assertRaises(InterpKernelException,da.checkMonotonic,True,1e-12);
7390 self.assertTrue(da.isMonotonic(True,1e-12));
7391 self.assertTrue(not da.isMonotonic(True,1e-1));
7394 def testCheckCoherencyDeeper1(self):
7395 m=MEDCouplingDataForTest.build3DSourceMesh_1();
7397 m.checkCoherency1();
7398 m.getNodalConnectivity().setIJ(8,0,-1);
7400 self.assertRaises(InterpKernelException,m.checkCoherency1);
7401 m.getNodalConnectivity().setIJ(8,0,-6);
7403 self.assertRaises(InterpKernelException,m.checkCoherency1);
7404 m.getNodalConnectivity().setIJ(8,0,9);#9>=NbOfNodes
7406 self.assertRaises(InterpKernelException,m.checkCoherency1);
7407 m.getNodalConnectivity().setIJ(8,0,8);#OK
7409 m.checkCoherency1();
7411 m.convertToPolyTypes(elts);
7413 m.checkCoherency1();
7414 m.getNodalConnectivity().setIJ(2,0,9);#9>=NbOfNodes
7416 self.assertRaises(InterpKernelException,m.checkCoherency1);
7417 m.getNodalConnectivity().setIJ(2,0,-3);
7419 self.assertRaises(InterpKernelException,m.checkCoherency1);
7420 m.getNodalConnectivity().setIJ(2,0,-1);
7422 self.assertRaises(InterpKernelException,m.checkCoherency1);#Throw because cell#0 is not a polyhedron
7423 m.getNodalConnectivity().setIJ(2,0,4);
7425 m.checkCoherency1();
7426 m.getNodalConnectivity().setIJ(7,0,-1);
7428 m.checkCoherency1();#OK because we are in polyhedron connec
7429 m.getNodalConnectivity().setIJ(36,0,14);
7431 self.assertRaises(InterpKernelException,m.checkCoherency1);#Throw beacause now cell 5 is a TETRA4 (14) so mimatch of number index and static type.
7434 def testUnPolyze2(self):
7435 m=MEDCouplingUMesh.New("jjj",3);
7436 coo=DataArrayDouble.New();
7443 m.insertNextCell(NORM_TETRA4,4,[0,1,2,3]);
7444 m.insertNextCell(NORM_TETRA4,4,[0,1,2,3]);
7445 m.finishInsertingCells();
7446 m2=MEDCouplingUMesh.MergeUMeshesOnSameCoords(4*[m]);
7447 m2.convertToPolyTypes([2]);
7449 self.assertEqual(NORM_TETRA4,m2.getTypeOfCell(2));
7450 self.assertEqual(40,m2.getMeshLength());
7451 temp2=m2.getNodeIdsOfCell(2);
7452 self.assertEqual(temp2,[0,1,2,3]);
7453 m2.checkCoherency1();
7456 self.assertTrue(m3.isEqual(m2,1e-12));
7459 def testDACpyFrom1(self):
7460 d=DataArrayDouble.New();
7465 d.setInfoOnComponent(0,"X [m]");
7466 d.setInfoOnComponent(1,"Y [m]");
7467 d.setInfoOnComponent(2,"Z [m]");
7469 d1=DataArrayDouble.New();
7470 self.assertTrue(not d.isEqual(d1,1e-12));
7472 self.assertTrue(d.isEqual(d1,1e-12));
7474 self.assertTrue(d.isEqual(d1,1e-12));
7476 self.assertTrue(not d.isEqual(d1,1e-12));
7478 self.assertTrue(d.isEqual(d1,1e-12));
7480 d2=d.convertToIntArr();
7481 d4=DataArrayInt.New();
7482 self.assertTrue(not d2.isEqual(d4));
7484 self.assertTrue(d2.isEqual(d4));
7486 self.assertTrue(d2.isEqual(d4));
7488 self.assertTrue(not d2.isEqual(d4));
7490 self.assertTrue(d2.isEqual(d4));
7493 def testDAITransformWithIndArr1(self):
7495 tab2=[0,1,1,3,3,0,1,3,2,2,3,0]
7496 expected=[17,18,18,19,19,17,18,19,22,22,19,17]
7497 d=DataArrayInt.New();
7498 d.setValues(tab1,4,1);
7499 d1=DataArrayInt.New();
7500 d1.setValues(tab2,12,1);
7503 d1.transformWithIndArr(d);
7504 self.assertEqual(12,d1.getNumberOfTuples());
7505 self.assertEqual(1,d1.getNumberOfComponents());
7506 for i in xrange(12):
7507 self.assertEqual(expected[i],d1.getIJ(i,0));
7511 d1.transformWithIndArr(tab1)
7512 self.assertEqual(12,d1.getNumberOfTuples());
7513 self.assertEqual(1,d1.getNumberOfComponents());
7514 for i in xrange(12):
7515 self.assertEqual(expected[i],d1.getIJ(i,0));
7519 def testDAIBuildPermArrPerLevel1(self):
7520 arr=[2,0,1,1,0,1,2,0,1,1,0,0]
7521 expected1=[10,0,5,6,1,7,11,2,8,9,3,4]
7522 da=DataArrayInt.New();
7523 da.setValues(arr,12,1);
7524 da2=da.buildPermArrPerLevel();
7525 self.assertEqual(12,da2.getNumberOfTuples());
7526 self.assertEqual(1,da2.getNumberOfComponents());
7527 for i in xrange(12):
7528 self.assertEqual(expected1[i],da2.getIJ(i,0));
7532 def testDAIOperations1(self):
7533 arr1=[-1,-2,4,7,3,2,6,6,4,3,0,1]
7534 da=DataArrayInt.New();
7535 da.setValues(arr1,4,3);
7536 da1=DataArrayInt.New();
7539 self.assertRaises(InterpKernelException,DataArrayInt.Add,da,da1);#not same number of tuples/Components
7541 da2=DataArrayInt.Add(da,da1);
7542 self.assertEqual(4,da2.getNumberOfTuples());
7543 self.assertEqual(3,da2.getNumberOfComponents());
7544 expected1=[1,1,8,12,9,9,14,15,14,14,12,14]
7545 for i in xrange(12):
7546 self.assertEqual(expected1[i],da2.getIJ(0,i));
7548 da1.substractEqual(da);
7549 expected2=[3,5,0,-2,3,5,2,3,6,8,12,12]
7550 for i in xrange(12):
7551 self.assertEqual(expected2[i],da1.getIJ(0,i));
7553 da1.rearrange(1); da1.iota(2); da1.rearrange(3);
7555 for i in xrange(12):
7556 self.assertEqual(expected1[i],da1.getIJ(0,i));
7558 da1.rearrange(1); da1.iota(2); da1.rearrange(3);
7559 da2=DataArrayInt.Multiply(da,da1);
7560 self.assertEqual(4,da2.getNumberOfTuples());
7561 self.assertEqual(3,da2.getNumberOfComponents());
7562 expected3=[-2,-6,16,35,18,14,48,54,40,33,0,13]
7563 for i in xrange(12):
7564 self.assertEqual(expected3[i],da2.getIJ(0,i));
7566 da.divideEqual(da1);
7567 self.assertEqual(4,da.getNumberOfTuples());
7568 self.assertEqual(3,da.getNumberOfComponents());
7569 expected4=[0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0]
7570 for i in xrange(12):
7571 self.assertEqual(expected4[i],da.getIJ(0,i));
7573 da.setValues(arr1,4,3);
7574 da1.multiplyEqual(da);
7575 self.assertEqual(4,da1.getNumberOfTuples());
7576 self.assertEqual(3,da1.getNumberOfComponents());
7577 for i in xrange(12):
7578 self.assertEqual(expected3[i],da1.getIJ(0,i));
7580 da1.rearrange(1); da1.iota(2); da1.rearrange(3);
7581 da2=DataArrayInt.Divide(da,da1);
7582 self.assertEqual(4,da2.getNumberOfTuples());
7583 self.assertEqual(3,da2.getNumberOfComponents());
7584 for i in xrange(12):
7585 self.assertEqual(expected4[i],da2.getIJ(0,i));
7588 self.assertEqual(4,da1.getNumberOfTuples());
7589 self.assertEqual(3,da1.getNumberOfComponents());
7590 expected5=[160,107,80,64,53,45,40,35,32,29,26,24]
7591 for i in xrange(12):
7592 self.assertEqual(expected5[i],da1.getIJ(0,i));
7594 da1.applyDivideBy(2);
7595 self.assertEqual(4,da1.getNumberOfTuples());
7596 self.assertEqual(3,da1.getNumberOfComponents());
7597 expected6=[80,53,40,32,26,22,20,17,16,14,13,12]
7598 for i in xrange(12):
7599 self.assertEqual(expected6[i],da1.getIJ(0,i));
7601 expected7=[3,4,5,4,5,1,6,3,2,0,6,5]
7602 da1.applyModulus(7);
7603 for i in xrange(12):
7604 self.assertEqual(expected7[i],da1.getIJ(0,i));
7607 expected8=[3,3,3,3,3,1,3,3,0,0,3,3]
7608 da1.applyRModulus(3);
7609 for i in xrange(12):
7610 self.assertEqual(expected8[i],da1.getIJ(0,i));
7614 def testEmulateMEDMEMBDC1(self):
7615 m,m1=MEDCouplingDataForTest.buildPointe_1();
7616 m2,da1,da2,da3,da4,da5,da0=m.emulateMEDMEMBDC(m1)
7617 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]
7618 expected1=[1,32,29,23,41,36]
7619 self.assertEqual(47,da0.getNumberOfTuples());
7620 self.assertEqual(1,da0.getNumberOfComponents());
7621 for i in xrange(47):
7622 self.assertEqual(expected0[i],da0.getIJ(0,i));
7624 self.assertEqual(6,da5.getNumberOfTuples());
7625 self.assertEqual(1,da5.getNumberOfComponents());
7627 self.assertEqual(expected1[i],da5.getIJ(0,i));
7629 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]
7630 self.assertEqual(70,da1.getNumberOfTuples());
7631 self.assertEqual(1,da1.getNumberOfComponents());
7632 for i in xrange(70):
7633 self.assertEqual(expected2[i],da1.getIJ(0,i));
7635 expected3=[0,4,8,12,16,20,24,28,32,36,40,44,48,53,58,64,70]
7636 self.assertEqual(17,da2.getNumberOfTuples());
7637 self.assertEqual(1,da2.getNumberOfComponents());
7638 for i in xrange(17):
7639 self.assertEqual(expected3[i],da2.getIJ(0,i));
7641 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]
7642 #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];
7643 self.assertEqual(48,da4.getNumberOfTuples());
7644 self.assertEqual(1,da4.getNumberOfComponents());
7645 for i in xrange(48):
7646 self.assertEqual(expected4[i],da4.getIJ(0,i));
7648 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]
7649 self.assertEqual(70,da3.getNumberOfTuples());
7650 self.assertEqual(1,da3.getNumberOfComponents());
7651 for i in xrange(70):
7652 self.assertEqual(expected5[i],da3.getIJ(0,i));
7656 def testGetLevArrPerCellTypes1(self):
7657 m,m1=MEDCouplingDataForTest.buildPointe_1();
7658 m1,d0,d1,d2,d3=m.buildDescendingConnectivity();
7659 order=[NORM_TRI3,NORM_QUAD4];
7660 da0,da1=m1.getLevArrPerCellTypes(order);
7661 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]
7662 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]
7663 self.assertEqual(47,da0.getNumberOfTuples());
7664 self.assertEqual(1,da0.getNumberOfComponents());
7665 for i in xrange(47):
7666 self.assertEqual(expected0[i],da0.getIJ(0,i));
7668 self.assertEqual(2,da1.getNumberOfTuples());
7669 self.assertEqual(1,da1.getNumberOfComponents());
7670 self.assertEqual(36,da1.getIJ(0,0));#36 TRI3
7671 self.assertEqual(11,da1.getIJ(1,0));#11 QUAD4
7673 da2=da0.buildPermArrPerLevel();
7675 self.assertEqual(47,da2.getNumberOfTuples());
7676 self.assertEqual(1,da2.getNumberOfComponents());
7677 for i in xrange(47):
7678 self.assertEqual(expected1[i],da2.getIJ(0,i));
7682 def testSortCellsInMEDFileFrmt1(self):
7683 m,m1=MEDCouplingDataForTest.buildPointe_1();
7685 da=DataArrayInt.New()
7686 da.setValues([0,1,2,14,3,12,4,5,15,6,7,8,9,10,11,13],16,1)
7687 daa=da.invertArrayN2O2O2N(16)
7688 m.renumberCells(daa,False)
7689 da2=m.sortCellsInMEDFileFrmt()
7690 self.assertEqual(da2.getValues(),[0,1,2,14,3,12,4,5,15,6,7,8,9,10,11,13])
7691 self.assertTrue(m.isEqual(m2,1e-12))
7692 self.assertTrue(da.isEqual(da2))
7695 def testBuildPartAndReduceNodes1(self):
7696 m=MEDCouplingDataForTest.build2DTargetMesh_1();
7698 m2,da=m.buildPartAndReduceNodes(arr);
7699 self.assertEqual(5,m2.getNumberOfNodes());
7700 self.assertEqual(2,m2.getNumberOfCells());
7701 f=m2.getMeasureField(True);
7702 self.assertAlmostEqual(0.125,f.getArray().getIJ(0,0),12);
7703 self.assertAlmostEqual(0.25,f.getArray().getIJ(1,0),12);
7705 arr2=DataArrayInt.New()
7706 arr2.setValues(arr,2,1)
7707 m2,da=m.buildPartAndReduceNodes(arr2);
7708 self.assertEqual(5,m2.getNumberOfNodes());
7709 self.assertEqual(2,m2.getNumberOfCells());
7710 f=m2.getMeasureField(True);
7711 self.assertAlmostEqual(0.125,f.getArray().getIJ(0,0),12);
7712 self.assertAlmostEqual(0.25,f.getArray().getIJ(1,0),12);
7715 def testDAITransformWithIndArrR1(self):
7717 tab2=[-1,-1,0,1,2,3,4,5,-1,-1,-1,-1]
7718 expected=[0,3,1,2,4,5]
7719 d=DataArrayInt.New();
7720 d.setValues(tab1,6,1);
7721 d1=DataArrayInt.New();
7722 d1.setValues(tab2,12,1);
7725 d3=d.transformWithIndArrR(d1);
7726 self.assertEqual(6,d3.getNumberOfTuples());
7727 self.assertEqual(1,d3.getNumberOfComponents());
7729 self.assertEqual(expected[i],d3.getIJ(i,0));
7733 d3=d.transformWithIndArrR(tab2)
7734 self.assertEqual(6,d3.getNumberOfTuples());
7735 self.assertEqual(1,d3.getNumberOfComponents());
7737 self.assertEqual(expected[i],d3.getIJ(i,0));
7741 def testDAISplitByValueRange1(self):
7742 val1=[6,5,0,3,2,7,8,1,4]
7744 d=DataArrayInt.New();
7745 d.setValues(val1,9,1);
7746 e,f,g=d.splitByValueRange(val2);
7747 self.assertEqual(9,e.getNumberOfTuples());
7748 self.assertEqual(1,e.getNumberOfComponents());
7749 self.assertEqual(9,f.getNumberOfTuples());
7750 self.assertEqual(1,f.getNumberOfComponents());
7751 self.assertEqual(2,g.getNumberOfTuples());
7752 self.assertEqual(1,g.getNumberOfComponents());
7754 expected1=[1,1,0,0,0,1,1,0,1]
7755 expected2=[2,1,0,3,2,3,4,1,0]
7757 self.assertEqual(expected1[i],e.getIJ(i,0));
7758 self.assertEqual(expected2[i],f.getIJ(i,0));
7760 self.assertEqual(0,g.getIJ(0,0));
7761 self.assertEqual(1,g.getIJ(1,0));
7764 self.assertRaises(InterpKernelException,d.splitByValueRange,val2);
7767 def testUMeshSplitProfilePerType1(self):
7769 m=MEDCouplingDataForTest.build2DTargetMesh_1();
7770 m.renumberCells(val0,False);
7773 d=DataArrayInt.New();
7774 d.setValues(val1,3,1);
7776 code,idsInPflPerType,pfls=m.splitProfilePerType(d);
7777 self.assertEqual(2,len(code));
7778 self.assertEqual(2,len(idsInPflPerType));
7779 expected1=[[3,1,0], [4,2,1]]
7780 self.assertEqual(expected1,code)
7781 self.assertEqual(2,len(idsInPflPerType));
7782 self.assertEqual(1,idsInPflPerType[0].getNumberOfTuples());
7783 self.assertEqual(0,idsInPflPerType[0].getIJ(0,0));
7784 self.assertEqual(2,idsInPflPerType[1].getNumberOfTuples());
7785 self.assertEqual(1,idsInPflPerType[1].getIJ(0,0));
7786 self.assertEqual(2,idsInPflPerType[1].getIJ(1,0));
7788 self.assertEqual(2,len(pfls));
7789 self.assertEqual("sup",pfls[0].getName())
7790 self.assertEqual(1,pfls[0].getNumberOfTuples());
7791 self.assertEqual(0,pfls[0].getIJ(0,0));
7792 self.assertEqual("sup",pfls[1].getName())
7793 self.assertEqual(2,pfls[1].getNumberOfTuples());
7794 self.assertEqual(0,pfls[1].getIJ(0,0));
7795 self.assertEqual(1,pfls[1].getIJ(1,0));
7798 d=DataArrayInt.New();
7799 d.setValues(val2,4,1);
7800 code,idsInPflPerType,pfls=m.splitProfilePerType(d);
7801 self.assertEqual(2,len(code));
7802 self.assertEqual(2,len(idsInPflPerType));
7803 expected2=[[3,1,0], [4,3,-1]]
7804 self.assertEqual(expected2,code);
7805 self.assertEqual(2,len(idsInPflPerType));
7806 self.assertEqual(1,idsInPflPerType[0].getNumberOfTuples());
7807 self.assertEqual(0,idsInPflPerType[0].getIJ(0,0));
7808 self.assertEqual(3,idsInPflPerType[1].getNumberOfTuples());
7809 self.assertEqual(1,idsInPflPerType[1].getIJ(0,0));
7810 self.assertEqual(2,idsInPflPerType[1].getIJ(1,0));
7811 self.assertEqual(3,idsInPflPerType[1].getIJ(2,0));
7813 self.assertEqual(1,len(pfls));
7814 self.assertEqual(1,pfls[0].getNumberOfTuples());
7815 self.assertEqual(0,pfls[0].getIJ(0,0));
7818 d=DataArrayInt.New();
7819 d.setValues(val3,3,1);
7820 code,idsInPflPerType,pfls=m.splitProfilePerType(d);
7821 self.assertEqual(2,len(code));
7822 self.assertEqual(2,len(idsInPflPerType));
7823 expected3=[[3,2,0], [4,1,1]]
7824 self.assertEqual(expected3,code);
7825 self.assertEqual(2,len(idsInPflPerType));
7826 self.assertEqual(2,idsInPflPerType[0].getNumberOfTuples());
7827 self.assertEqual(0,idsInPflPerType[0].getIJ(0,0));
7828 self.assertEqual(1,idsInPflPerType[0].getIJ(1,0));
7829 self.assertEqual(1,idsInPflPerType[1].getNumberOfTuples());
7830 self.assertEqual(2,idsInPflPerType[1].getIJ(0,0));
7832 self.assertEqual(2,len(pfls));
7833 self.assertEqual(2,pfls[0].getNumberOfTuples());
7834 self.assertEqual(1,pfls[0].getIJ(0,0));
7835 self.assertEqual(0,pfls[0].getIJ(1,0));
7836 self.assertEqual(0,pfls[1].getIJ(0,0));
7839 d=DataArrayInt.New();
7840 d.setValues(val4,2,1);
7841 code,idsInPflPerType,pfls=m.splitProfilePerType(d);
7842 self.assertEqual(1,len(code));
7843 self.assertEqual(1,len(idsInPflPerType));
7845 self.assertEqual(expected4,code);
7846 self.assertEqual(1,len(idsInPflPerType));
7847 self.assertEqual(2,idsInPflPerType[0].getNumberOfTuples());
7848 self.assertEqual(0,idsInPflPerType[0].getIJ(0,0));
7849 self.assertEqual(1,idsInPflPerType[0].getIJ(1,0));
7851 self.assertEqual(1,len(pfls));
7852 self.assertEqual(2,pfls[0].getNumberOfTuples());
7853 self.assertEqual(1,pfls[0].getIJ(0,0));
7854 self.assertEqual(2,pfls[0].getIJ(1,0));
7857 def testDAIBuildExplicitArrByRanges1(self):
7858 d=DataArrayInt.New();
7860 d.setValues(vals1,3,1);
7861 e=DataArrayInt.New();
7862 vals2=[0,3,6,10,14,20]
7863 e.setValues(vals2,6,1);
7865 f=d.buildExplicitArrByRanges(e);
7866 self.assertEqual(11,f.getNumberOfTuples());
7867 self.assertEqual(1,f.getNumberOfComponents());
7868 expected1=[0,1,2,6,7,8,9,10,11,12,13]
7869 for i in xrange(11):
7870 self.assertEqual(expected1[i],f.getIJ(i,0));
7874 def testDAIComputeOffsets2(self):
7875 d=DataArrayInt.New();
7877 expected1=[0,3,8,9,11,11,19]
7878 d.setValues(vals1,6,1);
7879 d.computeOffsets2();
7880 self.assertEqual(7,d.getNumberOfTuples());
7881 self.assertEqual(1,d.getNumberOfComponents());
7883 self.assertEqual(expected1[i],d.getIJ(0,i));
7887 def testMergeField3(self):
7888 m=MEDCouplingDataForTest.build2DTargetMesh_1();
7889 m.getCoords().setInfoOnComponent(0,"x [m]");
7890 m.getCoords().setInfoOnComponent(1,"z [km]");
7892 m.setDescription("desc");
7893 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
7896 arr=DataArrayDouble.New();
7898 arr.setInfoOnComponent(0,"X [m]");
7899 arr.setInfoOnComponent(1,"YY [mm]");
7900 arr.fillWithValue(2.);
7903 f2=MEDCouplingFieldDouble.MergeFields([f1]);
7904 self.assertTrue(f1.isEqual(f2,1e-12,1e-12));
7908 def testGetDistributionOfTypes1(self):
7909 m=MEDCouplingDataForTest.build2DTargetMesh_1();
7911 self.assertRaises(InterpKernelException,m.getDistributionOfTypes);
7912 m.renumberCells(tab1,False);
7913 code=m.getDistributionOfTypes();
7914 self.assertEqual(2,len(code));
7915 self.assertEqual(3,code[0][0]);
7916 self.assertEqual(2,code[0][1]);
7917 self.assertEqual(-1,code[0][2]);
7918 self.assertEqual(4,code[1][0]);
7919 self.assertEqual(3,code[1][1]);
7920 self.assertEqual(-1,code[1][2]);
7923 def testNorm2_1(self):
7924 m=MEDCouplingDataForTest.build2DTargetMesh_1();
7925 f=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
7928 d=DataArrayDouble.New();
7929 tab=[1.2,1.3,2.2,2.3,3.2,3.3,4.2,4.3,5.2,5.3]
7930 d.setValues(tab,5,2);
7934 self.assertAlmostEqual(11.209371079592289,f.norm2(),14);
7938 def testNormMax1(self):
7939 m=MEDCouplingDataForTest.build2DTargetMesh_1();
7940 f=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
7943 d=DataArrayDouble.New();
7944 tab=[2.3,-1.2,6.3,-7.8,2.9,7.7,2.1,0.,3.6,-7.6]
7945 d.setValues(tab,5,2);
7949 self.assertAlmostEqual(7.8,f.normMax(),14);
7953 def testFindAndCorrectBadOriented3DExtrudedCells1(self):
7954 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];
7955 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]
7956 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]
7957 invalidCells=[2,3,6,7]
7958 m=MEDCouplingUMesh.New("Example",3);
7959 coo=DataArrayDouble.New();
7960 coo.setValues(coords,38,3);
7963 m.insertNextCell(NORM_PENTA6,6,conn[0:6])
7964 m.insertNextCell(NORM_PENTA6,6,conn[6:12])
7965 m.insertNextCell(NORM_PENTA6,6,conn[12:18])
7966 m.insertNextCell(NORM_PENTA6,6,conn[18:24])
7967 m.insertNextCell(NORM_HEXA8,8,conn[24:32])
7968 m.insertNextCell(NORM_HEXA8,8,conn[32:40])
7969 m.insertNextCell(NORM_HEXA8,8,conn[40:48])
7970 m.insertNextCell(NORM_HEXA8,8,conn[48:56])
7971 m.finishInsertingCells();
7973 v=m.findAndCorrectBadOriented3DExtrudedCells();
7974 self.assertEqual(4,len(v));
7975 self.assertEqual(v.getValues(),invalidCells);
7976 self.assertEqual(connExp,m.getNodalConnectivity().getValues());
7977 self.assertTrue(m.findAndCorrectBadOriented3DExtrudedCells().empty())
7981 def testConvertExtrudedPolyhedra1(self):
7982 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]
7983 m=MEDCouplingUMesh.New("Example",3);
7984 coo=DataArrayDouble.New();
7986 coo.rearrange(1); coo.iota(0); coo.rearrange(3);
7989 m.insertNextCell(NORM_TETRA4,4,conn[0:4])
7990 m.insertNextCell(NORM_HEXA8,8,conn[4:12])
7991 m.insertNextCell(NORM_TETRA4,4,conn[12:16])
7992 m.insertNextCell(NORM_POLYHED,6,conn[16:22])
7993 m.insertNextCell(NORM_PENTA6,6,conn[22:28])
7994 m.insertNextCell(NORM_POLYHED,10,conn[28:38])
7995 m.insertNextCell(NORM_HEXA8,8,conn[38:46])
7996 m.insertNextCell(NORM_HEXGP12,12,conn[46:58])
7997 m.insertNextCell(NORM_POLYHED,14,conn[58:72])
7998 m.finishInsertingCells();
8000 m.convertExtrudedPolyhedra();
8001 da=m.getNodalConnectivity();
8002 dai=m.getNodalConnectivityIndex();
8003 self.assertEqual(10,dai.getNbOfElems());
8004 self.assertEqual(159,da.getNbOfElems());
8006 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];
8007 expected2=[0,5,14,19,42,49,86,95,108,159]
8008 self.assertEqual(expected1,da.getValues());
8009 self.assertEqual(expected2,dai.getValues());
8013 def testNonRegressionCopyTinyStrings(self):
8014 m=MEDCouplingDataForTest.build2DTargetMesh_1()
8015 f1=m.getMeasureField(True)
8016 f1.getArray().setInfoOnComponent(0,"P [N/m^2]")
8017 bary=m.getBarycenterAndOwner()
8018 f2=f1.buildNewTimeReprFromThis(NO_TIME,False)
8020 self.assertRaises(InterpKernelException,f1.copyTinyAttrFrom,f2)
8023 def testDaDSetPartOfValuesAdv1(self):
8024 tab1=[3.,4.,5., 13.,14.,15., 23.,24.,25., 33.,34.,35., 43.,44.,45., 53.,54.,55.]
8025 tab2=[6.,7.,8., 16.,17.,18., 26.,27.,28.]
8026 tab3=[4,1, 2,2, 3,0]
8027 a=DataArrayDouble.New();
8028 a.setValues(tab1,6,3);
8029 b=DataArrayDouble.New();
8030 b.setValues(tab2,3,3);
8031 c=DataArrayInt.New();
8032 c.setValues(tab3,3,2);
8034 a.setPartOfValuesAdv(b,c);
8035 expected1=[3.,4.,5., 13.,14.,15., 26.,27.,28., 6.,7.,8., 16.,17.,18., 53.,54.,55.]
8036 self.assertEqual(expected1,a.getValues());
8039 def testUMeshBuildSetInstanceFromThis1(self):
8040 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
8041 m2=m.buildSetInstanceFromThis(3);
8042 self.assertTrue(m.isEqual(m2,1e-12));
8044 m=MEDCouplingUMesh.New("toto",2);
8045 m2=m.buildSetInstanceFromThis(3);
8046 self.assertEqual(0,m2.getNumberOfNodes());
8047 self.assertEqual(0,m2.getNumberOfCells());
8050 def testUMeshMergeMeshesCVW1(self):
8051 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
8052 m2=MEDCouplingUMesh.New("toto",2);
8053 m3=MEDCouplingUMesh.MergeUMeshes([m,m2]);
8054 m3.setName(m.getName());
8055 self.assertTrue(m.isEqual(m3,1e-12));
8058 def testChangeUnderlyingMeshWithCMesh1(self):
8059 mesh=MEDCouplingCMesh.New();
8060 coordsX=DataArrayDouble.New();
8061 arrX=[ -1., 1., 2., 4. ]
8062 coordsX.setValues(arrX,4,1);
8063 coordsY=DataArrayDouble.New();
8064 arrY=[ -2., 2., 4., 8. ]
8065 coordsY.setValues(arrY,4,1);
8066 coordsZ=DataArrayDouble.New();
8067 arrZ=[ -3., 3., 6., 12. ]
8068 coordsZ.setValues(arrZ,4,1);
8069 mesh.setCoords(coordsX,coordsY,coordsZ);
8070 f=mesh.getMeasureField(True)
8071 mesh2=mesh.deepCpy()
8072 for myId in [0,1,2,10,11,12,20,21,22]:
8073 f=mesh.getMeasureField(True)
8074 f.changeUnderlyingMesh(mesh2,myId,1e-12);
8076 mesh2.setName("uuuu")
8077 for myId in [1,2,10,11,12,20,21,22]:
8078 f=mesh.getMeasureField(True)
8079 f.changeUnderlyingMesh(mesh2,myId,1e-12);
8083 def testDADFindCommonTuples1(self):
8084 da=DataArrayDouble.New();
8086 array1=[2.3,1.2,1.3,2.3,2.301,0.8]
8087 da.setValues(array1,6,1)
8088 c,cI=da.findCommonTuples(1e-2);
8091 self.assertEqual(3,c.getNbOfElems());
8092 self.assertEqual(2,cI.getNbOfElems());
8093 self.assertEqual(expected1,c.getValues())
8094 self.assertEqual(expected2,cI.getValues())
8095 c,cI=da.findCommonTuples(2e-1)
8096 expected3=[0,3,4,1,2]
8098 self.assertEqual(5,c.getNbOfElems());
8099 self.assertEqual(3,cI.getNbOfElems());
8100 self.assertEqual(expected3,c.getValues())
8101 self.assertEqual(expected4,cI.getValues())
8103 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]
8104 da.setValues(array2,6,2)
8105 c,cI=da.findCommonTuples(1e-2);
8106 self.assertEqual(3,c.getNbOfElems());
8107 self.assertEqual(2,cI.getNbOfElems());
8108 self.assertEqual(expected1,c.getValues())
8109 self.assertEqual(expected2,cI.getValues())
8110 c,cI=da.findCommonTuples(2e-1)
8111 self.assertEqual(5,c.getNbOfElems());
8112 self.assertEqual(3,cI.getNbOfElems());
8113 self.assertEqual(expected3,c.getValues())
8114 self.assertEqual(expected4,cI.getValues())
8116 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]
8117 da.setValues(array3,6,3)
8118 c,cI=da.findCommonTuples(1e-2);
8119 self.assertEqual(3,c.getNbOfElems());
8120 self.assertEqual(2,cI.getNbOfElems());
8121 self.assertEqual(expected1,c.getValues())
8122 self.assertEqual(expected2,cI.getValues())
8123 c,cI=da.findCommonTuples(2e-1)
8124 self.assertEqual(5,c.getNbOfElems());
8125 self.assertEqual(3,cI.getNbOfElems());
8126 self.assertEqual(expected3,c.getValues())
8127 self.assertEqual(expected4,cI.getValues())
8128 # nbOftuples=1, no common groups
8129 array11=[2.3,1.2,1.3,2.4,2.5,0.8]
8130 da.setValues(array11,6,1)
8131 c,cI=da.findCommonTuples(1e-2);
8132 self.assertEqual(0,c.getNbOfElems());
8133 self.assertEqual(1,cI.getNbOfElems());
8134 self.assertEqual([0],cI.getValues())
8137 da.setValues(array12,6,5) #bad NumberOfComponents
8138 self.assertRaises(InterpKernelException, da.findCommonTuples, 1e-2);
8141 def testDABack1(self):
8142 da=DataArrayDouble.New();
8143 array1=[2.3,1.2,1.3,2.3,2.301,0.8]
8144 da.setValues(array1,6,1);
8145 self.assertAlmostEqual(0.8,da.back(),14);
8147 self.assertRaises(InterpKernelException,da.back);
8149 self.assertRaises(InterpKernelException,da.back);
8151 da=DataArrayInt.New();
8153 da.setValues(array2,4,1);
8154 self.assertEqual(2,da.back());
8156 self.assertRaises(InterpKernelException,da.back);
8158 self.assertRaises(InterpKernelException,da.back);
8161 def testDADGetDifferentValues1(self):
8162 da=DataArrayDouble.New();
8163 array1=[2.3,1.2,1.3,2.3,2.301,0.8]
8164 da.setValues(array1,6,1)
8166 expected1=[2.301,1.2,1.3,0.8]
8167 dv=da.getDifferentValues(1e-2);
8168 self.assertEqual(4,dv.getNbOfElems());
8170 self.assertAlmostEqual(expected1[i],dv.getIJ(i,0),14);
8173 dv=da.getDifferentValues(2e-1);
8174 expected2=[2.301,1.3,0.8]
8175 self.assertEqual(3,dv.getNbOfElems());
8177 self.assertAlmostEqual(expected2[i],dv.getIJ(i,0),14);
8181 def testDAIBuildOld2NewArrayFromSurjectiveFormat2(self):
8184 a=DataArrayInt.New();
8185 a.setValues(arr,5,1);
8186 b=DataArrayInt.New();
8187 b.setValues(arrI,3,1);
8188 ret,newNbTuple=DataArrayInt.BuildOld2NewArrayFromSurjectiveFormat2(10,a,b);
8189 expected=[0,1,2,0,3,4,5,4,6,4]
8190 self.assertEqual(10,ret.getNbOfElems());
8191 self.assertEqual(7,newNbTuple);
8192 self.assertEqual(1,ret.getNumberOfComponents());
8193 self.assertEqual(expected,ret.getValues());
8194 self.assertRaises(InterpKernelException,DataArrayInt.BuildOld2NewArrayFromSurjectiveFormat2,9,a,b);
8197 def testDADIReverse1(self):
8199 a=DataArrayInt.New();
8200 a.setValues(arr,6,1);
8201 self.assertEqual(2,a.back());
8204 self.assertEqual(arr[5-i],a.getIJ(i,0));
8206 a.setValues(arr[:-1],5,1);
8209 self.assertEqual(arr[4-i],a.getIJ(i,0));
8212 arr2=[0.,3.,5.,7.,9.,2.]
8213 b=DataArrayDouble.New();
8214 b.setValues(arr2,6,1);
8217 self.assertAlmostEqual(arr2[5-i],b.getIJ(i,0),14);
8219 b.setValues(arr2[:5],5,1);
8220 self.assertAlmostEqual(9.,b.back(),14)
8223 self.assertAlmostEqual(arr2[4-i],b.getIJ(i,0),14);
8227 def testGetNodeIdsInUse1(self):
8228 m0=MEDCouplingDataForTest.build2DTargetMesh_1();
8230 m1=m0.buildPartOfMySelf(CellIds,True);
8231 arr,newNbOfNodes=m1.getNodeIdsInUse();
8232 expected=[-1,0,1,-1,2,3,-1,-1,-1]
8233 self.assertEqual(4,newNbOfNodes);
8234 self.assertEqual(9,arr.getNbOfElems());
8235 self.assertEqual(expected,arr.getValues());
8236 arr2=arr.invertArrayO2N2N2O(newNbOfNodes);
8237 self.assertEqual(4,arr2.getNbOfElems());
8239 self.assertEqual(expected2,arr2.getValues());
8242 def testBuildDescendingConnec2(self):
8243 mesh=MEDCouplingDataForTest.build2DTargetMesh_1();
8245 mesh2,desc,descIndx,revDesc,revDescIndx=mesh.buildDescendingConnectivity2();
8246 mesh2.checkCoherency();
8247 self.assertEqual(1,mesh2.getMeshDimension());
8248 self.assertEqual(13,mesh2.getNumberOfCells());
8249 self.assertEqual(14,revDescIndx.getNbOfElems()); self.assertEqual(14,revDescIndx.getNumberOfTuples());
8250 self.assertEqual(6,descIndx.getNbOfElems()); self.assertEqual(6,descIndx.getNumberOfTuples());
8251 self.assertEqual(18,desc.getNbOfElems()); self.assertEqual(18,desc.getNumberOfTuples());
8252 self.assertEqual(18,revDesc.getNbOfElems()); self.assertEqual(18,revDesc.getNumberOfTuples());
8253 expected1=[1,2,3,4,-3,5,6, 7,8,-5,9,10,-2,11, 12,13,-7,-10]
8254 self.assertEqual(expected1,desc.getValues());
8255 expected2=[0,4,7,10,14,18]
8256 self.assertEqual(expected2,descIndx.getValues());
8257 expected3=[0,1,3,5,6,8,9,11,12,13,15,16,17,18]
8258 self.assertEqual(expected3,revDescIndx.getValues());
8259 expected4=[0, 0,3, 0,1, 0, 1,2, 1, 2,4, 2, 3, 3,4, 3, 4, 4]
8260 self.assertEqual(expected4,revDesc.getValues());
8261 conn=mesh2.getNodalConnectivity();
8262 connIndex=mesh2.getNodalConnectivityIndex();
8263 expected5=[0,3,6,9,12,15,18,21,24,27,30,33,36,39]
8264 self.assertEqual(expected5,connIndex.getValues());
8265 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]
8266 self.assertEqual(expected6,conn.getValues());
8269 def testIntersect2DMeshesTmp1(self):
8270 m1c=MEDCouplingCMesh.New();
8271 coordsX=DataArrayDouble.New();
8272 arrX=[ -1., 1., 2., 4. ]
8273 coordsX.setValues(arrX,4,1);
8274 m1c.setCoordsAt(0,coordsX);
8275 coordsY=DataArrayDouble.New();
8276 arrY=[ -2., 2., 4., 8. ]
8277 coordsY.setValues(arrY,4,1);
8278 m1c.setCoordsAt(1,coordsY);
8279 m1=m1c.buildUnstructured()
8280 m1bis=m1.buildPartOfMySelf([3,4,5],False)
8282 m2=m2.buildPartOfMySelf([0,1,2],False)
8283 m2.translate([0.5,0.5])
8285 m3,d1,d2=MEDCouplingUMesh.Intersect2DMeshes(m1bis,m2,1e-10)
8286 expected1=[0,0,1,1,1,2,2,2]
8287 expected2=[0,-1,0,1,-1,1,2,-1]
8288 self.assertEqual(8,d1.getNumberOfTuples());
8289 self.assertEqual(8,d2.getNumberOfTuples());
8290 self.assertEqual(8,m3.getNumberOfCells());
8291 self.assertEqual(22,m3.getNumberOfNodes());
8292 self.assertEqual(2,m3.getSpaceDimension());
8293 self.assertEqual(expected1,d1.getValues());
8294 self.assertEqual(expected2,d2.getValues());
8295 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]
8296 expected4=[0,5,12,17,22,28,33,38,44]
8297 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]
8298 self.assertEqual(44,m3.getNodalConnectivity().getNumberOfTuples());
8299 self.assertEqual(9,m3.getNodalConnectivityIndex().getNumberOfTuples());
8300 self.assertEqual(expected3,m3.getNodalConnectivity().getValues());
8301 self.assertEqual(expected4,m3.getNodalConnectivityIndex().getValues());
8302 for i in xrange(44):
8303 self.assertAlmostEqual(expected5[i],m3.getCoords().getIJ(0,i),12);
8307 def testFindNodesOnLine1(self):
8308 mesh=MEDCouplingDataForTest.build2DTargetMesh_1();
8316 res=mesh.findNodesOnLine(pt,vec,1e-12);
8317 self.assertEqual(3,len(res));
8318 self.assertEqual(expected1,res.getValues());
8320 mesh.changeSpaceDimension(3);
8321 mesh.rotate(pt2,vec2,pi/4.);
8322 res=mesh.findNodesOnLine(pt3,vec3,1e-12);
8323 self.assertEqual(3,len(res));
8324 self.assertEqual(expected1,res.getValues());
8327 def testIntersect2DMeshesTmp2(self):
8328 m1c=MEDCouplingCMesh.New();
8329 coordsX1=DataArrayDouble.New();
8330 arrX1=[ 0., 1., 1.5, 2. ]
8331 coordsX1.setValues(arrX1,4,1);
8332 m1c.setCoordsAt(0,coordsX1);
8333 coordsY1=DataArrayDouble.New();
8334 arrY1=[ 0., 1.5, 3.]
8335 coordsY1.setValues(arrY1,3,1);
8336 m1c.setCoordsAt(1,coordsY1);
8337 m1=m1c.buildUnstructured();
8338 m2c=MEDCouplingCMesh.New();
8339 coordsX2=DataArrayDouble.New();
8340 arrX2=[ 0., 1., 2. ]
8341 coordsX2.setValues(arrX2,3,1);
8342 m2c.setCoordsAt(0,coordsX2);
8343 coordsY2=DataArrayDouble.New();
8345 coordsY2.setValues(arrY2,3,1);
8346 m2c.setCoordsAt(1,coordsY2);
8347 m2=m2c.buildUnstructured();
8349 m3,d1,d2=MEDCouplingUMesh.Intersect2DMeshes(m1,m2,1e-10)
8351 expected1=[0,0,1,1,2,2,3,4,5]
8352 expected2=[0,2,1,3,1,3,2,3,3]
8353 self.assertEqual(9,d1.getNumberOfTuples());
8354 self.assertEqual(9,d2.getNumberOfTuples());
8355 self.assertEqual(9,m3.getNumberOfCells());
8356 self.assertEqual(22,m3.getNumberOfNodes());
8357 self.assertEqual(2,m3.getSpaceDimension());
8358 self.assertEqual(expected1,d1.getValues());
8359 self.assertEqual(expected2,d2.getValues());
8360 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]
8361 expected4=[0,5,10,15,20,25,30,35,40,45]
8362 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]
8363 self.assertEqual(45,m3.getNodalConnectivity().getNumberOfTuples());
8364 self.assertEqual(10,m3.getNodalConnectivityIndex().getNumberOfTuples());
8365 self.assertEqual(expected3,m3.getNodalConnectivity().getValues());
8366 self.assertEqual(expected4,m3.getNodalConnectivityIndex().getValues());
8367 for i in xrange(44):
8368 self.assertAlmostEqual(expected5[i],m3.getCoords().getIJ(0,i),12);
8372 def testBuildPartOfMySelfSafe1(self):
8373 mesh=MEDCouplingDataForTest.build2DTargetMesh_1()
8374 self.assertRaises(InterpKernelException,mesh.buildPartOfMySelf,[0,-1,4,2],True)
8375 self.assertRaises(InterpKernelException,mesh.buildPartOfMySelf,[0,4,5,4],True)
8378 def testIntersect2DMeshesTmp3(self):
8379 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];
8380 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];
8381 m1=MEDCouplingUMesh.New();
8382 m1.setMeshDimension(2);
8383 m1.allocateCells(8);
8384 m1.insertNextCell(NORM_TRI6,6,m1Conn[0:6]);
8385 m1.insertNextCell(NORM_QUAD8,8,m1Conn[6:14]);
8386 m1.insertNextCell(NORM_TRI6,6,m1Conn[14:20]);
8387 m1.insertNextCell(NORM_QUAD8,8,m1Conn[20:28]);
8388 m1.insertNextCell(NORM_TRI6,6,m1Conn[28:34]);
8389 m1.insertNextCell(NORM_QUAD8,8,m1Conn[34:42]);
8390 m1.insertNextCell(NORM_TRI6,6,m1Conn[42:48]);
8391 m1.insertNextCell(NORM_QUAD8,8,m1Conn[48:56]);
8392 m1.finishInsertingCells();
8393 myCoords1=DataArrayDouble.New();
8394 myCoords1.setValues(m1Coords,25,2);
8395 m1.setCoords(myCoords1);
8397 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.]
8398 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]
8399 m2=MEDCouplingUMesh.New();
8400 m2.setMeshDimension(2);
8401 m2.allocateCells(8);
8403 m2.insertNextCell(NORM_QUAD4,4,m2Conn[4*i:4*(i+1)])
8405 m2.finishInsertingCells();
8406 myCoords2=DataArrayDouble.New();
8407 myCoords2.setValues(m2Coords,15,2);
8408 m2.setCoords(myCoords2);
8410 m3,d1,d2=MEDCouplingUMesh.Intersect2DMeshes(m1,m2,1e-10)
8413 expected1=[0,1,1,1,2,3,3,3,4,5,5,5,6,7,7,7]
8414 expected2=[0,0,1,-1,2,2,3,-1,4,4,5,-1,6,6,7,-1]
8415 self.assertEqual(16,d1.getNumberOfTuples());
8416 self.assertEqual(16,d2.getNumberOfTuples());
8417 self.assertEqual(16,m3.getNumberOfCells());
8418 self.assertEqual(104,m3.getNumberOfNodes());
8419 self.assertEqual(2,m3.getSpaceDimension());
8420 self.assertEqual(expected1,d1.getValues());
8421 self.assertEqual(expected2,d2.getValues());
8422 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]
8423 expected4=[0,7,16,25,34,41,50,59,68,75,84,93,102,109,118,127,136]
8424 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]
8425 self.assertEqual(136,m3.getNodalConnectivity().getNumberOfTuples());
8426 self.assertEqual(17,m3.getNodalConnectivityIndex().getNumberOfTuples());
8427 self.assertEqual(expected3,m3.getNodalConnectivity().getValues());
8428 self.assertEqual(expected4,m3.getNodalConnectivityIndex().getValues());
8429 for i in xrange(208):
8430 self.assertAlmostEqual(expected5[i],m3.getCoords().getIJ(0,i),12);
8434 def testUMeshTessellate2D1(self):
8435 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];
8436 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];
8437 m1=MEDCouplingUMesh.New();
8438 m1.setMeshDimension(2);
8439 m1.allocateCells(8);
8440 m1.insertNextCell(NORM_TRI6,6,m1Conn[0:6]);
8441 m1.insertNextCell(NORM_QUAD8,8,m1Conn[6:14]);
8442 m1.insertNextCell(NORM_TRI6,6,m1Conn[14:20]);
8443 m1.insertNextCell(NORM_QUAD8,8,m1Conn[20:28]);
8444 m1.insertNextCell(NORM_TRI6,6,m1Conn[28:34]);
8445 m1.insertNextCell(NORM_QUAD8,8,m1Conn[34:42]);
8446 m1.insertNextCell(NORM_TRI6,6,m1Conn[42:48]);
8447 m1.insertNextCell(NORM_QUAD8,8,m1Conn[48:56]);
8448 m1.finishInsertingCells();
8449 myCoords1=DataArrayDouble.New();
8450 myCoords1.setValues(m1Coords,25,2);
8451 m1.setCoords(myCoords1);
8454 m11.tessellate2D(1.);
8455 self.assertTrue(m11.getCoords().isEqual(m11.getCoords(),1e-12));
8456 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]
8457 expected2=[0,5,12,17,24,29,36,41,48]
8458 self.assertEqual(48,m11.getNodalConnectivity().getNumberOfTuples());
8459 self.assertEqual(9,m11.getNodalConnectivityIndex().getNumberOfTuples());
8460 self.assertEqual(expected1,m11.getNodalConnectivity().getValues());
8461 self.assertEqual(expected2,m11.getNodalConnectivityIndex().getValues());
8464 m12.tessellate2D(0.5);
8465 self.assertEqual(41,m12.getNumberOfNodes());
8466 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]
8467 expected4=[0,6,15,21,30,36,45,51,60]
8468 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]
8469 for i in xrange(82):
8470 self.assertAlmostEqual(expected5[i],m12.getCoords().getIJ(0,i),12);
8472 self.assertEqual(60,m12.getNodalConnectivity().getNumberOfTuples());
8473 self.assertEqual(9,m12.getNodalConnectivityIndex().getNumberOfTuples());
8474 self.assertEqual(expected3,m12.getNodalConnectivity().getValues());
8475 self.assertEqual(expected4,m12.getNodalConnectivityIndex().getValues());
8478 def testUMeshTessellate2DCurve1(self):
8479 # A quarter of circle:
8480 mcoords = [0.4,0.0, 0.0,-0.4, 0.283,-0.283]
8483 m1 = MEDCouplingUMesh.New()
8484 m1.setMeshDimension(1)
8486 m1.insertNextCell(NORM_SEG3, mconnec)
8488 myCoords = DataArrayDouble.New(mcoords, 3, 2)
8489 m1.setCoords(myCoords)
8492 m2.tessellate2DCurve(0.1)
8493 # If the following raises, the test will fail automatically:
8494 m2.checkCoherency1(0.0) # eps param not used
8496 def testIntersect2DMeshesTmp4(self):
8497 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];
8498 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];
8499 m1=MEDCouplingUMesh.New();
8500 m1.setMeshDimension(2);
8501 m1.allocateCells(8);
8502 m1.insertNextCell(NORM_TRI6,6,m1Conn[0:6]);
8503 m1.insertNextCell(NORM_QUAD8,8,m1Conn[6:14]);
8504 m1.insertNextCell(NORM_TRI6,6,m1Conn[14:20]);
8505 m1.insertNextCell(NORM_QUAD8,8,m1Conn[20:28]);
8506 m1.insertNextCell(NORM_TRI6,6,m1Conn[28:34]);
8507 m1.insertNextCell(NORM_QUAD8,8,m1Conn[34:42]);
8508 m1.insertNextCell(NORM_TRI6,6,m1Conn[42:48]);
8509 m1.insertNextCell(NORM_QUAD8,8,m1Conn[48:56]);
8510 m1.finishInsertingCells();
8511 myCoords1=DataArrayDouble.New();
8512 myCoords1.setValues(m1Coords,25,2);
8513 m1.setCoords(myCoords1);
8515 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.]
8516 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]
8517 m2=MEDCouplingUMesh.New();
8518 m2.setMeshDimension(2);
8519 m2.allocateCells(8);
8521 m2.insertNextCell(NORM_QUAD4,4,m2Conn[4*i:4*(i+1)])
8523 m2.finishInsertingCells();
8524 myCoords2=DataArrayDouble.New();
8525 myCoords2.setValues(m2Coords,15,2);
8526 m2.setCoords(myCoords2);
8528 m3,d1,d2=MEDCouplingUMesh.Intersect2DMeshes(m2,m1,1e-10)
8531 expected1=[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]
8532 expected2=[0,1,1,-1,2,3,3,-1,4,5,5,-1,6,7,7,-1]
8533 self.assertEqual(16,d1.getNumberOfTuples());
8534 self.assertEqual(16,d2.getNumberOfTuples());
8535 self.assertEqual(16,m3.getNumberOfCells());
8536 self.assertEqual(104,m3.getNumberOfNodes());
8537 self.assertEqual(2,m3.getSpaceDimension());
8538 self.assertEqual(expected1,d1.getValues());
8539 self.assertEqual(expected2,d2.getValues());
8540 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]
8541 expected4=[0,7,16,25,34,41,50,59,68,75,84,93,102,109,118,127,136]
8542 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]
8543 self.assertEqual(136,m3.getNodalConnectivity().getNumberOfTuples());
8544 self.assertEqual(17,m3.getNodalConnectivityIndex().getNumberOfTuples());
8545 self.assertEqual(expected3,m3.getNodalConnectivity().getValues());
8546 self.assertEqual(expected4,m3.getNodalConnectivityIndex().getValues());
8547 for i in xrange(208):
8548 self.assertAlmostEqual(expected5[i],m3.getCoords().getIJ(0,i),12);
8552 def testGetCellIdsCrossingPlane1(self):
8553 mesh3D,mesh2D=MEDCouplingDataForTest.build3DExtrudedUMesh_1();
8555 origin=[1.524,1.4552,1.74768]
8556 ids1=mesh3D.getCellIdsCrossingPlane(origin,vec,1e-10)
8557 self.assertEqual([1,3,4,7,9,10,13,15,16],ids1.getValues())
8559 ids2=mesh3D.getCellIdsCrossingPlane(origin,vec2,1e-10)
8560 self.assertEqual([6,7,8,9,10,11],ids2.getValues())
8563 def testBuildSlice3D1(self):
8564 mesh3D,mesh2D=MEDCouplingDataForTest.build3DExtrudedUMesh_1();
8565 vec1=[-0.07,1.,0.07]
8566 origin1=[1.524,1.4552,1.74768]
8567 slice1,ids=mesh3D.buildSlice3D(origin1,vec1,1e-10);
8568 expected1=[1,3,4,7,9,10,13,15,16]
8569 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]
8570 expected3=[0,6,11,17,22,27,32,37,42,47]
8571 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.]
8572 self.assertEqual(2,slice1.getMeshDimension());
8573 self.assertEqual(3,slice1.getSpaceDimension());
8574 self.assertEqual(57,slice1.getNumberOfNodes());
8575 self.assertEqual(9,slice1.getNumberOfCells());
8576 self.assertEqual(9,ids.getNumberOfTuples());
8577 self.assertEqual(47,slice1.getNodalConnectivity().getNumberOfTuples());
8578 self.assertEqual(10,slice1.getNodalConnectivityIndex().getNumberOfTuples());
8579 self.assertEqual(expected1,ids.getValues());
8580 self.assertEqual(expected2,slice1.getNodalConnectivity().getValues());
8581 self.assertEqual(expected3,slice1.getNodalConnectivityIndex().getValues());
8582 for i in xrange(171):
8583 self.assertAlmostEqual(expected4[i],slice1.getCoords().getIJ(0,i),12);
8585 # 2nd slice based on already existing nodes of mesh3D.
8588 slice1,ids=mesh3D.buildSlice3D(origin2,vec2,1e-10);
8589 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]
8590 expected6=[0,5,10,15,21,26,32,38,43,49]
8591 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]
8592 self.assertEqual(2,slice1.getMeshDimension());
8593 self.assertEqual(3,slice1.getSpaceDimension());
8594 self.assertEqual(60,slice1.getNumberOfNodes());
8595 self.assertEqual(9,slice1.getNumberOfCells());
8596 self.assertEqual(9,ids.getNumberOfTuples());
8597 self.assertEqual(49,slice1.getNodalConnectivity().getNumberOfTuples());
8598 self.assertEqual(10,slice1.getNodalConnectivityIndex().getNumberOfTuples());
8599 self.assertEqual(expected1,ids.getValues());
8600 self.assertEqual(expected5,slice1.getNodalConnectivity().getValues());
8601 self.assertEqual(expected6,slice1.getNodalConnectivityIndex().getValues());
8602 for i in xrange(180):
8603 self.assertAlmostEqual(expected7[i],slice1.getCoords().getIJ(0,i),12);
8605 # 3rd slice based on shared face of mesh3D.
8608 slice1,ids=mesh3D.buildSlice3D(origin3,vec3,1e-10);
8609 expected8=[6,7,8,9,10,11,12,13,14,15,16,17]
8610 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]
8611 expected10=[0,5,12,17,22,29,34,39,46,51,56,63,68]
8612 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.]
8613 self.assertEqual(2,slice1.getMeshDimension());
8614 self.assertEqual(3,slice1.getSpaceDimension());
8615 self.assertEqual(45,slice1.getNumberOfNodes());
8616 self.assertEqual(12,slice1.getNumberOfCells());
8617 self.assertEqual(12,ids.getNumberOfTuples());
8618 self.assertEqual(68,slice1.getNodalConnectivity().getNumberOfTuples());
8619 self.assertEqual(13,slice1.getNodalConnectivityIndex().getNumberOfTuples());
8620 self.assertEqual(expected8,ids.getValues());
8621 self.assertEqual(expected9,slice1.getNodalConnectivity().getValues());
8622 self.assertEqual(expected10,slice1.getNodalConnectivityIndex().getValues());
8623 for i in xrange(135):
8624 self.assertAlmostEqual(expected11[i],slice1.getCoords().getIJ(0,i),12);
8628 def testBuildSlice3DSurf1(self):
8629 mesh3D,mesh2D=MEDCouplingDataForTest.build3DExtrudedUMesh_1();
8630 mesh2D=mesh3D.buildDescendingConnectivity()[0];
8631 vec1=[-0.07,1.,0.07]
8632 origin1=[1.524,1.4552,1.74768]
8633 slice1,ids=mesh2D.buildSlice3DSurf(origin1,vec1,1e-10);
8634 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]
8635 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]
8636 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];
8637 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.]
8638 self.assertEqual(1,slice1.getMeshDimension());
8639 self.assertEqual(3,slice1.getSpaceDimension());
8640 self.assertEqual(57,slice1.getNumberOfNodes());
8641 self.assertEqual(25,slice1.getNumberOfCells());
8642 self.assertEqual(25,ids.getNumberOfTuples());
8643 self.assertEqual(75,slice1.getNodalConnectivity().getNumberOfTuples());
8644 self.assertEqual(26,slice1.getNodalConnectivityIndex().getNumberOfTuples());
8645 self.assertEqual(expected1,ids.getValues());
8646 self.assertEqual(expected2,slice1.getNodalConnectivity().getValues());
8647 self.assertEqual(expected3,slice1.getNodalConnectivityIndex().getValues());
8648 for i in xrange(171):
8649 self.assertAlmostEqual(expected4[i],slice1.getCoords().getIJ(0,i),12);
8654 slice1,ids=mesh2D.buildSlice3DSurf(origin2,vec2,1e-10);
8655 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]
8656 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]
8657 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];
8658 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.]
8659 self.assertEqual(1,slice1.getMeshDimension());
8660 self.assertEqual(3,slice1.getSpaceDimension());
8661 self.assertEqual(45,slice1.getNumberOfNodes());
8662 self.assertEqual(68,slice1.getNumberOfCells());
8663 self.assertEqual(68,ids.getNumberOfTuples());
8664 self.assertEqual(204,slice1.getNodalConnectivity().getNumberOfTuples());
8665 self.assertEqual(69,slice1.getNodalConnectivityIndex().getNumberOfTuples());
8666 self.assertEqual(expected5,ids.getValues());
8667 self.assertEqual(expected6,slice1.getNodalConnectivity().getValues());
8668 self.assertEqual(expected7,slice1.getNodalConnectivityIndex().getValues());
8669 for i in xrange(135):
8670 self.assertAlmostEqual(expected8[i],slice1.getCoords().getIJ(0,i),12);
8674 def testDataArrayDoubleAdvSetting1(self):
8675 data1=[1.,11.,2.,12.,3.,13.,4.,14.,5.,15.,6.,16.,7.,17.]
8676 data2=[8.,38.,9.,39.,0.,30.,11.,41.,12.,42.]
8677 compsCpp=["comp1","comp2"]
8678 da=DataArrayDouble.New();
8679 da.setInfoAndChangeNbOfCompo(compsCpp);
8682 compsCpp=compsCpp[:-1]
8683 self.assertRaises(InterpKernelException,da.setInfoAndChangeNbOfCompo,compsCpp);
8684 da.setValues(data1,7,2)
8686 p=[(0,3),(3,5),(5,7)]
8687 tmp=da.selectByTupleRanges(p);
8688 self.assertTrue(tmp.isEqual(da,1e-14));
8689 p=[(0,2),(3,4),(5,7)]
8690 tmp=da.selectByTupleRanges(p);
8691 expected1=[1.,11.,2.,12.,4.,14.,6.,16.,7.,17.]
8692 self.assertEqual(5,tmp.getNumberOfTuples());
8693 self.assertEqual(2,tmp.getNumberOfComponents());
8694 for i in xrange(10):
8695 self.assertAlmostEqual(expected1[i],tmp.getIJ(0,i),14);
8697 p=[(0,2),(0,2),(5,6)]
8698 tmp=da.selectByTupleRanges(p);
8699 expected2=[1.,11.,2.,12.,1.,11.,2.,12.,6.,16.]
8700 self.assertEqual(5,tmp.getNumberOfTuples());
8701 self.assertEqual(2,tmp.getNumberOfComponents());
8702 for i in xrange(10):
8703 self.assertAlmostEqual(expected2[i],tmp.getIJ(0,i),14);
8705 p=[(0,2),(-1,2),(5,6)]
8706 self.assertRaises(InterpKernelException,da.selectByTupleRanges,p);
8707 p=[(0,2),(0,2),(5,8)]
8708 self.assertRaises(InterpKernelException,da.selectByTupleRanges,p);
8710 da2=DataArrayDouble.New();
8711 da2.setValues(data2,5,2);
8714 dac.setContigPartOfSelectedValues2(1,da2,2,4,1);
8715 expected3=[1.,11.,0.,30.,11.,41.,4.,14.,5.,15.,6.,16.,7.,17.]
8716 for i in xrange(14):
8717 self.assertAlmostEqual(expected3[i],dac.getIJ(0,i),14);
8721 self.assertRaises(InterpKernelException,dac.setContigPartOfSelectedValues2,3,da2,0,5,1);
8722 self.assertRaises(InterpKernelException,dac.setContigPartOfSelectedValues2,0,da2,4,6,1);
8723 self.assertRaises(InterpKernelException,dac.setContigPartOfSelectedValues2,3,da2,5,0,1);
8724 dac.setContigPartOfSelectedValues2(3,da2,1,5,1);
8725 expected4=[1.,11.,2.,12.,3.,13.,9.,39.,0.,30.,11.,41.,12.,42.]
8726 for i in xrange(14):
8727 self.assertAlmostEqual(expected4[i],dac.getIJ(0,i),14);
8730 ids=DataArrayInt.New();
8733 ids.setIJ(0,0,2); ids.setIJ(1,0,0); ids.setIJ(2,0,4);
8734 dac.setContigPartOfSelectedValues(2,da2,ids);
8735 expected5=[1.,11.,2.,12.,0.,30.,8.,38.,12.,42.,6.,16.,7.,17.]
8736 for i in xrange(14):
8737 self.assertAlmostEqual(expected5[i],dac.getIJ(0,i),14);
8741 ids.setIJ(0,0,2); ids.setIJ(1,0,5); ids.setIJ(2,0,4);
8742 self.assertRaises(InterpKernelException,dac.setContigPartOfSelectedValues,1,da2,ids);
8743 ids.setIJ(0,0,2); ids.setIJ(1,0,2); ids.setIJ(2,0,-1);
8744 self.assertRaises(InterpKernelException,dac.setContigPartOfSelectedValues,1,da2,ids);
8745 ids.setIJ(0,0,2); ids.setIJ(1,0,2); ids.setIJ(2,0,1);
8746 self.assertRaises(InterpKernelException,dac.setContigPartOfSelectedValues,5,da2,ids);
8748 ids.setIJ(0,0,2); ids.setIJ(1,0,2); ids.setIJ(2,0,1);
8750 dac.setContigPartOfSelectedValues(4,da2,ids);
8751 expected6=[1.,11.,2.,12.,3.,13.,4.,14.,0.,30.,0.,30.,9.,39.]
8752 for i in xrange(14):
8753 self.assertAlmostEqual(expected6[i],dac.getIJ(0,i),14);
8757 def testDataArrayIntAdvSetting1(self):
8758 data1=[1,11,2,12,3,13,4,14,5,15,6,16,7,17]
8759 data2=[8,38,9,39,0,30,11,41,12,42]
8760 compsCpp=["comp1","comp2"]
8761 da=DataArrayInt.New();
8762 da.setInfoAndChangeNbOfCompo(compsCpp);
8765 compsCpp=compsCpp[:-1]
8766 self.assertRaises(InterpKernelException,da.setInfoAndChangeNbOfCompo,compsCpp);
8767 da.setValues(data1,7,2)
8769 p=[(0,3),(3,5),(5,7)]
8770 tmp=da.selectByTupleRanges(p);
8771 self.assertTrue(tmp.isEqual(da));
8772 p=[(0,2),(3,4),(5,7)]
8773 tmp=da.selectByTupleRanges(p);
8774 expected1=[1,11,2,12,4,14,6,16,7,17]
8775 self.assertEqual(5,tmp.getNumberOfTuples());
8776 self.assertEqual(2,tmp.getNumberOfComponents());
8777 for i in xrange(10):
8778 self.assertEqual(expected1[i],tmp.getIJ(0,i));
8780 p=[(0,2),(0,2),(5,6)]
8781 tmp=da.selectByTupleRanges(p);
8782 expected2=[1,11,2,12,1,11,2,12,6,16]
8783 self.assertEqual(5,tmp.getNumberOfTuples());
8784 self.assertEqual(2,tmp.getNumberOfComponents());
8785 for i in xrange(10):
8786 self.assertEqual(expected2[i],tmp.getIJ(0,i));
8788 p=[(0,2),(-1,2),(5,6)]
8789 self.assertRaises(InterpKernelException,da.selectByTupleRanges,p);
8790 p=[(0,2),(0,2),(5,8)]
8791 self.assertRaises(InterpKernelException,da.selectByTupleRanges,p);
8793 da2=DataArrayInt.New();
8794 da2.setValues(data2,5,2);
8797 dac.setContigPartOfSelectedValues2(1,da2,2,4,1);
8798 expected3=[1,11,0,30,11,41,4,14,5,15,6,16,7,17]
8799 for i in xrange(14):
8800 self.assertEqual(expected3[i],dac.getIJ(0,i));
8804 self.assertRaises(InterpKernelException,dac.setContigPartOfSelectedValues2,3,da2,0,5,1);
8805 self.assertRaises(InterpKernelException,dac.setContigPartOfSelectedValues2,0,da2,4,6,1);
8806 self.assertRaises(InterpKernelException,dac.setContigPartOfSelectedValues2,3,da2,5,0,1);
8807 dac.setContigPartOfSelectedValues2(3,da2,1,5,1);
8808 expected4=[1,11,2,12,3,13,9,39,0,30,11,41,12,42]
8809 for i in xrange(14):
8810 self.assertEqual(expected4[i],dac.getIJ(0,i));
8813 ids=DataArrayInt.New();
8816 ids.setIJ(0,0,2); ids.setIJ(1,0,0); ids.setIJ(2,0,4);
8817 dac.setContigPartOfSelectedValues(2,da2,ids);
8818 expected5=[1,11,2,12,0,30,8,38,12,42,6,16,7,17]
8819 for i in xrange(14):
8820 self.assertEqual(expected5[i],dac.getIJ(0,i));
8824 ids.setIJ(0,0,2); ids.setIJ(1,0,5); ids.setIJ(2,0,4);
8825 self.assertRaises(InterpKernelException,dac.setContigPartOfSelectedValues,1,da2,ids);
8826 ids.setIJ(0,0,2); ids.setIJ(1,0,2); ids.setIJ(2,0,-1);
8827 self.assertRaises(InterpKernelException,dac.setContigPartOfSelectedValues,1,da2,ids);
8828 ids.setIJ(0,0,2); ids.setIJ(1,0,2); ids.setIJ(2,0,1);
8829 self.assertRaises(InterpKernelException,dac.setContigPartOfSelectedValues,5,da2,ids);
8831 ids.setIJ(0,0,2); ids.setIJ(1,0,2); ids.setIJ(2,0,1);
8833 dac.setContigPartOfSelectedValues(4,da2,ids);
8834 expected6=[1,11,2,12,3,13,4,14,0,30,0,30,9,39]
8835 for i in xrange(14):
8836 self.assertEqual(expected6[i],dac.getIJ(0,i));
8840 def testBuildDescendingConnec2Of3DMesh1(self):
8841 mesh=MEDCouplingDataForTest.build3DSourceMesh_1();
8843 mesh2,desc,descIndx,revDesc,revDescIndx=mesh.buildDescendingConnectivity2();
8844 mesh2.checkCoherency();
8845 self.assertEqual(2,mesh2.getMeshDimension());
8846 self.assertEqual(30,mesh2.getNumberOfCells());
8847 self.assertEqual(31,revDescIndx.getNbOfElems()); self.assertEqual(31,revDescIndx.getNumberOfTuples());
8848 self.assertEqual(13,descIndx.getNbOfElems()); self.assertEqual(13,descIndx.getNumberOfTuples());
8849 self.assertEqual(48,desc.getNbOfElems()); self.assertEqual(48,desc.getNumberOfTuples());
8850 self.assertEqual(48,revDesc.getNbOfElems()); self.assertEqual(48,revDesc.getNumberOfTuples());
8851 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]
8852 self.assertEqual(expected1,desc.getValues());
8853 expected2=[0,4,8,12,16,20,24,28,32,36,40,44,48]
8854 self.assertEqual(expected2,descIndx.getValues());
8855 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]
8856 self.assertEqual(expected3,revDescIndx.getValues());
8857 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]
8858 self.assertEqual(expected4,revDesc.getValues());
8859 conn=mesh2.getNodalConnectivity();
8860 connIndex=mesh2.getNodalConnectivityIndex();
8861 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]
8862 self.assertEqual(expected5,connIndex.getValues());
8863 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]
8864 self.assertEqual(expected6,conn.getValues());
8867 def testAre2DCellsNotCorrectlyOriented1(self):
8868 m1Coords=[1.,1.,-1.,-1.,-1.,-1.,1.,-1.]
8870 m1=MEDCouplingUMesh.New();
8871 m1.setMeshDimension(2);
8872 m1.allocateCells(1);
8873 m1.insertNextCell(NORM_QUAD4,4,m1Conn[0:4])
8874 m1.finishInsertingCells();
8875 myCoords1=DataArrayDouble.New();
8876 myCoords1.setValues(m1Coords,4,2);
8877 m1.setCoords(myCoords1);
8880 for i in xrange(18):
8881 vec2=[3.*cos(pi/9.*i),3.*sin(pi/9.*i)];
8883 m1Cpy.translate(vec2);
8884 self.assertRaises(InterpKernelException,m1Cpy.are2DCellsNotCorrectlyOriented,vec1,False);
8885 m1Cpy.changeSpaceDimension(3);
8886 res=m1Cpy.are2DCellsNotCorrectlyOriented(vec1,False)
8887 self.assertEqual([0],res.getValues());
8891 def testDataArrayAbs1(self):
8892 d1=DataArrayDouble.New();
8893 val1=[2.,-3.,-5.,6.,-7.,-8.,9.,10.,-11.,-12.,-13.,-15.]
8894 expected1=[2.,3.,5.,6.,7.,8.,9.,10.,11.,12.,13.,15.]
8895 d1.setValues(val1,6,2);
8896 d2=d1.convertToIntArr();
8899 for i in xrange(12):
8900 self.assertAlmostEqual(expected1[i],d1.getIJ(0,i),14);
8903 expected2=[2,3,5,6,7,8,9,10,11,12,13,15]
8905 for i in xrange(12):
8906 self.assertEqual(expected2[i],d2.getIJ(0,i));
8912 def testGetValueOn3(self):
8914 v2=[0.7,1.25,0.,2.,1.5]
8915 disp=[5.,50.,500.,6.,60.,600.,7.,70.,700.,8.,80.,800.]
8916 m=MEDCouplingUMesh.New("myMesh",1)
8919 m.allocateCells(nbCells)
8920 coords=DataArrayDouble.New() ; coords.setValues(v,nbNodes,1)
8922 m.insertNextCell(NORM_SEG2,2,[0,1])
8923 m.insertNextCell(NORM_SEG2,2,[2,1])
8924 m.insertNextCell(NORM_SEG2,2,[2,3])
8925 m.finishInsertingCells()
8926 f=MEDCouplingFieldDouble.New(ON_NODES)
8928 array=DataArrayDouble.New(); array.setValues(disp,m.getNumberOfNodes(),3)
8930 arr1=f.getValueOnMulti(v2)
8931 self.assertEqual(5,arr1.getNumberOfTuples());
8932 self.assertEqual(3,arr1.getNumberOfComponents());
8933 expected1=[5.7,57.,570.,6.5,65.,650.,5.,50.,500.,8.,80.,800.,7.,70.,700.]
8934 for i in xrange(15):
8935 self.assertAlmostEqual(expected1[i],arr1.getIJ(0,i),14);
8939 def testGetNodeIdsOfCell2(self):
8940 m1c=MEDCouplingCMesh.New();
8941 coordsX=DataArrayDouble.New();
8942 arrX=[ -1., 1., 2., 4., 4.5 ]
8943 coordsX.setValues(arrX,5,1);
8944 coordsY=DataArrayDouble.New();
8945 arrY=[ -2., 2., 4., 8.]
8946 coordsY.setValues(arrY,4,1);
8947 coordsZ=DataArrayDouble.New();
8949 coordsZ.setValues(arrZ,3,1);
8951 m1c.setCoordsAt(0,coordsX);
8952 expected1=[[0,1],[1,2],[2,3],[3,4]]
8953 self.assertEqual(4,m1c.getNumberOfCells())
8954 for i in xrange(m1c.getNumberOfCells()):
8955 self.assertEqual(expected1[i],m1c.getNodeIdsOfCell(i))
8958 m1c.setCoordsAt(1,coordsY);
8959 self.assertEqual(12,m1c.getNumberOfCells())
8960 self.assertEqual(20,m1c.getNumberOfNodes())
8961 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]]
8962 for i in xrange(m1c.getNumberOfCells()):
8963 self.assertEqual(expected2[i],m1c.getNodeIdsOfCell(i))
8966 m1c.setCoordsAt(2,coordsZ);
8967 self.assertEqual(24,m1c.getNumberOfCells())
8968 self.assertEqual(60,m1c.getNumberOfNodes())
8969 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]]
8970 self.assertEqual(24,m1c.getNumberOfCells())
8971 for i in xrange(m1c.getNumberOfCells()):
8972 self.assertEqual(expected3[i],m1c.getNodeIdsOfCell(i))
8976 def testSwigDADOp4(self):
8977 da=DataArrayDouble.New(range(6,30),12,2)
8978 self.assertEqual(12,da.getNumberOfTuples());
8979 self.assertEqual(2,da.getNumberOfComponents());
8980 for i in xrange(24):
8981 self.assertAlmostEqual(da.getIJ(0,i),float(i+6),13)
8983 # operator transpose
8985 self.assertEqual(2,da.getNumberOfTuples());
8986 self.assertEqual(12,da.getNumberOfComponents());
8987 for i in xrange(24):
8988 self.assertAlmostEqual(da.getIJ(0,i),float(i+6),13)
8992 da2=DataArrayDouble.New(12,1)
8995 for i in xrange(24):
8996 self.assertAlmostEqual(dabis.getIJ(0,i),-float(i+6),13)
9000 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.]
9001 for i in xrange(24):
9002 self.assertAlmostEqual(da.getIJ(0,i),expected1[i],13)
9006 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.]
9007 self.assertEqual(12,da.getNumberOfTuples());
9008 self.assertEqual(2,da.getNumberOfComponents());
9009 for i in xrange(24):
9010 self.assertAlmostEqual(da.getIJ(0,i),expected2[i],13)
9012 for pos,elt in enumerate(dabis):
9015 self.assertEqual(12,da.getNumberOfTuples());
9016 self.assertEqual(2,da.getNumberOfComponents());
9019 self.assertAlmostEqual(li[0],100.,13) ; self.assertAlmostEqual(li[1],101.,13)
9022 da=DataArrayDouble.New(range(6,30),12,2)
9023 da2=DataArrayDouble.New(range(12),12,1)
9026 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.]
9027 for i in xrange(24):
9028 self.assertAlmostEqual(da.getIJ(0,i),expected1[i],13)
9032 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.]
9033 self.assertEqual(12,da.getNumberOfTuples());
9034 self.assertEqual(2,da.getNumberOfComponents());
9035 for i in xrange(24):
9036 self.assertAlmostEqual(da.getIJ(0,i),expected2[i],13)
9038 for pos,elt in enumerate(dabis):
9041 self.assertEqual(12,da.getNumberOfTuples());
9042 self.assertEqual(2,da.getNumberOfComponents());
9043 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.]
9044 for i in xrange(24):
9045 self.assertAlmostEqual(da.getIJ(0,i),expected3[i],13)
9048 da=DataArrayDouble.New(range(6,30),12,2)
9049 da2=DataArrayDouble.New(range(12),12,1)
9052 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.]
9053 for i in xrange(24):
9054 self.assertAlmostEqual(da.getIJ(0,i),expected1[i],13)
9058 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.]
9059 self.assertEqual(12,da.getNumberOfTuples());
9060 self.assertEqual(2,da.getNumberOfComponents());
9061 for i in xrange(24):
9062 self.assertAlmostEqual(da.getIJ(0,i),expected2[i],13)
9064 for pos,elt in enumerate(dabis):
9067 self.assertEqual(12,da.getNumberOfTuples());
9068 self.assertEqual(2,da.getNumberOfComponents());
9069 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]
9070 for i in xrange(24):
9071 self.assertAlmostEqual(da.getIJ(0,i),expected3[i],13)
9074 da=DataArrayDouble.New(range(6,30),12,2)
9075 da2=DataArrayDouble.New(range(1,13),12,1)
9078 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]
9079 for i in xrange(24):
9080 self.assertAlmostEqual(da.getIJ(0,i),expected1[i],13)
9084 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]
9085 self.assertEqual(12,da.getNumberOfTuples());
9086 self.assertEqual(2,da.getNumberOfComponents());
9087 for i in xrange(24):
9088 self.assertAlmostEqual(da.getIJ(0,i),expected2[i],13)
9090 for pos,elt in enumerate(dabis):
9093 self.assertEqual(12,da.getNumberOfTuples());
9094 self.assertEqual(2,da.getNumberOfComponents());
9095 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]
9096 for i in xrange(24):
9097 self.assertAlmostEqual(da.getIJ(0,i),expected3[i],13)
9101 def testSwigDAIOp4(self):
9102 da=DataArrayInt.New(range(6,30),12,2)
9103 self.assertEqual(12,da.getNumberOfTuples());
9104 self.assertEqual(2,da.getNumberOfComponents());
9105 for i in xrange(24):
9106 self.assertEqual(da.getIJ(0,i),i+6)
9108 # operator transpose
9110 self.assertEqual(2,da.getNumberOfTuples());
9111 self.assertEqual(12,da.getNumberOfComponents());
9112 for i in xrange(24):
9113 self.assertEqual(da.getIJ(0,i),i+6)
9117 da2=DataArrayInt.New(12,1)
9120 for i in xrange(24):
9121 self.assertEqual(dabis.getIJ(0,i),-(i+6))
9125 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]
9126 for i in xrange(24):
9127 self.assertEqual(da.getIJ(0,i),expected1[i])
9131 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]
9132 self.assertEqual(12,da.getNumberOfTuples());
9133 self.assertEqual(2,da.getNumberOfComponents());
9134 for i in xrange(24):
9135 self.assertEqual(da.getIJ(0,i),expected2[i])
9137 for pos,elt in enumerate(dabis):
9140 self.assertEqual(12,da.getNumberOfTuples());
9141 self.assertEqual(2,da.getNumberOfComponents());
9144 self.assertEqual(li[0],100) ; self.assertEqual(li[1],101)
9147 da=DataArrayInt.New(range(6,30),12,2)
9148 da2=DataArrayInt.New(range(12),12,1)
9151 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]
9152 for i in xrange(24):
9153 self.assertEqual(da.getIJ(0,i),expected1[i])
9157 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]
9158 self.assertEqual(12,da.getNumberOfTuples());
9159 self.assertEqual(2,da.getNumberOfComponents());
9160 for i in xrange(24):
9161 self.assertEqual(da.getIJ(0,i),expected2[i])
9163 for pos,elt in enumerate(dabis):
9166 self.assertEqual(12,da.getNumberOfTuples());
9167 self.assertEqual(2,da.getNumberOfComponents());
9168 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]
9169 for i in xrange(24):
9170 self.assertEqual(da.getIJ(0,i),expected3[i])
9173 da=DataArrayInt.New(range(6,30),12,2)
9174 da2=DataArrayInt.New(range(12),12,1)
9177 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]
9178 for i in xrange(24):
9179 self.assertEqual(da.getIJ(0,i),expected1[i])
9183 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]
9184 self.assertEqual(12,da.getNumberOfTuples());
9185 self.assertEqual(2,da.getNumberOfComponents());
9186 for i in xrange(24):
9187 self.assertEqual(da.getIJ(0,i),expected2[i])
9189 for pos,elt in enumerate(dabis):
9192 self.assertEqual(12,da.getNumberOfTuples());
9193 self.assertEqual(2,da.getNumberOfComponents());
9194 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]
9195 for i in xrange(24):
9196 self.assertEqual(da.getIJ(0,i),expected3[i])
9199 da=DataArrayInt.New(range(6,30),12,2)
9200 da2=DataArrayInt.New(range(1,13),12,1)
9203 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]
9204 for i in xrange(24):
9205 self.assertEqual(da.getIJ(0,i),expected1[i])
9208 da/=DataArrayInt.New([2,3],1,2)
9209 self.assertEqual(12,da.getNumberOfTuples());
9210 self.assertEqual(2,da.getNumberOfComponents());
9211 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]
9212 for i in xrange(24):
9213 self.assertEqual(da.getIJ(0,i),expected2[i])
9217 def testSwigDADOp5(self):
9218 da=DataArrayDouble.New([5,6,7,8,9,6,7,-2,3,9,8,10])
9220 da2=DataArrayDouble.New([5.,8.,10.,12])
9221 self.assertEqual(4,da2.getNumberOfTuples());
9222 self.assertEqual(1,da2.getNumberOfComponents());
9224 self.assertEqual(4,da3.getNumberOfTuples());
9225 self.assertEqual(3,da3.getNumberOfComponents());
9226 expected1=[10.,11.,12.,16.,17.,14.,17.,8.,13.,21.,20.,22.]
9227 for i in xrange(12):
9228 self.assertAlmostEqual(da3.getIJ(0,i),expected1[i],13)
9231 self.assertEqual(4,da3.getNumberOfTuples());
9232 self.assertEqual(3,da3.getNumberOfComponents());
9233 for i in xrange(12):
9234 self.assertAlmostEqual(da3.getIJ(0,i),expected1[i],13)
9236 # Test new API of classmethod DataArrayDouble.New
9237 vals=[5,6,7,8,9,6,7,-2,3,9,8,10]
9238 da=DataArrayDouble.New(vals)
9239 self.assertEqual(12,da.getNumberOfTuples());
9240 self.assertEqual(1,da.getNumberOfComponents());
9241 for i in xrange(12):
9242 self.assertAlmostEqual(da.getIJ(0,i),vals[i],13)
9244 da=DataArrayDouble.New(vals,12)
9245 self.assertEqual(12,da.getNumberOfTuples());
9246 self.assertEqual(1,da.getNumberOfComponents());
9247 for i in xrange(12):
9248 self.assertAlmostEqual(da.getIJ(0,i),vals[i],13)
9250 da=DataArrayDouble.New(vals,1,12)
9251 self.assertEqual(1,da.getNumberOfTuples());
9252 self.assertEqual(12,da.getNumberOfComponents());
9253 for i in xrange(12):
9254 self.assertAlmostEqual(da.getIJ(0,i),vals[i],13)
9256 da=DataArrayDouble.New(vals,6,2)
9257 self.assertEqual(6,da.getNumberOfTuples());
9258 self.assertEqual(2,da.getNumberOfComponents());
9259 for i in xrange(12):
9260 self.assertAlmostEqual(da.getIJ(0,i),vals[i],13)
9262 da=DataArrayDouble.New(vals,4,3)
9263 self.assertEqual(4,da.getNumberOfTuples());
9264 self.assertEqual(3,da.getNumberOfComponents());
9265 for i in xrange(12):
9266 self.assertAlmostEqual(da.getIJ(0,i),vals[i],13)
9268 self.assertRaises(InterpKernelException,DataArrayDouble.New,vals,11);
9269 self.assertRaises(InterpKernelException,DataArrayDouble.New,vals,13);
9270 self.assertRaises(InterpKernelException,DataArrayDouble.New,vals,5,2);
9271 self.assertRaises(InterpKernelException,DataArrayDouble.New,vals,7,2);
9274 def testSwigDADOp6(self):
9275 da=DataArrayInt.New([5,6,7,8,9,6,7,-2,3,9,8,10])
9277 da2=DataArrayInt.New([5,8,10,12])
9278 self.assertEqual(4,da2.getNumberOfTuples());
9279 self.assertEqual(1,da2.getNumberOfComponents());
9281 self.assertEqual(4,da3.getNumberOfTuples());
9282 self.assertEqual(3,da3.getNumberOfComponents());
9283 expected1=[10,11,12,16,17,14,17,8,13,21,20,22]
9284 for i in xrange(12):
9285 self.assertEqual(da3.getIJ(0,i),expected1[i])
9288 self.assertEqual(4,da3.getNumberOfTuples());
9289 self.assertEqual(3,da3.getNumberOfComponents());
9290 for i in xrange(12):
9291 self.assertEqual(da3.getIJ(0,i),expected1[i])
9293 da3=da+DataArrayInt.New(da2.getValues())
9294 # Test new API of classmethod DataArrayInt.New
9295 vals=[5,6,7,8,9,6,7,-2,3,9,8,10]
9296 da=DataArrayDouble.New(vals)
9297 self.assertEqual(12,da.getNumberOfTuples());
9298 self.assertEqual(1,da.getNumberOfComponents());
9299 for i in xrange(12):
9300 self.assertEqual(da.getIJ(0,i),vals[i])
9302 da=DataArrayDouble.New(vals,12)
9303 self.assertEqual(12,da.getNumberOfTuples());
9304 self.assertEqual(1,da.getNumberOfComponents());
9305 for i in xrange(12):
9306 self.assertEqual(da.getIJ(0,i),vals[i])
9308 da=DataArrayDouble.New(vals,1,12)
9309 self.assertEqual(1,da.getNumberOfTuples());
9310 self.assertEqual(12,da.getNumberOfComponents());
9311 for i in xrange(12):
9312 self.assertEqual(da.getIJ(0,i),vals[i])
9314 da=DataArrayDouble.New(vals,6,2)
9315 self.assertEqual(6,da.getNumberOfTuples());
9316 self.assertEqual(2,da.getNumberOfComponents());
9317 for i in xrange(12):
9318 self.assertEqual(da.getIJ(0,i),vals[i])
9320 da=DataArrayDouble.New(vals,4,3)
9321 self.assertEqual(4,da.getNumberOfTuples());
9322 self.assertEqual(3,da.getNumberOfComponents());
9323 for i in xrange(12):
9324 self.assertEqual(da.getIJ(0,i),vals[i])
9326 self.assertRaises(InterpKernelException,DataArrayDouble.New,vals,11);
9327 self.assertRaises(InterpKernelException,DataArrayDouble.New,vals,13);
9328 self.assertRaises(InterpKernelException,DataArrayDouble.New,vals,5,2);
9329 self.assertRaises(InterpKernelException,DataArrayDouble.New,vals,7,2);
9332 def testSwigDADOp9(self):
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);
9344 l1=[(1.,2.,3),(4.,(5.),((6.))),(7.,8.,9.),[10.,11.,12.]]
9345 da1=DataArrayDouble(l1,4,3)
9346 self.assertEqual(4,da1.getNumberOfTuples());
9347 self.assertEqual(3,da1.getNumberOfComponents());
9348 da2=DataArrayDouble(12) ; da2.iota(1.) ; da2.rearrange(3)
9349 self.assertTrue(da2.isEqual(da1,1e-12))
9350 self.assertRaises(InterpKernelException,DataArrayDouble.New,l1,3,4);
9351 da3=DataArrayDouble(l1,4)
9352 self.assertTrue(da3.isEqual(da1,1e-12))
9353 self.assertRaises(InterpKernelException,DataArrayDouble.New,l1,3);
9354 self.assertRaises(InterpKernelException,DataArrayDouble.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);
9367 l1=[(1,[2],3),(4,[(5)],6),((([7])),8,9),[10,11,12]]
9368 da1=DataArrayInt(l1,4,3)
9369 self.assertEqual(4,da1.getNumberOfTuples());
9370 self.assertEqual(3,da1.getNumberOfComponents());
9371 da2=DataArrayInt(12) ; da2.iota(1) ; da2.rearrange(3)
9372 self.assertTrue(da2.isEqual(da1))
9373 self.assertRaises(InterpKernelException,DataArrayInt.New,l1,3,4);
9374 da3=DataArrayInt(l1,4)
9375 self.assertTrue(da3.isEqual(da1))
9376 self.assertRaises(InterpKernelException,DataArrayInt.New,l1,3);
9377 self.assertRaises(InterpKernelException,DataArrayInt.New,l1,5);
9380 def testRenumberNodesInConn1(self):
9381 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. ]
9382 mesh2DConn=[1,4,2, 4,5,2, 0,3,4,1, 6,7,4,3, 7,8,5,4]
9383 mesh2D=MEDCouplingUMesh.New("mesh",2);
9384 mesh2D.allocateCells(5);
9385 mesh2D.insertNextCell(NORM_TRI3,3,mesh2DConn[0:3])
9386 mesh2D.insertNextCell(NORM_TRI3,3,mesh2DConn[3:6])
9387 mesh2D.insertNextCell(NORM_QUAD4,4,mesh2DConn[6:10])
9388 mesh2D.insertNextCell(NORM_QUAD4,4,mesh2DConn[10:14])
9389 mesh2D.insertNextCell(NORM_QUAD4,4,mesh2DConn[14:18])
9390 mesh2D.finishInsertingCells();
9391 myCoords=DataArrayDouble.New(mesh2DCoords,9,3);
9392 mesh2D.setCoords(myCoords);
9393 mesh2D.checkCoherency();
9395 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. ]
9396 mesh3DConn=[0,1,2,3,4,5,6,7]
9397 mesh3D=MEDCouplingUMesh.New("mesh",3);
9398 mesh3D.allocateCells(1);
9399 mesh3D.insertNextCell(NORM_HEXA8,8,mesh3DConn[:])
9400 mesh3D.finishInsertingCells();
9401 myCoords3D=DataArrayDouble.New(mesh3DCoords,8,3);
9402 mesh3D.setCoords(myCoords3D);
9403 mesh3D.checkCoherency();
9405 mesh3D_2=mesh3D.deepCpy();
9406 mesh2D_2=mesh2D.deepCpy();
9407 mesh3D_4=mesh3D.deepCpy();
9408 mesh2D_4=mesh2D.deepCpy();
9409 oldNbOf3DNodes=mesh3D.getNumberOfNodes();
9410 renumNodes=DataArrayInt.New();
9411 renumNodes.alloc(mesh2D.getNumberOfNodes(),1);
9412 renumNodes.iota(oldNbOf3DNodes);
9413 coo=DataArrayDouble.Aggregate(mesh3D.getCoords(),mesh2D.getCoords());
9414 mesh3D.setCoords(coo);
9415 mesh2D.setCoords(coo);
9416 mesh2DCpy=mesh2D.deepCpy()
9417 mesh2D_3=mesh2D.deepCpy();
9418 mesh2D_3.shiftNodeNumbersInConn(oldNbOf3DNodes);
9419 mesh2D.renumberNodesInConn(renumNodes);
9420 mesh2DCpy.renumberNodesInConn(renumNodes.getValues());
9421 self.assertTrue(mesh2D.isEqual(mesh2DCpy,1e-12))
9422 self.assertTrue(mesh2D.isEqual(mesh2D_3,1e-12))
9424 da1,da2=mesh3D.checkGeoEquivalWith(mesh3D_2,10,1e-12);
9425 self.assertTrue(da1==None);
9426 self.assertEqual(8,da2.getNumberOfTuples());
9427 self.assertEqual(1,da2.getNumberOfComponents());
9428 expected1=[8,11,12,9,4,5,6,7]
9430 self.assertEqual(expected1[i],da2.getIJ(i,0));
9433 da1,da2=mesh2D.checkGeoEquivalWith(mesh2D_2,10,1e-12);
9434 self.assertTrue(da1==None);
9435 self.assertEqual(9,da2.getNumberOfTuples());
9436 self.assertEqual(1,da2.getNumberOfComponents());
9438 self.assertEqual(8+i,da2.getIJ(i,0));
9441 mesh2D_5=mesh2D_4.deepCpy();
9442 mesh2D_5.translate([1.,0.,0.]);
9443 meshes=[mesh3D_4,mesh2D_4,mesh2D_5];
9444 MEDCouplingUMesh.PutUMeshesOnSameAggregatedCoords(meshes);
9445 self.assertTrue(mesh3D_4.getCoords().getHiddenCppPointer()==mesh2D_4.getCoords().getHiddenCppPointer());
9446 self.assertTrue(mesh2D_4.getCoords().getHiddenCppPointer()==mesh2D_5.getCoords().getHiddenCppPointer());
9447 mesh3D_4.checkCoherency(); mesh2D_4.checkCoherency(); mesh2D_5.checkCoherency();
9448 self.assertEqual(26,mesh3D_4.getNumberOfNodes());
9449 self.assertEqual(3,mesh3D_4.getSpaceDimension());
9450 self.assertEqual(9,mesh3D_4.getNodalConnectivity().getNumberOfTuples());
9451 self.assertEqual(23,mesh2D_4.getNodalConnectivity().getNumberOfTuples());
9452 self.assertEqual(23,mesh2D_5.getNodalConnectivity().getNumberOfTuples());
9453 expected2=[18,0,1,2,3,4,5,6,7]
9454 expected3=[3,9,12,10, 3,12,13,10, 4,8,11,12,9, 4,14,15,12,11, 4,15,16,13,12]
9455 expected4=[3,18,21,19, 3,21,22,19, 4,17,20,21,18, 4,23,24,21,20, 4,24,25,22,21]
9456 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]
9457 self.assertEqual(expected2,mesh3D_4.getNodalConnectivity().getValues());
9458 self.assertEqual(expected3,mesh2D_4.getNodalConnectivity().getValues());
9459 self.assertEqual(expected4,mesh2D_5.getNodalConnectivity().getValues());
9460 for i in xrange(78):
9461 self.assertAlmostEqual(expected5[i],mesh3D_4.getCoords().getIJ(0,i),12);
9464 MEDCouplingUMesh.MergeNodesOnUMeshesSharingSameCoords(meshes,1e-12);
9465 mesh3D_4.checkCoherency(); mesh2D_4.checkCoherency(); mesh2D_5.checkCoherency();
9466 self.assertTrue(mesh3D_4.getCoords().getHiddenCppPointer()==mesh2D_4.getCoords().getHiddenCppPointer());
9467 self.assertTrue(mesh2D_4.getCoords().getHiddenCppPointer()==mesh2D_5.getCoords().getHiddenCppPointer());
9468 self.assertEqual(19,mesh3D_4.getNumberOfNodes());
9469 self.assertEqual(3,mesh3D_4.getSpaceDimension());
9470 self.assertEqual(9,mesh3D_4.getNodalConnectivity().getNumberOfTuples());
9471 self.assertEqual(23,mesh2D_4.getNodalConnectivity().getNumberOfTuples());
9472 self.assertEqual(23,mesh2D_5.getNodalConnectivity().getNumberOfTuples());
9473 expected6=[18,0,1,2,3,4,5,6,7]
9474 expected7=[3,3,2,8, 3,2,9,8, 4,0,1,2,3, 4,10,11,2,1, 4,11,12,9,2]
9475 expected8=[3,13,15,14, 3,15,16,14, 4,8,9,15,13, 4,12,17,15,9, 4,17,18,16,15]
9476 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.,
9477 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.,
9478 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.]
9479 self.assertEqual(expected6,mesh3D_4.getNodalConnectivity().getValues());
9480 self.assertEqual(expected7,mesh2D_4.getNodalConnectivity().getValues());
9481 self.assertEqual(expected8,mesh2D_5.getNodalConnectivity().getValues());
9482 for i in xrange(57):
9483 self.assertAlmostEqual(expected9[i],mesh3D_4.getCoords().getIJ(0,i),12);
9488 def testComputeNeighborsOfCells1(self):
9489 m=MEDCouplingDataForTest.build2DTargetMesh_1();
9490 d1,d2=m.computeNeighborsOfCells();
9491 self.assertEqual(6,d2.getNumberOfTuples());
9492 self.assertEqual(10,d1.getNumberOfTuples());
9493 expected1=[0,2,4,6,8,10]
9494 expected2=[3,1,0,2,4,1,4,0,2,3]
9495 self.assertEqual(expected1,d2.getValues());
9496 self.assertEqual(expected2,d1.getValues());
9499 def testCheckButterflyCellsBug1(self):
9500 mesh2DCoords=[323.85,120.983748908684,317.5,131.982271536747,336.55,120.983748908686,330.2,131.982271536751,323.85,142.98079416481]
9501 mesh2DConn=[4,1,0,2,3]
9502 mesh2D=MEDCouplingUMesh.New("mesh",2);
9503 mesh2D.allocateCells(1);
9504 mesh2D.insertNextCell(NORM_POLYGON,5,mesh2DConn[0:5])
9505 mesh2D.finishInsertingCells();
9506 myCoords=DataArrayDouble.New(mesh2DCoords,5,2);
9507 mesh2D.setCoords(myCoords);
9508 mesh2D.checkCoherency();
9510 v=mesh2D.checkButterflyCells();
9511 self.assertTrue(v.empty());
9514 def testDataArrayIntRange1(self):
9515 d=DataArrayInt.Range(2,17,7);
9517 self.assertEqual(3,d.getNumberOfTuples());
9518 self.assertEqual(1,d.getNumberOfComponents());
9519 self.assertEqual(expected1,d.getValues());
9521 d=DataArrayInt.Range(2,23,7);
9522 self.assertEqual(3,d.getNumberOfTuples());
9523 self.assertEqual(1,d.getNumberOfComponents());
9524 self.assertEqual(expected1,d.getValues());
9526 d=DataArrayInt.Range(2,24,7);
9527 expected2=[2,9,16,23]
9528 self.assertEqual(4,d.getNumberOfTuples());
9529 self.assertEqual(1,d.getNumberOfComponents());
9530 self.assertEqual(expected2,d.getValues());
9532 d=DataArrayInt.Range(24,2,-7);
9533 expected3=[24,17,10,3]
9534 self.assertEqual(4,d.getNumberOfTuples());
9535 self.assertEqual(1,d.getNumberOfComponents());
9536 self.assertEqual(expected3,d.getValues());
9538 d=DataArrayInt.Range(23,2,-7);
9540 self.assertEqual(3,d.getNumberOfTuples());
9541 self.assertEqual(1,d.getNumberOfComponents());
9542 self.assertEqual(expected4,d.getValues());
9544 d=DataArrayInt.Range(23,22,-7);
9545 self.assertEqual(1,d.getNumberOfTuples());
9546 self.assertEqual(1,d.getNumberOfComponents());
9547 self.assertEqual(23,d.getIJ(0,0));
9549 d=DataArrayInt.Range(22,23,7);
9550 self.assertEqual(1,d.getNumberOfTuples());
9551 self.assertEqual(1,d.getNumberOfComponents());
9552 self.assertEqual(22,d.getIJ(0,0));
9554 d=DataArrayInt.Range(22,22,7);
9555 self.assertEqual(0,d.getNumberOfTuples());
9556 self.assertEqual(1,d.getNumberOfComponents());
9558 d=DataArrayInt.Range(22,22,-7);
9559 self.assertEqual(0,d.getNumberOfTuples());
9560 self.assertEqual(1,d.getNumberOfComponents());
9562 self.assertRaises(InterpKernelException,DataArrayInt.Range,22,23,-7);
9563 self.assertRaises(InterpKernelException,DataArrayInt.Range,23,22,7);
9564 self.assertRaises(InterpKernelException,DataArrayInt.Range,23,22,0);
9565 self.assertRaises(InterpKernelException,DataArrayInt.Range,22,23,0);
9568 def testSwigUMeshGetItem1(self):
9569 m=MEDCouplingDataForTest.build2DTargetMesh_1();
9570 subMesh=m.buildPartOfMySelf([1,3],True);
9571 self.assertTrue(isinstance(subMesh,MEDCouplingUMesh))
9573 self.assertTrue(isinstance(m1,MEDCouplingUMesh))
9575 self.assertTrue(isinstance(m2,MEDCouplingUMesh))
9577 self.assertTrue(isinstance(m3,MEDCouplingUMesh))
9578 m4=m[DataArrayInt.New([1,3])]
9580 self.assertTrue(isinstance(m5_1,MEDCouplingUMesh))
9582 self.assertTrue(isinstance(m5_2,MEDCouplingUMesh))
9583 m5=MEDCouplingUMesh.MergeUMeshesOnSameCoords([m5_1,m5_2]);
9584 m5.setName(subMesh.getName())
9585 self.assertTrue(isinstance(m4,MEDCouplingUMesh))
9586 self.assertTrue(subMesh.isEqual(m1,1e-12))
9587 self.assertTrue(subMesh.isEqual(m2,1e-12))
9588 self.assertTrue(subMesh.isEqual(m3,1e-12))
9589 self.assertTrue(subMesh.isEqual(m4,1e-12))
9590 self.assertTrue(subMesh.isEqual(m5,1e-12))
9591 self.assertRaises(InterpKernelException,m.buildPartOfMySelf,[1,5],True);
9594 def testSwigGetItem3(self):
9595 da=DataArrayInt.New([4,5,6])
9596 self.assertEqual(5,da[1])
9597 self.assertEqual(6,da[-1])
9598 self.assertRaises(InterpKernelException,da.__getitem__,3)
9599 da=DataArrayInt.New([4,5,6,7,8,9],2,3)
9600 self.assertEqual(9,da[1,2])
9601 da=DataArrayDouble.New([4.1,5.2,6.3])
9602 self.assertAlmostEqual(5.2,da[1],12)
9603 self.assertAlmostEqual(6.3,da[-1],12)
9604 self.assertRaises(InterpKernelException,da.__getitem__,3)
9605 da=DataArrayDouble.New([4.12,5.12,6.12,7.12,8.12,9.12],2,3)
9606 self.assertAlmostEqual(9.12,da[1,2],12)
9609 def testSwigDADISub1(self):
9610 mesh3D,mesh2D=MEDCouplingDataForTest.build3DExtrudedUMesh_1();
9611 bary=mesh3D.getBarycenterAndOwner()
9613 pts=bary.getDifferentValues(1e-12)
9614 expected=[[0,6,12],[1,7,13],[2,8,14],[3,9,15],[4,10,16],[5,11,17]]
9615 for pos,pt in enumerate(pts):
9618 norm=bary2.magnitude()
9619 self.assertEqual(expected[pos],norm.getIdsInRange(-1.,1e-5).getValues())
9621 expected2=[[3.,54.],[-141.,180.],[21.,54.],[39.,72.],[-15.,90.],[21.,90.]]
9622 for pos,pt in enumerate(pts):
9625 self.assertAlmostEqual(expected2[pos][0],bary2.accumulate()[0],12);
9626 self.assertAlmostEqual(expected2[pos][1],bary2.accumulate()[1],12);
9628 expected3=[[-3.,22.5],[45.,337.5],[-9., 22.5],[-15.,67.5],[3.,112.5],[-9.,112.5]]
9629 for pos,pt in enumerate(pts):
9632 self.assertAlmostEqual(expected3[pos][0],bary2.accumulate()[0],12);
9633 self.assertAlmostEqual(expected3[pos][1],bary2.accumulate()[1],12);
9635 expected4=[[-12.,90.],[0.8,6.],[-4,90.],[-2.4,30.],[12.,18],[-4,18.]]
9636 for pos,pt in enumerate(pts):
9639 self.assertAlmostEqual(expected4[pos][0],bary2.accumulate()[0],12);
9640 self.assertAlmostEqual(expected4[pos][1],bary2.accumulate()[1],12);
9643 d=DataArrayInt.New([1,2,0,1,0,2],3,2)
9644 e=DataArrayInt.New([1,11,101,2,12,102,3,13,103,4,14,104],4,3)
9645 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]]
9646 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]]
9647 for pos,tup in enumerate(d):
9649 self.assertTrue(isinstance(f,DataArrayInt))
9651 self.assertEqual(expected5[pos],f.getValues())
9652 self.assertEqual(6*[77],f[tup].getValues())
9655 self.assertEqual(expected6[pos],f.getValues())
9656 self.assertEqual(8*[77],f[:,tup].getValues())
9659 e=e.convertToDblArr()
9660 for pos,tup in enumerate(d):
9662 self.assertTrue(isinstance(f,DataArrayDouble))
9664 self.assertEqual(expected5[pos],f.convertToIntArr().getValues())
9665 self.assertEqual(6*[77],f[tup].convertToIntArr().getValues())
9668 self.assertEqual(expected6[pos],f.convertToIntArr().getValues())
9669 self.assertEqual(8*[77],f[:,tup].convertToIntArr().getValues())
9673 def testDataArrayDoubleGetMinMaxPerComponent1(self):
9674 values1=[1.,2.,3.,-0.9,2.1,3.,1.3,1.7,3.,1.,1.8,3.]
9675 d1=DataArrayDouble.New();
9676 self.assertRaises(InterpKernelException,d1.getMinMaxPerComponent)
9677 d1=DataArrayDouble.New(values1,4,3);
9678 res=d1.getMinMaxPerComponent();
9679 self.assertTrue(isinstance(res,list))
9680 self.assertEqual(3,len(res))
9682 self.assertTrue(isinstance(res[i],tuple))
9683 self.assertEqual(2,len(res[i]))
9685 expected1=[-0.9,1.3,1.7,2.1,3.,3.]
9687 self.assertAlmostEqual(expected1[i],res[i/2][i%2],14)
9691 res=d1.getMinMaxPerComponent();
9692 self.assertTrue(isinstance(res,list))
9693 self.assertEqual(2,len(res))
9695 self.assertTrue(isinstance(res[i],tuple))
9696 self.assertEqual(2,len(res[i]))
9698 expected2=[1.,3.,-0.9,3.]
9700 self.assertAlmostEqual(expected2[i],res[i/2][i%2],14)
9704 res=d1.getMinMaxPerComponent();
9705 self.assertTrue(isinstance(res,list))
9706 self.assertEqual(1,len(res))
9708 self.assertTrue(isinstance(res[i],tuple))
9709 self.assertEqual(2,len(res[i]))
9713 self.assertAlmostEqual(expected3[i],res[i/2][i%2],14)
9717 def testDataArrayIntGetHashCode1(self):
9718 d1=DataArrayInt.New(range(3545))
9719 d2=DataArrayInt.New(range(3545))
9720 self.assertEqual(d2.getHashCode(),d1.getHashCode())
9721 self.assertEqual(232341068,d1.getHashCode())
9723 self.assertEqual(232340188,d1.getHashCode())
9726 def testZipConnectivityPol1(self):
9727 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
9729 m2_1=m1.buildPartOfMySelf(cells1,True);
9731 self.assertTrue(isinstance(m2,MEDCouplingUMesh))
9732 # no permutation policy 0
9733 isOk,arr=m1.areCellsIncludedIn(m2,0)
9734 self.assertTrue(isOk);
9735 self.assertEqual(3,arr.getNumberOfTuples());
9736 self.assertEqual(1,arr.getNumberOfComponents());
9737 self.assertEqual(cells1,arr.getValues())
9738 # no permutation policy 1
9739 isOk,arr=m1.areCellsIncludedIn(m2,1)
9740 self.assertTrue(isOk);
9741 self.assertEqual(3,arr.getNumberOfTuples());
9742 self.assertEqual(1,arr.getNumberOfComponents());
9743 self.assertEqual(cells1,arr.getValues())
9744 # no permutation policy 2
9745 isOk,arr=m1.areCellsIncludedIn(m2,2)
9746 self.assertTrue(isOk);
9747 self.assertEqual(3,arr.getNumberOfTuples());
9748 self.assertEqual(1,arr.getNumberOfComponents());
9749 self.assertEqual(cells1,arr.getValues())
9750 # some modification into m2
9752 m2.getNodalConnectivity()[1:4]=modif1
9753 #policy 0 fails because cell0 in m2 has same orientation be not same connectivity
9755 isOk,arr=m1.areCellsIncludedIn(m2,0)
9756 self.assertTrue(not isOk);
9757 self.assertEqual(3,arr.getNumberOfTuples());
9758 self.assertEqual(1,arr.getNumberOfComponents());
9759 self.assertEqual(expected1,arr.getValues())
9760 #policy 1 succeeds because cell0 in m2 has not exactly the same conn
9761 isOk,arr=m1.areCellsIncludedIn(m2,1)
9762 self.assertTrue(isOk);
9763 self.assertEqual(3,arr.getNumberOfTuples());
9764 self.assertEqual(1,arr.getNumberOfComponents());
9765 self.assertEqual(cells1,arr.getValues())
9766 #policy 2 succeeds because cell0 in m2 has same nodes in connectivity
9767 isOk,arr=m1.areCellsIncludedIn(m2,2)
9768 self.assertTrue(isOk);
9769 self.assertEqual(3,arr.getNumberOfTuples());
9770 self.assertEqual(1,arr.getNumberOfComponents());
9771 self.assertEqual(cells1,arr.getValues())
9772 #some new modification into m2
9774 m2.getNodalConnectivity()[1:4]=modif2
9775 #policy 0 fails because cell0 in m2 has not exactly the same conn
9776 isOk,arr=m1.areCellsIncludedIn(m2,0)
9777 self.assertTrue(not isOk);
9778 self.assertEqual(3,arr.getNumberOfTuples());
9779 self.assertEqual(1,arr.getNumberOfComponents());
9780 self.assertEqual(expected1,arr.getValues())
9781 #policy 1 fails too because cell0 in m2 has not same orientation
9782 isOk,arr=m1.areCellsIncludedIn(m2,1)
9783 self.assertTrue(not isOk);
9784 self.assertEqual(3,arr.getNumberOfTuples());
9785 self.assertEqual(1,arr.getNumberOfComponents());
9786 self.assertEqual(expected1,arr.getValues())
9787 #policy 2 succeeds because cell0 in m2 has same nodes in connectivity
9788 isOk,arr=m1.areCellsIncludedIn(m2,2)
9789 self.assertTrue(isOk);
9790 self.assertEqual(3,arr.getNumberOfTuples());
9791 self.assertEqual(1,arr.getNumberOfComponents());
9792 self.assertEqual(cells1,arr.getValues())
9795 m1=MEDCouplingDataForTest.build1DSourceMesh_2();
9796 m2_1=m1.buildPartOfMySelf(cells2,True);
9798 self.assertTrue(isinstance(m2,MEDCouplingUMesh))
9799 # no permutation policy 0
9800 isOk,arr=m1.areCellsIncludedIn(m2,0)
9801 self.assertTrue(isOk);
9802 self.assertEqual(2,arr.getNumberOfTuples());
9803 self.assertEqual(1,arr.getNumberOfComponents());
9804 self.assertEqual(cells2,arr.getValues())
9805 # no permutation policy 1
9806 isOk,arr=m1.areCellsIncludedIn(m2,1)
9807 self.assertTrue(isOk);
9808 self.assertEqual(2,arr.getNumberOfTuples());
9809 self.assertEqual(1,arr.getNumberOfComponents());
9810 self.assertEqual(cells2,arr.getValues())
9811 # no permutation policy 2
9812 isOk,arr=m1.areCellsIncludedIn(m2,2)
9813 self.assertTrue(isOk);
9814 self.assertEqual(2,arr.getNumberOfTuples());
9815 self.assertEqual(1,arr.getNumberOfComponents());
9816 self.assertEqual(cells2,arr.getValues())
9817 # some modification into m2
9819 m2.getNodalConnectivity()[1:3]=modif3
9820 #policy 0 fails because cell0 in m2 has not exactly the same conn
9822 isOk,arr=m1.areCellsIncludedIn(m2,0)
9823 self.assertTrue(not isOk);
9824 self.assertEqual(2,arr.getNumberOfTuples());
9825 self.assertEqual(1,arr.getNumberOfComponents());
9826 self.assertEqual(expected2,arr.getValues())
9827 #policy 1 fails too because cell0 in m2 has not same orientation
9828 isOk,arr=m1.areCellsIncludedIn(m2,1)
9829 self.assertTrue(not isOk);
9830 self.assertEqual(2,arr.getNumberOfTuples());
9831 self.assertEqual(1,arr.getNumberOfComponents());
9832 self.assertEqual(expected2,arr.getValues())
9833 #policy 2 succeeds because cell0 in m2 has same nodes in connectivity
9834 isOk,arr=m1.areCellsIncludedIn(m2,2)
9835 self.assertTrue(isOk);
9836 self.assertEqual(2,arr.getNumberOfTuples());
9837 self.assertEqual(1,arr.getNumberOfComponents());
9838 self.assertEqual(cells2,arr.getValues())
9841 def toSeeIfDaIIopsAreOK(self,d):
9849 def testSwigDAIOp5(self):
9850 d=DataArrayInt.New([4,5,6,10,3,-1],2,3)
9851 self.toSeeIfDaIIopsAreOK(d)
9852 dExp=DataArrayInt.New([2,4,6,0,0,6],2,3)
9853 self.assertTrue(d.isEqual(dExp));
9856 def toSeeIfDaDIopsAreOK(self,d):
9863 def testSwigDADOp7(self):
9864 d=DataArrayDouble.New([4.,5.,6.,10.,3.,-1.],2,3)
9865 self.toSeeIfDaDIopsAreOK(d)
9866 dExp=DataArrayDouble.New([16.,18.,20.,28.,14.,6.],2,3)
9867 self.assertTrue(d.isEqual(dExp,1e-14));
9870 def testConvexEnvelop2D1(self):
9871 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]
9872 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]
9873 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]
9875 m=MEDCouplingUMesh.New("convexhull",2);
9876 m.allocateCells(331);
9877 for i in xrange(331):
9878 m.insertNextCell(NORM_POLYGON,conn[connI[i]:connI[i+1]]);
9880 m.finishInsertingCells();
9881 coordsDa=DataArrayDouble.New(coords,331,2);
9882 m.setCoords(coordsDa);
9885 da=m.convexEnvelop2D();
9887 self.assertEqual(coordsDa.getHiddenCppPointer(),m.getCoords().getHiddenCppPointer())
9888 daC=da.buildComplement(m.getNumberOfCells());
9889 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]);
9890 self.assertTrue(expected2.isEqual(daC));
9892 vals=m.getMeasureField(ON_CELLS).getArray()
9893 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]
9894 vals-=DataArrayDouble.New(ref)
9896 theTest=vals.getIdsInRange(-1.,1e-7)
9897 self.assertTrue(theTest.isIdentity())
9898 self.assertEqual(331,len(theTest))
9901 def testSwigDAIOp8(self):
9902 da=DataArrayInt.New([7,5,6,7,8,9,9,10,12,13,47,15])
9903 self.assertTrue(7 in da)
9904 self.assertTrue(47 in da)
9905 self.assertTrue(15 in da)
9906 self.assertEqual(0,da.index(7))
9907 self.assertEqual(10,da.index(47))
9908 self.assertTrue(14 not in da)
9909 self.assertEqual(5,da.search([9,9]))
9910 self.assertEqual(-1,da.search([5,8]))
9912 self.assertTrue([47,16] not in da)
9913 self.assertTrue([5,6] not in da)
9914 self.assertTrue([6,7] in da)
9915 self.assertEqual(4,da.index([12,13]))
9918 def testDataArraySort1(self):
9919 arr=DataArrayInt.New();
9920 self.assertRaises(InterpKernelException,arr.sort,True)
9921 self.assertRaises(InterpKernelException,arr.sort,False)
9922 values=[2,1,6,5,4,7]
9924 self.assertRaises(InterpKernelException,arr.sort,True)
9925 self.assertRaises(InterpKernelException,arr.sort,False)
9927 arr.setValues(values,6,1)
9931 expected1=[1,2,4,5,6,7]
9932 self.assertEqual(6,arr1.getNumberOfTuples());
9933 self.assertEqual(1,arr1.getNumberOfComponents());
9934 self.assertEqual(expected1,arr1.getValues());
9936 expected2=[7,6,5,4,2,1]
9937 self.assertEqual(6,arr2.getNumberOfTuples());
9938 self.assertEqual(1,arr2.getNumberOfComponents());
9939 self.assertTrue(expected2,arr2.getValues());
9941 ard=DataArrayDouble.New();
9942 self.assertRaises(InterpKernelException,ard.sort,True)
9943 self.assertRaises(InterpKernelException,ard.sort,False)
9944 valuesD=[2.,1.,6.,5.,4.,7.]
9946 self.assertRaises(InterpKernelException,ard.sort,True)
9947 self.assertRaises(InterpKernelException,ard.sort,False)
9949 ard.setValues(valuesD,6,1)
9953 expected3=[1.,2.,4.,5.,6.,7.]
9954 self.assertEqual(6,ard1.getNumberOfTuples());
9955 self.assertEqual(1,ard1.getNumberOfComponents());
9957 self.assertAlmostEqual(expected3[i],ard1.getIJ(i,0),12)
9960 expected4=[7.,6.,5.,4.,2.,1.]
9961 self.assertEqual(6,ard2.getNumberOfTuples());
9962 self.assertEqual(1,ard2.getNumberOfComponents());
9964 self.assertAlmostEqual(expected4[i],ard2.getIJ(i,0),12)
9968 def testPartitionBySpreadZone1(self):
9969 m=MEDCouplingDataForTest.build2DTargetMesh_1();
9970 m4=MEDCouplingUMesh.MergeUMeshes([m,m[-3:],m[0:2]]);
9971 m4.renumberCells([5,2,9,6,4,7,0,1,3,8]);
9973 v2=m4.partitionBySpreadZone();
9974 self.assertTrue(3,len(v2));
9975 self.assertTrue(v2[0].isEqual(DataArrayInt.New([0,1,7])))
9976 self.assertTrue(v2[1].isEqual(DataArrayInt.New([2,4,5,6,9])))
9977 self.assertTrue(v2[2].isEqual(DataArrayInt.New([3,8])))
9979 m5=m4.buildSpreadZonesWithPoly();
9980 self.assertEqual(3,m5.getNumberOfCells());
9981 self.assertTrue(m5.getCoords().getHiddenCppPointer()==m4.getCoords().getHiddenCppPointer());
9982 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())
9983 self.assertEqual([0,8,17,23],m5.getNodalConnectivityIndex().getValues())
9987 def testGiveCellsWithType1(self):
9990 m=MEDCouplingDataForTest.build2DTargetMesh_1();
9991 da=m.giveCellsWithType(NORM_TRI3);
9992 self.assertEqual(2,da.getNumberOfTuples());
9993 self.assertEqual(1,da.getNumberOfComponents());
9994 self.assertEqual(expected0,da.getValues())
9996 da=m.giveCellsWithType(NORM_QUAD4);
9997 self.assertEqual(3,da.getNumberOfTuples());
9998 self.assertEqual(1,da.getNumberOfComponents());
9999 self.assertEqual(expected1,da.getValues())
10001 da=m.giveCellsWithType(NORM_TRI6);
10002 self.assertEqual(0,da.getNumberOfTuples());
10003 self.assertEqual(1,da.getNumberOfComponents());
10005 self.assertRaises(InterpKernelException,m.giveCellsWithType,NORM_SEG2)
10006 self.assertRaises(InterpKernelException,m.giveCellsWithType,NORM_HEXA8)
10009 def testSwigDAOp1(self):
10010 d=DataArrayDouble.New(5,2)
10011 d.rearrange(1) ; d.iota(2.) ; d.rearrange(2)
10012 d.setInfoOnComponents(["X [m]","Y [m]"])
10016 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))
10017 d1bis=DataArrayDouble.New([8,9],1,2)+d
10018 self.assertTrue(d1bis.isEqual(d1,1e-12))
10020 self.assertTrue(d1ter.isEqual(d1,1e-12))
10023 self.assertTrue(d2.isEqual(d,1e-12))
10024 self.assertRaises(InterpKernelException,d1.__rsub__,[8,9])#[8,9]-d1
10027 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))
10028 d3bis=DataArrayDouble.New([8,9],1,2)*d
10029 self.assertTrue(d3bis.isEqual(d3,1e-12))
10031 self.assertTrue(d3ter.isEqual(d3,1e-12))
10034 self.assertTrue(d4.isEqual(d,1e-12))
10036 d=DataArrayInt.New(5,2)
10037 d.rearrange(1) ; d.iota(2) ; d.rearrange(2)
10038 d.setInfoOnComponents(["X [m]","Y [m]"])
10042 self.assertEqual(d1.getValues(),[10,12,12,14,14,16,16,18,18,20])
10043 d1bis=DataArrayInt.New([8,9],1,2)+d
10044 self.assertTrue(d1bis.isEqual(d1))
10046 self.assertTrue(d1ter.isEqual(d1))
10049 self.assertTrue(d2.isEqual(d))
10050 self.assertRaises(InterpKernelException,d1.__rsub__,[8,9])
10053 self.assertEqual(d3.getValues(),[16,27,32,45,48,63,64,81,80,99])
10054 d3bis=DataArrayInt.New([8,9],1,2)*d
10055 self.assertTrue(d3bis.isEqual(d3))
10057 self.assertTrue(d3ter.isEqual(d3))
10060 self.assertTrue(d4.isEqual(d))
10063 self.assertEqual(d5.getValues(),[2,3,0,0,2,2,0,4,2,1])
10066 def testSwigSelectTupleId2DAIBug1(self):
10067 da=DataArrayInt.New([0,1,2,3,12,13,4,5,6,7,14,15,8,9,10,11,16,17])
10068 self.assertEqual([2,6,10],da[2::6].getValues())
10069 self.assertEqual([0,4,8],da[::6].getValues())
10070 self.assertEqual([5,9],da[7::6].getValues())
10071 self.assertEqual([5],da[7:-5:6].getValues())
10074 def testSwigCpp5Safe1(self):
10075 m=MEDCouplingUMesh.New("toto",2)
10076 coords=DataArrayDouble.New([0.,0.,1.,0.,1.,1.,0.,1.],4,2)
10077 m.setCoords(coords)
10078 vecs=DataArrayDouble.New([2.,3.,4.,5.,6.,7.],3,2)
10079 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]]
10080 for pos,vec in enumerate(vecs):
10083 self.assertTrue(m2.getCoords().isEqual(DataArrayDouble.New(expected1[pos],4,2),1e-12))
10085 for pos,vec in enumerate(vecs):
10087 m2.translate(vec.buildDADouble())
10088 self.assertTrue(m2.getCoords().isEqual(DataArrayDouble.New(expected1[pos],4,2),1e-12))
10092 def testSwigBugNonRegressionZipDA(self):
10093 angles=map(lambda x:pi/3*x,xrange(6))
10096 dad=DataArrayDouble.New(6, 2)
10100 dad2=dad.fromPolarToCart()
10101 dads=[dad2.deepCpy() for elt in 7*[None]]
10103 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.)]]
10104 for d,t in zip(dads,translationToPerform):
10108 self.assertTrue(not dad2.isEqual(elt,1e-12))
10110 for d,t in zip(dads,translationToPerform):
10114 self.assertTrue(dad2.isEqual(elt,1e-12))
10118 def testBuildSlice3D2(self):
10119 mesh3D,mesh2D=MEDCouplingDataForTest.build3DExtrudedUMesh_1();
10120 vec1=[-0.07,1.,0.07]
10121 origin1=[1.524,1.4552,1.74768]
10122 slice1,ids=mesh3D.buildSlice3D(origin1,vec1,1e-10);
10123 f=MEDCouplingFieldDouble(ON_CELLS,ONE_TIME)
10124 f.setTime(4.5,6,7) ; f.setMesh(mesh3D)
10125 arr=DataArrayDouble(mesh3D.getNumberOfCells(),2)
10126 arr.rearrange(1) ; arr.iota(2.) ; arr.rearrange(2)
10129 expected1=DataArrayInt([1,3,4,7,9,10,13,15,16])
10130 self.assertTrue(expected1.isEqual(ids))
10131 arr2=arr[expected1]
10133 f2=f.extractSlice3D(origin1,vec1,1e-10)
10134 self.assertTrue(f2.getArray().isEqual(arr2,1e-12));
10135 self.assertTrue(slice1.isEqual(f2.getMesh(),1e-12))
10136 self.assertEqual(6,f2.getTime()[1]) ; self.assertEqual(7,f2.getTime()[2])
10137 self.assertAlmostEqual(4.5,f2.getTime()[0],12);
10140 def testComputeTupleIdsToSelectFromCellIds1(self):
10141 m=MEDCouplingDataForTest.build2DTargetMesh_3()
10142 f=MEDCouplingFieldDouble.New(ON_GAUSS_NE,NO_TIME);
10144 arr=DataArrayDouble(52,2) ; arr.rearrange(1) ; arr.iota(7.) ; arr.rearrange(2)
10147 f2=f.buildSubPart([1,5,9])
10148 f2.checkCoherency()
10149 cI=m.computeNbOfNodesPerCell()
10150 cI.computeOffsets2()
10151 sel=DataArrayInt([1,5,9])
10152 res=sel.buildExplicitArrByRanges(cI)
10154 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))
10155 self.assertTrue(arr2.isEqual(f2.getArray(),1e-12))
10158 def testComputeSkin1(self):
10159 arrX=DataArrayDouble([2.,3.4,5.6,7.7,8.0]) ; arrY=DataArrayDouble([2.,3.4,5.6,7.7,9.0,14.2])
10160 cmesh=MEDCouplingCMesh() ; cmesh.setCoordsAt(0,arrX) ; cmesh.setCoordsAt(1,arrY)
10161 umesh=cmesh.buildUnstructured()
10163 skin=umesh.computeSkin()
10164 self.assertEqual(18,skin.getNumberOfCells())
10165 self.assertEqual(1,skin.getMeshDimension())
10166 self.assertTrue(skin.getCoords().getHiddenCppPointer()==umesh.getCoords().getHiddenCppPointer())
10167 self.assertEqual([0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54],skin.getNodalConnectivityIndex().getValues())
10168 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())
10169 ids=skin.computeFetchedNodeIds()
10170 self.assertEqual([0,1,2,3,4,5,9,10,14,15,19,20,24,25,26,27,28,29],ids.getValues())
10171 part=umesh.buildFacePartOfMySelfNode(ids,True)
10172 part.setName(skin.getName());
10173 self.assertTrue(part.isEqual(skin,1e-12))
10176 self.assertTrue(not part.isEqual(skin,1e-12))
10177 trad=part.zipConnectivityTraducer(0)
10178 self.assertEqual(9,part.getNumberOfCells())
10179 self.assertEqual([0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8],trad.getValues())
10182 def testUMeshSetPartOfMySelf2(self):
10183 # resize with explicit ids list
10184 m=MEDCouplingDataForTest.build2DTargetMesh_1()
10185 self.assertEqual([3,4],m.getAllGeoTypes())
10188 part2=part[[1,2,5]]
10190 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())
10191 self.assertEqual([0,4,8,12,16,20],m.getNodalConnectivityIndex().getValues())
10192 self.assertEqual([3],m.getAllGeoTypes())
10193 # no resize with explicit ids list
10194 m=MEDCouplingDataForTest.build2DTargetMesh_1()
10196 part.convertAllToPoly()
10198 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())
10199 self.assertEqual([0,5,9,13,18,23],m.getNodalConnectivityIndex().getValues())
10200 self.assertEqual([3,4,5],m.getAllGeoTypes())
10201 # resize with range ids
10202 m=MEDCouplingDataForTest.build2DTargetMesh_1()
10205 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())
10206 self.assertEqual([0,5,10,15,20,25],m.getNodalConnectivityIndex().getValues())
10207 self.assertEqual([4],m.getAllGeoTypes())
10208 # no resize with range ids
10209 m=MEDCouplingDataForTest.build2DTargetMesh_1()
10211 part.convertAllToPoly()
10213 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())
10214 self.assertEqual([0,5,9,13,18,23],m.getNodalConnectivityIndex().getValues())
10215 self.assertEqual([3,4,5],m.getAllGeoTypes())
10216 # no resize with range ids negative direction
10217 m=MEDCouplingDataForTest.build2DTargetMesh_1()
10219 part.convertAllToPoly()
10221 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())
10222 self.assertEqual([0,5,9,13,18,23],m.getNodalConnectivityIndex().getValues())
10223 self.assertEqual([3,4,5],m.getAllGeoTypes())
10226 def testUnPolyze3(self):
10227 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]
10228 conn=[1,2,5,4,-1,4,3,0,1,-1,2,0,3,5,-1,0,2,1,-1,4,5,3]
10229 m=MEDCouplingUMesh.New("a mesh",3);
10230 m.allocateCells(1);
10231 m.insertNextCell(NORM_POLYHED,22,conn[0:22])
10232 m.finishInsertingCells();
10233 coords=DataArrayDouble(coord,6,3);
10234 m.setCoords(coords);
10235 m.checkCoherency();
10237 vol=m.getMeasureField(ON_CELLS);
10238 self.assertEqual(1,vol.getArray().getNumberOfTuples());
10239 self.assertAlmostEqual(0.5,vol.getArray().getIJ(0,0),12)
10243 self.assertEqual([NORM_PENTA6],m.getAllGeoTypes())
10244 self.assertTrue(DataArrayInt([0,7]).isEqual(m.getNodalConnectivityIndex()))
10245 self.assertTrue(DataArrayInt([16,0,2,1,3,5,4]).isEqual(m.getNodalConnectivity()))
10247 vol=m.getMeasureField(ON_CELLS);
10248 self.assertEqual(1,vol.getArray().getNumberOfTuples());
10249 self.assertAlmostEqual(0.5,vol.getArray().getIJ(0,0),12)
10252 def testKrSpatialDiscretization1(self):
10253 srcPointCoordsX=[0.8401877171547095, 0.7830992237586059, 0.9116473579367843, 0.335222755714889, 0.2777747108031878, 0.4773970518621602, 0.3647844727918433, 0.9522297251747128, 0.6357117279599009, 0.1416025553558034]
10254 srcFieldValsOnPoints=[2.129892434968836, 2.295320474540621, 1.931948594981134, 2.728013590937196, 2.715603240418478, 2.661778472822935, 2.695696990104364, 1.893710234970982, 2.529628016549284, 2.728432341300668]
10255 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]
10256 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]
10257 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])
10259 nbOfInputPoints=10;
10260 f=MEDCouplingFieldDouble.New(ON_NODES_KR,ONE_TIME);
10261 srcArrX=DataArrayDouble.New(srcPointCoordsX,nbOfInputPoints,1);
10262 cmesh=MEDCouplingCMesh.New("aMesh");
10263 cmesh.setCoordsAt(0,srcArrX);
10264 umesh=cmesh.buildUnstructured();
10266 srcVals=DataArrayDouble.New(srcFieldValsOnPoints,nbOfInputPoints,1);
10267 f.setArray(srcVals);
10268 f.checkCoherency();
10270 res0=f.getValueOn(targetPointCoordsX[:1]);
10271 self.assertAlmostEqual(targetFieldValsExpected[0],res0[0],10)
10273 valuesToTest=f.getValueOnMulti(targetPointCoordsX);
10274 self.assertEqual(40,valuesToTest.getNumberOfTuples());
10275 self.assertEqual(1,valuesToTest.getNumberOfComponents());
10276 for i in xrange(40):
10277 self.assertAlmostEqual(targetFieldValsExpected[i],valuesToTest.getIJ(i,0),10)
10279 fd=f.getDiscretization()
10281 self.assertTrue(isinstance(fd,MEDCouplingFieldDiscretizationKriging))
10282 coeffs,isDrift=fd.computeVectorOfCoefficients(umesh,srcVals)
10283 self.assertEqual(2,isDrift)
10284 self.assertTrue(coeffsExpected.isEqual(coeffs,1e-8))
10288 def testDuplicateEachTupleNTimes1(self):
10289 d=DataArrayDouble.New([9.,8.,7.,6.],4,1) ; d.setInfoOnComponents(["mass [kg]"]) ; d.setName("aname")
10290 d2=d.duplicateEachTupleNTimes(3)
10291 self.assertTrue(d2.isEqualWithoutConsideringStr(DataArrayDouble.New([9.,9.,9.,8.,8.,8.,7.,7.,7.,6.,6.,6.],4*3,1),1e-14))
10292 self.assertEqual("aname",d2.getName())
10293 self.assertEqual(["mass [kg]"],d2.getInfoOnComponents())
10295 d=DataArrayInt.New([9,8,7,6],4,1) ; d.setInfoOnComponents(["mass [kg]"]) ; d.setName("aname")
10296 d2=d.duplicateEachTupleNTimes(3)
10297 self.assertTrue(d2.isEqualWithoutConsideringStr(DataArrayInt.New([9,9,9,8,8,8,7,7,7,6,6,6],4*3,1)))
10298 self.assertEqual("aname",d2.getName())
10299 self.assertEqual(["mass [kg]"],d2.getInfoOnComponents())
10302 def testSwigComputeTupleIdsNearTuples1(self):
10303 da=DataArrayDouble([5.,6.,-5.,-6.,5.,-6.,-5.,6.,5.,6.],5,2)
10304 arr,arrI=da.computeTupleIdsNearTuples(DataArrayDouble([5.,-6.,5.,6.,-5.,-6.],3,2),1e-10)
10305 self.assertEqual([2,0,4,1],arr.getValues())
10306 self.assertEqual([0,1,3,4],arrI.getValues())
10307 arr,arrI=da.computeTupleIdsNearTuples([5.,-6.,5.,6.,-5.,-6.],1e-10)
10308 self.assertEqual([2,0,4,1],arr.getValues())
10309 self.assertEqual([0,1,3,4],arrI.getValues())
10310 expected0=[[2],[0,4],[1]]
10311 expected1=[[0,1],[0,2],[0,1]]
10312 for pos,it in enumerate(DataArrayDouble([5.,-6.,5.,6.,-5.,-6.],3,2)):
10313 arr,arrI=da.computeTupleIdsNearTuples(it,1e-10)
10314 self.assertEqual(expected0[pos],arr.getValues())
10315 self.assertEqual(expected1[pos],arrI.getValues())
10319 def testSwigDataTupleIOp1(self):
10320 d=DataArrayDouble(10,1)
10325 toTest=DataArrayDouble([9.0,10.0,11.0,12.0,13.0,14.0,15.0,16.0,17.0,18.0])
10326 self.assertTrue(toTest.isEqual(d,1e-12))
10330 toTest=DataArrayDouble([7.0,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0,16.0])
10331 self.assertTrue(toTest.isEqual(d,1e-12))
10335 toTest=DataArrayDouble([14.0,16.0,18.0,20.0,22.0,24.0,26.0,28.0,30.0,32.0])
10336 self.assertTrue(toTest.isEqual(d,1e-12))
10340 toTest=DataArrayDouble([7.0,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0,16.0])
10341 self.assertTrue(toTest.isEqual(d,1e-12))
10343 d=DataArrayInt(10,1)
10348 self.assertEqual(d.getValues(),[9,10,11,12,13,14,15,16,17,18])
10352 self.assertEqual(d.getValues(),[7,8,9,10,11,12,13,14,15,16])
10356 self.assertEqual(d.getValues(),[14,16,18,20,22,24,26,28,30,32])
10360 self.assertEqual(d.getValues(),[7,8,9,10,11,12,13,14,15,16])
10364 self.assertEqual(d.getValues(),[1,2,0,1,2,0,1,2,0,1])
10367 def testIntersect2DMeshesTmp5(self):
10368 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)
10369 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)
10370 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)
10372 m1=MEDCouplingUMesh.New("Fix",2);
10373 m1.setCoords(coords);
10374 m1.setConnectivity(conn,connI,True);
10376 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)
10378 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);
10380 connI=DataArrayInt([0,9,18,27,36,45,54,63,72],9)
10381 m2=MEDCouplingUMesh.New("Mobile",2);
10382 m2.setCoords(coords);
10383 m2.setConnectivity(conn,connI,True);
10385 m3,d1,d2=MEDCouplingUMesh.Intersect2DMeshes(m1,m2,1e-10);
10386 self.assertEqual(105,m3.getNumberOfCells());
10387 self.assertEqual(105,d1.getNumberOfTuples());
10388 self.assertEqual(105,d2.getNumberOfTuples());
10389 self.assertEqual(704,m3.getNumberOfNodes());
10391 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]
10392 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]
10393 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]
10394 f3=m3.getMeasureField(ON_CELLS).getArray().getValues();
10395 for i in xrange(105):
10396 self.assertAlmostEqual(areaExpected[i],f3[i],10)
10398 self.assertEqual(expected1,d1.getValues())
10399 self.assertEqual(expected2,d2.getValues())
10402 def testSwig2Intersect2DMeshesQuadra1(self):
10404 def createDiagCircle(lX, lY, R, cells=[0,1]):
10405 """ A circle in a square box, cut along the diagonal.
10409 c.append(cmath.rect(R, i*pi/4))
10411 coords = [0.0,0.0, c[3].real,c[3].imag, -lX/2.0, lY/2.0,
10412 0.0, lY/2.0, lX/2.0,lY/2.0, lX/2.0,0.0,
10414 lX/2.0,-lY/2.0, c[7].real,c[7].imag, c[1].real,c[1].imag,
10416 c[5].real,c[5].imag, -lX/2.0,-lY/2.0, 0.0, -lY/2.0,
10418 -lX/2.0,0.0, 0.0,0.0, 0.0, 0.0]
10419 # Points 13 (reps. 14) are average of points (6,7) (resp (1,2))
10420 coords[13*2] = 0.5*(coords[6*2]+coords[7*2])
10421 coords[13*2+1] = 0.5*(coords[6*2+1]+coords[7*2+1])
10422 coords[14*2] = 0.5*(coords[1*2]+coords[2*2])
10423 coords[14*2+1] = 0.5*(coords[1*2+1]+coords[2*2+1])
10424 connec = [1,7,8,0] # half circle up right
10425 connec3 = [6,7,1,2,4,13,8,14,3,5]
10427 baseMesh = MEDCouplingUMesh.New("box_circle", 2)
10428 baseMesh.allocateCells(2)
10429 meshCoords = DataArrayDouble.New(coords, len(coords)/2, 2)
10430 meshCoords.setInfoOnComponents(["X [au]", "Y [au]"])
10431 baseMesh.setCoords(meshCoords)
10434 baseMesh.insertNextCell(NORM_QPOLYG, connec)
10436 baseMesh.insertNextCell(NORM_QPOLYG, connec3)
10437 baseMesh.finishInsertingCells()
10438 baseMesh.checkCoherency()
10442 m1 = createDiagCircle(1.0, 1.0, 0.5*0.90, cells=[0,1])
10443 m2 = createDiagCircle(1.0, 1.0, 0.5*0.95, cells=[0])
10444 m3, _, _= MEDCouplingUMesh.Intersect2DMeshes(m1, m2, eps)
10446 m3.convertDegeneratedCells()
10449 m5, _, _ = MEDCouplingUMesh.Intersect2DMeshes(m3, m4, eps)
10451 # Check coordinates:
10452 self.assertTrue(m3.getCoords().isEqual(m5.getCoords(), eps))
10454 def testIntersect2DMeshesTmp7(self):
10456 coords = [-0.5,-0.5, -0.5, 0.5, 0.5, 0.5, 0.5,-0.5]
10458 m1 = MEDCouplingUMesh.New("box", 2)
10459 m1.allocateCells(1)
10460 meshCoords = DataArrayDouble.New(coords, len(coords)/2, 2)
10461 m1.setCoords(meshCoords)
10462 m1.insertNextCell(NORM_POLYGON, connec)
10463 m1.finishInsertingCells()
10465 m2 = MEDCouplingDataForTest.buildCircle(0.25, 0.2, 0.4)
10466 # Was looping indefinitly:
10467 m_intersec, resToM1, resToM2 = MEDCouplingUMesh.Intersect2DMeshes(m1, m2, eps)
10468 m_intersec.zipCoords()
10469 coo_tgt = DataArrayDouble([-0.5, -0.5, -0.5, 0.5, 0.5, 0.5, 0.5, -0.5, -0.03284271247461901, 0.4828427124746191,
10470 -0.014575131106459124, 0.5000000000000001, 0.5, -0.11224989991991996, 0.24271243444677046, 0.5, 0.5, 0.19387505004004,
10471 -0.04799910280454185, -0.06682678787499614, -0.023843325638122054, 0.4915644577163915, 0.5, -0.30612494995996, 0.0, -0.5,
10472 -0.5, 0.0, -0.25728756555322957, 0.5, -0.023843325638122026, 0.49156445771639157, -0.04799910280454181, -0.06682678787499613], 17 ,2)
10473 conn_tgt = [32, 5, 2, 6, 4, 7, 8, 9, 10, 32, 6, 3, 0, 1, 5, 4, 11, 12, 13, 14, 15, 16]
10474 connI_tgt = [0, 9, 22]
10477 self.assert_(coo_tgt.isEqualWithoutConsideringStr(m_intersec.getCoords(), 1e-12))
10478 self.assertEqual(conn_tgt, m_intersec.getNodalConnectivity().getValues())
10479 self.assertEqual(connI_tgt, m_intersec.getNodalConnectivityIndex().getValues())
10480 self.assertEqual(res1_tgt, resToM1.getValues())
10481 self.assertEqual(res2_tgt, resToM2.getValues())
10483 def testDAIBuildUnique1(self):
10484 d=DataArrayInt([1,2,2,3,3,3,3,4,5,5,7,7,7,19])
10486 self.assertTrue(e.isEqual(DataArrayInt([1,2,3,4,5,7,19])))
10489 def testDAIPartitionByDifferentValues1(self):
10490 d=DataArrayInt([1,0,1,2,0,2,2,-3,2])
10491 expected=[[-3,[7]],[0,[1,4]],[1,[0,2]],[2,[3,5,6,8]]]
10492 for i,elt in enumerate(zip(*d.partitionByDifferentValues())):
10493 self.assertEqual(expected[i][0],elt[1])
10494 self.assertEqual(expected[i][1],elt[0].getValues())
10498 def testFieldGaussMultiDiscPerType1(self):
10499 coords=DataArrayDouble([0.,0.,0.,1.,1.,1.,1.,0.,0.,0.5,0.5,1.,1.,0.5,0.5,0.],8,2)
10500 mQ8=MEDCouplingUMesh("",2) ; mQ8.setCoords(coords)
10501 mQ8.allocateCells(1)
10502 mQ8.insertNextCell(NORM_QUAD8,range(8))
10503 mQ8.finishInsertingCells()
10504 mQ4=MEDCouplingUMesh("",2) ; mQ4.setCoords(coords)
10505 mQ4.allocateCells(1)
10506 mQ4.insertNextCell(NORM_QUAD4,range(4))
10507 mQ4.finishInsertingCells()
10508 mT3=MEDCouplingUMesh("",2) ; mT3.setCoords(coords)
10509 mT3.allocateCells(1)
10510 mT3.insertNextCell(NORM_TRI3,range(3))
10511 mT3.finishInsertingCells()
10513 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.]]
10514 ms=2*[mQ4]+7*[mQ8]+11*[mT3]
10515 ms[:]=(elt.deepCpy() for elt in ms)
10516 for m,t in zip(ms,tr):
10517 d=m.getCoords() ; d+= t
10519 m=MEDCouplingUMesh.MergeUMeshes(ms)
10520 f=MEDCouplingFieldDouble.New(ON_GAUSS_PT,NO_TIME)
10522 # throw because cell 0,1 are QUAD4 and cell 3 is QUAD8
10523 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])
10524 f.setGaussLocalizationOnCells([0,1],[0.,0.,1.,0.,1.,1.,0.,1.],[0.3,0.3,0.7,0.7],[0.8,0.2])
10525 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])
10526 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])
10527 f.setGaussLocalizationOnCells([9,10,11,12,13],[0.,0.,1.,0.,1.,1.],[0.4,0.4],[1.])
10528 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])
10529 self.assertEqual(46,f.getNumberOfTuplesExpected())
10530 vals=DataArrayDouble.New(46*3,1) ; vals.iota(7.7) ; vals.rearrange(3)
10533 #f.getLocalizationOfDiscr()
10534 self.assertRaises(InterpKernelException,f.getGaussLocalizationIdOfOneType,NORM_QUAD8) #throw because several loc
10535 self.assertEqual([1,2],f.getGaussLocalizationIdsOfOneType(NORM_QUAD8))
10536 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())
10538 fc.checkCoherency()
10539 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))
10540 fc.renumberCells([3,2,0,1])
10541 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))
10545 def testSwigRotate(self):
10546 d=DataArrayDouble([1.,2.,3.,4.,6.,5.],2,3)
10547 MEDCouplingPointSet.Rotate3DAlg([0.,0.,0.],[0.,1.,0.],1.5707963267948966,d)
10548 self.assertTrue(d.isEqual(DataArrayDouble([3.,2.,-1.,5.,6.,-4.],2,3),1e-12))
10549 d=DataArrayDouble([1.,2.,3.,4.,6.,5.],3,2)
10550 MEDCouplingPointSet.Rotate2DAlg([0.,0.],1.5707963267948966,d)
10551 self.assertTrue(d.isEqual(DataArrayDouble([-2.,1.,-4.,3.,-5.,6.],3,2),1e-12))
10554 def testSwigCMeshProtection(self):
10555 cm=MEDCouplingCMesh()
10556 self.assertRaises(InterpKernelException,cm.setCoordsAt,0,DataArrayDouble([4.,4.5,6.,7.],2,2))
10557 self.assertRaises(InterpKernelException,cm.setCoords,DataArrayDouble([4.,4.5,6.,7.],2,2))
10560 def testSwigCellsInBoundingBox1(self):
10561 m3D=MEDCouplingDataForTest.build3DExtrudedUMesh_1()[0]
10562 self.assertTrue(m3D.getCellsInBoundingBox([(0,3),(0,3),(0,1)],-1e-12).isEqual(DataArrayInt([0,1,2,3,4,5])))
10563 self.assertRaises(InterpKernelException,m3D.getCellsInBoundingBox,[(0,3,0),(3,0,1)],-1e-12)
10566 def testDAICheckMonotonic1(self):
10567 data1=[-1,0,2,2,4,5]
10568 data2=[6,2,0,-8,-9,-56]
10569 data3=[-1,0,3,2,4,6]
10570 data4=[7,5,2,3,0,-6]
10571 d=DataArrayInt.New(data1);
10572 self.assertTrue(d.isMonotonic(True));
10573 self.assertTrue(not d.isMonotonic(False));
10574 d.checkMonotonic(True);
10575 self.assertRaises(InterpKernelException,d.checkMonotonic,False)
10576 d=DataArrayInt.New(data2);
10577 self.assertTrue(d.isMonotonic(False));
10578 self.assertTrue(not d.isMonotonic(True));
10579 d.checkMonotonic(False);
10580 self.assertRaises(InterpKernelException,d.checkMonotonic,True)
10581 d=DataArrayInt.New(data3);
10582 self.assertTrue(not d.isMonotonic(False));
10583 self.assertTrue(not d.isMonotonic(True));
10584 self.assertRaises(InterpKernelException,d.checkMonotonic,True)
10585 self.assertRaises(InterpKernelException,d.checkMonotonic,False)
10586 d=DataArrayInt.New(data4);
10587 self.assertTrue(not d.isMonotonic(False));
10588 self.assertTrue(not d.isMonotonic(True));
10589 self.assertRaises(InterpKernelException,d.checkMonotonic,True)
10590 self.assertRaises(InterpKernelException,d.checkMonotonic,False)
10591 d=DataArrayInt.New(0,1)
10592 self.assertTrue(d.isMonotonic(True));
10593 self.assertTrue(d.isMonotonic(False));
10594 d.checkMonotonic(True);
10595 d.checkMonotonic(False);
10596 d=DataArrayInt.New(data4,3,2);#throw because nbComp!=1
10597 self.assertRaises(InterpKernelException,d.isMonotonic,True)
10598 self.assertRaises(InterpKernelException,d.isMonotonic,False)
10599 self.assertRaises(InterpKernelException,d.checkMonotonic,True)
10600 self.assertRaises(InterpKernelException,d.checkMonotonic,False)
10603 def testSwigDASetItemOnEmpty1(self):
10604 d=DataArrayInt(0,1)
10608 except InterpKernelException as e:
10611 self.assertTrue(isThrow)
10615 d=DataArrayDouble(0,1)
10619 except InterpKernelException as e:
10622 self.assertTrue(isThrow)
10625 d=DataArrayInt([],0,1)
10627 self.assertTrue(d2.isEqual(d))
10628 d=DataArrayDouble([],0,1)
10629 d2=DataArrayDouble(0)
10630 self.assertTrue(d2.isEqual(d,1e-12))
10633 def testSwigDAITransformWithIndArr1(self):
10634 arr=DataArrayInt([0,4,5,1])
10635 d=DataArrayInt([7,8,9,10])
10636 self.assertRaises(InterpKernelException,arr.transformWithIndArr,d)
10639 def testIntersect2DMeshesTmp6(self):
10641 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);
10643 conn=DataArrayInt.New([8,0,3,5,1,4,6,7,2])
10644 connI=DataArrayInt.New([0,9]);
10645 m1=MEDCouplingUMesh.New("Fixe",2);
10646 m1.setCoords(coords);
10647 m1.setConnectivity(conn,connI,True);
10649 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);
10651 conn=DataArrayInt.New([8,0,1,2,3,4,5,6,7,8,3,2,8,9,6,10,11,12]);
10652 connI=DataArrayInt.New([0,9,18]);
10654 m2=MEDCouplingUMesh.New("Mobile",2);
10655 m2.setCoords(coords);
10656 m2.setConnectivity(conn,connI,True);
10658 m3,d1,d2=MEDCouplingUMesh.Intersect2DMeshes(m1,m2,1e-10);
10659 self.assertTrue(d1.isEqual(DataArrayInt([0,0,0,0])));
10660 self.assertTrue(d2.isEqual(DataArrayInt([0,1,-1,-1])));
10661 self.assertEqual(4,m3.getNumberOfCells());
10662 self.assertEqual(4,d1.getNumberOfTuples());
10663 self.assertEqual(4,d2.getNumberOfTuples());
10664 self.assertEqual(43,m3.getNumberOfNodes());
10665 dI,areMerged,newNbOfNodes=m3.mergeNodes(1e-12)
10666 self.assertEqual(35,m3.getNumberOfNodes());
10668 self.assertEqual(23,m3.getNumberOfNodes());
10670 f=m3.getMeasureField(True);
10671 valuesExpected=DataArrayDouble([1.6603638692585716,5.747555728471923,129.68907101754394,7.4162714498559694])
10672 self.assertTrue(f.getArray().isEqual(valuesExpected,1e-12))
10675 def testDAPushBack(self):
10676 d=DataArrayDouble(0,1)
10677 for i in xrange(8):
10678 d.pushBackSilent(i)
10680 self.assertEqual(d.getNumberOfTuples(),8)
10681 self.assertEqual(d.getNbOfElemAllocated(),8)
10682 d.pushBackSilent(4.44)
10683 self.assertEqual(d.getNumberOfTuples(),9)
10684 self.assertEqual(d.getNbOfElemAllocated(),16)
10685 self.assertTrue(d.isEqual(DataArrayDouble([0.,1.,2.,3.,4.,5.,6.,7.,4.44]),1e-12))
10687 self.assertEqual(e.getNumberOfTuples(),9)
10688 self.assertEqual(e.getNbOfElemAllocated(),9)
10689 self.assertTrue(e.isEqual(DataArrayDouble([0.,1.,2.,3.,4.,5.,6.,7.,4.44]),1e-12))
10690 self.assertAlmostEqual(d.popBackSilent(),4.44,12)
10691 self.assertEqual(d.getNumberOfTuples(),8)
10692 self.assertEqual(d.getNbOfElemAllocated(),16)
10693 self.assertTrue(d.isEqual(DataArrayDouble([0.,1.,2.,3.,4.,5.,6.,7.]),1e-12))
10694 f=DataArrayDouble()
10696 f.pushBackSilent(4.)
10697 self.assertTrue(f.isEqual(DataArrayDouble([4.]),1e-12))
10698 self.assertEqual(f.getNumberOfTuples(),1)
10699 self.assertEqual(f.getNbOfElemAllocated(),1000)
10701 self.assertTrue(ff.isEqual(DataArrayDouble([4.]),1e-12))
10702 self.assertEqual(ff.getNumberOfTuples(),1)
10703 self.assertEqual(ff.getNbOfElemAllocated(),1)
10704 d=DataArrayDouble()
10705 d.pushBackSilent(4.44)
10706 d.pushBackSilent(5.55)
10707 d.pushBackSilent(6.66)
10708 self.assertTrue(d.isEqual(DataArrayDouble([4.44,5.55,6.66]),1e-12))
10710 d=DataArrayInt(0,1)
10711 for i in xrange(8):
10712 d.pushBackSilent(i)
10714 self.assertEqual(d.getNumberOfTuples(),8)
10715 self.assertEqual(d.getNbOfElemAllocated(),8)
10716 d.pushBackSilent(444)
10717 self.assertEqual(d.getNumberOfTuples(),9)
10718 self.assertEqual(d.getNbOfElemAllocated(),16)
10719 self.assertTrue(d.isEqual(DataArrayInt([0,1,2,3,4,5,6,7,444])))
10721 self.assertEqual(e.getNumberOfTuples(),9)
10722 self.assertEqual(e.getNbOfElemAllocated(),9)
10723 self.assertTrue(e.isEqual(DataArrayInt([0,1,2,3,4,5,6,7,444])))
10724 self.assertEqual(d.popBackSilent(),444)
10725 self.assertEqual(d.getNumberOfTuples(),8)
10726 self.assertEqual(d.getNbOfElemAllocated(),16)
10727 self.assertTrue(d.isEqual(DataArrayInt([0,1,2,3,4,5,6,7])))
10730 f.pushBackSilent(4)
10731 self.assertTrue(f.isEqual(DataArrayInt([4])))
10732 self.assertEqual(f.getNumberOfTuples(),1)
10733 self.assertEqual(f.getNbOfElemAllocated(),1000)
10735 self.assertTrue(ff.isEqual(DataArrayInt([4])))
10736 self.assertEqual(ff.getNumberOfTuples(),1)
10737 self.assertEqual(ff.getNbOfElemAllocated(),1)
10739 d.pushBackSilent(444)
10740 d.pushBackSilent(555)
10741 d.pushBackSilent(666)
10742 self.assertTrue(d.isEqual(DataArrayInt([444,555,666])))
10746 d.setInfoOnComponent(0,"ABC")
10749 e=DataArrayInt([7,8,9,10,11,12,13,14,15,16]) ; e.copyStringInfoFrom(d) ; self.assertTrue(d.isEqual(e))
10750 self.assertEqual(10,d.getNbOfElemAllocated())
10751 d.pushBackSilent(55)
10752 e=DataArrayInt([7,8,9,10,11,12,13,14,15,16,55]) ; e.copyStringInfoFrom(d) ; self.assertTrue(d.isEqual(e))
10753 self.assertEqual(20,d.getNbOfElemAllocated())
10755 e=DataArrayInt([7,8,9,10]) ; e.copyStringInfoFrom(d) ; self.assertTrue(d.isEqual(e))
10756 self.assertEqual(4,d.getNbOfElemAllocated())
10757 d.pushBackSilent(5)
10758 e=DataArrayInt([7,8,9,10,5]) ; e.copyStringInfoFrom(d) ; self.assertTrue(d.isEqual(e))
10759 self.assertEqual(8,d.getNbOfElemAllocated())
10760 self.assertEqual(5,d.popBackSilent())
10761 e=DataArrayInt([7,8,9,10]) ; e.copyStringInfoFrom(d) ; self.assertTrue(d.isEqual(e))
10762 self.assertEqual(8,d.getNbOfElemAllocated())
10763 self.assertRaises(OverflowError,d.reserve,-1)
10764 e=DataArrayInt([7,8,9,10]) ; e.copyStringInfoFrom(d) ; self.assertTrue(d.isEqual(e))
10765 self.assertEqual(8,d.getNbOfElemAllocated())
10767 e=DataArrayInt([]) ; e.setInfoOnComponent(0,"ABC") ; e.setName("dEf") ; self.assertTrue(d.isEqual(e))
10768 self.assertEqual(0,d.getNbOfElemAllocated())
10770 d=DataArrayDouble()
10772 d.setInfoOnComponent(0,"ABC")
10775 e=DataArrayDouble([7,8,9,10,11,12,13,14,15,16]) ; e.copyStringInfoFrom(d) ; self.assertTrue(d.isEqual(e,1e-14))
10776 self.assertEqual(10,d.getNbOfElemAllocated())
10777 d.pushBackSilent(55)
10778 e=DataArrayDouble([7,8,9,10,11,12,13,14,15,16,55]) ; e.copyStringInfoFrom(d) ; self.assertTrue(d.isEqual(e,1e-14))
10779 self.assertEqual(20,d.getNbOfElemAllocated())
10781 e=DataArrayDouble([7,8,9,10]) ; e.copyStringInfoFrom(d) ; self.assertTrue(d.isEqual(e,1e-14))
10782 self.assertEqual(4,d.getNbOfElemAllocated())
10783 d.pushBackSilent(5)
10784 e=DataArrayDouble([7,8,9,10,5]) ; e.copyStringInfoFrom(d) ; self.assertTrue(d.isEqual(e,1e-14))
10785 self.assertEqual(8,d.getNbOfElemAllocated())
10786 self.assertEqual(5.,d.popBackSilent())
10787 e=DataArrayDouble([7,8,9,10]) ; e.copyStringInfoFrom(d) ; self.assertTrue(d.isEqual(e,1e-14))
10788 self.assertEqual(8,d.getNbOfElemAllocated())
10789 self.assertRaises(OverflowError,d.reserve,-1)
10790 e=DataArrayDouble([7,8,9,10]) ; e.copyStringInfoFrom(d) ; self.assertTrue(d.isEqual(e,1e-14))
10791 self.assertEqual(8,d.getNbOfElemAllocated())
10793 e=DataArrayDouble([]) ; e.setInfoOnComponent(0,"ABC") ; e.setName("dEf") ; self.assertTrue(d.isEqual(e,1e-14))
10794 self.assertEqual(0,d.getNbOfElemAllocated())
10797 def testDAIBuildSubstractionOptimized1(self):
10798 da1=DataArrayInt.New([1,3,5,6,7,9,13])
10799 da2=DataArrayInt.New([3,5,9])
10800 da3=DataArrayInt.New([1,3,5])
10801 da4=DataArrayInt.New([1,3,5,6,7,9,13])
10803 a=da1.buildSubstractionOptimized(da2);
10804 self.assertTrue(a.isEqual(DataArrayInt([1,6,7,13])));
10806 a=da1.buildSubstractionOptimized(da3);
10807 self.assertTrue(a.isEqual(DataArrayInt([6,7,9,13])));
10809 a=da1.buildSubstractionOptimized(da4);
10810 self.assertTrue(a.isEqual(DataArrayInt([])));
10813 def testDAIIsStrictlyMonotonic1(self):
10814 da1=DataArrayInt.New([1,3,5,6,7,9,13])
10815 self.assertTrue(da1.isStrictlyMonotonic(True));
10816 da1.checkStrictlyMonotonic(True);
10817 self.assertTrue(da1.isMonotonic(True));
10818 da1.checkMonotonic(True);
10819 self.assertTrue(not da1.isStrictlyMonotonic(False));
10820 self.assertRaises(InterpKernelException,da1.checkStrictlyMonotonic,False)
10821 self.assertTrue(not da1.isMonotonic(False));
10822 self.assertRaises(InterpKernelException,da1.checkMonotonic,False)
10824 da1=DataArrayInt.New([1,3,5,6,6,9,13])
10825 self.assertTrue(not da1.isStrictlyMonotonic(True));
10826 self.assertRaises(InterpKernelException,da1.checkStrictlyMonotonic,True)
10827 self.assertTrue(da1.isMonotonic(True));
10828 da1.checkMonotonic(True);
10829 self.assertTrue(not da1.isStrictlyMonotonic(False));
10830 self.assertRaises(InterpKernelException,da1.checkStrictlyMonotonic,False)
10831 self.assertTrue(not da1.isMonotonic(False));
10832 self.assertRaises(InterpKernelException,da1.checkMonotonic,False)
10834 da1=DataArrayInt.New([1,3,5,6,5,9,13])
10835 self.assertTrue(not da1.isStrictlyMonotonic(True));
10836 self.assertRaises(InterpKernelException,da1.checkStrictlyMonotonic,True)
10837 self.assertTrue(not da1.isMonotonic(True));
10838 self.assertRaises(InterpKernelException,da1.checkMonotonic,True)
10839 self.assertTrue(not da1.isStrictlyMonotonic(False));
10840 self.assertRaises(InterpKernelException,da1.checkStrictlyMonotonic,False)
10841 self.assertTrue(not da1.isMonotonic(False));
10842 self.assertRaises(InterpKernelException,da1.checkMonotonic,False)
10844 da1=DataArrayInt.New([13,9,7,6,5,3,1])
10845 self.assertTrue(not da1.isStrictlyMonotonic(True));
10846 self.assertRaises(InterpKernelException,da1.checkStrictlyMonotonic,True)
10847 self.assertTrue(not da1.isMonotonic(True));
10848 self.assertRaises(InterpKernelException,da1.checkMonotonic,True)
10849 self.assertTrue(da1.isStrictlyMonotonic(False));
10850 da1.checkStrictlyMonotonic(False);
10851 self.assertTrue(da1.isMonotonic(False));
10852 da1.checkMonotonic(False);
10854 da1=DataArrayInt.New([13,9,6,6,5,3,1])
10855 self.assertTrue(not da1.isStrictlyMonotonic(True));
10856 self.assertRaises(InterpKernelException,da1.checkStrictlyMonotonic,True)
10857 self.assertTrue(not da1.isMonotonic(True));
10858 self.assertRaises(InterpKernelException,da1.checkMonotonic,True)
10859 self.assertTrue(not da1.isStrictlyMonotonic(False));
10860 self.assertRaises(InterpKernelException,da1.checkStrictlyMonotonic,False)
10861 self.assertTrue(da1.isMonotonic(False));
10862 da1.checkMonotonic(False);
10864 da1=DataArrayInt.New([13,9,5,6,5,3,1])
10865 self.assertTrue(not da1.isStrictlyMonotonic(True));
10866 self.assertRaises(InterpKernelException,da1.checkStrictlyMonotonic,True)
10867 self.assertTrue(not da1.isMonotonic(True));
10868 self.assertRaises(InterpKernelException,da1.checkMonotonic,True)
10869 self.assertTrue(not da1.isStrictlyMonotonic(False));
10870 self.assertRaises(InterpKernelException,da1.checkStrictlyMonotonic,False)
10871 self.assertTrue(not da1.isMonotonic(False));
10872 self.assertRaises(InterpKernelException,da1.checkMonotonic,False)
10874 da1=DataArrayInt.New([])
10875 self.assertTrue(da1.isStrictlyMonotonic(True));
10876 da1.checkStrictlyMonotonic(True);
10877 self.assertTrue(da1.isMonotonic(True));
10878 da1.checkMonotonic(True);
10879 self.assertTrue(da1.isStrictlyMonotonic(False));
10880 da1.checkStrictlyMonotonic(False);
10881 self.assertTrue(da1.isMonotonic(False));
10882 da1.checkMonotonic(False);
10884 da1=DataArrayInt.New([13])
10885 self.assertTrue(da1.isStrictlyMonotonic(True));
10886 da1.checkStrictlyMonotonic(True);
10887 self.assertTrue(da1.isMonotonic(True));
10888 da1.checkMonotonic(True);
10889 self.assertTrue(da1.isStrictlyMonotonic(False));
10890 da1.checkStrictlyMonotonic(False);
10891 self.assertTrue(da1.isMonotonic(False));
10892 da1.checkMonotonic(False);
10895 def testFindAndCorrectBadOriented3DCells1(self):
10897 vects=([0,0,-1],[0.3,0.7,0.2],[-0.3,0.7,0.2],[-0.3,-0.7,0.2])
10899 m0=MEDCouplingUMesh("m",3) ; m0.allocateCells(0); m0.insertNextCell(NORM_TETRA4,[0,1,2,3]); #Well oriented
10900 m1=MEDCouplingUMesh("m",3) ; m1.allocateCells(0); m1.insertNextCell(NORM_PYRA5,[0,1,2,3,4]); #Well oriented
10901 m2=MEDCouplingUMesh("m",3) ; m2.allocateCells(0); m2.insertNextCell(NORM_PENTA6,[0,1,2,3,4,5]); #Well oriented
10902 m3=MEDCouplingUMesh("m",3) ; m3.allocateCells(0); m3.insertNextCell(NORM_HEXA8,[0,1,2,3,4,5,6,7]); #Well oriented
10903 m4=MEDCouplingUMesh("m",3) ; m4.allocateCells(0)
10904 self.assertRaises(InterpKernelException,m4.insertNextCell,NORM_HEXGP12,[0,1,2,3,4,5,6,7,8,9,10,11,12]);
10905 m4.insertNextCell(NORM_HEXGP12,[0,1,2,3,4,5,6,7,8,9,10,11]); #Well oriented
10906 c0=DataArrayDouble([0.,0.,0.,0.,1.,0.,1.,0.,0.,0.,0.,1.],4,3) ; m0.setCoords(c0)
10907 c1=DataArrayDouble([0.,0.,0.,0.,1.,0.,1.,1.,0.,1.,0.,0.,0.,0.,1.],5,3) ; m1.setCoords(c1)
10908 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)
10909 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)
10910 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)
10911 m=MEDCouplingMesh.MergeMeshes([m0,m1,m2,m3,m4])
10912 expected1=DataArrayDouble([0.16666666666666666,0.3333333333333333,0.5,1.,1.])
10914 for i in xrange(nbOfDisc):
10916 mm.rotate([0.,0.,0.],[0.3,0.7,0.2],float(i)/float(nbOfDisc)*2*pi)
10918 self.assertTrue(mm.getMeasureField(False).getArray().isEqual(expected1,1e-14))
10919 self.assertTrue(mm.findAndCorrectBadOriented3DCells().empty())
10920 self.assertTrue(mm.isEqual(mm2,1e-14))
10921 self.assertTrue(mm.getMeasureField(False).getArray().isEqual(expected1,1e-14))
10922 mm.convertAllToPoly()
10923 self.assertTrue(mm.getMeasureField(False).getArray().isEqual(expected1,1e-14))
10928 m0=MEDCouplingUMesh("m",3) ; m0.allocateCells(0); m0.insertNextCell(NORM_TETRA4,[0,2,1,3]); #Not well oriented
10929 m1=MEDCouplingUMesh("m",3) ; m1.allocateCells(0); m1.insertNextCell(NORM_PYRA5,[0,1,2,3,4]); #Well oriented
10930 m2=MEDCouplingUMesh("m",3) ; m2.allocateCells(0); m2.insertNextCell(NORM_PENTA6,[0,1,2,3,4,5]); #Well oriented
10931 m3=MEDCouplingUMesh("m",3) ; m3.allocateCells(0); m3.insertNextCell(NORM_HEXA8,[0,3,2,1,4,7,6,5]); #Not well oriented
10932 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
10933 m0.setCoords(c0) ; m1.setCoords(c1) ; m2.setCoords(c2) ; m3.setCoords(c3) ; m4.setCoords(c4)
10934 m=MEDCouplingMesh.MergeMeshes([m0,m1,m2,m3,m4])
10935 expected2=DataArrayDouble([-0.16666666666666666,0.3333333333333333,0.5,-1.,-1.])
10937 for i in xrange(nbOfDisc):
10939 mm.rotate([0.,0.,0.],[0.3,0.7,0.2],float(i)/float(nbOfDisc)*2*pi)
10940 mm2=mm.deepCpy() ; mm3=mm.deepCpy() ; mm3.convertAllToPoly()
10941 self.assertTrue(mm3.getMeasureField(False).getArray().isEqual(expected2,1e-14))
10942 self.assertTrue(mm.getMeasureField(False).getArray().isEqual(expected2,1e-14))
10943 self.assertTrue(mm.findAndCorrectBadOriented3DCells().isEqual(DataArrayInt([0,3,4])))
10944 mOK.setCoords(mm.getCoords())
10945 self.assertTrue(mm.isEqual(mOK,1e-14))
10946 self.assertTrue(mm.getMeasureField(False).getArray().isEqual(expected1,1e-14))
10948 self.assertTrue(mmm.findAndCorrectBadOriented3DCells().empty())
10949 mm.convertAllToPoly()
10950 self.assertTrue(mm.getMeasureField(False).getArray().isEqual(expected1,1e-14))
10954 m0=MEDCouplingUMesh("m",3) ; m0.allocateCells(0); m0.insertNextCell(NORM_TETRA4,[0,1,2,3]); #Well oriented
10955 m1=MEDCouplingUMesh("m",3) ; m1.allocateCells(0); m1.insertNextCell(NORM_PYRA5,[0,3,2,1,4]); #Not well oriented
10956 m2=MEDCouplingUMesh("m",3) ; m2.allocateCells(0); m2.insertNextCell(NORM_PENTA6,[0,2,1,3,5,4]); #Not well oriented
10957 m3=MEDCouplingUMesh("m",3) ; m3.allocateCells(0); m3.insertNextCell(NORM_HEXA8,[0,1,2,3,4,5,6,7]); #Well oriented
10958 m4=MEDCouplingUMesh("m",3) ; m4.allocateCells(0); m4.insertNextCell(NORM_HEXGP12,range(12)); #Well oriented
10959 m0.setCoords(c0) ; m1.setCoords(c1) ; m2.setCoords(c2) ; m3.setCoords(c3) ; m4.setCoords(c4)
10960 m=MEDCouplingMesh.MergeMeshes([m0,m1,m2,m3,m4])
10961 expected3=DataArrayDouble([0.16666666666666666,-0.3333333333333333,-0.5,1.,1.])
10963 for i in xrange(nbOfDisc):
10965 mm.rotate([0.,0.,0.],[0.3,0.7,0.2],float(i)/float(nbOfDisc)*2*pi)
10966 mm2=mm.deepCpy() ; mm3=mm.deepCpy() ; mm3.convertAllToPoly()
10967 self.assertTrue(mm3.getMeasureField(False).getArray().isEqual(expected3,1e-14))
10968 self.assertTrue(mm.getMeasureField(False).getArray().isEqual(expected3,1e-14))
10969 self.assertTrue(mm.findAndCorrectBadOriented3DCells().isEqual(DataArrayInt([1,2])))
10970 mOK.setCoords(mm.getCoords())
10971 self.assertTrue(mm.isEqual(mOK,1e-14))
10972 self.assertTrue(mm.getMeasureField(False).getArray().isEqual(expected1,1e-14))
10974 self.assertTrue(mmm.findAndCorrectBadOriented3DCells().empty())
10975 mm.convertAllToPoly()
10976 self.assertTrue(mm.getMeasureField(False).getArray().isEqual(expected1,1e-14))
10981 def testSwig2CellOrientation1(self):
10982 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)
10983 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]]
10984 for i in xrange(256):
10985 mesh=MEDCouplingUMesh("FluidMesh_1",3);
10986 mesh.allocateCells(0)
10987 conn2=[elt[:] for elt in conn]
10988 code=bin(i)[2:] ; code='0'*(8-len(code))+code
10989 for face,rev in zip(conn2,code):
10994 conn3=[elt+[-1] for elt in conn2]
10995 conn3=sum(conn3,[])[:-1]
10996 mesh.insertNextCell(NORM_POLYHED,conn3)
10997 mesh.setCoords(coords)
10998 mesh.orientCorrectlyPolyhedrons()
10999 self.assertTrue(mesh.getBarycenterAndOwner().isEqual(DataArrayDouble([-0.10803,0.,0.3385],1,3),1e-12))
11003 def testSwig2CheckConsecutiveCellTypesForMEDFileFrmt1(self):
11004 m1=MEDCouplingUMesh("",2) ; m1.allocateCells(0)
11005 m1.insertNextCell(NORM_QUAD4,[0,1,2,3])
11006 m1.insertNextCell(NORM_TRI3,[0,1,2])
11007 d=DataArrayDouble(4,3) ; d[:]=0.
11009 self.assertTrue(m1.checkConsecutiveCellTypes())
11010 self.assertTrue(not m1.checkConsecutiveCellTypesForMEDFileFrmt())
11011 m1.renumberCells([1,0])
11012 self.assertTrue(m1.checkConsecutiveCellTypes())
11013 self.assertTrue(m1.checkConsecutiveCellTypesForMEDFileFrmt())
11016 def testSwig2DAAccumulate1(self):
11017 d=DataArrayInt(10) ; d.iota(0)
11018 self.assertEqual([45],d.accumulate())
11019 self.assertEqual(45,d.accumulate(0))
11020 d=DataArrayInt(30) ; d.iota(0) ; d.rearrange(3)
11021 self.assertEqual([135,145,155],d.accumulate())
11022 self.assertEqual(135,d.accumulate(0))
11023 self.assertEqual(145,d.accumulate(1))
11024 self.assertEqual(155,d.accumulate(2))
11025 d=DataArrayDouble(10) ; d.iota(0.)
11026 self.assertEqual([45.],d.accumulate())
11027 self.assertEqual(45.,d.accumulate(0))
11028 d=DataArrayDouble(30) ; d.iota(0) ; d.rearrange(3)
11029 self.assertEqual([135.,145.,155.],d.accumulate())
11030 self.assertEqual(135.,d.accumulate(0))
11031 self.assertEqual(145.,d.accumulate(1))
11032 self.assertEqual(155.,d.accumulate(2))
11035 def testSwig2UMeshDistanceToMesh1(self):
11036 m=MEDCouplingUMesh("toto",2)
11037 coords=DataArrayDouble([2.3,3.4,5.6,6.5,-4.3,3.2,-9.8,7.6,-5.4],3,3)
11038 m.setCoords(coords)
11040 m.insertNextCell(NORM_TRI3,[0,1,2])
11041 a,b=m.distanceToPoint([-0.335,2.27,1.21])
11042 self.assertEqual(0,b)
11043 self.assertAlmostEqual(0.022360988100374124,a,14);
11044 a,b=m.distanceToPoint(DataArrayDouble([-0.335,2.27,1.21],1,3))
11045 self.assertEqual(0,b)
11046 self.assertAlmostEqual(0.022360988100374124,a,14);
11047 a,b=coords.distanceToTuple([-0.335,2.27,1.21])
11048 self.assertAlmostEqual(5.243302871282566,a,14)
11049 self.assertEqual(0,b)
11051 m=MEDCouplingUMesh("toto",2)
11052 coords=DataArrayDouble([0.,0.,0., 8.,0.,0., 8.,8.,0., 0.,8.,0.],4,3)
11053 m.setCoords(coords)
11055 m.insertNextCell(NORM_QUAD4,[0,1,2,3])
11056 m.checkCoherency2()
11057 self.assertEqual([4,0,1,2,3],m.getNodalConnectivity().getValues())
11058 a,b=m.distanceToPoint([5.,2.,0.1])
11059 self.assertAlmostEqual(0.1,a,14) ; self.assertEqual(0,b)
11060 a,b=m.distanceToPoint([5.,-2.,4.])
11061 self.assertAlmostEqual(sqrt(2*2+4*4),a,14) ; self.assertEqual(0,b)
11063 m.insertNextCell(NORM_POLYGON,[0,1,2,3])
11064 m.checkCoherency2()
11065 self.assertEqual([5,0,1,2,3],m.getNodalConnectivity().getValues())
11066 a,b=m.distanceToPoint([11.,3.,4.])
11067 self.assertAlmostEqual(sqrt(3*3+4*4),a,14) ; self.assertEqual(0,b)
11068 a,b=m.distanceToPoint([4.,12.,5.])
11069 self.assertAlmostEqual(sqrt(4*4+5*5),a,14) ; self.assertEqual(0,b)
11070 d=DataArrayDouble([-1.2,3.,2.],1,3)
11072 a,b=m.distanceToPoint(d)
11073 self.assertAlmostEqual(sqrt(1.2*1.2+2*2),a,14) ; self.assertEqual(0,b)
11076 m=MEDCouplingUMesh("toto",1)
11077 coords=DataArrayDouble([0.,0.,4.,0.,0.,4.],3,2) ; m.setCoords(coords)
11078 m.allocateCells(0) ; m.insertNextCell(NORM_SEG2,[0,1]) ; m.insertNextCell(NORM_SEG2,[1,2])
11079 a,b=m.distanceToPoint([-0.1,4.1])
11080 self.assertAlmostEqual(0.14142135623730925,a,14) # b==1 self.assertEqual(2,c)
11081 a,b=m.distanceToPoint([0.,3.9])
11082 self.assertAlmostEqual(0.07071067811865482,a,14) ; self.assertEqual(1,b) # self.assertEqual(2,c)
11085 def testSwig2NonRegressionPartitionBySpreadZone1(self):
11086 m=MEDCouplingCMesh()
11087 arr=DataArrayDouble(6) ; arr.iota(0.)
11088 m.setCoords(arr,arr,arr)
11089 m=m.buildUnstructured()
11090 mPart=m[50,80,85,87,92,122]
11091 zones=mPart.partitionBySpreadZone()
11092 self.assertEqual(4,len(zones))
11093 self.assertTrue(zones[0].isEqual(DataArrayInt([0])))
11094 self.assertTrue(zones[1].isEqual(DataArrayInt([1,2])))
11095 self.assertTrue(zones[2].isEqual(DataArrayInt([3,4])))
11096 self.assertTrue(zones[3].isEqual(DataArrayInt([5])))
11098 n,ni=m.computeNeighborsOfCells()
11099 a,b=MEDCouplingUMesh.ComputeSpreadZoneGraduallyFromSeed(0,n,ni)
11100 self.assertEqual(13,b) ; self.assertEqual(125,len(a)) ; self.assertTrue(a.isIdentity())
11101 a,b=MEDCouplingUMesh.ComputeSpreadZoneGraduallyFromSeed([1],n,ni)
11102 self.assertEqual(12,b) ; self.assertEqual(125,len(a)) ; self.assertTrue(a.isIdentity())
11103 a,b=MEDCouplingUMesh.ComputeSpreadZoneGraduallyFromSeed((2,),n,ni)
11104 self.assertEqual(11,b) ; self.assertEqual(125,len(a)) ; self.assertTrue(a.isIdentity())
11105 a,b=MEDCouplingUMesh.ComputeSpreadZoneGraduallyFromSeed(DataArrayInt([3]),n,ni)
11106 self.assertEqual(12,b) ; self.assertEqual(125,len(a)) ; self.assertTrue(a.isIdentity())
11109 def testSwigUMeshInsertNextCell1(self):
11110 m=MEDCouplingUMesh("toto",2)
11112 coords=DataArrayDouble([0.,0.,1.,1.,1.,0.]) ; m.setCoords(coords)
11113 da=DataArrayInt([0,1,2])
11115 for i in xrange(5):
11116 m.insertNextCell(NORM_TRI3,da)
11118 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])))
11119 self.assertTrue(m.getNodalConnectivityIndex().isEqual(DataArrayInt([0,4,8,12,16,20])))
11121 da=DataArrayInt([0,1,2,3])
11123 for i in xrange(5):
11124 m.insertNextCell(NORM_TRI3,3,da)
11126 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])))
11127 self.assertTrue(m.getNodalConnectivityIndex().isEqual(DataArrayInt([0,4,8,12,16,20])))
11129 da=DataArrayInt([0,1])
11131 self.assertRaises(InterpKernelException,m.insertNextCell,NORM_TRI3,3,da)
11133 da=DataArrayInt([0,1,2,0,1,3,0,1,4,0,1,5,0,1,6],5,3)
11136 m.insertNextCell(NORM_TRI3,t)
11138 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])))
11139 self.assertTrue(m.getNodalConnectivityIndex().isEqual(DataArrayInt([0,4,8,12,16,20])))
11140 self.assertRaises(InterpKernelException,m.insertNextCell,NORM_TRI3,None)
11143 def testSwigCurveLinearMesh1(self):
11144 m=MEDCouplingCurveLinearMesh("toto")
11145 m.setNodeGridStructure([2,3])
11146 coords=DataArrayDouble([0.,0., 2.,0., 0.,1., 1.9,1.1, 0.3,1.9, 2.2,2.1],6,2)
11147 m.setCoords(coords)
11150 self.assertTrue(m0.isEqual(m,1e-12))
11151 m.getCoords().setInfoOnComponents(["X [m]","Y [m]"])
11152 self.assertTrue(not m0.isEqual(m,1e-12))
11154 self.assertTrue(m0.isEqual(m,1e-12))
11155 self.assertEqual(m.getNodeGridStructure(),(2,3))
11158 def testSimplexize3(self):
11159 m=MEDCouplingUMesh("toto",3)
11161 m.insertNextCell(NORM_TETRA4,[0,1,2,3])
11162 self.assertEqual([NORM_TETRA4],m.getAllGeoTypesSorted())
11163 m.insertNextCell(NORM_HEXA8,[4,5,6,7,8,9,10,11])
11164 self.assertEqual([NORM_TETRA4,NORM_HEXA8],m.getAllGeoTypesSorted())
11165 m.insertNextCell(NORM_HEXA8,[12,13,14,15,16,17,18,19])
11166 self.assertEqual([NORM_TETRA4,NORM_HEXA8],m.getAllGeoTypesSorted())
11167 m.insertNextCell(NORM_TETRA4,[20,21,22,23])
11168 self.assertEqual([NORM_TETRA4,NORM_HEXA8,NORM_TETRA4],m.getAllGeoTypesSorted())
11169 c1=DataArrayDouble([0.,0.,0.,0.,1.,0.,1.,0.,0.,0.,0.,1.],4,3)
11170 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.]
11173 c=DataArrayDouble.Aggregate([c1,c2,c3,c4])
11175 m.checkCoherency2()
11178 d1=m1.simplexize(PLANAR_FACE_5)
11179 m1.checkCoherency2()
11180 vol1=m1.getMeasureField(ON_CELLS).getArray()
11181 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))
11182 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])
11183 self.assertEqual(m1.getNodalConnectivityIndex().getValues(),[0,5,10,15,20,25,30,35,40,45,50,55,60])
11184 self.assertTrue(d1.isEqual(DataArrayInt([0,1,1,1,1,1,2,2,2,2,2,3])))
11187 d2=m2.simplexize(PLANAR_FACE_6)
11188 m2.checkCoherency2()
11189 vol2=m2.getMeasureField(ON_CELLS).getArray()
11190 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))
11191 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])
11192 self.assertEqual(m2.getNodalConnectivityIndex().getValues(),[0,5,10,15,20,25,30,35,40,45,50,55,60,65,70])
11193 self.assertTrue(d2.isEqual(DataArrayInt([0,1,1,1,1,1,1,2,2,2,2,2,2,3])))
11196 def testSwig2CurveLinearMesh2(self):
11197 c=MEDCouplingCMesh()
11199 arr1=DataArrayDouble([0,1,3,7])
11200 arr2=DataArrayDouble([0,1,1.5])
11201 c.setCoords(arr1,arr2)
11202 u=c.buildUnstructured()
11204 cl=MEDCouplingCurveLinearMesh()
11206 cl.setNodeGridStructure([4,3])
11207 cl.checkCoherency2()
11208 li1=[1.,2.,4.,0.5,1.,2.]
11209 self.assertTrue(cl.getMeasureField(False).getArray().isEqual(DataArrayDouble(li1),1e-14))
11210 self.assertTrue(u.getMeasureField(False).getArray().isEqual(DataArrayDouble(li1),1e-14))
11211 li1_1=[0.5,0.5,2.,0.5,5.,0.5,0.5,1.25,2.,1.25,5.,1.25]
11212 self.assertTrue(cl.getBarycenterAndOwner().isEqual(DataArrayDouble(li1_1,6,2),1e-14))
11213 self.assertTrue(u.getBarycenterAndOwner().isEqual(DataArrayDouble(li1_1,6,2),1e-14))
11215 c.setCoords(arr1,arr2,arr2)
11216 u=c.buildUnstructured()
11218 cl=MEDCouplingCurveLinearMesh()
11220 cl.setNodeGridStructure([4,3,3])
11221 cl.checkCoherency2()
11222 li2=[1.,2.,4.,0.5, 1.,2.,0.5,1.,2.,0.25,0.5,1.]
11223 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]
11224 self.assertTrue(cl.getMeasureField(False).getArray().isEqual(DataArrayDouble(li2),1e-14))
11225 self.assertTrue(u.getMeasureField(False).getArray().isEqual(DataArrayDouble(li2),1e-14))
11226 self.assertTrue(cl.getBarycenterAndOwner().isEqual(DataArrayDouble(li2_1,12,3),1e-14))
11227 self.assertTrue(u.getBarycenterAndOwner().isEqual(DataArrayDouble(li2_1,12,3),1e-14))
11229 coo=DataArrayDouble(5) ; coo.iota(0.)
11232 cl.setNodeGridStructure([5])
11233 cl.checkCoherency2()
11235 li3_1=[0.5,2.5,6.5,12.5]
11236 self.assertTrue(cl.getMeasureField(False).getArray().isEqual(DataArrayDouble(li3),1e-14))
11237 self.assertTrue(cl.buildUnstructured().getMeasureField(False).getArray().isEqual(DataArrayDouble(li3),1e-14))
11238 self.assertTrue(cl.getBarycenterAndOwner().isEqual(DataArrayDouble(li3_1),1e-14))
11239 self.assertTrue(cl.buildUnstructured().getBarycenterAndOwner().isEqual(DataArrayDouble(li3_1),1e-14))
11241 coo=DataArrayDouble.Meld(coo,coo)
11243 cl.checkCoherency2()
11244 li4=[sqrt(2.)*elt for elt in [1.,3.,5.,7.]]
11245 li4_1=[0.5,0.5,2.5,2.5,6.5,6.5,12.5,12.5]
11246 self.assertEqual(2,cl.getSpaceDimension())
11247 self.assertEqual(1,cl.getMeshDimension())
11248 self.assertEqual(4,cl.getNumberOfCells())
11249 self.assertEqual(5,cl.getNumberOfNodes())
11250 self.assertTrue(cl.getMeasureField(False).getArray().isEqual(DataArrayDouble(li4),1e-14))
11251 self.assertTrue(cl.buildUnstructured().getMeasureField(False).getArray().isEqual(DataArrayDouble(li4),1e-14))
11252 self.assertTrue(cl.getBarycenterAndOwner().isEqual(DataArrayDouble(li4_1,4,2),1e-14))
11253 self.assertTrue(cl.buildUnstructured().getBarycenterAndOwner().isEqual(DataArrayDouble(li4_1,4,2),1e-14))
11256 def testSwig2CurveLinearMeshNonRegression1(self):
11257 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)
11258 m=MEDCouplingCurveLinearMesh("toto")
11259 m.setCoords(coords)
11260 m.setNodeGridStructure([3,3,3])
11262 vol=m.getMeasureField(False).getArray()
11263 self.assertTrue(vol.isEqual(DataArrayDouble([0.11450000709295281, 0.10583334351579375,0.11149999939029423,0.08866666863113633, 0.1404166805123294,0.1250000135352219,0.1270833433481557,0.13258334288001067]),1e-12))
11264 self.assertTrue(vol.isEqual(m.buildUnstructured().getMeasureField(False).getArray(),1e-12))
11266 self.assertTrue(m.getBarycenterAndOwner().isEqual(m.buildUnstructured().getBarycenterAndOwner(),1e-12))
11269 def testSwig2NonRegressionDASetSelectedComponents1(self):
11270 da=DataArrayDouble.New([1.,2.,3.,4.,5.,6.],3,2)
11271 dv=DataArrayDouble.New();
11274 # da has less tuples than dv
11275 dv.setSelectedComponents(da,[1,0])
11277 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))
11279 da=DataArrayInt.New([1,2,3,4,5,6],3,2)
11280 dv=DataArrayInt.New();
11283 # da has less tuples than dv
11284 dv.setSelectedComponents(da,[1,0])
11286 self.assertTrue(dv.isEqual(DataArrayInt([2,1,0,0,4,3,0,0,6,5,0,0,0,0,0,0],4,4)))
11289 def testSwigSetItem3(self):
11291 d=DataArrayDouble([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11293 self.assertTrue(d.isEqual(DataArrayDouble([0,0,0,0,0,0,1,2,0,0,0,0],6,2),1e-14))
11295 d=DataArrayDouble([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11297 self.assertTrue(d.isEqual(DataArrayDouble([0,0,0,0,1,2,1,2,0,0,1,2],6,2),1e-14))
11299 d=DataArrayDouble([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11301 self.assertTrue(d.isEqual(DataArrayDouble([1,2,1,2,1,2,1,2,1,2,1,2],6,2),1e-14))
11303 d=DataArrayDouble([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11304 d[DataArrayInt([0,3,4])]=[1,2]
11305 self.assertTrue(d.isEqual(DataArrayDouble([1,2,0,0,0,0,1,2,1,2,0,0],6,2),1e-14))
11307 d=DataArrayDouble([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11309 self.assertTrue(d.isEqual(DataArrayDouble([0,0,0,0,0,0,0,0,0,0,0,7],6,2),1e-14))
11311 d=DataArrayDouble([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11313 self.assertTrue(d.isEqual(DataArrayDouble([0,0,0,0,0,0,0,7,0,0,0,7],6,2),1e-14))
11315 d=DataArrayDouble([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11317 self.assertTrue(d.isEqual(DataArrayDouble([0,7,0,0,0,7,0,0,0,7,0,0],6,2),1e-14))
11319 d=DataArrayDouble([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11320 d[DataArrayInt([0,3,4]),1]=[7]
11321 self.assertTrue(d.isEqual(DataArrayDouble([0,7,0,0,0,0,0,7,0,7,0,0],6,2),1e-14))
11323 d=DataArrayDouble([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11325 self.assertTrue(d.isEqual(DataArrayDouble([0,0,0,0,0,0,8,7,0,0,0,0],6,2),1e-14))
11327 d=DataArrayDouble([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11328 d[[1,3,4],[1,0]]=[7,8]
11329 self.assertTrue(d.isEqual(DataArrayDouble([0,0,8,7,0,0,8,7,8,7,0,0],6,2),1e-14))
11331 d=DataArrayDouble([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11332 d[1::2,[1,0]]=[7,8]
11333 self.assertTrue(d.isEqual(DataArrayDouble([0,0,8,7,0,0,8,7,0,0,8,7],6,2),1e-14))
11335 d=DataArrayDouble([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11336 d[DataArrayInt([1,4]),[1,0]]=[7,8]
11337 self.assertTrue(d.isEqual(DataArrayDouble([0,0,8,7,0,0,0,0,8,7,0,0],6,2),1e-14))
11339 d=DataArrayDouble([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11341 self.assertTrue(d.isEqual(DataArrayDouble([0,0,9,0,0,0,0,0,0,0,0,0],6,2),1e-14))
11343 d=DataArrayDouble([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11345 self.assertTrue(d.isEqual(DataArrayDouble([0,0,7,8,0,0,0,0,7,8,7,8],6,2),1e-14))
11347 d=DataArrayDouble([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11349 self.assertTrue(d.isEqual(DataArrayDouble([0,0,3,9,0,0,3,9,0,0,3,9],6,2),1e-14))
11351 d=DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11353 self.assertTrue(d.isEqual(DataArrayInt([0,0,0,0,0,0,1,2,0,0,0,0],6,2)))
11355 d=DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11357 self.assertTrue(d.isEqual(DataArrayInt([0,0,0,0,1,2,1,2,0,0,1,2],6,2)))
11359 d=DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11361 self.assertTrue(d.isEqual(DataArrayInt([1,2,1,2,1,2,1,2,1,2,1,2],6,2)))
11363 d=DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11364 d[DataArrayInt([0,3,4])]=[1,2]
11365 self.assertTrue(d.isEqual(DataArrayInt([1,2,0,0,0,0,1,2,1,2,0,0],6,2)))
11367 d=DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11369 self.assertTrue(d.isEqual(DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,7],6,2)))
11371 d=DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11373 self.assertTrue(d.isEqual(DataArrayInt([0,0,0,0,0,0,0,7,0,0,0,7],6,2)))
11375 d=DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11377 self.assertTrue(d.isEqual(DataArrayInt([0,7,0,0,0,7,0,0,0,7,0,0],6,2)))
11379 d=DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11380 d[DataArrayInt([0,3,4]),1]=[7]
11381 self.assertTrue(d.isEqual(DataArrayInt([0,7,0,0,0,0,0,7,0,7,0,0],6,2)))
11383 d=DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11385 self.assertTrue(d.isEqual(DataArrayInt([0,0,0,0,0,0,8,7,0,0,0,0],6,2)))
11387 d=DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11388 d[[1,3,4],[1,0]]=[7,8]
11389 self.assertTrue(d.isEqual(DataArrayInt([0,0,8,7,0,0,8,7,8,7,0,0],6,2)))
11391 d=DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11392 d[1::2,[1,0]]=[7,8]
11393 self.assertTrue(d.isEqual(DataArrayInt([0,0,8,7,0,0,8,7,0,0,8,7],6,2)))
11395 d=DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11396 d[DataArrayInt([1,4]),[1,0]]=[7,8]
11397 self.assertTrue(d.isEqual(DataArrayInt([0,0,8,7,0,0,0,0,8,7,0,0],6,2)))
11399 d=DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11401 self.assertTrue(d.isEqual(DataArrayInt([0,0,9,0,0,0,0,0,0,0,0,0],6,2)))
11403 d=DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11405 self.assertTrue(d.isEqual(DataArrayInt([0,0,7,8,0,0,0,0,7,8,7,8],6,2)))
11407 d=DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11409 self.assertTrue(d.isEqual(DataArrayInt([0,0,3,9,0,0,3,9,0,0,3,9],6,2)))
11412 def testSwig2ConvertLinearCellsToQuadratic1(self):
11413 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)
11415 m2D=MEDCouplingDataForTest.build2DTargetMesh_1()
11416 m2D.convertLinearCellsToQuadratic(0)
11417 m2D.checkCoherency1()
11418 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])
11419 self.assertEqual(m2D.getNodalConnectivityIndex().getValues(),[0,9,16,23,32,41])
11420 self.assertTrue(m2D.getCoords().isEqual(coordsExp,1e-14))
11422 m1D=MEDCouplingDataForTest.build2DTargetMesh_1().buildDescendingConnectivity()[0]
11423 m1D.convertLinearCellsToQuadratic(0)
11424 m1D.checkCoherency1()
11425 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])
11426 self.assertEqual(m1D.getNodalConnectivityIndex().getValues(),[0,4,8,12,16,20,24,28,32,36,40,44,48,52])
11427 self.assertTrue(m1D.getCoords().isEqual(coordsExp,1e-14))
11429 m2D=MEDCouplingDataForTest.build2DTargetMesh_1()
11430 m2D.changeSpaceDimension(3)
11431 arr=DataArrayDouble(4); arr.iota(0) ; z=MEDCouplingCMesh() ; z.setCoords(arr)
11432 m1D=z.buildUnstructured() ; m1D.setCoords(arr.changeNbOfComponents(3,0.))
11433 m1D.getCoords()[:]=m1D.getCoords()[:,[1,2,0]]
11434 cooTmp=m2D.getCoords()[:]
11435 m3D=m2D.buildExtrudedMesh(m1D,0)
11436 m3D.convertLinearCellsToQuadratic(0)
11437 m3D.checkCoherency1()
11438 # check of new m3D content
11439 coordsExp2=[coordsExp.changeNbOfComponents(3,i) for i in xrange(4)]
11440 coordsExp3=[DataArrayDouble.Meld(cooTmp[:,[0,1]],cooTmp[:,2]+(0.5+float(i))) for i in xrange(3)]
11441 coordsExp4=DataArrayDouble.Aggregate([coordsExp2[0],coordsExp3[0],coordsExp2[1],coordsExp3[1],coordsExp2[2],coordsExp3[2],coordsExp2[3]])
11442 c=DataArrayDouble.Aggregate(m3D.getCoords(),coordsExp4)
11443 self.assertEqual(len(coordsExp4),115)
11444 self.assertEqual(len(m3D.getCoords()),115)
11445 a,b=c.findCommonTuples(1e-14)
11446 self.assertEqual(len(b),len(coordsExp4)+1)
11447 e,f=DataArrayInt.BuildOld2NewArrayFromSurjectiveFormat2(2*115,a,b)
11448 self.assertEqual(f,115)
11449 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])))
11450 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()))
11451 self.assertTrue(DataArrayInt([0,21,37,53,74,95,116,132,148,169,190,211,227,243,264,285]).isEqual(m3D.getNodalConnectivityIndex()))
11452 # testing explode3DMeshTo1D
11454 m3DSlice0.zipCoords()
11455 a,b,c,d,e=m3DSlice0.explode3DMeshTo1D()
11456 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])))
11457 self.assertTrue(c.isEqual(DataArrayInt([0,12,21,30,42,54])))
11458 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])))
11459 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])))
11460 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])))
11461 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])))
11462 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))
11465 def testSwig2DataArrayPushBackValsSilent1(self):
11466 d=DataArrayDouble()
11467 d.pushBackValsSilent([4,5,6])
11468 self.assertTrue(d.isEqual(DataArrayDouble([4.,5.,6.]),1e-14))
11469 e=DataArrayDouble([1,2,3],1,3)
11470 for t in e: d.pushBackValsSilent(t)
11471 self.assertTrue(d.isEqual(DataArrayDouble([4.,5.,6.,1.,2.,3.]),1e-14))
11472 d.pushBackValsSilent(DataArrayDouble([9,10.]))
11473 self.assertTrue(d.isEqual(DataArrayDouble([4.,5.,6.,1.,2.,3.,9.,10.]),1e-14))
11474 d.pushBackValsSilent(DataArrayDouble(0,1))
11475 self.assertTrue(d.isEqual(DataArrayDouble([4.,5.,6.,1.,2.,3.,9.,10.]),1e-14))
11476 e=DataArrayDouble([1,2,3],3,1)
11477 for t in e: d.pushBackValsSilent(t)
11478 self.assertTrue(d.isEqual(DataArrayDouble([4.,5.,6.,1.,2.,3.,9.,10.,1.,2.,3.]),1e-14))
11479 d.pushBackValsSilent(77)
11480 self.assertTrue(d.isEqual(DataArrayDouble([4.,5.,6.,1.,2.,3.,9.,10.,1.,2.,3.,77.]),1e-14))
11483 d.pushBackValsSilent([4,5,6])
11484 self.assertTrue(d.isEqual(DataArrayInt([4,5,6])))
11485 e=DataArrayInt([1,2,3],1,3)
11486 for t in e: d.pushBackValsSilent(t)
11487 self.assertTrue(d.isEqual(DataArrayInt([4,5,6,1,2,3])))
11488 d.pushBackValsSilent(DataArrayInt([9,10]))
11489 self.assertTrue(d.isEqual(DataArrayInt([4,5,6,1,2,3,9,10])))
11490 d.pushBackValsSilent(DataArrayInt(0,1))
11491 self.assertTrue(d.isEqual(DataArrayInt([4,5,6,1,2,3,9,10])))
11492 e=DataArrayInt([1,2,3],3,1)
11493 for t in e: d.pushBackValsSilent(t)
11494 self.assertTrue(d.isEqual(DataArrayInt([4,5,6,1,2,3,9,10,1,2,3])))
11495 d.pushBackValsSilent(77)
11496 self.assertTrue(d.isEqual(DataArrayInt([4,5,6,1,2,3,9,10,1,2,3,77])))
11499 def testSwig2ConvertLinearCellsToQuadratic2(self):
11500 m2D=MEDCouplingDataForTest.build2DTargetMesh_1()
11501 ret=m2D.convertLinearCellsToQuadratic(1)
11502 self.assertTrue(ret.isIdentity())
11503 self.assertEqual(5,len(ret))
11504 m2D.checkCoherency1()
11505 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)
11506 self.assertTrue(m2D.getCoords().isEqual(coordsExp,1e-14))
11507 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])))
11508 self.assertTrue(m2D.getNodalConnectivityIndex().isEqual(DataArrayInt([0,10,18,26,36,46])))
11510 m2D=MEDCouplingDataForTest.build2DTargetMesh_1()[(0,3)] ; m2D.zipCoords()
11511 m2D.changeSpaceDimension(3)
11512 arr=DataArrayDouble(3); arr.iota(0) ; z=MEDCouplingCMesh() ; z.setCoords(arr)
11513 m1D=z.buildUnstructured() ; m1D.setCoords(arr.changeNbOfComponents(3,0.))
11514 m1D.getCoords()[:]=m1D.getCoords()[:,[1,2,0]]
11515 cooTmp=m2D.getCoords()[:]
11516 m3D=m2D.buildExtrudedMesh(m1D,0)
11517 ret=m3D.convertLinearCellsToQuadratic(1)
11518 self.assertTrue(ret.isIdentity())
11519 self.assertEqual(4,len(ret))
11520 m3D.checkCoherency1()
11521 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)
11522 self.assertTrue(m3D.getCoords().isEqual(coordsExp2,1e-14))
11523 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])))
11524 self.assertTrue(m3D.getNodalConnectivityIndex().isEqual(DataArrayInt([0,28,56,84,112])))
11527 def testSwig2GaussNEIntegral1(self):
11528 m2D=MEDCouplingDataForTest.build2DTargetMesh_1()
11529 m0=m2D[0] ; m0.zipCoords()
11530 m1=m2D[[1,2]] ; m1.zipCoords()
11531 m2=m2D[[3,4]] ; m2.zipCoords()
11532 m0.convertLinearCellsToQuadratic(1)
11533 m1.convertLinearCellsToQuadratic(0)
11534 m2.convertLinearCellsToQuadratic(1)
11535 m=MEDCouplingUMesh.MergeUMeshes([m0,m1,m2])
11536 m.mergeNodes(1e-12)
11537 f=MEDCouplingFieldDouble(ON_GAUSS_NE)
11539 arr=DataArrayDouble([1.1,2.2,3.3,4.4,5.5,6.6,7.7,8.8,9.9,
11540 11.1,12.2,13.3,14.4,15.5,16.6,
11541 21.1,22.2,23.3,24.4,25.5,26.6,
11542 31.1,32.2,33.3,34.4,35.5,36.6,37.7,38.8,39.9,
11543 41.1,42.2,43.3,44.4,45.5,46.6,47.7,48.8,49.9])
11544 arr2=DataArrayDouble(len(arr),2)
11545 arr2[:,0]=arr ; arr2[:,1]=arr+100
11548 res=f.integral(False)
11549 # a=25./81 ; b=40./81 ; c=64./81
11550 # p1=0.11169079483905 ; p2=0.0549758718227661
11552 # 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
11553 # c1=(p2*(11.1+12.2+13.3)+p1*(14.4+15.5+16.6))*0.125/0.4999999999854482 ; c1=1.8014347172346943
11554 # c2=(p2*(21.1+22.2+23.3)+p1*(24.4+25.5+26.6))*0.125/0.4999999999854482 ; c2=3.0514347172346943
11555 # 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
11556 # 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
11557 # c0+c1+c2+c3+c4=27.104258323358287
11558 integExp0=27.104258323358287
11559 self.assertAlmostEqual(res[0],integExp0,13)
11561 # 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
11562 # c1=(p2*(111.1+112.2+113.3)+p1*(114.4+115.5+116.6))*0.125/0.4999999999854482 ; c1=14.301434717234699
11563 # c2=(p2*(121.1+122.2+123.3)+p1*(124.4+125.5+126.6))*0.125/0.4999999999854482 ; c2=15.5514347172347
11564 # 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
11565 # 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
11566 # c0+c1+c2+c3+c4=127.10425832335835
11567 integExp1=127.10425832335835
11568 self.assertAlmostEqual(res[1],integExp1,12)
11569 meas=f.getDiscretization().getMeasureField(f.getMesh(),False)
11571 res2=intPerTuple.accumulate()
11572 self.assertAlmostEqual(res2[0],integExp0,13)
11573 self.assertAlmostEqual(res2[1],integExp1,12)
11575 meas2=f.buildMeasureField(False)
11576 intPerTuple=meas2*f
11577 res3=intPerTuple.accumulate()
11578 self.assertAlmostEqual(res3[0],integExp0,13)
11579 self.assertAlmostEqual(res3[1],integExp1,12)
11581 res4=f.getWeightedAverageValue(False) # res4==res2 because sum of area of mesh is equal to 1
11582 self.assertAlmostEqual(res4[0],integExp0,13)
11583 self.assertAlmostEqual(res4[1],integExp1,12)
11587 res5=f.getWeightedAverageValue() # res4==res4 because weighted average is not sensitive to the scaling
11588 self.assertAlmostEqual(res5[0],integExp0,13)
11589 self.assertAlmostEqual(res5[1],integExp1,12)
11590 meas3=f.buildMeasureField(False)
11591 delta=4*meas2.getArray()-meas3.getArray()
11593 self.assertTrue(delta.isUniform(0.,1e-16))
11594 res6=f.integral(False)
11595 self.assertAlmostEqual(res6[0],4.*integExp0,12)
11596 self.assertAlmostEqual(res6[1],4.*integExp1,11)
11599 def testSwig2SlowDADFindClosestTupleId(self):
11602 d=DataArrayDouble(nbPt) ; d.iota() ; d*=1./(nbPt-1)
11603 c=MEDCouplingCMesh() ; c.setCoords(d,d) ; m=c.buildUnstructured() ; pts=m.getCoords() ; del m
11605 d0=DataArrayDouble((nbPt-1)*(nbPt-1)) ; d0.iota() ; d0*=(3./((nbPt-1)*(nbPt-1))) ; d0=d0.applyFunc("exp(x)-1")
11606 d1=DataArrayDouble((nbPt-1)*(nbPt-1)) ; d1.iota()
11607 d2=DataArrayDouble.Meld(d0,d1) ; d2=d2.fromPolarToCart() ; d2+=[0.32,0.73]
11608 ids=pts.findClosestTupleId(d2)
11609 #print "Start of costly computation"
11610 idsExpected=DataArrayInt(len(d2))
11612 for i,elt in enumerate(d2):
11613 l,m=(pts-elt).magnitude().getMinValue()
11614 idsExpected.setIJSilent(i,0,m)
11616 tmp=l ; tmp1=m ; tmp2=i
11619 #print "End of costly computation"
11620 self.assertTrue(idsExpected.isEqual(ids))
11621 a,b,c=pts.minimalDistanceTo(d2)
11622 self.assertEqual(tmp,a)
11623 self.assertEqual(tmp1,b)
11624 self.assertEqual(tmp2,c)
11626 l=[d2[:,i] for i in [0,1]]
11627 for elt in l: elt.reverse()
11628 d2i=DataArrayDouble.Meld(l)
11629 ids1=pts.findClosestTupleId(d2i)
11630 idsExpectedI=idsExpected.deepCpy() ; idsExpectedI.reverse()
11631 self.assertTrue(idsExpectedI.isEqual(ids1))
11633 l=[pts[:,i] for i in [0,1]]
11634 for elt in l: elt.reverse()
11635 ptsi=DataArrayDouble.Meld(l)
11636 ids2=ptsi.findClosestTupleId(d2)
11637 idsExpected2=nbPt*nbPt-1-ids
11638 self.assertTrue(idsExpected2.isEqual(ids2))
11640 ids3=ptsi.findClosestTupleId(d2i)
11641 idsExpected3=idsExpected2.deepCpy() ; idsExpected3.reverse()
11642 self.assertTrue(idsExpected3.isEqual(ids3))
11645 def testSwig2DataArrayAsciiChar1(self):
11646 alpha=DataArrayInt(26) ; alpha.iota(ord("A"))
11647 d=DataArrayAsciiChar(alpha.getValues(),2,13)
11648 d.setInfoOnComponents(["c%i"%(v) for v in xrange(13)])
11649 self.assertEqual('ABCDEFGHIJKLM',d.getTuple(0))
11650 self.assertEqual('NOPQRSTUVWXYZ',d.getTuple(1))
11651 self.assertEqual(2,d.getNumberOfTuples())
11652 self.assertEqual(26,d.getNbOfElems())
11653 self.assertEqual(13,d.getNumberOfComponents())
11655 self.assertTrue(d.isEqual(dd))
11657 self.assertTrue(not d.isEqual(dd))
11658 d.setIJ(0,3,ord('d'))
11659 self.assertTrue(d.isEqual(dd))
11662 self.assertEqual(20,d.getNumberOfTuples())
11663 self.assertEqual(20,d.getNbOfElems())
11664 self.assertEqual(1,d.getNumberOfComponents())
11666 d0=DataArrayAsciiChar([ord('a')],1,1)
11667 self.assertEqual('a',d0.asciiCharValue())
11668 self.assertTrue(not d0.empty())
11669 d0=DataArrayAsciiChar(0,3)
11670 self.assertTrue(d0.empty())
11671 d.pushBackSilent("U") ; d.pushBackSilent("V") ; d.pushBackSilent("W")
11672 self.assertEqual("W",d.popBackSilent())
11674 self.assertEqual(['AB','Cd','EF','GH','IJ','KL','MN','OP','QR','ST','UV'],d.toStrList())
11676 self.assertEqual(11*[''],d.toStrList())
11677 d.fillWithValue('T')
11678 self.assertEqual(11*["TT"],d.toStrList())
11680 self.assertTrue(d.isUniform("T"))
11685 dd.renumberInPlace([3,1,2,4,0,11,10,9,8,7,5,12,6])
11686 self.assertEqual(dd.toStrList(),['IJ','Cd','EF','AB','GH','UV','YZ','ST','QR','OP','MN','KL','WX'])
11687 dd.renumberInPlaceR([3,1,2,4,0,11,10,9,8,7,5,12,6])
11688 self.assertEqual(['AB','Cd','EF','GH','IJ','KL','MN','OP','QR','ST','UV','WX','YZ'],dd.toStrList())
11689 e=dd.renumber([3,1,2,4,0,11,10,9,8,7,5,12,6])
11690 self.assertEqual(e.toStrList(),['IJ','Cd','EF','AB','GH','UV','YZ','ST','QR','OP','MN','KL','WX'])
11691 e=dd.renumberR([3,1,2,4,0,11,10,9,8,7,5,12,6])
11692 self.assertEqual(e.toStrList(),['GH','Cd','EF','IJ','AB','WX','UV','ST','QR','OP','KL','YZ','MN'])
11693 e=dd.renumberAndReduce([1,1,1,1,1,1,1,2,0,0,0,0,0],3)
11694 self.assertEqual(['YZ','MN','OP'],e.toStrList())
11695 self.assertEqual(['GH','IJ'],dd.selectByTupleIdSafe([3,4]).toStrList())
11696 self.assertEqual(['AB','GH','MN','ST','YZ'],dd.selectByTupleId2(0,13,3).toStrList())
11697 dd3=dd.changeNbOfComponents(3,"G")
11698 self.assertEqual(['ABG','CdG','EFG','GHG','IJG','KLG','MNG','OPG','QRG','STG','UVG','WXG','YZG'],dd3.toStrList())
11699 dd3.rearrange(1) ; self.assertEqual("G",dd3.back()) ; dd3.rearrange(3)
11700 self.assertTrue(dd3.changeNbOfComponents(2,"\0").isEqual(dd))
11701 self.assertEqual(len(dd),13)
11702 d=DataArrayAsciiChar(13,2) ; d.fillWithValue('Y')
11704 self.assertEqual(['ABGYY','CdGYY','EFGYY','GHGYY','IJGYY','KLGYY','MNGYY','OPGYY','QRGYY','STGYY','UVGYY','WXGYY','YZGYY'],dd3.toStrList())
11705 self.assertEqual("d",dd3.getIJ(0,6))
11706 self.assertRaises(InterpKernelException,dd3.getIJSafe,0,6)
11707 self.assertEqual("d",dd3.getIJSafe(1,1))
11709 e=dd3.getIdsEqual("Y")
11710 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])))
11711 e=dd3.getIdsNotEqual("Y")
11712 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])))
11713 self.assertEqual(("d",6),dd3.getMaxValue())
11714 self.assertEqual(("A",0),dd3.getMinValue())
11715 self.assertEqual(26,dd3.search("LGYYM"))
11716 self.assertEqual(-1,dd3.search("LGYYN"))
11718 self.assertEqual(7,dd3.locateTuple("OPGYY"))
11719 self.assertTrue("OPGYY" in dd3)
11720 self.assertEqual(7,dd3.index("OPGYY"))
11721 self.assertEqual(-1,dd3.locateTuple("OPGYP"))
11723 self.assertEqual(2,dd3.locateValue("OPGYY"))
11724 self.assertTrue(dd3.presenceOfValue("OPGYY"))
11725 self.assertTrue("O" in dd3)
11726 self.assertTrue(not dd3.presenceOfValue("z"))
11727 self.assertTrue("z" not in dd3)
11730 self.assertEqual([e.buildDAAsciiChar().toStrList()[0] for e in list(dd3)],dd3.toStrList())
11732 dd4=DataArrayChar.Aggregate(dd3,dd3)
11733 self.assertEqual(['ABGYY','CdGYY','EFGYY','GHGYY','IJGYY','ABGYY','CdGYY','EFGYY','GHGYY','IJGYY'],dd4.toStrList())
11734 dd5=DataArrayChar.Aggregate([dd4,dd3,dd4])
11735 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())
11736 # getitem,__iter__,__setitem__
11738 self.assertEqual("ABGYY",str(a[0]))
11740 self.assertEqual(['ABGYY','EFGYY','IJGYY'],dd4.toStrList())
11742 self.assertEqual(['GHGYY','EFGYY','CdGYY'],dd4.toStrList())
11744 dd4[::2]=["12","345","67890"]
11745 self.assertEqual(['12 ','CdGYY','345 ','GHGYY','67890'],dd4.toStrList())
11748 self.assertEqual(['ABGYY',' ',' ','GHGYY','IJGYY'],dd4.toStrList())
11751 self.assertEqual(['ABGYY','CdGYY','EFGYY','GHGYY','12345'],dd4.toStrList())
11753 self.assertEqual(['CdGYY','CdGYY','EFGYY','GHGYY','12345'],dd4.toStrList())
11754 dd4=DataArrayAsciiChar(["abc","de","fghi"])
11755 self.assertEqual(['abc ','de ','fghi'],dd4.toStrList())
11756 dd4=DataArrayAsciiChar(["abc","de","fghi"],"t")
11757 self.assertEqual(['abct','dett','fghi'],dd4.toStrList())
11760 def testSwig2GaussNELocalizationOfDiscValues(self):
11761 m=MEDCouplingDataForTest.build2DTargetMesh_3()[[0,1,3,4,5,6,8,9]] # suppression of polygons
11762 f=MEDCouplingFieldDouble(ON_GAUSS_NE)
11764 loc=f.getLocalizationOfDiscr()
11765 self.assertEqual(42,len(loc))
11766 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))
11767 m.changeSpaceDimension(3)
11768 m.getCoords()[:,2]=7.
11769 loc=f.getLocalizationOfDiscr()
11770 self.assertEqual(42,len(loc))
11771 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))
11774 def testSwig2GaussMeasureAndIntegral(self):
11775 ft=MEDCouplingDataForTest.buildFieldOnGauss_1()
11776 mea=ft.buildMeasureField(False)
11777 mea.checkCoherency()
11778 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))
11779 f=MEDCouplingFieldDouble(ft)
11780 arr=DataArrayDouble(126,2)
11781 arr[:,0]=range(126)
11782 arr[:,1]=range(126)
11786 self.assertTrue(DataArrayDouble(f.integral(False)).isEqual(DataArrayDouble([-211.66121638700983,-4863.9563007698835]),1e-11))
11787 self.assertTrue(DataArrayDouble(f.getWeightedAverageValue()).isEqual(DataArrayDouble([45.496085813113595,1045.496085813114]),1e-11))
11788 self.assertTrue(DataArrayDouble(f.normL1()).isEqual(DataArrayDouble([45.49608581311362,1045.496085813114]),1e-11))
11789 self.assertTrue(DataArrayDouble(f.normL2()).isEqual(DataArrayDouble([58.16846378340898,1046.1241521947334]),1e-11))
11792 def testSwig2FieldDiscretizationComputeMeshRestrictionFromTupleIds1(self):
11793 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1()
11794 f=MEDCouplingFieldDouble(ON_GAUSS_NE)
11796 a,b=f.getDiscretization().computeMeshRestrictionFromTupleIds(f.getMesh(),[3,4,5,6,8,9,10,14,15,16,17])
11797 self.assertTrue(a.isEqual(DataArrayInt([1,4])))
11798 self.assertTrue(b.isEqual(DataArrayInt([4,5,6,14,15,16,17])))
11799 a,b=f.getDiscretization().computeMeshRestrictionFromTupleIds(f.getMesh(),DataArrayInt([0,1,2,3,5,7,8,9,10,11,12,18]))
11800 self.assertTrue(a.isEqual(DataArrayInt([0,2])))
11801 self.assertTrue(b.isEqual(DataArrayInt([0,1,2,3,7,8,9])))
11803 f=MEDCouplingFieldDouble(ON_CELLS)
11805 a,b=f.getDiscretization().computeMeshRestrictionFromTupleIds(f.getMesh(),[3,4])
11806 self.assertTrue(a.isEqual(DataArrayInt([3,4])))
11807 self.assertTrue(b.isEqual(DataArrayInt([3,4])))
11809 f=MEDCouplingFieldDouble(ON_NODES)
11811 a,b=f.getDiscretization().computeMeshRestrictionFromTupleIds(f.getMesh(),[1,2,3,4])
11812 self.assertTrue(a.isEqual(DataArrayInt([1])))
11813 self.assertTrue(b.isEqual(DataArrayInt([1,2,4])))
11815 f=MEDCouplingDataForTest.buildFieldOnGauss_1()
11816 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])
11817 self.assertTrue(a.isEqual(DataArrayInt([0,11,12,18,35])))
11818 self.assertTrue(b.isEqual(DataArrayInt([0,11,12,13,14,15,36,37,38,117,118,119,120,121,122,123,124,125])))
11820 d=DataArrayInt([0,3,7,9,15,18])
11821 e=DataArrayInt([0,1,2,3,7,8,15,16,17])
11822 a,b=d.searchRangesInListOfIds(e)
11823 self.assertTrue(a.isEqual(DataArrayInt([0,2,4])))
11824 self.assertTrue(b.isEqual(DataArrayInt([0,1,2,7,8,15,16,17])))
11827 def testSwig2BigMem(self):
11828 if MEDCouplingSizeOfVoidStar()==64:
11829 d=DataArrayAsciiChar(223456789,16)
11830 self.assertTrue(d.getNumberOfTuples(),223456789)
11831 self.assertTrue(d.getNumberOfComponents(),16)
11832 d.setIJ(223456788,5,"r")
11833 self.assertTrue(d.getIJ(223456788,5),'r')
11834 d[223456787]="1234567890123456"
11835 self.assertTrue(d[223456787],'1234567890123456')
11836 self.assertRaises(InterpKernelException,d.rearrange,1)# fails because it would lead to nb of tuples > 2147483647
11840 def testSwig2DAReverseMultiCompo1(self):
11841 d=DataArrayDouble(6,2)
11843 d[:,1]=range(10,16)
11845 self.assertTrue(d.isEqual(DataArrayDouble([5.,15.,4.,14.,3.,13.,2.,12.,1.,11.,0.,10.],6,2),1e-14))
11846 d=DataArrayDouble(7,2)
11848 d[:,1]=range(10,17)
11850 self.assertTrue(d.isEqual(DataArrayDouble([6.,16.,5.,15.,4.,14.,3.,13.,2.,12.,1.,11.,0.,10.],7,2),1e-14))
11852 d=DataArrayInt(6,2)
11854 d[:,1]=range(10,16)
11856 self.assertTrue(d.isEqual(DataArrayInt([5,15,4,14,3,13,2,12,1,11,0,10],6,2)))
11857 d=DataArrayInt(7,2)
11859 d[:,1]=range(10,17)
11861 self.assertTrue(d.isEqual(DataArrayInt([6,16,5,15,4,14,3,13,2,12,1,11,0,10],7,2)))
11864 def testSwigDAPow1(self):
11869 self.assertTrue((d**2).isEqual(DataArrayInt([0,1,4,9,16,25,36,49,64,81])))
11870 self.assertTrue((d**3).isEqual(DataArrayInt([0,1,-8,27,64,125,216,343,512,729])))
11874 self.assertTrue(d.isEqual(DataArrayInt([0,1,4,9,16,25,36,49,64,81])))
11875 self.assertTrue((d1[:4]**d1[:4]).isEqual(DataArrayInt([1,1,4,27])))
11876 self.assertTrue((3**d1[:4]).isEqual(DataArrayInt([1,3,9,27])))
11879 self.assertTrue(d2.isEqual(DataArrayInt([1,1,4,27])))
11880 self.assertRaises(InterpKernelException,d2.__pow__,-1)#non supporting negative pow in DataArrayInt.__pow__
11881 self.assertRaises(InterpKernelException,d2.__ipow__,-1)#non supporting negative pow in DataArrayInt.__pow__
11883 d=DataArrayDouble(10)
11887 self.assertTrue((d**2).isEqual(DataArrayDouble([0,1,4,9,16,25,36,49,64,81]),1e-12))
11888 self.assertTrue((d**3).isEqual(DataArrayDouble([0,1,-8,27,64,125,216,343,512,729]),1e-12))
11889 self.assertRaises(InterpKernelException,d.__pow__,3.1)#3.1 is double not integer -> not supporting negative values in d
11893 self.assertTrue(d.isEqual(DataArrayDouble([0,1,4,9,16,25,36,49,64,81]),1e-12))
11894 self.assertTrue((d1[:4]**d1[:4]).isEqual(DataArrayDouble([1,1,4,27]),1e-12))
11895 self.assertTrue((3**d1[:4]).isEqual(DataArrayDouble([1,3,9,27]),1e-12))
11898 self.assertTrue(d2.isEqual(DataArrayDouble([1,1,4,27]),1e-12))
11900 self.assertTrue(d2.isEqual(DataArrayDouble([1,1,1./2,1./sqrt(27.)]),1e-14))
11902 self.assertTrue((3**d3).isEqual(DataArrayDouble([0.3333333333333333,0.5773502691896257,0.6933612743506348,0.7598356856515925]),1e-14))
11903 d4=d3.deepCpy() ; d4.abs()
11904 self.assertTrue((d4**d3).isEqual(DataArrayDouble([1.,sqrt(2.),1.4422495703074083,sqrt(2.)]),1e-14))
11906 self.assertTrue(d4.isEqual(DataArrayDouble([1.,sqrt(2.),1.4422495703074083,sqrt(2.)]),1e-14))
11909 def testSwig2Baryenter3DForCellsWithVolumeZero1(self):
11910 coo=DataArrayDouble([0.,0.,0.,1.,0.,0.,0.,1.,0.],3,3)
11911 m2=MEDCouplingUMesh("mesh",2)
11912 m2.allocateCells(0)
11913 m2.insertNextCell(NORM_POLYGON,[0,1,2])
11915 m2.checkCoherency1()
11917 coo2=DataArrayDouble([0.,0.,0.,0.,0.,0.,0.,0.,2.],3,3)
11918 m1=MEDCouplingUMesh("mesh",1)
11919 m1.allocateCells(0)
11920 m1.insertNextCell(NORM_SEG2,[0,1])
11921 m1.insertNextCell(NORM_SEG2,[1,2])
11923 m1.checkCoherency1()
11925 m3=m2.buildExtrudedMesh(m1,0)
11926 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
11927 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))
11928 m4,a,b,c,d=m3.buildDescendingConnectivity()
11929 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))
11932 def testSwigRepr1(self):
11933 d=DataArrayDouble()
11934 self.assertTrue(len(d.__repr__())<120)
11935 d.alloc(1000,0) ; self.assertTrue(len(d.__repr__())<100)
11936 for i in xrange(100):
11937 d.alloc(i,1) ; d.iota(1.1234567890123456) ; d*=1e123
11938 self.assertTrue(len(d.__repr__())<500)
11940 for i in xrange(50):
11941 d.alloc(i,2) ; d.rearrange(1) ; d.iota(1.1234567890123456) ; d.rearrange(2) ; d*=1e123
11942 self.assertTrue(len(d.__repr__())<500)
11944 d.alloc(4000,1) ; d.iota() ; self.assertTrue(len(d.__repr__())<500)
11945 for i in xrange(2,4):
11946 d.alloc(362880,1) ; d.iota() ; d.rearrange(i) ; self.assertTrue(len(d.__repr__())<500)
11949 self.assertTrue(len(d.__repr__())<120)
11952 self.assertTrue(len(d.__repr__())<100)
11953 d.alloc(1000,0) ; self.assertTrue(len(d.__repr__())<100)
11954 for i in xrange(100):
11955 d.alloc(i,1) ; d.iota(123456789)
11956 self.assertTrue(len(d.__repr__())<500)
11958 for i in xrange(50):
11959 d.alloc(i,2) ; d.rearrange(1) ; d.iota(123456789) ; d.rearrange(2)
11960 self.assertTrue(len(d.__repr__())<500)
11962 d.alloc(4000,1) ; d.iota() ; self.assertTrue(len(d.__repr__())<500)
11963 for i in xrange(2,10):
11964 d.alloc(362880,1) ; d.iota() ; d.rearrange(i) ; self.assertTrue(len(d.__repr__())<500)
11967 self.assertTrue(len(d.__repr__())<100)
11969 d=DataArrayAsciiChar()
11970 d.alloc(1000,0) ; self.assertTrue(len(d.__repr__())<100)
11971 d.alloc(2,16) ; d[:]='1234567890ABCDEF'
11972 self.assertTrue(len(d.__repr__())<500)
11973 d.alloc(2000,16) ; d[:]='1234567890ABCDEF'
11974 self.assertTrue(len(d.__repr__())<500)
11975 d.alloc(0,16) ; d[:]='1234567890ABCDEF'
11976 self.assertTrue(len(d.__repr__())<120)
11979 self.assertTrue(len(d.__repr__())<100)
11980 d.alloc(1000,0) ; self.assertTrue(len(d.__repr__())<100)
11981 d.alloc(0,16) ; self.assertTrue(len(d.__repr__())<100)
11982 d.alloc(5,1) ; d.fillWithValue(127)
11983 self.assertTrue(len(d.__repr__())<200)
11984 d.alloc(1000,1) ; d.fillWithValue(127)
11985 self.assertTrue(len(d.__repr__())<500)
11986 d.alloc(1000,3) ; d.fillWithValue(127)
11987 self.assertTrue(len(d.__repr__())<500)
11990 def testSwig2MeshComputeIsoBarycenterOfNodesPerCell1(self):
11991 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)
11992 m=MEDCouplingUMesh.New("toto",3)
11994 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])
11995 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])
11997 m.checkCoherency1()
11999 dReference=DataArrayDouble([(34.900130952189848,0.,200),(17.450065476094931,30.2244,200.)])
12000 self.assertTrue(m.computeIsoBarycenterOfNodesPerCell().isEqual(dReference,1e-12))
12001 m.getNodalConnectivity().setIJ(87,0,24)
12002 self.assertRaises(InterpKernelException,m.computeIsoBarycenterOfNodesPerCell)
12003 m.getNodalConnectivity().setIJ(87,0,-2)
12004 self.assertRaises(InterpKernelException,m.computeIsoBarycenterOfNodesPerCell)
12005 m.getNodalConnectivity().setIJ(87,0,21)# put again 21 as at the beginning
12007 self.assertTrue(m.unPolyze())
12008 self.assertEqual([NORM_HEXGP12],m.getAllGeoTypes())
12009 self.assertTrue(m.computeIsoBarycenterOfNodesPerCell().isEqual(dReference,1e-12))
12010 m.getNodalConnectivity().setIJ(25,0,24)
12011 self.assertRaises(InterpKernelException,m.computeIsoBarycenterOfNodesPerCell)
12012 m.getNodalConnectivity().setIJ(25,0,-1)
12013 self.assertRaises(InterpKernelException,m.computeIsoBarycenterOfNodesPerCell)
12016 def testSwig2NonRegressionBugDescHexa20(self):
12017 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)
12018 m=MEDCouplingUMesh('mesh',3)
12020 m.insertNextCell(NORM_HEXA20,[0,3,5,1,12,18,16,14,7,4,6,2,19,17,15,13,8,11,10,9])
12022 m.checkCoherency1()
12024 a,b,c,d,e=m.buildDescendingConnectivity()
12025 m2=MEDCouplingUMesh('mesh',2)
12026 m2.allocateCells(0)
12028 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]]
12029 for i in xrange(6):
12030 m2.insertNextCell(NORM_QUAD8,conn2[i])
12032 self.assertTrue(m2.isEqual(a,1e-12))
12033 self.assertTrue(b.isEqual(DataArrayInt([0,1,2,3,4,5])))
12034 self.assertTrue(c.isEqual(DataArrayInt([0,6])))
12035 self.assertTrue(d.isEqual(DataArrayInt([0,0,0,0,0,0])))
12036 self.assertTrue(e.isEqual(DataArrayInt([0,1,2,3,4,5,6])))
12038 m.convertQuadraticCellsToLinear() ; m.zipCoords()
12039 m.convertLinearCellsToQuadratic(1)
12041 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)
12042 m3=MEDCouplingUMesh("mesh",3)
12043 m3.allocateCells(1)
12044 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])
12046 self.assertTrue(m3.isEqual(m,1e-12))
12048 a,b,c,d,e=m.buildDescendingConnectivity()
12049 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]]
12050 m4=MEDCouplingUMesh("mesh",2)
12051 m4.allocateCells(0)
12052 for i in xrange(6):
12053 m4.insertNextCell(NORM_QUAD9,conn4[i])
12056 self.assertTrue(m4.isEqual(a,1e-12))
12057 self.assertTrue(b.isEqual(DataArrayInt([0,1,2,3,4,5])))
12058 self.assertTrue(c.isEqual(DataArrayInt([0,6])))
12059 self.assertTrue(d.isEqual(DataArrayInt([0,0,0,0,0,0])))
12060 self.assertTrue(e.isEqual(DataArrayInt([0,1,2,3,4,5,6])))
12063 def testSwigAdvGauss(self):
12064 f=MEDCouplingFieldTemplate(ON_GAUSS_PT)
12065 f.setDiscretization(None)
12066 f.__repr__() ; f.__str__()
12068 f=MEDCouplingFieldTemplate(ON_GAUSS_PT)
12069 d=f.getDiscretization()
12070 i=DataArrayInt() ; i.alloc(10,1) ; i.iota(1)
12071 d.setArrayOfDiscIds(i)
12072 f.__repr__() ; f.__str__()
12073 i2=d.getArrayOfDiscIds()
12074 self.assertEqual(i.__repr__(),i2.__repr__())
12076 f=MEDCouplingFieldDouble(ON_GAUSS_PT)
12077 f.setDiscretization(None)
12078 f.__repr__() ; f.__str__()
12080 f=MEDCouplingFieldDouble(ON_GAUSS_PT)
12081 d=f.getDiscretization()
12082 i=DataArrayInt() ; i.alloc(10,1) ; i.iota(1)
12083 d.setArrayOfDiscIds(i)
12084 f.__repr__() ; f.__str__()
12086 gl=MEDCouplingGaussLocalization(NORM_SEG2,[0,1],[0.5],[1.])
12087 gl.setWeights([3.])
12088 gl.__repr__() ; gl.__str__()
12089 gl=MEDCouplingGaussLocalization(NORM_ERROR)
12090 gl.setWeights([3.])
12091 gl.__repr__() ; gl.__str__()
12094 def testSwig2NonRegressionBugSubstractInPlaceDM(self):
12095 m0=MEDCouplingCMesh()
12096 arr=DataArrayDouble(5,1) ; arr.iota(0.)
12097 m0.setCoords(arr,arr)
12098 m0=m0.buildUnstructured()
12099 m00=m0[::2] ; m00.simplexize(0) ; m01=m0[1::2]
12100 m0=MEDCouplingUMesh.MergeUMeshes([m00,m01])
12101 m0.getCoords()[:]*=1/4.
12104 NodeField=MEDCouplingFieldDouble(ON_NODES,ONE_TIME) ; NodeField.setTime(5.6,5,6) ; NodeField.setMesh(m0)
12105 NodeField.setName("NodeField")
12106 NodeField.fillFromAnalytic(1,"exp(-((x-1)*(x-1)+(y-1)*(y-1)))") ; NodeField.getArray().setInfoOnComponent(0,"powernode [W]")
12107 proc0=m0.getCellsInBoundingBox([(0.,0.4),(0.,0.4)],1e-10)
12108 proc1=proc0.buildComplement(m0.getNumberOfCells())
12110 NodeField0=NodeField[proc0] ; NodeField0.getMesh().setName(m0.getName())
12111 NodeField1=NodeField[proc1] ; NodeField1.getMesh().setName(m0.getName())
12113 NodeField_read=MEDCouplingFieldDouble.MergeFields([NodeField0,NodeField1])
12114 NodeField_read.mergeNodes(1e-10)
12115 NodeFieldCpy=NodeField.deepCpy()
12116 NodeFieldCpy.mergeNodes(1e-10)
12117 NodeField.checkCoherency()
12118 self.assertTrue(not NodeField.getArray().isUniform(0.,1e-12))
12119 NodeField.substractInPlaceDM(NodeField_read,10,1e-12)
12120 self.assertTrue(NodeField.getArray().isUniform(0.,1e-12))
12123 def testSwigFieldOperationOpen1(self):
12124 ## MEDCouplingFieldDouble.__add__
12125 m=MEDCouplingDataForTest.build2DTargetMesh_1()
12126 f=MEDCouplingFieldDouble(ON_CELLS)
12128 arr=DataArrayDouble(5,2)
12129 arr[:,0]=range(5) ; arr[:,1]=2*arr[:,0]
12131 self.assertRaises(InterpKernelException,f.__add__,2)
12132 self.assertRaises(InterpKernelException,f.__add__,range(5))
12133 self.assertRaises(InterpKernelException,f.__add__,arr)
12134 self.assertRaises(InterpKernelException,f.__add__,f2)
12135 f.setArray(DataArrayDouble())
12136 self.assertRaises(InterpKernelException,f.__add__,2)
12137 self.assertRaises(InterpKernelException,f.__add__,range(5))
12138 self.assertRaises(InterpKernelException,f.__add__,arr)
12139 self.assertRaises(InterpKernelException,f.__add__,f2)
12140 self.assertRaises(InterpKernelException,f.__getitem__,(slice(None),0))
12141 f.getArray().alloc(5,2)
12142 f.getArray()[:,0]=range(5) ; f.getArray()[:,1]=f.getArray()[:,0]+7
12144 ff.checkCoherency()
12145 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(2,9),(3,10),(4,11),(5,12),(6,13)]),1e-12))
12147 ff.checkCoherency()
12148 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(0,7),(2,10),(4,13),(6,16),(8,19)]),1e-12))
12149 self.assertRaises(InterpKernelException,f.__add__,f2)
12152 ff.checkCoherency()
12153 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(0,7),(2,10),(4,13),(6,16),(8,19)]),1e-12))
12155 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(5,15),(6,16),(7,17),(8,18),(9,19)]),1e-12))
12156 ### MEDCouplingFieldDouble.__sub__
12157 m=MEDCouplingDataForTest.build2DTargetMesh_1()
12158 f=MEDCouplingFieldDouble(ON_CELLS)
12160 arr=DataArrayDouble(5,2)
12161 arr[:,0]=range(5) ; arr[:,1]=2*arr[:,0]
12163 self.assertRaises(InterpKernelException,f.__sub__,2)
12164 self.assertRaises(InterpKernelException,f.__sub__,range(5))
12165 self.assertRaises(InterpKernelException,f.__sub__,arr)
12166 self.assertRaises(InterpKernelException,f.__sub__,f2)
12167 f.setArray(DataArrayDouble())
12168 self.assertRaises(InterpKernelException,f.__sub__,2)
12169 self.assertRaises(InterpKernelException,f.__sub__,range(5))
12170 self.assertRaises(InterpKernelException,f.__sub__,arr)
12171 self.assertRaises(InterpKernelException,f.__sub__,f2)
12172 self.assertRaises(InterpKernelException,f.__getitem__,(slice(None),0))
12173 f.getArray().alloc(5,2)
12174 f.getArray()[:,0]=range(5) ; f.getArray()[:,1]=f.getArray()[:,0]+7
12176 ff.checkCoherency()
12177 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(-2,5),(-1,6),(0,7),(1,8),(2,9)]),1e-12))
12179 ff.checkCoherency()
12180 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(0,7),(0,6),(0,5),(0,4),(0,3)]),1e-12))
12181 self.assertRaises(InterpKernelException,f.__sub__,f2)
12184 ff.checkCoherency()
12185 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(0,7),(0,6),(0,5),(0,4),(0,3)]),1e-12))
12187 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(-5,-1),(-4,0),(-3,1),(-2,2),(-1,3)]),1e-12))
12188 ### MEDCouplingFieldDouble.__mul__
12189 m=MEDCouplingDataForTest.build2DTargetMesh_1()
12190 f=MEDCouplingFieldDouble(ON_CELLS)
12192 arr=DataArrayDouble(5,2)
12193 arr[:,0]=range(5) ; arr[:,1]=2*arr[:,0]
12195 self.assertRaises(InterpKernelException,f.__mul__,2)
12196 self.assertRaises(InterpKernelException,f.__mul__,range(5))
12197 self.assertRaises(InterpKernelException,f.__mul__,arr)
12198 self.assertRaises(InterpKernelException,f.__mul__,f2)
12199 f.setArray(DataArrayDouble())
12200 self.assertRaises(InterpKernelException,f.__mul__,2)
12201 self.assertRaises(InterpKernelException,f.__mul__,range(5))
12202 self.assertRaises(InterpKernelException,f.__mul__,arr)
12203 self.assertRaises(InterpKernelException,f.__mul__,f2)
12204 self.assertRaises(InterpKernelException,f.__getitem__,(slice(None),0))
12205 f.getArray().alloc(5,2)
12206 f.getArray()[:,0]=range(5) ; f.getArray()[:,1]=f.getArray()[:,0]+7
12208 ff.checkCoherency()
12209 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(0,14),(2,16),(4,18),(6,20),(8,22)]),1e-12))
12211 ff.checkCoherency()
12212 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(0,0),(1,16),(4,36),(9,60),(16,88)]),1e-12))
12213 self.assertRaises(InterpKernelException,f.__mul__,f2)
12216 ff.checkCoherency()
12217 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(0,0),(1,16),(4,36),(9,60),(16,88)]),1e-12))
12219 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(0,56),(5,64),(10,72),(15,80),(20,88)]),1e-12))
12220 ### MEDCouplingFieldDouble.__div__
12221 m=MEDCouplingDataForTest.build2DTargetMesh_1()
12222 f=MEDCouplingFieldDouble(ON_CELLS)
12224 arr=DataArrayDouble(5,2)
12225 arr[:,0]=range(1,6) ; arr[:,1]=2*arr[:,0]
12227 self.assertRaises(InterpKernelException,f.__div__,2)
12228 self.assertRaises(InterpKernelException,f.__div__,range(5))
12229 self.assertRaises(InterpKernelException,f.__div__,arr)
12230 self.assertRaises(InterpKernelException,f.__div__,f2)
12231 f.setArray(DataArrayDouble())
12232 self.assertRaises(InterpKernelException,f.__div__,2)
12233 self.assertRaises(InterpKernelException,f.__div__,range(5))
12234 self.assertRaises(InterpKernelException,f.__div__,arr)
12235 self.assertRaises(InterpKernelException,f.__div__,f2)
12236 self.assertRaises(InterpKernelException,f.__getitem__,(slice(None),0))
12237 f.getArray().alloc(5,2)
12238 f.getArray()[:,0]=range(5) ; f.getArray()[:,1]=f.getArray()[:,0]+7
12239 self.assertRaises(InterpKernelException,f.__div__,0)
12241 ff.checkCoherency()
12242 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(0,3.5),(0.5,4),(1,4.5),(1.5,5),(2,5.5)]),1e-12))
12244 ff.checkCoherency()
12245 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))
12246 self.assertRaises(InterpKernelException,f.__div__,f2)
12249 ff.checkCoherency()
12250 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))
12252 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))
12253 ### MEDCouplingFieldDouble.__pow__
12254 m=MEDCouplingDataForTest.build2DTargetMesh_1()
12255 f=MEDCouplingFieldDouble(ON_CELLS)
12257 arr=DataArrayDouble(5)
12260 self.assertRaises(InterpKernelException,f.__div__,2)
12261 self.assertRaises(InterpKernelException,f.__div__,range(5))
12262 self.assertRaises(InterpKernelException,f.__div__,arr)
12263 self.assertRaises(InterpKernelException,f.__div__,f2)
12264 f.setArray(DataArrayDouble())
12265 self.assertRaises(InterpKernelException,f.__div__,2)
12266 self.assertRaises(InterpKernelException,f.__div__,range(5))
12267 self.assertRaises(InterpKernelException,f.__div__,arr)
12268 self.assertRaises(InterpKernelException,f.__div__,f2)
12269 self.assertRaises(InterpKernelException,f.__getitem__,(slice(None),0))
12270 f.getArray().alloc(5,1)
12271 f.getArray()[:]=range(2,7)
12273 ff.checkCoherency()
12274 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([4,9,16,25,36]),1e-12))
12276 ff.checkCoherency()
12277 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([2,3,64,25,1]),1e-12))
12280 ff.checkCoherency()
12281 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([2,3,64,25,1]),1e-12))
12282 ## MEDCouplingFieldDouble.__iadd__
12283 m=MEDCouplingDataForTest.build2DTargetMesh_1()
12284 f=MEDCouplingFieldDouble(ON_CELLS)
12286 arr=DataArrayDouble(5,2)
12287 arr[:,0]=range(5) ; arr[:,1]=2*arr[:,0]
12289 self.assertRaises(InterpKernelException,f.__iadd__,2)
12290 self.assertRaises(InterpKernelException,f.__iadd__,range(5))
12291 self.assertRaises(InterpKernelException,f.__iadd__,arr)
12292 self.assertRaises(InterpKernelException,f.__iadd__,f2)
12293 f.setArray(DataArrayDouble())
12294 self.assertRaises(InterpKernelException,f.__iadd__,2)
12295 self.assertRaises(InterpKernelException,f.__iadd__,range(5))
12296 self.assertRaises(InterpKernelException,f.__iadd__,arr)
12297 self.assertRaises(InterpKernelException,f.__iadd__,f2)
12298 f.getArray().alloc(5,2)
12299 f.getArray()[:,0]=range(5) ; f.getArray()[:,1]=f.getArray()[:,0]+7
12303 self.assertTrue(f.getArray().isEqual(DataArrayDouble([(2,9),(3,10),(4,11),(5,12),(6,13)]),1e-12))
12306 self.assertTrue(f.getArray().isEqual(DataArrayDouble([(2,9),(4,12),(6,15),(8,18),(10,21)]),1e-12))
12310 self.assertTrue(f.getArray().isEqual(DataArrayDouble([(2,9),(5,14),(8,19),(11,24),(14,29)]),1e-12))
12313 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))
12314 ## MEDCouplingFieldDouble.__isub__
12315 m=MEDCouplingDataForTest.build2DTargetMesh_1()
12316 f=MEDCouplingFieldDouble(ON_CELLS)
12318 arr=DataArrayDouble(5,2)
12319 arr[:,0]=range(5) ; arr[:,1]=2*arr[:,0]
12321 self.assertRaises(InterpKernelException,f.__isub__,2)
12322 self.assertRaises(InterpKernelException,f.__isub__,range(5))
12323 self.assertRaises(InterpKernelException,f.__isub__,arr)
12324 self.assertRaises(InterpKernelException,f.__isub__,f2)
12325 f.setArray(DataArrayDouble())
12326 self.assertRaises(InterpKernelException,f.__isub__,2)
12327 self.assertRaises(InterpKernelException,f.__isub__,range(5))
12328 self.assertRaises(InterpKernelException,f.__isub__,arr)
12329 self.assertRaises(InterpKernelException,f.__isub__,f2)
12330 f.getArray().alloc(5,2)
12331 f.getArray()[:,0]=range(5) ; f.getArray()[:,1]=f.getArray()[:,0]+7
12335 self.assertTrue(f.getArray().isEqual(DataArrayDouble([(-2,5),(-1,6),(0,7),(1,8),(2,9)]),1e-12))
12338 self.assertTrue(f.getArray().isEqual(DataArrayDouble([(-2,5),(-2,4),(-2,3),(-2,2),(-2,1)]),1e-12))
12342 self.assertTrue(f.getArray().isEqual(DataArrayDouble([(-2,5),(-3,2),(-4,-1),(-5,-4),(-6,-7)]),1e-12))
12345 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))
12346 ## MEDCouplingFieldDouble.__imul__
12347 m=MEDCouplingDataForTest.build2DTargetMesh_1()
12348 f=MEDCouplingFieldDouble(ON_CELLS)
12350 arr=DataArrayDouble(5,2)
12351 arr[:,0]=range(5) ; arr[:,1]=2*arr[:,0]
12353 self.assertRaises(InterpKernelException,f.__imul__,2)
12354 self.assertRaises(InterpKernelException,f.__imul__,range(5))
12355 self.assertRaises(InterpKernelException,f.__imul__,arr)
12356 self.assertRaises(InterpKernelException,f.__imul__,f2)
12357 f.setArray(DataArrayDouble())
12358 self.assertRaises(InterpKernelException,f.__imul__,2)
12359 self.assertRaises(InterpKernelException,f.__imul__,range(5))
12360 self.assertRaises(InterpKernelException,f.__imul__,arr)
12361 self.assertRaises(InterpKernelException,f.__imul__,f2)
12362 f.getArray().alloc(5,2)
12363 f.getArray()[:,0]=range(5) ; f.getArray()[:,1]=f.getArray()[:,0]+7
12367 self.assertTrue(f.getArray().isEqual(DataArrayDouble([(0,14),(2,16),(4,18),(6,20),(8,22)]),1e-12))
12370 self.assertTrue(f.getArray().isEqual(DataArrayDouble([(0,0),(2,32),(8,72),(18,120),(32,176)]),1e-12))
12374 self.assertTrue(f.getArray().isEqual(DataArrayDouble([(0,0),(2,64),(16,288),(54,720),(128,1408)]),1e-12))
12377 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))
12378 ## MEDCouplingFieldDouble.__idiv__
12379 m=MEDCouplingDataForTest.build2DTargetMesh_1()
12380 f=MEDCouplingFieldDouble(ON_CELLS)
12382 arr=DataArrayDouble(5,2)
12383 arr[:,0]=range(1,6) ; arr[:,1]=2*arr[:,0]
12385 self.assertRaises(InterpKernelException,f.__idiv__,2)
12386 self.assertRaises(InterpKernelException,f.__idiv__,range(5))
12387 self.assertRaises(InterpKernelException,f.__idiv__,arr)
12388 self.assertRaises(InterpKernelException,f.__idiv__,f2)
12389 f.setArray(DataArrayDouble())
12390 self.assertRaises(InterpKernelException,f.__idiv__,2)
12391 self.assertRaises(InterpKernelException,f.__idiv__,range(5))
12392 self.assertRaises(InterpKernelException,f.__idiv__,arr)
12393 self.assertRaises(InterpKernelException,f.__idiv__,f2)
12394 f.getArray().alloc(5,2)
12395 f.getArray()[:,0]=range(5) ; f.getArray()[:,1]=f.getArray()[:,0]+7
12399 self.assertTrue(f.getArray().isEqual(DataArrayDouble([(0,3.5),(0.5,4),(1,4.5),(1.5,5),(2,5.5)]),1e-12))
12402 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))
12406 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))
12409 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))
12410 ## MEDCouplingFieldDouble.__ipow__
12411 m=MEDCouplingDataForTest.build2DTargetMesh_1()
12412 f=MEDCouplingFieldDouble(ON_CELLS)
12414 arr=DataArrayDouble(5,2)
12415 arr[:,0]=range(1,6) ; arr[:,1]=2*arr[:,0]
12417 self.assertRaises(InterpKernelException,f.__ipow__,2)
12418 self.assertRaises(InterpKernelException,f.__ipow__,range(5))
12419 self.assertRaises(InterpKernelException,f.__ipow__,arr)
12420 self.assertRaises(InterpKernelException,f.__ipow__,f2)
12421 f.setArray(DataArrayDouble())
12422 self.assertRaises(InterpKernelException,f.__ipow__,2)
12423 self.assertRaises(InterpKernelException,f.__ipow__,range(5))
12424 self.assertRaises(InterpKernelException,f.__ipow__,arr)
12425 self.assertRaises(InterpKernelException,f.__ipow__,f2)
12426 f.getArray().alloc(5,2)
12427 f.getArray()[:,0]=range(5) ; f.getArray()[:,1]=f.getArray()[:,0]+7
12431 self.assertTrue(f.getArray().isEqual(DataArrayDouble([(0,49),(1,64),(4,81),(9,100),(16,121)]),1e-12))
12432 ## MEDCouplingFieldDouble.__radd__
12433 m=MEDCouplingDataForTest.build2DTargetMesh_1()
12434 f=MEDCouplingFieldDouble(ON_CELLS)
12436 arr=DataArrayDouble(5,2)
12437 arr[:,0]=range(5) ; arr[:,1]=2*arr[:,0]
12439 self.assertRaises(InterpKernelException,f.__radd__,2)
12440 self.assertRaises(InterpKernelException,f.__radd__,range(5))
12441 self.assertRaises(InterpKernelException,f.__radd__,arr)
12442 self.assertRaises(InterpKernelException,f.__radd__,f2)
12443 f.setArray(DataArrayDouble())
12444 self.assertRaises(InterpKernelException,f.__radd__,2)
12445 self.assertRaises(InterpKernelException,f.__radd__,range(5))
12446 self.assertRaises(InterpKernelException,f.__radd__,arr)
12447 self.assertRaises(InterpKernelException,f.__radd__,f2)
12448 self.assertRaises(InterpKernelException,f.__getitem__,(slice(None),0))
12449 f.getArray().alloc(5,2)
12450 f.getArray()[:,0]=range(5) ; f.getArray()[:,1]=f.getArray()[:,0]+7
12452 ff.checkCoherency()
12453 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(2,9),(3,10),(4,11),(5,12),(6,13)]),1e-12))
12455 ff.checkCoherency()
12456 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(0,7),(2,10),(4,13),(6,16),(8,19)]),1e-12))
12457 self.assertRaises(InterpKernelException,f.__radd__,f2)
12459 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(5,15),(6,16),(7,17),(8,18),(9,19)]),1e-12))
12460 ### MEDCouplingFieldDouble.__rsub__
12461 m=MEDCouplingDataForTest.build2DTargetMesh_1()
12462 f=MEDCouplingFieldDouble(ON_CELLS)
12464 arr=DataArrayDouble(5,2)
12465 arr[:,0]=range(5) ; arr[:,1]=2*arr[:,0]
12467 self.assertRaises(InterpKernelException,f.__rsub__,2)
12468 self.assertRaises(InterpKernelException,f.__rsub__,range(5))
12469 self.assertRaises(InterpKernelException,f.__rsub__,arr)
12470 self.assertRaises(InterpKernelException,f.__rsub__,f2)
12471 f.setArray(DataArrayDouble())
12472 self.assertRaises(InterpKernelException,f.__rsub__,2)
12473 self.assertRaises(InterpKernelException,f.__rsub__,range(5))
12474 self.assertRaises(InterpKernelException,f.__rsub__,arr)
12475 self.assertRaises(InterpKernelException,f.__rsub__,f2)
12476 self.assertRaises(InterpKernelException,f.__getitem__,(slice(None),0))
12477 f.getArray().alloc(5,2)
12478 f.getArray()[:,0]=range(5) ; f.getArray()[:,1]=f.getArray()[:,0]+7
12480 ff.checkCoherency()
12481 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(2,-5),(1,-6),(0,-7),(-1,-8),(-2,-9)]),1e-12))
12483 ff.checkCoherency()
12484 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(0,-7),(0,-6),(0,-5),(0,-4),(0,-3)]),1e-12))
12485 self.assertRaises(InterpKernelException,f.__rsub__,f2)
12486 ### MEDCouplingFieldDouble.__rmul__
12487 m=MEDCouplingDataForTest.build2DTargetMesh_1()
12488 f=MEDCouplingFieldDouble(ON_CELLS)
12490 arr=DataArrayDouble(5,2)
12491 arr[:,0]=range(5) ; arr[:,1]=2*arr[:,0]
12493 self.assertRaises(InterpKernelException,f.__rmul__,2)
12494 self.assertRaises(InterpKernelException,f.__rmul__,range(5))
12495 self.assertRaises(InterpKernelException,f.__rmul__,arr)
12496 self.assertRaises(InterpKernelException,f.__rmul__,f2)
12497 f.setArray(DataArrayDouble())
12498 self.assertRaises(InterpKernelException,f.__rmul__,2)
12499 self.assertRaises(InterpKernelException,f.__rmul__,range(5))
12500 self.assertRaises(InterpKernelException,f.__rmul__,arr)
12501 self.assertRaises(InterpKernelException,f.__rmul__,f2)
12502 self.assertRaises(InterpKernelException,f.__getitem__,(slice(None),0))
12503 f.getArray().alloc(5,2)
12504 f.getArray()[:,0]=range(5) ; f.getArray()[:,1]=f.getArray()[:,0]+7
12506 ff.checkCoherency()
12507 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(0,14),(2,16),(4,18),(6,20),(8,22)]),1e-12))
12509 ff.checkCoherency()
12510 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(0,0),(1,16),(4,36),(9,60),(16,88)]),1e-12))
12511 self.assertRaises(InterpKernelException,f.__rmul__,f2)
12513 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(0,56),(5,64),(10,72),(15,80),(20,88)]),1e-12))
12514 ### MEDCouplingFieldDouble.__rdiv__
12515 m=MEDCouplingDataForTest.build2DTargetMesh_1()
12516 f=MEDCouplingFieldDouble(ON_CELLS)
12518 arr=DataArrayDouble(5,2)
12519 arr[:,0]=range(1,6) ; arr[:,1]=2*arr[:,0]
12521 self.assertRaises(InterpKernelException,f.__rdiv__,2)
12522 self.assertRaises(InterpKernelException,f.__rdiv__,range(5))
12523 self.assertRaises(InterpKernelException,f.__rdiv__,arr)
12524 self.assertRaises(InterpKernelException,f.__rdiv__,f2)
12525 f.setArray(DataArrayDouble())
12526 self.assertRaises(InterpKernelException,f.__rdiv__,2)
12527 self.assertRaises(InterpKernelException,f.__rdiv__,range(5))
12528 self.assertRaises(InterpKernelException,f.__rdiv__,arr)
12529 self.assertRaises(InterpKernelException,f.__rdiv__,f2)
12530 self.assertRaises(InterpKernelException,f.__getitem__,(slice(None),0))
12531 f.getArray().alloc(5,2)
12532 f.getArray()[:,0]=range(1,6) ; f.getArray()[:,1]=f.getArray()[:,0]+7
12534 ff.checkCoherency()
12535 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))
12537 ff.checkCoherency()
12538 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(1,0.25),(1,0.44444444444444442),(1,0.59999999999999998),(1,0.72727272727272729),(1,0.83333333333333337)]),1e-12))
12539 self.assertRaises(InterpKernelException,f.__rdiv__,f2)
12542 def testSwig2FieldDoubleBuildSubPartRange1(self):
12544 m=MEDCouplingDataForTest.build2DTargetMesh_1()
12545 f=MEDCouplingFieldDouble(ON_CELLS)
12547 arr=DataArrayDouble(5,2) ; arr[:,0]=range(7,12) ; arr[:,1]=100+arr[:,0]
12551 ff.checkCoherency()
12552 self.assertTrue((m.buildPartOfMySelf([1,3],True)).isEqual(ff.getMesh(),1e-12))
12553 self.assertTrue(9,ff.getMesh().getNumberOfNodes())
12554 self.assertTrue(2,ff.getMesh().getNumberOfCells())
12555 self.assertTrue(ff.getArray().isEqual(arr[[1,3]],1e-12))
12557 a,b=f.buildSubMeshDataRange(2,5,1)
12558 self.assertTrue(m.buildPartOfMySelf([2,3,4],True).isEqual(a,1e-12))
12559 self.assertEqual(b,slice(2,5,1))
12561 ff.checkCoherency()
12562 self.assertTrue((m.buildPartOfMySelf([2,3,4],True)).isEqual(ff.getMesh(),1e-12))
12563 self.assertTrue(9,ff.getMesh().getNumberOfNodes())
12564 self.assertTrue(3,ff.getMesh().getNumberOfCells())
12565 self.assertTrue(ff.getArray().isEqual(arr[[2,3,4]],1e-12))
12568 ff.checkCoherency()
12569 self.assertTrue((m.buildPartOfMySelf([3,2,1],True)).isEqual(ff.getMesh(),1e-12))
12570 self.assertTrue(9,ff.getMesh().getNumberOfNodes())
12571 self.assertTrue(3,ff.getMesh().getNumberOfCells())
12572 self.assertTrue(ff.getArray().isEqual(arr[[3,2,1]],1e-12))
12573 self.assertTrue(f[-2:0:-1,1].getArray().isEqual(arr[[3,2,1],1],1e-12))
12575 f=MEDCouplingFieldDouble(ON_NODES)
12577 arr=DataArrayDouble(9,2) ; arr[:,0]=range(7,16) ; arr[:,1]=100+arr[:,0]
12581 ff.checkCoherency()
12582 self.assertTrue((m.buildPartOfMySelf([1,3],False)).isEqual(ff.getMesh(),1e-12))
12583 self.assertTrue(6,ff.getMesh().getNumberOfNodes())
12584 self.assertTrue(2,ff.getMesh().getNumberOfCells())
12585 self.assertTrue(ff.getArray().isEqual(arr[[1,2,3,4,6,7]],1e-12))
12587 m2=m.buildPartRange(2,5,1)
12588 self.assertTrue(m.buildPartOfMySelf([2,3,4],True).isEqual(m2,1e-12))
12589 m2,b=m.buildPartRangeAndReduceNodes(2,5,1)
12590 self.assertTrue(m.buildPartOfMySelf([2,3,4],False).isEqual(m2,1e-12))
12591 self.assertTrue(b.isEqual(DataArrayInt([-1,-1,0,1,2,3,4,5,6])))
12592 a,b=f.buildSubMeshDataRange(2,5,1)
12593 self.assertTrue(m.buildPartOfMySelf([2,3,4],False).isEqual(a,1e-12))
12594 self.assertTrue(b.isEqual(DataArrayInt([2,3,4,5,6,7,8])))
12596 ff.checkCoherency()
12597 self.assertTrue((m.buildPartOfMySelf([2,3,4],False)).isEqual(ff.getMesh(),1e-12))
12598 self.assertTrue(7,ff.getMesh().getNumberOfNodes())
12599 self.assertTrue(3,ff.getMesh().getNumberOfCells())
12600 self.assertTrue(ff.getArray().isEqual(arr[[2,3,4,5,6,7,8]],1e-12))
12603 ff.checkCoherency()
12604 self.assertTrue((m.buildPartOfMySelf([3,2,1],False)).isEqual(ff.getMesh(),1e-12))
12605 self.assertTrue(7,ff.getMesh().getNumberOfNodes())
12606 self.assertTrue(3,ff.getMesh().getNumberOfCells())
12607 self.assertTrue(ff.getArray().isEqual(arr[[1,2,3,4,5,6,7]],1e-12))
12608 self.assertTrue(f[-2:0:-1,1].getArray().isEqual(arr[[1,2,3,4,5,6,7],1],1e-12))
12610 f=MEDCouplingFieldDouble(ON_GAUSS_NE)
12612 arr=DataArrayDouble(18,2) ; arr[:,0]=range(7,25) ; arr[:,1]=100+arr[:,0]
12616 ff.checkCoherency()
12617 self.assertTrue((m.buildPartOfMySelf([1,3],True)).isEqual(ff.getMesh(),1e-12))
12618 self.assertTrue(9,ff.getMesh().getNumberOfNodes())
12619 self.assertTrue(2,ff.getMesh().getNumberOfCells())
12620 self.assertTrue(ff.getArray().isEqual(arr[[4,5,6,10,11,12,13]],1e-12))
12622 a,b=f.buildSubMeshDataRange(2,5,1)
12623 self.assertTrue(m.buildPartOfMySelf([2,3,4],True).isEqual(a,1e-12))
12624 self.assertEqual(b,slice(7,18,1))
12626 ff.checkCoherency()
12627 self.assertTrue((m.buildPartOfMySelf([2,3,4],True)).isEqual(ff.getMesh(),1e-12))
12628 self.assertTrue(9,ff.getMesh().getNumberOfNodes())
12629 self.assertTrue(3,ff.getMesh().getNumberOfCells())
12630 self.assertTrue(ff.getArray().isEqual(arr[[7,8,9,10,11,12,13,14,15,16,17]],1e-12))
12633 ff.checkCoherency()
12634 self.assertTrue((m.buildPartOfMySelf([3,2,1],True)).isEqual(ff.getMesh(),1e-12))
12635 self.assertTrue(9,ff.getMesh().getNumberOfNodes())
12636 self.assertTrue(3,ff.getMesh().getNumberOfCells())
12637 self.assertTrue(ff.getArray().isEqual(arr[[10,11,12,13,7,8,9,4,5,6]],1e-12))
12638 self.assertTrue(f[-2:0:-1,1].getArray().isEqual(arr[[10,11,12,13,7,8,9,4,5,6],1],1e-12))
12640 f=MEDCouplingFieldDouble(ON_GAUSS_PT)
12642 f.setGaussLocalizationOnCells([0,4],[0,0,1,0,1,1,1,0],[1.1,1.1,2.2,2.2],[0.2,0.8]);
12643 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]);
12644 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]);
12645 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]);
12646 arr=DataArrayDouble(16,2) ; arr[:,0]=range(7,23) ; arr[:,1]=100+arr[:,0]
12650 ff.checkCoherency()
12651 self.assertTrue((m.buildPartOfMySelf([1,3],True)).isEqual(ff.getMesh(),1e-12))
12652 self.assertTrue(9,ff.getMesh().getNumberOfNodes())
12653 self.assertTrue(2,ff.getMesh().getNumberOfCells())
12654 self.assertTrue(ff.getArray().isEqual(arr[[2,3,4,5,11,12,13]],1e-12))
12656 a,b=f.buildSubMeshDataRange(2,5,1)
12657 self.assertTrue(m.buildPartOfMySelf([2,3,4],True).isEqual(a,1e-12))
12658 self.assertEqual(b,slice(6,16,1))
12660 ff.checkCoherency()
12661 self.assertTrue((m.buildPartOfMySelf([2,3,4],True)).isEqual(ff.getMesh(),1e-12))
12662 self.assertTrue(9,ff.getMesh().getNumberOfNodes())
12663 self.assertTrue(3,ff.getMesh().getNumberOfCells())
12664 self.assertTrue(ff.getArray().isEqual(arr[[6,7,8,9,10,11,12,13,14,15]],1e-12))
12667 ff.checkCoherency()
12668 self.assertTrue((m.buildPartOfMySelf([3,2,1],True)).isEqual(ff.getMesh(),1e-12))
12669 self.assertTrue(9,ff.getMesh().getNumberOfNodes())
12670 self.assertTrue(3,ff.getMesh().getNumberOfCells())
12671 self.assertTrue(ff.getArray().isEqual(arr[[11,12,13,6,7,8,9,10,2,3,4,5]],1e-12))
12672 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))
12675 def testSwig2FieldDoubleApplyFuncBug1(self):
12676 f=MEDCouplingFieldDouble(ON_CELLS)
12677 f.setMesh(MEDCouplingDataForTest.build2DTargetMesh_1())
12678 f.applyFunc(3,700.)
12680 self.assertEqual(3,f.getArray().getNumberOfComponents())
12681 f.getArray().rearrange(1)
12682 self.assertTrue(f.getArray().isUniform(700.,1e-10))
12683 f.getArray().rearrange(3)
12685 f.applyFunc(4,800.)
12687 self.assertEqual(4,f.getArray().getNumberOfComponents())
12688 f.getArray().rearrange(1)
12689 self.assertTrue(f.getArray().isUniform(800.,1e-10))
12690 f.getArray().rearrange(4)
12694 def testSwig2ComputeTupleIdsNearTupleBug1(self):
12695 coords=[1.1,0.0, 1.1,0.0 ];
12696 coordsArr=DataArrayDouble(coords,2,2);
12697 mesh=MEDCouplingUMesh();
12698 mesh.setCoords(coordsArr);
12699 points=[1.1, 0.002]
12700 c,cI=mesh.getNodeIdsNearPoints(points,0.00185);
12701 self.assertTrue(c.isEqual(DataArrayInt([])))
12702 self.assertTrue(cI.isEqual(DataArrayInt([0,0])))
12703 c,cI=mesh.getNodeIdsNearPoints(points,0.00200000000000001);
12704 self.assertTrue(c.isEqual(DataArrayInt([0,1])))
12705 self.assertTrue(cI.isEqual(DataArrayInt([0,2])))
12708 def testSwig2NonRegressionBugChangeUnderlyingWithZeroCells(self):
12709 coords1=[0.,1.,2.,3.]
12710 coords2=[2.,1.,0.,3.] #0 <==> #2
12712 mesh1=MEDCouplingUMesh.New();
12713 coordsArr=DataArrayDouble.New(coords1,4,1);
12714 mesh1.setCoords(coordsArr);
12715 mesh1.setMeshDimension(0);
12716 mesh1.allocateCells(0);
12717 mesh1.finishInsertingCells();
12719 mesh2=mesh1.deepCpy();
12720 coordsArr=DataArrayDouble.New(coords2,4,1);
12721 mesh2.setCoords(coordsArr);
12722 field = mesh1.fillFromAnalytic(ON_NODES,1,"x")
12723 field.checkCoherency()
12725 field.changeUnderlyingMesh( mesh2, levOfCheck, 1e-13, 0 )
12726 self.assertTrue( field.getArray().getValues() == coords2 )
12729 def testSwig2UMeshDistanceToMesh2(self):
12731 m=MEDCouplingCMesh()
12732 arr=DataArrayDouble(sz+1) ; arr.iota() ; arr/=sz
12733 m.setCoords(arr,arr,arr)
12734 m=m.buildUnstructured()
12737 c=m1.getCoords()[:]
12738 d=2*(c-[0.5,0.5,0.5])+[0.5,0.5,0.5]
12739 time_deb = datetime.now()
12741 a,b=m1.distanceToPoints(d)
12742 #print 'time spent in distanceToPoints %s ' %str(datetime.now() - time_deb)
12743 time_deb = datetime.now()
12744 a1=DataArrayDouble(len(d))
12745 b1=DataArrayInt(len(d))
12746 m1s=[m1[i] for i in xrange(m1.getNumberOfCells())]
12747 for j,pt in enumerate(d):
12750 for i,miter in enumerate(m1s):
12751 e,f=miter.distanceToPoint(pt)
12752 self.assertEqual(0,f)
12760 #print 'time spent in naive distanceToPoints %s ' %str(datetime.now() - time_deb)
12761 self.assertTrue(a.isEqual(a1,1e-12))
12762 self.assertTrue(b.isEqual(b1))
12763 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))
12764 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])))
12767 def testSwig2NonRegressionBugDistance1(self):
12768 pt=DataArrayDouble([(8.8452994616207476,3.1547005383792515,3.1547005383792515)])
12769 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)])
12770 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])
12771 m=MEDCouplingUMesh("mesh",2)
12774 for i in xrange(24):
12775 m.insertNextCell(NORM_QUAD4,conn[4*i:4*i+4])
12777 m.checkCoherency2()
12778 m0=m[3] ; m0.zipCoords()
12779 expectedDist=0.8452994616207476
12780 a,b=m0.distanceToPoint(pt)
12781 self.assertAlmostEqual(expectedDist,a,14)
12782 self.assertEqual(0,b)
12784 a,b=m.distanceToPoint(pt)
12785 self.assertAlmostEqual(expectedDist,a,14)
12786 self.assertEqual(3,b)
12788 fd=MEDCouplingFieldDiscretization.New(ON_CELLS)
12789 self.assertEqual(24,fd.getNumberOfTuples(m))
12790 fd=MEDCouplingFieldDiscretization.New(ON_NODES)
12791 self.assertEqual(26,fd.getNumberOfTuples(m))
12794 def testSwig2AreaBarySeg3Quad8Tri6QPolyg(self):
12795 #QUAD8 representing a circle of center zeBary and radius zeRadius
12798 d=DataArrayDouble(8,2)
12800 d[:,1]=[87,-100,-170,110,5,-130,175,95] # angle in degree
12801 d[:,1]*=pi/180. # angle in radian
12802 d=d.fromPolarToCart()
12804 m=MEDCouplingUMesh("quad8",2) ; m.allocateCells() ; m.insertNextCell(NORM_QUAD8,range(8)) ; m.setCoords(d)
12805 self.assertTrue(m.getBarycenterAndOwner().isEqual(DataArrayDouble(zeBary,1,2),1e-13))
12806 self.assertAlmostEqual(float(m.getMeasureField(False).getArray()),pi*zeRadius*zeRadius,12)
12807 tri32D=m.buildDescendingConnectivity()[0][0] ; tri32D.zipCoords()
12808 # spaceDim=3 QUAD8 becomes QUAD4 ... for the moment
12809 m.setCoords(m.getCoords().changeNbOfComponents(3,0.))
12811 m2.convertQuadraticCellsToLinear()
12812 self.assertAlmostEqual(float(m.getMeasureField(False).getArray()),float(m2.getMeasureField(False).getArray()),12)
12813 self.assertTrue(m.getBarycenterAndOwner().isEqual(m2.getBarycenterAndOwner(),1e-13))
12814 #TRI6 representing a circle of center zeBary and radius zeRadius
12817 d=DataArrayDouble(6,2)
12819 d[:,1]=[87,-100,110,5,175,95] # angle in degree
12820 d[:,1]*=pi/180. # angle in radian
12821 d=d.fromPolarToCart()
12823 m=MEDCouplingUMesh("tri6",2) ; m.allocateCells() ; m.insertNextCell(NORM_TRI6,range(6)) ; m.setCoords(d)
12824 self.assertTrue(m.getBarycenterAndOwner().isEqual(DataArrayDouble(zeBary,1,2),1e-13))
12825 self.assertAlmostEqual(float(m.getMeasureField(False).getArray()),pi*zeRadius*zeRadius,12)
12826 # spaceDim=3 TRI6 becomes TRI3 ... for the moment
12827 m.setCoords(m.getCoords().changeNbOfComponents(3,0.))
12829 m2.convertQuadraticCellsToLinear()
12830 self.assertAlmostEqual(float(m.getMeasureField(False).getArray()),float(m2.getMeasureField(False).getArray()),12)
12831 self.assertTrue(m.getBarycenterAndOwner().isEqual(m2.getBarycenterAndOwner(),1e-13))
12832 # QPOLYG representing a circle of center zeBary and radius zeRadius
12835 d=DataArrayDouble(10,2)
12837 d[:,1]=[87,-80,-100,-170,110,5,-90,-130,175,95] # angle in degree
12838 d[:,1]*=pi/180. # angle in radian
12839 d=d.fromPolarToCart()
12841 m=MEDCouplingUMesh("qpolyg",2) ; m.allocateCells() ; m.insertNextCell(NORM_QPOLYG,range(10)) ; m.setCoords(d)
12842 self.assertTrue(m.getBarycenterAndOwner().isEqual(DataArrayDouble(zeBary,1,2),1e-13))
12843 self.assertAlmostEqual(float(m.getMeasureField(False).getArray()),pi*zeRadius*zeRadius,12)
12844 # spaceDim=3 QPOLYG becomes POLYG ... for the moment
12845 m.setCoords(m.getCoords().changeNbOfComponents(3,0.))
12847 m2.convertQuadraticCellsToLinear() ; m2.checkCoherency2()
12848 self.assertTrue(m2.getAllGeoTypes()==[NORM_POLYGON] and m2.getNodalConnectivity().getValues()==[5,0,1,2,3,4])
12849 self.assertAlmostEqual(float(m.getMeasureField(False).getArray()),float(m2.getMeasureField(False).getArray()),12)
12850 self.assertTrue(m.getBarycenterAndOwner().isEqual(m2.getBarycenterAndOwner(),1e-13))
12852 self.assertAlmostEqual(float(tri32D.getMeasureField(False).getArray()),(87+100)*pi/180*zeRadius,13)
12853 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)
12854 self.assertTrue(tri32D.getBarycenterAndOwner().isEqual(exp,1e-12))
12855 # spaceDim=3 TRI3 becomes TRI2 ... for the moment
12856 tri32D.changeSpaceDimension(3)
12857 tri2=tri32D.deepCpy() ; tri2.convertQuadraticCellsToLinear()
12858 self.assertAlmostEqual(float(tri32D.getMeasureField(False).getArray()),float(tri2.getMeasureField(False).getArray()),13)
12859 self.assertTrue(tri32D.getBarycenterAndOwner().isEqual(tri2.getBarycenterAndOwner(),1e-12))
12860 tri32D.changeSpaceDimension(1)
12861 self.assertAlmostEqual(float(tri32D.getMeasureField(False).getArray()),-0.67795240172962323,12)
12864 # this bug 5/6/2013 is swig specific
12865 def testSwigNonRegressionBugRotate3D1(self):
12866 m=MEDCouplingUMesh.New()
12867 dataArray=DataArrayDouble.New(100,3)
12869 dataArray[0]=[0.,1,3]
12870 m.setCoords(dataArray[0])
12872 m.rotate([0.,0.,3.],[1.,0.,0.],0.5*pi)
12873 self.assertTrue(m.getCoords().isEqual(DataArrayDouble([0.,0.,4.],1,3),1e-15))
12875 d1=DataArrayDouble([0.,0.,3.],1,3) ; d2=DataArrayDouble([1.,0.,0.],1,3)
12876 pts=[[0.,0.,3.],[(0.,0.,3.)],DataArrayDouble([0.,0.,3.],1,3),list(d1)[0]]
12877 vec=[[1.,0.,0.],[(1.,0.,0.)],DataArrayDouble([1.,0.,0.],1,3),list(d2)[0]]
12881 m2.rotate(p,v,0.5*pi)
12882 self.assertTrue(m2.getCoords().isEqual(DataArrayDouble([0.,0.,4.],1,3),1e-15))
12886 def testSwig2DataArrayCount1(self):
12888 self.assertEqual(0,d.getNumberOfTuples())
12889 self.assertEqual(1,d.getNumberOfComponents())
12890 self.assertEqual(0,d.count(0))
12891 self.assertEqual(0,d.count(1))
12892 self.assertEqual(0,d.count(-1))
12893 d=DataArrayInt([2,1,-2,-3,2,0,0,7,2,-2,3,0])
12894 self.assertEqual(12,d.getNumberOfTuples())
12895 self.assertEqual(1,d.getNumberOfComponents())
12896 self.assertEqual(3,d.count(0))
12897 self.assertEqual(1,d.count(1))
12898 self.assertEqual(0,d.count(-1))
12899 self.assertEqual(2,d.count(-2))
12900 self.assertEqual(3,d.count(2))
12901 e=d.getDifferentValues()
12904 f.pushBackSilent(d.count(int(it)))
12906 self.assertEqual(12,f.accumulate()[0])
12909 d=DataArrayDouble([])
12910 self.assertEqual(0,d.getNumberOfTuples())
12911 self.assertEqual(1,d.getNumberOfComponents())
12912 self.assertEqual(0,d.count(0,eps))
12913 self.assertEqual(0,d.count(1,eps))
12914 self.assertEqual(0,d.count(-1,eps))
12915 d=DataArrayDouble([2,1,-2,-3,2,0,eps/10,7,2+eps/10,-2,3,0])
12916 self.assertEqual(12,d.getNumberOfTuples())
12917 self.assertEqual(1,d.getNumberOfComponents())
12918 self.assertEqual(3,d.count(0,eps))
12919 self.assertEqual(1,d.count(1,eps))
12920 self.assertEqual(0,d.count(-1,eps))
12921 self.assertEqual(2,d.count(-2,eps))
12922 self.assertEqual(3,d.count(2,eps))
12923 self.assertEqual(3,d.count(2,eps))
12924 self.assertEqual(2,d.count(2,eps/100))
12925 e=d.getDifferentValues(eps)
12928 f.pushBackSilent(d.count(float(it),eps))
12930 self.assertEqual(12,f.accumulate()[0])
12933 def testSwig2DataArrayGetSlice1(self):
12935 self.assertEqual(DataArray.GetNumberOfItemGivenBESRelative(s),16)
12936 self.assertEqual(DataArray.GetNumberOfItemGivenBES(s),16)
12937 self.assertEqual(DataArray.GetSlice(s,0,4),slice(2,6,1))
12938 self.assertEqual(DataArray.GetSlice(s,1,4),slice(6,10,1))
12939 self.assertEqual(DataArray.GetSlice(s,2,4),slice(10,14,1))
12940 self.assertEqual(DataArray.GetSlice(s,3,4),slice(14,18,1))
12943 self.assertEqual(DataArray.GetNumberOfItemGivenBESRelative(s),8)
12944 self.assertEqual(DataArray.GetNumberOfItemGivenBES(s),8)
12945 self.assertEqual(DataArray.GetSlice(s,0,4),slice(2,6,2))
12946 self.assertEqual(DataArray.GetSlice(s,1,4),slice(6,10,2))
12947 self.assertEqual(DataArray.GetSlice(s,2,4),slice(10,14,2))
12948 self.assertEqual(DataArray.GetSlice(s,3,4),slice(14,18,2))
12951 self.assertEqual(DataArray.GetSlice(s,0,4),slice(1,5,1))
12952 self.assertEqual(DataArray.GetSlice(s,1,4),slice(5,9,1))
12953 self.assertEqual(DataArray.GetSlice(s,2,4),slice(9,13,1))
12954 self.assertEqual(DataArray.GetSlice(s,3,4),slice(13,18,1))# 18 not 17
12957 self.assertEqual(DataArray.GetNumberOfItemGivenBESRelative(s),9)
12958 self.assertEqual(DataArray.GetNumberOfItemGivenBES(s),9)
12959 self.assertEqual(DataArray.GetSlice(s,0,4),slice(1,5,2))
12960 self.assertEqual(DataArray.GetSlice(s,1,4),slice(5,9,2))
12961 self.assertEqual(DataArray.GetSlice(s,2,4),slice(9,13,2))
12962 self.assertEqual(DataArray.GetSlice(s,3,4),slice(13,18,2))# 18 not 17
12965 self.assertEqual(DataArray.GetSlice(s,0,4),slice(18,14,-1))
12966 self.assertEqual(DataArray.GetSlice(s,1,4),slice(14,10,-1))
12967 self.assertEqual(DataArray.GetSlice(s,2,4),slice(10,6,-1))
12968 self.assertEqual(DataArray.GetSlice(s,3,4),slice(6,2,-1))
12971 self.assertEqual(DataArray.GetSlice(s,0,4),slice(18,14,-2))
12972 self.assertEqual(DataArray.GetSlice(s,1,4),slice(14,10,-2))
12973 self.assertEqual(DataArray.GetSlice(s,2,4),slice(10,6,-2))
12974 self.assertEqual(DataArray.GetSlice(s,3,4),slice(6,2,-2))
12977 self.assertEqual(DataArray.GetSlice(s,0,4),slice(18,14,-1))
12978 self.assertEqual(DataArray.GetSlice(s,1,4),slice(14,10,-1))
12979 self.assertEqual(DataArray.GetSlice(s,2,4),slice(10,6,-1))
12980 self.assertEqual(DataArray.GetSlice(s,3,4),slice(6,1,-1))# 1 not 2
12983 self.assertEqual(DataArray.GetNumberOfItemGivenBESRelative(s),9)
12984 self.assertRaises(InterpKernelException,DataArray.GetNumberOfItemGivenBES,s)
12985 self.assertEqual(sum([DataArray.GetNumberOfItemGivenBESRelative(DataArray.GetSlice(s,i,4)) for i in xrange(4)]),DataArray.GetNumberOfItemGivenBESRelative(s))
12986 self.assertEqual(DataArray.GetSlice(s,0,4),slice(18,14,-2))
12987 self.assertEqual(DataArray.GetSlice(s,1,4),slice(14,10,-2))
12988 self.assertEqual(DataArray.GetSlice(s,2,4),slice(10,6,-2))
12989 self.assertEqual(DataArray.GetSlice(s,3,4),slice(6,1,-2))# 1 not 2
12990 self.assertRaises(InterpKernelException,DataArray.GetSlice,slice(0,None,2),0,4)
12992 d=DataArrayInt.Range(0,18,1)
12994 self.assertEqual(d.getNumberOfItemGivenBES(s),16)
12995 self.assertEqual(d.getNumberOfItemGivenBESRelative(s),16)
12996 self.assertEqual(d.getSlice(s,0,4),slice(2,6,1))
12997 self.assertEqual(d.getSlice(s,1,4),slice(6,10,1))
12998 self.assertEqual(d.getSlice(s,2,4),slice(10,14,1))
12999 self.assertEqual(d.getSlice(s,3,4),slice(14,18,1))
13001 d=DataArrayInt.Range(0,18,1)
13003 self.assertEqual(d.getSlice(s,0,4),slice(2,5,1))
13004 self.assertEqual(d.getSlice(s,1,4),slice(5,8,1))
13005 self.assertEqual(d.getSlice(s,2,4),slice(8,11,1))
13006 self.assertEqual(d.getSlice(s,3,4),slice(11,16,1))
13008 d=DataArrayInt.Range(0,18,1)
13009 s=slice(None,None,1)
13010 self.assertEqual(d.getSlice(s,0,4),slice(0,4,1))
13011 self.assertEqual(d.getSlice(s,1,4),slice(4,8,1))
13012 self.assertEqual(d.getSlice(s,2,4),slice(8,12,1))
13013 self.assertEqual(d.getSlice(s,3,4),slice(12,18,1))
13015 d=DataArrayInt.Range(0,18,1)
13017 self.assertRaises(InterpKernelException,d.getNumberOfItemGivenBES,s)
13018 self.assertEqual(d.getNumberOfItemGivenBESRelative(s),8)
13019 self.assertEqual(d.getSlice(s,0,4),slice(17,13,-2))
13020 self.assertEqual(d.getSlice(s,1,4),slice(13,9,-2))
13021 self.assertEqual(d.getSlice(s,2,4),slice(9,5,-2))
13022 self.assertEqual(d.getSlice(s,3,4),slice(5,2,-2))
13025 def testSwig2AccumulatePerChunk1(self):
13026 arr=DataArrayDouble(11) ; arr.iota()
13027 m=MEDCouplingCMesh() ; m.setCoords(arr,arr)
13028 m=m.buildUnstructured()
13029 m0=m[::2] ; ids0=m0.simplexize(0) ; m1=m[1::2]
13030 m=MEDCouplingUMesh.MergeUMeshesOnSameCoords(m0,m1) ; m.setName("mesh")
13031 m.checkConsecutiveCellTypesForMEDFileFrmt()
13033 formula="7-sqrt((x-5.)*(x-5.)+(y-5.)*(y-5.))"
13034 f=MEDCouplingFieldDouble(ON_CELLS,ONE_TIME) ; f.setMesh(m)
13035 f.fillFromAnalytic(1,formula)
13036 f.setName("Field1") ; f.setTime(1.1,1,-1)
13040 arr2=DataArrayDouble(len(arr),2) ; arr2[:,0]=arr
13041 arr2=DataArrayDouble(len(arr),2) ; arr2[:,0]=arr ; arr2[:,1]=2*arr
13044 # here the compact code to obviously put field on cell to nodes
13045 rn,rni=f.getMesh().getReverseNodalConnectivity()
13046 arr2=f.getArray()[rn]
13047 arr4=arr2.accumulatePerChunck(rni)
13048 nbOfCellsSharingNodes=rni.deltaShiftIndex()
13049 arr4/=nbOfCellsSharingNodes.convertToDblArr()
13051 maxNbCSN=nbOfCellsSharingNodes.getMaxValue()[0]
13052 arr3=DataArrayDouble(f.getMesh().getNumberOfNodes(),f.getArray().getNumberOfComponents()) ; arr3[:]=0.
13053 for i in xrange(1,maxNbCSN+1):
13054 ids=nbOfCellsSharingNodes.getIdsEqual(i)
13058 rni2=rni[ids] ; rni2+=j
13059 arr3[ids]+=arr2[rni2]
13063 fNode=MEDCouplingFieldDouble(ON_NODES,ONE_TIME) ; fNode.setMesh(m)
13064 fNode.setName("Field1Node") ; fNode.setTime(1.1,1,-1)
13065 fNode.setArray(arr3) ; fNode.checkCoherency()
13066 self.assertTrue(arr3.isEqual(arr4,1e-12))
13068 d=DataArrayInt.Range(0,20,1)
13069 self.assertTrue(d.accumulatePerChunck([2,4,12]).isEqual(DataArrayInt([5,60])))
13071 a=DataArrayDouble(12) ; a.iota() ; a.rearrange(3)
13072 b=DataArrayDouble(12) ; b.iota(20) ; b.rearrange(3)
13073 ids=DataArrayInt([])
13074 self.assertEqual(len(a[ids]),0)
13075 self.assertEqual(len(b[ids]),0)
13076 a2=a.deepCpy() ; a2[ids]+=b[ids] ; self.assertTrue(a2.isEqual(a,1e-15))
13077 a2=a.deepCpy() ; a2[ids]*=b[ids] ; self.assertTrue(a2.isEqual(a,1e-15))
13078 a2=a.deepCpy() ; a2[ids]/=b[ids] ; self.assertTrue(a2.isEqual(a,1e-15))
13079 a2=a.deepCpy() ; a2[ids]-=b[ids] ; self.assertTrue(a2.isEqual(a,1e-15))
13082 def testSwig2CheckAndPreparePermutation1(self):
13083 a=DataArrayInt([10003,9999999,5,67])
13084 self.assertTrue(a.checkAndPreparePermutation().isEqual(DataArrayInt([2,3,0,1])))
13085 a=DataArrayInt([10003,-9999999,5,67])
13086 self.assertTrue(a.checkAndPreparePermutation().isEqual(DataArrayInt([3,0,1,2])))
13088 self.assertTrue(a.checkAndPreparePermutation().isEqual(DataArrayInt([])))
13091 self.assertTrue(a.isEqual(DataArrayInt([])))
13094 def testSwig21SGTUMesh1(self):
13095 m=MEDCoupling1GTUMesh.New("m",NORM_PENTA6)
13096 m.__repr__() ; m.__str__()
13097 self.assertTrue(isinstance(m,MEDCoupling1SGTUMesh))
13098 m.setCoords(DataArrayDouble(20,3))
13100 m.__repr__() ; m.__str__()
13101 m.insertNextCell([0,1,2,5,7,2])
13102 self.assertEqual(1,m.getNumberOfCells())
13103 self.assertTrue(DataArrayInt([6]).isEqual(m.computeNbOfNodesPerCell()))
13104 self.assertTrue(DataArrayInt([5]).isEqual(m.computeNbOfFacesPerCell()))
13105 m.__repr__() ; m.__str__()
13107 m.checkCoherency2()
13109 cm=MEDCouplingCMesh() ; cm.setName("m")
13110 arr0=DataArrayDouble(6) ; arr0.iota()
13111 arr1=DataArrayDouble([0,1])
13112 cm.setCoords(arr0,arr1,arr1) ; um=cm.buildUnstructured()
13114 m=MEDCoupling1SGTUMesh("m",NORM_QUAD4)
13115 mem_m=m.getHeapMemorySize()
13117 self.assertIn(m.getHeapMemorySize()-mem_m,xrange(5*4*4,5*4*4+32))
13118 self.assertEqual(m.getNodalConnectivity().getNbOfElemAllocated(),20)
13119 m.setCoords(um.getCoords())
13120 m.insertNextCell([1,0,6,7])
13121 self.assertEqual(1,m.getNumberOfCells())
13122 m.insertNextCell([2,1,7,8])
13123 m.insertNextCell([3,2,8,9])
13124 m.insertNextCell([4,3,9,10])
13125 m.insertNextCell([5,4,10,11])
13126 self.assertEqual(5,m.getNumberOfCells())
13127 self.assertRaises(InterpKernelException,m.insertNextCell,[0,6,7])
13128 self.assertRaises(InterpKernelException,m.insertNextCell,[0,6,7,1,2])
13129 self.assertEqual(m.getNodalConnectivity().getNbOfElemAllocated(),20)
13130 f=m.getMeasureField(ON_CELLS)
13131 self.assertEqual(f.getMesh().getHiddenCppPointer(),m.getHiddenCppPointer())
13132 self.assertTrue(f.getArray().isUniform(1,1e-14))
13133 self.assertEqual(m.getType(),10)
13134 self.assertEqual(m.getCellModelEnum(),NORM_QUAD4)
13135 mo=MEDCoupling1SGTUMesh("m",NORM_QUAD4) ; mo.setCoords(m.getCoords())
13136 mo.setNodalConnectivity(DataArrayInt([1,0,6,7,2,1,7,8,3,2,8,9,4,3,9,10,5,4,10,11]))
13137 self.assertTrue(m.isEqual(mo,1e-12))
13139 mo2=MEDCoupling1SGTUMesh.Merge1SGTUMeshesOnSameCoords([m[[0,1]],m[[2]],m[[3,4]]])
13140 mo2.setName(m.getName())
13141 self.assertTrue(m.isEqual(mo2,1e-12))
13143 mp0=m[[0]] ; mp0.zipCoords() ; mp1=m[2] ; mp1.zipCoords() ; mp2=m[4] ; mp2.zipCoords()
13144 mo3=MEDCoupling1SGTUMesh.Merge1SGTUMeshes([mp0,mp1,mp2])
13145 self.assertTrue(isinstance(mo3,MEDCoupling1SGTUMesh))
13146 mo3.setName(m.getName())
13147 m_ref=m[(0,2,4)] ; m_ref.zipCoords()
13148 m_ref.tryToShareSameCoordsPermute(mo3,1e-12)
13149 self.assertTrue(m_ref.isEqual(mo3,1e-12))
13151 m1=um.buildDescendingConnectivity()[0]
13152 ids=m1.getCellIdsFullyIncludedInNodeIds(DataArrayInt.Range(0,12,1))
13154 m1c=m1.convertIntoSingleGeoTypeMesh()
13155 self.assertTrue(isinstance(m1c,MEDCoupling1SGTUMesh))
13156 self.assertEqual(m1c.getCoords().getHiddenCppPointer(),m.getCoords().getHiddenCppPointer())
13157 m1c.checkCoherency2()
13158 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])))
13159 self.assertEqual(20,m1c.getNodalConnectivityLength())
13160 self.assertTrue(m.isEqual(m1c,1e-12))
13161 m.getNodalConnectivity().setIJ(1,0,1)
13162 self.assertTrue(not m.isEqual(m1c,1e-12))
13163 m.getNodalConnectivity().setIJ(1,0,0)
13164 self.assertTrue(m.isEqual(m1c,1e-12))
13165 m1c.setCoords(m.getCoords().deepCpy())
13166 self.assertTrue(m.isEqual(m1c,1e-12))
13167 m1c.getCoords().setIJ(0,1,0.1)
13168 self.assertTrue(not m.isEqual(m1c,1e-12))
13169 m1c.getCoords().setIJ(0,1,0)
13170 self.assertTrue(m.isEqual(m1c,1e-12))
13171 m1c.getCoords().setInfoOnComponent(1,"X")
13172 self.assertTrue(not m.isEqual(m1c,1e-12) and m.isEqualWithoutConsideringStr(m1c,1e-12))
13173 m.getCoords().setInfoOnComponent(1,"X")
13174 self.assertTrue(m.isEqual(m1c,1e-12) and m.isEqualWithoutConsideringStr(m1c,1e-12))
13176 self.assertTrue(not m.isEqual(m1c,1e-12) and m.isEqualWithoutConsideringStr(m1c,1e-12))
13178 m.checkCoherency() ; m.checkCoherency1() ; m.checkCoherency2()
13179 self.assertEqual(m.getMeshDimension(),2)
13180 self.assertTrue(m.giveCellsWithType(NORM_QUAD4).isEqual(DataArrayInt([0,1,2,3,4])))
13181 self.assertTrue(m.giveCellsWithType(NORM_TRI3).isEqual(DataArrayInt([])))
13182 self.assertEqual(m.getNumberOfCellsWithType(NORM_QUAD4),5)
13183 self.assertEqual(m.getNumberOfCellsWithType(NORM_TRI3),0)
13184 self.assertEqual(m.getTypeOfCell(3),NORM_QUAD4)
13185 self.assertRaises(InterpKernelException,m.getTypeOfCell,5)
13186 self.assertEqual(m.getAllGeoTypes(),[NORM_QUAD4])
13187 self.assertEqual(m.getDistributionOfTypes(),[[NORM_QUAD4,5,-1]])
13189 pfl1=DataArrayInt([1,3,4])
13190 a,b,c=m.splitProfilePerType(pfl1)
13191 d,e,f=m.buildUnstructured().splitProfilePerType(pfl1)
13192 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())
13193 self.assertTrue(a==d and len(b)==1 and b[0].isEqual(e[0]) and len(c)==1 and c[0].isEqual(f[0]))
13195 pfl2=DataArrayInt([0,1,2,3])
13196 a,b,c=m.splitProfilePerType(pfl2)
13197 d,e,f=m.buildUnstructured().splitProfilePerType(pfl2)
13198 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())
13199 self.assertTrue(a==d and len(b)==1 and b[0].isEqual(e[0]) and len(c)==1 and c[0].isEqual(f[0]))
13201 pfl3=DataArrayInt([0,1,2,3,4])
13202 a,b,c=m.splitProfilePerType(pfl3)
13203 d,e,f=m.buildUnstructured().splitProfilePerType(pfl3)
13204 self.assertTrue(a==[[4,5,-1]] and len(b)==1 and b[0].isEqual(DataArrayInt([0,1,2,3,4])) and c==[])
13205 self.assertTrue(a==d and len(b)==1 and b[0].isEqual(e[0]) and c==[])
13207 invalidPfl=DataArrayInt([1,2,3,4,5])
13208 self.assertRaises(InterpKernelException,m.splitProfilePerType,invalidPfl)
13209 self.assertRaises(InterpKernelException,m.buildUnstructured().splitProfilePerType,invalidPfl)
13211 pfl1=DataArrayInt([1,2,3])
13212 a=m.checkTypeConsistencyAndContig([NORM_QUAD4,3,0],[pfl1])
13213 b=m.buildUnstructured().checkTypeConsistencyAndContig([NORM_QUAD4,3,0],[pfl1])
13214 self.assertTrue(a.isEqual(b) and pfl1.getHiddenCppPointer(),a.getHiddenCppPointer())
13216 pfl2=DataArrayInt([0,1,2,3])
13217 a=m.checkTypeConsistencyAndContig([NORM_QUAD4,4,0],[pfl2])
13218 b=m.buildUnstructured().checkTypeConsistencyAndContig([NORM_QUAD4,4,0],[pfl2])
13219 self.assertTrue(a.isEqual(b) and pfl2.getHiddenCppPointer()==a.getHiddenCppPointer())
13221 pfl3=DataArrayInt([0,1,2,3,4])
13222 a=m.checkTypeConsistencyAndContig([NORM_QUAD4,4,0],[pfl3])
13223 b=m.buildUnstructured().checkTypeConsistencyAndContig([NORM_QUAD4,5,0],[pfl3])
13224 self.assertTrue(a.isEqual(b) and pfl3.getHiddenCppPointer()==a.getHiddenCppPointer())
13226 invalidPfl=DataArrayInt([1,2,3,4,5])
13227 self.assertRaises(InterpKernelException,m.checkTypeConsistencyAndContig,[NORM_QUAD4,5,0],[invalidPfl])
13228 self.assertRaises(InterpKernelException,m.buildUnstructured().checkTypeConsistencyAndContig,[NORM_QUAD4,5,0],[invalidPfl])
13230 self.assertTrue(DataArrayInt([4,4,4,4,4]).isEqual(m.computeNbOfNodesPerCell()))
13232 self.assertEqual(m.getNodeIdsOfCell(1),[2,1,7,8])
13234 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))
13236 ref=m.getCoords().getHiddenCppPointer()
13237 mcpy=m.deepCpy() ; mcpy.insertNextCell([1,0,6,7])
13238 c=m.getNodalConnectivity().deepCpy()
13239 o2n=DataArrayInt([2,0,1,4,3])
13240 m.renumberCells(o2n,False)
13241 c.rearrange(4) ; c.renumberInPlace(o2n) ; c.rearrange(1)
13242 self.assertTrue(c.isEqual(m.getNodalConnectivity()))
13243 self.assertEqual(ref,m.getCoords().getHiddenCppPointer())
13244 m2=mcpy.mergeMyselfWith(m)
13245 self.assertTrue(isinstance(m2,MEDCoupling1SGTUMesh))
13246 self.assertEqual(11,m2.getNumberOfCells())
13247 self.assertEqual(48,m2.getNumberOfNodes())
13248 self.assertTrue(m2.getCoords().isEqual(DataArrayDouble.Aggregate([m.getCoords(),m.getCoords()]),1e-12))
13249 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])))
13251 mu=m.buildUnstructured()
13252 mu.checkCoherency2()
13253 self.assertEqual(mu.getCoords().getHiddenCppPointer(),m.getCoords().getHiddenCppPointer())
13254 self.assertEqual(2,mu.getMeshDimension())
13255 self.assertEqual([NORM_QUAD4],mu.getAllGeoTypes())
13256 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])))
13257 self.assertTrue(mu.getNodalConnectivityIndex().isEqual(DataArrayInt([0,5,10,15,20,25])))
13260 mcpy2=m.deepCpy() ; umcpy2=mcpy2.buildUnstructured()
13261 ids=mcpy2.simplexize(typ) ; ids2=umcpy2.simplexize(typ)
13262 self.assertTrue(ids.isEqual(ids2))
13263 mcpy3=umcpy2.convertIntoSingleGeoTypeMesh()
13264 self.assertTrue(mcpy2.isEqual(mcpy3,1e-14))
13266 um1=um.convertIntoSingleGeoTypeMesh()
13267 self.assertEqual(8,um1.getNumberOfNodesPerCell())
13268 for typ in [PLANAR_FACE_5,PLANAR_FACE_6]:
13269 mcpy2=um1.deepCpy() ; umcpy2=mcpy2.buildUnstructured()
13270 ids=mcpy2.simplexize(typ) ; ids2=umcpy2.simplexize(typ)
13271 self.assertTrue(ids.isEqual(ids2))
13272 mcpy3=umcpy2.convertIntoSingleGeoTypeMesh()
13273 self.assertTrue(mcpy2.isEqual(mcpy3,1e-14))
13276 self.assertRaises(InterpKernelException,mcpy.mergeMyselfWithOnSameCoords,m)
13277 mcpy.tryToShareSameCoords(m,1e-14)
13278 m3=mcpy.mergeMyselfWithOnSameCoords(m)
13279 self.assertTrue(isinstance(m3,MEDCoupling1SGTUMesh))
13280 self.assertEqual(11,m3.getNumberOfCells())
13281 self.assertEqual(24,m3.getNumberOfNodes())
13282 self.assertEqual(m3.getCoords().getHiddenCppPointer(),mcpy.getCoords().getHiddenCppPointer())
13283 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])))
13285 ref=mcpy.getCoords().deepCpy()
13286 c3=mcpy.getNodalConnectivity()[:]
13287 mcpy.getNodalConnectivity().setIJ(int(c3.getIdsEqual(11)),0,24)
13288 c2=DataArrayDouble.Aggregate([mcpy.getCoords(),mcpy.getCoords()[11:]])
13290 mcpy.checkCoherency2()
13291 a,b=mcpy.getNodeIdsInUse()
13292 self.assertEqual(12,b)
13293 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])))
13294 ids=mcpy.zipCoordsTraducer()
13295 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])))
13296 self.assertTrue(mcpy.getCoords().isEqual(ref[:12],1e-12))
13297 self.assertTrue(mcpy.getNodalConnectivity().isEqual(c3))
13298 mcpy.checkCoherency2()
13300 m4=mcpy[DataArrayInt([0,3,4])]
13301 m5=mcpy.buildPartOfMySelfKeepCoords(DataArrayInt([0,3,4]))
13302 self.assertTrue(isinstance(m4,MEDCoupling1SGTUMesh))
13303 self.assertTrue(m4.isEqual(m5,-1e-14))# < 0 not a bug it proves that coordinates pointer are equal
13304 self.assertTrue(m4.getNodalConnectivity().isEqual(DataArrayInt([1,0,6,7,4,3,9,10,5,4,10,11])))
13306 self.assertTrue(isinstance(m6,MEDCoupling1SGTUMesh))
13307 self.assertTrue(m6.getNodalConnectivity().isEqual(DataArrayInt([1,0,6,7,3,2,8,9,5,4,10,11])))
13309 mcpy.setCoords(DataArrayDouble.Aggregate([mcpy.getCoords(),mcpy.getCoords()]))
13310 mcpy.checkCoherency2()
13312 mcppy=mcpy.deepCpyConnectivityOnly()
13313 self.assertTrue(mcppy.isEqual(mcpy,1e-12))
13314 self.assertTrue(mcppy.getCoords().getHiddenCppPointer()==mcpy.getCoords().getHiddenCppPointer())
13315 self.assertTrue(mcppy.getNodalConnectivity().isEqual(mcpy.getNodalConnectivity()))
13316 self.assertTrue(mcppy.getNodalConnectivity().getHiddenCppPointer()!=mcpy.getNodalConnectivity().getHiddenCppPointer())
13318 a,b=mcpy.getReverseNodalConnectivity()
13319 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])))
13320 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])))
13321 self.assertTrue(mcpy.fillCellIdsToKeepFromNodeIds([0,1,6,7],False).isEqual(DataArrayInt([0,1,5])))
13322 self.assertTrue(mcpy.fillCellIdsToKeepFromNodeIds([0,1,6,7],True).isEqual(DataArrayInt([0,5])))
13323 self.assertTrue(mcpy.getCellsInBoundingBox([(0,1),(0,1),(0,1)],1e-12).isEqual(DataArrayInt([0,1,5])))
13324 f=mcpy.buildOrthogonalField()
13325 self.assertEqual(f.getMesh().getHiddenCppPointer(),mcpy.getHiddenCppPointer())
13326 self.assertTrue(f.getArray().isEqual(DataArrayDouble(6*[(0,0,-1)]),1e-12))
13327 mcpy.changeSpaceDimension(2)
13328 self.assertEqual(1,mcpy.getCellContainingPoint([1.5,0.5],1e-12))
13330 self.assertTrue(mcpy.fillCellIdsToKeepFromNodeIds(DataArrayInt([6,7]),False).isEqual(DataArrayInt([0,1,5])))
13332 mcpy2=mcpy.deepCpy()
13333 self.assertEqual([None,None],mcpy.checkGeoEquivalWith(mcpy2,1,1e-12))#fast equal
13334 mcpy.checkFastEquivalWith(mcpy2,1e-12)
13335 mcpy2.renumberCells([0,2,4,3,1,5])
13336 mcpy.checkFastEquivalWith(mcpy2,1e-12)
13337 self.assertEqual([None,None],mcpy.checkGeoEquivalWith(mcpy2,1,1e-12))#fast equal
13338 mcpy2.renumberCells([0,2,4,3,1,5])
13339 mcpy2.renumberCells([1,3,5,0,2,4])
13340 self.assertRaises(InterpKernelException,mcpy.checkFastEquivalWith,mcpy2,1e-12)
13341 self.assertRaises(InterpKernelException,mcpy.checkGeoEquivalWith,mcpy2,1,1e-12)#fast equal
13344 def testSwig21DGTUMesh1(self):
13345 a0=DataArrayInt([0,2,3,5,6,8])
13346 a1=DataArrayInt([0,4,7,11,14,18,21,25])
13347 a2=DataArrayInt([0,1,4,5])
13348 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])))
13349 self.assertEqual(a1[3:].front(),11)
13350 self.assertEqual(a1[4:].convertToDblArr().front(),14.)
13351 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])
13352 d,e=MEDCouplingUMesh.ExtractFromIndexedArrays2(1,5,2,a1c,a1)
13353 self.assertTrue(d.isEqual(DataArrayInt([8,11,0,1,5,2])))
13354 self.assertTrue(e.isEqual(DataArrayInt([0,3,6])))
13356 m=MEDCouplingDataForTest.build2DTargetMesh_1()[0,3,4]
13357 ref=DataArrayInt([0,3,4,1,6,7,4,3,7,8,5,4])
13358 self.assertTrue(m.convertNodalConnectivityToStaticGeoTypeMesh().isEqual(ref))
13359 d,e=m.convertNodalConnectivityToDynamicGeoTypeMesh()
13360 self.assertTrue(d.isEqual(ref))
13361 self.assertTrue(e.isEqual(DataArrayInt.Range(0,13,4)))
13362 self.assertTrue(m.fillCellIdsToKeepFromNodeIds(DataArrayInt([6,7]),False).isEqual(DataArrayInt([1,2])))
13364 m=MEDCoupling1GTUMesh.New("m",NORM_POLYHED)
13365 self.assertTrue(isinstance(m,MEDCoupling1DGTUMesh))
13366 m.__repr__() ; m.__str__()
13367 m.setCoords(DataArrayDouble(20,3))
13369 m.__repr__() ; m.__str__()
13370 m.insertNextCell([0,1,2,5,7,2,-1,1,3])
13371 self.assertEqual(1,m.getNumberOfCells())
13372 self.assertTrue(DataArrayInt([8]).isEqual(m.computeNbOfNodesPerCell()))
13373 self.assertTrue(DataArrayInt([2]).isEqual(m.computeNbOfFacesPerCell()))
13374 m.__repr__() ; m.__str__()
13376 m.checkCoherency2()
13378 cm=MEDCouplingCMesh() ; cm.setName("m")
13379 arr0=DataArrayDouble(6) ; arr0.iota()
13380 arr1=DataArrayDouble([0,1])
13381 cm.setCoords(arr0,arr1,arr1) ; um=cm.buildUnstructured() ; um.convertAllToPoly()
13382 um2=um.deepCpyConnectivityOnly()
13383 self.assertTrue(um2.isEqual(um,1e-12))
13384 self.assertEqual(um2.getCoords().getHiddenCppPointer(),um.getCoords().getHiddenCppPointer())
13385 self.assertTrue(um2.getNodalConnectivity().isEqual(um.getNodalConnectivity()))
13386 self.assertTrue(um2.getNodalConnectivity().getHiddenCppPointer()!=um.getNodalConnectivity().getHiddenCppPointer())
13387 self.assertTrue(um2.getNodalConnectivityIndex().isEqual(um.getNodalConnectivityIndex()))
13388 self.assertTrue(um2.getNodalConnectivityIndex().getHiddenCppPointer()!=um.getNodalConnectivityIndex().getHiddenCppPointer())
13390 self.assertRaises(InterpKernelException,MEDCoupling1SGTUMesh.New,"m",NORM_POLYHED)
13391 m=MEDCoupling1DGTUMesh("m",NORM_POLYHED)
13393 self.assertEqual(15,m.getNodalConnectivity().getNbOfElemAllocated())
13394 self.assertEqual(6,m.getNodalConnectivityIndex().getNbOfElemAllocated())
13395 m.setCoords(um.getCoords())
13396 m.insertNextCell([1,0,6,7,-1,7,6,1])
13397 self.assertEqual(1,m.getNumberOfCells())
13398 m.insertNextCell([2,1,7,8,-1,2,1,-1,8,-1,7])
13399 m.insertNextCell([3,2,8,9])
13400 m.insertNextCell([4,3,9,10,-1,5,3,9])
13401 m.insertNextCell([5,4,10,11,-1,11,10,-1,5])
13403 m.checkCoherency2()
13404 self.assertEqual(5,m.getNumberOfCells())
13405 self.assertTrue(m.getNodalConnectivityIndex().isEqual(DataArrayInt([0,8,19,23,31,40])))
13406 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])))
13409 self.assertTrue(m.isEqual(m4,1e-12))
13410 m4.getNodalConnectivity().setIJ(2,0,5)
13411 self.assertTrue(not m.isEqual(m4,1e-12))
13412 m4.getNodalConnectivity().setIJ(2,0,6)
13413 self.assertTrue(m.isEqual(m4,1e-12))
13414 m4.getNodalConnectivityIndex().setIJ(2,0,21)
13415 self.assertTrue(not m.isEqual(m4,1e-12))
13416 m4.getNodalConnectivityIndex().setIJ(2,0,19)
13417 self.assertTrue(m.isEqual(m4,1e-12))
13418 m4.getCoords().setIJ(10,1,1.1)
13419 self.assertTrue(not m.isEqual(m4,1e-12))
13420 m4.getCoords().setIJ(10,1,1.)
13421 self.assertTrue(m.isEqual(m4,1e-12))
13422 m4.getNodalConnectivity().pushBackSilent(7)
13423 self.assertTrue(not m.isEqual(m4,1e-12))
13424 self.assertEqual(7,m4.getNodalConnectivity().popBackSilent())
13425 self.assertTrue(m.isEqual(m4,1e-12))
13427 self.assertTrue(not m.isEqual(m4,1e-12))
13429 self.assertTrue(m.isEqual(m4,1e-12))
13431 self.assertEqual(6,m.getNodalConnectivityIndex().getNbOfElemAllocated())
13432 self.assertEqual(60,m.getNodalConnectivity().getNbOfElemAllocated())
13433 self.assertTrue(m.computeNbOfNodesPerCell().isEqual(DataArrayInt([7,8,4,7,7])))
13434 self.assertTrue(m.computeNbOfFacesPerCell().isEqual(DataArrayInt([2,4,1,2,3])))
13435 self.assertEqual(m.getNodeIdsOfCell(1),[2,1,7,8,-1,2,1,-1,8,-1,7])
13436 f=m.computeIsoBarycenterOfNodesPerCell()
13437 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))
13438 mu0=m.buildUnstructured()
13441 m3=m.deepCpyConnectivityOnly()
13442 self.assertTrue(m3.isEqual(m,1e-12))
13443 self.assertEqual(m3.getCoords().getHiddenCppPointer(),m.getCoords().getHiddenCppPointer())
13444 self.assertTrue(m3.getNodalConnectivity().getHiddenCppPointer()!=m.getNodalConnectivity().getHiddenCppPointer())
13445 self.assertTrue(m3.getNodalConnectivity().isEqual(m.getNodalConnectivity()))
13446 self.assertTrue(m3.getNodalConnectivityIndex().getHiddenCppPointer()!=m.getNodalConnectivityIndex().getHiddenCppPointer())
13447 self.assertTrue(m3.getNodalConnectivityIndex().isEqual(m.getNodalConnectivityIndex()))
13448 m.renumberCells(o2n)
13449 mu0.renumberCells(o2n)
13450 self.assertTrue(mu0.isEqual(m.buildUnstructured(),1e-12))
13451 self.assertTrue(m.getNodalConnectivityIndex().isEqual(DataArrayInt([0,4,12,23,32,40])))
13452 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])))
13454 mcpy0=m.buildUnstructured()
13455 self.assertTrue(isinstance(mcpy0,MEDCouplingUMesh))
13456 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])))
13457 self.assertTrue(mcpy0.getNodalConnectivityIndex().isEqual(DataArrayInt([0,5,14,26,36,45])))
13458 self.assertEqual(mcpy0.getAllGeoTypes(),[NORM_POLYHED])
13459 mcpy0.checkCoherency()
13460 mcpy0.checkCoherency2()
13461 mcpy1=mcpy0.convertIntoSingleGeoTypeMesh()
13462 self.assertTrue(mcpy1.isEqual(m,1e-12))
13464 m_mrg=MEDCoupling1DGTUMesh.Merge1DGTUMeshes([m2,m,m2])
13465 self.assertTrue(m_mrg.getNodalConnectivityIndex().isEqual(DataArrayInt([0,8,19,23,31,40,44,52,63,72,80,88,99,103,111,120])))
13466 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])))
13467 m_mrg2=MEDCoupling1DGTUMesh.Merge1DGTUMeshesOnSameCoords([m3,m,m3])
13468 self.assertTrue(m_mrg2.getNodalConnectivityIndex().isEqual(DataArrayInt([0,8,19,23,31,40,44,52,63,72,80,88,99,103,111,120])))
13469 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])))
13470 a,b=m_mrg2.getReverseNodalConnectivity()
13471 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])))
13472 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])))
13473 self.assertTrue(m_mrg2.fillCellIdsToKeepFromNodeIds([7],False).isEqual(DataArrayInt([0,1,6,7,10,11])))
13474 self.assertTrue(m_mrg2.fillCellIdsToKeepFromNodeIds([0,1,6,7],True).isEqual(DataArrayInt([0,6,10])))
13476 self.assertTrue(m_mrg2.isPacked())
13477 self.assertEqual(120,m_mrg2.getNodalConnectivityIndex().popBackSilent())
13478 self.assertEqual(m_mrg2.getNumberOfCells(),14)
13479 m_mrg2.checkCoherency2()
13480 self.assertTrue(not m_mrg2.isPacked())
13481 m_mrg4,b=m_mrg2.copyWithNodalConnectivityPacked()
13482 self.assertTrue(not b)
13483 m_mrg4.checkCoherency2()
13484 self.assertEqual(m_mrg4.getNumberOfCells(),14)
13485 self.assertTrue(m_mrg4.getNodalConnectivityIndex().isEqual(m_mrg2.getNodalConnectivityIndex()))
13486 self.assertEqual(len(m_mrg4.getNodalConnectivity()),111)
13487 self.assertEqual(len(m_mrg2.getNodalConnectivity()),120)
13488 self.assertTrue(m_mrg4.getNodalConnectivity().isEqual(m_mrg2.getNodalConnectivity()[:111]))
13491 m1=m_mrg2[[5,6,7,8,9]]
13493 self.assertTrue(m1.isEqualWithoutConsideringStr(m,1e-12))
13494 a,b=m.checkGeoEquivalWith(m0,12,1e-12)
13495 self.assertTrue(a.isEqual(DataArrayInt(o2n)))
13496 self.assertTrue(b is None)
13499 def testSwig2DADAreIncludedInMe1(self):
13500 a=DataArrayDouble(30) ; a.iota() ; a.rearrange(3)
13501 p=DataArrayInt([5,2,1,9])
13502 b,c=a.areIncludedInMe(a[p],1e-12)
13504 self.assertTrue(c.isEqual(p))
13507 b,c=a.areIncludedInMe(d,1e-12)
13508 self.assertTrue(not b)
13509 self.assertTrue(c.isEqual(DataArrayInt([5,2,1,10])))
13512 def testSwig2DADesallocate1(self):
13513 d=DataArrayDouble([(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*8)
13520 self.assertTrue(not d.isAllocated())
13521 self.assertEqual(d.getInfoOnComponents(),["aa","bbb"])
13522 self.assertRaises(InterpKernelException,d.checkAllocated)
13524 d=DataArrayInt([(1,2),(6,7),(6,8)]) ; d.setInfoOnComponents(["aa","bbb"])
13525 self.assertTrue(d.isAllocated())
13527 self.assertEqual(d.getInfoOnComponents(),["aa","bbb"])
13528 ref=d.getHeapMemorySize()
13530 self.assertEqual(ref-d.getHeapMemorySize(),6*4)
13531 self.assertTrue(not d.isAllocated())
13532 self.assertEqual(d.getInfoOnComponents(),["aa","bbb"])
13533 self.assertRaises(InterpKernelException,d.checkAllocated)
13536 def testSwig2IsPartStructured1(self):
13538 d10=DataArrayInt([2,3,4,5,6,7,8,9,10,11])
13539 a,b=MEDCouplingStructuredMesh.IsPartStructured(d10,[13])
13540 self.assertTrue(a) ; self.assertEqual(b,[(2,12)])
13541 d11=DataArrayInt([2,3,4,5,6,7,8,10,9,11])
13542 a,b=MEDCouplingStructuredMesh.IsPartStructured(d11,[13])
13543 self.assertTrue(not a)
13544 self.assertRaises(InterpKernelException,MEDCouplingStructuredMesh.IsPartStructured,d10,[11])
13547 d20=DataArrayInt([1,2,3,4,11,12,13,14,21,22,23,24])
13548 a,b=MEDCouplingStructuredMesh.IsPartStructured(d20,st)
13549 self.assertTrue(a) ; self.assertEqual(b,[(1,5),(0,3)])
13550 self.assertEqual(12,MEDCouplingStructuredMesh.DeduceNumberOfGivenRangeInCompactFrmt(b))
13551 self.assertEqual(0,MEDCouplingStructuredMesh.DeduceNumberOfGivenRangeInCompactFrmt([(1,5),(1,3),(2,2)]))
13552 self.assertEqual(0,MEDCouplingStructuredMesh.DeduceNumberOfGivenRangeInCompactFrmt([(5,5),(3,3),(2,2)]))
13553 self.assertEqual(36,MEDCouplingStructuredMesh.DeduceNumberOfGivenStructure([3,2,6]))
13554 self.assertEqual(126,MEDCouplingStructuredMesh.DeduceNumberOfGivenStructure((3,7,6)))
13555 d20=DataArrayInt([1,2,3,4,12,11,13,14,21,22,23,24])
13556 a,b=MEDCouplingStructuredMesh.IsPartStructured(d20,st)
13557 self.assertTrue(not a)
13558 d20=DataArrayInt([1,2,3,4,11,12,13,15,21,22,23,24])
13559 a,b=MEDCouplingStructuredMesh.IsPartStructured(d20,st)
13560 self.assertTrue(not a)
13561 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])
13562 a,b=MEDCouplingStructuredMesh.IsPartStructured(d21,st)
13563 self.assertTrue(a) ; self.assertEqual(b,[(0,10),(0,4)])
13564 d22=DataArrayInt([1,2,3,4,11,12,13,14,21,22,23,24,31,32,33,34,41,42,43,44])
13565 self.assertRaises(InterpKernelException,MEDCouplingStructuredMesh.IsPartStructured,d22,st)
13566 a,b=MEDCouplingStructuredMesh.IsPartStructured(d22,[10,5])
13567 self.assertTrue(a) ; self.assertEqual(b,[(1,5),(0,5)])
13569 d30=DataArrayInt([11,12,13,14,21,22,23,24,51,52,53,54,61,62,63,64])
13570 a,b=MEDCouplingStructuredMesh.IsPartStructured(d30,[10,4,2])
13571 self.assertTrue(a) ; self.assertEqual(b,[(1,5),(1,3),(0,2)])
13572 d31=DataArrayInt([11,12,13,14,21,22,24,23,51,52,53,54,61,62,63,64])
13573 a,b=MEDCouplingStructuredMesh.IsPartStructured(d31,[10,4,2])
13574 self.assertTrue(not a)
13575 self.assertRaises(InterpKernelException,MEDCouplingStructuredMesh.IsPartStructured,d30,[10,4,1])
13578 def testSwig2PartStructured1(self):
13579 c=MEDCouplingCMesh() ; c.setName("toto")
13580 arr0=DataArrayDouble(10); arr0.iota()
13581 arr1=DataArrayDouble(4) ; arr1.iota(3)
13582 c.setCoords(arr0,arr1)
13583 self.assertEqual(c.getNodeGridStructure(),(10,4))
13584 self.assertEqual(c.getCellGridStructure(),(9,3))
13585 d20=DataArrayInt([1,2,3,4,10,11,12,13,19,20,21,22])
13586 self.assertEqual(27,c.getNumberOfCells())
13587 self.assertEqual(40,c.getNumberOfNodes())
13588 self.assertEqual(2,c.getMeshDimension())
13591 arr2=MEDCouplingStructuredMesh.BuildExplicitIdsFrom([9,3],[(1,5),(0,3)])
13592 self.assertTrue(arr2.isEqual(DataArrayInt([1,2,3,4,10,11,12,13,19,20,21,22])))
13594 c2=c.buildStructuredSubPart([(1,5),(0,3)])
13595 c2.checkCoherency()
13596 self.assertTrue(isinstance(c2,MEDCouplingCMesh))
13597 self.assertEqual(12,c2.getNumberOfCells())
13598 self.assertEqual(20,c2.getNumberOfNodes())
13599 self.assertEqual(2,c2.getMeshDimension())
13600 self.assertEqual("toto",c2.getName())
13601 self.assertTrue(c2.getCoordsAt(0).isEqual(DataArrayDouble([1.,2.,3.,4.,5.]),1e-12))
13602 self.assertTrue(c2.getCoordsAt(1).isEqual(DataArrayDouble([3.,4.,5.,6.]),1e-12))
13604 a,b=c.buildPartAndReduceNodes(d20)
13606 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])
13607 self.assertTrue(exp2.isEqual(b))
13608 self.assertTrue(isinstance(a,MEDCouplingCMesh))
13609 self.assertTrue(a.buildUnstructured().isEqual(c.buildUnstructured().buildPartAndReduceNodes(d20)[0],1e-12))
13611 c2=MEDCouplingCurveLinearMesh() ; c2.setName("toto")
13612 c2.setCoords(c.buildUnstructured().getCoords())
13613 c2.setNodeGridStructure([10,4])
13614 c2.checkCoherency()
13615 a,b=c2.buildPartAndReduceNodes(d20)
13617 self.assertTrue(exp2.isEqual(b))
13618 self.assertTrue(isinstance(a,MEDCouplingCurveLinearMesh))
13619 self.assertTrue(a.buildUnstructured().isEqual(c2.buildUnstructured().buildPartAndReduceNodes(d20)[0],1e-12))
13622 def testSwig2FindPermutationFromFirstToSecond1(self):
13623 ids1=DataArrayInt([3,1,103,4,6,10,-7,205])
13624 ids2=DataArrayInt([-7,1,205,10,6,3,103,4])
13625 ids3=DataArrayInt.FindPermutationFromFirstToSecond(ids1,ids2)
13626 self.assertTrue(ids3.isEqual(DataArrayInt([5,1,6,7,4,3,0,2])))
13627 ids2ToTest=ids1.renumber(ids3)
13628 self.assertTrue(ids2ToTest.isEqual(ids2))
13629 self.assertRaises(InterpKernelException,DataArrayInt.FindPermutationFromFirstToSecond,DataArrayInt([3,1,103]),DataArrayInt([1,103]))
13630 self.assertRaises(InterpKernelException,DataArrayInt.FindPermutationFromFirstToSecond,DataArrayInt([3,1,103]),DataArrayInt([1,103,2]))
13631 self.assertRaises(InterpKernelException,DataArrayInt.FindPermutationFromFirstToSecond,DataArrayInt([3,1,103]),DataArrayInt([1,103,1]))
13632 self.assertTrue(DataArrayInt.FindPermutationFromFirstToSecond(DataArrayInt([]),DataArrayInt([])).empty())
13635 def testSwig2BugStructuredMeshGetNodeIdsOfCell1(self):
13636 m=MEDCouplingCMesh("mesh")
13637 coordsX=DataArrayDouble([0,1.1,2.2,3.3,4.4]) ; coordsX.setInfoOnComponents(["XX [m]"])
13638 coordsY=DataArrayDouble([0,1.7,3.4]) ; coordsY.setInfoOnComponents(["YYY [km]"])
13639 m.setCoords(coordsX,coordsY)
13640 self.assertEqual([2,3,8,7],m.getNodeIdsOfCell(2))
13641 self.assertEqual([3,4,9,8],m.getNodeIdsOfCell(3))
13642 self.assertEqual([7,8,13,12],m.getNodeIdsOfCell(6))
13643 self.assertEqual([8,9,14,13],m.getNodeIdsOfCell(7))
13646 def testSwig2ThrowOnDAIInvertN2O2ON2(self):
13647 p1=DataArrayInt([3,5,8])
13648 p2=DataArrayInt([0,3,4,5,6,7,8,9,10])
13649 p1.transformWithIndArr(p2.invertArrayN2O2O2N(11))
13650 self.assertTrue(p1.isEqual(DataArrayInt([1,3,6])))
13651 self.assertTrue(p2.invertArrayN2O2O2N(11).isEqual(DataArrayInt([0,-1,-1,1,2,3,4,5,6,7,8])))
13652 self.assertRaises(InterpKernelException,p2.invertArrayN2O2O2N,10)
13655 def testSwig2ComputeEffectiveNbOfNodesPerCell1(self):
13656 coords=DataArrayDouble([ 0.241310763507 , 0.0504777305619 , 0.0682283524903 , 0.252501053866 , -0.0625176732937 , 0.137272639894 ,
13657 0.152262663601 , 0.241816569527 , 0.133812556197 , 0.18047750211 , -0.0789949051358 , 0.339098173401 ,
13658 0.151741971857 , 0.238885278571 , 0.137715037333 , 0.242532155481 , -0.0928169086456 , 0.0678043417367 ,
13659 0.240941965335 , -0.015461491464 , 0.0617186345825 , 0.24127650112 , 0.0499427876717 , 0.0679634099148 ,
13660 -0.145828917428 , 0.206291632565 , 0.0310071927543 , 0.0125651775307 , 0.266262085828 , 0.105228430543 ,
13661 -0.0994066533286 , 0.233224271238 , 0.0572213839567 , -0.0951345338317 , 0.234819509426 , 0.0592126284538 ,
13662 0.136580574205 , -0.205486212579 , 0.0572866072014 , 0.0637270784978 , -0.168886355238 , 0.446614057077 ,
13663 0.041337157151 , -0.213402568198 , 0.372407095999 , 0.0411601970268 , -0.202387875756 , 0.411334979491 ,
13664 -0.108355701857 , 0.193636239335 , 0.204886756738 , 0.00639779029829 , 0.155296981517 , 0.252585892979 ,
13665 0.0262473111702 , -0.112919732543 , 0.424286639249 ,-0.224103052733 , -0.139430015438 , -0.0122352295701 ,
13666 -0.0312760589481 , -0.274272003594 , 0.0323959636568 , -0.166663422532 , -0.217754445175 , 0.00392109070364 ,
13667 -0.30586619777 , -0.0475168041091 , -0.0144585228182 , -0.280881480586 , 0.135571293538 , 0.00623923647986 ,
13668 -0.25548538234 , 0.156819217766 , 0.0645277879769 , -0.131567009284 , 0.184133752309 , 0.206021802753 ,
13669 -0.196204010965 , 0.151602971681 , 0.212974777736 , -0.183713879463 , 0.0802946639531 , 0.260115662599 ,
13670 -0.244241178767 , -0.0738873389604 , 0.144590565817 , -0.155804057829 , -0.164892720025 , 0.210613950558 ,
13671 -0.170950800428 , -0.215099334026 , 0.00610122860092 , -0.30552634869 , -0.0490020791904 , -0.0132786533145 ,
13672 0.271831011884 , 0.15105657296 , 0.0230534827908 , 0.281919192283 , 0.0898544306288 , -0.0625201489143 ,
13673 0.260240727276 , -0.0120688706637 , -0.0532316588626 , 0.244947737722 , 0.0197984684293 , 0.0309341209233 ,
13674 0.23439631578 , 0.229825279875 , 0.0508520585381 , 0.160921316875 , 0.265078502128 , 0.121716560626 ,
13675 -0.315088694175 , 0.0747700471918 , -0.245836615071 , -0.327728781776 , 0.0857114674649 , -0.239431905957 ,
13676 -0.308385460634 , 0.145142997084 , -0.149886828433 , 0.0488236045164 , 0.309462801914 , 0.0849169148265 ,
13677 -0.0244964803395 , 0.33145611751 , -0.0476415818061 , 0.0060567994229 , 0.32418412014 , 0.0367779543812 ,
13678 -0.0950221448063 , 0.236675326003 , 0.0572594453983 , 0.248723023186 , 0.0886648784791 , -0.176629430538 ,
13679 0.116796984 , 0.256596599567 , -0.292863523603 , 0.118024552914 , 0.229154257843 , -0.34233232501 ,
13680 0.217507892549 , -0.0417822335742 , -0.176771782888 , -0.224429321304 , 0.0125595300114 , -0.362064725588 ,
13681 0.0937301100955 , -0.0500824832657 , -0.299713548444 , -0.244162220397 , 0.0383853931293 , -0.389856984411 ,
13682 -0.0281989366102 , 0.097392811563 , -0.458244577284 , -0.385010847162 , 0.10122766194 , -0.140052859922 ,
13683 -0.377936358012 , 0.110875172128 , -0.176207095463 , 0.244483045556 , -0.0991073977045 , 0.0575134372934 ,
13684 0.262605120167 , -0.100243191645 , -0.0495620806935 , 0.240306880972 , -0.136153701579 , -0.114745281696 ,
13685 0.215763176129 , -0.0836766059189 , -0.183249640616 , 0.237870396603 , -0.132449578286 , -0.121598854639 ,
13686 -0.0637683083097 , -0.27921020214 , -0.149112321992 , -0.0856211014977 , -0.2973233473 , -0.0446878139589 ,
13687 0.104675342288 , -0.0625908305324 , -0.290346256534 , 0.0248264249186 , -0.247797708548 , -0.165830884019 ,
13688 0.0719302438309 , -0.178468260473 , -0.211432157345 , 0.142871843159 , -0.208769948542 , 0.0454101128246 ,
13689 0.167803379307 , -0.207851396623 , -0.088802726124 , 0.12868717152 , -0.230920439715 , 0.00760508389036 ,
13690 -0.0372812069535 , -0.286740286332 , 0.00963701291166 ], 69, 3)
13691 connN = [ #polyhedron 0
13692 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
13693 , 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
13694 , 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
13695 , 22 , 19 , 21 , 30 , 31 , -1 , 22 , 31 , 28 , 27 , 26 , 24 , 23 , -1 , 31 , 30 , 29 , 28,
13697 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
13698 , 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
13699 , 33 , 34 , 48 , 45 , -1 , 35 , 34 , 48 , 50 , 49 , 38 , -1 , 41 , 43 , 42 , 46 , 36 , 37 , -1 , 38 , 39 , 51 , 49 , -1
13700 , 39 , 40 , 42 , 46 , 47 , 52 , 51 , -1 , 45 , 47 , 52 , 50 , 48 , -1 , 52 , 51 , 49 , 50,
13702 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
13703 , 23 , 53 , 54 , 40 , 8 , -1 , 53 , 22 , 23 , -1 , 39 , 54 , 40,
13705 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
13706 , 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
13707 , 55 , 5 , 12 , 65 , -1 , 66 , 67 , 65 , 55 , 56 , 57 , -1 , 63 , 66 , 57 , 59 , 64 , -1 , 64 , 62 , 58 , 59 , -1
13708 , 60 , 63 , 66 , 67 , 68 , 61 , -1 , 61 , 68 , 20 , 21 , -1 , 67 , 68 , 20 , 12 , 65]
13709 meshN=MEDCouplingUMesh.New()
13710 meshN.setName("ForBary")
13711 meshN.setMeshDimension(3) ; meshN.setCoords(coords)
13712 meshN.allocateCells(4)
13713 meshN.insertNextCell(NORM_POLYHED,113,connN);
13714 meshN.insertNextCell(NORM_POLYHED,99,connN[113:])
13715 meshN.insertNextCell(NORM_POLYHED,43,connN[212:])
13716 meshN.insertNextCell(NORM_POLYHED,92,connN[255:])
13717 d=meshN.computeEffectiveNbOfNodesPerCell()
13718 e=meshN.computeNbOfNodesPerCell()
13719 self.assertTrue(d.isEqual(DataArrayInt([32,28,12,26])))
13720 self.assertTrue(e.isEqual(DataArrayInt([96,84,36,78])))
13721 m0=MEDCoupling1DGTUMesh(meshN)
13722 c=MEDCouplingCMesh()
13723 arr=DataArrayDouble(3) ; arr.iota(10)
13724 c.setCoords(arr,arr,arr)
13725 m10=c.buildUnstructured()
13726 m11=c.build1SGTUnstructured()
13727 m12=MEDCoupling1SGTUMesh.New(m10)
13728 self.assertTrue(m12.isEqual(m11,1e-12))
13729 m12.setCoords(m0.getCoords()) # m12 is not OK geometrically but the aim of the test is only connectivity values
13730 m3=MEDCoupling1GTUMesh.AggregateOnSameCoordsToUMesh([m12,m0])
13731 m3.checkCoherency()
13732 self.assertEqual(m3.getCoords().getHiddenCppPointer(),m12.getCoords().getHiddenCppPointer())
13733 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])))
13734 self.assertTrue(m3.getNodalConnectivityIndex().isEqual(DataArrayInt([0,9,18,27,36,45,54,63,72,186,286,330,423])))
13737 def testSwig2Tetrahedrize1(self):
13738 d=DataArrayInt([0,3,6,10,14,20])
13739 d2=d.buildExplicitArrOfSliceOnScaledArr(slice(0,5,2))
13740 self.assertTrue(d2.isEqual(DataArrayInt([0,0,0, 2,2,2,2, 4,4,4,4,4,4])))
13741 m=MEDCouplingUMesh("Penta6",3)
13742 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"])
13744 m.insertNextCell(NORM_PENTA6,[1,2,0,4,5,3])
13745 st=m.getCoords().getHiddenCppPointer()
13746 c,a,b=m.tetrahedrize(PLANAR_FACE_5)
13747 c.checkCoherency2()
13748 self.assertTrue(a.isEqual(DataArrayInt([0,0,0])))
13749 self.assertEqual(0,b)
13750 self.assertEqual(m.getCoords().getHiddenCppPointer(),c.getCoords().getHiddenCppPointer())
13751 self.assertTrue(c.getNodalConnectivity().isEqual(DataArrayInt([1,2,0,4,4,3,5,0,5,0,2,4])))
13754 m2=MEDCouplingUMesh("octa12",3)
13755 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)
13756 m2.setCoords(coords)
13758 m2.insertNextCell(NORM_HEXGP12,[3,2,1,0,5,4,9,8,7,6,11,10])
13759 c,a,b=m2.tetrahedrize(PLANAR_FACE_5)
13760 c.checkCoherency2()
13761 self.assertTrue(a.isEqual(DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,0])))
13762 self.assertEqual(0,b)
13763 self.assertEqual(c.getCoords().getHiddenCppPointer(),coords.getHiddenCppPointer())
13764 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])))
13767 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"])
13768 m3=MEDCouplingUMesh("hexa8",3)
13769 m3.setCoords(coords)
13770 m3.allocateCells(0)
13771 m3.insertNextCell(NORM_HEXA8,[3,2,1,0,7,6,5,4])
13772 st=m3.getCoords().getHiddenCppPointer()
13773 c,a,b=m3.tetrahedrize(PLANAR_FACE_5)
13774 c.checkCoherency2()
13775 a.isEqual(DataArrayInt([0,0,0,0,0]))
13776 self.assertEqual(0,b)
13777 self.assertEqual(m3.getCoords().getHiddenCppPointer(),coords.getHiddenCppPointer())
13778 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])))
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 c,a,b=m4.tetrahedrize(PLANAR_FACE_6)
13785 c.checkCoherency2()
13786 a.isEqual(DataArrayInt([0,0,0,0,0,0]))
13787 self.assertEqual(0,b)
13788 self.assertEqual(c.getCoords().getHiddenCppPointer(),coords.getHiddenCppPointer())
13789 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])))
13791 m4=MEDCouplingUMesh("hexa8",3)
13792 m4.setCoords(coords)
13793 m4.allocateCells(0)
13794 m4.insertNextCell(NORM_HEXA8,[3,2,1,0,7,6,5,4])
13795 st=m4.getCoords().getHiddenCppPointer()
13796 c,a,b=m4.tetrahedrize(GENERAL_24)
13797 c.checkCoherency2()
13798 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]))
13799 self.assertEqual(7,b)
13800 self.assertTrue(c.getCoords().getHiddenCppPointer()!=coords.getHiddenCppPointer())
13801 self.assertTrue(c.getCoords()[:8].isEqual(coords,0))
13802 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])))
13803 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)
13804 m4CoordsExp.setInfoOnComponents(["X","YY","ZZZ"])
13805 self.assertTrue(c.getCoords().isEqual(m4CoordsExp,1e-12))
13806 self.assertAlmostEqual(2.,c.getMeasureField(False).accumulate()[0],12)
13808 m6=MEDCouplingUMesh("hexa8",3)
13809 m6.setCoords(coords)
13810 m6.allocateCells(0)
13811 m6.insertNextCell(NORM_HEXA8,[3,2,1,0,7,6,5,4])
13812 st=m6.getCoords().getHiddenCppPointer()
13813 c,a,b=m6.tetrahedrize(GENERAL_48)
13814 c.checkCoherency2()
13815 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]))
13816 self.assertEqual(19,b)
13817 self.assertTrue(c.getCoords().getHiddenCppPointer()!=coords.getHiddenCppPointer())
13818 self.assertTrue(c.getCoords()[:8].isEqual(coords,0))
13819 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])))
13820 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)
13821 m6CoordsExp.setInfoOnComponents(["X","YY","ZZZ"])
13822 self.assertTrue(c.getCoords().isEqual(m6CoordsExp,1e-12))
13823 self.assertAlmostEqual(2.,c.getMeasureField(False).accumulate()[0],12)
13825 m7=MEDCouplingUMesh("polyhed",3)
13826 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"])
13827 m7.setCoords(coords)
13829 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])
13830 c,a,b=m7.tetrahedrize(PLANAR_FACE_5)
13831 c.checkCoherency2()
13832 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])))
13833 self.assertEqual(9,b)
13834 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])))
13835 self.assertAlmostEqual(5.196152422706635,c.getMeasureField(False).accumulate()[0],12)
13836 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)
13837 m7CoordsExp.setInfoOnComponents(["X","YY","ZZZ"])
13838 self.assertTrue(c.getCoords().isEqual(m7CoordsExp,1e-12))
13841 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"])
13842 m8=MEDCouplingUMesh("pyra5",3)
13843 m8.setCoords(coords)
13844 m8.allocateCells(0)
13845 m8.insertNextCell(NORM_PYRA5,[3,2,1,0,7])
13846 st=m8.getCoords().getHiddenCppPointer()
13847 c,a,b=m8.tetrahedrize(PLANAR_FACE_5)
13848 self.assertEqual(m8.getCoords().getHiddenCppPointer(),coords.getHiddenCppPointer())
13849 c.checkCoherency2()
13850 self.assertTrue(a.isEqual(DataArrayInt([0,0])))
13851 self.assertEqual(0,b)
13852 self.assertTrue(c.getNodalConnectivity().isEqual(DataArrayInt([3,2,1,7,3,1,0,7])))
13853 self.assertAlmostEqual(0.6666666666666667,c.getMeasureField(False).accumulate()[0],12)
13856 def testDualMesh3D1(self):
13857 arr=DataArrayDouble(2) ; arr.iota()
13858 c=MEDCouplingCMesh() ; c.setCoords(arr,arr,arr)
13859 m=c.buildUnstructured()
13860 t=m.tetrahedrize(PLANAR_FACE_5)[0]
13861 d=t.computeDualMesh()
13862 self.assertTrue(d.getNodalConnectivityIndex().isEqual(DataArrayInt([0,29,118,207,236,325,354,383,472])))
13863 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])))
13864 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))
13865 self.assertAlmostEqual(1.,d.getMeasureField(False).accumulate()[0],1e-13)
13868 def testDualMesh2D1(self):
13869 arr=DataArrayDouble(5) ; arr.iota()
13870 c=MEDCouplingCMesh() ; c.setCoords(arr,arr)
13871 m=c.buildUnstructured()
13873 t=MEDCoupling1SGTUMesh(m)
13874 d=t.computeDualMesh()
13875 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])))
13876 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])))
13877 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))
13878 self.assertAlmostEqual(16.,d.getMeasureField(False).accumulate()[0],1e-13)
13881 def testSwig2LoadBalanceBBox1(self):
13882 arr=DataArrayDouble(5) ; arr.iota()
13883 t=MEDCouplingCMesh() ; t.setCoords(arr,arr)
13884 arr=DataArrayDouble(16) ; arr.iota() ; arr*=2./15
13885 s=MEDCouplingCMesh() ; s.setCoords(arr,arr[:]) ; s.translate([2.,1.])
13887 s1=s.build1SGTUnstructured()
13888 t1=t.build1SGTUnstructured()
13889 w=MEDCouplingPointSet.ComputeNbOfInteractionsWithSrcCells(s1,t1,1e-12)
13890 wExp=DataArrayInt([0,0,0,0,0,0,64,64,0,0,64,64,0,0,0,0])
13891 self.assertTrue(w.isEqual(wExp))
13892 slcs=w.splitInBalancedSlices(4)
13893 self.assertEqual(len(slcs),4)
13894 self.assertEqual(slcs,[slice(0,7,1),slice(7,8,1),slice(8,11,1),slice(11,16,1)])
13895 bbs=s1.getBoundingBoxForBBTree()
13896 bbt=t1.getBoundingBoxForBBTree()
13897 self.assertTrue(bbt.computeNbOfInteractionsWith(bbs,1e-12).isEqual(wExp))
13900 def testKrSpatialDiscretization2(self):
13901 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)
13902 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)
13903 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)
13904 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])
13905 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])
13907 nbOfInputPoints=100;
13908 f=MEDCouplingFieldDouble.New(ON_NODES_KR,ONE_TIME);
13909 mesh=MEDCoupling1SGTUMesh.New("aMesh",NORM_POINT1);
13910 mesh.setCoords(srcPointCoordsXY);
13912 f.setArray(srcFieldValsOnPoints);
13913 f.checkCoherency();
13915 res0=f.getValueOn([-0.5,-0.5]);
13916 self.assertAlmostEqual(targetFieldValsExpected.getIJ(0,0),res0[0],10)
13918 valuesToTest=f.getValueOnMulti(targetPointCoordsXY);
13919 self.assertEqual(196,valuesToTest.getNumberOfTuples());
13920 self.assertEqual(1,valuesToTest.getNumberOfComponents());
13921 for i in xrange(40):
13922 self.assertAlmostEqual(targetFieldValsExpected[i],valuesToTest.getIJ(i,0),10)
13924 fd=f.getDiscretization()
13926 self.assertTrue(isinstance(fd,MEDCouplingFieldDiscretizationKriging))
13927 coeffs,isDrift=fd.computeVectorOfCoefficients(mesh,srcFieldValsOnPoints)
13928 self.assertEqual(3,isDrift)
13929 self.assertTrue(coeffsExpected.isEqual(coeffs,1e-8))
13931 pts3=[-0.5,-0.5,-0.5,-0.35,-0.35,-0.2]
13932 mesh.setCoords(srcPointCoordsXY[:4])
13933 m,nbCols=fd.computeEvaluationMatrixOnGivenPts(mesh,pts3)
13934 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))
13935 if MEDCouplingHasNumPyBindings():
13937 m0=m.toNumPyArray() ; m0=m0.reshape(3,nbCols) ; m0=np.matrix(m0)
13938 srcFieldValsOnPoints2=DataArrayDouble(4,2) ; srcFieldValsOnPoints2[:,0]=srcFieldValsOnPoints[:4] ; srcFieldValsOnPoints2[:,1]=2*srcFieldValsOnPoints[:4]
13939 n0=srcFieldValsOnPoints2.toNumPyArray() ; n0=n0.reshape(4,2) ; n0=np.matrix(n0)
13941 f=MEDCouplingFieldDouble.New(ON_NODES_KR,ONE_TIME) ; f.setMesh(mesh) ; f.setArray(srcFieldValsOnPoints2) ; f.checkCoherency()
13942 self.assertTrue(DataArrayDouble(np.array((m0*n0))).isEqual(f.getValueOnMulti(pts3),1e-14))
13947 # test the when input slice is all the same object is return by MEDCouplingMesh.buildPartRange
13948 def testSwig2MeshPartSlice1(self):
13949 a=DataArrayDouble(4) ; a.iota()
13950 c=MEDCouplingCMesh() ; c.setCoords(a,a) ; m=c.buildUnstructured()
13951 fc0=c.getMeasureField(False) ; fc1=fc0[:] ; fc2=fc0*fc1 ; fc2.setName(fc0.getName())
13952 self.assertEqual(fc0.getMesh().getHiddenCppPointer(),fc1.getMesh().getHiddenCppPointer())
13953 self.assertEqual(fc2.getMesh().getHiddenCppPointer(),fc1.getMesh().getHiddenCppPointer())
13954 self.assertTrue(fc2.isEqual(fc1,1e-12,1e-12))
13956 fm0=m.getMeasureField(False) ; fm1=fm0[:] ; fm2=fm0*fm1 ; fm2.setName(fm0.getName())
13957 self.assertEqual(fm0.getMesh().getHiddenCppPointer(),fm1.getMesh().getHiddenCppPointer())
13958 self.assertEqual(fm2.getMesh().getHiddenCppPointer(),fm1.getMesh().getHiddenCppPointer())
13959 self.assertTrue(fm2.isEqual(fm1,1e-12,1e-12))
13962 # test the correct behaviour when attempting to aggregate two fields whose mesh is null
13963 def testSwig2MergeFieldsOnFieldsHavingNoMesh(self):
13964 a=DataArrayDouble(4) ; a.iota() ; a*=1.5
13965 c=MEDCouplingCMesh() ; c.setCoords(a,a) ; f1=c.getMeasureField(False)
13966 f1.setMesh(None) ; f2=f1.deepCpy() ; f2*=2
13967 f3=MEDCouplingFieldDouble.MergeFields(f1,f2)
13968 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])
13969 self.assertTrue(f3.getArray().isEqual(daExp,1e-12))
13970 self.assertEqual(f3.getTypeOfField(),ON_CELLS)
13971 self.assertEqual(f3.getMesh(),None)
13972 f4=MEDCouplingFieldDouble.MergeFields([f1,f2])
13973 self.assertTrue(f4.getArray().isEqual(daExp,1e-12))
13974 self.assertEqual(f4.getTypeOfField(),ON_CELLS)
13975 self.assertEqual(f4.getMesh(),None)
13978 # test a simple node to cell convertion of a field
13979 def testSwig2NodeToCellDiscretization1(self):
13980 f=MEDCouplingFieldDouble(ON_NODES) ; f.setTime(1.1,2,3)
13981 a1=DataArrayDouble(4) ; a1.iota()
13982 a2=DataArrayDouble(3) ; a2.iota()
13983 m=MEDCouplingCMesh() ; m.setCoords(a1,a2)
13985 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]"])
13986 f.setArray(arr) ; f.setName("toto")
13988 f2=f.nodeToCellDiscretization()
13989 self.assertEqual(ON_CELLS,f2.getTypeOfField())
13990 self.assertEqual("toto",f2.getName())
13991 self.assertEqual([1.1,2,3],f2.getTime())
13992 self.assertEqual(["aa [km]","bbb [kJ]"],f2.getArray().getInfoOnComponents())
13993 self.assertEqual(6,f2.getArray().getNumberOfTuples())
13994 self.assertEqual(f.getMesh().getHiddenCppPointer(),f2.getMesh().getHiddenCppPointer())
13995 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]"])
13996 self.assertTrue(f2.getArray().isEqual(exp,1e-13))
13999 def testSwig2NonRegressionBugIntersectMeshes1(self):
14000 src=MEDCouplingUMesh("src",2)
14001 src.setCoords(DataArrayDouble([-2.5,-3,-2.5,3,2.5,3],3,2))
14002 src.allocateCells()
14003 src.insertNextCell(NORM_TRI3,[0,1,2])
14005 trg=MEDCouplingUMesh("trg",2)
14006 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))
14007 trg.allocateCells()
14008 trg.insertNextCell(NORM_QPOLYG,[2,1,0,5,3,7,8,6,4,9])
14010 a,b,c=MEDCouplingUMesh.Intersect2DMeshes(src,trg,1.0e-8)
14012 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))
14013 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])))
14014 self.assertTrue(a.getNodalConnectivityIndex().isEqual(DataArrayInt([0,9,20])))
14015 self.assertTrue(b.isEqual(DataArrayInt([0,0])))
14016 self.assertTrue(c.isEqual(DataArrayInt([0,-1])))
14019 def testSwig2MeshOrientCorrectly2DCells1(self):
14020 m=MEDCouplingUMesh("mesh",2)
14021 coo=DataArrayDouble([1.,0.,0.5,-0.1,0.,1.,0.,0.,0.07,0.5,0.59,0.5],6,2)
14024 m.insertNextCell(NORM_TRI6,[3,0,2,1,5,4])
14025 m.insertNextCell(NORM_QPOLYG,[3,0,2,1,5,4])
14026 self.assertTrue(DataArrayDouble([-0.58093333350930543,-0.58093333350930543]).isEqual(m.getMeasureField(False).getArray(),1e-12))
14027 m.changeSpaceDimension(3)
14028 m.orientCorrectly2DCells([0.,0.,-1.],False)
14031 self.assertTrue(m.getNodalConnectivity().isEqual(DataArrayInt([6,3,2,0,4,5,1, 32,3,2,0,4,5,1])))
14032 self.assertTrue(m.getNodalConnectivityIndex().isEqual(DataArrayInt([0,7,14])))
14033 m.changeSpaceDimension(2)
14034 self.assertTrue(DataArrayDouble([0.58093333350930543,0.58093333350930543]).isEqual(m.getMeasureField(False).getArray(),1e-12))
14037 def testSwig2Hexa8HavingFacesWarped1(self):
14038 """ 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
14039 intersected with src the sum of intersection volume is greater than the volume of the trg cell.
14040 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
14043 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)
14044 src=MEDCouplingUMesh("TBmesh3D",3) ; src.setCoords(srcCoo)
14045 src.allocateCells()
14046 src.insertNextCell(NORM_HEXA8,[0,1,4,3,8,9,12,11])
14047 src.insertNextCell(NORM_HEXA8,[1,2,5,4,9,10,13,12])
14048 src.insertNextCell(NORM_HEXA8,[4,5,7,6,12,13,15,14])
14049 src.insertNextCell(NORM_HEXA8,[8,9,12,11,16,17,20,19])
14050 src.insertNextCell(NORM_HEXA8,[9,10,13,12,17,18,21,20])
14051 src.checkCoherency2()
14052 # trg is useless here but I keep it in case of MEDCouplingRemapper were expected to do something about warped NORM_HEXA8
14053 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)
14054 trg=MEDCouplingUMesh("MESH",3) ; trg.setCoords(trgCoo)
14055 trg.allocateCells()
14056 trg.insertNextCell(NORM_HEXA8,[0,1,3,2,4,5,7,6])
14058 srcFace=src.buildDescendingConnectivity()[0]
14059 conn=MEDCoupling1SGTUMesh(srcFace).getNodalConnectivity() ; conn.rearrange(4)
14060 eqFaces=srcFace.computePlaneEquationOf3DFaces()
14062 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
14063 lambd=-e/(eqFaces[:,:3]**2).sumPerTuple()
14064 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
14065 shouldBeZero=(pts*eqFaces[:,:-1]).sumPerTuple()+eqFaces[:,3]# this line is useless only to be sure that pts are on the plane.
14066 check=(pts-srcFace.getCoords()[conn[:,nodeIdInCell]]).magnitude() # check contains the distance of the last point to its plane
14067 idsToTest=check.getIdsNotInRange(0.,1e-10)
14068 self.assertTrue(idsToTest.isEqual(DataArrayInt([17,18,19,20,22,23,24])))
14069 idsToTest2=idsToTest.getIdsNotInRange(18,22)
14070 self.assertTrue(idsToTest2.isEqual(DataArrayInt([0,4,5,6])))
14071 idsToTest2.rearrange(2)
14072 self.assertTrue(idsToTest2.sumPerTuple().isEqual(DataArrayInt([4,11])))
14075 def testSwig2SortHexa8EachOther1(self):
14077 testing MEDCoupling1SGTUMesh.sortHexa8EachOther method
14079 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)])
14080 m1=MEDCouplingUMesh("m1",3) ; m1.setCoords(coords1)
14081 m1.allocateCells() ; m1.insertNextCell(NORM_HEXA8,[7,1,3,0,6,4,2,5])
14082 m1.checkCoherency()
14084 m2=m1.deepCpy() ; m2.setName("m2")
14086 trs=[[0.,0.,-1.],[0.,0.,1.],[1.,0.,0.],[0.,-1.,0.],[-1.,0.,0.],[0.,1.,0.]]
14087 for i,t in enumerate(trs):
14088 for j in xrange(64):
14089 j2=(j//16) ; j1=((j%16)//4) ; j0=(j%4)
14091 m11.rotate([0.,0.,0.],[0.,0.,1.],float(j0)*pi/2)
14092 m11.rotate([0.,0.,0.],[0.,1.,0.],float(j1)*pi/2)
14093 m11.rotate([0.,0.,0.],[1.,0.,0.],float(j2)*pi/2)
14096 m=MEDCouplingUMesh.MergeUMeshes(m2,m11)
14097 m.mergeNodes(1e-12)
14098 self.assertEqual(12,m.getNumberOfNodes())
14099 m=MEDCoupling1SGTUMesh(m)
14100 m.sortHexa8EachOther()
14101 tmp0=m.buildUnstructured().tetrahedrize(PLANAR_FACE_6)[0].buildUnstructured()
14102 self.assertEqual(20,tmp0.computeSkin().getNumberOfCells())
14107 def testSwig2normMinComputeAbs1(self):
14108 d=DataArrayDouble([4,-5,2,6.1,-7.33,1,-1,3e2,0.07,-0.009,-6,-1e30],4,3)
14109 d.setInfoOnComponents(["XX [m]","YYY [km]","ABSJJ [MW]"])
14111 dExp=d.deepCpy() ; dExp.abs()
14112 self.assertTrue(dExp.isEqual(d0,1e-12))
14113 e=d0-DataArrayDouble([4,5,2,6.1,7.33,1,1,3e2,0.07,0.009,6,1e30],4,3)
14114 self.assertAlmostEqual(0.,e.normMin(),13)
14115 self.assertAlmostEqual(0.009,d.normMin(),13)
14117 di=DataArrayInt([3,-12,5,6,14,16,-23,100,23,-1,0,-6],4,3)
14118 di.setInfoOnComponents(["XX [m]","YYY [km]","ABSJJ [MW]"])
14119 d0i=di.computeAbs()
14120 diExp=di.deepCpy() ; diExp.abs()
14121 self.assertTrue(diExp.isEqual(d0i))
14122 self.assertEqual([3,12,5,6,14,16,23,100,23,1,0,6],d0i.getValues())
14125 def testSwig2GetCellsContainingPointsForNonConvexPolygon1(self):
14126 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)
14127 m=MEDCouplingUMesh("Intersect2D",2) ; m.setCoords(coo) ; m.allocateCells()
14128 m.insertNextCell(NORM_POLYGON,[6,3,4,5])
14129 m.insertNextCell(NORM_POLYGON,[4,0,1,2,6,5])
14130 m.checkCoherency2()
14132 self.assertTrue(m.getCellsContainingPoint((0.4,-0.4),1e-12).isEqual(DataArrayInt([0])))
14133 self.assertTrue(m.getCellsContainingPoint((-0.4,-0.4),1e-12).isEqual(DataArrayInt([1])))
14134 self.assertTrue(m.getCellsContainingPoint((0.,-0.4),1e-12).isEqual(DataArrayInt([0,1])))
14137 def testSwig2GetCellsContainingPointsForNonConvexPolygon2(self):
14138 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)
14139 m=MEDCouplingUMesh("mesh",2) ; m.setCoords(coo) ; m.allocateCells()
14140 m.insertNextCell(NORM_QPOLYG,[8,5,4,9])
14141 m.insertNextCell(NORM_QPOLYG,[5,8,4,10])
14142 m.insertNextCell(NORM_QPOLYG,[16,8,5,15,21,9,22,17])
14143 m.insertNextCell(NORM_QPOLYG,[15,1,2,3,16,20,6,7,19,17])
14144 m.insertNextCell(NORM_QPOLYG,[15,5,8,16,22,10,21,18])
14145 m.insertNextCell(NORM_QPOLYG,[16,3,0,1,15,19,11,12,20,18])
14146 m.checkCoherency2()
14147 self.assertTrue(m.getCellsContainingPoint([0.,0.27],1e-12).isEqual(DataArrayInt([2])))
14150 def testSwig2DAIGetIdsEqualTuple1(self):
14151 da=DataArrayInt([0,7,1,2,4,1,2,1,1,2,0,1,2,1,5,1,1,2],9,2)
14152 self.assertTrue(da.getIdsEqualTuple([1,2]).isEqual(DataArrayInt([1,4,8])))
14153 self.assertTrue(da.getIdsEqualTuple((1,2)).isEqual(DataArrayInt([1,4,8])))
14154 self.assertTrue(da.getIdsEqualTuple(DataArrayInt([1,2])).isEqual(DataArrayInt([1,4,8])))
14156 self.assertRaises(InterpKernelException,da.getIdsEqualTuple,[1,2])# mismatch nb of compo (3) and nb of elts in input tuple (2)
14157 self.assertTrue(da.getIdsEqualTuple([2,0,1]).isEqual(DataArrayInt([3])))
14158 self.assertTrue(da.getIdsEqualTuple([2,0,7]).isEqual(DataArrayInt([])))
14160 self.assertTrue(da.getIdsEqualTuple(2).isEqual(DataArrayInt([3,6,9,12,17])))
14161 self.assertTrue(da.getIdsEqualTuple(2).isEqual(da.getIdsEqual(2)))
14164 def testSwig2GaussNEStaticInfo1(self):
14165 self.assertTrue(DataArrayDouble(MEDCouplingFieldDiscretizationGaussNE.GetWeightArrayFromGeometricType(NORM_TRI3)).isEqual(DataArrayDouble([0.16666666666666666,0.16666666666666666,0.16666666666666666]),1e-12))
14166 self.assertTrue(DataArrayDouble(MEDCouplingFieldDiscretizationGaussNE.GetRefCoordsFromGeometricType(NORM_TRI3)).isEqual(DataArrayDouble([0.,0.,1.,0.,0.,1.]),1e-12))
14167 self.assertTrue(DataArrayDouble(MEDCouplingFieldDiscretizationGaussNE.GetLocsFromGeometricType(NORM_TRI3)).isEqual(DataArrayDouble([0.16666666666666666,0.16666666666666666,0.6666666666666667,0.16666666666666666,0.16666666666666666,0.6666666666666667]),1e-12))
14170 def testSwigReverseNodalConnOnStructuredMesh(self):
14172 c=MEDCouplingCMesh() ; arr=DataArrayDouble(10) ; arr.iota()
14173 c.setCoordsAt(0,arr)
14174 rn,rni=c.getReverseNodalConnectivity()
14175 rn2,rni2=c.buildUnstructured().getReverseNodalConnectivity()
14176 self.assertTrue(rn.isEqual(DataArrayInt([0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8])))
14177 self.assertTrue(rni.isEqual(DataArrayInt([0,1,3,5,7,9,11,13,15,17,18])))
14178 self.assertTrue(rn.isEqual(rn2)) ; self.assertTrue(rni.isEqual(rni2))
14180 c=MEDCouplingCMesh() ; arr=DataArrayDouble(1) ; arr.iota()
14181 c.setCoordsAt(0,arr)
14182 rn,rni=c.getReverseNodalConnectivity()
14183 rn2,rni2=c.buildUnstructured().getReverseNodalConnectivity()
14184 self.assertTrue(rn.isEqual(DataArrayInt([0])))
14185 self.assertTrue(rni.isEqual(DataArrayInt([0,1])))
14186 self.assertTrue(rn.isEqual(rn2)) ; self.assertTrue(rni.isEqual(rni2))
14188 c=MEDCouplingCMesh() ; arr=DataArrayDouble(0) ; arr.iota()
14189 c.setCoordsAt(0,arr)
14190 rn,rni=c.getReverseNodalConnectivity()
14191 rn.isEqual(DataArrayInt([]))
14192 rni.isEqual(DataArrayInt([0]))
14194 c=MEDCouplingCMesh() ; arr=DataArrayDouble(5) ; arr.iota() ; arr2=DataArrayDouble(4) ; arr.iota()
14195 c.setCoords(arr,arr2)
14196 rn,rni=c.getReverseNodalConnectivity()
14197 rn2,rni2=c.buildUnstructured().getReverseNodalConnectivity()
14198 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])))
14199 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])))
14200 self.assertTrue(rn.isEqual(rn2)) ; self.assertTrue(rni.isEqual(rni2))
14202 c=MEDCouplingCMesh() ; arr=DataArrayDouble(10) ; arr.iota() ; arr2=DataArrayDouble(1) ; arr.iota()
14203 c.setCoords(arr,arr2)
14204 rn,rni=c.getReverseNodalConnectivity()
14205 self.assertTrue(rn.isEqual(DataArrayInt([0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8])))
14206 self.assertTrue(rni.isEqual(DataArrayInt([0,1,3,5,7,9,11,13,15,17,18])))
14208 c=MEDCouplingCMesh() ; arr=DataArrayDouble(10) ; arr.iota() ; arr2=DataArrayDouble(1) ; arr.iota()
14209 c.setCoords(arr2,arr)
14210 rn,rni=c.getReverseNodalConnectivity()
14211 self.assertTrue(rn.isEqual(DataArrayInt([0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8])))
14212 self.assertTrue(rni.isEqual(DataArrayInt([0,1,3,5,7,9,11,13,15,17,18])))
14214 c=MEDCouplingCMesh() ; arr0=DataArrayDouble(5) ; arr0.iota() ; arr1=DataArrayDouble(3) ; arr1.iota() ; arr2=DataArrayDouble(4) ; arr2.iota()
14215 c.setCoords(arr0,arr1,arr2)
14216 rn,rni=c.getReverseNodalConnectivity()
14217 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])))
14218 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])))
14219 rn2,rni2=c.buildUnstructured().getReverseNodalConnectivity()
14220 self.assertTrue(rn.isEqual(rn2)) ; self.assertTrue(rni.isEqual(rni2))
14223 def testSwig2CellToNodeDiscretization1(self):
14224 m=MEDCouplingCMesh() ; arr0=DataArrayDouble(5) ; arr0.iota() ; arr1=DataArrayDouble(4) ; arr1.iota() ; m.setCoords(arr0,arr1)
14225 f=MEDCouplingFieldDouble(ON_CELLS) ; f.setMesh(m) ; f.setTime(1.1,5,6)
14226 arr=DataArrayDouble(12) ; arr.iota()
14227 arr=DataArrayDouble.Meld(arr,arr+100.) ; arr.setInfoOnComponents(["aaa","bbb"])
14231 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.])
14232 ref=DataArrayDouble.Meld(ref,ref+100.) ; ref.setInfoOnComponents(["aaa","bbb"])
14233 f2=f.cellToNodeDiscretization()
14234 f2.checkCoherency()
14235 self.assertEqual(f2.getTime()[1:],[5,6])
14236 self.assertAlmostEqual(f2.getTime()[0],1.1,15)
14237 self.assertEqual(f2.getMesh().getHiddenCppPointer(),m.getHiddenCppPointer())
14238 self.assertTrue(f2.getArray().isEqual(ref,1e-12))
14239 rn,rni=m.getReverseNodalConnectivity()
14240 rni2=(rni.deltaShiftIndex()).convertToDblArr()
14241 arr2=(f.getArray()[rn]).accumulatePerChunck(rni)/rni2
14242 self.assertTrue(f2.getArray().isEqual(arr2,1e-12))
14245 u=m.buildUnstructured() ; f.setMesh(u) ; del m
14246 f3=f.cellToNodeDiscretization()
14247 f3.checkCoherency()
14248 self.assertEqual(f3.getTime()[1:],[5,6])
14249 self.assertAlmostEqual(f3.getTime()[0],1.1,15)
14250 self.assertEqual(f3.getMesh().getHiddenCppPointer(),u.getHiddenCppPointer())
14251 self.assertTrue(f3.getArray().isEqual(ref,1e-12))
14254 def testSwig2GetMeshSpaceDimensionCMesh1(self):
14255 c=MEDCouplingCMesh()
14256 arr0=DataArrayDouble([0,1,2])
14257 arr1=DataArrayDouble([0])
14258 c.setCoords(arr0,arr0,arr0)
14259 self.assertEqual(c.getMeshDimension(),3)
14260 self.assertEqual(c.getSpaceDimension(),3)
14262 c.setCoords(arr0,arr0,arr1)
14263 self.assertEqual(c.getMeshDimension(),2)
14264 self.assertEqual(c.getSpaceDimension(),3)
14266 c.setCoords(arr0,arr0)
14267 self.assertEqual(c.getMeshDimension(),2)
14268 self.assertEqual(c.getSpaceDimension(),2)
14270 c.setCoords(arr0,arr1)
14271 self.assertEqual(c.getMeshDimension(),1)
14272 self.assertEqual(c.getSpaceDimension(),2)
14275 self.assertEqual(c.getMeshDimension(),1)
14276 self.assertEqual(c.getSpaceDimension(),1)
14279 self.assertEqual(c.getMeshDimension(),0)
14280 self.assertEqual(c.getSpaceDimension(),1)
14283 def testSwig2BuildSpreadZonesWithPolyOnQPolyg1(self):
14286 m=MEDCouplingCMesh()
14287 arr1=DataArrayDouble(nx) ; arr1.iota()
14288 arr2=DataArrayDouble(ny) ; arr2.iota()
14289 m.setCoords(arr1,arr2)
14290 m=m.buildUnstructured()
14291 da=DataArrayInt.Range(nx-1,(nx-1)*(ny-1),nx)
14292 m2=m[da] ; m2.simplexize(0)
14293 dan=da.buildComplement(m.getNumberOfCells())
14295 m=MEDCouplingUMesh.MergeUMeshesOnSameCoords(m1,m2)
14297 m.convertLinearCellsToQuadratic()
14298 m1=m[::2] ; m2=m[1::2] ; m2.convertAllToPoly()
14299 m=MEDCouplingUMesh.MergeUMeshesOnSameCoords(m1,m2)
14300 p=m.buildSpreadZonesWithPoly()
14301 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])))
14302 self.assertTrue(p.getNodalConnectivityIndex().isEqual(DataArrayInt([0,41])))
14303 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))
14306 def testSwig2Conformize2D1(self):
14308 coo = [0.,-0.5,0.,0.,0.5,0.,0.5,-0.5,0.25,
14309 -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]
14310 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]
14311 connI = [0,5,12,17,24]
14312 m = MEDCouplingUMesh("box",2)
14313 cooArr = DataArrayDouble(coo,len(coo)/2,2)
14314 m.setCoords(cooArr)
14315 m.setConnectivity(DataArrayInt(conn),DataArrayInt(connI))
14318 self.assertTrue(m.conformize2D(eps).isEqual(DataArrayInt([3])))
14319 self.assertEqual(m.getCoords().getHiddenCppPointer(),cooArr.getHiddenCppPointer()) # check that coordinates remain the same here
14320 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])))
14321 self.assertTrue(m.getNodalConnectivityIndex().isEqual(DataArrayInt([0,5,12,17,25])))
14324 def testSwig2Conformize2D2(self):
14326 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)
14327 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])
14328 m=MEDCoupling1SGTUMesh("mesh",NORM_QUAD4)
14330 m.setNodalConnectivity(conn)
14331 m=m.buildUnstructured()
14332 self.assertTrue(m.conformize2D(eps).isEqual(DataArrayInt([0,1,2,5])))
14333 self.assertEqual(m.getCoords().getHiddenCppPointer(),coo.getHiddenCppPointer()) # check that coordinates remain the same here
14334 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])))
14335 self.assertTrue(m.getNodalConnectivityIndex().isEqual(DataArrayInt([0,6,12,21,26,31,37,42])))
14338 def testSwigSplit2DCells1(self):
14339 coo=DataArrayDouble([[0,0],[1,0],[1,1],[0,1],[0.5,0],[1,0.5],[0.5,1],[0.,0.5]])
14340 m=MEDCouplingUMesh("mesh",2)
14343 m.insertNextCell(NORM_QUAD8,[0,1,2,3,4,5,6,7])
14344 _,d,di,_,_=m.buildDescendingConnectivity()
14345 subb=DataArrayInt([5])
14346 subbi=DataArrayInt([0,0,1,1,1])
14347 mid=DataArrayInt([-1,-1])
14348 midi=DataArrayInt([0,0,2,2,2])
14349 self.assertEqual(2,m.split2DCells(d,di,subb,subbi,mid,midi))
14350 self.assertTrue(m.getNodalConnectivity().isEqual(DataArrayInt([32,0,1,5,2,3,4,8,9,6,7])))
14351 self.assertTrue(m.getNodalConnectivityIndex().isEqual(DataArrayInt([0,11])))
14352 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))
14355 def testSwig2Conformize2D3(self):
14357 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)
14358 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])
14359 m=MEDCoupling1SGTUMesh("mesh",NORM_QUAD4)
14361 m.setNodalConnectivity(conn)
14362 m=m.buildUnstructured()
14363 m.convertLinearCellsToQuadratic()
14364 self.assertTrue(m.conformize2D(eps).isEqual(DataArrayInt([0,1,2,5])))
14365 self.assertTrue(m.getCoords().getHiddenCppPointer()!=coo.getHiddenCppPointer()) # coordinates are not the same here contrary to testSwig2Conformize2D2 ...
14366 self.assertTrue(m.getCoords()[:18].isEqual(coo,1e-12)) # but the 18 first nodes are the same
14369 def testSwig2Conformize2D4(self):
14371 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)
14372 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])
14373 m=MEDCoupling1SGTUMesh("mesh",NORM_QUAD4)
14375 m.setNodalConnectivity(conn)
14376 m=m.buildUnstructured()
14377 m.convertLinearCellsToQuadratic()
14378 self.assertEqual(42,m.getNumberOfNodes())
14379 oldCoo=m.getCoords().deepCpy()
14380 m.conformize2D(eps)
14381 self.assertTrue(m.getCoords()[:42].isEqual(oldCoo,1e-12))
14382 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])))
14383 self.assertTrue(m.getNodalConnectivityIndex().isEqual(DataArrayInt([0,11,22,39,48,57,68,77])))
14384 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))
14387 def testSwig2Conformize2D5(self):
14389 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]])
14390 m=MEDCouplingUMesh("mesh",2)
14393 m.insertNextCell(NORM_TRI6,[1,2,0,5,4,3])
14394 m.insertNextCell(NORM_TRI6,[8,6,0,12,7,13])
14395 m.insertNextCell(NORM_TRI6,[11,9,10,16,14,15])
14396 self.assertTrue(m.conformize2D(eps).isEqual(DataArrayInt([0])))
14397 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))
14398 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])))
14399 self.assertTrue(m.getNodalConnectivityIndex().isEqual(DataArrayInt([0,13,20,27])))
14402 def testSwigExtendedSlice1(self):
14403 d=DataArrayInt([5,6,7])
14404 self.assertTrue(d[2:].isEqual(DataArrayInt([7])))
14405 self.assertTrue(d[3:].isEqual(DataArrayInt([])))
14408 except InterpKernelException as e:
14409 self.assertTrue(True)
14411 self.assertTrue(False)
14413 d=DataArrayInt([5,6,7,8])
14414 self.assertEqual(d[-1],8)
14415 self.assertEqual(d[-4],5)
14418 except InterpKernelException as e:
14419 self.assertTrue(True)
14421 self.assertTrue(False)
14423 self.assertTrue(d[2::-1].isEqual(DataArrayInt([7,6,5])))
14424 self.assertTrue(d[0::-1].isEqual(DataArrayInt([5])))
14425 self.assertTrue(d[-1::-1].isEqual(DataArrayInt([8,7,6,5])))
14426 self.assertTrue(d[-3::-1].isEqual(DataArrayInt([6,5])))
14427 self.assertTrue(d[-5::-1].isEqual(DataArrayInt([])))
14430 except InterpKernelException as e:
14431 self.assertTrue(True)
14433 self.assertTrue(False)
14436 self.assertTrue(d[0:].isEqual(DataArrayInt([])))
14438 d=DataArrayDouble([5,6,7])
14439 self.assertTrue(d[2:].isEqual(DataArrayDouble([7]),1e-12))
14440 self.assertTrue(d[3:].isEqual(DataArrayDouble([]),1e-12))
14443 except InterpKernelException as e:
14444 self.assertTrue(True)
14446 self.assertTrue(False)
14448 d=DataArrayDouble([5,6,7,8])
14449 self.assertAlmostEqual(d[-1],8.,12)
14450 self.assertAlmostEqual(d[-4],5.,12)
14453 except InterpKernelException as e:
14454 self.assertTrue(True)
14456 self.assertTrue(False)
14458 self.assertTrue(d[2::-1].isEqual(DataArrayDouble([7,6,5]),1e-12))
14459 self.assertTrue(d[0::-1].isEqual(DataArrayDouble([5]),1e-12))
14460 self.assertTrue(d[-1::-1].isEqual(DataArrayDouble([8,7,6,5]),1e-12))
14461 self.assertTrue(d[-3::-1].isEqual(DataArrayDouble([6,5]),1e-12))
14462 self.assertTrue(d[-5::-1].isEqual(DataArrayDouble([]),1e-12))
14465 except InterpKernelException as e:
14466 self.assertTrue(True)
14468 self.assertTrue(False)
14470 d=DataArrayDouble([])
14471 self.assertTrue(d[0:].isEqual(DataArrayDouble([]),1e-12))
14474 def testSwig2Hexa27GP1(self):
14475 """ This test focused on shape functions of hexa27.
14477 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.]])
14478 m=MEDCouplingUMesh("mesh",3) ; m.setCoords(coo)
14480 # the cell description is exactly those described in the description of HEXA27 in MED file 3.0.7 documentation
14481 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])
14482 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.]
14483 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]
14484 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]
14485 fGauss=MEDCouplingFieldDouble(ON_GAUSS_PT) ; fGauss.setName("fGauss")
14487 fGauss.setGaussLocalizationOnType(NORM_HEXA27,refCoo,gCoords,weights)
14488 arr=DataArrayDouble(fGauss.getNumberOfTuplesExpected()) ; arr.iota()
14489 fGauss.setArray(arr)
14490 arrOfDisc=fGauss.getLocalizationOfDiscr()
14492 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))
14496 fGauss.setGaussLocalizationOnType(NORM_HEXA27,refCoo,gCoords,weights)
14497 arrOfDisc2=fGauss.getLocalizationOfDiscr()
14498 self.assertTrue(arrOfDisc2.isEqual(coo,1e-12))
14501 def testSwig2Pyra13GP1(self):
14502 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.]])
14503 m=MEDCouplingUMesh("mesh",3) ; m.setCoords(coo)
14505 # the cell description is exactly those described in the description of PYRA13 in MED file 3.0.7 documentation
14506 m.insertNextCell(NORM_PYRA13,[0,1,2,3,4,5,6,7,8,9,10,11,12])
14507 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]
14508 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]
14509 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]
14510 fGauss=MEDCouplingFieldDouble(ON_GAUSS_PT) ; fGauss.setName("fGauss")
14512 fGauss.setGaussLocalizationOnType(NORM_PYRA13,refCoords,gaussCoords,weights)
14513 arr=DataArrayDouble(fGauss.getNumberOfTuplesExpected()) ; arr.iota()
14514 fGauss.setArray(arr)
14515 arrOfDisc=fGauss.getLocalizationOfDiscr()
14517 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))
14520 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. !
14521 fGauss.setGaussLocalizationOnType(NORM_PYRA13,refCoords,gaussCoords,weights)
14522 arrOfDisc2=fGauss.getLocalizationOfDiscr()
14523 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. !
14526 def testSwig2Tri7GP1(self):
14527 coo=DataArrayDouble([[0,0],[0,2],[2,0],[0,1],[1,1],[1,0],[0.6666666666666667,0.6666666666666667]])
14528 m=MEDCouplingUMesh("mesh",2) ; m.setCoords(coo)
14530 # the cell description is exactly those described in the description of TRI7 in MED file 3.0.7 documentation
14531 m.insertNextCell(NORM_TRI7,range(7))
14532 refCoords=[0.,0.,1.,0.,0.,1.,0.5,0.,0.5,0.5,0.,0.5,0.3333333333333333,0.3333333333333333]
14533 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]
14534 weights=[0.062969590272413,0.062969590272413,0.062969590272413,0.066197076394253,0.066197076394253,0.066197076394253,0.1125]
14535 fGauss=MEDCouplingFieldDouble(ON_GAUSS_PT) ; fGauss.setName("fGauss")
14537 fGauss.setGaussLocalizationOnType(NORM_TRI7,refCoords,gaussCoords,weights)
14538 arr=DataArrayDouble(fGauss.getNumberOfTuplesExpected()) ; arr.iota()
14539 fGauss.setArray(arr)
14540 arrOfDisc=fGauss.getLocalizationOfDiscr()
14541 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))
14544 gaussCoords=refCoords
14545 fGauss.setGaussLocalizationOnType(NORM_TRI7,refCoords,gaussCoords,weights)
14546 arrOfDisc2=fGauss.getLocalizationOfDiscr()
14547 self.assertTrue(arrOfDisc2.isEqual(coo,1e-12))
14550 def testSwig2StructuredDesc1(self):
14551 c=MEDCouplingCMesh()
14552 arr0=DataArrayDouble(3) ; arr0.iota()
14553 arr1=DataArrayDouble(4) ; arr1.iota()
14554 arr2=DataArrayDouble(5) ; arr2.iota()
14555 c.setCoords(arr0,arr1,arr2)
14557 self.assertEqual(98,c.getNumberOfCellsOfSubLevelMesh())
14558 m=c.build1SGTSubLevelMesh()
14559 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])))
14560 self.assertEqual(NORM_QUAD4,m.getCellModelEnum())
14562 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])))
14565 def testSwig2Colinearize2D1(self):
14566 coo=DataArrayDouble([-5.,0.,-1.,0.,4.,3.,7.,0.,1.,6.,1.,0.,-3.,0.,6.,1.,5.,0.,3.,0.],10,2)
14568 m=MEDCouplingUMesh("mesh",2) ; m.setCoords(coo) ; m.allocateCells()
14569 m.insertNextCell(NORM_POLYGON,[5,9,8,3,7,2,4,0,6,1])
14570 refPtr=m.getCoords().getHiddenCppPointer()
14571 self.assertTrue(m.colinearize2D(1e-12).isEqual(DataArrayInt([0])))
14572 self.assertEqual(refPtr,m.getCoords().getHiddenCppPointer())
14573 self.assertTrue(m.getNodalConnectivity().isEqual(DataArrayInt([5,0,3,4])))
14574 self.assertTrue(m.getNodalConnectivityIndex().isEqual(DataArrayInt([0,4])))
14575 self.assertTrue(m.colinearize2D(1e-12).isEqual(DataArrayInt([])))
14576 self.assertEqual(refPtr,m.getCoords().getHiddenCppPointer())
14577 self.assertTrue(m.getNodalConnectivity().isEqual(DataArrayInt([5,0,3,4])))
14578 self.assertTrue(m.getNodalConnectivityIndex().isEqual(DataArrayInt([0,4])))
14580 m=MEDCouplingUMesh("mesh",2) ; m.setCoords(coo) ; m.allocateCells()
14581 m.insertNextCell(NORM_POLYGON,[8,3,7,2,4,0,6,1,5,9])
14582 refPtr=m.getCoords().getHiddenCppPointer()
14583 self.assertTrue(m.colinearize2D(1e-12).isEqual(DataArrayInt([0])))
14584 self.assertEqual(refPtr,m.getCoords().getHiddenCppPointer())
14585 self.assertTrue(m.getNodalConnectivity().isEqual(DataArrayInt([5,0,3,4])))
14586 self.assertTrue(m.getNodalConnectivityIndex().isEqual(DataArrayInt([0,4])))
14588 m=MEDCouplingUMesh("mesh",2) ; m.setCoords(coo) ; m.allocateCells()
14589 m.insertNextCell(NORM_POLYGON,[3,7,2,4,0,6,1,5,9,8])
14590 refPtr=m.getCoords().getHiddenCppPointer()
14591 self.assertTrue(m.colinearize2D(1e-12).isEqual(DataArrayInt([0])))
14592 self.assertEqual(refPtr,m.getCoords().getHiddenCppPointer())
14593 self.assertTrue(m.getNodalConnectivity().isEqual(DataArrayInt([5,3,4,0])))
14594 self.assertTrue(m.getNodalConnectivityIndex().isEqual(DataArrayInt([0,4])))
14596 m=MEDCouplingUMesh("mesh",2) ; m.setCoords(coo) ; m.allocateCells()
14597 m.insertNextCell(NORM_POLYGON,[4,0,6,1,5,9,8,3,7,2,])
14598 refPtr=m.getCoords().getHiddenCppPointer()
14599 self.assertTrue(m.colinearize2D(1e-12).isEqual(DataArrayInt([0])))
14600 self.assertEqual(refPtr,m.getCoords().getHiddenCppPointer())
14601 self.assertTrue(m.getNodalConnectivity().isEqual(DataArrayInt([5,4,0,3])))
14602 self.assertTrue(m.getNodalConnectivityIndex().isEqual(DataArrayInt([0,4])))
14604 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)])
14605 coo2.setInfoOnComponents(["aa","bbbb"])
14606 m=MEDCouplingUMesh("mesh",2) ; m.setCoords(coo2) ; m.allocateCells()
14607 m.insertNextCell(NORM_QPOLYG,[5,9,8,3,7,2,4,0,6,1,10,11,12,13,14,15,16,17,18,19])
14608 refPtr=m.getCoords().getHiddenCppPointer()
14609 self.assertTrue(m.colinearize2D(1e-12).isEqual(DataArrayInt([0])))
14610 self.assertNotEqual(refPtr,m.getCoords().getHiddenCppPointer())#not same coordinates here
14611 self.assertEqual(["aa","bbbb"],m.getCoords().getInfoOnComponents())
14612 refPtr=m.getCoords().getHiddenCppPointer()
14613 self.assertTrue(coo2.isEqual(m.getCoords()[:20],1e-12))
14614 self.assertTrue(m.getCoords()[20:].isEqualWithoutConsideringStr(DataArrayDouble([(1.,0.),(4.,3.)]),1e-12))
14615 self.assertTrue(m.getNodalConnectivity().isEqual(DataArrayInt([32,0,3,4,20,21,16])))
14616 self.assertTrue(m.getNodalConnectivityIndex().isEqual(DataArrayInt([0,7])))
14617 self.assertTrue(m.colinearize2D(1e-12).isEqual(DataArrayInt([])))
14618 self.assertEqual(refPtr,m.getCoords().getHiddenCppPointer())
14619 self.assertTrue(m.getNodalConnectivity().isEqual(DataArrayInt([32,0,3,4,20,21,16])))
14620 self.assertTrue(m.getNodalConnectivityIndex().isEqual(DataArrayInt([0,7])))
14621 # mix of quadratic and linear inside a QPOLYG cell
14622 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)])
14623 m=MEDCouplingUMesh("mesh",2) ; m.setCoords(coo2) ; m.allocateCells()
14624 m.insertNextCell(NORM_QPOLYG,[5,9,8,3,7,2,4,0,6,1,10,11,12,13,14,15,16,17,18,19])
14625 refPtr=m.getCoords().getHiddenCppPointer()
14626 self.assertTrue(m.colinearize2D(1e-12).isEqual(DataArrayInt([0])))
14627 self.assertNotEqual(refPtr,m.getCoords().getHiddenCppPointer())#not same coordinates here
14628 self.assertTrue(coo2.isEqual(m.getCoords()[:20],1e-12))
14629 self.assertTrue(m.getCoords()[20:].isEqual(DataArrayDouble([(1.,0.),(7.,6.)]),1e-12))
14630 self.assertTrue(m.getNodalConnectivity().isEqual(DataArrayInt([32,0,3,4,20,21,16])))
14631 self.assertTrue(m.getNodalConnectivityIndex().isEqual(DataArrayInt([0,7])))
14634 def testSwig2BoundingBoxForBBTree1(self):
14635 """ 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 !
14637 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)
14638 m=MEDCouplingUMesh("mesh",2) ; m.setCoords(coo)
14640 m.insertNextCell(NORM_QPOLYG,[0,1,2,3,11,5,7,9,12,13,14,17,4,6,8,16])
14641 m.insertNextCell(NORM_QPOLYG,[3,0,9,11,15,16,10,17])
14642 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))
14645 def testSwig2CartBuildUnstructuredOnExoticCases1(self):
14646 """ Test focusing on traduction from cartesian to unstructured mesh when spaceDim greater than meshDim.
14649 m=MEDCouplingCMesh()
14650 arrX=DataArrayDouble(3) ; arrX.iota()
14651 arrY=DataArrayDouble(4) ; arrY.iota()
14652 arrZ=DataArrayDouble(1) ; arrZ.iota()
14653 m.setCoords(arrX,arrY,arrZ)
14654 self.assertEqual(2,m.getMeshDimension())
14655 self.assertEqual(3,m.getSpaceDimension())
14656 mu=m.buildUnstructured()
14657 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])))
14658 self.assertTrue(mu.getNodalConnectivityIndex().isEqual(DataArrayInt([0,5,10,15,20,25,30])))
14659 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)])
14660 self.assertTrue(mu.getCoords().isEqual(coo0,1e-12))
14662 m=MEDCouplingCMesh()
14663 arrX=DataArrayDouble(3) ; arrX.iota()
14664 arrY=DataArrayDouble(1) ; arrY.iota()
14665 arrZ=DataArrayDouble(4) ; arrZ.iota()
14666 m.setCoords(arrX,arrY,arrZ)
14667 self.assertEqual(2,m.getMeshDimension())
14668 self.assertEqual(3,m.getSpaceDimension())
14669 mu=m.buildUnstructured()
14670 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])))
14671 self.assertTrue(mu.getNodalConnectivityIndex().isEqual(DataArrayInt([0,5,10,15,20,25,30])))
14672 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)])
14673 self.assertTrue(mu.getCoords().isEqual(coo1,1e-12))
14675 m=MEDCouplingCMesh()
14676 arrX=DataArrayDouble(1) ; arrX.iota() ; arrX+=9
14677 arrY=DataArrayDouble(3) ; arrY.iota()
14678 arrZ=DataArrayDouble(4) ; arrZ.iota()
14679 m.setCoords(arrX,arrY,arrZ)
14680 self.assertEqual(2,m.getMeshDimension())
14681 self.assertEqual(3,m.getSpaceDimension())
14682 mu=m.buildUnstructured()
14683 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])))
14684 self.assertTrue(mu.getNodalConnectivityIndex().isEqual(DataArrayInt([0,5,10,15,20,25,30])))
14685 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)])
14686 self.assertTrue(mu.getCoords().isEqual(coo2,1e-12))
14688 m=MEDCouplingCMesh()
14689 arrX=DataArrayDouble(3) ; arrX.iota()
14690 arrY=DataArrayDouble(1) ; arrY.iota(7)
14691 arrZ=DataArrayDouble(1) ; arrZ.iota(8)
14692 m.setCoords(arrX,arrY,arrZ)
14693 self.assertEqual(1,m.getMeshDimension())
14694 self.assertEqual(3,m.getSpaceDimension())
14695 mu=m.buildUnstructured()
14696 self.assertTrue(mu.getNodalConnectivity().isEqual(DataArrayInt([1,0,1,1,1,2])))
14697 self.assertTrue(mu.getNodalConnectivityIndex().isEqual(DataArrayInt([0,3,6])))
14698 coo3=DataArrayDouble([(0,7,8),(1,7,8),(2,7,8)])
14699 self.assertTrue(mu.getCoords().isEqual(coo3,1e-12))
14701 m=MEDCouplingCMesh()
14702 arrX=DataArrayDouble(1) ; arrX.iota(7)
14703 arrY=DataArrayDouble(1) ; arrY.iota(8)
14704 arrZ=DataArrayDouble(3) ; arrZ.iota()
14705 m.setCoords(arrX,arrY,arrZ)
14706 self.assertEqual(1,m.getMeshDimension())
14707 self.assertEqual(3,m.getSpaceDimension())
14708 mu=m.buildUnstructured()
14709 self.assertTrue(mu.getNodalConnectivity().isEqual(DataArrayInt([1,0,1,1,1,2])))
14710 self.assertTrue(mu.getNodalConnectivityIndex().isEqual(DataArrayInt([0,3,6])))
14711 coo4=DataArrayDouble([(7,8,0),(7,8,1),(7,8,2)])
14712 self.assertTrue(mu.getCoords().isEqual(coo4,1e-12))
14714 m=MEDCouplingCMesh()
14715 arrX=DataArrayDouble(3) ; arrX.iota()
14716 arrY=DataArrayDouble(1) ; arrY.iota(7)
14717 m.setCoords(arrX,arrY)
14718 self.assertEqual(1,m.getMeshDimension())
14719 self.assertEqual(2,m.getSpaceDimension())
14720 mu=m.buildUnstructured()
14721 self.assertTrue(mu.getNodalConnectivity().isEqual(DataArrayInt([1,0,1,1,1,2])))
14722 self.assertTrue(mu.getNodalConnectivityIndex().isEqual(DataArrayInt([0,3,6])))
14723 coo5=DataArrayDouble([(0,7),(1,7),(2,7)])
14724 self.assertTrue(mu.getCoords().isEqual(coo5,1e-12))
14726 m=MEDCouplingCMesh()
14727 arrX=DataArrayDouble(1) ; arrX.iota(7)
14728 arrY=DataArrayDouble(3) ; arrY.iota()
14729 m.setCoords(arrX,arrY)
14730 self.assertEqual(1,m.getMeshDimension())
14731 self.assertEqual(2,m.getSpaceDimension())
14732 mu=m.buildUnstructured()
14733 self.assertTrue(mu.getNodalConnectivity().isEqual(DataArrayInt([1,0,1,1,1,2])))
14734 self.assertTrue(mu.getNodalConnectivityIndex().isEqual(DataArrayInt([0,3,6])))
14735 coo6=DataArrayDouble([(7,0),(7,1),(7,2)])
14736 self.assertTrue(mu.getCoords().isEqual(coo6,1e-12))
14739 def testSwig2Colinearize2D2(self):
14740 """ simple non regression test but that has revealed a bug"""
14741 coo=DataArrayDouble([(0,0),(0,0.5),(0,1),(1,1),(1,0),(0.5,0)])
14742 m=MEDCouplingUMesh("mesh",2) ; m.setCoords(coo)
14743 m.allocateCells() ; m.insertNextCell(NORM_POLYGON,[0,1,2,3,4,5])
14744 m.checkCoherency2()
14745 refPtr=m.getCoords().getHiddenCppPointer()
14747 m.colinearize2D(1e-12)
14748 m.checkCoherency2()
14749 self.assertEqual(refPtr,m.getCoords().getHiddenCppPointer())
14750 self.assertTrue(m.getNodalConnectivity().isEqual(DataArrayInt([5,0,2,3,4])))
14751 self.assertTrue(m.getNodalConnectivityIndex().isEqual(DataArrayInt([0,5])))
14754 def testSwig2CheckAndPreparePermutation2(self):
14755 a=DataArrayInt([10003,9999999,5,67])
14756 self.assertTrue(DataArrayInt.CheckAndPreparePermutation(a).isEqual(DataArrayInt([2,3,0,1])))
14757 a=DataArrayInt([10003,-9999999,5,67])
14758 self.assertTrue(DataArrayInt.CheckAndPreparePermutation(a).isEqual(DataArrayInt([3,0,1,2])))
14760 self.assertTrue(DataArrayInt.checkAndPreparePermutation(a).isEqual(DataArrayInt([])))
14763 def testSwig2ComputeNeighborsOfNodes1(self):
14764 arrX=DataArrayDouble(3) ; arrX.iota()
14765 arrY=DataArrayDouble(4) ; arrY.iota()
14766 arrZ=DataArrayDouble(5) ; arrZ.iota()
14767 m=MEDCouplingCMesh() ; m.setCoords(arrX,arrY,arrZ) ; m=m.buildUnstructured()
14769 a,b=m.computeNeighborsOfNodes()
14770 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])))
14771 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])))
14773 m=MEDCouplingCMesh() ; m.setCoords(arrX,arrY) ; m=m.buildUnstructured()
14774 a,b=m.computeNeighborsOfNodes()
14775 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])))
14776 self.assertTrue(b.isEqual(DataArrayInt([0,2,5,7,10,14,17,20,24,27,29,32,34])))
14778 m=m.buildDescendingConnectivity()[0]
14779 a,b=m.computeNeighborsOfNodes()
14780 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])))
14781 self.assertTrue(b.isEqual(DataArrayInt([0,2,5,7,10,14,17,20,24,27,29,32,34])))
14784 def testSwigBugOnUnpackingTuplesInDataArray1(self):
14785 inp=DataArrayDouble([(1,2,3),(4,5,6),(7,8,9),(10,11,12)])
14788 self.assertRaises(StopIteration,r.__getitem__,4)
14789 self.assertEqual(len(r),3)
14792 self.assertEqual(len(r),3)
14795 self.assertEqual(len(r),3)
14798 self.assertEqual(len(r),3)
14800 self.assertTrue(inp.isEqual(DataArrayDouble([a,b,c,d,e,f,g,h,i,j,k,l],4,3),1e-12))
14802 inp=DataArrayInt([(1,2,3),(4,5,6),(7,8,9),(10,11,12)])
14805 self.assertRaises(StopIteration,r.__getitem__,4)
14806 self.assertEqual(len(r),3)
14809 self.assertEqual(len(r),3)
14812 self.assertEqual(len(r),3)
14815 self.assertEqual(len(r),3)
14817 self.assertTrue(inp.isEqual(DataArrayInt([a,b,c,d,e,f,g,h,i,j,k,l],4,3)))
14820 def testSwig2IMesh1(self):
14821 """ 1st test of image grid mesh.
14823 m=MEDCouplingIMesh()
14824 self.assertEqual(m.getSpaceDimension(),-1)
14825 self.assertEqual(1,len(m.__repr__().split("\n")))
14826 self.assertEqual(6,len(m.__str__().split("\n")))
14827 self.assertRaises(InterpKernelException,m.getNodeStruct)
14828 self.assertRaises(InterpKernelException,m.getOrigin)
14829 self.assertRaises(InterpKernelException,m.getDXYZ)
14830 m.setSpaceDimension(3)
14831 self.assertEqual(9,len(m.__str__().split("\n")))
14832 self.assertEqual(4,len(m.__repr__().split("\n")))
14833 self.assertEqual((0,0,0),m.getNodeStruct())
14834 self.assertEqual((0.,0.,0.),m.getOrigin())
14835 self.assertEqual((0.,0.,0.),m.getDXYZ())
14836 self.assertRaises(InterpKernelException,m.setNodeStruct,[3,4])
14837 m.setNodeStruct([3,4,2])
14838 self.assertEqual((3,4,2),m.getNodeStruct())
14839 m.setOrigin(DataArrayDouble([1.5,2.5,3.5]))
14840 self.assertEqual((1.5,2.5,3.5),m.getOrigin())
14841 m.setDXYZ((0.5,1.,0.25))
14842 self.assertEqual((0.5,1.,0.25),m.getDXYZ())
14843 for it in DataArrayDouble([(1.5,2.5,3.5)]):
14844 m2=MEDCouplingIMesh("",3,DataArrayInt([3,4,2]),it,DataArrayDouble((0.5,1.,0.25)))
14846 self.assertEqual(3,m.getSpaceDimension())
14847 self.assertEqual((3,4,2),m2.getNodeStruct())
14848 self.assertEqual((1.5,2.5,3.5),m2.getOrigin())
14849 self.assertEqual((0.5,1.,0.25),m2.getDXYZ())
14850 self.assertEqual(24,m2.getNumberOfNodes())
14851 self.assertEqual(6,m2.getNumberOfCells())
14852 self.assertTrue(m.isEqual(m2,1e-12)) ; self.assertTrue(m.isEqualWithoutConsideringStr(m2,1e-12))
14853 m2.setAxisUnit("m")
14854 self.assertTrue(not m.isEqual(m2,1e-12)) ; self.assertTrue(m.isEqualWithoutConsideringStr(m2,1e-12))
14856 self.assertTrue(m.isEqual(m2,1e-12)) ; self.assertTrue(m.isEqualWithoutConsideringStr(m2,1e-12))
14858 self.assertTrue(not m.isEqual(m2,1e-12)) ; self.assertTrue(m.isEqualWithoutConsideringStr(m2,1e-12))
14860 self.assertTrue(m.isEqual(m2,1e-12)) ; self.assertTrue(m.isEqualWithoutConsideringStr(m2,1e-12))
14861 m2.setTime(1.1,0,3)
14862 self.assertTrue(not m.isEqual(m2,1e-12))
14864 self.assertTrue(m.isEqual(m2,1e-12))
14865 m.setTimeUnit("ms")
14866 self.assertTrue(not m.isEqual(m2,1e-12)) ; self.assertTrue(m.isEqualWithoutConsideringStr(m2,1e-12))
14867 m2.setTimeUnit("ms")
14868 self.assertTrue(m.isEqual(m2,1e-12)) ; self.assertTrue(m.isEqualWithoutConsideringStr(m2,1e-12))
14870 m2.setNodeStruct([3,2,4])
14871 self.assertTrue(not m.isEqual(m2,1e-12))
14872 m.setNodeStruct([3,2,4])
14873 self.assertTrue(m.isEqual(m2,1e-12))
14874 m.setOrigin(DataArrayDouble([1.5,3.5,2.5]))
14875 self.assertTrue(not m.isEqual(m2,1e-12))
14876 m2.setOrigin([1.5,3.5,2.5])
14877 self.assertTrue(m.isEqual(m2,1e-12))
14878 m.setDXYZ((0.5,0.25,1.))
14879 self.assertTrue(not m.isEqual(m2,1e-12))
14880 m2.setDXYZ(DataArrayDouble((0.5,0.25,1.)))
14881 self.assertTrue(m.isEqual(m2,1e-12))
14883 self.assertTrue(m2bis.isEqual(m2,1e-12))
14885 self.assertEqual(6,m2bis.getNumberOfCells())#3,2,4
14886 m2bis.refineWithFactor([3,3,3])
14887 self.assertEqual(162,m2bis.getNumberOfCells())
14888 self.assertEqual((7,4,10),m2bis.getNodeStruct())
14889 self.assertEqual((1.5,3.5,2.5),m2bis.getOrigin())
14890 self.assertTrue(DataArrayDouble([0.16666666666666666,0.08333333333333333,0.3333333333333333]).isEqual(DataArrayDouble(m2bis.getDXYZ()),1e-12))
14892 self.assertEqual(3,m.getMeshDimension())
14893 self.assertAlmostEqual(0.125,m.getMeasureOfAnyCell(),16);
14894 mu=MEDCoupling1SGTUMesh(m.buildUnstructured())
14895 mu.checkCoherency2()
14896 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]"])
14897 self.assertTrue(isinstance(mu,MEDCoupling1SGTUMesh))
14898 self.assertEqual(NORM_HEXA8,mu.getCellModelEnum())
14899 self.assertTrue(mu.getCoords().isEqual(cooExp,1e-12))
14900 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])))
14901 bary=m.getBarycenterAndOwner()
14902 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]"])
14903 self.assertTrue(bary.isEqual(baryExp,1e-12))
14905 c=m.convertToCartesian()
14907 self.assertEqual([1.1,0,3],c.getTime())
14908 self.assertEqual("ms",c.getTimeUnit())
14909 self.assertEqual(3,c.getMeshDimension())
14910 self.assertEqual(3,c.getSpaceDimension())
14911 arrX=DataArrayDouble([1.5,2.,2.5]) ; arrX.setInfoOnComponents(["X [m]"])
14912 self.assertTrue(c.getCoordsAt(0).isEqual(arrX,1e-12))
14913 arrY=DataArrayDouble([3.5,3.75]) ; arrY.setInfoOnComponents(["Y [m]"])
14914 self.assertTrue(c.getCoordsAt(1).isEqual(arrY,1e-12))
14915 arrZ=DataArrayDouble([2.5,3.5,4.5,5.5]) ; arrZ.setInfoOnComponents(["Z [m]"])
14916 self.assertTrue(c.getCoordsAt(2).isEqual(arrZ,1e-12))
14917 self.assertTrue(c.buildUnstructured().isEqual(m.buildUnstructured(),1e-12))
14919 a,b=m.getCellsContainingPoints(baryExp,1e-12)
14920 self.assertTrue(a.isEqual(DataArrayInt([0,1,2,3,4,5])))
14921 self.assertTrue(b.isEqual(DataArrayInt([0,1,2,3,4,5,6])))
14922 for a,b in enumerate(baryExp):
14923 self.assertEqual(a,m.getCellContainingPoint(b,1e-12))
14926 m.translate([1.,2.,4.])
14927 self.assertEqual((3,2,4),m.getNodeStruct())
14928 self.assertEqual((2.5,5.5,6.5),m.getOrigin())
14929 self.assertEqual((0.5,0.25,1.),m.getDXYZ())
14930 m.scale([0.,1.,3.],2.)
14931 self.assertAlmostEqual(1.,m.getMeasureOfAnyCell(),16);
14932 self.assertEqual((3,2,4),m.getNodeStruct())
14933 self.assertEqual((5.,10.,10.),m.getOrigin())
14934 self.assertEqual((1.,0.5,2.),m.getDXYZ())
14936 f=m.getMeasureField(False)
14937 f2=MEDCouplingFieldDouble(ON_CELLS) ; f2.setTime(1.1,0,3) ; f2.setMesh(m) ; arr=DataArrayDouble(6) ; arr[:]=1. ; f2.setArray(arr) ; f2.setTimeUnit("ms")
14938 f2.setName("MeasureOfMesh_mesh")
14939 self.assertTrue(f.isEqual(f2,1e-12,1e-12))
14941 m3=m.buildStructuredSubPart([(1,2),(0,1),(1,3)])
14942 self.assertEqual((2,2,3),m3.getNodeStruct())
14943 self.assertEqual((6.,10.,12.),m3.getOrigin())
14944 self.assertEqual((1.,0.5,2.),m3.getDXYZ())
14945 # now playing with 3D surf
14946 m4=MEDCouplingIMesh("",3,DataArrayInt([3,1,4]),DataArrayDouble([1.5,2.5,3.5]),DataArrayDouble((0.5,1.,0.25))) ; m4.setAxisUnit("km")
14947 self.assertEqual([(1.5,2.5),(2.5,3.5),(3.5,4.25)],m4.getBoundingBox())
14948 self.assertEqual(3,m4.getSpaceDimension())
14949 self.assertEqual(2,m4.getMeshDimension())
14950 self.assertEqual(12,m4.getNumberOfNodes())
14951 self.assertEqual(6,m4.getNumberOfCells())
14952 mu=MEDCoupling1SGTUMesh(m4.buildUnstructured())
14953 mu.checkCoherency2()
14954 self.assertTrue(isinstance(mu,MEDCoupling1SGTUMesh))
14955 self.assertEqual(NORM_QUAD4,mu.getCellModelEnum())
14956 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]"])
14957 self.assertTrue(mu.getCoords().isEqual(coordsExp,1e-12))
14958 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])))
14961 def testSwig1GetValuesAsTuple1(self):
14962 d=DataArrayDouble()
14963 self.assertEqual(d.getValues(),[])
14964 self.assertEqual(d.getValuesAsTuple(),[])
14965 d=DataArrayDouble(24) ; d.iota() ; d.rearrange(3)
14966 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.])
14967 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.)])
14969 self.assertEqual(d.getValues(),[])
14970 self.assertEqual(d.getValuesAsTuple(),[])
14971 d=DataArrayInt(24) ; d.iota() ; d.rearrange(3)
14972 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])
14973 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)])
14976 def testSwig2AMR1(self):
14977 self.assertEqual((1,3,12),MEDCouplingStructuredMesh.GetSplitVectFromStruct([3,4,5]))
14978 self.assertEqual((3,2),MEDCouplingStructuredMesh.GetDimensionsFromCompactFrmt([(1,4),(2,4)]))
14980 amr=MEDCouplingCartesianAMRMesh("",2,[3,3],[0,0],[1,1])
14981 self.assertEqual(4,amr.getNumberOfCellsAtCurrentLevel())
14982 self.assertEqual(4,amr.getNumberOfCellsRecursiveWithOverlap())
14983 self.assertEqual(4,amr.getNumberOfCellsRecursiveWithoutOverlap())
14984 self.assertEqual(0,amr.getNumberOfPatches())
14985 self.assertEqual(1,amr.getMaxNumberOfLevelsRelativeToThis())
14986 self.assertEqual(2,amr.getSpaceDimension())
14987 amr.addPatch([(1,2),(0,1)],[4,4])
14988 self.assertEqual(4,amr.getNumberOfCellsAtCurrentLevel())
14989 self.assertEqual(20,amr.getNumberOfCellsRecursiveWithOverlap())
14990 self.assertEqual(19,amr.getNumberOfCellsRecursiveWithoutOverlap())
14991 self.assertEqual(1,amr.getNumberOfPatches())
14992 self.assertEqual(2,amr.getMaxNumberOfLevelsRelativeToThis())
14993 self.assertEqual(2,amr.getSpaceDimension())
14994 amr[0].addPatch([(2,3),(1,3)],[3,2])
14995 self.assertEqual(amr[0].getBLTRRange(),[(1,2),(0,1)])
14996 self.assertEqual(4,amr.getNumberOfCellsAtCurrentLevel())
14997 self.assertEqual(32,amr.getNumberOfCellsRecursiveWithOverlap())
14998 self.assertEqual(29,amr.getNumberOfCellsRecursiveWithoutOverlap())
14999 self.assertEqual(1,amr.getNumberOfPatches())
15000 self.assertEqual(3,amr.getMaxNumberOfLevelsRelativeToThis())
15001 self.assertEqual(2,amr.getSpaceDimension())
15002 amr[0].addPatch([(0,2),(3,4)],[3,2])
15003 self.assertEqual(16,amr[0].getMesh().getNumberOfCellsAtCurrentLevel())
15004 self.assertEqual(44,amr.getNumberOfCellsRecursiveWithOverlap())
15005 self.assertEqual(39,amr.getNumberOfCellsRecursiveWithoutOverlap())
15006 self.assertEqual(2,amr[0].getMesh().getNumberOfPatches())
15007 self.assertEqual(3,amr.getMaxNumberOfLevelsRelativeToThis())
15008 self.assertEqual(2,amr.getSpaceDimension())
15010 self.assertEqual(amr[0].getBLTRRange(),[(1,2),(0,1)])
15011 self.assertEqual(4,amr.getNumberOfCellsAtCurrentLevel())
15012 self.assertEqual(32,amr.getNumberOfCellsRecursiveWithOverlap())
15013 self.assertEqual(29,amr.getNumberOfCellsRecursiveWithoutOverlap())
15014 self.assertEqual(1,amr.getNumberOfPatches())
15015 self.assertEqual(3,amr.getMaxNumberOfLevelsRelativeToThis())
15016 self.assertEqual(2,amr.getSpaceDimension())
15019 def testSwig2NonRegressionTestPAL1164(self):
15020 """ Test PAL1164 Protection of applyLin against error in compoId ( #CEA22584 ) """
15021 xarr=DataArrayDouble(3,1)
15023 cmesh=MEDCouplingCMesh()
15024 cmesh.setCoords(xarr,xarr,xarr)
15025 mesh=cmesh.buildUnstructured()
15026 f=mesh.fillFromAnalytic(ON_CELLS,1,"(x-5.)*(x-5.)+(y-5.)*(y-5.)+(z-5.)*(z-5.)")
15027 f.setName("MyField")
15028 self.assertTrue(f.getArray().isEqual(DataArrayDouble([60.75,52.75,52.75,44.75,52.75,44.75,44.75,36.75]),1e-12))
15029 self.assertRaises(InterpKernelException,f.applyLin,2.,0.,1)# compoId 1 whereas f has only one component !
15030 self.assertTrue(f.getArray().isEqual(DataArrayDouble([60.75,52.75,52.75,44.75,52.75,44.75,44.75,36.75]),1e-12))
15031 f.applyLin(2.,0.,0)# here it is OK !
15032 self.assertTrue(f.getArray().isEqual(DataArrayDouble([121.5,105.5,105.5,89.5,105.5,89.5,89.5,73.5]),1e-12))
15034 self.assertTrue(f.getArray().isEqual(DataArrayDouble([243.,211.,211.,179.,211.,179.,179.,147.]),1e-12))
15037 def testSwig2StructurizeMe1(self):
15038 arrx=DataArrayDouble(3) ; arrx.iota() ; arrx*=2.
15039 arry=DataArrayDouble(4) ; arry.iota() ; arry+=3.
15040 arrz=DataArrayDouble(5) ; arrz.iota() ; arrz*=0.5 ; arrz+=2.
15041 c=MEDCouplingCMesh() ; c.setCoords(arrx,arry,arrz)
15042 c.setName("mesh") ; c.setDescription("mesh descr") ; c.setTimeUnit("us") ; c.setTime(1.2,3,4)
15043 u=c.buildUnstructured()
15044 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])
15045 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])
15046 u.renumberCells(cp)
15047 u.renumberNodes(np,len(np))
15048 u=MEDCoupling1SGTUMesh(u)
15050 e,d,f=u.structurizeMe()
15051 self.assertTrue(c.isEqual(e,1e-12))
15052 self.assertTrue(d.isEqual(cp))
15053 self.assertTrue(f.isEqual(np))
15056 def testSwig2DenseMatrix1(self):
15057 m0=DenseMatrix(DataArrayDouble([2,3,4,5,1,6]),2,3)
15058 self.assertEqual(m0.getNumberOfRows(),2)
15059 self.assertEqual(m0.getNumberOfCols(),3)
15060 self.assertEqual(m0.getNbOfElems(),6)
15061 ref=m0.getData().getHiddenCppPointer()
15063 self.assertTrue(m0.isEqual(m00,1e-12))
15064 m00.getData().setIJ(0,0,2.1)
15065 self.assertTrue(not m0.isEqual(m00,1e-12))
15066 m00.getData().setIJ(0,0,2.)
15067 self.assertTrue(m0.isEqual(m00,1e-12))
15068 self.assertTrue(m0.getData().isEqual(DataArrayDouble([2,3,4,5,1,6]),1e-12))
15070 m000=m0*DataArrayDouble([5,9,3])
15071 self.assertTrue(m000.getData().isEqual(DataArrayDouble([49.,52.]),1e-12))
15074 self.assertTrue(not m0.isEqual(m00,1e-12))
15075 self.assertEqual(m0.getNumberOfRows(),3)
15076 self.assertEqual(m0.getNumberOfCols(),2)
15077 self.assertEqual(ref,m0.getData().getHiddenCppPointer())
15078 self.assertTrue(m0.getData().isEqual(DataArrayDouble([2,3,4,5,1,6]),1e-12))
15080 self.assertTrue(m0.isEqual(m00,1e-12))
15081 self.assertEqual(ref,m0.getData().getHiddenCppPointer())
15082 self.assertEqual(m0.getNumberOfRows(),2)
15083 self.assertEqual(m0.getNumberOfCols(),3)
15084 self.assertTrue(m0.getData().isEqual(DataArrayDouble([2,3,4,5,1,6]),1e-12))
15085 #m0np=m0.getData().toNumPyArray() ; m0np=matrix(m0np.reshape(m0.getNumberOfRows(),m0.getNumberOfCols()))
15087 self.assertEqual(m1.getNumberOfRows(),2)
15088 self.assertEqual(m1.getNumberOfCols(),3)
15089 self.assertTrue(m1.getData().isEqual(DataArrayDouble([2,3,4,5,1,6]),1e-12))
15090 m11=m0.deepCpy() ; m11+=m1
15091 self.assertEqual(m11.getNumberOfRows(),2)
15092 self.assertEqual(m11.getNumberOfCols(),3)
15093 self.assertTrue(m11.getData().isEqual(DataArrayDouble([4,6,8,10,2,12]),1e-12))
15095 self.assertEqual(m11.getNumberOfRows(),2)
15096 self.assertEqual(m11.getNumberOfCols(),3)
15097 self.assertTrue(m11.getData().isEqual(DataArrayDouble([6,9,12,15,3,18]),1e-12))
15099 self.assertEqual(m11.getNumberOfRows(),2)
15100 self.assertEqual(m11.getNumberOfCols(),3)
15101 self.assertTrue(m11.getData().isEqual(DataArrayDouble([4,6,8,10,2,12]),1e-12))
15103 self.assertEqual(m1.getNumberOfRows(),2)
15104 self.assertEqual(m1.getNumberOfCols(),3)
15105 self.assertTrue(m1.getData().isEqual(DataArrayDouble([2,3,4,5,1,6]),1e-12))
15107 self.assertEqual(m1.getNumberOfRows(),3)
15108 self.assertEqual(m1.getNumberOfCols(),2)
15109 self.assertTrue(m1.getData().isEqual(DataArrayDouble([2,5,3,1,4,6]),1e-12))
15110 #m1np=m0np.transpose()
15112 self.assertEqual(m2.getNumberOfRows(),2)
15113 self.assertEqual(m2.getNumberOfCols(),2)
15114 self.assertTrue(m2.getData().isEqual(DataArrayDouble([29,37,37,62]),1e-12))
15117 def testSwig2AMR2(self):
15118 """ 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."""
15119 coarse=DataArrayDouble(35) ; coarse.iota(0) #X=5,Y=7
15120 fine=DataArrayDouble(3*2*4*4) ; fine.iota(0) #X=3,Y=2 refined by 4
15121 MEDCouplingIMesh.CondenseFineToCoarse([5,7],fine,[(1,4),(2,4)],[4,4],coarse)
15122 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))
15124 coarse=DataArrayDouble(175) ; coarse.iota(0) #X=5,Y=7,Z=5
15125 fine=DataArrayDouble(3*2*3*4*4*4) ; fine.iota(0) #X=3,Y=2,Z=3 refined by 4
15126 MEDCouplingIMesh.CondenseFineToCoarse([5,7,5],fine,[(1,4),(2,4),(1,4)],[4,4,4],coarse)
15127 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))
15129 coarse=DataArrayDouble(5) ; coarse.iota(0) #X=5
15130 fine=DataArrayDouble(3*4) ; fine.iota(0) #X=3 refined by 4
15131 MEDCouplingIMesh.CondenseFineToCoarse([5],fine,[(1,4)],[4],coarse)
15132 self.assertTrue(coarse.isEqual(DataArrayDouble([0,6,22,38,4]),1e-12))
15135 def testSwig2AMR3(self):
15136 """ Test spread of coarse IMesh instance into a fine one, with a factor."""
15137 coarse=DataArrayDouble(35) ; coarse.iota(0) #X=5,Y=7
15138 fine=DataArrayDouble(3*2*4*4) ; fine.iota(0) #X=3,Y=2 refined by 4
15139 MEDCouplingIMesh.SpreadCoarseToFine(coarse,[5,7],fine,[(1,4),(2,4)],[4,4])
15140 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))
15142 coarse=DataArrayDouble(175) ; coarse.iota(0) #X=5,Y=7,Z=5
15143 fine=DataArrayDouble(3*2*3*4*4*4) ; fine.iota(0) #X=3,Y=2,Z=3 refined by 4
15144 MEDCouplingIMesh.SpreadCoarseToFine(coarse,[5,7,5],fine,[(1,4),(2,4),(1,4)],[4,4,4])
15145 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))
15146 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()
15147 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()
15149 coarse=DataArrayDouble(5) ; coarse.iota(0) #X=5
15150 fine=DataArrayDouble(3*4) ; fine.iota(0) #X=3 refined by 4
15151 MEDCouplingIMesh.SpreadCoarseToFine(coarse,[5],fine,[(1,4)],[4])
15152 self.assertTrue(fine.isEqual(DataArrayDouble([1.,1.,1.,1.,2.,2.,2.,2.,3.,3.,3.,3.]),1e-12))
15155 def testSwig2AMR4(self):
15156 """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."""
15157 im=MEDCouplingIMesh("mesh",2,[51,51],[0.,0.],[0.04,0.04])
15158 b=im.getBarycenterAndOwner() ; b-=[1.,1.] ; b=b.magnitude()
15159 ids=b.getIdsInRange(0.4,0.7)
15160 f=MEDCouplingFieldDouble(ON_CELLS) ; f.setMesh(im) ; f.setName("toto") ; arr=DataArrayDouble(im.getNumberOfCells()) ; arr[:]=0. ; arr[ids]=1. ; f.setArray(arr)
15161 # f.write("test.vti")
15162 amr=MEDCouplingCartesianAMRMesh(MEDCouplingIMesh("mesh",2,[51,51],[0.,0.],[0.04,0.04]))
15163 arr2=DataArrayByte(im.getNumberOfCells()) ; arr2[:]=0 ; arr2[ids]=1
15164 bso=BoxSplittingOptions() ; bso.setEfficiencyGoal(0.5); bso.setEfficiencyThreshold(0.8) ; bso.setMaximumNbOfCellsInPatch(3000) ; bso.setMinimumPatchLength(6) ; bso.setMaximumPatchLength(11)
15165 amr.createPatchesFromCriterion(bso,arr2,[2,2])
15166 m=amr.getImageMesh() ; m=m.buildUnstructured() ; m.changeSpaceDimension(3,1.)
15167 self.assertEqual(12,amr.getNumberOfPatches())
15168 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)]]
15169 for i,bltr in enumerate(exp0):
15170 self.assertEqual(amr[i].getBLTRRange(),bltr)
15172 self.assertAlmostEqual(0.666666666667,amr[3].getMesh().getImageMesh().computeSquareness(),12)
15174 self.assertEqual(MEDCouplingStructuredMesh.ChangeReferenceToGlobalOfCompactFrmt([(8,32),(4,17)],[(0,24),(2,12)]),[(8,32),(6,16)])
15175 self.assertEqual(MEDCouplingStructuredMesh.ChangeReferenceFromGlobalOfCompactFrmt([(8,32),(4,17)],[(8,32),(6,16)]),[(0,24),(2,12)])
15176 self.assertTrue(amr.getImageMesh().isEqual(im,1e-12))
15177 m=amr.getImageMesh().asSingleCell().build1SGTUnstructured()
15178 self.assertTrue(m.getNodalConnectivity().isEqual(DataArrayInt([1,0,2,3])))
15179 self.assertTrue(m.getCoords().isEqualWithoutConsideringStr(DataArrayDouble([(0,0),(2,0),(0,2),(2,2)]),1e-12))
15182 def testSwig2AMR5(self):
15183 """ Idem testAMR3, test spread of coarse IMesh instance into a fine one, with a factor, but here ghost is used !"""
15185 coarse=DataArrayDouble(5+2) ; coarse.iota(-1) #X=5 with ghostLev=1
15186 fine=DataArrayDouble(3*4+2) ; fine.iota(1000) #X=3 refined by 4 with ghostLev=1
15187 MEDCouplingIMesh.SpreadCoarseToFineGhost(coarse,[5],fine,[(1,4)],[4],1)
15188 self.assertTrue(fine.isEqual(DataArrayDouble([0,1,1,1,1,2,2,2,2,3,3,3,3,4]),1e-12))
15190 MEDCouplingIMesh.CondenseFineToCoarseGhost([5],fine,[(1,4)],[4],coarse,1)
15191 self.assertTrue(coarse.isEqual(DataArrayDouble([-1000.,-999.,4.,8.,12.,-995.,-994.]),1e-12))
15193 coarse=DataArrayDouble((5+2*1)*(7+2*1)) ; coarse.iota(0) #X=5,Y=7 with ghostLev=1
15194 fine=DataArrayDouble((3*4+2*1)*(2*4+2*1)) ; fine.iota(1000) #X=3,Y=2 refined by 4
15195 MEDCouplingIMesh.SpreadCoarseToFineGhost(coarse,[5,7],fine,[(1,4),(2,4)],[4,4],1)
15196 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))
15197 f=MEDCouplingFieldDouble(ON_CELLS) ; f.setMesh(MEDCouplingIMesh("",2,DataArrayInt([8,10]),[0.,0.],DataArrayDouble((1.,1.)))) ; f.setArray(coarse) ; f.setName("tutu") ; f.checkCoherency()
15199 fine2=DataArrayDouble.Meld(fine,3*fine) ; coarse2=DataArrayDouble.Meld(coarse,3*coarse)
15200 MEDCouplingIMesh.CondenseFineToCoarseGhost([5,7],fine,[(1,4),(2,4)],[4,4],coarse,1)
15201 MEDCouplingIMesh.CondenseFineToCoarseGhost([5,7],fine2,[(1,4),(2,4)],[4,4],coarse2,1)
15202 f=MEDCouplingFieldDouble(ON_CELLS) ; f.setMesh(MEDCouplingIMesh("",2,DataArrayInt([8,10]),[0.,0.],DataArrayDouble((1.,1.)))) ; f.setArray(coarse) ; f.setName("tutu") ; f.checkCoherency()
15203 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.])
15204 self.assertTrue(coarse.isEqual(coarseExp,1e-12))
15205 self.assertTrue(coarse2[:,0].isEqual(coarseExp,1e-12))
15206 self.assertTrue(coarse2[:,1].isEqual(3*coarseExp,1e-12))
15209 def testSwig2AMR6(self):
15210 """ 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."""
15211 amr=MEDCouplingCartesianAMRMesh("",2,[6,6],[0,0],[1,1])
15212 da=DataArrayDouble((5+2)*(5+2)) ; da.iota() ; da+=0.9
15213 amr.addPatch([(1,4),(2,4)],[4,4])
15214 amr.addPatch([(0,1),(0,1)],[4,4])
15215 amr.addPatch([(4,5),(3,4)],[4,4])
15216 amr.addPatch([(4,5),(1,3)],[4,4])
15217 amr.addPatch([(0,1),(1,4)],[4,4])
15218 da0=DataArrayDouble((3*4+2)*(2*4+2)) ; da0.iota() ; da0[:]+=0.2
15219 da1=DataArrayDouble((1*4+2)*(1*4+2)) ; da1.iota() ; da1[:]+=0.4
15220 da2=DataArrayDouble((1*4+2)*(1*4+2)) ; da2.iota() ; da2[:]+=0.6
15221 da3=DataArrayDouble((1*4+2)*(2*4+2)) ; da3.iota() ; da3[:]+=0.7
15222 da4=DataArrayDouble((1*4+2)*(3*4+2)) ; da4.iota() ; da4[:]+=0.8
15223 self.assertEqual(5,amr.getNumberOfPatches())
15224 l=[da0,da1,da2,da3,da4]
15225 lCpy=[elt.deepCpy() for elt in l]
15226 l2=[DataArrayDouble.Meld(elt,3*elt) for elt in l]
15227 amr.fillCellFieldOnPatchGhostAdv(0,da,1,l,False)
15228 amr.fillCellFieldOnPatchGhostAdv(0,DataArrayDouble.Meld(da,3*da),1,l2,False)
15229 amr.fillCellFieldOnPatchOnlyOnGhostZone(0,da,lCpy[0],1)
15231 f=MEDCouplingFieldDouble(ON_CELLS) ; f.setMesh(amr.getImageMesh().buildWithGhost(1)) ; f.setArray(da) ; f.setName("all")
15232 f0=MEDCouplingFieldDouble(ON_CELLS) ; f0.setMesh(amr[0].getMesh().getImageMesh().buildWithGhost(1)) ; f0.setArray(da0) ; f0.setName("p0") ; f0.checkCoherency()
15233 f1=MEDCouplingFieldDouble(ON_CELLS) ; f1.setMesh(amr[1].getMesh().getImageMesh().buildWithGhost(1)) ; f1.setArray(da1) ; f1.setName("p1") ; f1.checkCoherency()
15234 f2=MEDCouplingFieldDouble(ON_CELLS) ; f2.setMesh(amr[2].getMesh().getImageMesh().buildWithGhost(1)) ; f2.setArray(da2) ; f2.setName("p2") ; f2.checkCoherency()
15235 f3=MEDCouplingFieldDouble(ON_CELLS) ; f3.setMesh(amr[3].getMesh().getImageMesh().buildWithGhost(1)) ; f3.setArray(da3) ; f3.setName("p3") ; f3.checkCoherency()
15236 f4=MEDCouplingFieldDouble(ON_CELLS) ; f4.setMesh(amr[4].getMesh().getImageMesh().buildWithGhost(1)) ; f4.setArray(da4) ; f4.setName("p4") ; f4.checkCoherency()
15238 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])
15239 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])
15240 self.assertTrue(da0.isEqual(da0Exp,1e-12))
15241 self.assertTrue(l2[0][:,0].isEqual(da0Exp,1e-12))
15242 self.assertTrue(l2[0][:,1].isEqual(3*da0Exp,1e-12))
15243 self.assertTrue(lCpy[0].isEqual(da0Exp2,1e-12))
15245 g0=amr.retrieveGridsAt(0)
15246 self.assertEqual(1,len(g0))
15247 self.assertTrue(isinstance(g0[0],MEDCouplingCartesianAMRPatchGF))
15248 g1=amr.retrieveGridsAt(1)
15249 self.assertEqual(5,len(g1))
15250 for i in xrange(5):
15251 self.assertTrue(isinstance(g1[i],MEDCouplingCartesianAMRPatch))
15255 def testSwig2AMR7(self):
15256 """Idem testSwig2AMR6 except that we are in 1D"""
15257 amr=MEDCouplingCartesianAMRMesh("",1,[6],[0],[1])
15258 da=DataArrayDouble(5+2) ; da.iota() ; da+=0.9
15259 amr.addPatch([(1,4)],[4])
15260 amr.addPatch([(0,1)],[4])
15261 da0=DataArrayDouble(3*4+2) ; da0.iota() ; da0[:]+=0.2
15262 da1=DataArrayDouble(1*4+2) ; da1.iota() ; da1[:]+=0.4
15263 self.assertEqual(2,amr.getNumberOfPatches())
15265 lCpy=[elt.deepCpy() for elt in l]
15266 l2=[DataArrayDouble.Meld(elt,3*elt) for elt in l]
15267 amr.fillCellFieldOnPatchGhostAdv(0,da,1,l,False)
15268 amr.fillCellFieldOnPatchGhostAdv(0,DataArrayDouble.Meld(da,3*da),1,l2,False)
15269 amr.fillCellFieldOnPatchOnlyOnGhostZone(0,da,lCpy[0],1)
15271 f=MEDCouplingFieldDouble(ON_CELLS) ; f.setMesh(amr.getImageMesh().buildWithGhost(1)) ; f.setArray(da) ; f.setName("all")
15272 f0=MEDCouplingFieldDouble(ON_CELLS) ; f0.setMesh(amr[0].getMesh().getImageMesh().buildWithGhost(1)) ; f0.setArray(da0) ; f0.setName("p0") ; f0.checkCoherency()
15273 f1=MEDCouplingFieldDouble(ON_CELLS) ; f1.setMesh(amr[1].getMesh().getImageMesh().buildWithGhost(1)) ; f1.setArray(da1) ; f1.setName("p1") ; f1.checkCoherency()
15275 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])
15276 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])
15277 self.assertTrue(da0.isEqual(da0Exp,1e-12))
15278 self.assertTrue(l2[0][:,0].isEqual(da0Exp,1e-12))
15279 self.assertTrue(l2[0][:,1].isEqual(3*da0Exp,1e-12))
15280 self.assertTrue(lCpy[0].isEqual(da0Exp2,1e-12))
15283 def testSwig2AMR8(self):
15284 """This test checks 'basic' operations for ghost update."""
15286 amr=MEDCouplingCartesianAMRMesh("",2,[6,7],[0,0],[1,1])
15287 amr.addPatch([(1,4),(2,4)],[4,4])
15288 amr.addPatch([(4,5),(3,5)],[4,4])
15289 amr.addPatch([(0,1),(4,6)],[4,4])
15290 amr[0].addPatch([(10,12),(5,8)],[2,2])
15291 amr[1].addPatch([(0,1),(0,5)],[2,2])
15292 amr[2].addPatch([(3,4),(0,3)],[2,2])
15293 m=amr.buildMeshFromPatchEnvelop()
15294 self.assertTrue(m.getNodalConnectivity().isEqual(DataArrayInt([1,0,2,3,5,4,6,7,9,8,10,11])))
15295 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))
15296 self.assertEqual(3,amr.getMaxNumberOfLevelsRelativeToThis())
15297 att=MEDCouplingAMRAttribute(amr,[("Field",["X"])],ghostSz)
15299 d=att.getFieldOn(amr,"Field")
15300 self.assertEqual(56,d.getNumberOfTuples())
15301 self.assertEqual(1,d.getNumberOfComponents())
15303 d0=att.getFieldOn(amr[0].getMesh(),"Field")
15304 self.assertEqual(140,d0.getNumberOfTuples())
15305 self.assertEqual(1,d0.getNumberOfComponents())
15306 d0.iota() ; d0+=0.2
15307 d1=att.getFieldOn(amr[1].getMesh(),"Field")
15308 self.assertEqual(60,d1.getNumberOfTuples())
15309 self.assertEqual(1,d1.getNumberOfComponents())
15310 d1.iota() ; d1+=0.3
15311 d2=att.getFieldOn(amr[2].getMesh(),"Field")
15312 self.assertEqual(60,d2.getNumberOfTuples())
15313 self.assertEqual(1,d2.getNumberOfComponents())
15314 d2.iota() ; d2+=0.4
15315 d00=att.getFieldOn(amr[0][0].getMesh(),"Field")
15316 self.assertEqual(48,d00.getNumberOfTuples())
15317 self.assertEqual(1,d00.getNumberOfComponents())
15318 d00.iota() ; d00+=0.5
15319 d10=att.getFieldOn(amr[1][0].getMesh(),"Field")
15320 self.assertEqual(48,d10.getNumberOfTuples())
15321 self.assertEqual(1,d10.getNumberOfComponents())
15322 d10.iota() ; d10+=0.6
15323 d20=att.getFieldOn(amr[2][0].getMesh(),"Field")
15324 self.assertEqual(32,d20.getNumberOfTuples())
15325 self.assertEqual(1,d20.getNumberOfComponents())
15326 d20.iota() ; d20+=0.7
15327 f=att.buildCellFieldOnRecurseWithoutOverlapWithoutGhost(amr,"Field")
15328 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])
15329 arrExp.setName("Field") ; arrExp.setInfoOnComponents(["X"])
15330 self.assertTrue(f.getArray().isEqual(arrExp,1e-12))
15331 m=MEDCoupling1SGTUMesh(f.getMesh())
15332 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])))
15333 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))
15334 # the test is here ! To be called after iteration with no remesh
15335 att.synchronizeAllGhostZones()
15336 f=att.buildCellFieldOnWithGhost(amr,"Field") ; f.checkCoherency()
15337 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))
15338 f0=att.buildCellFieldOnWithGhost(amr[0].getMesh(),"Field")
15339 f1=att.buildCellFieldOnWithGhost(amr[1].getMesh(),"Field")
15340 f2=att.buildCellFieldOnWithGhost(amr[2].getMesh(),"Field")
15341 f00=att.buildCellFieldOnWithGhost(amr[0][0].getMesh(),"Field")
15342 f10=att.buildCellFieldOnWithGhost(amr[1][0].getMesh(),"Field")
15343 f20=att.buildCellFieldOnWithGhost(amr[2][0].getMesh(),"Field")
15344 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))
15345 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))
15346 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))
15347 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))
15348 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))
15349 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))
15350 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))
15353 def testSwig2AMR9(self):
15354 """ Equivalent to testSwig2AMR8 except that here the ghost level is 2 !"""
15356 amr=MEDCouplingCartesianAMRMesh("",2,[6,7],[0,0],[1,1])
15357 amr.addPatch([(1,4),(2,4)],[4,4])
15358 amr.addPatch([(4,5),(3,5)],[4,4])
15359 amr.addPatch([(0,1),(4,6)],[4,4])
15360 amr[0].addPatch([(10,12),(5,8)],[2,2])
15361 amr[1].addPatch([(0,1),(0,5)],[2,2])
15362 amr[2].addPatch([(3,4),(0,3)],[2,2])
15363 self.assertEqual(3,amr.getMaxNumberOfLevelsRelativeToThis())
15364 att=MEDCouplingAMRAttribute(amr,[("Field",["X"])],ghostSz)
15366 d=att.getFieldOn(amr,"Field")
15367 self.assertEqual(90,d.getNumberOfTuples())
15368 self.assertEqual(1,d.getNumberOfComponents())
15370 d0=att.getFieldOn(amr[0].getMesh(),"Field")
15371 self.assertEqual(192,d0.getNumberOfTuples())
15372 self.assertEqual(1,d0.getNumberOfComponents())
15373 d0.iota() ; d0+=0.2
15374 d1=att.getFieldOn(amr[1].getMesh(),"Field")
15375 self.assertEqual(96,d1.getNumberOfTuples())
15376 self.assertEqual(1,d1.getNumberOfComponents())
15377 d1.iota() ; d1+=0.3
15378 d2=att.getFieldOn(amr[2].getMesh(),"Field")
15379 self.assertEqual(96,d2.getNumberOfTuples())
15380 self.assertEqual(1,d2.getNumberOfComponents())
15381 d2.iota() ; d2+=0.4
15382 d00=att.getFieldOn(amr[0][0].getMesh(),"Field")
15383 self.assertEqual(80,d00.getNumberOfTuples())
15384 self.assertEqual(1,d00.getNumberOfComponents())
15385 d00.iota() ; d00+=0.5
15386 d10=att.getFieldOn(amr[1][0].getMesh(),"Field")
15387 self.assertEqual(84,d10.getNumberOfTuples())
15388 self.assertEqual(1,d10.getNumberOfComponents())
15389 d10.iota() ; d10+=0.6
15390 d20=att.getFieldOn(amr[2][0].getMesh(),"Field")
15391 self.assertEqual(60,d20.getNumberOfTuples())
15392 self.assertEqual(1,d20.getNumberOfComponents())
15393 d20.iota() ; d20+=0.7
15394 # the test is here ! To be called after iteration with no remesh
15395 att.synchronizeAllGhostZones()
15396 f=att.buildCellFieldOnWithGhost(amr,"Field")
15397 f0=att.buildCellFieldOnWithGhost(amr[0].getMesh(),"Field")
15398 f1=att.buildCellFieldOnWithGhost(amr[1].getMesh(),"Field")
15399 f2=att.buildCellFieldOnWithGhost(amr[2].getMesh(),"Field")
15400 f00=att.buildCellFieldOnWithGhost(amr[0][0].getMesh(),"Field")
15401 f10=att.buildCellFieldOnWithGhost(amr[1][0].getMesh(),"Field")
15402 f20=att.buildCellFieldOnWithGhost(amr[2][0].getMesh(),"Field")
15403 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))
15404 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))
15405 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))
15406 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))
15407 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))
15408 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))
15409 self.assertTrue(MEDCouplingStructuredMesh.ComputeCornersGhost([3],1).isEqual(DataArrayInt([0,4])))
15410 self.assertTrue(MEDCouplingStructuredMesh.ComputeCornersGhost([3],2).isEqual(DataArrayInt([0,1,5,6])))
15411 self.assertTrue(MEDCouplingStructuredMesh.ComputeCornersGhost([5,6],1).isEqual(DataArrayInt([0,6,49,55])))
15412 self.assertTrue(MEDCouplingStructuredMesh.ComputeCornersGhost([5,6],2).isEqual(DataArrayInt([0,8,10,16,73,79,81,89])))
15413 self.assertTrue(MEDCouplingStructuredMesh.ComputeCornersGhost([5,6,3],1).isEqual(DataArrayInt([0,6,49,55,224,230,273,279])))
15414 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])))
15417 def testSwig2AMR10(self):
15418 """ 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."""
15420 amr=MEDCouplingCartesianAMRMesh("",2,[11,11],[0,0],[0.1,0.1])
15421 amr.addPatch([(3,8),(0,3)],[2,2])
15422 amr[0].addPatch([(0,10),(3,6)],[3,3])
15423 amr[0].addPatch([(2,6),(0,3)],[3,3])
15424 amr[0].addPatch([(6,10),(2,3)],[3,3])
15425 amr.addPatch([(3,8),(3,6)],[2,2])
15426 amr[1].addPatch([(0,4),(0,6)],[3,3])
15427 amr[1].addPatch([(7,10),(0,4)],[3,3])
15428 amr[1].addPatch([(4,7),(0,3)],[3,3])
15429 amr[1].addPatch([(4,7),(3,6)],[3,3])
15430 amr.addPatch([(0,3),(6,10)],[2,2])
15431 self.assertEqual(([(30,39),(27,36)],[6,6]),amr[1][3].getMesh().positionRelativeToGodFather())
15432 self.assertEqual(([(6,16),(6,12)],[2,2]),amr[1].getMesh().positionRelativeToGodFather())
15433 self.assertTrue(not MEDCouplingStructuredMesh.AreRangesIntersect([(30,39),(27,36)],[(6,16),(6,12)]))
15434 self.assertTrue(MEDCouplingStructuredMesh.AreRangesIntersect([(30,39),(27,36)],[(28,32),(35,37)]))
15435 da=DataArrayDouble([0.,1.,2.,3.,4.,5.,6.,7.,8.,9.,10.,11.])
15436 MEDCouplingStructuredMesh.AssignPartOfFieldOfDoubleUsing([3,4],da,[(1,3),(2,3)],DataArrayDouble([7.7,8.8]))
15437 self.assertTrue(da.isEqual(DataArrayDouble([0.,1.,2.,3.,4.,5.,6.,7.7,8.8,9.,10.,11.]),1e-12))
15438 att=MEDCouplingAMRAttribute(amr,[("YY",1)],szGhost)
15439 att.spillNatures([ConservativeVolumic])
15441 yy=att.getFieldOn(amr,"YY") ; yy.iota(0.01)
15442 yy=att.getFieldOn(amr[0].getMesh(),"YY") ; yy.iota(0.02)
15443 yy=att.getFieldOn(amr[1].getMesh(),"YY") ; yy.iota(0.03)
15444 yy=att.getFieldOn(amr[0][0].getMesh(),"YY") ; yy.iota(0.04)
15445 yy=att.getFieldOn(amr[0][1].getMesh(),"YY") ; yy.iota(0.05)
15446 yy=att.getFieldOn(amr[0][2].getMesh(),"YY") ; yy.iota(0.06)
15447 yy=att.getFieldOn(amr[1][0].getMesh(),"YY") ; yy.iota(0.07)
15448 yy=att.getFieldOn(amr[1][1].getMesh(),"YY") ; yy.iota(0.08)
15449 yy=att.getFieldOn(amr[1][2].getMesh(),"YY") ; yy.iota(0.09)
15450 yy=att.getFieldOn(amr[1][3].getMesh(),"YY") ; yy.iota(0.10)
15451 yy=att.getFieldOn(amr[2].getMesh(),"YY") ; yy.iota(0.11)
15452 att2=att.deepCpy() ; att3=att2.deepCpy() ; att4=att3.deepCpy() ; att5=att4.deepCpy() ; att6=att5.deepCpy()
15454 att.synchronizeFineToCoarseBetween(2,1)
15456 for pos in [(),(0,0),(0,1),(0,2),(1,0),(1,1),(1,2),(1,3)]:
15457 self.assertTrue(att.getFieldOn(att.getMyGodFather().getMeshAtPosition(pos),"YY").isEqual(att2.getFieldOn(att2.getMyGodFather().getMeshAtPosition(pos),"YY"),1e-12))
15459 for pos in [(0,),(1,)]:
15460 self.assertTrue(not att.getFieldOn(att.getMyGodFather().getMeshAtPosition(pos),"YY").isEqual(att2.getFieldOn(att2.getMyGodFather().getMeshAtPosition(pos),"YY"),1e-12))
15462 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))
15463 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))
15466 att2.synchronizeAllGhostZonesOfDirectChidrenOf(att2.getMyGodFather())
15467 ### 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.
15468 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])
15469 self.assertTrue(att2.getFieldOn(att2.getMyGodFather().getMeshAtPosition((2,)),"YY").isEqualWithoutConsideringStr(exp2,1e-12))
15470 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])
15471 self.assertTrue(att2.getFieldOn(att2.getMyGodFather().getMeshAtPosition((1,)),"YY").isEqualWithoutConsideringStr(exp3,1e-12))
15472 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])
15473 self.assertTrue(att2.getFieldOn(att2.getMyGodFather().getMeshAtPosition((0,)),"YY").isEqualWithoutConsideringStr(exp4,1e-12))
15474 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)]:
15475 vals=att2.getFieldOn(att2.getMyGodFather().getMeshAtPosition(pos),"YY")
15476 l=vals.getNumberOfTuples()
15477 exps=DataArrayDouble(l) ; exps.iota(iot)
15478 self.assertTrue(vals.isEqualWithoutConsideringStr(exps,1e-12))
15482 att3.synchronizeCoarseToFineBetween(1,2)
15484 for pos in [(),(0,),(1,),(2,)]:
15485 self.assertTrue(att3.getFieldOn(att3.getMyGodFather().getMeshAtPosition(pos),"YY").isEqual(att4.getFieldOn(att4.getMyGodFather().getMeshAtPosition(pos),"YY"),1e-12))
15487 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])
15488 self.assertTrue(att3.getFieldOn(att3.getMyGodFather().getMeshAtPosition((0,0)),"YY").isEqualWithoutConsideringStr(exp5,1e-12))
15489 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])
15490 self.assertTrue(att3.getFieldOn(att3.getMyGodFather().getMeshAtPosition((0,1)),"YY").isEqualWithoutConsideringStr(exp6,1e-12))
15491 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])
15492 self.assertTrue(att3.getFieldOn(att3.getMyGodFather().getMeshAtPosition((0,2)),"YY").isEqualWithoutConsideringStr(exp7,1e-12))
15493 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])
15494 self.assertTrue(att3.getFieldOn(att3.getMyGodFather().getMeshAtPosition((1,0)),"YY").isEqualWithoutConsideringStr(exp8,1e-12))
15495 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])
15496 self.assertTrue(att3.getFieldOn(att3.getMyGodFather().getMeshAtPosition((1,1)),"YY").isEqualWithoutConsideringStr(exp9,1e-12))
15497 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])
15498 self.assertTrue(att3.getFieldOn(att3.getMyGodFather().getMeshAtPosition((1,2)),"YY").isEqualWithoutConsideringStr(exp10,1e-12))
15499 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])
15500 self.assertTrue(att3.getFieldOn(att3.getMyGodFather().getMeshAtPosition((1,3)),"YY").isEqualWithoutConsideringStr(exp11,1e-12))
15503 att4.synchronizeAllGhostZonesAtASpecifiedLevel(2)
15504 for pos in [(),(0,),(1,),(2,)]:
15505 self.assertTrue(att4.getFieldOn(att4.getMyGodFather().getMeshAtPosition(pos),"YY").isEqual(att5.getFieldOn(att5.getMyGodFather().getMeshAtPosition(pos),"YY"),1e-12))
15507 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])
15508 self.assertTrue(att4.getFieldOn(att4.getMyGodFather().getMeshAtPosition((0,0)),"YY").isEqualWithoutConsideringStr(exp12,1e-12))
15509 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]])
15510 self.assertTrue(att4.getFieldOn(att4.getMyGodFather().getMeshAtPosition((0,1)),"YY").isEqualWithoutConsideringStr(exp13,1e-12))
15511 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])
15512 self.assertTrue(att4.getFieldOn(att4.getMyGodFather().getMeshAtPosition((0,2)),"YY").isEqualWithoutConsideringStr(exp14,1e-12))
15513 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])
15514 self.assertTrue(att4.getFieldOn(att4.getMyGodFather().getMeshAtPosition((1,0)),"YY").isEqualWithoutConsideringStr(exp15,1e-12))
15515 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])
15516 self.assertTrue(att4.getFieldOn(att4.getMyGodFather().getMeshAtPosition((1,1)),"YY").isEqualWithoutConsideringStr(exp16,1e-12))
15517 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])
15518 self.assertTrue(att4.getFieldOn(att4.getMyGodFather().getMeshAtPosition((1,2)),"YY").isEqualWithoutConsideringStr(exp17,1e-12))
15519 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])
15520 self.assertTrue(att4.getFieldOn(att4.getMyGodFather().getMeshAtPosition((1,3)),"YY").isEqualWithoutConsideringStr(exp18,1e-12))
15523 att5.synchronizeAllGhostZonesAtASpecifiedLevelUsingOnlyFather(2)
15524 for pos in [(),(0,),(1,),(2,)]:
15525 self.assertTrue(att5.getFieldOn(att5.getMyGodFather().getMeshAtPosition(pos),"YY").isEqual(att6.getFieldOn(att6.getMyGodFather().getMeshAtPosition(pos),"YY"),1e-12))
15527 att5.buildCellFieldOnWithGhost(att5.getMyGodFather().getMeshAtPosition((0,0)),"YY")
15528 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])
15529 self.assertTrue(att5.getFieldOn(att5.getMyGodFather().getMeshAtPosition((0,0)),"YY").isEqualWithoutConsideringStr(exp19,1e-12))
15530 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])
15531 self.assertTrue(att5.getFieldOn(att5.getMyGodFather().getMeshAtPosition((0,1)),"YY").isEqualWithoutConsideringStr(exp20,1e-12))
15532 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])
15533 self.assertTrue(att5.getFieldOn(att5.getMyGodFather().getMeshAtPosition((0,2)),"YY").isEqualWithoutConsideringStr(exp21,1e-12))
15534 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])
15535 self.assertTrue(att5.getFieldOn(att5.getMyGodFather().getMeshAtPosition((1,0)),"YY").isEqualWithoutConsideringStr(exp22,1e-12))
15536 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])
15537 self.assertTrue(att5.getFieldOn(att5.getMyGodFather().getMeshAtPosition((1,1)),"YY").isEqualWithoutConsideringStr(exp23,1e-12))
15538 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])
15539 self.assertTrue(att5.getFieldOn(att5.getMyGodFather().getMeshAtPosition((1,2)),"YY").isEqualWithoutConsideringStr(exp24,1e-12))
15540 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])
15541 self.assertTrue(att5.getFieldOn(att5.getMyGodFather().getMeshAtPosition((1,3)),"YY").isEqualWithoutConsideringStr(exp25,1e-12))
15544 def testSwig2AMR11(self):
15545 """ Some tests in 3D with CondenseFineToCoarseGhost and SpreadCoarseToFineGhost"""
15546 coarse=DataArrayDouble((6+4)*(7+4)*(5+4)) ; coarse.iota()
15547 fine=DataArrayDouble((4*2+4)*(2*3+4)*(3*4+4))
15548 MEDCouplingIMesh.SpreadCoarseToFineGhost(coarse,[6,7,5],fine,[(1,5),(2,4),(1,4)],[2,3,4],2)
15549 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.])
15550 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.])
15551 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.])
15552 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.])
15553 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.])
15554 exp=DataArrayDouble.Aggregate([exp0,exp0,exp1,exp1,exp1,exp1,exp2,exp2,exp2,exp2,exp3,exp3,exp3,exp3,exp4,exp4])
15555 self.assertTrue(fine.isEqual(exp,1e-12))
15559 MEDCouplingIMesh.CondenseFineToCoarseGhost([6,7,5],fine,[(1,5),(2,4),(1,4)],[2,3,4],coarse,2)
15560 amr=MEDCouplingCartesianAMRMesh("mesh",3,[7,8,6],[0.,0.,0.],[1.,1.,1.])
15561 amr.addPatch([(1,5),(2,4),(1,4)],[2,3,4])
15562 att=MEDCouplingAMRAttribute(amr,[("YY",1)],2)
15564 exp1=DataArrayDouble(990) ; exp1.iota(0.5)
15565 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])
15566 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.])
15568 self.assertTrue(coarse.isEqual(exp1,1e-12))
15570 MEDCouplingStructuredMesh.MultiplyPartOf([10,11,9],[(3,7),(4,6),(3,6)],1/24.,coarse)
15571 exp2=DataArrayDouble(990) ; exp2.iota(0.5)
15573 self.assertTrue(coarse.isEqual(exp2,1e-12))
15575 coarse.iota(0.5) ; fine.iota(0.1)
15576 MEDCouplingIMesh.SpreadCoarseToFineGhostZone(coarse,[6,7,5],fine,[(1,5),(2,4),(1,4)],[2,3,4],2)
15578 coarse.iota(0.5) ; fine.iota(0.1)
15579 MEDCouplingIMesh.SpreadCoarseToFineGhostZone(coarse,[6,7,5],fine,[(1,5),(2,4),(1,4)],[2,3,4],2)
15580 exp00=DataArrayDouble.Aggregate([exp0,exp0]) ; exp00+=0.5
15581 self.assertTrue(fine[:240].isEqual(exp00,1e-12))
15582 exp44=DataArrayDouble.Aggregate([exp4,exp4]) ; exp44+=0.5
15583 self.assertTrue(fine[-240:].isEqual(exp44,1e-12))
15584 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))
15587 def testSwig2AMR12(self):
15588 """ This test check the MEDCouplingAMRAttribute.projectTo method."""
15589 amr0=MEDCouplingCartesianAMRMesh("mesh",2,[11,11],[0.,0.],[1.,1.])
15590 amr0.addPatch([(3,8),(0,3)],[2,2])
15591 amr0.addPatch([(3,8),(3,6)],[2,2])
15592 att0=MEDCouplingAMRAttribute(amr0,[("YY",1)],2)
15594 att0.getFieldOn(amr0,"YY").iota(0.01)
15595 att0.getFieldOn(amr0[0].getMesh(),"YY").iota(0.02)
15596 att0.getFieldOn(amr0[1].getMesh(),"YY").iota(0.03)
15597 amr1=MEDCouplingCartesianAMRMesh("mesh",2,[11,11],[0.,0.],[1.,1.])
15598 amr1.addPatch([(2,5),(1,4)],[2,2])
15599 att1=att0.projectTo(amr1)
15600 self.assertTrue(att1.getFieldOn(amr1,"YY").isEqualWithoutConsideringStr(att0.getFieldOn(amr0,"YY"),1e-12))
15601 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))
15603 amr0=MEDCouplingCartesianAMRMesh("mesh",2,[11,11],[0.,0.],[1.,1.])
15604 amr0.addPatch([(2,5),(2,7)],[2,2])
15605 amr0.addPatch([(5,8),(2,7)],[2,2])
15606 att0=MEDCouplingAMRAttribute(amr0,[("YY",1)],2)
15608 att0.getFieldOn(amr0,"YY").iota(0.01)
15609 att0.getFieldOn(amr0[0].getMesh(),"YY").iota(0.02)
15610 att0.getFieldOn(amr0[1].getMesh(),"YY").iota(0.03)
15611 amr1=MEDCouplingCartesianAMRMesh("mesh",2,[11,11],[0.,0.],[1.,1.])
15612 amr1.addPatch([(3,6),(2,7)],[2,2])
15613 amr1.addPatch([(6,9),(2,7)],[2,2])
15614 att1=att0.projectTo(amr1)
15615 self.assertTrue(att1.getFieldOn(amr1,"YY").isEqual(att0.getFieldOn(amr0,"YY"),1e-12))
15616 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))
15617 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))
15620 def testSwig2AMR13(self):
15621 """ non regression test"""
15622 for fact,len1,len2 in [([2,2],64,48),([3,3],100,70),([4,4],144,96)]:
15623 amr=MEDCouplingCartesianAMRMesh("mesh",2,[5,5],[0.,0.],[1.,1.])
15624 amr.addPatch([(1,3),(0,2)],fact)
15625 amr.addPatch([(1,3),(3,4)],fact)
15626 att=MEDCouplingAMRAttribute(amr,[("YY",1)],2)
15628 att.getFieldOn(amr,"YY").iota(0.1)
15629 att.getFieldOn(amr[0].getMesh(),"YY").iota(0.2)
15630 att.getFieldOn(amr[1].getMesh(),"YY").iota(0.3)
15631 att.synchronizeAllGhostZonesOfDirectChidrenOf(amr)
15632 exp=DataArrayDouble(64) ; exp.iota(0.1)
15633 self.assertTrue(att.getFieldOn(amr,"YY").isEqualWithoutConsideringStr(exp,1e-12))
15634 exp0=DataArrayDouble(len1) ; exp0.iota(0.2)
15635 self.assertTrue(att.getFieldOn(amr[0].getMesh(),"YY").isEqualWithoutConsideringStr(exp0,1e-12))
15636 exp1=DataArrayDouble(len2) ; exp1.iota(0.3)
15637 self.assertTrue(att.getFieldOn(amr[1].getMesh(),"YY").isEqualWithoutConsideringStr(exp1,1e-12))
15641 def testSwig2AMR14(self):
15642 """ non regression linked to VTHB write."""
15643 fact=[2,2] ; fact2=[3,3]
15644 amr=MEDCouplingCartesianAMRMesh("mesh",2,[5,5],[0.,0.],[1.,1.])
15645 amr.addPatch([(1,3),(0,2)],fact)
15646 amr.addPatch([(1,3),(3,4)],fact)
15647 amr[0].addPatch([(1,3),(1,3)],fact2)
15648 amr[1].addPatch([(1,3),(1,2)],fact2)
15649 att=MEDCouplingAMRAttribute(amr,[("YY",1)],2)
15651 att.getFieldOn(amr,"YY").iota(0.1)
15652 att.getFieldOn(amr[0].getMesh(),"YY").iota(0.2)
15653 att.getFieldOn(amr[1].getMesh(),"YY").iota(0.3)
15654 att.getFieldOn(amr[0][0].getMesh(),"YY").iota(0.4)
15655 att.getFieldOn(amr[1][0].getMesh(),"YY").iota(0.5)
15656 self.assertEqual(amr[0].getBLTRRangeRelativeToGF(),[(2,6),(0,4)])
15657 self.assertEqual(amr[1].getBLTRRangeRelativeToGF(),[(2,6),(6,8)])
15658 self.assertEqual(amr[0][0].getBLTRRangeRelativeToGF(),[(9,15),(3,9)])
15659 self.assertEqual(amr[1][0].getBLTRRangeRelativeToGF(),[(9,15),(21,24)])
15662 def testSwig2Intersect2DMeshWith1DLine1(self):
15663 """A basic test with no colinearity between m1 and m2."""
15664 i=MEDCouplingIMesh("mesh",2,[5,5],[0.,0.],[1.,1.])
15665 m1=i.buildUnstructured()
15666 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])
15667 a,b,c,d=MEDCouplingUMesh.Intersect2DMeshWith1DLine(m1,m2,1e-12)
15668 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])))
15669 self.assertTrue(b.getNodalConnectivity().isEqual(DataArrayInt([1,25,31,1,31,28,1,28,29,1,29,30,1,30,27,1,27,26])))
15670 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])))
15671 self.assertTrue(b.getNodalConnectivityIndex().isEqual(DataArrayInt([0,3,6,9,12,15,18])))
15672 self.assertTrue(a.getCoords().getHiddenCppPointer()==b.getCoords().getHiddenCppPointer())
15673 self.assertTrue(a.getCoords()[:25].isEqual(m1.getCoords(),1e-12))
15674 self.assertTrue(a.getCoords()[25:25+2].isEqualWithoutConsideringStr(m2.getCoords(),1e-12))
15675 self.assertTrue(a.getCoords()[27:].isEqualWithoutConsideringStr(DataArrayDouble([(3.3214285714285716,2.),(1.6071428571428572,3.),(2.,2.7708333333333335),(3.,2.1875),(1.,3.354166666666667)]),1e-12))
15676 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])))
15677 self.assertTrue(d.isEqual(DataArrayInt([(10,10),(11,12),(13,14),(15,16),(17,18),(19,19)])))
15680 def testSwig2Intersect2DMeshWith1DLine2(self):
15681 """A basic test with colinearity between m1 and m2 and the last cell of m2 outside m1."""
15682 i=MEDCouplingIMesh("mesh",2,[5,5],[0.,0.],[1.,1.])
15683 m1=i.buildUnstructured()
15684 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()
15685 for i in xrange(6):
15686 m2.insertNextCell(NORM_SEG2,[i,i+1])
15688 a,b,c,d=MEDCouplingUMesh.Intersect2DMeshWith1DLine(m1,m2,1e-12)
15689 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])))
15690 self.assertTrue(a.getNodalConnectivityIndex().isEqual(DataArrayInt([0,5,10,15,20,25,30,35,40,46,51,59,64,70,75,83,88])))
15691 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])))
15692 self.assertTrue(b.getNodalConnectivityIndex().isEqual(DataArrayInt([0,3,6,9,12,15,18,21,24])))
15693 self.assertTrue(a.getCoords().getHiddenCppPointer()==b.getCoords().getHiddenCppPointer())
15694 self.assertTrue(a.getCoords()[:25].isEqual(m1.getCoords(),1e-12))
15695 self.assertTrue(a.getCoords()[25:].isEqualWithoutConsideringStr(m2.getCoords(),1e-12))
15696 self.assertTrue(c.isEqual(DataArrayInt([0,1,2,3,12,13,14,15,4,5,6,7,8,9,10,11])))
15697 self.assertTrue(d.isEqual(DataArrayInt([(12,8),(13,9),(14,10),(14,10),(14,10),(14,10),(15,11),(-1,-1)])))
15700 def testSwig2Intersect2DMeshWith1DLine3(self):
15701 """m2 fully included in cell #12. of m1"""
15702 i=MEDCouplingIMesh("mesh",2,[5,5],[0.,0.],[1.,1.])
15703 m1=i.buildUnstructured()
15704 m2=MEDCouplingUMesh("mesh",1) ; m2.setCoords(DataArrayDouble([(0.75,3.25),(0.5,3.5),(0.25,3.25)])) ; m2.allocateCells()
15705 for i in xrange(2):
15706 m2.insertNextCell(NORM_SEG2,[i,i+1])
15708 a,b,c,d=MEDCouplingUMesh.Intersect2DMeshWith1DLine(m1,m2,1e-12)
15709 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])))
15710 self.assertTrue(a.getNodalConnectivityIndex().isEqual(DataArrayInt([0,5,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80])))
15711 self.assertTrue(b.getNodalConnectivity().isEqual(DataArrayInt([1,25,26,1,26,27])))
15712 self.assertTrue(b.getNodalConnectivityIndex().isEqual(DataArrayInt([0,3,6])))
15713 self.assertTrue(a.getCoords().getHiddenCppPointer()==b.getCoords().getHiddenCppPointer())
15714 self.assertTrue(a.getCoords()[:25].isEqual(m1.getCoords(),1e-12))
15715 self.assertTrue(a.getCoords()[25:].isEqualWithoutConsideringStr(m2.getCoords(),1e-12))
15716 self.assertTrue(c.isEqual(DataArrayInt([0,1,2,3,4,5,6,7,8,9,10,11,13,14,15,12])))
15717 self.assertTrue(d.isEqual(DataArrayInt([(15,15),(15,15)])))
15720 def testSwig2Intersect2DMeshWith1DLine4(self):
15721 """A special case where an edge is simultaneously a cut and colinear. This tests also checks negative values in descending edges of m1."""
15722 i=MEDCouplingIMesh("mesh",2,[5,5],[0.,0.],[1.,1.])
15723 m1=i.buildUnstructured()
15724 part=DataArrayInt([0,1,2,3,4,7,8,11,12,13,14,15])
15726 m1_2=m1[part.buildComplement(m1.getNumberOfCells())]
15727 m1=MEDCouplingUMesh.MergeUMeshesOnSameCoords(m1_1,m1_2.buildSpreadZonesWithPoly())
15729 m2=MEDCouplingUMesh("mesh",1) ; m2.setCoords(DataArrayDouble([(3.5,2.),(0.5,2.)])) ; m2.allocateCells()
15730 m2.insertNextCell(NORM_SEG2,[0,1])
15731 a,b,c,d=MEDCouplingUMesh.Intersect2DMeshWith1DLine(m1,m2,1e-12)
15732 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])))
15733 self.assertTrue(a.getNodalConnectivityIndex().isEqual(DataArrayInt([0,5,10,15,20,25,30,35,40,46,52,58,64,70,76])))
15734 self.assertTrue(b.getNodalConnectivity().isEqual(DataArrayInt([1,24,12,1,12,11,1,11,25])))
15735 self.assertTrue(b.getNodalConnectivityIndex().isEqual(DataArrayInt([0,3,6,9])))
15736 self.assertTrue(a.getCoords().getHiddenCppPointer()==b.getCoords().getHiddenCppPointer())
15737 self.assertTrue(a.getCoords()[:24].isEqual(m1.getCoords(),1e-12))
15738 self.assertTrue(a.getCoords()[24:].isEqualWithoutConsideringStr(m2.getCoords(),1e-12))
15739 self.assertTrue(c.isEqual(DataArrayInt([0,1,2,3,8,9,10,11,4,5,6,7,12,12])))
15740 self.assertTrue(d.isEqual(DataArrayInt([(9,11),(12,13),(8,10)])))
15743 def testSwig2Intersect2DMeshWith1DLine5(self):
15744 """A test focusing on a special case for cut."""
15745 i=MEDCouplingIMesh("mesh",2,[5,5],[0.,0.],[1.,1.])
15746 m1=i.buildUnstructured()
15747 m2=MEDCouplingUMesh("mesh",1) ; m2.setCoords(DataArrayDouble([(1.,0.),(3.,2.),(1.,4.)])) ; m2.allocateCells()
15748 for i in xrange(2):
15749 m2.insertNextCell(NORM_SEG2,[i,i+1])
15751 a,b,c,d=MEDCouplingUMesh.Intersect2DMeshWith1DLine(m1,m2,1e-12)
15752 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])))
15753 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])))
15754 self.assertTrue(b.getNodalConnectivity().isEqual(DataArrayInt([1,1,7,1,7,13,1,13,17,1,17,21])))
15755 self.assertTrue(b.getNodalConnectivityIndex().isEqual(DataArrayInt([0,3,6,9,12])))
15756 self.assertTrue(a.getCoords().getHiddenCppPointer()==b.getCoords().getHiddenCppPointer())
15757 self.assertTrue(a.getCoords()[:25].isEqual(m1.getCoords(),1e-12))
15758 self.assertTrue(a.getCoords()[25:].isEqualWithoutConsideringStr(m2.getCoords(),1e-12))
15759 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])))
15760 self.assertTrue(d.isEqual(DataArrayInt([(12,13),(14,15),(16,17),(18,19)])))
15763 def testIntersect2DMeshWith1DLine6(self):
15764 """ Basic test for Intersect2DMeshWith1DLine: a vertical line intersecting a square. """
15765 m1c = MEDCouplingCMesh()
15766 coordX = DataArrayDouble([-1., 1., 2])
15767 m1c.setCoordsAt(0,coordX)
15768 coordY = DataArrayDouble([0., 2.])
15769 m1c.setCoordsAt(1,coordY);
15770 m1 = m1c.buildUnstructured()
15773 m2 = MEDCouplingUMesh("bla", 1)
15774 coord2 = DataArrayDouble([0.,-1.0, 0.,1., 0.,3., 0.5,2.2], 4, 2)
15775 conn2 = DataArrayInt([NORM_SEG2,0,1,NORM_SEG3,1,2,3])
15776 connI2 = DataArrayInt([0,3,7])
15777 m2.setCoords(coord2)
15778 m2.setConnectivity(conn2, connI2)
15780 # End of construction of input meshes m1bis and m2 -> start of specific part of the test
15781 a,b,c,d = MEDCouplingUMesh.Intersect2DMeshWith1DLine(m1, m2, 1e-10)
15782 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])))
15783 self.assertTrue(a.getNodalConnectivityIndex().isEqual(DataArrayInt([0,5,16,27])))
15784 self.assertTrue(b.getNodalConnectivity().isEqual(DataArrayInt([1,6,10,1,10,7,2,7,11,12,2,11,8,13])))
15785 self.assertTrue(b.getNodalConnectivityIndex().isEqual(DataArrayInt([0,3,6,10,14])))
15786 self.assertTrue(a.getCoords().getHiddenCppPointer()==b.getCoords().getHiddenCppPointer())
15787 self.assertTrue(a.getCoords()[:6].isEqual(m1.getCoords(),1e-12))
15788 self.assertTrue(a.getCoords()[6:10].isEqual(m2.getCoords(),1e-12))
15789 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))
15790 self.assertTrue(c.isEqual(DataArrayInt([1,0,0])))
15791 self.assertTrue(d.isEqual(DataArrayInt([(-1,-1),(1,2),(1,2),(-1,-1)])))
15794 def testSwig2Intersect2DMeshWith1DLine7(self):
15795 """ Star pattern (a triangle intersecting another one upside down) """
15796 coords1 = DataArrayDouble([-2.,1., 2.,1., 0.,-2.], 3,2)
15797 coords2 = DataArrayDouble([0.,2., 2.,-1., -2.,-1., 0.,3.], 4,2)
15798 m1 = MEDCouplingUMesh("triangle", 2)
15799 m2 = MEDCouplingUMesh("tri_line", 1)
15800 m1.setCoords(coords1)
15801 m2.setCoords(coords2)
15802 m1.setConnectivity(DataArrayInt([NORM_TRI3, 0,1,2]), DataArrayInt([0,4]))
15803 m2.setConnectivity(DataArrayInt([NORM_SEG2,0,1,NORM_SEG2,1,2,NORM_SEG2,2,3]), DataArrayInt([0,3,6,9]))
15804 # End of construction of input meshes m1bis and m2 -> start of specific part of the test
15805 a,b,c,d = MEDCouplingUMesh.Intersect2DMeshWith1DLine(m1, m2, 1e-10)
15806 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])))
15807 self.assertTrue(a.getNodalConnectivityIndex().isEqual(DataArrayInt([0,4,8,12,19])))
15808 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])))
15809 self.assertTrue(b.getNodalConnectivityIndex().isEqual(DataArrayInt([0,3,6,9,12,15,18,21,24,27])))
15810 self.assertTrue(a.getCoords()[:3].isEqual(m1.getCoords(),1e-12))
15811 self.assertTrue(a.getCoords()[3:7].isEqual(m2.getCoords(),1e-12))
15812 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))
15813 self.assertTrue(a.getCoords().getHiddenCppPointer()==b.getCoords().getHiddenCppPointer())
15814 self.assertTrue(c.isEqual(DataArrayInt([0,0,0,0])))
15815 self.assertTrue(d.isEqual(DataArrayInt([(-1,-1),(0,3),(-1,-1),(-1,-1),(1,3),(-1,-1),(-1,-1),(2,3),(-1,-1)])))
15818 def testSwig2Intersect2DMeshWith1DLine8(self):
15819 """ Line pieces ending (or fully located) in the middle of a cell """
15820 m1c = MEDCouplingCMesh()
15821 m1c.setCoordsAt(0,DataArrayDouble([-1., 1.]))
15822 m1c.setCoordsAt(1,DataArrayDouble([-1., 1.]));
15823 m1 = m1c.buildUnstructured()
15824 coords2 = DataArrayDouble([0.,0., 0.,1.5, -1.5,0., 0.5,0.0, 0.0,-0.5, 1.1,-0.6], 6,2)
15825 m2 = MEDCouplingUMesh("piecewise_line", 1)
15826 m2.setCoords(coords2)
15827 c = DataArrayInt([NORM_SEG2,2,1, NORM_SEG2,1,4, NORM_SEG2,4,3, NORM_SEG2,3,5])
15828 cI = DataArrayInt([0,3,6,9,12])
15829 m2.setConnectivity(c, cI)
15830 a,b,c,d = MEDCouplingUMesh.Intersect2DMeshWith1DLine(m1, m2, 1e-10)
15831 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])))
15832 self.assertTrue(a.getNodalConnectivityIndex().isEqual(DataArrayInt([0,4,10,19])))
15833 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])))
15834 self.assertTrue(b.getNodalConnectivityIndex().isEqual(DataArrayInt([0,3,6,9,12,15,18,21,24])))
15835 self.assertTrue(a.getCoords()[:4].isEqual(m1.getCoords(),1e-12))
15836 self.assertTrue(a.getCoords()[4:10].isEqual(m2.getCoords(),1e-12))
15837 self.assertTrue(a.getCoords()[10:].isEqual(DataArrayDouble([(-1.,0.5),(-0.5,1.),(0.,1.),(1.,-0.5)]),1e-12))
15838 self.assertTrue(a.getCoords().getHiddenCppPointer()==b.getCoords().getHiddenCppPointer())
15839 self.assertTrue(c.isEqual(DataArrayInt([0,0,0])))
15840 self.assertTrue(d.isEqual(DataArrayInt([(-1,-1),(0,2),(-1,-1),(-1,-1),(1,2),(1,2),(1,2),(-1,-1)])))
15843 def testSwig2Intersect2DMeshWith1DLine9(self):
15844 """ Intersection with a line whose connectivity is not consecutive """
15845 m1c = MEDCouplingCMesh()
15846 coordX = DataArrayDouble([-1., 1., 2])
15847 m1c.setCoordsAt(0,coordX)
15848 coordY = DataArrayDouble([0., 2.])
15849 m1c.setCoordsAt(1,coordY);
15850 m1 = m1c.buildUnstructured()
15852 m2 = MEDCouplingUMesh("bla", 1)
15853 coord2 = DataArrayDouble([0.,1.5, 0.5,1., 0.0,0.5, 0.0,3.0, 0.0,-1.0], 5, 2)
15854 conn2 = DataArrayInt([NORM_SEG2,3,0,NORM_SEG3,0,2,1,NORM_SEG2,2,4])
15855 connI2 = DataArrayInt([0,3,7,10])
15856 m2.setCoords(coord2)
15857 m2.setConnectivity(conn2, connI2)
15858 # End of construction of input meshes m1bis and m2 -> start of specific part of the test
15859 a,b,c,d = MEDCouplingUMesh.Intersect2DMeshWith1DLine(m1, m2, 1e-10)
15860 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])))
15861 self.assertTrue(a.getNodalConnectivityIndex().isEqual(DataArrayInt([0,5,18,31])))
15862 self.assertTrue(b.getNodalConnectivity().isEqual(DataArrayInt([1,9,12,1,12,6,2,6,8,13,1,8,11,1,11,10])))
15863 self.assertTrue(b.getNodalConnectivityIndex().isEqual(DataArrayInt([0,3,6,10,13,16])))
15864 self.assertTrue(a.getCoords()[:6].isEqual(m1.getCoords(),1e-12))
15865 self.assertTrue(a.getCoords()[6:11].isEqual(m2.getCoords(),1e-12))
15866 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))
15867 self.assertTrue(a.getCoords().getHiddenCppPointer()==b.getCoords().getHiddenCppPointer())
15868 self.assertTrue(c.isEqual(DataArrayInt([1,0,0])))
15869 self.assertTrue(d.isEqual(DataArrayInt([(-1,-1),(1,2),(1,2),(1,2),(-1,-1)])))
15872 def testSwig2Intersect2DMeshWith1DLine10(self):
15873 """ Intersection between a circle and various lines """
15875 m_circ = MEDCouplingDataForTest.buildCircle2(0.0, 0.0, 2.0)
15876 coords = [0.0,3.0,0.0,-3.0]
15878 m_line = MEDCouplingUMesh("seg", 1)
15879 m_line.allocateCells(1)
15880 meshCoords = DataArrayDouble.New(coords, len(coords)/2, 2)
15881 m_line.setCoords(meshCoords)
15882 m_line.insertNextCell(NORM_SEG2, connec)
15883 a, b, c, d = MEDCouplingUMesh.Intersect2DMeshWith1DLine(m_circ, m_line, eps)
15884 self.assertTrue(a.getCoords().getHiddenCppPointer()==b.getCoords().getHiddenCppPointer())
15885 self.assertTrue(a.getCoords()[:m_circ.getNumberOfNodes()].isEqual(m_circ.getCoords(),1e-12))
15886 self.assertTrue(a.getCoords()[m_circ.getNumberOfNodes():m_circ.getNumberOfNodes()+m_line.getNumberOfNodes()].isEqual(m_line.getCoords(),1e-12))
15887 self.assertTrue(a.getCoords().isEqual(DataArrayDouble([(2.,0.),(1.4142135623730951,1.414213562373095),(0.,2.),(-1.414213562373095,1.4142135623730951),(-2.,0.),(-1.4142135623730954,-1.414213562373095),(0.,-2.),(1.4142135623730947,-1.4142135623730954),(0.,3.),(0.,-3.),(0.,-2.),(0.,2.),(2.,0.),(0.7653668647301797,-1.8477590650225735),(0.,0.),(0.7653668647301797,1.8477590650225735),(-2,0.),(-0.7653668647301795,1.8477590650225735),(0.,0.),(-0.7653668647301795,-1.8477590650225735)]),1e-12))
15888 self.assertEqual([32,1,7,10,11,12,13,14,15,32,5,3,11,10,16,17,18,19],a.getNodalConnectivity().getValues())
15889 self.assertEqual([0,9,18], a.getNodalConnectivityIndex().getValues())
15890 self.assertEqual([1,8,11,1,11,10,1,10,9],b.getNodalConnectivity().getValues())
15891 self.assertEqual([0,3,6,9],b.getNodalConnectivityIndex().getValues())
15892 self.assertTrue(a.getCoords()[:8].isEqual(m_circ.getCoords(),1e-12))
15893 self.assertTrue(a.getCoords()[8:10].isEqual(m_line.getCoords(),1e-12))
15894 coo_tgt = DataArrayDouble([2.,0.,1.4142135623730951,1.414213562373095,1.2246467991473532e-16,2.,-1.414213562373095,1.4142135623730951,-2.,0.,-1.4142135623730954,-1.414213562373095,-3.6739403974420594e-16,-2.,1.4142135623730947,-1.4142135623730954,0.,3.,0.,-3.,0.,-2.,0.,2.,2.,0.,0.7653668647301797,-1.8477590650225735,0.,0.,0.7653668647301797,1.8477590650225735,-2.,0.,-0.7653668647301795,1.8477590650225735,0.,0.,-0.7653668647301795,-1.8477590650225735])
15895 self.assertTrue(a.getCoords().isEqualWithoutConsideringStr(coo_tgt,1.0e-12))
15896 self.assertTrue(a.getCoords().getHiddenCppPointer()==b.getCoords().getHiddenCppPointer())
15897 self.assertEqual([0,0],c.getValues())
15898 self.assertEqual([-1,-1,0,1,-1,-1],d.getValues())
15900 def testSwig2Intersect2DMeshWith1DLine11(self):
15901 """ Quad line re-entering a square cell """
15903 m = MEDCouplingUMesh("box", 2)
15904 m.setCoords(DataArrayDouble([-1., -1., -1., 1., 1., 1., 1., -1.0],4,2))
15905 c, cI = [NORM_POLYGON, 0, 1, 2, 3], [0, 5]
15906 m.setConnectivity(DataArrayInt(c), DataArrayInt(cI))
15908 coords2 = [0., 1.3, -1.3, 0., -0.6, 0.6, 0., -1.3, -0.5, -0.5]
15909 connec2, cI2 = [NORM_SEG3, 0, 1, 2, NORM_SEG3, 1, 3, 4], [0,4,8]
15910 m_line = MEDCouplingUMesh("seg", 1)
15911 m_line.setCoords(DataArrayDouble(coords2, len(coords2)/2, 2))
15912 m_line.setConnectivity(DataArrayInt(connec2), DataArrayInt(cI2))
15913 a, b, c, d = MEDCouplingUMesh.Intersect2DMeshWith1DLine(m, m_line, eps)
15914 self.assertTrue(a.getCoords().getHiddenCppPointer()==b.getCoords().getHiddenCppPointer())
15915 self.assertTrue(a.getCoords()[:m.getNumberOfNodes()].isEqual(m.getCoords(),1e-12))
15916 self.assertTrue(a.getCoords()[m.getNumberOfNodes():m.getNumberOfNodes()+m_line.getNumberOfNodes()].isEqual(m_line.getCoords(),1e-12))
15917 self.assertTrue(a.getCoords().isEqual(DataArrayDouble([(-1.,-1.),(-1.,1.),(1.,1.),(1.,-1.),(0.,1.3),(-1.3,0.),(-0.6,0.6),(0.,-1.3),(-0.5,-0.5),(-1.,0.23453685964236054),(-1.,-0.13033276368660177),(-0.2345368596423598,1.),(-0.1303327636866019,-1.),(-0.11489196370692323,1.1481421036683868),(-0.6,0.6),(-1.1481421036683859,0.11489196370692323),(-1.147455889106615,-0.0593103465193594),(-0.5,-0.5),(-0.0593103465193594,-1.147455889106615),(1.,0.),(0.4348336181566991,-1.),(-0.5651663818433009,-1.),(-1.,-0.5651663818433009),(-1.,0.05210204797787939),(-0.6,0.6),(0.3827315701788201,1.),(-0.6172684298211799,1.),(-0.6,0.6),(-1.,0.6172684298211802),(-0.6,0.6),(0.3827315701788201,1.),(1.,0.),(0.4348336181566991,-1.),(-0.5,-0.5),(-1.,0.05210204797787939),(-1.,-0.5651663818433009),(-0.5,-0.5),(-0.5651663818433009,-1.)]),1e-12))
15918 self.assertEqual([32,9,11,2,3,12,10,29,30,31,32,33,34,32,0,10,12,35,36,37,32,1,11,9,26,27,28],a.getNodalConnectivity().getValues())
15919 self.assertEqual([0,13,20,27],a.getNodalConnectivityIndex().getValues())
15920 self.assertEqual([2,4,11,13,2,11,9,14,2,9,5,15,2,5,10,16,2,10,12,17,2,12,7,18],b.getNodalConnectivity().getValues())
15921 self.assertEqual([0,4,8,12,16,20,24],b.getNodalConnectivityIndex().getValues())
15922 self.assertTrue(a.getCoords()[:4].isEqual(m.getCoords(),1e-12))
15923 self.assertTrue(a.getCoords()[4:9].isEqual(m_line.getCoords(),1e-12))
15924 self.assertTrue(DataArrayInt([0,0,0]).isEqual(c))
15925 self.assertTrue(DataArrayInt([(-1,-1),(0,2),(-1,-1),(-1,-1),(0,1),(-1,-1)]).isEqual(d))
15928 def testSwig2Intersect2DMeshWith1DLine12(self):
15929 """ Two squares one in the other intersected by an horizontal line """
15931 m = MEDCouplingUMesh("boxbox", 2)
15932 m.setCoords(DataArrayDouble([-0.5,-0.5,-0.5,0.5,0.5,0.5,0.5,-0.5,-0.25,-0.25,-0.25,0.25,0.25,0.25,0.25,-0.25],8,2))
15933 c = [NORM_POLYGON, 4, 5, 6, 7, NORM_POLYGON, 0, 1, 5, 4, NORM_POLYGON, 1, 2, 3, 0, 4, 7, 6, 5]
15934 cI = [0, 5, 10, 19]
15935 m.setConnectivity(DataArrayInt(c), DataArrayInt(cI))
15937 coords2 = [-1., 0.25, 1., 0.25]
15938 connec2, cI2 = [NORM_SEG2, 0, 1], [0,3]
15939 m_line = MEDCouplingUMesh.New("seg", 1)
15940 m_line.setCoords(DataArrayDouble(coords2, len(coords2)/2, 2))
15941 m_line.setConnectivity(DataArrayInt(connec2), DataArrayInt(cI2))
15942 m_line2 = m_line.deepCpy()
15944 a, b, c, d = MEDCouplingUMesh.Intersect2DMeshWith1DLine(m, m_line, eps)
15945 self.assertTrue(a.getCoords().getHiddenCppPointer()==b.getCoords().getHiddenCppPointer())
15946 self.assertTrue(a.getCoords()[:m.getNumberOfNodes()].isEqual(m.getCoords(),1e-12))
15947 self.assertTrue(a.getCoords()[m.getNumberOfNodes():m.getNumberOfNodes()+m_line.getNumberOfNodes()].isEqual(m_line.getCoords(),1e-12))
15948 self.assertTrue(a.getCoords().isEqual(DataArrayDouble([(-0.5,-0.5),(-0.5,0.5),(0.5,0.5),(0.5,-0.5),(-0.25,-0.25),(-0.25,0.25),(0.25,0.25),(0.25,-0.25),(-1.,0.25),(1.,0.25),(-0.5,0.25),(0.5,0.25)]),1e-12))
15949 self.assertEqual([5,4,5,6,7,5,1,5,10,5,4,0,10,5,5,5,1,2,11,6,5,3,0,4,7,6,11],a.getNodalConnectivity().getValues())
15950 self.assertEqual([0,5,9,14,20,27],a.getNodalConnectivityIndex().getValues())
15951 self.assertEqual([1,8,10,1,10,5,1,5,6,1,6,11,1,11,9],b.getNodalConnectivity().getValues())
15952 self.assertEqual([0,3,6,9,12,15],b.getNodalConnectivityIndex().getValues())
15953 self.assertTrue(c.isEqual(DataArrayInt([0,1,1,2,2])))
15954 self.assertTrue(d.isEqual(DataArrayInt([(-1,-1),(1,2),(3,0),(3,4),(-1,-1)])))
15957 def testSwig2Intersect2DMeshWith1DLine13(self):
15958 """ A square (side length) in a circle intersected by a simple horizontal line """
15961 m = MEDCouplingUMesh("boxcircle", 2)
15962 sq2 = math.sqrt(2.0)
15963 soth = (sq2+1.0)/2.0
15964 coo = [2., 0., sq2, sq2, 0., 2., -sq2, sq2, -2., 0., -sq2, -sq2, 0., -2., sq2, -sq2, -1., -1., -1., 1., 1.,
15965 1., 1., -1., -1., 0., 0., 1., 1., 0., 0., -1., -soth, soth, soth,soth]
15966 coo = DataArrayDouble(coo); coo.rearrange(2)
15968 c = [NORM_QPOLYG, 8, 9, 10, 11, 12, 13, 14, 15, NORM_QPOLYG, 3, 1, 10, 9, 2, 17, 13, 16, NORM_QPOLYG, 1, 7, 5, 3, 9, 8, 11, 10, 0, 6, 4, 16, 12, 15, 14, 17]
15969 cI = [0, 9, 18, 35]
15970 m.setConnectivity(DataArrayInt(c), DataArrayInt(cI))
15972 coords2 = [-2., 1., 2., 1.0]
15973 connec2, cI2 = [NORM_SEG2, 0, 1], [0,3]
15974 m_line = MEDCouplingUMesh("seg", 1)
15975 m_line.setCoords(DataArrayDouble(coords2, len(coords2)/2, 2))
15976 m_line.setConnectivity(DataArrayInt(connec2), DataArrayInt(cI2))
15977 a, b, c, d = MEDCouplingUMesh.Intersect2DMeshWith1DLine(m, m_line, eps)
15978 self.assertTrue(a.getCoords().getHiddenCppPointer()==b.getCoords().getHiddenCppPointer())
15979 self.assertTrue(a.getCoords()[:m.getNumberOfNodes()].isEqual(m.getCoords(),1e-12))
15980 self.assertTrue(a.getCoords()[m.getNumberOfNodes():m.getNumberOfNodes()+m_line.getNumberOfNodes()].isEqual(m_line.getCoords(),1e-12))
15981 self.assertTrue(a.getCoords().isEqual(DataArrayDouble([(2.,0.),(1.4142135623730951,1.4142135623730951),(0.,2.),(-1.4142135623730951,1.4142135623730951),(-2.,0.),(-1.4142135623730951,-1.4142135623730951),(0.,-2.),(1.4142135623730951,-1.4142135623730951),(-1.,-1.),(-1.,1.),(1.,1.),(1.,-1.),(-1.,0.),(0.,1.),(1.,0.),(0.,-1.),(-1.2071067811865475,1.2071067811865475),(1.2071067811865475,1.2071067811865475),(-2.,1.),(2.,1.),(1.7320508075688772,1.),(-1.7320508075688772,1.),(-1.2071067811865475,1.2071067811865475),(-1.3660254037844386,1.),(-1.58670668058247,1.2175228580174415),(0.,-1.),(1.,0.),(1.2071067811865475,1.2071067811865475),(1.5867066805824703,1.2175228580174413),(1.9828897227476205,-0.26105238444010315),(0.,-2.),(-1.9828897227476205,-0.2610523844401032),(-1.3660254037844386,1.),(-1.,0.),(1.5867066805824703,1.2175228580174413),(1.3660254037844386,1.),(1.2071067811865475,1.2071067811865475),(0.,-2.),(-1.9828897227476205,-0.2610523844401032),(-1.3660254037844386,1.),(-1.,0.),(0.,-1.),(1.,0.),(1.3660254037844386,1.),(1.9828897227476205,-0.26105238444010315)]),1e-12))
15982 self.assertEqual([32,8,9,10,11,12,13,14,15,32,3,1,10,9,2,17,13,16,32,3,9,21,22,23,24,32,1,20,10,34,35,36,32,7,5,21,9,8,11,10,20,37,38,39,40,41,42,43,44],a.getNodalConnectivity().getValues())
15983 self.assertEqual([0,9,18,25,32,49],a.getNodalConnectivityIndex().getValues())
15984 self.assertEqual([1,18,21,1,21,9,1,9,10,1,10,20,1,20,19],b.getNodalConnectivity().getValues())
15985 self.assertEqual([0,3,6,9,12,15],b.getNodalConnectivityIndex().getValues())
15986 self.assertTrue(c.isEqual(DataArrayInt([0,1,2,2,2])))
15987 self.assertTrue(d.isEqual(DataArrayInt([(-1,-1),(2,4),(1,0),(3,4),(-1,-1)])))
15990 def testSwig2Intersect2DMeshWith1DLine14(self):
15991 """ A circle in a circle intersected by a simple horizontal line, not tangent to the circles """
15993 m = MEDCouplingUMesh("boxcircle", 2)
15994 coo = [2.,0.,1.4142135623730951,1.414213562373095,0.,2.,-1.414213562373095,1.4142135623730951,-2.,0.,-1.4142135623730954,-1.414213562373095,0.,-2.,
15995 1.4142135623730947,-1.4142135623730954,1.,0.,0.7071067811865476,0.7071067811865475,0.,1.,-0.7071067811865475,0.7071067811865476,-1.,0.,-0.7071067811865477,-0.7071067811865475,
15996 0.,-1.,0.7071067811865474,-0.7071067811865477,1.060660171779821,-1.0606601717798214,-1.0606601717798214,-1.0606601717798212]
15997 coo = DataArrayDouble(coo); coo.rearrange(2)
15999 c = [NORM_QPOLYG, 15, 13, 11, 9, 14, 12, 10, 8, NORM_QPOLYG, 7, 5, 13, 15, 6, 17, 14, 16, NORM_QPOLYG, 5, 3, 1, 7, 15, 9, 11, 13, 4, 2, 0, 16, 8, 10, 12, 17]
16000 cI = [0, 9, 18, 35]
16001 m.setConnectivity(DataArrayInt(c), DataArrayInt(cI))
16003 coords2 = [-2., 0., 2., 0.]
16004 connec2, cI2 = [NORM_SEG2, 0, 1], [0,3]
16005 m_line = MEDCouplingUMesh.New("seg", 1)
16006 m_line.setCoords(DataArrayDouble(coords2, len(coords2)/2, 2))
16007 m_line.setConnectivity(DataArrayInt(connec2), DataArrayInt(cI2))
16008 a, b, c, d = MEDCouplingUMesh.Intersect2DMeshWith1DLine(m, m_line, eps)
16009 self.assertTrue(a.getCoords().getHiddenCppPointer()==b.getCoords().getHiddenCppPointer())
16010 self.assertTrue(a.getCoords()[:m.getNumberOfNodes()].isEqual(m.getCoords(),1e-12))
16011 self.assertTrue(a.getCoords()[m.getNumberOfNodes():m.getNumberOfNodes()+m_line.getNumberOfNodes()].isEqual(m_line.getCoords(),1e-12))
16012 self.assertTrue(a.getCoords().isEqual(DataArrayDouble([(2.,0.),(1.4142135623730951,1.414213562373095),(0.,2.),(-1.414213562373095,1.4142135623730951),(-2.,0.),(-1.4142135623730954,-1.414213562373095),(0.,-2.),(1.4142135623730947,-1.4142135623730954),(1.,0.),(0.7071067811865476,0.7071067811865475),(0.,1.),(-0.7071067811865475,0.7071067811865476),(-1.,0.),(-0.7071067811865477,-0.7071067811865475),(0.,-1.),(0.7071067811865474,-0.7071067811865477),(1.060660171779821,-1.0606601717798214),(-1.0606601717798214,-1.0606601717798212),(-2.,0.),(2.,0.),(-1.,0.),(1.,0.),(0.,2.),(1.8477590650225735,0.7653668647301795),(1.8477590650225735,-0.7653668647301797),(1.060660171779821,-1.0606601717798214),(0.9238795325112867,-0.38268343236508984),(0.9238795325112867,0.3826834323650897),(0.,1.),(-0.9238795325112867,0.3826834323650896),(-1.5,0.),(-1.8477590650225735,0.7653668647301792),(-1.0606601717798214,-1.0606601717798212),(-1.8477590650225733,-0.7653668647301799),(-1.5,0.),(-0.9238795325112866,-0.38268343236508995),(0.,1.),(-0.9238795325112867,0.3826834323650896),(-1.5,0.),(-1.8477590650225735,0.7653668647301792),(0.,2.),(1.8477590650225735,0.7653668647301795),(1.5,0.),(0.9238795325112867,0.3826834323650897),(1.060660171779821,-1.0606601717798214),(0.9238795325112867,-0.38268343236508984),(1.5,0.),(1.8477590650225735,-0.7653668647301797),(0.,1.),(0.9238795325112867,0.3826834323650897),(0.,0.),(-0.9238795325112867,0.3826834323650896),(0.,-1.),(-0.9238795325112866,-0.38268343236508995),(0.,0.),(0.9238795325112867,-0.38268343236508984)]),1e-12))
16013 self.assertEqual([32,7,5,13,15,6,17,14,16,32,9,11,20,18,3,1,19,21,36,37,38,39,40,41,42,43,32,7,15,21,19,44,45,46,47,32,13,5,18,20,32,33,34,35,32,11,9,21,20,48,49,50,51,32,15,13,20,21,52,53,54,55],a.getNodalConnectivity().getValues())
16014 self.assertEqual([0,9,26,35,44,53,62],a.getNodalConnectivityIndex().getValues())
16015 self.assertEqual([1,18,20,1,20,21,1,21,19],b.getNodalConnectivity().getValues())
16016 self.assertEqual([0,3,6,9],b.getNodalConnectivityIndex().getValues())
16017 self.assertTrue(c.isEqual(DataArrayInt([1,2,2,2,0,0])))
16018 self.assertTrue(d.isEqual(DataArrayInt([(1,3),(4,5),(1,2)])))
16021 def testSwig2Intersect2DMeshWith1DLine15(self):
16022 """ Same as testSwig2Intersect2DMeshWith1DLine13 except that the line is colinear AND splits on of the common edge of 2D mesh."""
16025 m = MEDCouplingUMesh("boxcircle", 2)
16026 sq2 = math.sqrt(2.0)
16027 soth = (sq2+1.0)/2.0
16028 coo = [2., 0., sq2, sq2, 0., 2., -sq2, sq2, -2., 0., -sq2, -sq2, 0., -2., sq2, -sq2, -1., -1., -1., 1., 1.,
16029 1., 1., -1., -1., 0., 0., 1., 1., 0., 0., -1., -soth, soth, soth,soth]
16030 coo = DataArrayDouble(coo); coo.rearrange(2)
16032 c = [NORM_QPOLYG, 8, 9, 10, 11, 12, 13, 14, 15, NORM_QPOLYG, 3, 1, 10, 9, 2, 17, 13, 16, NORM_QPOLYG, 1, 7, 5, 3, 9, 8, 11, 10, 0, 6, 4, 16, 12, 15, 14, 17]
16033 cI = [0, 9, 18, 35]
16034 m.setConnectivity(DataArrayInt(c), DataArrayInt(cI))
16036 coords2 = [(-2., 1.),(2.,1.),(0.,1)]
16037 connec2, cI2 = [NORM_SEG2, 0, 2, NORM_SEG2, 2, 1], [0,3,6]
16038 m_line = MEDCouplingUMesh("seg", 1)
16039 m_line.setCoords(DataArrayDouble(coords2))
16040 m_line.setConnectivity(DataArrayInt(connec2), DataArrayInt(cI2))
16041 a, b, c, d = MEDCouplingUMesh.Intersect2DMeshWith1DLine(m, m_line, eps)
16042 self.assertTrue(a.getCoords().getHiddenCppPointer()==b.getCoords().getHiddenCppPointer())
16043 self.assertTrue(a.getCoords()[:m.getNumberOfNodes()].isEqual(m.getCoords(),1e-12))
16044 self.assertTrue(a.getCoords()[m.getNumberOfNodes():m.getNumberOfNodes()+m_line.getNumberOfNodes()].isEqual(m_line.getCoords(),1e-12))
16045 self.assertTrue(a.getCoords().isEqual(DataArrayDouble([(2.,0.),(1.4142135623730951,1.4142135623730951),(0.,2.),(-1.4142135623730951,1.4142135623730951),(-2.,0.),(-1.4142135623730951,-1.4142135623730951),(0.,-2.),(1.4142135623730951,-1.4142135623730951),(-1.,-1.),(-1.,1.),(1.,1.),(1.,-1.),(-1.,0.),(0.,1.),(1.,0.),(0.,-1.),(-1.2071067811865475,1.2071067811865475),(1.2071067811865475,1.2071067811865475),(-2.,1.),(2.,1.),(0.,1.),(1.7320508075688776,1.),(-1.7320508075688776,1.),(-0.5,1.),(0.5,1.),(0.5,1.),(-0.5,1.),(-1.2071067811865475,1.2071067811865475),(-1.3660254037844388,1.),(-1.58670668058247,1.2175228580174415),(0.,-1.),(1.,0.),(1.2071067811865475,1.2071067811865475),(1.5867066805824703,1.2175228580174413),(1.9828897227476205,-0.26105238444010315),(0.,-2.),(-1.9828897227476205,-0.2610523844401032),(-1.3660254037844388,1.),(-1.,0.),(1.5867066805824703,1.2175228580174413),(1.3660254037844388,1.),(1.2071067811865475,1.2071067811865475),(0.,-2.),(-1.9828897227476205,-0.2610523844401032),(-1.3660254037844388,1.),(-1.,0.),(0.,-1.),(1.,0.),(1.3660254037844388,1.),(1.9828897227476205,-0.26105238444010315)]),1e-12))
16046 self.assertEqual([32,8,9,20,10,11,12,23,24,14,15,32,3,1,10,20,9,2,17,25,26,16,32,3,9,22,27,28,29,32,1,21,10,39,40,41,32,7,5,22,9,8,11,10,21,42,43,44,45,46,47,48,49],a.getNodalConnectivity().getValues())
16047 self.assertEqual([0,11,22,29,36,53],a.getNodalConnectivityIndex().getValues())
16048 self.assertEqual([1,18,22,1,22,9,1,9,20,1,20,10,1,10,21,1,21,19],b.getNodalConnectivity().getValues())
16049 self.assertEqual([0,3,6,9,12,15,18],b.getNodalConnectivityIndex().getValues())
16050 self.assertTrue(c.isEqual(DataArrayInt([0,1,2,2,2])))
16051 self.assertTrue(d.isEqual(DataArrayInt([(-1,-1),(2,4),(1,0),(1,0),(3,4),(-1,-1)])))
16054 def testSwig2Intersect2DMeshWith1DLine16(self):
16055 """ Same than testSwig2Intersect2DMeshWith1DLine13 except it is a vertical line. Non regression test."""
16058 m = MEDCouplingUMesh("boxcircle", 2)
16059 sq2 = math.sqrt(2.0)
16060 soth = (sq2+1.0)/2.0
16061 coo = [2., 0., sq2, sq2, 0., 2., -sq2, sq2, -2., 0., -sq2, -sq2, 0., -2., sq2, -sq2, -1., -1., -1., 1., 1.,
16062 1., 1., -1., -1., 0., 0., 1., 1., 0., 0., -1., -soth, soth, soth,soth]
16063 coo = DataArrayDouble(coo); coo.rearrange(2)
16065 c = [NORM_QPOLYG, 8, 9, 10, 11, 12, 13, 14, 15, NORM_QPOLYG, 3, 1, 10, 9, 2, 17, 13, 16, NORM_QPOLYG, 1, 7, 5, 3, 9, 8, 11, 10, 0, 6, 4, 16, 12, 15, 14, 17]
16066 cI = [0, 9, 18, 35]
16067 m.setConnectivity(DataArrayInt(c), DataArrayInt(cI))
16069 coords2 = [1., 2., 1., -2.]
16070 connec2, cI2 = [NORM_SEG2, 0, 1], [0,3]
16071 m_line = MEDCouplingUMesh("seg", 1)
16072 m_line.setCoords(DataArrayDouble(coords2, len(coords2)/2, 2))
16073 m_line.setConnectivity(DataArrayInt(connec2), DataArrayInt(cI2))
16074 a, b, c, d = MEDCouplingUMesh.Intersect2DMeshWith1DLine(m, m_line, eps)
16075 self.assertTrue(a.getCoords().getHiddenCppPointer()==b.getCoords().getHiddenCppPointer())
16076 self.assertTrue(a.getCoords()[:m.getNumberOfNodes()].isEqual(m.getCoords(),1e-12))
16077 self.assertTrue(a.getCoords()[m.getNumberOfNodes():m.getNumberOfNodes()+m_line.getNumberOfNodes()].isEqual(m_line.getCoords(),1e-12))
16078 self.assertTrue(a.getCoords().isEqual(DataArrayDouble([(2., 0.),(1.4142135623730951,1.4142135623730951),(0.,2.),(-1.4142135623730951,1.4142135623730951),(-2.,0.),(-1.4142135623730951,-1.4142135623730951),(0.,-2.),(1.4142135623730951,-1.4142135623730951),(-1.,-1.),(-1.,1.),(1.,1.),(1.,-1.),(-1.,0.),(0.,1.),(1.,0.),(0.,-1.),(-1.2071067811865475,1.2071067811865475),(1.2071067811865475,1.2071067811865475),(1.,2.),(1.,-2.),(1.,1.7320508075688772),(1.,-1.7320508075688772),(1.2071067811865475,1.2071067811865475),(1.,1.3660254037844386),(1.217522858017441,1.5867066805824703),(-1.2071067811865475,1.2071067811865475),(-0.2610523844401028,1.9828897227476208),(1.,1.3660254037844386),(0.,1.),(1.2071067811865475,1.2071067811865475),(2.,0.),(1.217522858017441,-1.5867066805824703),(1.,-1.3660254037844386),(1.,0.),(-2.,0.),(-1.2071067811865475,1.2071067811865475),(-1.,0.),(0.,-1.),(1.,-1.3660254037844386),(-0.2610523844401028,-1.9828897227476208)]),1e-12))
16079 self.assertEqual([32,8,9,10,11,12,13,14,15,32,1,10,20,22,23,24,32,9,3,20,10,25,26,27,28,32,10,1,7,21,11,29,30,31,32,33,32,5,3,9,8,11,21,34,35,36,37,38,39],a.getNodalConnectivity().getValues())
16080 self.assertEqual([0,9,16,25,36,49],a.getNodalConnectivityIndex().getValues())
16081 self.assertEqual([1,18,20,1,20,10,1,10,11,1,11,21,1,21,19],b.getNodalConnectivity().getValues())
16082 self.assertEqual([0,3,6,9,12,15],b.getNodalConnectivityIndex().getValues())
16083 self.assertTrue(c.isEqual(DataArrayInt([0,1,1,2,2])))
16084 self.assertTrue(d.isEqual(DataArrayInt([(-1,-1),(1,2),(3,0),(3,4),(-1,-1)])))
16087 def testOrderConsecutiveCells1D1(self):
16088 """A line in several unconnected pieces:"""
16089 m2 = MEDCouplingUMesh.New("bla", 1)
16090 c = DataArrayInt([NORM_SEG2,0,1,NORM_SEG3,1,3,2, NORM_SEG2,3,4,
16091 NORM_SEG3,5,7,6, NORM_SEG3,7,9,8, NORM_SEG2,9,10,
16092 NORM_SEG2,11,12,NORM_SEG2,12,13,
16094 cI = DataArrayInt([0,3,7,10,14,18,21,24,27,30])
16095 coords2 = DataArrayDouble([float(i) for i in range(32)], 16,2)
16096 m2.setCoords(coords2);
16097 m2.setConnectivity(c, cI);
16098 m2.checkCoherency2(1.0e-8);
16100 # Shuffle a bit :-)
16101 m2.renumberCells(DataArrayInt([0,3,6,8,1,4,7,5,2]), True);
16102 res = m2.orderConsecutiveCells1D()
16103 expRes = [0,3,6,8,1,4,2,7,5]
16104 self.assertEqual(m2.getNumberOfCells(),res.getNumberOfTuples())
16105 self.assertEqual(expRes, res.getValues())
16107 # A closed line (should also work)
16108 m3 = MEDCouplingUMesh.New("bla3", 1)
16109 conn3A = DataArrayInt([NORM_SEG2,0,1,NORM_SEG3,1,3,2, NORM_SEG2,3,0])
16110 coord3 = coords2[0:5]
16114 m3.setCoords(coord3)
16115 m3.setConnectivity(conn3A, cI)
16116 m3.checkCoherency2(1.0e-8)
16117 res2 = m3.orderConsecutiveCells1D()
16119 self.assertEqual(m3.getNumberOfCells(),res2.getNumberOfTuples())
16120 self.assertEqual(expRes2, res2.getValues())
16123 def testDADApplyFuncOnThis1(self):
16124 d=DataArrayDouble(5) ; d.iota(0.)
16125 d.applyFuncOnThis("2*x+1")
16126 self.assertTrue(d.isEqual(DataArrayDouble([1.,3.,5.,7.,9.]),1e-12))
16127 d=DataArrayDouble(6) ; d.iota(0.) ; d.rearrange(2)
16128 d.applyFuncOnThis("2*x+1")
16129 self.assertTrue(d.isEqual(DataArrayDouble([1.,3.,5.,7.,9.,11.],3,2),1e-12))
16130 d.applyFuncOnThis("1+2*3")
16131 self.assertTrue(d.isEqual(DataArrayDouble([(7.,7.),(7.,7.),(7.,7.)]),1e-12))
16134 def testSwig2PointSetComputeFetchedNodeIds1(self):
16135 arr=DataArrayDouble(6) ; arr.iota()
16136 m=MEDCouplingCMesh() ; m.setCoords(arr,arr,arr)
16137 m=m.buildUnstructured()
16138 m0=m[[0,1,5,6,25,26,30,31,124]]
16139 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])
16140 self.assertTrue(m0.computeFetchedNodeIds().isEqual(ref))
16141 self.assertTrue(MEDCoupling1SGTUMesh(m0).computeFetchedNodeIds().isEqual(ref))
16142 self.assertEqual(m0.getAllGeoTypes(),[NORM_HEXA8])
16143 m0.convertAllToPoly()
16144 self.assertEqual(m0.getAllGeoTypes(),[NORM_POLYHED])
16145 self.assertTrue(MEDCoupling1DGTUMesh(m0).computeFetchedNodeIds().isEqual(ref))
16148 def testSwig2PartDefinition1(self):
16149 pd=PartDefinition.New(5,22,3)
16150 self.assertTrue(isinstance(pd,SlicePartDefinition))
16151 self.assertTrue(pd.toDAI().isEqual(DataArrayInt([5,8,11,14,17,20])))
16152 self.assertEqual(pd.getNumberOfElems(),6)
16153 self.assertEqual(pd.getEffectiveStop(),23)
16154 pd=PartDefinition.New(5,23,3)
16155 self.assertTrue(isinstance(pd,SlicePartDefinition))
16156 self.assertTrue(pd.toDAI().isEqual(DataArrayInt([5,8,11,14,17,20])))
16157 self.assertEqual(pd.getNumberOfElems(),6)
16158 self.assertEqual(pd.getEffectiveStop(),23)
16159 self.assertEqual(pd.getSlice(),slice(5,23,3))
16160 pd=PartDefinition.New(5,22,1)
16161 self.assertTrue(isinstance(pd,SlicePartDefinition))
16162 self.assertTrue(pd.toDAI().isEqual(DataArrayInt([5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21])))
16163 self.assertEqual(pd.getNumberOfElems(),17)
16164 self.assertEqual(pd.getEffectiveStop(),22)
16165 pd=PartDefinition.New(5,23,3)+PartDefinition.New(23,27,3)
16166 self.assertTrue(isinstance(pd,SlicePartDefinition))
16167 self.assertEqual(pd.getNumberOfElems(),8)
16168 self.assertTrue(pd.toDAI().isEqual(DataArrayInt([5,8,11,14,17,20,23,26])))
16169 self.assertEqual(pd.getEffectiveStop(),29)
16170 pd=SlicePartDefinition(5,22,1)
16171 self.assertTrue(isinstance(pd,SlicePartDefinition))
16172 self.assertTrue(pd.toDAI().isEqual(DataArrayInt([5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21])))
16173 self.assertEqual(pd.getNumberOfElems(),17)
16174 self.assertEqual(pd.getEffectiveStop(),22)
16175 d=DataArrayInt([2,4,5,6,10])
16176 pd=PartDefinition.New(d)
16177 self.assertTrue(isinstance(pd,DataArrayPartDefinition))
16178 self.assertEqual(pd.toDAI().getHiddenCppPointer(),d.getHiddenCppPointer())
16179 pd=DataArrayPartDefinition(d)
16180 self.assertEqual(pd.toDAI().getHiddenCppPointer(),d.getHiddenCppPointer())
16181 pd=DataArrayPartDefinition(d)+DataArrayPartDefinition(DataArrayInt([12,14,20]))
16182 self.assertTrue(isinstance(pd,DataArrayPartDefinition))
16183 self.assertEqual(pd.getNumberOfElems(),8)
16184 self.assertTrue(pd.toDAI().isEqual(DataArrayInt([2,4,5,6,10,12,14,20])))
16187 def testSwig2SortEachPairToMakeALinkedList1(self):
16188 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)])
16189 d.sortEachPairToMakeALinkedList()
16190 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)])))
16193 def testSwig2DAIIsRange(self):
16194 d=DataArrayInt([2,6,10])
16197 self.assertEqual(b,slice(2,11,4))
16198 self.assertTrue(DataArrayInt.Range(b.start,b.stop,b.step).isEqual(d))
16200 d=DataArrayInt([2,7,10])
16202 self.assertTrue(not a)
16203 self.assertTrue(b is None)
16205 d=DataArrayInt([22,17,12])
16208 self.assertEqual(b,slice(22,11,-5))
16209 self.assertTrue(DataArrayInt.Range(b.start,b.stop,b.step).isEqual(d))
16211 d=DataArrayInt([22,16,12])
16213 self.assertTrue(not a)
16214 self.assertTrue(b is None)
16216 d=DataArrayInt([33])
16219 self.assertEqual(b,slice(33,34,1))
16220 self.assertTrue(DataArrayInt.Range(b.start,b.stop,b.step).isEqual(d))
16225 self.assertEqual(b,slice(0,0,1))
16226 self.assertTrue(DataArrayInt.Range(b.start,b.stop,b.step).isEqual(d))
16228 d=DataArrayInt([2,6,10,2])
16230 self.assertTrue(not a)
16231 self.assertTrue(b is None)
16234 def testSwig2PartDefinitionComposeWith1(self):
16235 f=PartDefinition.New(DataArrayInt([0,1,2,3,6,7,8,9]))
16236 g=PartDefinition.New(4,14,1)
16238 self.assertTrue(g2.isEqual(g)[0])
16240 self.assertTrue(isinstance(h,DataArrayPartDefinition))
16241 self.assertTrue(h.toDAI().isEqual(DataArrayInt([4,5,6,7,10,11,12,13])))
16242 f2=f.tryToSimplify()
16243 g2=g.tryToSimplify()
16244 self.assertEqual(f2.getHiddenCppPointer(),f.getHiddenCppPointer())# same because no simplification due to content of array
16245 self.assertEqual(g2.getHiddenCppPointer(),g.getHiddenCppPointer())# same because no simplification linked to type of PartDef
16246 p=PartDefinition.New(DataArrayInt([2,6,10]))
16247 p2=p.tryToSimplify()
16248 self.assertNotEqual(p2.getHiddenCppPointer(),p.getHiddenCppPointer())
16249 self.assertTrue(isinstance(p2,SlicePartDefinition))
16250 self.assertEqual(p2.getSlice(),slice(2,11,4))
16251 self.assertTrue(p2.isEqual(SlicePartDefinition(2,11,4))[0])
16252 self.assertTrue(p2.isEqual(p2.deepCpy())[0])
16253 self.assertTrue(not p2.isEqual(SlicePartDefinition(1,11,4))[0])
16254 self.assertTrue(not p2.isEqual(SlicePartDefinition(2,10,4))[0])
16255 self.assertTrue(not p2.isEqual(SlicePartDefinition(2,11,3))[0])
16258 def testSwig2DAIGetIdsStrictlyNegative1(self):
16259 d=DataArrayInt([4,-5,-1,0,3,99,-7])
16260 self.assertTrue(d.getIdsStrictlyNegative().isEqual(DataArrayInt([1,2,6])))
16263 def testSwig2DAIReplaceOneValByInThis1(self):
16264 d=DataArrayInt([4,-5,-1,0,-5,99,-7,5])
16265 d.replaceOneValByInThis(-5,900)
16266 self.assertTrue(d.isEqual(DataArrayInt([4,900,-1,0,900,99,-7,5])))
16269 def testSwig2DAIGetMinMaxValues1(self):
16270 d=DataArrayInt([4,-5,-1,0,3,99,-7])
16271 a,b=d.getMinMaxValues()
16272 self.assertEqual(a,-7)
16273 self.assertEqual(b,99)
16276 def testSwig2DAIBuildUniqueNotSorted1(self):
16277 d=DataArrayInt([-5,3,2,-1,2,3,-6,4,2,-5,3,7])
16278 self.assertTrue(d.buildUniqueNotSorted().isEqual(DataArrayInt([-5,3,2,-1,-6,4,7])))
16281 def testSwig2UMeshChangeOrientationOfCells1(self):
16282 """ Here testing changeOrientationOfCell method on unstructured meshes lying on no coords."""
16283 m=MEDCouplingUMesh("mesh",1)
16284 c=DataArrayInt([NORM_SEG2,4,5,NORM_SEG2,10,8,NORM_SEG3,20,7,33,NORM_SEG3,13,15,12,NORM_SEG2,3,2,NORM_SEG4,5,6,8,10,NORM_SEG4,34,33,3,2])
16285 cI=DataArrayInt([0,3,6,10,14,17,22,27])
16286 m.setConnectivity(c,cI)
16287 m.changeOrientationOfCells()
16288 self.assertTrue(m.getNodalConnectivity().isEqual(DataArrayInt([NORM_SEG2,5,4,NORM_SEG2,8,10,NORM_SEG3,7,20,33,NORM_SEG3,15,13,12,NORM_SEG2,2,3,NORM_SEG4,6,5,10,8,NORM_SEG4,33,34,2,3])))
16289 self.assertTrue(m.getNodalConnectivityIndex().isEqual(cI))
16291 m=MEDCouplingUMesh("mesh",2)
16292 c=DataArrayInt([NORM_TRI3,0,1,2,NORM_QUAD4,3,4,5,6,NORM_POLYGON,7,8,9,10,11,NORM_TRI6,12,13,14,15,16,17,NORM_QUAD8,18,19,20,21,22,23,24,25,NORM_QPOLYG,26,27,28,29,30,31,32,33,34,35])
16293 cI=DataArrayInt([0,4,9,15,22,31,42])
16294 m.setConnectivity(c,cI)
16295 m.changeOrientationOfCells()
16296 self.assertTrue(m.getNodalConnectivity().isEqual(DataArrayInt([NORM_TRI3,0,2,1,NORM_QUAD4,3,6,5,4,NORM_POLYGON,7,11,10,9,8,NORM_TRI6,12,14,13,17,16,15,NORM_QUAD8,18,21,20,19,25,24,23,22,NORM_QPOLYG,26,30,29,28,27,35,34,33,32,31])))
16297 self.assertTrue(m.getNodalConnectivityIndex().isEqual(cI))
16300 def testSwig2StructuredMeshCellLocation1(self):
16302 arrX=DataArrayDouble(5) ; arrX.iota()
16303 arrY=DataArrayDouble(4) ; arrY.iota()
16304 arrZ=DataArrayDouble(3) ; arrZ.iota()
16305 m=MEDCouplingCMesh() ; m.setCoords(arrX,arrY,arrZ)
16307 liExp3D=[(0,0,0),(1,0,0),(2,0,0),(3,0,0),(0,1,0),(1,1,0),(2,1,0),(3,1,0),(0,2,0),(1,2,0),(2,2,0),(3,2,0),(0,0,1),(1,0,1),(2,0,1),(3,0,1),(0,1,1),(1,1,1),(2,1,1),(3,1,1),(0,2,1),(1,2,1),(2,2,1),(3,2,1)]
16308 self.assertEqual(24,m.getNumberOfCells())
16309 for i in xrange(m.getNumberOfCells()):
16310 li.append(m.getLocationFromCellId(i))
16312 self.assertEqual(liExp3D,li)
16313 self.assertRaises(InterpKernelException,m.getLocationFromCellId,24)
16314 self.assertRaises(InterpKernelException,m.getLocationFromCellId,-1)
16316 arrX=DataArrayDouble(5) ; arrX.iota()
16317 arrY=DataArrayDouble(4) ; arrY.iota()
16318 m=MEDCouplingCMesh() ; m.setCoords(arrX,arrY)
16320 liExp2D=[(0,0),(1,0),(2,0),(3,0),(0,1),(1,1),(2,1),(3,1),(0,2),(1,2),(2,2),(3,2)]
16321 self.assertEqual(12,m.getNumberOfCells())
16322 for i in xrange(m.getNumberOfCells()):
16323 li.append(m.getLocationFromCellId(i))
16325 self.assertEqual(liExp2D,li)
16326 self.assertRaises(InterpKernelException,m.getLocationFromCellId,12)
16327 self.assertRaises(InterpKernelException,m.getLocationFromCellId,-1)
16329 arrX=DataArrayDouble(5) ; arrX.iota()
16330 m=MEDCouplingCMesh() ; m.setCoords(arrX)
16331 self.assertEqual(4,m.getNumberOfCells())
16332 for i in xrange(m.getNumberOfCells()):
16333 self.assertEqual((i,),m.getLocationFromCellId(i))
16335 self.assertRaises(InterpKernelException,m.getLocationFromCellId,4)
16336 self.assertRaises(InterpKernelException,m.getLocationFromCellId,-1)
16339 def testSwig2StructuredMeshNodeLocation1(self):
16341 arrX=DataArrayDouble(5) ; arrX.iota()
16342 arrY=DataArrayDouble(4) ; arrY.iota()
16343 arrZ=DataArrayDouble(3) ; arrZ.iota()
16344 m=MEDCouplingCMesh() ; m.setCoords(arrX,arrY,arrZ)
16346 liExp3D=[(0,0,0),(1,0,0),(2,0,0),(3,0,0),(4,0,0),(0,1,0),(1,1,0),(2,1,0),(3,1,0),(4,1,0),(0,2,0),(1,2,0),(2,2,0),(3,2,0),(4,2,0),(0,3,0),(1,3,0),(2,3,0),(3,3,0),(4,3,0),(0,0,1),(1,0,1),(2,0,1),(3,0,1),(4,0,1),(0,1,1),(1,1,1),(2,1,1),(3,1,1),(4,1,1),(0,2,1),(1,2,1),(2,2,1),(3,2,1),(4,2,1),(0,3,1),(1,3,1),(2,3,1),(3,3,1),(4,3,1),(0,0,2),(1,0,2),(2,0,2),(3,0,2),(4,0,2),(0,1,2),(1,1,2),(2,1,2),(3,1,2),(4,1,2),(0,2,2),(1,2,2),(2,2,2),(3,2,2),(4,2,2),(0,3,2),(1,3,2),(2,3,2),(3,3,2),(4,3,2)]
16347 self.assertEqual(60,m.getNumberOfNodes())
16348 for i in xrange(m.getNumberOfNodes()):
16349 li.append(m.getLocationFromNodeId(i))
16351 self.assertEqual(liExp3D,li)
16352 self.assertRaises(InterpKernelException,m.getLocationFromNodeId,60)
16353 self.assertRaises(InterpKernelException,m.getLocationFromNodeId,-1)
16355 arrX=DataArrayDouble(5) ; arrX.iota()
16356 arrY=DataArrayDouble(4) ; arrY.iota()
16357 m=MEDCouplingCMesh() ; m.setCoords(arrX,arrY)
16359 liExp2D=[(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)]
16360 self.assertEqual(20,m.getNumberOfNodes())
16361 for i in xrange(m.getNumberOfNodes()):
16362 li.append(m.getLocationFromNodeId(i))
16364 self.assertEqual(liExp2D,li)
16365 self.assertRaises(InterpKernelException,m.getLocationFromNodeId,20)
16366 self.assertRaises(InterpKernelException,m.getLocationFromNodeId,-1)
16368 arrX=DataArrayDouble(5) ; arrX.iota()
16369 m=MEDCouplingCMesh() ; m.setCoords(arrX)
16370 self.assertEqual(5,m.getNumberOfNodes())
16371 for i in xrange(m.getNumberOfNodes()):
16372 self.assertEqual((i,),m.getLocationFromNodeId(i))
16374 self.assertRaises(InterpKernelException,m.getLocationFromCellId,5)
16375 self.assertRaises(InterpKernelException,m.getLocationFromCellId,-1)
16378 def testSwig2DataArrayPrintNotTooLong1(self):
16379 """ Now that DataArrayDouble and DataArrayInt and pickelized they can appear in YACS ports. Avoid to have too heavy string representation of them."""
16380 d=DataArrayDouble(2000) ; d.iota() ; d.rearrange(2)
16381 st0=d.repr() ; st1=str(d) ; st2=d.reprNotTooLong()
16382 self.assertEqual(st0,st1) # 1000 tuples ( >=0 and <= 1000) -> str(d)==d.repr()
16383 self.assertEqual(st1,st2)
16385 d=DataArrayDouble(2002) ; d.iota() ; d.rearrange(2)
16386 st0=d.repr() ; st1=str(d) ; st2=d.reprNotTooLong()
16387 self.assertNotEqual(st0,st1) # 1001 tuples ( > 1000) -> str(d)==d.reprNotTooLong()
16388 self.assertEqual(st1,st2)
16389 self.assertIn(len(st2),xrange(0,1000)) # no more than 1000 characters
16390 ## Now for DataArrayInt
16391 d=DataArrayInt(2000) ; d.iota() ; d.rearrange(2)
16392 st0=d.repr() ; st1=str(d) ; st2=d.reprNotTooLong()
16393 self.assertEqual(st0,st1) # 1000 tuples ( >=0 and <= 1000) -> str(d)==d.repr()
16394 self.assertEqual(st1,st2)
16396 d=DataArrayInt(2002) ; d.iota() ; d.rearrange(2)
16397 st0=d.repr() ; st1=str(d) ; st2=d.reprNotTooLong()
16398 self.assertNotEqual(st0,st1) # 1001 tuples ( > 1000) -> str(d)==d.reprNotTooLong()
16399 self.assertEqual(st1,st2)
16400 self.assertIn(len(st2),xrange(0,1000)) # no more than 1000 characters
16403 def testExtrudedMeshWithoutZipCoords1(self):
16404 """This test checks that MEDCouplingUMesh.buildExtrudedMesh do not perform a zipCoords."""
16405 arr=DataArrayDouble([(0.,0.),(1.,0.),(2.,0.),(3.,0.)])
16406 m=MEDCouplingUMesh("mesh",1) ; m.setCoords(arr)
16408 m.insertNextCell(NORM_SEG2,[1,2])
16409 arr1D=DataArrayDouble([(0.,0.),(0.,1.5),(0.,2.)])
16410 m1D=MEDCouplingUMesh("mesh1D",1) ; m1D.setCoords(arr1D)
16411 m1D.allocateCells()
16412 m1D.insertNextCell(NORM_SEG2,[0,1])
16413 m1D.insertNextCell(NORM_SEG2,[1,2])
16414 m2D=m.buildExtrudedMesh(m1D,0)
16415 self.assertEqual(m.getCoords().getHiddenCppPointer(),m2D.getCoords().getHiddenCppPointer())
16416 coo=DataArrayDouble([(0,0),(1,0),(2,0),(3,0),(0,1.5),(1,1.5),(2,1.5),(3,1.5),(0,2),(1,2),(2,2),(3,2)])
16417 self.assertTrue(m.getCoords().isEqual(coo,1e-12))
16418 self.assertTrue(m2D.getNodalConnectivity().isEqual(DataArrayInt([4,1,2,6,5,4,5,6,10,9])))
16419 self.assertTrue(m2D.getNodalConnectivityIndex().isEqual(DataArrayInt([0,5,10])))
16422 def testPointSetAreAllNodesFetched1(self):
16423 m=MEDCouplingCMesh() ; arr=DataArrayDouble(10) ; arr.iota()
16424 m.setCoords(arr,arr)
16425 m=m.buildUnstructured()
16426 self.assertTrue(m.areAllNodesFetched())
16428 self.assertTrue(not m2.areAllNodesFetched())
16430 self.assertTrue(m2.areAllNodesFetched())
16433 def testMEDCouplingPointSetComputeDiameterField1(self):
16434 arrX=DataArrayDouble([0.,1.1,1.7,2.1])
16435 arrY=DataArrayDouble([0.,0.7,0.8,1.9])
16436 arrZ=DataArrayDouble([0.,1.3,2.1,2.4])
16437 m=MEDCouplingCMesh() ; m.setCoords(arrX,arrY,arrZ) ; m=m.buildUnstructured()
16438 f=m.computeDiameterField()
16440 exp=DataArrayDouble([1.8411952639521971,1.5937377450509227,1.5297058540778357,1.705872210923198,1.4352700094407325,1.3638181696985856,2.0273134932713295,1.8055470085267789,1.7492855684535902,1.5297058540778357,1.2206555615733703,1.1357816691600546,1.3638181696985856,1.004987562112089,0.9,1.7492855684535902,1.4866068747318506,1.4177446878757824,1.3379088160259651,0.9695359714832656,0.8602325267042626,1.1445523142259597,0.6782329983125266,0.5099019513592785,1.5842979517754858,1.2884098726725124,1.208304597359457])
16441 self.assertTrue(exp.isEqual(f.getArray(),1e-12))
16444 m2.simplexize(PLANAR_FACE_5)
16445 m3=MEDCouplingUMesh.MergeUMeshesOnSameCoords(m1,m2)
16446 f=m3.computeDiameterField()
16448 exp2=DataArrayDouble([1.8411952639521971,1.5297058540778357,1.4352700094407325,2.0273134932713295,1.7492855684535902,1.2206555615733703,1.3638181696985856,0.9,1.4866068747318506,1.3379088160259651,0.8602325267042626,0.6782329983125266,1.5842979517754858,1.208304597359457,1.47648230602334,1.47648230602334,1.47648230602334,1.47648230602334,1.47648230602334,1.7029386365926402,1.7029386365926402,1.7029386365926402,1.7029386365926402,1.7029386365926402,1.3601470508735445,1.3601470508735445,1.3601470508735445,1.3601470508735445,1.3601470508735445,1.70293863659264,1.70293863659264,1.70293863659264,1.70293863659264,1.70293863659264,1.3601470508735445,1.3601470508735445,1.3601470508735445,1.3601470508735445,1.3601470508735445,1.063014581273465,1.063014581273465,1.063014581273465,1.063014581273465,1.063014581273465,1.0,1.0,1.0,1.0,1.0,1.5556349186104046,1.5556349186104046,1.5556349186104046,1.5556349186104046,1.5556349186104046,1.3601470508735443,1.3601470508735443,1.3601470508735443,1.3601470508735443,1.3601470508735443,0.9219544457292886,0.9219544457292886,0.9219544457292886,0.9219544457292886,0.9219544457292886,1.140175425099138,1.140175425099138,1.140175425099138,1.140175425099138,1.140175425099138,0.5,0.5,0.5,0.5,0.5,1.2529964086141667,1.2529964086141667,1.2529964086141667,1.2529964086141667,1.2529964086141667])
16449 self.assertTrue(exp2.isEqual(f.getArray(),1e-12))
16450 # TRI3 - spacedim = 2
16451 coo=DataArrayDouble([(1,1),(5,1.9),(2.1,3)])
16452 m=MEDCoupling1SGTUMesh("mesh",NORM_TRI3) ; m.setCoords(coo)
16453 for c in [[0,1,2],[0,2,1],[2,1,0]]:
16454 m.setNodalConnectivity(DataArrayInt(c))
16455 self.assertAlmostEqual(m.computeDiameterField().getArray()[0],4.1,12)
16456 # TRI3 - spacedim = 3
16457 coo=DataArrayDouble([(1.3198537928820775,1.0991902391274959,-0.028645697595823361),(5.2486835106806335,2.2234012799688281,0.30368935050077939),(2.2973688139447361,3.1572023778066649,0.10937756365410012)])
16458 m=MEDCoupling1SGTUMesh("mesh",NORM_TRI3) ; m.setCoords(coo)
16459 for c in [[0,1,2],[0,2,1],[2,1,0]]:
16460 m.setNodalConnectivity(DataArrayInt(c))
16461 self.assertAlmostEqual(m.computeDiameterField().getArray()[0],4.1,12)
16462 # QUAD4 - spacedim = 2
16463 coo=DataArrayDouble([(0,2),(2,0),(6,4),(4,9)])
16464 m=MEDCoupling1SGTUMesh("mesh",NORM_QUAD4) ; m.setCoords(coo)
16466 for delta in xrange(4):
16467 c=[(elt+delta)%4 for elt in xrange(4)]
16468 m.setNodalConnectivity(DataArrayInt(c))
16469 self.assertAlmostEqual(m.computeDiameterField().getArray()[0],exp3,12)
16471 m.setNodalConnectivity(DataArrayInt(c))
16472 self.assertAlmostEqual(m.computeDiameterField().getArray()[0],exp3,12)
16473 # QUAD4 - spacedim = 3
16474 coo=DataArrayDouble([(0.26570992384234871,2.0405889913271817,-0.079134238105786903),(2.3739976619218064,0.15779148692781009,0.021842842914139737),(6.1207841448393197,4.3755532938679655,0.43666375769970678),(3.8363255342943359,9.2521096041694229,0.41551170895942313)])
16475 m=MEDCoupling1SGTUMesh("mesh",NORM_QUAD4) ; m.setCoords(coo)
16476 for delta in xrange(4):
16477 c=[(elt+delta)%4 for elt in xrange(4)]
16478 m.setNodalConnectivity(DataArrayInt(c))
16479 self.assertAlmostEqual(m.computeDiameterField().getArray()[0],exp3,12)
16481 m.setNodalConnectivity(DataArrayInt(c))
16482 self.assertAlmostEqual(m.computeDiameterField().getArray()[0],exp3,12)
16484 # noise of coo=DataArrayDouble([(0,0,0),(1,0,0),(0,1,0),(0,0,2),(1,0,2),(0,1,2)]) + rotation([0.7,-1.2,0.6],[-4,-1,10],0.3)
16485 coo=DataArrayDouble([(-0.28594726851554486,-0.23715005500928255,-0.10268080010083136),(0.6167364988633947,-0.008923258436324799,-0.08574087516687756),(-0.6132873463333834,0.6943403970881654,-0.2806118260037991),(-0.40705974936532896,-0.05868487929989308,1.7724055544436323),(0.5505955507861958,0.19145393798144705,1.8788156352163994),(-0.6092686217773406,0.812502961290914,1.685712743757831)])
16486 m=MEDCoupling1SGTUMesh("mesh",NORM_PENTA6) ; m.setCoords(coo)
16487 exp4=2.5041256256889888
16488 self.assertAlmostEqual(exp4,coo.buildEuclidianDistanceDenseMatrix().getMaxValue()[0],12)# <- the definition of diameter
16489 for delta in xrange(3):
16490 c=[(elt+delta)%3 for elt in xrange(3)]
16491 c+=[elt+3 for elt in c]
16492 m.setNodalConnectivity(DataArrayInt(c))
16493 self.assertAlmostEqual(m.computeDiameterField().getArray()[0],exp4,12)
16495 m.setNodalConnectivity(DataArrayInt(c))
16496 self.assertAlmostEqual(m.computeDiameterField().getArray()[0],exp4,12)
16498 # noise of coo=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)]) + rotation([0.7,-1.2,0.6],[-4,-1,10],0.3)
16499 coo=DataArrayDouble([(-0.21266406388867243,-0.3049569460042527,-0.11012394815006032),(0.7641037943272584,-0.06990814759929553,-0.0909613877456491),(0.47406560768559974,0.8681310650341907,-0.2577311403703061),(-0.5136830410871793,0.644390554940524,-0.21319015989794698),(-0.4080167737381202,-0.12853761670628505,1.7869166291979348),(0.5650318811550441,0.20476257733110748,1.8140158890821603),(0.3230844436386215,1.1660778242678538,1.7175073141333406),(-0.6656588358432984,0.918357550969698,1.7566470691880265)])
16500 m=MEDCoupling1SGTUMesh("mesh",NORM_HEXA8) ; m.setCoords(coo)
16501 exp5=2.5366409441884215
16502 self.assertAlmostEqual(exp5,coo.buildEuclidianDistanceDenseMatrix().getMaxValue()[0],12)# <- the definition of diameter
16503 for delta in xrange(4):
16504 c=[(elt+delta)%4 for elt in xrange(4)]
16505 c+=[elt+4 for elt in c]
16506 m.setNodalConnectivity(DataArrayInt(c))
16507 self.assertAlmostEqual(m.computeDiameterField().getArray()[0],exp5,12)
16509 m.setNodalConnectivity(DataArrayInt(c))
16510 self.assertAlmostEqual(m.computeDiameterField().getArray()[0],exp5,12)
16511 # PYRA5 (1) 5th node is further
16512 # noise of coo=DataArrayDouble([(0,0,0),(1,0,0),(1,1,0),(0,1,0),(0.5,0.5,2)]) + rotation([0.7,-1.2,0.6],[-4,-1,10],0.3)
16513 coo=DataArrayDouble([(-0.31638393672228626,-0.3157865246451914,-0.12555467233075002),(0.7281379795666488,0.03836511217237115,-0.08431662762197323),(0.4757967840735147,0.8798897996143908,-0.2680890320119049),(-0.5386339871809047,0.5933159894201252,-0.2975311238319419),(0.012042592988768974,0.534282135495012,1.7859521682027926)])
16514 m=MEDCoupling1SGTUMesh("mesh",NORM_PYRA5) ; m.setCoords(coo)
16515 exp6=2.1558368027391386
16516 self.assertAlmostEqual(exp6,coo.buildEuclidianDistanceDenseMatrix().getMaxValue()[0],12)# <- the definition of diameter
16517 for delta in xrange(4):
16518 c=[(elt+delta)%4 for elt in xrange(4)]
16520 m.setNodalConnectivity(DataArrayInt(c))
16521 self.assertAlmostEqual(m.computeDiameterField().getArray()[0],exp6,12)
16523 # PYRA5 (2) 5th node is closer
16524 # noise of coo=DataArrayDouble([(0,0,0),(1,0,0),(1,1,0),(0,1,0),(0.5,0.5,0.1)]) + rotation([0.7,-1.2,0.6],[-4,-1,10],0.3)
16525 coo=DataArrayDouble([(-0.31638393672228626,-0.3157865246451914,-0.12555467233075002),(0.7281379795666488,0.03836511217237115,-0.08431662762197323),(0.4757967840735147,0.8798897996143908,-0.2680890320119049),(-0.5386339871809047,0.5933159894201252,-0.2975311238319419),(0.092964408350795,0.33389670321297005,-0.10171764888060142)])
16526 m=MEDCoupling1SGTUMesh("mesh",NORM_PYRA5) ; m.setCoords(coo)
16527 exp7=1.4413563787228953
16528 self.assertAlmostEqual(exp7,coo.buildEuclidianDistanceDenseMatrix().getMaxValue()[0],12)# <- the definition of diameter
16529 for delta in xrange(4):
16530 c=[(elt+delta)%4 for elt in xrange(4)]
16532 m.setNodalConnectivity(DataArrayInt(c))
16533 self.assertAlmostEqual(m.computeDiameterField().getArray()[0],exp7,12)
16536 # noise of coo=DataArrayDouble([(0,0,0),(1,0,0),(0,1,0),(1,1,1)]) + rotation([0.7,-1.2,0.6],[-4,-1,10],0.3)
16537 coo=DataArrayDouble([(-0.2256894071281369,-0.27631691290428106,-0.20266086543995965),(0.655458695100186,-0.08173323565551605,-0.19254662462061933),(-0.49893490718947264,0.5848097154568599,-0.3039928255382145),(0.2988102920828487,1.0582266398878504,0.7347375047372364)])
16538 m=MEDCoupling1SGTUMesh("mesh",NORM_TETRA4) ; m.setCoords(coo)
16539 exp8=1.7131322579364157
16540 self.assertAlmostEqual(exp8,coo.buildEuclidianDistanceDenseMatrix().getMaxValue()[0],12)# <- the definition of diameter
16541 for c in [[0,1,2,3],[0,3,2,1],[0,1,3,2],[0,2,3,1],[0,3,1,2],[0,2,1,3]]:
16542 for i in xrange(4):
16543 m.setNodalConnectivity(DataArrayInt([(elt+i)%4 for elt in c]))
16544 self.assertAlmostEqual(m.computeDiameterField().getArray()[0],exp8,12)
16551 if __name__ == '__main__':