1 # -*- coding: iso-8859-1 -*-
2 # Copyright (C) 2007-2014 CEA/DEN, EDF R&D
4 # This library is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU Lesser General Public
6 # License as published by the Free Software Foundation; either
7 # version 2.1 of the License, or (at your option) any later version.
9 # This library is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 # Lesser General Public License for more details.
14 # You should have received a copy of the GNU Lesser General Public
15 # License along with this library; if not, write to the Free Software
16 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21 from MEDCoupling import *
23 from math import pi,e,sqrt,cos,sin
24 from datetime import datetime
25 from MEDCouplingDataForTest import MEDCouplingDataForTest
26 import rlcompleter,readline # this line has to be here, to ensure a usability of MEDCoupling/MEDLoader. B4 removing it please notify to anthony.geay@cea.fr
28 class MEDCouplingBasicsTest(unittest.TestCase):
30 arr=DataArrayDouble.New()
31 arr.setValues([12.,11.,10.,9.,8.,7.,6.,5.,4.,3.,2.,1.],3,4)
32 arr.setInfoOnComponent(0,"ggg");
33 arr.setInfoOnComponent(1,"hhhh");
34 arr.setInfoOnComponent(2,"jj");
35 arr.setInfoOnComponent(3,"kkkkkk");
36 arr2=arr.convertToIntArr();
37 arr3=arr2.convertToDblArr();
38 self.assertTrue(arr.isEqual(arr3,1e-14))
42 arr1=DataArrayInt.New();
43 arr1Ref=[0,10,1,11,2,12,3,13,4,14,5,15,6,16]
44 arr1.setValues(arr1Ref,7,2);
45 self.assertEqual(7,arr1.getNumberOfTuples());
46 self.assertEqual(2,arr1.getNumberOfComponents());
47 self.assertEqual(arr1Ref,list(arr1.getValues()));
49 self.assertEqual(4,arr2.getNumberOfTuples());
50 self.assertEqual(2,arr2.getNumberOfComponents());
51 self.assertEqual(arr1Ref[6:],list(arr2.getValues()));
52 arr3=arr1.substr(2,5);
53 self.assertEqual(3,arr3.getNumberOfTuples());
54 self.assertEqual(2,arr3.getNumberOfComponents());
55 self.assertEqual(arr1Ref[4:10],list(arr3.getValues()));
57 arr4=DataArrayDouble.New();
58 arr4Ref=[0.8,10.8,1.9,11.9,2.1,12.1,3.2,13.2,4.3,14.3,5.4,15.4,6.5,16.5]
59 arr4.setValues(arr4Ref,7,2);
60 self.assertEqual(7,arr4.getNumberOfTuples());
61 self.assertEqual(2,arr4.getNumberOfComponents());
64 self.assertTrue(abs(arr4Ref[i]-tmp[i])<1e-14);
67 self.assertEqual(4,arr5.getNumberOfTuples());
68 self.assertEqual(2,arr5.getNumberOfComponents());
71 self.assertTrue(abs(arr4Ref[6+i]-tmp[i])<1e-14);
73 arr6=arr4.substr(2,5);
74 self.assertEqual(3,arr6.getNumberOfTuples());
75 self.assertEqual(2,arr6.getNumberOfComponents());
78 self.assertTrue(abs(arr4Ref[4+i]-tmp[i])<1e-14);
83 tab4=[1, 2, 8, 7, 2, 3, 9, 8, 3,
84 4, 10, 9, 4, 5, 11, 10, 5,
85 0, 6, 11, 0, 1, 7, 6 ]
88 coords=[ 0.024155, 0.04183768725682622, -0.305, 0.04831000000000001, -1.015761910347357e-17,
89 -0.305, 0.09662000000000001, -1.832979297858306e-18, -0.305, 0.120775, 0.04183768725682623,
90 -0.305, 0.09662000000000001, 0.08367537451365245, -0.305, 0.04831000000000001, 0.08367537451365246,
91 -0.305, 0.024155, 0.04183768725682622, -0.2863, 0.04831000000000001, -1.015761910347357e-17, -0.2863,
92 0.09662000000000001, -1.832979297858306e-18, -0.2863, 0.120775, 0.04183768725682623, -0.2863, 0.09662000000000001,
93 0.08367537451365245, -0.2863, 0.04831000000000001, 0.08367537451365246, -0.2863 ]
94 self.assertEqual(MEDCouplingMesh.GetNumberOfNodesOfGeometricType(NORM_TRI3),3)
95 self.assertTrue(MEDCouplingMesh.IsStaticGeometricType(NORM_TRI3))
96 self.assertTrue(MEDCouplingMesh.IsLinearGeometricType(NORM_TRI3))
97 self.assertEqual(MEDCouplingMesh.GetDimensionOfGeometricType(NORM_TRI3),2)
98 self.assertEqual(MEDCouplingMesh.GetReprOfGeometricType(NORM_TRI3),"NORM_TRI3")
99 self.assertRaises(InterpKernelException,MEDCouplingMesh.GetNumberOfNodesOfGeometricType,NORM_POLYGON)
100 self.assertTrue(not MEDCouplingMesh.IsStaticGeometricType(NORM_POLYGON))
101 self.assertTrue(MEDCouplingMesh.IsLinearGeometricType(NORM_POLYGON))
102 self.assertEqual(MEDCouplingMesh.GetDimensionOfGeometricType(NORM_POLYGON),2)
103 self.assertEqual(MEDCouplingMesh.GetReprOfGeometricType(NORM_POLYGON),"NORM_POLYGON")
104 self.assertEqual(MEDCouplingMesh.GetNumberOfNodesOfGeometricType(NORM_TRI6),6)
105 self.assertTrue(MEDCouplingMesh.IsStaticGeometricType(NORM_TRI6))
106 self.assertTrue(not MEDCouplingMesh.IsLinearGeometricType(NORM_TRI6))
107 self.assertEqual(MEDCouplingMesh.GetDimensionOfGeometricType(NORM_TRI6),2)
108 self.assertEqual(MEDCouplingMesh.GetReprOfGeometricType(NORM_TRI6),"NORM_TRI6")
109 mesh=MEDCouplingUMesh.New()
110 mesh.setMeshDimension(2)
111 mesh.allocateCells(8);
112 mesh.setName("mesh1")
113 self.assertTrue(mesh.getName()=="mesh1")
114 for i in range(nbOfCells):
115 mesh.insertNextCell(NORM_QUAD4,4,tab4[4*i:4*(i+1)]);
117 mesh.finishInsertingCells()
118 self.assertTrue(mesh.getNumberOfCells()==nbOfCells)
119 self.assertTrue(mesh.getNodalConnectivity().getNbOfElems()==30)
120 self.assertTrue(mesh.getNodalConnectivityIndex().getNbOfElems()==nbOfCells+1)
121 myCoords=DataArrayDouble.New()
122 myCoords.setValues(coords,nbOfNodes,3);
123 self.assertTrue(myCoords.getIJ(3,2)==-0.305)
124 mesh.setCoords(myCoords);
125 mesh.checkCoherency();
126 self.assertTrue(mesh.getAllGeoTypes()==[4])
127 myFalseConn=DataArrayInt.New()
128 myFalseConn.setValues(tab4,6,4)
129 self.assertTrue(myFalseConn.getIJ(1,1)==3)
131 field=MEDCouplingFieldDouble.New(ON_CELLS)
133 field.setNature(Integral)
134 myCoords=DataArrayDouble.New()
136 for i in range(nbOfCells*9):
137 sampleTab.append(float(i))
138 myCoords.setValues(sampleTab,nbOfCells,9);
139 field.setArray(myCoords)
140 self.assertTrue(3==mesh.getSpaceDimension())
141 field.checkCoherency()
142 mesh2=mesh.clone(False)
143 mesh3=mesh.clone(True)
146 ## deep full recursively copy of field -> both field and mesh underneath copied
147 field2=field.clone(True)
148 field2.setMesh(field.getMesh().clone(True))
149 mesh3=mesh.clone(True)
150 field3=mesh3.fillFromAnalytic(ON_CELLS,2,"x*IVec+(y+z)*JVec")
151 field3.applyFunc("u*u*u+cos(u)")
154 def testMeshPointsCloud(self):
155 targetCoords=[-0.3,-0.3,0.5, 0.2,-0.3,1., 0.7,-0.3,1.5,
156 -0.3,0.2,0.5, 0.2,0.2,1., 0.7,0.2,1.5, -0.3,0.7,0.5, 0.2,0.7,1., 0.7,0.7,1.5]
157 targetMesh=MEDCouplingUMesh.New();
158 targetMesh.setMeshDimension(0);
159 targetMesh.allocateCells(8);
160 targetMesh.insertNextCell(NORM_POINT1,1,[0]);
161 targetMesh.insertNextCell(NORM_POINT1,1,[1]);
162 targetMesh.insertNextCell(NORM_POINT1,1,[2]);
163 targetMesh.insertNextCell(NORM_POINT1,1,[3]);
164 targetMesh.insertNextCell(NORM_POINT1,1,[4]);
165 targetMesh.insertNextCell(NORM_POINT1,1,[5]);
166 targetMesh.insertNextCell(NORM_POINT1,1,[7]);
167 targetMesh.insertNextCell(NORM_POINT1,1,[6]);
168 targetMesh.finishInsertingCells();
169 self.assertRaises(InterpKernelException,targetMesh.checkCoherency);
170 myCoords=DataArrayDouble.New();
171 myCoords.setValues(targetCoords,9,3);
172 targetMesh.setCoords(myCoords);
173 self.assertEqual(targetMesh.getSpaceDimension(),3)
174 self.assertEqual(targetMesh.getNumberOfCells(),8)
175 self.assertEqual(targetMesh.getNumberOfNodes(),9)
176 self.assertEqual(targetMesh.getMeshDimension(),0)
179 def testMeshM1D(self):
180 meshM1D=MEDCouplingUMesh.New();
181 self.assertRaises(InterpKernelException,meshM1D.getMeshDimension);
182 self.assertRaises(InterpKernelException,meshM1D.getNumberOfNodes);
183 self.assertRaises(InterpKernelException,meshM1D.getNumberOfCells);
184 self.assertRaises(InterpKernelException,meshM1D.setMeshDimension,-2)
185 self.assertRaises(InterpKernelException,meshM1D.setMeshDimension,-10)
186 meshM1D.setMeshDimension(-1);
187 meshM1D.checkCoherency();
188 self.assertEqual(meshM1D.getMeshDimension(),-1);
189 self.assertEqual(meshM1D.getNumberOfCells(),1);
190 self.assertRaises(InterpKernelException,meshM1D.getNumberOfNodes);
191 self.assertRaises(InterpKernelException,meshM1D.getSpaceDimension);
192 cpy=meshM1D.clone(True);
193 self.assertTrue(cpy.isEqual(meshM1D,1e-12));
194 fieldOnCells=MEDCouplingFieldDouble.New(ON_CELLS);
195 fieldOnCells.setMesh(meshM1D);
196 array=DataArrayDouble.New();
197 array.setValues(6*[7.],1,6);
198 fieldOnCells.setArray(array);
199 fieldOnCells.checkCoherency();
202 def testDeepCopy(self):
203 array=DataArrayDouble.New();
204 array.setValues(5*3*[7.],5,3);
205 self.assertEqual(array.getIJ(3,2),7.);
206 array2=array.deepCpy();
207 self.assertEqual(array2.getIJ(3,2),7.)
209 array3=DataArrayInt.New();
210 array3.setValues(5*3*[17],5,3);
211 self.assertEqual(array3.getIJ(3,2),17);
212 array4=array3.deepCpy();
213 self.assertEqual(array4.getIJ(3,2),17);
216 def testRevNodal(self):
217 mesh=MEDCouplingDataForTest.build2DTargetMesh_1()
218 revNodal,revNodalIndx=mesh.getReverseNodalConnectivity();
219 revNodalExpected=[0,0,1,1,2,0,3,0,1,2,3,4,2,4,3,3,4,4];
220 revNodalIndexExpected=[0,1,3,5,7,12,14,15,17,18];
221 self.assertEqual(revNodal.getNbOfElems(),18)
222 self.assertEqual(revNodalIndx.getNbOfElems(),10)
223 self.assertEqual(list(revNodal.getValues()),revNodalExpected)
224 self.assertEqual(list(revNodalIndx.getValues()),revNodalIndexExpected)
227 def testConvertToPolyTypes(self):
228 mesh=MEDCouplingDataForTest.build2DTargetMesh_1();
230 mesh.convertToPolyTypes(elts);
231 mesh.checkCoherency();
232 self.assertEqual(5,mesh.getNumberOfCells());
233 self.assertEqual(23,mesh.getNodalConnectivity().getNumberOfTuples());
234 expected1=[4, 0, 3, 4, 1, 5, 1, 4, 2, 3, 4, 5, 2, 5, 6, 7, 4, 3, 4, 7, 8, 5, 4]
235 self.assertEqual(expected1,list(mesh.getNodalConnectivity().getValues()));
237 mesh=MEDCouplingDataForTest.build3DTargetMesh_1();
238 mesh.convertToPolyTypes(elts);
239 mesh.checkCoherency();
240 self.assertEqual(8,mesh.getNumberOfCells());
241 self.assertEqual(114,mesh.getNodalConnectivity().getNumberOfTuples());
242 mesh.convertToPolyTypes(elts);
243 mesh.checkCoherency();
244 self.assertEqual(8,mesh.getNumberOfCells());
245 self.assertEqual(114,mesh.getNodalConnectivity().getNumberOfTuples());
248 def testDescConn2D(self):
249 mesh=MEDCouplingDataForTest.build2DTargetMesh_1();
250 desc=DataArrayInt.New();
251 descIndx=DataArrayInt.New();
252 revDesc=DataArrayInt.New();
253 revDescIndx=DataArrayInt.New();
254 mesh2=mesh.buildDescendingConnectivity(desc,descIndx,revDesc,revDescIndx);
255 mesh2.checkCoherency();
256 self.assertEqual(1,mesh2.getMeshDimension());
257 self.assertEqual(13,mesh2.getNumberOfCells());
258 self.assertEqual(14,revDescIndx.getNbOfElems()); self.assertEqual(14,revDescIndx.getNumberOfTuples());
259 self.assertEqual(6,descIndx.getNbOfElems()); self.assertEqual(6,descIndx.getNumberOfTuples());
260 self.assertEqual(18,desc.getNbOfElems()); self.assertEqual(18,desc.getNumberOfTuples());
261 self.assertEqual(18,revDesc.getNbOfElems()); self.assertEqual(18,revDesc.getNumberOfTuples());
262 expected1=[0,1,2,3, 2,4,5, 6,7,4, 8,9,1,10, 11,12,6,9];
263 self.assertEqual(expected1,list(desc.getValues()));
264 expected2=[0,4,7,10,14,18];
265 self.assertEqual(expected2,list(descIndx.getValues()));
266 expected3=[0,1,3,5,6,8,9,11,12,13,15,16,17,18];
267 self.assertEqual(expected3,list(revDescIndx.getValues()));
268 expected4=[0, 0,3, 0,1, 0, 1,2, 1, 2,4, 2, 3, 3,4, 3, 4, 4];
269 self.assertEqual(expected4,list(revDesc.getValues()));
270 conn=mesh2.getNodalConnectivity();
271 connIndex=mesh2.getNodalConnectivityIndex();
272 expected5=[0,3,6,9,12,15,18,21,24,27,30,33,36,39];
273 self.assertEqual(expected5,list(connIndex.getValues()));
274 expected6=[1, 0, 3, 1, 3, 4, 1, 4, 1, 1, 1, 0, 1, 4, 2, 1, 2, 1, 1, 4, 5, 1, 5, 2, 1, 6, 7, 1, 7, 4, 1, 3, 6, 1, 7, 8, 1, 8, 5];
275 self.assertEqual(expected6,list(conn.getValues()));
278 mesh.convertToPolyTypes(eltsV);
279 mesh.checkCoherency();
281 desc=DataArrayInt.New();
282 descIndx=DataArrayInt.New();
283 revDesc=DataArrayInt.New();
284 revDescIndx=DataArrayInt.New();
286 mesh2=mesh.buildDescendingConnectivity(desc,descIndx,revDesc,revDescIndx);
287 mesh2.checkCoherency();
288 self.assertEqual(1,mesh2.getMeshDimension());
289 self.assertEqual(13,mesh2.getNumberOfCells());
290 self.assertEqual(14,revDescIndx.getNbOfElems()); self.assertEqual(14,revDescIndx.getNumberOfTuples());
291 self.assertEqual(6,descIndx.getNbOfElems()); self.assertEqual(6,descIndx.getNumberOfTuples());
292 self.assertEqual(18,desc.getNbOfElems()); self.assertEqual(18,desc.getNumberOfTuples());
293 self.assertEqual(18,revDesc.getNbOfElems()); self.assertEqual(18,revDesc.getNumberOfTuples());
294 self.assertEqual(expected1,list(desc.getValues()));
295 self.assertEqual(expected2,list(descIndx.getValues()));
296 self.assertEqual(expected3,list(revDescIndx.getValues()));
297 self.assertEqual(expected4,list(revDesc.getValues()));
298 conn=mesh2.getNodalConnectivity();
299 connIndex=mesh2.getNodalConnectivityIndex();
300 self.assertEqual(expected5,list(connIndex.getValues()));
301 self.assertEqual(expected6,list(conn.getValues()));
304 def testDescConn3D(self):
305 mesh=MEDCouplingDataForTest.build3DTargetMesh_1();
306 desc=DataArrayInt.New();
307 descIndx=DataArrayInt.New();
308 revDesc=DataArrayInt.New();
309 revDescIndx=DataArrayInt.New();
311 mesh2=mesh.buildDescendingConnectivity(desc,descIndx,revDesc,revDescIndx);
312 mesh2.checkCoherency();
313 self.assertEqual(2,mesh2.getMeshDimension());
314 self.assertEqual(36,mesh2.getNumberOfCells());
315 self.assertEqual(37,revDescIndx.getNbOfElems()); self.assertEqual(37,revDescIndx.getNumberOfTuples());
316 self.assertEqual(9,descIndx.getNbOfElems()); self.assertEqual(9,descIndx.getNumberOfTuples());
317 self.assertEqual(48,desc.getNbOfElems()); self.assertEqual(48,desc.getNumberOfTuples());
318 self.assertEqual(48,revDesc.getNbOfElems()); self.assertEqual(48,revDesc.getNumberOfTuples());
319 expected1=[0, 6, 12, 18, 24, 30, 36, 42, 48]
320 expected2=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 3, 11, 12, 4, 13, 14, 15, 16, 17, 10, 18, 19, 13, 1, 20, 21, 22, 23, 24, 7, 25, 26, 27, 28, 22, 12, 29, 23, 30, 31, 32, 17, 33, 28, 34, 35, 30]
321 expected3=[0, 1, 3, 4, 6, 8, 9, 10, 12, 13, 14, 16, 17, 19, 21, 22, 23, 24, 26, 27, 28, 29, 30, 32, 34, 35, 36, 37, 38, 40, 41, 43, 44, 45, 46, 47, 48]
322 expected4=[0, 0, 4, 0, 0, 1, 0, 2, 0, 1, 1, 5, 1, 1, 1, 3, 2, 2, 6, 2, 3, 2, 2, 3, 3, 7, 3, 3, 4, 4, 4, 5, 4, 6, 4, 5, 5, 5, 5, 7, 6, 6, 7, 6, 6, 7, 7, 7]
323 expected5=[0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100, 105, 110, 115, 120, 125, 130, 135, 140, 145, 150, 155, 160, 165, 170, 175, 180]
324 expected6=[4, 0, 1, 4, 3, 4, 9, 12, 13, 10, 4, 0, 9, 10, 1, 4, 1, 10, 13, 4, 4, 4, 13, 12, 3, 4, 3, 12, 9, 0, 4, 1, 2, 5, 4, 4, 10, 13, 14, 11, 4, 1, 10, 11, 2, 4, 2, 11, 14,
325 5, 4, 5, 14, 13, 4, 4, 3, 4, 7, 6, 4, 12, 15, 16, 13, 4, 4, 13, 16, 7, 4, 7, 16, 15, 6, 4, 6, 15, 12, 3, 4, 4, 5, 8, 7, 4, 13, 16, 17, 14, 4, 5, 14, 17, 8, 4, 8,
326 17, 16, 7, 4, 18, 21, 22, 19, 4, 9, 18, 19, 10, 4, 10, 19, 22, 13, 4, 13, 22, 21, 12, 4, 12, 21, 18, 9, 4, 19, 22, 23, 20, 4, 10, 19, 20, 11, 4, 11, 20, 23, 14, 4,
327 14, 23, 22, 13, 4, 21, 24, 25, 22, 4, 13, 22, 25, 16, 4, 16, 25, 24, 15, 4, 15, 24, 21, 12, 4, 22, 25, 26, 23, 4, 14, 23, 26, 17, 4, 17, 26, 25, 16]
328 expected7=[4, 0, 1, 4, 3, 4, 9, 12, 13, 10, 4, 0, 9, 10, 1, 4, 1, 10, 13, 4, 4, 4, 13, 12, 3, 4, 3, 12, 9, 0, 5, 1, 2, 5, 4, 5, 10, 13, 14, 11, 5, 1, 10, 11, 2, 5, 2, 11, 14,
329 5, 5, 5, 14, 13, 4, 4, 3, 4, 7, 6, 4, 12, 15, 16, 13, 4, 4, 13, 16, 7, 4, 7, 16, 15, 6, 4, 6, 15, 12, 3, 5, 4, 5, 8, 7, 5, 13, 16, 17, 14, 5, 5, 14, 17, 8, 5, 8,
330 17, 16, 7, 4, 18, 21, 22, 19, 4, 9, 18, 19, 10, 4, 10, 19, 22, 13, 4, 13, 22, 21, 12, 4, 12, 21, 18, 9, 4, 19, 22, 23, 20, 4, 10, 19, 20, 11, 4, 11, 20, 23, 14, 4,
331 14, 23, 22, 13, 4, 21, 24, 25, 22, 4, 13, 22, 25, 16, 4, 16, 25, 24, 15, 4, 15, 24, 21, 12, 4, 22, 25, 26, 23, 4, 14, 23, 26, 17, 4, 17, 26, 25, 16]
333 self.assertEqual(expected1,list(descIndx.getValues()));
334 self.assertEqual(expected2,list(desc.getValues()));
335 self.assertEqual(expected3,list(revDescIndx.getValues()));
336 self.assertEqual(expected4,list(revDesc.getValues()));
337 self.assertEqual(expected5,list(mesh2.getNodalConnectivityIndex().getValues()));
338 self.assertEqual(expected6,list(mesh2.getNodalConnectivity().getValues()));
341 mesh.convertToPolyTypes(eltsV);
342 mesh.checkCoherency();
343 desc=DataArrayInt.New();
344 descIndx=DataArrayInt.New();
345 revDesc=DataArrayInt.New();
346 revDescIndx=DataArrayInt.New();
347 mesh2=mesh.buildDescendingConnectivity(desc,descIndx,revDesc,revDescIndx);
348 mesh2.checkCoherency();
349 self.assertEqual(2,mesh2.getMeshDimension());
350 self.assertEqual(36,mesh2.getNumberOfCells());
351 self.assertEqual(37,revDescIndx.getNbOfElems()); self.assertEqual(37,revDescIndx.getNumberOfTuples());
352 self.assertEqual(9,descIndx.getNbOfElems()); self.assertEqual(9,descIndx.getNumberOfTuples());
353 self.assertEqual(48,desc.getNbOfElems()); self.assertEqual(48,desc.getNumberOfTuples());
354 self.assertEqual(48,revDesc.getNbOfElems()); self.assertEqual(48,revDesc.getNumberOfTuples());
355 self.assertEqual(expected1,list(descIndx.getValues()));
356 self.assertEqual(expected2,list(desc.getValues()));
357 self.assertEqual(expected3,list(revDescIndx.getValues()));
358 self.assertEqual(expected4,list(revDesc.getValues()));
359 self.assertEqual(expected5,list(mesh2.getNodalConnectivityIndex().getValues()));
360 self.assertEqual(expected7,list(mesh2.getNodalConnectivity().getValues()));
363 def testFindBoundaryNodes(self):
364 mesh=MEDCouplingDataForTest.build3DTargetMesh_1();
365 boundaryNodes=mesh.findBoundaryNodes();
366 expected1=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26];
367 self.assertEqual(expected1,boundaryNodes.getValues());
370 def testBoundaryMesh(self):
371 mesh=MEDCouplingDataForTest.build3DTargetMesh_1();
372 mesh2=mesh.buildBoundaryMesh(False);
373 self.assertEqual(24,mesh2.getNumberOfCells());
374 self.assertEqual(26,mesh2.getNumberOfNodes());
377 def testBuildPartOfMySelf(self):
378 mesh=MEDCouplingDataForTest.build2DTargetMesh_1();
379 mesh.setName("Toto");
383 subMesh=mesh.buildPart(tab1)
384 self.assertTrue(isinstance(subMesh,MEDCouplingUMesh))
385 subMesh=mesh.buildPartOfMySelf(tab1,True);
386 self.assertTrue(isinstance(subMesh,MEDCouplingUMesh))
387 name=subMesh.getName();
388 self.assertEqual(2,len(mesh.getAllGeoTypes()));
389 self.assertEqual(NORM_TRI3,mesh.getAllGeoTypes()[0]);
390 self.assertEqual(NORM_QUAD4,mesh.getAllGeoTypes()[1]);
391 self.assertEqual(1,len(subMesh.getAllGeoTypes()));
392 self.assertEqual(NORM_QUAD4,subMesh.getAllGeoTypes()[0]);
393 self.assertEqual(name,"Toto");
394 self.assertEqual(2,subMesh.getNumberOfCells());
395 subConn=[4,0,3,4,1,4,7,8,5,4];
396 subConnIndex=[0,5,10];
397 self.assertEqual(10,subMesh.getNodalConnectivity().getNbOfElems());
398 self.assertEqual(3,subMesh.getNodalConnectivityIndex().getNbOfElems());
399 self.assertEqual(subConn[0:10],list(subMesh.getNodalConnectivity().getValues()));
400 self.assertEqual(subConnIndex[0:3],list(subMesh.getNodalConnectivityIndex().getValues()));
402 subMesh=mesh.buildPartOfMySelf(tab2[0:3],True);
403 self.assertTrue(isinstance(subMesh,MEDCouplingUMesh));
404 name=subMesh.getName();
405 self.assertEqual(2,len(subMesh.getAllGeoTypes()));
406 self.assertEqual(NORM_TRI3,subMesh.getAllGeoTypes()[0]);
407 self.assertEqual(NORM_QUAD4,subMesh.getAllGeoTypes()[1]);
408 self.assertEqual(name,"Toto");
409 self.assertEqual(3,subMesh.getNumberOfCells());
410 subConn2=[4,0,3,4,1,3,4,5,2,4,6,7,4,3]
411 subConnIndex2=[0,5,9,14]
412 self.assertEqual(14,subMesh.getNodalConnectivity().getNbOfElems());
413 self.assertEqual(4,subMesh.getNodalConnectivityIndex().getNbOfElems());
414 self.assertEqual(subConn2[0:14],list(subMesh.getNodalConnectivity().getValues()));
415 self.assertEqual(subConnIndex2[0:4],list(subMesh.getNodalConnectivityIndex().getValues()));
416 dd=DataArrayInt.New()
420 subMesh=subMesh.buildPartOfMySelf(dd,True);
421 self.assertEqual("coucou",subMesh.getName());
424 def testBuildPartOfMySelfNode(self):
425 mesh=MEDCouplingDataForTest.build2DTargetMesh_1();
427 subMesh=mesh.buildPartOfMySelfNode(tab1[0:4],True);
428 self.assertTrue(isinstance(subMesh,MEDCouplingUMesh))
429 self.assertEqual(1,len(subMesh.getAllGeoTypes()));
430 self.assertEqual(NORM_QUAD4,subMesh.getAllGeoTypes()[0]);
431 self.assertEqual(1,subMesh.getNumberOfCells());
432 self.assertEqual(5,subMesh.getNodalConnectivity().getNbOfElems());
433 self.assertEqual(2,subMesh.getNodalConnectivityIndex().getNbOfElems());
436 self.assertEqual(subConn[0:5],list(subMesh.getNodalConnectivity().getValues()));
437 self.assertEqual(subConnIndex[0:2],list(subMesh.getNodalConnectivityIndex().getValues()));
439 ddd=DataArrayInt.New()
440 ddd.setValues(tab1[0:2],2,1)
442 subMesh=mesh.buildPartOfMySelfNode(ddd,False);
443 self.assertEqual("ddd",subMesh.getName())
444 self.assertTrue(isinstance(subMesh,MEDCouplingUMesh))
445 self.assertEqual(2,len(subMesh.getAllGeoTypes()));
446 self.assertEqual(NORM_TRI3,subMesh.getAllGeoTypes()[0]);
447 self.assertEqual(NORM_QUAD4,subMesh.getAllGeoTypes()[1]);
448 self.assertEqual(3,subMesh.getNumberOfCells());
449 self.assertEqual(14,subMesh.getNodalConnectivity().getNbOfElems());
450 self.assertEqual(4,subMesh.getNodalConnectivityIndex().getNbOfElems());
451 subConn2=[3,4,5,2,4,6,7,4,3,4,7,8,5,4]
452 subConnIndex2=[0,4,9,14]
453 self.assertEqual(subConn2[0:14],list(subMesh.getNodalConnectivity().getValues()));
454 self.assertEqual(subConnIndex2[0:4],list(subMesh.getNodalConnectivityIndex().getValues()));
455 #testing the case where length of tab2 is greater than max number of node per cell.
457 subMesh=mesh.buildPartOfMySelfNode(tab2[0:7],True);
458 self.assertTrue(isinstance(subMesh,MEDCouplingUMesh))
459 self.assertEqual(2,len(subMesh.getAllGeoTypes()));
460 self.assertEqual(NORM_TRI3,subMesh.getAllGeoTypes()[0]);
461 self.assertEqual(NORM_QUAD4,subMesh.getAllGeoTypes()[1]);
462 self.assertEqual(3,subMesh.getNumberOfCells());
465 def testZipCoords(self):
466 mesh=MEDCouplingDataForTest.build2DTargetMesh_1();
467 self.assertEqual(2,len(mesh.getAllGeoTypes()));
468 self.assertEqual(2,mesh.getSpaceDimension());
469 self.assertEqual(9,mesh.getNumberOfNodes());
470 self.assertEqual(5,mesh.getNumberOfCells());
471 oldConn=mesh.getNodalConnectivity().getValues()[0:mesh.getNodalConnectivity().getNbOfElems()];
472 oldConnIndex=mesh.getNodalConnectivityIndex().getValues()[0:mesh.getNumberOfCells()+1]
473 oldCoords=mesh.getCoords();
475 self.assertEqual(2,len(mesh.getAllGeoTypes()));
476 self.assertEqual(2,mesh.getSpaceDimension());
477 self.assertEqual(9,mesh.getNumberOfNodes());
478 self.assertEqual(5,mesh.getNumberOfCells());
479 self.assertEqual(mesh.getCoords().getValues()[0:2*9],oldCoords.getValues());
480 self.assertEqual(list(oldConn),list(mesh.getNodalConnectivity().getValues()));
481 self.assertEqual(list(oldConnIndex),list(mesh.getNodalConnectivityIndex().getValues()));
484 subMesh=mesh.buildPartOfMySelf(tab1,True);
485 self.assertTrue(isinstance(subMesh,MEDCouplingUMesh))
486 traducer=subMesh.zipCoordsTraducer();
487 expectedTraducer=[0, 1, -1, 2, 3, 4, -1, 5, 6]
488 self.assertEqual(expectedTraducer,list(traducer.getValues()));
489 self.assertEqual(NORM_QUAD4,subMesh.getAllGeoTypes()[0]);
490 self.assertEqual(2,subMesh.getNumberOfCells());
491 subConn=[4,0,2,3,1,4,5,6,4,3]
492 subConnIndex=[0,5,10]
493 self.assertEqual(7,subMesh.getNumberOfNodes());
494 self.assertEqual(10,subMesh.getNodalConnectivity().getNbOfElems());
495 self.assertEqual(3,subMesh.getNodalConnectivityIndex().getNbOfElems());
496 self.assertEqual(subConn,list(subMesh.getNodalConnectivity().getValues()));
497 self.assertEqual(subConnIndex,list(subMesh.getNodalConnectivityIndex().getValues()));
499 subMesh=mesh.buildPartOfMySelf(tab1,False);
500 self.assertTrue(isinstance(subMesh,MEDCouplingUMesh))
501 self.assertEqual(NORM_QUAD4,subMesh.getAllGeoTypes()[0]);
502 self.assertEqual(2,subMesh.getNumberOfCells());
503 self.assertEqual(7,subMesh.getNumberOfNodes());
504 self.assertEqual(10,subMesh.getNodalConnectivity().getNbOfElems());
505 self.assertEqual(3,subMesh.getNodalConnectivityIndex().getNbOfElems());
506 self.assertEqual(subConn,list(subMesh.getNodalConnectivity().getValues()));
507 self.assertEqual(subConnIndex,list(subMesh.getNodalConnectivityIndex().getValues()));
510 def testZipConnectivity(self):
511 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
512 m2=MEDCouplingDataForTest.build2DTargetMesh_1();
514 m3=m2.buildPartOfMySelf(cells1,True);
515 self.assertTrue(isinstance(m3,MEDCouplingUMesh))
516 m4=MEDCouplingDataForTest.build2DSourceMesh_1();
517 m5=MEDCouplingUMesh.MergeUMeshes(m1,m3);
518 m6=MEDCouplingUMesh.MergeUMeshes(m5,m4);
520 self.assertEqual(10,m6.getNumberOfCells());
521 self.assertEqual(22,m6.getNumberOfNodes());
522 (arr,areNodesMerged,newNbOfNodes)=m6.mergeNodes(1e-13);
523 self.assertTrue(areNodesMerged);
524 self.assertEqual(10,m6.getNumberOfCells());
525 self.assertEqual(9,m6.getNumberOfNodes());
527 arr=m6.zipConnectivityTraducer(0);
528 self.assertEqual(7,m6.getNumberOfCells());
530 arr=m6.zipConnectivityTraducer(0);
531 self.assertTrue(m7.isEqual(m6,1e-12));
532 self.assertEqual(7,m6.getNumberOfCells());
535 def testEqualMesh(self):
536 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
537 mesh2=MEDCouplingDataForTest.build2DTargetMesh_1();
539 self.assertTrue(mesh1.isEqual(mesh1,1e-12));
541 self.assertTrue(mesh1.isEqual(mesh2,1e-12));
542 self.assertTrue(mesh2.isEqual(mesh1,1e-12));
543 pt=mesh2.getCoords().getValues();
545 mesh2.getCoords().setIJ(0,1,5.999);
546 self.assertTrue(not mesh1.isEqual(mesh2,1e-12));
547 self.assertTrue(not mesh2.isEqual(mesh1,1e-12));
548 mesh2.getCoords().setIJ(0,1,tmp);
549 self.assertTrue(mesh1.isEqual(mesh2,1e-12));
550 self.assertTrue(mesh2.isEqual(mesh1,1e-12));
552 pt2=mesh1.getNodalConnectivity().getValues();
553 mesh1.getNodalConnectivity().setIJ(5,0,int(pt2[5])+1);
554 self.assertTrue(not mesh1.isEqual(mesh2,1e-12));
555 self.assertTrue(not mesh2.isEqual(mesh1,1e-12));
556 mesh1.getNodalConnectivity().setIJ(5,0,int(pt2[5]));
557 self.assertTrue(mesh1.isEqual(mesh2,1e-12));
558 self.assertTrue(mesh2.isEqual(mesh1,1e-12));
560 pt2=mesh1.getNodalConnectivityIndex().getValues();
561 mesh1.getNodalConnectivityIndex().setIJ(1,0,int(pt2[1]+1));
562 self.assertTrue(not mesh1.isEqual(mesh2,1e-12));
563 self.assertTrue(not mesh2.isEqual(mesh1,1e-12));
564 mesh1.getNodalConnectivityIndex().setIJ(1,0,int(pt2[1]));
565 self.assertTrue(mesh1.isEqual(mesh2,1e-12));
566 self.assertTrue(mesh2.isEqual(mesh1,1e-12));
568 tmp3=mesh1.getName();
569 mesh1.setName("lllll");
570 self.assertTrue(not mesh1.isEqual(mesh2,1e-12));
571 self.assertTrue(not mesh2.isEqual(mesh1,1e-12));
573 self.assertTrue(mesh1.isEqual(mesh2,1e-12));
574 self.assertTrue(mesh2.isEqual(mesh1,1e-12));
576 tmp3=mesh2.getCoords().getInfoOnComponent(1);
577 mesh2.getCoords().setInfoOnComponent(1,"kkkkkk");
578 self.assertTrue(not mesh1.isEqual(mesh2,1e-12));
579 self.assertTrue(not mesh2.isEqual(mesh1,1e-12));
580 mesh2.getCoords().setInfoOnComponent(1,tmp3);
581 self.assertTrue(mesh1.isEqual(mesh2,1e-12));
582 self.assertTrue(mesh2.isEqual(mesh1,1e-12));
585 def testEqualFieldDouble(self):
586 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
587 mesh2=MEDCouplingDataForTest.build2DTargetMesh_1();
589 fieldOnCells1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
590 fieldOnCells1.setMesh(mesh1);
591 fieldOnCells2=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
592 fieldOnCells2.setMesh(mesh2);
594 self.assertTrue(fieldOnCells1.isEqual(fieldOnCells2,1e-12,1e-15));
595 self.assertTrue(fieldOnCells2.isEqual(fieldOnCells1,1e-12,1e-15));
597 fieldOnNodes1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
598 self.assertTrue(not fieldOnCells1.isEqual(fieldOnNodes1,1e-12,1e-15));
599 self.assertTrue(not fieldOnNodes1.isEqual(fieldOnCells1,1e-12,1e-15));
601 fieldOnCells2=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
602 self.assertEqual(fieldOnCells2.getMesh(),None) # to check that convertMesh wrapping do not raise but return Py_None
603 self.assertTrue(not fieldOnCells1.isEqual(fieldOnCells2,1e-12,1e-15));
604 self.assertTrue(not fieldOnCells2.isEqual(fieldOnCells1,1e-12,1e-15));
605 fieldOnCells1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
606 self.assertTrue(fieldOnCells1.isEqual(fieldOnCells2,1e-12,1e-15));
607 self.assertTrue(fieldOnCells2.isEqual(fieldOnCells1,1e-12,1e-15));
608 fieldOnCells1.setTime(4.,6,7);
609 self.assertTrue(not fieldOnCells1.isEqual(fieldOnCells2,1e-12,1e-15));
610 self.assertTrue(not fieldOnCells2.isEqual(fieldOnCells1,1e-12,1e-15));
611 fieldOnCells2.setTime(4.,6,7);
612 self.assertTrue(fieldOnCells1.isEqual(fieldOnCells2,1e-12,1e-15));
613 self.assertTrue(fieldOnCells2.isEqual(fieldOnCells1,1e-12,1e-15));
614 fieldOnCells1.setName("Power");
615 self.assertTrue(not fieldOnCells1.isEqual(fieldOnCells2,1e-12,1e-15));
616 self.assertTrue(not fieldOnCells2.isEqual(fieldOnCells1,1e-12,1e-15));
617 fieldOnCells2.setName("Power");
618 self.assertTrue(fieldOnCells1.isEqual(fieldOnCells2,1e-12,1e-15));
619 self.assertTrue(fieldOnCells2.isEqual(fieldOnCells1,1e-12,1e-15));
621 fieldOnCells1.setMesh(mesh1);
622 self.assertTrue(not fieldOnCells1.isEqual(fieldOnCells2,1e-12,1e-15));
623 self.assertTrue(not fieldOnCells2.isEqual(fieldOnCells1,1e-12,1e-15));
624 fieldOnCells2.setMesh(mesh1);
625 self.assertTrue(fieldOnCells1.isEqual(fieldOnCells2,1e-12,1e-15));
626 self.assertTrue(fieldOnCells2.isEqual(fieldOnCells1,1e-12,1e-15));
627 arr=DataArrayDouble.New();
629 arr.setValues(mesh1.getNumberOfCells()*3*[6.],mesh1.getNumberOfCells(),3);
630 fieldOnCells1.setArray(arr);
631 self.assertTrue(not fieldOnCells1.isEqual(fieldOnCells2,1e-12,1e-15));
632 self.assertTrue(not fieldOnCells2.isEqual(fieldOnCells1,1e-12,1e-15));
633 fieldOnCells2.setArray(arr);
634 self.assertTrue(fieldOnCells1.isEqual(fieldOnCells2,1e-12,1e-15));
635 self.assertTrue(fieldOnCells2.isEqual(fieldOnCells1,1e-12,1e-15));
638 fieldOnCells2.setArray(arr2);
639 self.assertTrue(fieldOnCells1.isEqual(fieldOnCells2,1e-12,1e-15));
640 self.assertTrue(fieldOnCells2.isEqual(fieldOnCells1,1e-12,1e-15));
642 self.assertTrue(not fieldOnCells1.isEqual(fieldOnCells2,1e-12,1e-15));
643 self.assertTrue(not fieldOnCells2.isEqual(fieldOnCells1,1e-12,1e-15));
645 self.assertTrue(fieldOnCells1.isEqual(fieldOnCells2,1e-12,1e-15));
646 self.assertTrue(fieldOnCells2.isEqual(fieldOnCells1,1e-12,1e-15));
647 arr2.setName("popo2");
648 self.assertTrue(not fieldOnCells1.isEqual(fieldOnCells2,1e-12,1e-15));
649 self.assertTrue(not fieldOnCells2.isEqual(fieldOnCells1,1e-12,1e-15));
651 arr2.setName("popo");
652 self.assertTrue(fieldOnCells1.isEqual(fieldOnCells2,1e-12,1e-15));
653 self.assertTrue(fieldOnCells2.isEqual(fieldOnCells1,1e-12,1e-15));
655 arr2.setInfoOnComponent(2,"jjj");
656 self.assertTrue(not fieldOnCells1.isEqual(fieldOnCells2,1e-12,1e-15));
657 self.assertTrue(not fieldOnCells2.isEqual(fieldOnCells1,1e-12,1e-15));
658 arr.setInfoOnComponent(2,"jjj");
659 self.assertTrue(fieldOnCells1.isEqual(fieldOnCells2,1e-12,1e-15));
660 self.assertTrue(fieldOnCells2.isEqual(fieldOnCells1,1e-12,1e-15));
663 def testNatureChecking(self):
664 field=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
665 field.setNature(Integral);
666 field.setNature(ConservativeVolumic);
667 field.setNature(IntegralGlobConstraint);
668 field=MEDCouplingFieldDouble.New(ON_NODES,NO_TIME);
669 field.setNature(ConservativeVolumic);
670 self.assertRaises(InterpKernelException,field.setNature,Integral);
671 self.assertRaises(InterpKernelException,field.setNature,IntegralGlobConstraint);
674 def testBuildSubMeshData(self):
675 targetMesh=MEDCouplingDataForTest.build2DTargetMesh_1()
676 #check buildSubMesh on field on cells
677 fieldCells=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
678 fieldCells.setMesh(targetMesh);
680 ret1,di=fieldCells.buildSubMeshData(elts);
681 self.assertTrue(isinstance(ret1,MEDCouplingUMesh))
682 self.assertEqual(3,ret1.getNumberOfCells());
683 self.assertEqual(9,ret1.getNumberOfNodes());
684 self.assertEqual(3,di.getNumberOfTuples());
685 self.assertEqual(1,di.getNumberOfComponents());
686 toCheck=di.getValues();
687 self.assertTrue(elts,toCheck);
688 #check buildSubMesh on field on nodes
689 fieldNodes=MEDCouplingFieldDouble.New(ON_NODES,NO_TIME);
690 fieldNodes.setMesh(targetMesh);
691 ret2,di=fieldNodes.buildSubMeshData(elts);
692 self.assertTrue(isinstance(ret2,MEDCouplingUMesh))
693 self.assertEqual(3,ret2.getNumberOfCells());
694 self.assertEqual(6,ret2.getNumberOfNodes());
695 self.assertEqual(6,di.getNumberOfTuples());
696 self.assertEqual(1,di.getNumberOfComponents());
697 toCheck=di.getValues();
698 expected=[1,2,4,5,7,8]
699 self.assertEqual(expected,list(toCheck));
702 def testExtrudedMesh1(self):
703 mesh3D,mesh2D=MEDCouplingDataForTest.build3DExtrudedUMesh_1();
704 ext=MEDCouplingExtrudedMesh.New(mesh3D,mesh2D,1);
705 self.assertEqual(18,ext.getNumberOfCells());
706 self.assertEqual(60,ext.getNumberOfNodes());
707 ids3D=ext.getMesh3DIds();
708 ids3DExpected=[5,4,3,2,1,0, 11,10,9,8,7,6, 17,16,15,14,13,12]
709 self.assertEqual(18,ids3D.getNumberOfTuples());
710 self.assertEqual(1,ids3D.getNumberOfComponents());
711 self.assertEqual(ids3DExpected,list(ids3D.getValues()));
712 mesh1D=ext.getMesh1D();
713 self.assertEqual(4,mesh1D.getNumberOfNodes());
714 self.assertEqual(3,mesh1D.getNumberOfCells());
715 mesh1DExpected=[0.66666666666666663, 1.4583333333333333, 0, 0.66666666666666663,
716 1.4583333333333333, 1, 0.66666666666666663, 1.4583333333333333,
717 2, 0.66666666666666663, 1.4583333333333333, 3]
718 mesh1DCoords=mesh1D.getCoords();
719 self.assertEqual(4,mesh1DCoords.getNumberOfTuples());
720 self.assertEqual(3,mesh1DCoords.getNumberOfComponents());
721 self.assertEqual(mesh1DExpected,mesh1DCoords.getValues());
722 conn1D=mesh1D.getNodalConnectivity();
723 self.assertEqual(9,conn1D.getNumberOfTuples());
724 self.assertEqual(1,conn1D.getNumberOfComponents());
725 conn1DExpected=[1,0,1,1,1,2,1,2,3]
726 self.assertEqual(conn1DExpected,list(conn1D.getValues()));
729 def testExtrudedMesh3(self):
730 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
731 m1.changeSpaceDimension(3);
732 m2=MEDCouplingDataForTest.buildCU1DMesh_U();
733 m2.changeSpaceDimension(3);
736 m2.rotate(center,vector,-pi/2.);
737 m3=m1.buildExtrudedMesh(m2,0);
739 m4=MEDCouplingExtrudedMesh.New(m3,m1,0);
740 self.assertEqual(15,m4.getNumberOfCells());
741 self.assertEqual(5,m4.getMesh2D().getNumberOfCells());
742 self.assertEqual(3,m4.getMesh1D().getNumberOfCells());
743 m3DIds=m4.getMesh3DIds().getValues();
744 self.assertEqual(range(15),list(m3DIds));
745 #some random in cells to check that extrusion alg find it correctly
746 expected1=[1,3,2,0,6,5,7,10,11,8,12,9,14,13,4]
747 m3.renumberCells(expected1,False);
748 m4=MEDCouplingExtrudedMesh.New(m3,m1,0);
749 self.assertEqual(15,m4.getNumberOfCells());
750 self.assertEqual(5,m4.getMesh2D().getNumberOfCells());
751 self.assertEqual(3,m4.getMesh1D().getNumberOfCells());
752 m3DIds=m4.getMesh3DIds().getValues();
753 self.assertEqual(expected1,list(m3DIds));
754 #play with polygons and polyedrons
756 m1.convertToPolyTypes(cells);
757 m3=m1.buildExtrudedMesh(m2,0);
758 self.assertEqual(NORM_HEXA8,m3.getTypeOfCell(0));
759 self.assertEqual(NORM_PENTA6,m3.getTypeOfCell(1));
760 self.assertEqual(NORM_POLYHED,m3.getTypeOfCell(2));
761 self.assertEqual(NORM_POLYHED,m3.getTypeOfCell(3));
762 self.assertEqual(NORM_HEXA8,m3.getTypeOfCell(4));
763 m3.renumberCells(expected1,False);
764 m4=MEDCouplingExtrudedMesh.New(m3,m1,0);
765 self.assertEqual(15,m4.getNumberOfCells());
766 self.assertEqual(5,m4.getMesh2D().getNumberOfCells());
767 self.assertEqual(3,m4.getMesh1D().getNumberOfCells());
768 m3DIds=m4.getMesh3DIds().getValues();
769 self.assertEqual(expected1,list(m3DIds));
772 def testExtrudedMesh4(self):
773 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
775 m1.convertToPolyTypes(cells);
776 m1.changeSpaceDimension(3);
777 m2=MEDCouplingDataForTest.buildCU1DMesh_U();
778 m2.changeSpaceDimension(3);
781 m2.rotate(center,vector,-pi/2.);
782 m3=m1.buildExtrudedMesh(m2,0);
783 expected1=[1,3,2,0,6,5,7,10,11,8,12,9,14,13,4]
784 rexpected1=[3, 0, 2, 1, 14, 5, 4, 6, 9, 11, 7, 8, 10, 13, 12]
785 m3.renumberCells(expected1,False);
786 m4=MEDCouplingExtrudedMesh.New(m3,m1,0);
787 self.assertEqual(NORM_HEXA8,m4.getTypeOfCell(0));
788 self.assertEqual(NORM_HEXA8,m4.getTypeOfCell(1));
789 self.assertEqual(NORM_POLYHED,m4.getTypeOfCell(2));
790 self.assertEqual(NORM_PENTA6,m4.getTypeOfCell(7));
791 f=m4.getMeasureField(True);
793 self.assertEqual(15,arr.getNumberOfTuples());
794 self.assertEqual(1,arr.getNumberOfComponents());
795 arrPtr=arr.getValues();
796 expected2=[0.075,0.0375,0.0375,0.075,0.075,
797 0.1125,0.05625,0.05625,0.1125,0.1125,
798 0.0625,0.03125,0.03125,0.0625,0.0625]
800 self.assertAlmostEqual(expected2[rexpected1[i]],arrPtr[i],16);
802 m5=m4.build3DUnstructuredMesh();
803 self.assertTrue(m5.isEqual(m3,1e-12));
804 f=m5.getMeasureField(True);
806 self.assertTrue(isinstance(f.getMesh(),MEDCouplingExtrudedMesh))
808 arrPtr=arr.getValues();
810 self.assertAlmostEqual(expected2[rexpected1[i]],arrPtr[i],15);
814 def testFindCommonNodes(self):
815 targetMesh=MEDCouplingDataForTest.build3DTargetMesh_1();
816 comm,commI=targetMesh.findCommonNodes(1e-10,-1);
817 self.assertEqual(1,commI.getNumberOfTuples());
818 self.assertEqual(0,comm.getNumberOfTuples());
819 o2n,newNbOfNodes=targetMesh.buildNewNumberingFromCommonNodesFormat(comm,commI);
820 self.assertEqual(27,newNbOfNodes);
821 self.assertEqual(27,o2n.getNumberOfTuples());
823 self.assertEqual(o2nExp1,list(o2n.getValues()));
825 targetMesh=MEDCouplingDataForTest.build3DTargetMeshMergeNode_1();
826 self.assertEqual(31,targetMesh.getNumberOfNodes());
827 comm,commI=targetMesh.findCommonNodes(1e-10);# testing default parameter
828 self.assertEqual(3,commI.getNumberOfTuples());
829 self.assertEqual(6,comm.getNumberOfTuples());
830 commExpected=[1,27,28,29,23,30]
831 commIExpected=[0,4,6]
832 self.assertEqual(commExpected,list(comm.getValues()));
833 self.assertEqual(commIExpected,list(commI.getValues()));
834 o2n,newNbOfNodes=targetMesh.buildNewNumberingFromCommonNodesFormat(comm,commI);
835 self.assertEqual(31,o2n.getNumberOfTuples());
836 self.assertEqual(27,newNbOfNodes);
837 o2nExp2=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,
838 21,22,23,24,25,26,1,1,1,23]
839 self.assertEqual(o2nExp2,list(o2n.getValues()));
841 targetMesh=MEDCouplingDataForTest.build3DTargetMesh_1();
842 time=targetMesh.getTimeOfThis();
843 o2n,areNodesMerged,newNbOfNodes=targetMesh.mergeNodes(1e-10);
844 targetMesh.updateTime();
845 self.assertEqual(time,targetMesh.getTimeOfThis());
846 self.assertTrue(not areNodesMerged);
848 targetMesh=MEDCouplingDataForTest.build3DTargetMeshMergeNode_1();
849 time=targetMesh.getTimeOfThis();
850 o2n,areNodesMerged,newNbOfNodes=targetMesh.mergeNodes(1e-10);
851 targetMesh.updateTime();
852 self.assertTrue(time!=targetMesh.getTimeOfThis());
853 self.assertTrue(areNodesMerged);
854 connExp=[18,0,1,4,3,9,10,13,12, 18,1,2,5,4,10,11,14,13, 18,3,4,7,6,12,13,16,15,
855 18,4,5,8,7,13,14,17,16,
856 18,9,10,13,12,18,19,22,21, 18,10,11,14,13,19,20,23,22, 18,12,13,16,15,21,22,25,24,
857 18,13,14,17,16,22,23,26,25]
858 self.assertEqual(72,targetMesh.getNodalConnectivity().getNumberOfTuples());
859 self.assertEqual(connExp,list(targetMesh.getNodalConnectivity().getValues()));
860 self.assertEqual(27,targetMesh.getCoords().getNumberOfTuples());
861 coordsExp=[ 0., 0., 0., 50., 0., 0. , 200., 0., 0. , 0., 50., 0., 50., 50., 0. ,
862 200., 50., 0., 0., 200., 0., 50., 200., 0. , 200., 200., 0. ,
863 0., 0., 50., 50., 0., 50. , 200., 0., 50. , 0., 50., 50., 50.,
864 50., 50. , 200., 50., 50., 0., 200., 50., 50., 200., 50. ,
865 200., 200., 50. , 0., 0., 200., 50., 0., 200. , 200., 0., 200.
866 , 0., 50., 200., 50., 50., 200. , 200., 50., 200.,
867 0., 200., 200., 50., 200., 200. , 200., 200., 200. ]
868 self.assertEqual(coordsExp,targetMesh.getCoords().getValues());
870 targetMesh=MEDCouplingDataForTest.build2DTargetMeshMergeNode_1();
871 self.assertEqual(18,targetMesh.getNumberOfNodes());
872 time=targetMesh.getTimeOfThis();
873 o2n,areNodesMerged,newNbOfNodes=targetMesh.mergeNodes(1e-10);
874 self.assertTrue(time!=targetMesh.getTimeOfThis());
875 self.assertTrue(areNodesMerged);
876 self.assertEqual(9,targetMesh.getNumberOfNodes());
877 connExp2=[4,0,4,3,1, 3,1,3,2, 3,3,5,2, 4,4,6,7,3, 4,7,8,5,3]
878 self.assertEqual(23,targetMesh.getNodalConnectivity().getNumberOfTuples());
879 self.assertEqual(connExp2,list(targetMesh.getNodalConnectivity().getValues()));
880 coordsExp2=[-0.3,-0.3, 0.2,-0.3, 0.7,-0.3, 0.2,0.2, -0.3,0.2, 0.7,0.2, -0.3,0.7, 0.2,0.7, 0.7,0.7]
881 self.assertEqual(9,targetMesh.getCoords().getNumberOfTuples());
882 self.assertEqual(coordsExp2,targetMesh.getCoords().getValues());
885 def testCheckButterflyCells(self):
886 sourceMesh=MEDCouplingDataForTest.build2DTargetMesh_1();
887 cells=sourceMesh.checkButterflyCells();
888 self.assertEqual(0,len(cells));
889 conn=sourceMesh.getNodalConnectivity()
891 conn.setIJ(15,0,conn.getIJ(16,0))
893 cells=sourceMesh.checkButterflyCells();
894 self.assertEqual(1,len(cells));
895 self.assertEqual([3],cells.getValues());
897 conn.setIJ(15,0,conn.getIJ(16,0))
899 cells=sourceMesh.checkButterflyCells();
900 self.assertEqual(0,len(cells));
902 sourceMesh=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
903 cells=sourceMesh.checkButterflyCells();
904 self.assertEqual(0,len(cells));
905 conn=sourceMesh.getNodalConnectivity()
907 conn.setIJ(15,0,conn.getIJ(16,0))
909 cells=sourceMesh.checkButterflyCells();
910 self.assertEqual(1,len(cells));
911 self.assertEqual([3],cells.getValues());
913 conn.setIJ(15,0,conn.getIJ(16,0))
915 cells=sourceMesh.checkButterflyCells();
916 self.assertEqual(0,len(cells));
919 def testMergeMesh1(self):
920 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
921 m2=MEDCouplingDataForTest.build2DSourceMesh_1();
924 m3=m1.mergeMyselfWith(m2);
925 self.assertTrue(isinstance(m3,MEDCouplingUMesh));
927 m4=MEDCouplingDataForTest.build2DTargetMeshMerged_1();
928 self.assertTrue(m3.isEqual(m4,1.e-12));
929 da,isMerged,newNbOfNodes=m3.mergeNodes(1.e-12);
930 self.assertEqual(11,m3.getNumberOfNodes());
931 self.assertTrue(isMerged);
934 def testMergeMeshOnSameCoords1(self):
935 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
936 m2=MEDCouplingDataForTest.build2DTargetMesh_1();
938 m2.convertToPolyTypes(cells);
939 m1.tryToShareSameCoords(m2,1e-12);
940 m3=MEDCouplingDataForTest.build2DTargetMesh_1();
941 m3.tryToShareSameCoords(m2,1e-12);
943 m4=MEDCouplingUMesh.MergeUMeshesOnSameCoords(meshes);
945 self.assertEqual(15,m4.getNumberOfCells());
947 m1_1=m4.buildPartOfMySelf(cells1,True);
948 m1_1.setName(m1.getName());
949 self.assertTrue(m1.isEqual(m1_1,1e-12));
951 m2_1=m4.buildPartOfMySelf(cells2,True);
952 m2_1.setName(m2.getName());
953 self.assertTrue(m2.isEqual(m2_1,1e-12));
954 cells3=[10,11,12,13,14]
955 m3_1=m4.buildPartOfMySelf(cells3,True);
956 m3_1.setName(m3.getName());
957 self.assertTrue(m3.isEqual(m3_1,1e-12));
960 def testMergeField1(self):
961 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
962 m2=MEDCouplingDataForTest.build2DSourceMesh_1();
965 f1=m1.getMeasureField(True);
966 f2=m2.getMeasureField(True);
967 f3=MEDCouplingFieldDouble.MergeFields(f1,f2);
969 m4=MEDCouplingDataForTest.build2DTargetMeshMerged_1();
970 self.assertTrue(f3.getMesh().isEqual(m4,1.e-12));
972 self.assertEqual(name,"MeasureOfMesh_");
973 self.assertEqual(f3.getTypeOfField(),ON_CELLS);
974 self.assertEqual(f3.getTimeDiscretization(),ONE_TIME);
975 self.assertEqual(1,f3.getNumberOfComponents());
976 self.assertEqual(7,f3.getNumberOfTuples());
977 values=[0.25,0.125,0.125,0.25,0.25,0.5,0.5]
978 tmp=f3.getArray().getValues();
979 self.assertEqual(len(values),len(tmp))
981 self.assertTrue(abs(values[i]-tmp[i])<1e-12)
985 def testFillFromAnalytic(self):
986 m=MEDCouplingDataForTest.build2DTargetMesh_1();
987 m.setTime(3.4,5,6); m.setTimeUnit("us");
988 f1=m.fillFromAnalytic(ON_CELLS,1,"x+y");
989 self.assertAlmostEqual(3.4,f1.getTime()[0],12) ; self.assertEqual(5,f1.getTime()[1]) ; self.assertEqual(6,f1.getTime()[2])
990 self.assertEqual("us",f1.getTimeUnit())
992 self.assertEqual(f1.getTypeOfField(),ON_CELLS);
993 self.assertEqual(f1.getTimeDiscretization(),ONE_TIME);
994 self.assertEqual(1,f1.getNumberOfComponents());
995 self.assertEqual(5,f1.getNumberOfTuples());
996 values1=[-0.1,0.23333333333333336,0.56666666666666665,0.4,0.9]
997 tmp=f1.getArray().getValues();
998 self.assertEqual(len(values1),len(tmp))
999 for i in xrange(len(tmp)):
1000 self.assertTrue(abs(tmp[i]-values1[i])<1.e-12)
1003 f1=m.fillFromAnalytic(ON_NODES,1,"x+y");
1004 f1.checkCoherency();
1005 self.assertEqual(f1.getTypeOfField(),ON_NODES);
1006 self.assertEqual(f1.getTimeDiscretization(),ONE_TIME);
1007 self.assertEqual(1,f1.getNumberOfComponents());
1008 self.assertEqual(9,f1.getNumberOfTuples());
1009 values2=[-0.6,-0.1,0.4,-0.1,0.4,0.9,0.4,0.9,1.4]
1010 tmp=f1.getArray().getValues();
1011 self.assertEqual(len(values2),len(tmp))
1012 for i in xrange(len(tmp)):
1013 self.assertTrue(abs(tmp[i]-values2[i])<1.e-12)
1016 f1=m.fillFromAnalytic(ON_NODES,2,"(x+y)*IVec+(2*(x+y))*JVec");
1017 f1.checkCoherency();
1018 self.assertEqual(f1.getTypeOfField(),ON_NODES);
1019 self.assertEqual(f1.getTimeDiscretization(),ONE_TIME);
1020 self.assertEqual(2,f1.getNumberOfComponents());
1021 self.assertEqual(9,f1.getNumberOfTuples());
1022 values3=[-0.6,-1.2,-0.1,-0.2,0.4,0.8,-0.1,-0.2,0.4,0.8,0.9,1.8,0.4,0.8,0.9,1.8,1.4,2.8]
1023 tmp=f1.getArray().getValues();
1024 self.assertEqual(len(values3),len(tmp))
1025 for i in xrange(len(tmp)):
1026 self.assertTrue(abs(tmp[i]-values3[i])<1.e-12)
1028 values4=f1.accumulate();
1029 self.assertEqual(2,len(values4))
1030 self.assertTrue(abs(3.6-values4[0])<1.e-12);
1031 self.assertTrue(abs(7.2-values4[1])<1.e-12);
1032 values4=f1.integral(True);
1033 self.assertEqual(2,len(values4))
1034 self.assertTrue(abs(0.5-values4[0])<1.e-12);
1035 self.assertTrue(abs(1.-values4[1])<1.e-12);
1037 self.assertRaises(InterpKernelException,m.fillFromAnalytic,ON_NODES,1,"1./(x-0.2)");
1040 def testFillFromAnalytic2(self):
1041 m=MEDCouplingDataForTest.build2DTargetMesh_1();
1042 f1=m.fillFromAnalytic(ON_CELLS,1,"y+x");
1043 f1.checkCoherency();
1044 self.assertEqual(f1.getTypeOfField(),ON_CELLS);
1045 self.assertEqual(f1.getTimeDiscretization(),ONE_TIME);
1046 self.assertEqual(1,f1.getNumberOfComponents());
1047 self.assertEqual(5,f1.getNumberOfTuples());
1048 values1=[-0.1,0.23333333333333336,0.56666666666666665,0.4,0.9]
1049 tmp=f1.getArray().getValues();
1050 self.assertEqual(len(values1),len(tmp))
1051 for i in xrange(len(values1)):
1052 self.assertTrue(abs(values1[i]-tmp[i])<1.e-12);
1055 f1=m.fillFromAnalytic(ON_NODES,1,"y+2*x");
1056 f1.checkCoherency();
1057 self.assertEqual(f1.getTypeOfField(),ON_NODES);
1058 self.assertEqual(f1.getTimeDiscretization(),ONE_TIME);
1059 self.assertEqual(1,f1.getNumberOfComponents());
1060 self.assertEqual(9,f1.getNumberOfTuples());
1061 values2=[-0.9,0.1,1.1,-0.4,0.6,1.6,0.1,1.1,2.1]
1062 tmp=f1.getArray().getValues();
1063 self.assertEqual(len(values2),len(tmp))
1064 for i in xrange(len(values2)):
1065 self.assertTrue(abs(values2[i]-tmp[i])<1.e-12);
1067 f1=m.fillFromAnalytic(ON_NODES,1,"2.*x+y");
1068 f1.checkCoherency();
1069 self.assertEqual(f1.getTypeOfField(),ON_NODES);
1070 self.assertEqual(f1.getTimeDiscretization(),ONE_TIME);
1071 self.assertEqual(1,f1.getNumberOfComponents());
1072 self.assertEqual(9,f1.getNumberOfTuples());
1073 tmp=f1.getArray().getValues();
1074 values2Bis=[-0.9,0.1,1.1,-0.4,0.6,1.6,0.1,1.1,2.1]
1075 self.assertEqual(len(values2Bis),len(tmp))
1076 for i in xrange(len(values2Bis)):
1077 self.assertTrue(abs(values2Bis[i]-tmp[i])<1.e-12);
1080 f1=m.fillFromAnalytic(ON_NODES,2,"(x+y)*IVec+2*(x+y)*JVec");
1081 f1.checkCoherency();
1082 self.assertEqual(f1.getTypeOfField(),ON_NODES);
1083 self.assertEqual(f1.getTimeDiscretization(),ONE_TIME);
1084 self.assertEqual(2,f1.getNumberOfComponents());
1085 self.assertEqual(9,f1.getNumberOfTuples());
1086 values3=[-0.6,-1.2,-0.1,-0.2,0.4,0.8,-0.1,-0.2,0.4,0.8,0.9,1.8,0.4,0.8,0.9,1.8,1.4,2.8]
1087 tmp=f1.getArray().getValues();
1088 self.assertEqual(len(values3),len(tmp))
1089 for i in xrange(len(values3)):
1090 self.assertTrue(abs(values3[i]-tmp[i])<1.e-12);
1092 values4=f1.accumulate();
1093 self.assertTrue(abs(3.6-values4[0])<1.e-12);
1094 self.assertTrue(abs(7.2-values4[1])<1.e-12);
1095 values4=f1.integral(True);
1096 self.assertTrue(abs(0.5-values4[0])<1.e-12);
1097 self.assertTrue(abs(1.-values4[1])<1.e-12);
1100 def testApplyFunc(self):
1101 m=MEDCouplingDataForTest.build2DTargetMesh_1();
1102 f1=m.fillFromAnalytic(ON_NODES,2,"(x+y)*IVec+(2*(x+y))*JVec");
1103 f1.checkCoherency();
1104 self.assertEqual(f1.getTypeOfField(),ON_NODES);
1105 self.assertEqual(f1.getTimeDiscretization(),ONE_TIME);
1106 self.assertEqual(2,f1.getNumberOfComponents());
1107 self.assertEqual(9,f1.getNumberOfTuples());
1108 f1.applyFunc(1,"x+y");
1109 self.assertEqual(f1.getTypeOfField(),ON_NODES);
1110 self.assertEqual(f1.getTimeDiscretization(),ONE_TIME);
1111 self.assertEqual(1,f1.getNumberOfComponents());
1112 self.assertEqual(9,f1.getNumberOfTuples());
1113 values1=[-1.8,-0.3,1.2,-0.3,1.2,2.7,1.2,2.7,4.2]
1114 tmp=f1.getArray().getValues();
1115 self.assertEqual(len(values1),len(tmp))
1116 for i in xrange(len(tmp)):
1117 self.assertTrue(abs(tmp[i]-values1[i])<1.e-12)
1121 def testApplyFunc2(self):
1122 m=MEDCouplingDataForTest.build2DTargetMesh_1();
1123 f1=m.fillFromAnalytic(ON_NODES,2,"(x+y)*IVec+2*(x+y)*JVec");
1124 f1.checkCoherency();
1125 self.assertEqual(f1.getTypeOfField(),ON_NODES);
1126 self.assertEqual(f1.getTimeDiscretization(),ONE_TIME);
1127 self.assertEqual(2,f1.getNumberOfComponents());
1128 self.assertEqual(9,f1.getNumberOfTuples());
1131 self.assertRaises(InterpKernelException, f2.applyFunc, 1, "a+b+c+d");
1132 self.assertRaises(InterpKernelException, f2.applyFunc, 1, "a/0");
1133 self.assertRaises(InterpKernelException, f2.applyFunc, "a/0");
1134 f2.applyFunc("abs(u)^2.4+2*u");
1135 self.assertEqual(f1.getTypeOfField(),ON_NODES);
1136 self.assertEqual(f1.getTimeDiscretization(),ONE_TIME);
1137 self.assertEqual(2,f1.getNumberOfComponents());
1138 self.assertEqual(9,f1.getNumberOfTuples());
1139 values2=[-0.9065304805418678, -0.85105859001709905, -0.19601892829446504, -0.37898777756476987,
1140 0.91090317490482353, 2.1853504664669781, -0.19601892829446504, -0.37898777756476987,
1141 0.91090317490482353, 2.1853504664669781, 2.5765725275664879, 7.6987743736515295,
1142 0.91090317490482353, 2.1853504664669781, 2.5765725275664879, 7.6987743736515295,
1143 5.0423700574830965, 17.435300118916864]
1144 tmp=f2.getArray().getValues();
1145 self.assertEqual(len(tmp),len(values2))
1146 for i in xrange(len(tmp)):
1147 self.assertTrue(abs(tmp[i]-values2[i])<1.e-12)
1150 f1.applyFunc(1,"x+y");
1151 self.assertEqual(f1.getTypeOfField(),ON_NODES);
1152 self.assertEqual(f1.getTimeDiscretization(),ONE_TIME);
1153 self.assertEqual(1,f1.getNumberOfComponents());
1154 self.assertEqual(9,f1.getNumberOfTuples());
1155 values1=[-1.8,-0.3,1.2,-0.3,1.2,2.7,1.2,2.7,4.2]
1156 tmp=f1.getArray().getValues();
1157 self.assertEqual(len(tmp),len(values1))
1158 for i in xrange(len(tmp)):
1159 self.assertTrue(abs(tmp[i]-values1[i])<1.e-12)
1163 def testOperationsOnFields(self):
1164 m=MEDCouplingDataForTest.build2DTargetMesh_1();
1165 f1=m.fillFromAnalytic(ON_NODES,1,"x+y");
1166 f2=m.fillFromAnalytic(ON_NODES,1,"x+y");
1167 f1.checkCoherency();
1168 f2.checkCoherency();
1170 f3.checkCoherency();
1171 self.assertEqual(f3.getTypeOfField(),ON_NODES);
1172 self.assertEqual(f3.getTimeDiscretization(),ONE_TIME);
1173 values1=[-1.2,-0.2,0.8,-0.2,0.8,1.8,0.8,1.8,2.8]
1174 tmp=f3.getArray().getValues();
1175 self.assertEqual(len(values1),len(tmp))
1176 for i in xrange(len(tmp)):
1177 self.assertTrue(abs(tmp[i]-values1[i])<1.e-12)
1181 f3.checkCoherency();
1182 self.assertEqual(f3.getTypeOfField(),ON_NODES);
1183 self.assertEqual(f3.getTimeDiscretization(),ONE_TIME);
1184 values2=[0.36,0.01,0.16,0.01,0.16,0.81,0.16,0.81,1.96]
1185 tmp=f3.getArray().getValues();
1186 self.assertEqual(len(values2),len(tmp))
1187 for i in xrange(len(tmp)):
1188 self.assertTrue(abs(tmp[i]-values2[i])<1.e-12)
1193 f4.checkCoherency();
1194 self.assertEqual(f4.getTypeOfField(),ON_NODES);
1195 self.assertEqual(f4.getTimeDiscretization(),ONE_TIME);
1196 values3=[0.6,0.1,-0.4,0.1,-0.4,-0.9,-0.4,-0.9,-1.4]
1197 tmp=f4.getArray().getValues();
1198 self.assertEqual(len(values3),len(tmp))
1199 for i in xrange(len(tmp)):
1200 self.assertTrue(abs(tmp[i]-values3[i])<1.e-12)
1205 f4.checkCoherency();
1206 self.assertEqual(f4.getTypeOfField(),ON_NODES);
1207 self.assertEqual(f4.getTimeDiscretization(),ONE_TIME);
1208 tmp=f4.getArray().getValues();
1209 for i in xrange(len(tmp)):
1210 self.assertTrue(abs(tmp[i]-2.)<1.e-12)
1213 f4=f2.buildNewTimeReprFromThis(NO_TIME,False);
1214 f4.checkCoherency();
1215 self.assertEqual(f4.getTypeOfField(),ON_NODES);
1216 self.assertEqual(f4.getTimeDiscretization(),NO_TIME);
1217 self.assertRaises(InterpKernelException,f1.__add__,f4);
1218 f5=f4.buildNewTimeReprFromThis(ONE_TIME,False);
1219 self.assertEqual(f5.getTypeOfField(),ON_NODES);
1220 self.assertEqual(f5.getTimeDiscretization(),ONE_TIME);
1222 tmp=f3.getArray().getValues();
1223 values4=[-1.2,-0.2,0.8,-0.2,0.8,1.8,0.8,1.8,2.8]
1224 self.assertEqual(len(values3),len(tmp))
1225 for i in xrange(len(tmp)):
1226 self.assertTrue(abs(tmp[i]-values4[i])<1.e-12)
1229 f4=f2.buildNewTimeReprFromThis(NO_TIME,True);
1230 f4.checkCoherency();
1231 self.assertEqual(f4.getTypeOfField(),ON_NODES);
1232 self.assertEqual(f4.getTimeDiscretization(),NO_TIME);
1233 self.assertRaises(InterpKernelException,f1.__add__,f4);
1234 f5=f4.buildNewTimeReprFromThis(ONE_TIME,True);
1235 self.assertEqual(f5.getTypeOfField(),ON_NODES);
1236 self.assertEqual(f5.getTimeDiscretization(),ONE_TIME);
1238 tmp=f3.getArray().getValues();
1239 values5=[-1.2,-0.2,0.8,-0.2,0.8,1.8,0.8,1.8,2.8]
1240 self.assertEqual(len(values5),len(tmp))
1241 for i in xrange(len(tmp)):
1242 self.assertTrue(abs(tmp[i]-values5[i])<1.e-12)
1246 def testOperationsOnFields2(self):
1247 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
1248 m.setTime(3.4,5,6); m.setTimeUnit("us");
1249 f1=m.fillFromAnalytic(ON_NODES,1,"x+y+z");
1250 f2=m.fillFromAnalytic(ON_NODES,1,"a*a+b+c*c");
1252 f3.checkCoherency();
1253 self.assertEqual(f3.getTypeOfField(),ON_NODES);
1254 self.assertEqual(f3.getTimeDiscretization(),ONE_TIME);
1255 expected1=[-2.4999999999999991, 1.2162162162162162, 0.77868852459016391,
1256 0.7407407407407407, 1.129032258064516, 0.81632653061224492,
1257 0.86538461538461531, 1.0919540229885056, 0.84302325581395343]
1258 self.assertEqual(1,f3.getNumberOfComponents());
1259 self.assertEqual(9,f3.getNumberOfTuples());
1260 val=f3.getArray().getValues();
1262 self.assertTrue(abs(expected1[i]-val[i])<1.e-12);
1264 f1=m.buildOrthogonalField();
1265 self.assertAlmostEqual(3.4,f1.getTime()[0],12) ; self.assertEqual(5,f1.getTime()[1]) ; self.assertEqual(6,f1.getTime()[2])
1266 self.assertEqual("us",f1.getTimeUnit())
1267 f2=m.fillFromAnalytic(ON_CELLS,1,"x");
1269 expected2=[-0.035355339059327376,0.,0.035355339059327376, 0.2592724864350674,0.,-0.2592724864350674, 0.37712361663282529,0.,-0.37712361663282529, -0.035355339059327376,0.,0.035355339059327376, 0.31819805153394637,0.,-0.31819805153394637]
1270 val=f3.getArray().getValues();
1271 for i in xrange(15):
1272 self.assertTrue(abs(expected2[i]-val[i])<1.e-12);
1276 val=f3.getArray().getValues();
1277 for i in xrange(15):
1278 self.assertTrue(abs(expected2[i]-val[i])<1.e-12);
1282 def testOperationsOnFields3(self):
1283 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
1284 f1=m.fillFromAnalytic(ON_NODES,1,"x+y+z");
1285 f2=m.fillFromAnalytic(ON_NODES,1,"a*a+b+c*c");
1287 f1.checkCoherency();
1288 self.assertEqual(f1.getTypeOfField(),ON_NODES);
1289 self.assertEqual(f1.getTimeDiscretization(),ONE_TIME);
1290 expected1=[-2.4999999999999991, 1.2162162162162162, 0.77868852459016391,
1291 0.7407407407407407, 1.129032258064516, 0.81632653061224492,
1292 0.86538461538461531, 1.0919540229885056, 0.84302325581395343]
1293 self.assertEqual(1,f1.getNumberOfComponents());
1294 self.assertEqual(9,f1.getNumberOfTuples());
1295 val=f1.getArray().getValues();
1297 self.assertTrue(abs(expected1[i]-val[i])<1.e-12);
1300 f1=m.buildOrthogonalField();
1301 f2=m.fillFromAnalytic(ON_CELLS,1,"x");
1303 expected2=[-0.035355339059327376,0.,0.035355339059327376, 0.2592724864350674,0.,-0.2592724864350674, 0.37712361663282529,0.,-0.37712361663282529, -0.035355339059327376,0.,0.035355339059327376, 0.31819805153394637,0.,-0.31819805153394637]
1304 val=f1.getArray().getValues();
1305 for i in xrange(15):
1306 self.assertTrue(abs(expected2[i]-val[i])<1.e-12);
1309 f1=m.buildOrthogonalField();
1310 # to avoid valgrind leaks
1311 # self.assertRaises(InterpKernelException,f2.__imul__,f1);
1314 def testOperationsOnFields4(self):
1315 m=MEDCouplingDataForTest.build2DTargetMesh_1();
1316 nbOfCells=m.getNumberOfCells();
1317 f1=MEDCouplingFieldDouble.New(ON_CELLS,CONST_ON_TIME_INTERVAL);
1319 array=DataArrayDouble.New();
1321 self.assertRaises(InterpKernelException,f1.setEndArray,array);
1322 self.assertRaises(InterpKernelException,f1.getEndArray);
1323 arr1=[0.,10.,20.,1.,11.,21.,2.,12.,22.,3.,13.,23.,4.,14.,24.]
1324 arr2=[5.,15.,25.,6.,16.,26.,7.,17.,27.,8.,18.,28.,9.,19.,29.]
1325 array.setValues(arr1,nbOfCells,3);
1326 f1.setStartTime(2.,0,0);
1327 f1.setEndTime(3.,0,0);
1328 f1.checkCoherency();
1330 res=f1.getValueOn(pos);
1331 self.assertTrue(abs(arr1[3]-res[0])<1.e-12);
1332 self.assertTrue(abs(arr1[4]-res[1])<1.e-12);
1333 self.assertTrue(abs(arr1[5]-res[2])<1.e-12);
1335 res=f1.getValueOn(pos,2.2);
1336 self.assertTrue(abs(arr1[3]-res[0])<1.e-12);
1337 self.assertTrue(abs(arr1[4]-res[1])<1.e-12);
1338 self.assertTrue(abs(arr1[5]-res[2])<1.e-12);
1340 self.assertRaises(InterpKernelException,f1.getValueOn,pos,3.2)
1341 f2=MEDCouplingFieldDouble.New(ON_CELLS,LINEAR_TIME);
1343 f2.setArray(f1.getArray());
1344 f2.setStartTime(2.,3,0);
1345 f2.setEndTime(4.,13,0);
1346 self.assertRaises(InterpKernelException,f2.checkCoherency)
1347 array2=DataArrayDouble.New();
1348 array2.setValues(arr2,nbOfCells,3);
1349 f2.setEndArray(array2);
1350 f2.checkCoherency();
1353 res=f2.getValueOn(pos,3.21);
1354 self.assertTrue(abs(4.025-res[0])<1.e-12);
1355 self.assertTrue(abs(14.025-res[1])<1.e-12);
1356 self.assertTrue(abs(24.025-res[2])<1.e-12);
1358 self.assertTrue(f2.isEqual(f3,1e-12,1e-12));
1359 f3.getEndArray().setIJ(0,0,5.001);
1360 self.assertTrue(not f2.isEqual(f3,1e-12,1e-12));
1361 self.assertTrue(f2.isEqual(f3,1e-12,1e-2));
1362 f3.setStartTime(2.1,3,0);
1363 self.assertTrue(not f2.isEqual(f3,1e-12,1e-2));
1364 f3.setStartTime(2.,3,0);
1365 self.assertTrue(f2.isEqual(f3,1e-12,1e-2));
1366 f3.setStartTime(2.,4,0);
1367 self.assertTrue(not f2.isEqual(f3,1e-12,1e-2));
1368 f3.setStartTime(2.,3,1);
1369 self.assertTrue(not f2.isEqual(f3,1e-12,1e-2));
1370 f3.setStartTime(2.,3,0);
1371 self.assertTrue(f2.isEqual(f3,1e-12,1e-2));
1372 f3.setEndTime(4.1,13,0);
1373 self.assertTrue(not f2.isEqual(f3,1e-12,1e-2));
1374 f3.setEndTime(4.,13,0);
1375 self.assertTrue(f2.isEqual(f3,1e-12,1e-2));
1376 f3.setEndTime(4.,14,0);
1377 self.assertTrue(not f2.isEqual(f3,1e-12,1e-2));
1378 f3.setEndTime(4.,13,1);
1379 self.assertTrue(not f2.isEqual(f3,1e-12,1e-2));
1380 f3.setEndTime(4.,13,0);
1381 self.assertTrue(f2.isEqual(f3,1e-12,1e-2));
1384 res=f4.getValueOn(pos,3.21);
1385 self.assertTrue(abs(8.05-res[0])<1.e-12);
1386 self.assertTrue(abs(28.05-res[1])<1.e-12);
1387 self.assertTrue(abs(48.05-res[2])<1.e-12);
1390 res=f4.getValueOn(pos,3.21);
1391 self.assertTrue(abs(12.075-res[0])<1.e-12);
1392 self.assertTrue(abs(42.075-res[1])<1.e-12);
1393 self.assertTrue(abs(72.075-res[2])<1.e-12);
1396 def testMergeNodesOnField(self):
1397 targetMesh=MEDCouplingDataForTest.build3DTargetMeshMergeNode_1();
1398 f1=targetMesh.fillFromAnalytic(ON_NODES,1,"x+y+z");
1399 f1.mergeNodes(1e-10);
1401 targetMesh=MEDCouplingDataForTest.build3DTargetMeshMergeNode_1();
1402 f1=targetMesh.fillFromAnalytic(ON_NODES,1,"x+y+z");
1404 tmp.setIJ(0,0,1000.);
1405 f1.mergeNodes(1e-10);
1407 targetMesh=MEDCouplingDataForTest.build3DTargetMeshMergeNode_1();
1408 f1=targetMesh.fillFromAnalytic(ON_NODES,1,"x+y+z");
1410 tmp.setIJ(1,0,1000.);
1411 self.assertRaises(InterpKernelException,f1.mergeNodes,1.e-10)
1414 def testCheckConsecutiveCellTypes(self):
1415 sourceMesh=MEDCouplingDataForTest.build2DSourceMesh_1();
1416 targetMesh=MEDCouplingDataForTest.build2DTargetMesh_1();
1417 self.assertTrue(sourceMesh.checkConsecutiveCellTypes());
1418 order1=[NORM_TRI3,NORM_QUAD4]
1419 order2=[NORM_QUAD4,NORM_TRI3]
1420 self.assertTrue(not targetMesh.checkConsecutiveCellTypes());
1421 self.assertTrue(not targetMesh.checkConsecutiveCellTypesAndOrder(order1));
1422 self.assertTrue(not targetMesh.checkConsecutiveCellTypesAndOrder(order2));
1423 da=targetMesh.getRenumArrForConsecutiveCellTypesSpec(order1);
1424 self.assertEqual(5,da.getNumberOfTuples());
1425 self.assertEqual(1,da.getNumberOfComponents());
1426 expected1=[2,0,1,3,4]
1427 self.assertTrue(expected1==list(da.getValues()));
1428 da=targetMesh.getRenumArrForConsecutiveCellTypesSpec(order2);
1429 self.assertEqual(5,da.getNumberOfTuples());
1430 self.assertEqual(1,da.getNumberOfComponents());
1431 expected2=[0,3,4,1,2]
1432 self.assertTrue(expected2==list(da.getValues()));
1433 renumber1=[4,0,1,2,3]
1434 targetMesh.renumberCells(renumber1,False);
1435 self.assertTrue(targetMesh.checkConsecutiveCellTypes());
1436 self.assertTrue(targetMesh.checkConsecutiveCellTypesAndOrder(order1));
1437 self.assertTrue(not targetMesh.checkConsecutiveCellTypesAndOrder(order2));
1440 def testRearrange2ConsecutiveCellTypes(self):
1441 m1_1=MEDCouplingDataForTest.build2DSourceMesh_1();
1442 m2_1=MEDCouplingDataForTest.build2DTargetMesh_1();
1443 arr1=m1_1.rearrange2ConsecutiveCellTypes();
1444 m1_2=MEDCouplingDataForTest.build2DSourceMesh_1();
1445 self.assertTrue(m1_2.isEqual(m1_1,1e-12));
1447 self.assertEqual(2,arr1.getNumberOfTuples());
1448 self.assertEqual(1,arr1.getNumberOfComponents());
1449 self.assertEqual(expected1,arr1.getValues());
1450 expected2=[0,3,4,1,2]
1451 arr1=m2_1.rearrange2ConsecutiveCellTypes();
1452 self.assertEqual(5,arr1.getNumberOfTuples());
1453 self.assertEqual(1,arr1.getNumberOfComponents());
1454 self.assertEqual(expected2,list(arr1.getValues()));
1455 m2_2=MEDCouplingDataForTest.build2DTargetMesh_1();
1456 self.assertEqual(5,arr1.getNumberOfTuples());
1457 self.assertEqual(1,arr1.getNumberOfComponents());
1458 self.assertEqual(expected2,list(arr1.getValues()));
1459 self.assertTrue(not m2_2.isEqual(m2_1,1e-12));
1460 m2_2.renumberCells(expected2,False);
1461 self.assertTrue(m2_2.isEqual(m2_1,1e-12));
1464 def testSplitByType(self):
1465 m1=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
1467 self.assertEqual(3,len(v));
1468 m2=MEDCouplingUMesh.MergeUMeshesOnSameCoords(v);
1469 m2.setName(m1.getName());
1470 self.assertTrue(m1.isEqual(m2,1.e-12));
1473 def testFuseUMeshesOnSameCoords(self):
1474 m2=MEDCouplingDataForTest.build2DTargetMesh_1();
1476 m3=m2.buildPartOfMySelf(cells1,True);
1477 self.assertTrue(isinstance(m3,MEDCouplingUMesh))
1479 m4=m2.buildPartOfMySelf(cells2,True);
1480 self.assertTrue(isinstance(m4,MEDCouplingUMesh))
1482 m5=m2.buildPartOfMySelf(cells3,True);
1483 self.assertTrue(isinstance(m5,MEDCouplingUMesh))
1486 m7,corr=MEDCouplingUMesh.FuseUMeshesOnSameCoords(meshes,0);
1487 self.assertEqual(4,m7.getNumberOfCells());
1488 self.assertEqual(3,len(corr));
1489 expectedVals1=[3,3,2]
1490 expectedVals2=[[0,1,2],[3,0,2],[3,0]]
1493 self.assertEqual(1,arr.getNumberOfComponents());
1494 nbOfVals=expectedVals1[i];
1495 self.assertEqual(nbOfVals,arr.getNumberOfTuples());
1496 vals=arr.getValues();
1497 self.assertEqual(expectedVals2[i],list(vals));
1499 arr2,fidsOfGroups=DataArrayInt.MakePartition(corr,m7.getNumberOfCells());
1501 fidsGrp=[[1,3,5],[3,4,5],[4,5]]
1502 self.assertEqual(3,len(fidsOfGroups));
1503 self.assertEqual(1,arr2.getNumberOfComponents());
1504 self.assertEqual(4,arr2.getNumberOfTuples());
1505 self.assertEqual(fidExp,list(arr2.getValues()));
1507 nbOfVals=expectedVals1[i];
1508 self.assertEqual(list(fidsOfGroups[i]),fidsGrp[i]);
1512 def testFuseUMeshesOnSameCoords2(self):
1513 m1,m2=MEDCouplingDataForTest.build3DExtrudedUMesh_1();
1515 m3=m1.buildPartOfMySelf(part1,True);
1517 m4=m1.buildPartOfMySelf(part2,True);
1518 meshes=[m1,m3,m3,m4]
1519 m5,corr=MEDCouplingUMesh.FuseUMeshesOnSameCoords(meshes,0);
1520 self.assertEqual(18,m5.getNumberOfCells());
1522 [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],
1528 self.assertEqual(exp2[i],list(it.getValues()));
1533 def testBuildOrthogonalField(self):
1534 targetMesh=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
1535 field=targetMesh.buildOrthogonalField();
1536 expected=[0.70710678118654746,0.,-0.70710678118654746]
1537 self.assertEqual(5,field.getNumberOfTuples());
1538 self.assertEqual(3,field.getNumberOfComponents());
1539 vals=field.getArray().getValues();
1540 for i in xrange(15):
1541 self.assertTrue(abs(expected[i%3]-vals[i])<1e-12);
1543 targetCoords=[0.,0.,0.,0.5,0.,0.5,1.,0.,1.,0.,1.,0.]
1544 targetConn=[0,1,2,3]
1545 targetMesh=MEDCouplingUMesh.New();
1546 targetMesh.setMeshDimension(2);
1547 targetMesh.allocateCells(1);
1548 targetMesh.insertNextCell(NORM_QUAD4,targetConn[0:4])
1549 targetMesh.finishInsertingCells();
1550 myCoords=DataArrayDouble.New();
1551 myCoords.setValues(targetCoords,4,3);
1552 targetMesh.setCoords(myCoords);
1553 field=targetMesh.buildOrthogonalField();
1554 self.assertEqual(1,field.getNumberOfTuples());
1555 self.assertEqual(3,field.getNumberOfComponents());
1556 vals=field.getArray().getValues();
1557 self.assertTrue(abs(-0.70710678118654746-vals[0])<1e-12);
1558 self.assertTrue(abs(0.-vals[1])<1e-12);
1559 self.assertTrue(abs(0.70710678118654746-vals[2])<1e-12);
1562 def testGetCellsContainingPoint(self):
1563 targetMesh=MEDCouplingDataForTest.build2DTargetMesh_1();
1564 pos=[0.,0.,0.4,0.4,0.,0.4,0.1,0.1,0.25,0.,0.65,0.]
1566 t1,t2=targetMesh.getCellsContainingPoints(pos,6,1e-12);
1567 self.assertEqual(6,t1.getNumberOfTuples());
1568 self.assertEqual(1,t1.getNumberOfComponents());
1569 self.assertEqual(7,t2.getNumberOfTuples());
1570 self.assertEqual(1,t2.getNumberOfComponents());
1571 expectedValues1=[0,4,3,0,1,2]
1572 expectedValues2=[0,1,2,3,4,5,6]
1573 self.assertEqual(list(t1.getValues()),expectedValues1);
1574 self.assertEqual(list(t2.getValues()),expectedValues2);
1575 #2D with no help of bounding box.
1577 MEDCouplingPointSet.Rotate2DAlg(center,0.78539816339744830962,6,pos);
1578 targetMesh.rotate(center,0.78539816339744830962);
1581 t1,t2=targetMesh.getCellsContainingPoints(pos,1e-12);
1582 self.assertEqual(6,t1.getNumberOfTuples());
1583 self.assertEqual(7,t2.getNumberOfTuples());
1584 self.assertEqual(list(t1.getValues()),expectedValues1);
1585 self.assertEqual(list(t2.getValues()),expectedValues2);
1586 t1,t2=targetMesh.getCellsContainingPoints(DataArrayDouble.New(pos,6,2),1e-12);
1587 self.assertEqual(6,t1.getNumberOfTuples());
1588 self.assertEqual(7,t2.getNumberOfTuples());
1589 self.assertEqual(list(t1.getValues()),expectedValues1);
1590 self.assertEqual(list(t2.getValues()),expectedValues2);
1591 self.assertRaises(InterpKernelException,targetMesh.getCellsContainingPoints,DataArrayDouble.New(pos,4,3),1e-12);
1593 pos1bis=[-0.3303300858899107,-0.11819805153394641]
1594 self.assertEqual(-1,targetMesh.getCellContainingPoint(pos1bis,1e-12));
1596 targetMesh=MEDCouplingDataForTest.build2DTargetMesh_1();
1599 t1=targetMesh.getCellsContainingPoint(pos2,1e-12)
1600 self.assertEqual(2,len(t1));
1601 expectedValues3=[0,1]
1602 self.assertEqual(list(t1.getValues()),expectedValues3);
1605 t1=targetMesh.getCellsContainingPoint(pos3,1e-12);
1606 self.assertEqual(5,len(t1));
1607 expectedValues4=[0,1,2,3,4]
1608 self.assertEqual(list(t1.getValues()),expectedValues4);
1609 self.assertEqual(0,targetMesh.getCellContainingPoint(pos3,1e-12));
1611 targetMesh=MEDCouplingDataForTest.build3DTargetMesh_1();
1613 self.assertEqual(0,targetMesh.getCellContainingPoint(pos4,1e-12));
1616 t1=targetMesh.getCellsContainingPoint(pos5,1e-12);
1617 self.assertEqual(8,len(t1));
1618 expectedValues5=[0,1,2,3,4,5,6,7]
1619 self.assertEqual(list(t1.getValues()),expectedValues5);
1622 t1=targetMesh.getCellsContainingPoint(pos6,1e-12);
1623 self.assertEqual(2,len(t1));
1624 expectedValues6=[0,2]
1625 self.assertEqual(list(t1.getValues()),expectedValues6);
1628 self.assertEqual(-1,targetMesh.getCellContainingPoint(pos7,1e-12));
1632 targetMesh.rotate(center2,vec2,0.78539816339744830962);
1634 self.assertEqual(-1,targetMesh.getCellContainingPoint(pos8,1e-12));
1637 def testGetValueOn1(self):
1638 targetMesh=MEDCouplingDataForTest.build2DTargetMesh_1();
1639 fieldOnCells=MEDCouplingFieldDouble.New(ON_CELLS);
1640 nbOfCells=targetMesh.getNumberOfCells();
1641 fieldOnCells.setMesh(targetMesh);
1642 array=DataArrayDouble.New();
1643 tmp=2*nbOfCells*[None]
1644 for i in xrange(nbOfCells):
1645 tmp[2*i]=7.+float(i);
1646 tmp[2*i+1]=17.+float(i)
1648 array.setValues(tmp,nbOfCells,2);
1649 fieldOnCells.setArray(array);
1652 res=fieldOnCells.getValueOn(pos1);
1653 self.assertEqual(2,len(res))
1654 self.assertTrue(abs(8.-res[0])<1e-12);
1655 self.assertTrue(abs(18.-res[1])<1e-12);
1658 targetMesh=MEDCouplingDataForTest.build2DSourceMesh_1();
1659 fieldOnNodes=MEDCouplingFieldDouble.New(ON_NODES);
1660 nbOfNodes=targetMesh.getNumberOfNodes();
1661 fieldOnNodes.setMesh(targetMesh);
1662 array=DataArrayDouble.New();
1663 tmp=2*nbOfNodes*[None]
1664 for i in xrange(nbOfNodes):
1665 tmp[2*i]=17.+float(i);
1666 tmp[2*i+1]=27.+float(i)
1668 array.setValues(tmp,nbOfNodes,2);
1669 fieldOnNodes.setArray(array);
1671 pos2=[-0.13333333333333333,-0.13333333333333333]
1673 res=fieldOnNodes.getValueOn(pos2);
1674 self.assertEqual(2,len(res))
1675 self.assertTrue(abs(17.5-res[0])<1e-12);
1676 self.assertTrue(abs(27.5-res[1])<1e-12);
1677 pos3=[0.033333333333333326,0.36666666666666664]
1679 res=fieldOnNodes.getValueOn(pos3);
1680 self.assertEqual(2,len(res))
1681 self.assertTrue(abs(18.666666666666667-res[0])<1e-12);
1682 self.assertTrue(abs(28.666666666666667-res[1])<1e-12);
1685 def testCMesh0(self):
1686 mesh=MEDCouplingCMesh.New();
1687 meshEmpty=mesh.clone(True);
1688 self.assertTrue(meshEmpty.isEqual(mesh, 1e-12));
1690 coordsX=DataArrayDouble.New();
1691 arrX=[ -1., 1., 2., 4. ]
1692 coordsX.setValues(arrX, 4, 1);
1693 coordsY=DataArrayDouble.New();
1694 arrY=[ -2., 2., 4., 8. ]
1695 coordsY.setValues(arrY, 4, 1);
1696 coordsZ=DataArrayDouble.New();
1697 arrZ=[ -3., 3., 6., 12. ]
1698 coordsZ.setValues(arrZ, 4, 1);
1699 mesh.setCoords(coordsX, coordsY, coordsZ);
1701 fieldOnNodes=mesh.fillFromAnalytic(ON_NODES, 1, "x+y/2.+z/3.");
1702 self.assertEqual(1, fieldOnNodes.getNumberOfComponents());
1703 self.assertEqual(64, fieldOnNodes.getNumberOfTuples());
1704 expected1=[-3., -1., 0., 2., -1., 1., 2., 4., 0., 2., 3., 5., 2., 4., 5., 7., -1., 1., 2.,
1705 4., 1., 3., 4., 6., 2., 4., 5., 7., 4., 6., 7., 9., 0., 2., 3., 5., 2., 4., 5.,
1706 7., 3., 5., 6., 8., 5., 7., 8., 10., 2., 4., 5.,
1707 7., 4., 6., 7., 9., 5., 7., 8., 10., 7., 9., 10., 12.];
1709 val=fieldOnNodes.getArray().getValues();
1710 for i in xrange(64):
1711 self.assertAlmostEqual(expected1[i], val[i], 12)
1712 res=fieldOnNodes.getValueOnPos(1, 3, 2);
1713 self.assertAlmostEqual(7., res[0], 12);
1715 fieldOnCells=mesh.fillFromAnalytic(ON_CELLS, 1, "x+y/2.+z/3.");
1716 self.assertEqual(1, fieldOnCells.getNumberOfComponents());
1717 self.assertEqual(27, fieldOnCells.getNumberOfTuples());
1718 val=fieldOnCells.getArray().getValues();
1719 expected2=[0, 1.5, 3, 1.5, 3, 4.5, 3, 4.5, 6, 1.5, 3, 4.5, 3, 4.5,
1720 6, 4.5, 6, 7.5, 3, 4.5, 6, 4.5, 6, 7.5, 6, 7.5, 9];
1721 for i in xrange(27):
1722 self.assertAlmostEqual(expected2[i], val[i], 12);
1723 #res=fieldOnCells.getValueOnPos(1,2,1);
1724 #self.assertAlmostEqual(6.,res,12);
1726 meshDeepCopy=mesh.deepCpy();
1727 meshClone=mesh.clone(False);
1729 meshEmpty.copyTinyStringsFrom(mesh);
1730 #no data in meshEmpty, expected False
1731 self.assertTrue(not meshEmpty.isEqual(mesh, 1e-12));
1733 self.assertTrue(meshDeepCopy.isEqual(mesh, 1e-12));
1734 meshDeepCopy.copyTinyStringsFrom(mesh);
1735 self.assertTrue(meshDeepCopy.isEqual(mesh, 1e-12));
1736 self.assertTrue(meshClone.isEqual(mesh, 1e-12));
1738 self.assertEqual(CARTESIAN, mesh.getType());
1739 self.assertEqual(CARTESIAN, meshEmpty.getType());
1740 self.assertEqual(CARTESIAN, meshDeepCopy.getType());
1741 self.assertEqual(CARTESIAN, meshClone.getType());
1744 def testCMesh1(self):
1745 mesh1=MEDCouplingCMesh.New();
1746 coordsX1=DataArrayDouble.New();
1747 arrX1=[ -1., 1., 2., 4. ]
1748 coordsX1.setValues(arrX1, 4, 1);
1749 coordsY1=DataArrayDouble.New();
1750 arrY1=[ -2., 2., 4., 8. ]
1751 coordsY1.setValues(arrY1, 4, 1);
1752 coordsZ1=DataArrayDouble.New();
1753 arrZ1=[ -3., 3., 6., 12. ]
1754 coordsZ1.setValues(arrZ1, 4, 1);
1755 mesh1.setCoords(coordsX1, coordsY1, coordsZ1);
1757 mesh2=MEDCouplingCMesh.New();
1758 coordsX2=DataArrayDouble.New();
1759 arrX2=[ -1., 1., 2., 4. ]
1760 coordsX2.setValues(arrX2, 4, 1);
1761 coordsY2=DataArrayDouble.New();
1762 arrY2=[ -2., 2., 4., 8. ]
1763 coordsY2.setValues(arrY2, 4, 1);
1764 coordsZ2=DataArrayDouble.New();
1765 arrZ2=[ -3., 3., 6., 12.+1e-6 ]
1766 coordsZ2.setValues(arrZ2, 4, 1);
1767 mesh2.setCoords(coordsX2, coordsY2, coordsZ2);
1769 mesh3=MEDCouplingCMesh.New();
1770 coordsX3=DataArrayDouble.New();
1772 coordsX3.setValues(arrX3, 1, 1);
1773 coordsY3=DataArrayDouble.New();
1775 coordsY3.setValues(arrY3, 1, 1);
1776 coordsZ3=DataArrayDouble.New();
1778 coordsZ3.setValues(arrZ3, 1, 1);
1779 mesh3.setCoords(coordsX3, coordsY3, coordsZ3);
1781 self.assertEqual(3, mesh1.getSpaceDimension());
1782 self.assertEqual(3, mesh1.getMeshDimension());
1784 self.assertTrue(not mesh1.isEqual(mesh2, 1e-12));
1785 self.assertTrue(not mesh2.isEqual(mesh1, 1e-12));
1786 self.assertTrue(not mesh2.isEqualWithoutConsideringStr(mesh1, 1e-12));
1787 self.assertTrue(mesh1.isEqual(mesh2, 1e-5));
1788 self.assertTrue(not mesh1.isEqual(mesh2, 1e-7));
1790 self.assertRaises(InterpKernelException, mesh3.checkCoherency1, 1e-12);
1791 mesh1.checkCoherency2(1e-12);
1792 self.assertEqual(NORM_HEXA8, mesh1.getTypeOfCell(1));
1794 self.assertEqual(NORM_HEXA8, mesh1.getAllGeoTypes()[0]);
1795 self.assertEqual(27, mesh1.getNumberOfCellsWithType(NORM_HEXA8));
1796 self.assertRaises(InterpKernelException, mesh1.getNumberOfCellsWithType, NORM_QUAD4);
1798 coo=mesh1.getCoordinatesOfNode(0);
1799 self.assertEqual(3, len(coo));
1800 self.assertAlmostEqual(-1., coo[0], 14);
1801 self.assertAlmostEqual(-2., coo[1], 14);
1802 self.assertAlmostEqual(-3., coo[2], 14);
1803 coo=mesh1.getCoordinatesOfNode(63);
1804 self.assertEqual(3, len(coo));
1805 self.assertAlmostEqual(4., coo[0], 14);
1806 self.assertAlmostEqual(8., coo[1], 14);
1807 self.assertAlmostEqual(12., coo[2], 14);
1810 repr=mesh1.simpleRepr();
1811 repr=mesh1.advancedRepr();
1812 self.assertTrue("Cartesian" in repr);
1813 self.assertTrue("Number of components : 1" in repr);
1814 self.assertTrue("Number of tuples : 4" in repr);
1815 self.assertTrue("Z Array :" in repr);
1818 def testCMesh2(self):
1819 mesh1=MEDCouplingCMesh.New();
1820 coordsX1=DataArrayDouble.New();
1821 arrX1=[ -1., 1., 2., 4. ]
1822 coordsX1.setValues(arrX1, 4, 1);
1823 coordsY1=DataArrayDouble.New();
1824 arrY1=[ -2., 2., 4., 8. ]
1825 coordsY1.setValues(arrY1, 4, 1);
1826 coordsZ1=DataArrayDouble.New();
1827 arrZ1=[ -3., 3., 6., 12. ]
1828 coordsZ1.setValues(arrZ1, 4, 1);
1829 mesh1.setCoords(coordsX1, coordsY1, coordsZ1);
1831 dis=mesh1.getDistributionOfTypes();
1832 self.assertEqual(1, len(dis));
1833 self.assertEqual(NORM_HEXA8, dis[0][0]);
1834 self.assertEqual(27, dis[0][1]);
1835 self.assertEqual(-1, dis[0][2]);
1838 self.assertTrue(not mesh1.checkTypeConsistencyAndContig(dis, idsPerType));
1839 dis[0][0]=NORM_QUAD4;
1840 self.assertRaises(InterpKernelException, mesh1.checkTypeConsistencyAndContig, dis, idsPerType);
1841 dis[0][0]=NORM_HEXA8;
1843 ids=DataArrayInt.New();
1845 ids.fillWithValue(23);
1847 check=mesh1.checkTypeConsistencyAndContig(dis, idsPerType);
1848 self.assertTrue(check);
1849 self.assertTrue(check.isEqual(ids));
1851 code, idsInPflPerType, pfls=mesh1.splitProfilePerType(ids);
1852 self.assertEqual(1, len(code));
1853 self.assertEqual(NORM_HEXA8, code[0][0]);
1854 self.assertEqual(10, code[0][1]);
1855 self.assertEqual(0, code[0][2]);
1856 self.assertEqual(1, len(idsInPflPerType));
1857 self.assertEqual(1, len(pfls));
1858 self.assertTrue(idsInPflPerType[0].isEqual(DataArrayInt([0,1,2,3,4,5,6,7,8,9])));
1859 self.assertTrue(pfls[0].isEqual(ids));
1861 cells1=[0, 1, 25, 26]
1862 partMesh1=mesh1.buildPart(cells1)
1863 self.assertTrue(isinstance(partMesh1,MEDCouplingMesh))
1864 self.assertEqual(4, partMesh1.getNumberOfCellsWithType(NORM_HEXA8));
1865 self.assertEqual(64, mesh1.getNumberOfNodes());
1866 self.assertEqual(64, partMesh1.getNumberOfNodes());
1869 partMesh2, arr1=mesh1.buildPartAndReduceNodes(cells2)
1870 self.assertTrue(isinstance(partMesh2,MEDCouplingCMesh))
1871 self.assertEqual(2,partMesh2.getNumberOfCellsWithType(NORM_HEXA8));
1872 self.assertEqual(12,partMesh2.getNumberOfNodes());
1875 partMesh3, arr2=partMesh1.buildPartAndReduceNodes(cells3)
1876 self.assertTrue(isinstance(partMesh3,MEDCouplingUMesh))
1877 self.assertEqual(2, partMesh3.getNumberOfCellsWithType(NORM_HEXA8));
1878 self.assertEqual(12, partMesh3.getNumberOfNodes());
1880 self.assertRaises(InterpKernelException, mesh1.simplexize, 0);
1881 self.assertRaises(InterpKernelException, mesh1.getMeasureFieldOnNode, True);
1885 bbox1=mesh1.getBoundingBox(); #[(-1.0, 4.0), (-2.0, 8.0), (-3.0, 12.0)]
1886 bbox2=partMesh1.getBoundingBox();
1887 self.assertTrue(bbox1==bbox2);
1888 bbox1=partMesh3.getBoundingBox();
1889 bbox2=partMesh2.getBoundingBox();
1890 self.assertTrue(bbox1==bbox2);
1892 self.assertRaises(InterpKernelException, mesh1.buildOrthogonalField);
1893 mesh2d=MEDCouplingCMesh.New();
1894 mesh2d.setCoords(coordsX1, coordsY1);
1895 f1=mesh2d.buildOrthogonalField();
1899 def testScale(self):
1900 mesh=MEDCouplingDataForTest.build2DTargetMesh_1();
1902 mesh.scale(pos,0.5);
1903 expected1=[-0.05,-0.05, 0.2,-0.05, 0.45,-0.05, -0.05,0.2, 0.2,0.2, 0.45,0.2,
1904 -0.05,0.45, 0.2,0.45, 0.45,0.45]
1905 val=mesh.getCoords().getValues();
1906 self.assertEqual(18,len(val))
1907 for i in xrange(18):
1908 self.assertTrue(abs(expected1[i]-val[i])<1e-12);
1912 def testTryToShareSameCoords(self):
1913 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
1914 m2=MEDCouplingDataForTest.build2DTargetMesh_1();
1915 self.assertTrue(m1.getCoords().getHiddenCppPointer()!=m2.getCoords().getHiddenCppPointer());
1916 m1.tryToShareSameCoords(m2,1e-12);
1917 self.assertTrue(m1.getCoords().getHiddenCppPointer()==m2.getCoords().getHiddenCppPointer());
1918 m1.tryToShareSameCoords(m2,1e-12);
1919 self.assertTrue(m1.getCoords().getHiddenCppPointer()==m2.getCoords().getHiddenCppPointer());
1920 m2.tryToShareSameCoords(m1,1e-12);
1921 self.assertTrue(m1.getCoords().getHiddenCppPointer()==m2.getCoords().getHiddenCppPointer());
1923 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
1924 m2=MEDCouplingDataForTest.build2DTargetMesh_2();
1925 self.assertTrue(m1.getCoords().getHiddenCppPointer()!=m2.getCoords().getHiddenCppPointer());
1926 m1.tryToShareSameCoords(m2,1e-12);
1927 self.assertTrue(m1.getCoords().getHiddenCppPointer()==m2.getCoords().getHiddenCppPointer());
1928 m1.tryToShareSameCoords(m2,1e-12);
1929 self.assertTrue(m1.getCoords().getHiddenCppPointer()==m2.getCoords().getHiddenCppPointer());
1930 m2.tryToShareSameCoords(m1,1e-12);
1931 self.assertTrue(m1.getCoords().getHiddenCppPointer()==m2.getCoords().getHiddenCppPointer());
1933 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
1934 m2=MEDCouplingDataForTest.build2DSourceMesh_1();
1935 self.assertTrue(m1.getCoords().getHiddenCppPointer()!=m2.getCoords().getHiddenCppPointer());
1936 self.assertRaises(InterpKernelException,m1.tryToShareSameCoords,m2,1e-12)
1939 def testFindNodeOnPlane(self):
1940 mesh=MEDCouplingDataForTest.build3DTargetMesh_1();
1943 n=mesh.findNodesOnPlane(pt,v,1e-12);
1944 self.assertEqual(9,len(n));
1945 m3dSurf=mesh.buildFacePartOfMySelfNode(n,True);
1946 self.assertTrue(isinstance(m3dSurf,MEDCouplingUMesh))
1947 me=MEDCouplingExtrudedMesh.New(mesh,m3dSurf,0);
1948 da=me.getMesh3DIds();
1949 self.assertEqual(8,me.getNumberOfCells());
1950 expected=[0,1,2,3,4,5,6,7]
1952 self.assertEqual(expected,list(val));
1954 m3dSurf=mesh.buildFacePartOfMySelfNode(n,True);
1955 self.assertTrue(isinstance(m3dSurf,MEDCouplingUMesh))
1956 me=MEDCouplingExtrudedMesh.New(mesh,m3dSurf,0);
1957 da=me.getMesh3DIds();
1958 self.assertEqual(8,me.getNumberOfCells());
1959 expected=[0,1,2,3,4,5,6,7]
1961 self.assertEqual(expected,list(val));
1964 def testRenumberCells(self):
1965 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
1966 m2=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
1967 self.assertTrue(m.isEqual(m2,0));
1969 m.renumberCells(arr,True);
1970 self.assertTrue(not m.isEqual(m2,0));
1971 self.assertEqual(NORM_QUAD4,m.getTypeOfCell(0));
1972 self.assertEqual(NORM_TRI3,m.getTypeOfCell(1));
1973 self.assertEqual(NORM_QUAD4,m.getTypeOfCell(2));
1974 self.assertEqual(NORM_TRI3,m.getTypeOfCell(3));
1975 self.assertEqual(NORM_QUAD4,m.getTypeOfCell(4));
1977 m.renumberCells(arr2,True);
1978 self.assertTrue(m.isEqual(m2,0));
1981 def testChangeSpaceDimension(self):
1982 m1=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
1983 m2=MEDCouplingDataForTest.build2DTargetMesh_1();
1985 self.assertEqual(3,m1.getSpaceDimension());
1986 m1.changeSpaceDimension(2);
1987 self.assertEqual(2,m1.getSpaceDimension());
1988 m1.setName(m2.getName());
1989 self.assertTrue(m1.isEqual(m2,1e-12));
1990 m1.changeSpaceDimension(3);
1991 self.assertEqual(3,m1.getSpaceDimension());
1992 expected=[-0.3,-0.3,0., 0.2,-0.3,0., 0.7,-0.3,0., -0.3,0.2,0., 0.2,0.2,0., 0.7,0.2,0., -0.3,0.7,0., 0.2,0.7,0., 0.7,0.7,0.]
1993 val=m1.getCoords().getValues();
1994 for i in xrange(27):
1995 self.assertTrue(abs(expected[i]-val[i])<1e-14);
1999 def testGaussPointField1(self):
2000 _a=0.446948490915965;
2001 _b=0.091576213509771;
2002 _p1=0.11169079483905;
2003 _p2=0.0549758718227661;
2004 refCoo1=[ 0.,0., 1.,0., 0.,1. ]
2005 gsCoo1=[ 2*_b-1, 1-4*_b, 2*_b-1, 2.07*_b-1, 1-4*_b,
2006 2*_b-1, 1-4*_a, 2*_a-1, 2*_a-1, 1-4*_a, 2*_a-1, 2*_a-1 ]
2007 wg1=[ 4*_p2, 4*_p2, 4*_p2, 4*_p1, 4*_p1, 4*_p1 ]
2012 m=MEDCouplingDataForTest.build2DTargetMesh_1();
2013 f=MEDCouplingFieldDouble.New(ON_GAUSS_PT,NO_TIME);
2015 self.assertEqual(5,f.getNumberOfMeshPlacesExpected());
2016 self.assertEqual(0,f.getNbOfGaussLocalization());
2017 f.setGaussLocalizationOnType(NORM_TRI3,_refCoo1,_gsCoo1,_wg1);
2018 f.setGaussLocalizationOnType(NORM_TRI3,_refCoo1,_gsCoo1,_wg1); # not a bug only to check that it works well
2019 self.assertRaises(InterpKernelException,f.setGaussLocalizationOnType,NORM_QUAD4,_refCoo1,_gsCoo1,_wg1)
2020 self.assertEqual(1,f.getNbOfGaussLocalization());
2021 refCoo2=[ 0.,0., 1.,0., 1.,1., 0.,1. ]
2023 _gsCoo1=_gsCoo1[0:4]
2025 f.setGaussLocalizationOnType(NORM_QUAD4,_refCoo2,_gsCoo1,_wg1);
2026 self.assertEqual(2,f.getNbOfGaussLocalization());
2027 array=DataArrayDouble.New();
2029 for i in xrange(18*2):
2031 array.setValues(ptr,18,2);
2032 ptr=array.getPointer();
2034 f.setName("MyFirstFieldOnGaussPoint");
2036 self.assertAlmostEqual(27.,f.getIJK(2,5,0),14);
2037 self.assertAlmostEqual(16.,f.getIJK(1,5,1),14);
2039 f.clearGaussLocalizations();
2040 self.assertEqual(0,f.getNbOfGaussLocalization());
2041 self.assertRaises(InterpKernelException,f.checkCoherency);
2043 self.assertRaises(InterpKernelException,f.setGaussLocalizationOnCells,ids1,_refCoo2,_gsCoo1,_wg1);
2044 self.assertEqual(0,f.getNbOfGaussLocalization());
2046 f.setGaussLocalizationOnCells(ids2,_refCoo2,_gsCoo1,_wg1);
2047 self.assertEqual(1,f.getNbOfGaussLocalization());
2048 self.assertEqual(0,f.getGaussLocalizationIdOfOneCell(0));
2049 self.assertRaises(InterpKernelException,f.getGaussLocalizationIdOfOneCell,1);
2051 f.setGaussLocalizationOnCells(ids3,_refCoo1,_gsCoo1,_wg1);
2052 self.assertEqual(2,f.getNbOfGaussLocalization());
2053 self.assertEqual(0,f.getGaussLocalizationIdOfOneCell(0));
2054 self.assertEqual(1,f.getGaussLocalizationIdOfOneCell(1));
2055 self.assertEqual(1,f.getGaussLocalizationIdOfOneCell(2));
2056 self.assertRaises(InterpKernelException,f.checkCoherency);#<- cell 3 has no localization
2060 _gsCoo2[0]=0.8888777776666;
2061 _wg2[0]=0.1234567892377;
2062 f.setGaussLocalizationOnCells(ids4,_refCoo2,_gsCoo2,_wg2);
2063 self.assertEqual(3,f.getNbOfGaussLocalization());
2064 tmpIds=f.getCellIdsHavingGaussLocalization(0);
2065 self.assertEqual(ids2,list(tmpIds.getValues()));
2066 self.assertRaises(InterpKernelException,f.checkCoherency);#<- it's always not ok because undelying array not with the good size.
2067 array2=f.getArray().substr(0,10);
2069 f.checkCoherency();#<- here it is OK
2071 self.assertTrue(f.isEqual(f2,1e-14,1e-14));
2072 gl1=f2.getGaussLocalization(0);
2073 tmp=gl1.getGaussCoord(1,1);
2074 self.assertAlmostEqual(2.07*_b-1,tmp,14);
2075 gl1.setGaussCoord(1,1,0.07);
2076 self.assertTrue(not f.isEqual(f2,1e-14,1e-14));
2077 gl1.setGaussCoord(1,1,tmp);
2078 self.assertTrue(f.isEqual(f2,1e-14,1e-14));
2079 f2.checkCoherency();
2082 def testGaussPointNEField1(self):
2083 m=MEDCouplingDataForTest.build2DTargetMesh_1();
2084 f=MEDCouplingFieldDouble.New(ON_GAUSS_NE,NO_TIME);
2086 self.assertEqual(5,f.getNumberOfMeshPlacesExpected());
2087 f.setName("MyFirstFieldOnNE");
2088 f.setDescription("MyDescriptionNE");
2089 array=DataArrayDouble.New();
2091 for i in xrange(18*2):
2094 array.setValues(tmp,18,2);
2095 ptr=array.getPointer();
2100 self.assertTrue(f.isEqual(f2,1e-14,1e-14));
2101 self.assertAlmostEqual(21.,f.getIJK(2,0,0),14);
2102 self.assertAlmostEqual(18.,f.getIJK(1,1,1),14);
2105 def testCellOrientation1(self):
2106 m=MEDCouplingDataForTest.build2DTargetMesh_1();
2108 self.assertRaises(InterpKernelException,m.are2DCellsNotCorrectlyOriented,vec,False);
2109 m.changeSpaceDimension(3);
2110 res1=m.are2DCellsNotCorrectlyOriented(vec,False);
2111 self.assertTrue(len(res1)==0);
2113 res1=m.are2DCellsNotCorrectlyOriented(vec,False);
2114 self.assertEqual(5,len(res1));
2117 # connectivity inversion
2118 conn=m.getNodalConnectivity().getValues();
2122 m.getNodalConnectivity().setValues(conn,len(conn),1)
2123 res1=m.are2DCellsNotCorrectlyOriented(vec,False);
2124 self.assertEqual(1,len(res1));
2125 self.assertEqual(2,res1.getValues()[0]);
2126 m.orientCorrectly2DCells(vec,False);
2127 res1=m.are2DCellsNotCorrectlyOriented(vec,False);
2128 self.assertTrue(len(res1)==0);
2129 m2=MEDCouplingDataForTest.build2DTargetMesh_1();
2130 m2.changeSpaceDimension(3);
2131 self.assertTrue(m.isEqual(m2,1e-12));
2134 def testCellOrientation2(self):
2135 m2,m1=MEDCouplingDataForTest.build3DExtrudedUMesh_1();
2136 res1=m2.arePolyhedronsNotCorrectlyOriented();
2137 self.assertEqual(6,len(res1));
2138 m2.orientCorrectlyPolyhedrons();
2139 res1=m2.arePolyhedronsNotCorrectlyOriented();
2140 self.assertTrue(len(res1)==0);
2141 m2.checkCoherency();
2142 self.assertEqual(18,m2.getNumberOfCells());
2144 m2.convertToPolyTypes(cellIds2);
2145 m2.orientCorrectlyPolyhedrons();
2146 res1=m2.arePolyhedronsNotCorrectlyOriented();
2147 self.assertTrue(len(res1)==0);
2148 f2=m2.getMeasureField(False);
2149 f2Ptr=f2.getArray().getValues();
2150 #Test to check global reverse in MEDCouplingUMesh::tryToCorrectPolyhedronOrientation
2151 m3=MEDCouplingDataForTest.build2DTargetMesh_1();
2153 m3.changeSpaceDimension(3);
2155 m3.convertToPolyTypes(ids2);
2156 m3.orientCorrectly2DCells(vec,False);
2157 m4=MEDCouplingDataForTest.buildCU1DMesh_U();
2158 m4.changeSpaceDimension(3);
2161 m4.rotate(center,vector,-pi/2.);
2162 m5=m3.buildExtrudedMesh(m4,0);
2163 res1=m5.arePolyhedronsNotCorrectlyOriented();
2164 self.assertEqual(15,len(res1));
2165 m5.orientCorrectlyPolyhedrons();
2166 res1=m5.arePolyhedronsNotCorrectlyOriented();
2167 self.assertTrue(len(res1)==0);
2168 f3=m5.getMeasureField(False);
2169 self.assertEqual(15,f3.getArray().getNumberOfTuples());
2170 self.assertEqual(1,f3.getNumberOfComponents());
2171 f3Ptr=f3.getArray().getValues();
2172 expected1=[0.075,0.0375,0.0375,0.075,0.075, 0.1125,0.05625,0.05625,0.1125,0.1125, 0.0625,0.03125,0.03125,0.0625,0.0625];
2173 for i in xrange(15):
2174 self.assertTrue(abs(expected1[i]-f3Ptr[i])<1e-12);
2176 f4=m5.getBarycenterAndOwner();
2177 self.assertEqual(15,f4.getNumberOfTuples());
2178 self.assertEqual(3,f4.getNumberOfComponents());
2179 f4Ptr=f4.getValues();
2180 expected2=[-0.05,-0.05,0.15, 0.3666666666666667,-0.13333333333333333,0.15, 0.53333333333333333,0.033333333333333333,0.15, -0.05,0.45,0.15, 0.45,0.45,0.15,-0.05,-0.05,0.525, 0.3666666666666667,-0.13333333333333333,0.525, 0.53333333333333333,0.033333333333333333,0.525, -0.05,0.45,0.525, 0.45,0.45,0.525,-0.05,-0.05,0.875, 0.3666666666666667,-0.13333333333333333,0.875, 0.53333333333333333,0.033333333333333333,0.875, -0.05,0.45,0.875, 0.45,0.45,0.875];
2181 for i in xrange(45):
2182 self.assertTrue(abs(expected2[i]-f4Ptr[i])<1e-12);
2186 def testCellOrientation3(self):
2187 from cmath import rect
2189 c = [rect(1.0, i*pi/4.0) for i in range(8)]
2190 coords = [c[-1].real,c[-1].imag, c[3].real,c[3].imag,
2191 c[5].real,c[5].imag, c[1].real,c[1].imag]
2193 baseMesh = MEDCouplingUMesh.New("circle", 2)
2194 baseMesh.allocateCells(1)
2195 meshCoords = DataArrayDouble.New(coords, 4, 2)
2196 baseMesh.setCoords(meshCoords)
2197 baseMesh.insertNextCell(NORM_QPOLYG, connec) # a circle
2198 baseMesh.finishInsertingCells()
2199 baseMesh.changeSpaceDimension(3)
2200 Oz = [0.0, 0.0, -1.0]
2201 cell_lst = baseMesh.are2DCellsNotCorrectlyOriented(Oz, False)
2202 self.assertEqual(cell_lst.getNumberOfTuples(), 0)
2204 cell_lst = baseMesh.are2DCellsNotCorrectlyOriented(Oz, False)
2205 self.assertEqual(cell_lst.getNumberOfTuples(), 1)
2207 def testPolyhedronBarycenter(self):
2208 connN=[0,3,2,1, -1, 4,5,6,7, -1, 0,4,7,3, -1, 3,7,6,2, -1, 2,6,5,1, -1, 1,5,4,0];
2209 coords=[0.,0.,0., 1.,0.,0., 1.,1.,0., 0.,1.,0., 0.,0.,1., 1.,0.,1., 1.,1.,1., 0.,1.,1., 0.5, 0.5, 0.5];
2210 meshN=MEDCouplingUMesh.New();
2211 meshN.setName("ForBary");
2212 meshN.setMeshDimension(3);
2213 meshN.allocateCells(4);
2214 meshN.insertNextCell(NORM_POLYHED,29,connN[0:29])
2215 meshN.finishInsertingCells();
2216 myCoords=DataArrayDouble.New();
2217 myCoords.setValues(coords,9,3);
2218 meshN.setCoords(myCoords);
2219 meshN.checkCoherency();
2221 res1=meshN.arePolyhedronsNotCorrectlyOriented();
2222 meshN.orientCorrectlyPolyhedrons();
2223 self.assertTrue(len(res1)==0);
2224 da=meshN.getBarycenterAndOwner();
2225 self.assertEqual(1,da.getNumberOfTuples());
2226 self.assertEqual(3,da.getNumberOfComponents());
2227 daPtr=da.getValues();
2228 ref=meshN.getCoords().getValues()[24:];
2230 self.assertTrue(abs(ref[i]-daPtr[i])<1e-12);
2235 da=meshN.getBarycenterAndOwner();
2236 daPtr=da.getValues();
2237 ref=meshN.getCoords().getValues()[24:];
2239 self.assertTrue(abs(ref[i]-daPtr[i])<1e-12);
2242 meshN.rotate(center,vec,pi/7.);
2243 meshN.translate(vec);
2244 da=meshN.getBarycenterAndOwner();
2245 daPtr=da.getValues();
2246 ref=meshN.getCoords().getValues()[24:];
2248 self.assertTrue(abs(ref[i]-daPtr[i])<1e-12);
2251 center2=[1.12,3.45,6.78]
2253 meshN.rotate(center2,vec2,e);
2254 meshN.translate(vec2);
2255 da=meshN.getBarycenterAndOwner();
2256 daPtr=da.getValues();
2257 ref=meshN.getCoords().getValues()[24:];
2259 self.assertTrue(abs(ref[i]-daPtr[i])<1e-10);
2263 def testNormL12Integ1D(self):
2264 m1=MEDCouplingDataForTest.build1DTargetMesh_3();
2265 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
2267 array=DataArrayDouble.New();
2268 arr=[-5.23,15.45,-25.56,6.67,-16.78,26.89,-7.91,17.23,-27.43,8.21,-18.63,28.72]
2269 array.setValues(arr,m1.getNumberOfCells(),3);
2272 f3=m1.getBarycenterAndOwner();
2273 self.assertEqual(4,f3.getNumberOfTuples());
2274 self.assertEqual(1,f3.getNumberOfComponents());
2275 expected9=[0.75,5.105,0.8,5.155]
2278 self.assertTrue(abs(expected9[i]-ptr[i])<1e-12);
2281 f2=m1.getMeasureField(False);
2282 self.assertEqual(4,f2.getArray().getNumberOfTuples());
2283 self.assertEqual(1,f2.getNumberOfComponents());
2284 expected1=[0.5,0.21,-0.6,-0.31]
2285 ptr=f2.getArray().getValues();
2287 self.assertTrue(abs(expected1[i]-ptr[i])<1e-12);
2289 expected2=[0.5,0.21,0.6,0.31]
2290 f2=m1.getMeasureField(True);
2291 ptr=f2.getArray().getValues();
2293 self.assertTrue(abs(expected2[i]-ptr[i])<1e-12);
2296 self.assertTrue(4,f1.getNumberOfTuples())
2297 res=f1.integral(False);
2298 self.assertTrue(3,len(res))
2299 expected3=[0.9866,-0.3615,0.4217]
2301 self.assertTrue(abs(expected3[i]-res[i])<1e-12);
2303 self.assertTrue(abs(expected3[0]-f1.integral(0,False))<1e-12);
2304 self.assertTrue(abs(expected3[1]-f1.integral(1,False))<1e-12);
2305 self.assertTrue(abs(expected3[2]-f1.integral(2,False))<1e-12);
2306 res=f1.integral(True);
2307 expected4=[-3.4152,8.7639,-14.6879]
2309 self.assertTrue(abs(expected4[i]-res[i])<1e-12);
2313 self.assertTrue(3,len(res))
2314 expected5=[6.979506172839505, 16.89018518518518, 27.02969135802469]
2316 self.assertTrue(abs(expected5[i]-res[i])<1e-12);
2318 self.assertTrue(abs(expected5[0]-f1.normL1(0))<1e-12);
2319 self.assertTrue(abs(expected5[1]-f1.normL1(1))<1e-12);
2320 self.assertTrue(abs(expected5[2]-f1.normL1(2))<1e-12);
2323 self.assertTrue(3,len(res))
2324 expected7=[7.090910979452395, 16.9275542960123, 27.053271464160858]
2326 self.assertTrue(abs(expected7[i]-res[i])<1e-9);
2328 self.assertTrue(abs(expected7[0]-f1.normL2(0))<1e-9);
2329 self.assertTrue(abs(expected7[1]-f1.normL2(1))<1e-9);
2330 self.assertTrue(abs(expected7[2]-f1.normL2(2))<1e-9);
2332 f4=f1.buildMeasureField(False);
2333 self.assertTrue(abs(-0.2-f4.accumulate(0))<1e-12);
2334 f4=f1.buildMeasureField(True);
2335 self.assertTrue(abs(1.62-f4.accumulate(0))<1e-12);
2336 # Testing with 2D Curve
2337 m1=MEDCouplingDataForTest.build2DCurveTargetMesh_3();
2338 f2=m1.getMeasureField(False);
2339 self.assertEqual(4,f2.getArray().getNumberOfTuples());
2340 self.assertEqual(1,f2.getNumberOfComponents());
2341 ptr=f2.getArray().getValues();
2343 self.assertTrue(abs(sqrt(2.)*expected2[i]-ptr[i])<1e-12);
2345 f2=m1.getMeasureField(True);
2346 self.assertEqual(4,f2.getArray().getNumberOfTuples());
2347 self.assertEqual(1,f2.getNumberOfComponents());
2348 ptr=f2.getArray().getValues();
2350 self.assertTrue(abs(expected2[i]*sqrt(2.)-ptr[i])<1e-12);
2353 f3=m1.getBarycenterAndOwner();
2354 self.assertEqual(4,f3.getNumberOfTuples());
2355 self.assertEqual(2,f3.getNumberOfComponents());
2356 expected10=[0.75,0.75,5.105,5.105,0.8,0.8,5.155,5.155]
2359 self.assertTrue(abs(expected10[i]-ptr[i])<1e-12);
2362 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
2364 array=DataArrayDouble.New();
2365 array.setValues(arr,m1.getNumberOfCells(),3);
2367 res=f1.integral(False);
2369 self.assertTrue(abs(sqrt(2.)*expected4[i]-res[i])<1e-12);
2371 res=f1.integral(True);
2373 self.assertTrue(abs(sqrt(2.)*expected4[i]-res[i])<1e-12);
2377 self.assertTrue(abs(expected5[i]-res[i])<1e-12);
2381 self.assertTrue(abs(expected7[i]-res[i])<1e-12);
2385 def testAreaBary2D(self):
2386 m1=MEDCouplingDataForTest.build2DTargetMesh_3();
2387 f1=m1.getMeasureField(False);
2388 self.assertEqual(10,f1.getArray().getNumberOfTuples());
2389 self.assertEqual(1,f1.getNumberOfComponents());
2390 expected1=[-0.5,-1,-1.5,-0.5,-1, 0.5,1,1.5,0.5,1]
2391 ptr=f1.getArray().getValues();
2392 for i in xrange(10):
2393 self.assertTrue(abs(expected1[i]-ptr[i])<1e-12);
2395 f1=m1.getMeasureField(True);
2396 ptr=f1.getArray().getValues();
2397 for i in xrange(10):
2398 self.assertTrue(abs(abs(expected1[i])-ptr[i])<1e-12);
2400 f2=m1.getBarycenterAndOwner();
2401 self.assertEqual(10,f2.getNumberOfTuples());
2402 self.assertEqual(2,f2.getNumberOfComponents());
2403 expected2=[0.5,0.3333333333333333,0.5,0.5,0.5,0.77777777777777777,0.5,0.3333333333333333,0.5,0.5,0.5,0.3333333333333333,0.5,0.5,0.5,0.77777777777777777,0.5,0.3333333333333333,0.5,0.5]
2405 for i in xrange(20):
2406 self.assertTrue(abs(expected2[i]-ptr[i])<1e-12);
2408 m1.changeSpaceDimension(3);
2409 f1=m1.getMeasureField(False);
2410 self.assertEqual(10,f1.getArray().getNumberOfTuples());
2411 self.assertEqual(1,f1.getNumberOfComponents());
2412 ptr=f1.getArray().getValues();
2413 for i in xrange(10):
2414 self.assertTrue(abs(abs(expected1[i])-ptr[i])<1e-12);
2416 f2=m1.getBarycenterAndOwner();
2417 self.assertEqual(10,f2.getNumberOfTuples());
2418 self.assertEqual(3,f2.getNumberOfComponents());
2420 expected3=[0.5,0.3333333333333333,0.,0.5,0.5,0.,0.5,0.77777777777777777,0.,0.5,0.3333333333333333,0.,0.5,0.5,0., 0.5,0.3333333333333333,0.,0.5,0.5,0.,0.5,0.77777777777777777,0.,0.5,0.3333333333333333,0.,0.5,0.5,0.]
2421 for i in xrange(30):
2422 self.assertTrue(abs(expected3[i]-ptr[i])<1e-12);
2426 def testAreaBary3D(self):
2427 coords=[ 0.241310763507 , 0.0504777305619 , 0.0682283524903 , 0.252501053866 , -0.0625176732937 , 0.137272639894 ,
2428 0.152262663601 , 0.241816569527 , 0.133812556197 , 0.18047750211 , -0.0789949051358 , 0.339098173401 ,
2429 0.151741971857 , 0.238885278571 , 0.137715037333 , 0.242532155481 , -0.0928169086456 , 0.0678043417367 ,
2430 0.240941965335 , -0.015461491464 , 0.0617186345825 , 0.24127650112 , 0.0499427876717 , 0.0679634099148 ,
2431 -0.145828917428 , 0.206291632565 , 0.0310071927543 , 0.0125651775307 , 0.266262085828 , 0.105228430543 ,
2432 -0.0994066533286 , 0.233224271238 , 0.0572213839567 , -0.0951345338317 , 0.234819509426 , 0.0592126284538 ,
2433 0.136580574205 , -0.205486212579 , 0.0572866072014 , 0.0637270784978 , -0.168886355238 , 0.446614057077 ,
2434 0.041337157151 , -0.213402568198 , 0.372407095999 , 0.0411601970268 , -0.202387875756 , 0.411334979491 ,
2435 -0.108355701857 , 0.193636239335 , 0.204886756738 , 0.00639779029829 , 0.155296981517 , 0.252585892979 ,
2436 0.0262473111702 , -0.112919732543 , 0.424286639249 ,-0.224103052733 , -0.139430015438 , -0.0122352295701 ,
2437 -0.0312760589481 , -0.274272003594 , 0.0323959636568 , -0.166663422532 , -0.217754445175 , 0.00392109070364 ,
2438 -0.30586619777 , -0.0475168041091 , -0.0144585228182 , -0.280881480586 , 0.135571293538 , 0.00623923647986 ,
2439 -0.25548538234 , 0.156819217766 , 0.0645277879769 , -0.131567009284 , 0.184133752309 , 0.206021802753 ,
2440 -0.196204010965 , 0.151602971681 , 0.212974777736 , -0.183713879463 , 0.0802946639531 , 0.260115662599 ,
2441 -0.244241178767 , -0.0738873389604 , 0.144590565817 , -0.155804057829 , -0.164892720025 , 0.210613950558 ,
2442 -0.170950800428 , -0.215099334026 , 0.00610122860092 , -0.30552634869 , -0.0490020791904 , -0.0132786533145 ,
2443 0.271831011884 , 0.15105657296 , 0.0230534827908 , 0.281919192283 , 0.0898544306288 , -0.0625201489143 ,
2444 0.260240727276 , -0.0120688706637 , -0.0532316588626 , 0.244947737722 , 0.0197984684293 , 0.0309341209233 ,
2445 0.23439631578 , 0.229825279875 , 0.0508520585381 , 0.160921316875 , 0.265078502128 , 0.121716560626 ,
2446 -0.315088694175 , 0.0747700471918 , -0.245836615071 , -0.327728781776 , 0.0857114674649 , -0.239431905957 ,
2447 -0.308385460634 , 0.145142997084 , -0.149886828433 , 0.0488236045164 , 0.309462801914 , 0.0849169148265 ,
2448 -0.0244964803395 , 0.33145611751 , -0.0476415818061 , 0.0060567994229 , 0.32418412014 , 0.0367779543812 ,
2449 -0.0950221448063 , 0.236675326003 , 0.0572594453983 , 0.248723023186 , 0.0886648784791 , -0.176629430538 ,
2450 0.116796984 , 0.256596599567 , -0.292863523603 , 0.118024552914 , 0.229154257843 , -0.34233232501 ,
2451 0.217507892549 , -0.0417822335742 , -0.176771782888 , -0.224429321304 , 0.0125595300114 , -0.362064725588 ,
2452 0.0937301100955 , -0.0500824832657 , -0.299713548444 , -0.244162220397 , 0.0383853931293 , -0.389856984411 ,
2453 -0.0281989366102 , 0.097392811563 , -0.458244577284 , -0.385010847162 , 0.10122766194 , -0.140052859922 ,
2454 -0.377936358012 , 0.110875172128 , -0.176207095463 , 0.244483045556 , -0.0991073977045 , 0.0575134372934 ,
2455 0.262605120167 , -0.100243191645 , -0.0495620806935 , 0.240306880972 , -0.136153701579 , -0.114745281696 ,
2456 0.215763176129 , -0.0836766059189 , -0.183249640616 , 0.237870396603 , -0.132449578286 , -0.121598854639 ,
2457 -0.0637683083097 , -0.27921020214 , -0.149112321992 , -0.0856211014977 , -0.2973233473 , -0.0446878139589 ,
2458 0.104675342288 , -0.0625908305324 , -0.290346256534 , 0.0248264249186 , -0.247797708548 , -0.165830884019 ,
2459 0.0719302438309 , -0.178468260473 , -0.211432157345 , 0.142871843159 , -0.208769948542 , 0.0454101128246 ,
2460 0.167803379307 , -0.207851396623 , -0.088802726124 , 0.12868717152 , -0.230920439715 , 0.00760508389036 ,
2461 -0.0372812069535 , -0.286740286332 , 0.00963701291166 ]
2463 connN = [ #polyhedron 0
2464 0 , 1 , 3 , 4 , 2 , -1 , 1 , 5 , 6 , 7 , 0 , -1 , 0 , 7 , 8 , 10 , 11 , 9 , 2 , -1 , 1 , 5 , 12 , 14 , 15 , 13 , 3 , -1 , 16 , 9 , 2 , 4 , 17 , -1
2465 , 4 , 3 , 13 , 18 , 17 , -1 , 5 , 6 , 19 , 21 , 20 , 12 , -1 , 6 , 7 , 8 , 23 , 22 , 19 , -1 , 23 , 24 , 10 , 8 , -1 , 25 , 11 , 9 , 16 , -1
2466 , 24 , 26 , 25 , 11 , 10 , -1 , 12 , 14 , 20 , -1 , 27 , 28 , 29 , 15 , 13 , 18 , -1 , 14 , 15 , 29 , 30 , 21 , 20 , -1 , 26 , 27 , 18 , 17 , 16 , 25 , -1
2467 , 22 , 19 , 21 , 30 , 31 , -1 , 22 , 31 , 28 , 27 , 26 , 24 , 23 , -1 , 31 , 30 , 29 , 28,
2469 0 , 7 , 8 , 10 , 11 , 9 , 2 , -1 , 32 , 0 , 7 , 35 , 34 , 33 , -1 , 32 , 0 , 2 , 37 , 36 , -1 , 35 , 7 , 8 , 40 , 39 , 38 , -1
2470 , 2 , 37 , 41 , 9 , -1 , 40 , 8 , 10 , 44 , 43 , 42 , -1 , 41 , 9 , 11 , 44 , 43 , -1 , 44 , 11 , 10 , -1 , 32 , 33 , 45 , 47 , 46 , 36 , -1
2471 , 33 , 34 , 48 , 45 , -1 , 35 , 34 , 48 , 50 , 49 , 38 , -1 , 41 , 43 , 42 , 46 , 36 , 37 , -1 , 38 , 39 , 51 , 49 , -1
2472 , 39 , 40 , 42 , 46 , 47 , 52 , 51 , -1 , 45 , 47 , 52 , 50 , 48 , -1 , 52 , 51 , 49 , 50,
2474 6 , 7 , 8 , 23 , 22 , 19 , -1 , 6 , 35 , 7 , -1 , 6 , 35 , 38 , 19 , -1 , 35 , 7 , 8 , 40 , 39 , 38 , -1 , 53 , 22 , 19 , 38 , 39 , 54 , -1
2475 , 23 , 53 , 54 , 40 , 8 , -1 , 53 , 22 , 23 , -1 , 39 , 54 , 40,
2477 35 , 34 , 48 , 50 , 49 , 38 , -1 , 6 , 35 , 34 , 56 , 55 , 5 , -1 , 6 , 35 , 38 , 19 , -1 , 34 , 56 , 57 , 59 , 58 , 48 , -1
2478 , 60 , 61 , 21 , 19 , 38 , 49 , -1 , 62 , 50 , 48 , 58 , -1 , 60 , 63 , 64 , 62 , 50 , 49 , -1 , 5 , 6 , 19 , 21 , 20 , 12 , -1
2479 , 55 , 5 , 12 , 65 , -1 , 66 , 67 , 65 , 55 , 56 , 57 , -1 , 63 , 66 , 57 , 59 , 64 , -1 , 64 , 62 , 58 , 59 , -1
2480 , 60 , 63 , 66 , 67 , 68 , 61 , -1 , 61 , 68 , 20 , 21 , -1 , 67 , 68 , 20 , 12 , 65]
2482 barys = [ -0.0165220465527 , -0.0190922868195 , 0.158882733414 ,
2483 0.0287618656076 , 0.135874379934 , -0.14601588119 ,
2484 -0.147128055553 , 0.0465995097041 , -0.049391174453 ,
2485 -0.00142506732317 , -0.0996953090351 , -0.115159183132 ]
2486 meshN=MEDCouplingUMesh.New();
2487 meshN.setName("ForBary");
2488 meshN.setMeshDimension(3);
2489 meshN.allocateCells(4);
2490 meshN.insertNextCell(NORM_POLYHED,113,connN);
2491 meshN.insertNextCell(NORM_POLYHED,99,connN[113:]);
2492 meshN.insertNextCell(NORM_POLYHED,43,connN[212:]);
2493 meshN.insertNextCell(NORM_POLYHED,92,connN[255:]);
2494 meshN.finishInsertingCells();
2495 myCoords=DataArrayDouble.New();
2496 myCoords.setValues(coords,69,3);
2497 meshN.setCoords(myCoords);
2498 meshN.checkCoherency();
2499 res1=meshN.arePolyhedronsNotCorrectlyOriented();
2500 meshN.orientCorrectlyPolyhedrons();
2501 res1=meshN.arePolyhedronsNotCorrectlyOriented();
2502 self.assertTrue(len(res1)==0);
2504 da=meshN.getBarycenterAndOwner();
2505 self.assertEqual(4,da.getNumberOfTuples());
2506 self.assertEqual(3,da.getNumberOfComponents());
2507 daPtr=da.getValues();
2508 for i in xrange(12):
2509 self.assertTrue(abs(barys[i]-daPtr[i])<1e-12);
2513 def testRenumberCellsForFields(self):
2514 m=MEDCouplingDataForTest.build2DTargetMesh_1();
2515 f=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
2517 arr=DataArrayDouble.New();
2518 nbOfCells=m.getNumberOfCells();
2519 values1=[7.,107.,10007.,8.,108.,10008.,9.,109.,10009.,10.,110.,10010.,11.,111.,10011.]
2520 arr.setValues(values1,nbOfCells,3);
2522 renumber1=[3,1,0,4,2]
2523 loc=[-0.05,-0.05, 0.55,-0.25, 0.55,0.15, -0.05,0.45, 0.45,0.45]
2525 res=f.getValueOn(loc[2*j:2*j+2]);
2527 self.assertTrue(abs(values1[i+3*j]-res[i])<1e-12);
2530 f.renumberCells(renumber1,False);
2531 ptr=f.getArray().getValues();
2532 expected1=[9.,109.,10009.,8.,108.,10008.,11.,111.,10011.,7.,107.,10007.,10.,110.,10010.]
2533 for i in xrange(15):
2534 self.assertTrue(abs(expected1[i]-ptr[i])<1e-12);
2536 #check that fields remains the same geometrically
2538 res=f.getValueOn(loc[2*j:2*(j+1)]);
2540 self.assertTrue(abs(values1[i+3*j]-res[i])<1e-12);
2544 f=MEDCouplingFieldDouble.New(ON_GAUSS_PT,NO_TIME);
2546 _a=0.446948490915965;
2547 _b=0.091576213509771;
2548 _p1=0.11169079483905;
2549 _p2=0.0549758718227661;
2550 refCoo1=[ 0.,0., 1.,0., 0.,1. ]
2551 gsCoo1=[ 2*_b-1, 1-4*_b, 2*_b-1, 2.07*_b-1, 1-4*_b, 2*_b-1, 1-4*_a, 2*_a-1, 2*_a-1, 1-4*_a, 2*_a-1, 2*_a-1 ];
2552 wg1=[ 4*_p2, 4*_p2, 4*_p2, 4*_p1, 4*_p1, 4*_p1 ]
2553 _refCoo1=refCoo1[0:6];
2554 _gsCoo1=gsCoo1[0:12];
2556 f.setGaussLocalizationOnType(NORM_TRI3,_refCoo1,_gsCoo1,_wg1);
2557 refCoo2=[ 0.,0., 1.,0., 1.,1., 0.,1. ]
2558 _refCoo2=refCoo2[0:8];
2559 _gsCoo1=_gsCoo1[0:4]
2561 f.setGaussLocalizationOnType(NORM_QUAD4,_refCoo2,_gsCoo1,_wg1);
2562 arr=DataArrayDouble.New();
2563 values2=[1.,1001.,2.,1002., 11.,1011.,12.,1012.,13.,1013.,14.,1014.,15.,1015.,16.,1016., 21.,1021.,22.,1022.,23.,1023.,24.,1024.,25.,1025.,26.,1026., 31.,1031.,32.,1032., 41.,1041.,42.,1042.]
2564 arr.setValues(values2,18,2);
2568 self.assertTrue(f.isEqual(fCpy,1e-12,1e-12));
2569 f.renumberCells(renumber1,False);
2570 self.assertTrue(not f.isEqual(fCpy,1e-12,1e-12));
2571 expected2=[21.,1021.,22.,1022.,23.,1023.,24.,1024.,25.,1025.,26.,1026., 11.,1011.,12.,1012.,13.,1013.,14.,1014.,15.,1015.,16.,1016., 41.,1041.,42.,1042., 1.,1001.,2.,1002., 31.,1031.,32.,1032.]
2572 ptr=f.getArray().getValues();
2573 for i in xrange(36):
2574 self.assertTrue(abs(expected2[i]-ptr[i])<1e-12);
2576 renumber2=[2,1,4,0,3]
2577 f.renumberCells(renumber2,False);
2578 self.assertTrue(f.isEqual(fCpy,1e-12,1e-12));
2580 f=MEDCouplingFieldDouble.New(ON_GAUSS_NE,NO_TIME);
2582 arr=DataArrayDouble.New();
2583 values3=[1.,1001.,2.,1002.,3.,1003.,4.,1004., 11.,1011.,12.,1012.,13.,1013., 21.,1021.,22.,1022.,23.,1023., 31.,1031.,32.,1032.,33.,1033.,34.,1034., 41.,1041.,42.,1042.,43.,1043.,44.,1044.]
2584 arr.setValues(values3,18,2);
2588 self.assertTrue(f.isEqual(fCpy,1e-12,1e-12));
2589 f.renumberCells(renumber1,False);
2590 self.assertTrue(not f.isEqual(fCpy,1e-12,1e-12));
2591 expected3=[21.,1021.,22.,1022.,23.,1023.,11.,1011.,12.,1012.,13.,1013.,41.,1041.,42.,1042.,43.,1043.,44.,1044.,1.,1001.,2.,1002.,3.,1003.,4.,1004.,31.,1031.,32.,1032.,33.,1033.,34.,1034.]
2592 ptr=f.getArray().getValues();
2593 for i in xrange(36):
2594 self.assertTrue(abs(expected3[i]-ptr[i])<1e-12);
2596 f.renumberCells(renumber2,False);#perform reverse operation of renumbering to check that the resulting field is equal.
2597 self.assertTrue(f.isEqual(fCpy,1e-12,1e-12));
2601 def testRenumberNodesForFields(self):
2602 m=MEDCouplingDataForTest.build2DTargetMesh_1();
2603 f=MEDCouplingFieldDouble.New(ON_NODES,NO_TIME);
2605 self.assertEqual(9,f.getNumberOfMeshPlacesExpected());
2606 arr=DataArrayDouble.New();
2607 nbOfNodes=m.getNumberOfNodes();
2608 values1=[7.,107.,10007.,8.,108.,10008.,9.,109.,10009.,10.,110.,10010.,11.,111.,10011.,12.,112.,10012.,13.,113.,10013.,14.,114.,10014.,15.,115.,10015.]
2609 arr.setValues(values1,nbOfNodes,3);
2612 renumber1=[0,4,1,3,5,2,6,7,8]
2613 loc=[0.5432,-0.2432, 0.5478,0.1528]
2614 expected1=[9.0272, 109.0272, 10009.0272, 11.4124,111.4124,10011.4124]
2616 res=f.getValueOn(loc[2*j:2*j+2]);
2618 self.assertTrue(abs(expected1[i+3*j]-res[i])<1e-12);
2622 self.assertTrue(f.isEqual(fCpy,1e-12,1e-12));
2623 f.renumberNodes(renumber1);
2624 self.assertTrue(not f.isEqual(fCpy,1e-12,1e-12));
2626 res=f.getValueOn(loc[2*j:2*j+2]);
2628 self.assertTrue(abs(expected1[i+3*j]-res[i])<1e-12);
2631 expected2=[7.,107.,10007.,9.,109.,10009.,12.,112.,10012.,10.,110.,10010.,8.,108.,10008.,11.,111.,10011.,13.,113.,10013.,14.,114.,10014.,15.,115.,10015.]
2632 for i in xrange(27):
2633 self.assertTrue(abs(expected2[i]-f.getArray().getValues()[i])<1e-12);
2635 renumber2=[0,2,5,3,1,4,6,7,8]
2636 f.renumberNodes(renumber2);
2637 self.assertTrue(f.isEqual(fCpy,1e-12,1e-12));
2640 def testConvertQuadraticCellsToLinear(self):
2641 mesh=MEDCouplingDataForTest.build2DTargetMesh_3();
2642 mesh.checkCoherency();
2643 types=mesh.getAllGeoTypes();
2645 self.assertEqual(5,len(types));
2646 expected1=[NORM_POLYGON, NORM_TRI3, NORM_QUAD4, NORM_TRI6, NORM_QUAD8]
2648 self.assertEqual(expected1,types);
2649 self.assertTrue(mesh.isPresenceOfQuadratic());
2650 self.assertEqual(62,mesh.getMeshLength());
2651 f1=mesh.getMeasureField(False);
2653 mesh.convertQuadraticCellsToLinear();
2654 self.assertTrue(not mesh.isPresenceOfQuadratic());
2656 mesh.checkCoherency();
2657 f2=mesh.getMeasureField(False);
2658 self.assertTrue(f1.getArray().isEqual(f2.getArray(),1e-12));
2659 self.assertEqual(48,mesh.getMeshLength());
2660 types2=mesh.getAllGeoTypes();
2662 self.assertEqual(3,len(types2));
2663 expected2=[NORM_POLYGON, NORM_TRI3, NORM_QUAD4]
2665 self.assertEqual(expected2,types2);
2668 def testCheckGeoEquivalWith(self):
2669 mesh1=MEDCouplingDataForTest.build2DTargetMesh_3();
2670 mesh2=MEDCouplingDataForTest.build2DTargetMesh_3();
2672 cellCor,nodeCor=mesh1.checkGeoEquivalWith(mesh1,0,1e-12);#deepEqual
2673 self.assertTrue(cellCor==None);
2674 self.assertTrue(nodeCor==None);
2675 cellCor,nodeCor=mesh1.checkGeoEquivalWith(mesh1,1,1e-12);#fastEqual
2676 self.assertTrue(cellCor==None);
2677 self.assertTrue(nodeCor==None);
2678 cellCor,nodeCor=mesh1.checkGeoEquivalWith(mesh1,10,1e-12);#deepEqual with geo permutations
2679 self.assertTrue(cellCor==None);
2680 self.assertTrue(nodeCor==None);
2681 #Second test mesh1 and mesh2 are 2 different meshes instance
2682 cellCor,nodeCor=mesh1.checkGeoEquivalWith(mesh2,0,1e-12);#deepEqual
2683 self.assertTrue(cellCor==None);
2684 self.assertTrue(nodeCor==None);
2685 cellCor,nodeCor=mesh1.checkGeoEquivalWith(mesh2,1,1e-12);#fastEqual
2686 self.assertTrue(cellCor==None);
2687 self.assertTrue(nodeCor==None);
2688 cellCor,nodeCor=mesh1.checkGeoEquivalWith(mesh2,10,1e-12);#deepEqual with geo permutations
2689 self.assertTrue(cellCor==None);
2690 self.assertTrue(nodeCor==None);
2691 #Third test : cell permutation by keeping the first the middle and the last as it is.
2692 renum=[0,2,1,3,4,5,6,8,7,9]
2693 mesh2.renumberCells(renum,False);
2694 self.assertRaises(InterpKernelException,mesh1.checkGeoEquivalWith,mesh2,0,1e-12);#deepEqual fails
2695 self.assertTrue(cellCor==None);
2696 self.assertTrue(nodeCor==None);
2697 cellCor,nodeCor=mesh1.checkGeoEquivalWith(mesh2,1,1e-12);#fastEqual do not see anything
2698 self.assertTrue(cellCor==None);
2699 self.assertTrue(nodeCor==None);
2700 cellCor,nodeCor=mesh1.checkGeoEquivalWith(mesh2,10,1e-12);#deepEqual with geo permutations
2701 self.assertTrue(cellCor);
2702 self.assertEqual(10,cellCor.getNumberOfTuples());
2703 self.assertEqual(1,cellCor.getNumberOfComponents());
2704 self.assertEqual(renum,list(cellCor.getValues()))
2705 self.assertTrue(nodeCor==None);
2707 self.assertTrue(nodeCor==None);
2708 a,b=mesh1.checkDeepEquivalWith(mesh2,0,1e-12);
2709 self.assertEqual(renum,list(a.getValues()))
2710 self.assertTrue(b==None);
2711 mesh2.setCoords(mesh1.getCoords())
2712 a=mesh1.checkDeepEquivalOnSameNodesWith(mesh2,0,1e-12);
2713 self.assertEqual(renum,list(a.getValues()))
2714 #4th test : cell and node permutation by keeping the first the middle and the last as it is.
2715 mesh2=MEDCouplingDataForTest.build2DTargetMesh_3();
2716 renum2=[0,2,1,3,4,5,6,8,7,9,10]
2717 mesh2.renumberCells(renum,False);
2718 mesh2.renumberNodes(renum2,11);
2721 self.assertRaises(InterpKernelException,mesh1.checkGeoEquivalWith,mesh2,0,1e-12);#deepEqual fails
2722 self.assertTrue(cellCor==None);
2723 self.assertTrue(nodeCor==None);
2724 cellCor,nodeCor=mesh1.checkGeoEquivalWith(mesh2,1,1e-12);#fastEqual do not see anything
2725 self.assertTrue(cellCor==None);
2726 self.assertTrue(nodeCor==None);
2727 cellCor,nodeCor=mesh1.checkGeoEquivalWith(mesh2,10,1e-12);#deepEqual with geo permutations
2728 self.assertTrue(cellCor);
2729 self.assertEqual(10,cellCor.getNumberOfTuples());
2730 self.assertEqual(1,cellCor.getNumberOfComponents());
2731 self.assertEqual(renum,list(cellCor.getValues()))
2732 self.assertTrue(nodeCor);
2733 self.assertEqual(11,nodeCor.getNumberOfTuples());
2734 self.assertEqual(1,nodeCor.getNumberOfComponents());
2735 self.assertEqual(renum2,list(nodeCor.getValues()))
2738 #5th test : modification of the last cell to check fastCheck detection.
2739 mesh2=MEDCouplingDataForTest.build2DTargetMesh_3();
2740 renum3=[0,2,1,3,4,5,6,8,9,7]
2741 mesh2.renumberCells(renum3,False);
2742 mesh2.renumberNodes(renum2,11);
2745 self.assertRaises(InterpKernelException,mesh1.checkGeoEquivalWith,mesh2,0,1e-12)
2746 self.assertTrue(cellCor==None);
2747 self.assertTrue(nodeCor==None);
2748 self.assertRaises(InterpKernelException,mesh1.checkGeoEquivalWith,mesh2,1,1e-12)
2749 self.assertTrue(cellCor==None);
2750 self.assertTrue(nodeCor==None);
2751 cellCor,nodeCor=mesh2.checkGeoEquivalWith(mesh1,10,1e-12);#deepEqual with geo permutations
2752 self.assertTrue(cellCor!=None);
2753 self.assertEqual(10,cellCor.getNumberOfTuples());
2754 self.assertEqual(1,cellCor.getNumberOfComponents());
2755 self.assertEqual(renum3,list(cellCor.getValues()))
2756 self.assertTrue(nodeCor!=None);
2757 self.assertEqual(11,nodeCor.getNumberOfTuples());
2758 self.assertEqual(1,nodeCor.getNumberOfComponents());
2759 self.assertEqual(renum2,list(nodeCor.getValues()));
2762 def testCheckGeoEquivalWith2(self):
2763 mesh1=MEDCouplingDataForTest.build2DTargetMesh_4();
2764 mesh2=MEDCouplingDataForTest.build2DTargetMesh_1();
2765 cellCor,nodeCor=mesh1.checkGeoEquivalWith(mesh2,10,1e-12);
2766 self.assertEqual(None,cellCor);
2767 self.assertNotEqual(None,nodeCor);
2768 expected1=[0, 1, 3, 4, 5, 6, 7, 8, 9]
2770 self.assertEqual(expected1[i],nodeCor.getIJ(i,0));
2774 def testSwig2CheckDeepEquivalWith1(self):
2776 mcart = MEDCouplingCMesh()
2777 mcart.setCoordsAt(0, DataArrayDouble([0.0,1.5,2.0]))
2778 mcart.setCoordsAt(1, DataArrayDouble([1.0,2.5,3.0,4.0]))
2779 m = mcart.buildUnstructured()
2780 m2 = m[1:m.getNumberOfCells()]
2781 self.assertRaises(InterpKernelException, m.checkDeepEquivalWith, m2, 0, eps)
2782 self.assertRaises(InterpKernelException, m.checkDeepEquivalWith, m2, 1, eps)
2783 self.assertRaises(InterpKernelException, m.checkDeepEquivalWith, m2, 2, eps)
2786 def testSwig2CheckDeepEquivalWith2(self):
2788 m = MEDCouplingUMesh("tst", 2)
2789 m.setCoords(DataArrayDouble([], 0,2))
2790 m.setConnectivity(DataArrayInt([]), DataArrayInt([0]))
2792 m.checkDeepEquivalWith(m2, 0, eps) # Should not raise!
2795 def testCopyTinyStringsFromOnFields(self):
2796 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
2797 nbOfCells=m.getNumberOfCells();
2798 f=MEDCouplingFieldDouble.New(ON_CELLS,LINEAR_TIME);
2800 self.assertEqual(5,f.getNumberOfMeshPlacesExpected());
2802 f.setDescription("b");
2803 a1=DataArrayDouble.New();
2804 a1.alloc(nbOfCells,2);
2806 a1.setInfoOnComponent(0,"c");
2807 a1.setInfoOnComponent(1,"d");
2809 a2.setInfoOnComponent(0,"e");
2810 a2.setInfoOnComponent(1,"f");
2813 f.setEndTime(3.,3,4);
2815 m.getCoords().setInfoOnComponent(0,"h");
2816 m.getCoords().setInfoOnComponent(1,"i");
2817 m.getCoords().setInfoOnComponent(2,"j");
2821 self.assertTrue(f2.isEqual(f,1e-12,1e-12));
2823 self.assertTrue(not f2.isEqual(f,1e-12,1e-12));
2824 f2.copyTinyStringsFrom(f);
2825 self.assertTrue(f2.isEqual(f,1e-12,1e-12));
2826 f2.setDescription("GGG");
2827 self.assertTrue(not f2.isEqual(f,1e-12,1e-12));
2828 f2.copyTinyStringsFrom(f);
2829 self.assertTrue(f2.isEqual(f,1e-12,1e-12));
2830 f2.getArray().setInfoOnComponent(0,"mmmm");
2831 self.assertTrue(not f2.isEqual(f,1e-12,1e-12));
2832 f2.copyTinyStringsFrom(f);
2833 self.assertTrue(f2.isEqual(f,1e-12,1e-12));
2834 f2.getEndArray().setInfoOnComponent(1,"mmmm");
2835 self.assertTrue(not f2.isEqual(f,1e-12,1e-12));
2836 f2.copyTinyStringsFrom(f);
2837 self.assertTrue(f2.isEqual(f,1e-12,1e-12));
2839 self.assertTrue(m2.isEqual(m,1e-12));
2841 self.assertTrue(not m2.isEqual(m,1e-12));
2842 m2.copyTinyStringsFrom(m);
2843 self.assertTrue(m2.isEqual(m,1e-12));
2844 m2.getCoords().setInfoOnComponent(1,"eee");
2845 self.assertTrue(not m2.isEqual(m,1e-12));
2846 m2.copyTinyStringsFrom(m);
2847 self.assertTrue(m2.isEqual(m,1e-12));
2850 def testTryToShareSameCoordsPermute(self):
2851 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
2852 m2=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
2853 #self.assertTrue(m.getCoords()!=m2.getCoords());
2854 m.tryToShareSameCoordsPermute(m2,1e-12);
2855 #self.assertTrue(m.getCoords()==m2.getCoords());
2856 self.assertTrue(m2.isEqual(m,1e-12));
2857 renum1=[1,2,0,5,8,7,4,3,6]
2858 r1=DataArrayInt.New()
2859 r1.setValues(renum1,len(renum1),1)
2860 m.renumberNodes(r1,9);
2861 #self.assertTrue(m.getCoords()!=m2.getCoords());
2862 self.assertTrue(not m2.isEqual(m,1e-12));
2863 m.tryToShareSameCoordsPermute(m2,1e-12);
2864 #self.assertTrue(m.getCoords()==m2.getCoords());
2865 self.assertTrue(m2.isEqual(m,1e-12));
2868 def testTryToShareSameCoordsPermute2(self):
2869 m1=MEDCouplingDataForTest.build2DTargetMesh_4();
2870 targetCoords=[-0.3,-0.3, 0.2,-0.3, -0.3,0.2, 0.2,0.2 ]
2871 targetConn=[0,2,3,1]
2872 m2=MEDCouplingUMesh.New();
2873 m2.setMeshDimension(2);
2874 m2.allocateCells(1);
2875 m2.insertNextCell(NORM_QUAD4,targetConn[0:4])
2876 m2.finishInsertingCells();
2877 myCoords=DataArrayDouble.New();
2878 myCoords.setValues(targetCoords,4,2);
2879 m2.setCoords(myCoords);
2880 m2.checkCoherency();
2881 m1.checkCoherency();
2883 expected1=[0.25,0.125,0.125,0.25,0.25]
2884 f1=m1.getMeasureField(False);
2885 f2=m2.getMeasureField(False);
2886 self.assertEqual(5,f1.getArray().getNumberOfTuples());
2887 self.assertEqual(1,f2.getArray().getNumberOfTuples());
2889 self.assertAlmostEqual(expected1[i],f1.getIJ(i,0),12);
2891 self.assertAlmostEqual(expected1[0],f2.getIJ(0,0),12);
2892 self.assertRaises(InterpKernelException,m1.tryToShareSameCoordsPermute,m2,1e-12);# <- here in this order the sharing is impossible.
2893 # Let's go for deeper test of tryToShareSameCoordsPermute
2894 m2.tryToShareSameCoordsPermute(m1,1e-12);
2895 f1=m1.getMeasureField(False);
2896 f2=m2.getMeasureField(False);
2897 self.assertEqual(5,f1.getArray().getNumberOfTuples());
2898 self.assertEqual(1,f2.getArray().getNumberOfTuples());
2900 self.assertAlmostEqual(expected1[i],f1.getIJ(i,0),12);
2902 self.assertAlmostEqual(expected1[0],f2.getIJ(0,0),12);
2905 def testChangeUnderlyingMesh1(self):
2906 mesh1=MEDCouplingDataForTest.build2DTargetMesh_3();
2907 mesh2=MEDCouplingDataForTest.build2DTargetMesh_3();
2908 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
2910 array=DataArrayDouble.New();
2911 arr=[7., 107., 8., 108., 9., 109., 10., 110., 11., 111., 12., 112., 13., 113., 14., 114., 15., 115., 16., 116.]
2912 array.setValues(arr,mesh1.getNumberOfCells(),2);
2915 renum=[0,2,1,3,4,5,6,8,7,9]
2916 mesh2.renumberCells(renum,False);
2917 #self.assertTrue(f1.getMesh()==mesh1);
2918 f1.changeUnderlyingMesh(mesh1,10,1e-12);# nothing done only to check that nothing done.
2919 #self.assertTrue(f1.getMesh()==mesh1);
2920 f1.changeUnderlyingMesh(mesh2,10,1e-12);
2921 #self.assertTrue(f1.getMesh()==mesh2);
2922 expected1=[7.,107.,9.,109.,8.,108.,10.,110.,11.,111.,12.,112.,13.,113.,15.,115.,14.,114.,16.,116.]
2923 for i in xrange(20):
2924 self.assertAlmostEqual(expected1[i],f1.getArray().getIJ(0,i),12);
2927 f1=MEDCouplingFieldDouble.New(ON_NODES,NO_TIME);
2929 array=DataArrayDouble.New();
2930 arr2=[7.,107.,8.,108.,9.,109.,10.,110.,11.,111.,12.,112.,13.,113.,14.,114.,15.,115.,16.,116.,17.,117.]
2931 array.setValues(arr2,mesh1.getNumberOfNodes(),2);
2934 renum2=[0,2,10,3,4,5,6,8,7,9,1]
2935 mesh2.renumberNodes(renum2,11);
2936 #self.assertTrue(f1.getMesh()==mesh1);
2937 f1.changeUnderlyingMesh(mesh2,10,1e-12);
2938 #self.assertTrue(f1.getMesh()==mesh2);
2939 expected2=[7.,107.,17.,117.,8.,108.,10.,110.,11.,111.,12.,112.,13.,113.,15.,115.,14.,114.,16.,116.,9.,109.]
2940 for i in xrange(22):
2941 self.assertAlmostEqual(expected2[i],f1.getArray().getIJ(0,i),12);
2945 def testGetMaxValue1(self):
2946 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
2947 nbOfCells=m.getNumberOfCells();
2948 f=MEDCouplingFieldDouble.New(ON_CELLS,LINEAR_TIME);
2950 a1=DataArrayDouble.New();
2951 val1=[3.,4.,5.,6.,7.]
2952 a1.setValues(val1,nbOfCells,1);
2953 a2=DataArrayDouble.New();
2954 val2=[0.,1.,2.,8.,7.]
2955 a2.setValues(val2,nbOfCells,1);
2958 f.setEndTime(3.,3,4);
2961 self.assertAlmostEqual(8.,f.getMaxValue(),14);
2962 self.assertAlmostEqual(0.,f.getMinValue(),14);
2963 self.assertAlmostEqual(5.,f.getAverageValue(),14);
2964 self.assertAlmostEqual(5.125,f.getWeightedAverageValue(0,True),14);
2966 self.assertAlmostEqual(9.5,f.getMaxValue(),14);
2967 self.assertAlmostEqual(0.,f.getMinValue(),14);
2969 self.assertAlmostEqual(9.5,f.getMaxValue(),14);
2970 self.assertAlmostEqual(1.,f.getMinValue(),14);
2973 def testSubstractInPlaceDM1(self):
2974 mesh1=MEDCouplingDataForTest.build2DTargetMesh_3();
2975 mesh2=MEDCouplingDataForTest.build2DTargetMesh_3();
2976 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
2978 array=DataArrayDouble.New();
2979 arr=[7.,107.,8.,108.,9.,109.,10.,110.,11.,111.,12.,112.,13.,113.,14.,114.,15.,115.,16.,116.]
2980 array.setValues(arr,mesh1.getNumberOfCells(),2);
2983 self.assertEqual(10,f1.getNumberOfTuples());
2984 self.assertEqual(2,f1.getNumberOfComponents());
2985 self.assertEqual(20,f1.getNumberOfValues());
2987 renum=[0,2,3,1,4,5,6,8,7,9]
2988 mesh2.renumberCells(renum,False);
2990 f2=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
2992 array=DataArrayDouble.New();
2993 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]
2994 array.setValues(arr2,mesh2.getNumberOfCells(),2);
2997 f1.substractInPlaceDM(f2,10,1e-12);
2998 f1.applyFunc(1,"abs(x+y+0.2)");
2999 self.assertAlmostEqual(0.,f1.getMaxValue(),13);
3002 def testDotCrossProduct1(self):
3003 mesh1=MEDCouplingDataForTest.build2DTargetMesh_3();
3004 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
3005 f1.setTime(2.3,5,6);
3007 array=DataArrayDouble.New();
3008 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.]
3009 array.setValues(arr1,mesh1.getNumberOfCells(),3);
3011 f2=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
3012 f2.setTime(7.8,4,5);
3014 array=DataArrayDouble.New();
3015 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.]
3016 array.setValues(arr2,mesh1.getNumberOfCells(),3);
3020 expected1=[842.,1820.,2816.,3830.,4862.,5912.,6980.,8066.,9170.,10292.]
3021 for i in xrange(10):
3022 self.assertAlmostEqual(expected1[i],f3.getIJ(i,0),9);
3025 f4=f1.crossProduct(f2);
3026 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.]
3027 for i in xrange(30):
3028 self.assertAlmostEqual(expected2[i],f4.getIJ(0,i),9);
3032 def testMinMaxFields1(self):
3033 mesh1=MEDCouplingDataForTest.build2DTargetMesh_3();
3034 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
3035 f1.setTime(2.3,5,6);
3037 array=DataArrayDouble.New();
3038 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.]
3039 array.setValues(arr1,mesh1.getNumberOfCells(),3);
3041 f2=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
3042 f2.setTime(7.8,4,5);
3044 array=DataArrayDouble.New();
3045 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.]
3046 array.setValues(arr2,mesh1.getNumberOfCells(),3);
3050 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.]
3051 for i in xrange(30):
3052 self.assertAlmostEqual(expected1[i],f3.getIJ(0,i),9);
3056 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.]
3057 for i in xrange(30):
3058 self.assertAlmostEqual(expected2[i],f4.getIJ(0,i),9);
3063 def testApplyLin1(self):
3064 mesh1=MEDCouplingDataForTest.build2DTargetMesh_3();
3065 f1=MEDCouplingFieldDouble.New(ON_CELLS,LINEAR_TIME);
3067 array=DataArrayDouble.New();
3068 arr=[7.,107.,8.,108.,9.,109.,10.,110.,11.,111.,12.,112.,13.,113.,14.,114.,15.,115.,16.,116.]
3069 array.setValues(arr,mesh1.getNumberOfCells(),2);
3072 f1.applyLin(2.,3.,0);
3073 expected1=[17.,107.,19.,108.,21.,109.,23.,110.,25.,111.,27.,112.,29.,113.,31.,114.,33.,115.,35.,116.]
3074 for i in xrange(20):
3075 self.assertAlmostEqual(expected1[i],f1.getIJ(0,i),9);
3078 arr2=[2.,102.,3.,103.,4.,104.,5.,105.,6.,106.,7.,107.,8.,108.,9.,109.,10.,110.,11.,111.]
3079 array=DataArrayDouble.New();
3080 array.setValues(arr2,mesh1.getNumberOfCells(),2);
3081 f1.setEndArray(array);
3083 f1.applyLin(4.,5.,1);
3085 expected2=[17.,433.,19.,437.,21.,441.,23.,445.,25.,449.,27.,453.,29.,457.,31.,461.,33.,465.,35.,469.]
3086 for i in xrange(20):
3087 self.assertAlmostEqual(expected2[i],f1.getIJ(0,i),9);
3089 expected3=[2.,413.,3.,417.,4.,421.,5.,425.,6.,429.,7.,433.,8.,437.,9.,441.,10.,445.,11.,449.]
3090 for i in xrange(20):
3091 self.assertAlmostEqual(expected3[i],f1.getEndArray().getIJ(0,i),9);
3096 def testGetIdsInRange1(self):
3097 mesh1=MEDCouplingDataForTest.build2DTargetMesh_3();
3098 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
3099 f1.setTime(2.3,5,6);
3101 array=DataArrayDouble.New();
3102 arr1=[2.,8.,6.,5.,11.,7.,9.,3.,10.,4.]
3103 array.setValues(arr1,mesh1.getNumberOfCells(),1);
3106 f1.checkCoherency();
3107 da=f1.getIdsInRange(2.9,7.1);
3108 self.failUnlessEqual(5,da.getNbOfElems());
3109 expected1=[2,3,5,7,9]
3110 self.failUnlessEqual(expected1,list(da.getValues()));
3111 da=f1.getIdsInRange(8.,12.);
3112 self.failUnlessEqual(4,da.getNbOfElems());
3114 self.failUnlessEqual(expected2,list(da.getValues()));
3118 def testBuildSubPart1(self):
3119 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
3120 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
3121 f1.setTime(2.3,5,6);
3123 array=DataArrayDouble.New();
3124 arr1=[3.,103.,4.,104.,5.,105.,6.,106.,7.,107.]
3125 array.setValues(arr1,mesh1.getNumberOfCells(),2);
3131 self.failUnlessEqual(3,f2.getNumberOfTuples());
3132 self.failUnlessEqual(2,f2.getNumberOfComponents());
3133 expected1=[5.,105.,4.,104.,7.,107.]
3135 self.assertAlmostEqual(f2.getIJ(0,i),expected1[i],12);
3137 self.failUnlessEqual(3,f2.getMesh().getNumberOfCells());
3138 self.failUnlessEqual(6,f2.getMesh().getNumberOfNodes());
3139 self.failUnlessEqual(2,f2.getMesh().getSpaceDimension());
3140 self.failUnlessEqual(2,f2.getMesh().getMeshDimension());
3142 self.failUnlessEqual(13,m2C.getMeshLength());
3143 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]
3144 for i in xrange(12):
3145 self.assertAlmostEqual(expected2[i],m2C.getCoords().getIJ(0,i),12);
3147 expected3=[3,2,3,1,3,0,2,1,4,4,5,3,2]
3148 self.failUnlessEqual(expected3,list(m2C.getNodalConnectivity().getValues()));
3149 expected4=[0,4,8,13]
3150 self.failUnlessEqual(expected4,list(m2C.getNodalConnectivityIndex().getValues()));
3151 # Test with field on nodes.
3152 f1=MEDCouplingFieldDouble.New(ON_NODES,ONE_TIME);
3153 f1.setTime(2.3,5,6);
3155 array=DataArrayDouble.New();
3156 arr2=[3.,103.,4.,104.,5.,105.,6.,106.,7.,107.,8.,108.,9.,109.,10.,110.,11.,111.]
3157 array.setValues(arr2,mesh1.getNumberOfNodes(),2);
3160 f2=f1.buildSubPart(part2);
3161 self.failUnlessEqual(4,f2.getNumberOfTuples());
3162 self.failUnlessEqual(2,f2.getNumberOfComponents());
3163 expected5=[4.,104.,5.,105.,7.,107.,8.,108.]
3165 self.assertAlmostEqual(f2.getIJ(0,i),expected5[i],12);
3167 self.failUnlessEqual(2,f2.getMesh().getNumberOfCells());
3168 self.failUnlessEqual(4,f2.getMesh().getNumberOfNodes());
3169 self.failUnlessEqual(2,f2.getMesh().getSpaceDimension());
3170 self.failUnlessEqual(2,f2.getMesh().getMeshDimension());
3172 self.failUnlessEqual(8,m2C.getMeshLength());
3173 for i in xrange(8):#8 is not an error
3174 self.assertAlmostEqual(expected2[i],m2C.getCoords().getIJ(0,i),12);
3176 self.failUnlessEqual(expected3[:4],list(m2C.getNodalConnectivity().getValues())[4:]);
3177 self.failUnlessEqual(expected3[4:8],list(m2C.getNodalConnectivity().getValues())[:4]);
3178 self.failUnlessEqual(expected4[:3],list(m2C.getNodalConnectivityIndex().getValues()));
3179 #idem previous because nodes of cell#4 are not fully present in part3
3181 arrr=DataArrayInt.New();
3182 arrr.setValues(part3,2,1);
3183 f2=f1.buildSubPart(arrr);
3184 self.failUnlessEqual(4,f2.getNumberOfTuples());
3185 self.failUnlessEqual(2,f2.getNumberOfComponents());
3187 self.assertAlmostEqual(f2.getIJ(0,i),expected5[i],12);
3189 self.failUnlessEqual(2,f2.getMesh().getNumberOfCells());
3190 self.failUnlessEqual(4,f2.getMesh().getNumberOfNodes());
3191 self.failUnlessEqual(2,f2.getMesh().getSpaceDimension());
3192 self.failUnlessEqual(2,f2.getMesh().getMeshDimension());
3194 self.failUnlessEqual(8,m2C.getMeshLength());
3195 for i in xrange(8):#8 is not an error
3196 self.assertAlmostEqual(expected2[i],m2C.getCoords().getIJ(0,i),12);
3198 self.failUnlessEqual(expected3[:4],list(m2C.getNodalConnectivity().getValues())[4:8]);
3199 self.failUnlessEqual(expected3[4:8],list(m2C.getNodalConnectivity().getValues())[:4]);
3200 self.failUnlessEqual(expected4[:3],list(m2C.getNodalConnectivityIndex().getValues()));
3203 f2=f1.buildSubPart(part4);
3204 self.failUnlessEqual(6,f2.getNumberOfTuples());
3205 self.failUnlessEqual(2,f2.getNumberOfComponents());
3206 expected6=[4.,104.,5.,105.,7.,107.,8.,108.,10.,110.,11.,111.]
3207 for i in xrange(12):
3208 self.assertAlmostEqual(f2.getIJ(0,i),expected6[i],12);
3210 self.failUnlessEqual(3,f2.getMesh().getNumberOfCells());
3211 self.failUnlessEqual(6,f2.getMesh().getNumberOfNodes());
3212 self.failUnlessEqual(2,f2.getMesh().getSpaceDimension());
3213 self.failUnlessEqual(2,f2.getMesh().getMeshDimension());
3215 self.failUnlessEqual(13,m2C.getMeshLength());
3216 for i in xrange(12):
3217 self.assertAlmostEqual(expected2[i],m2C.getCoords().getIJ(0,i),12);
3219 self.failUnlessEqual(expected3[0:4],list(m2C.getNodalConnectivity().getValues())[4:8]);
3220 self.failUnlessEqual(expected3[4:8],list(m2C.getNodalConnectivity().getValues())[0:4]);
3221 self.failUnlessEqual(expected3[8:13],list(m2C.getNodalConnectivity().getValues())[8:13]);
3222 self.failUnlessEqual(expected4,list(m2C.getNodalConnectivityIndex().getValues()));
3225 def testDoublyContractedProduct1(self):
3226 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
3227 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
3229 array=DataArrayDouble.New();
3230 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]
3231 array.setValues(arr1,mesh1.getNumberOfCells(),6);
3233 f1.checkCoherency();
3235 f2=f1.doublyContractedProduct();
3236 f2.checkCoherency();
3237 self.assertEqual(1,f2.getNumberOfComponents());
3238 self.assertEqual(5,f2.getNumberOfTuples());
3240 self.assertAlmostEqual(3906.56,f2.getIJ(i,0),9);
3245 def testDeterminant1(self):
3246 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
3247 f1=MEDCouplingFieldDouble.New(ON_CELLS,CONST_ON_TIME_INTERVAL);
3248 f1.setTime(2.3,5,6);
3249 f1.setEndTime(3.8,7,3);
3251 array=DataArrayDouble.New();
3252 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]
3253 array.setValues(arr1,mesh1.getNumberOfCells(),4);
3256 f1.checkCoherency();
3257 f2=f1.determinant();
3258 f2.checkCoherency();
3259 self.assertEqual(CONST_ON_TIME_INTERVAL,f2.getTimeDiscretization());
3260 self.assertEqual(1,f2.getNumberOfComponents());
3261 self.assertEqual(5,f2.getNumberOfValues());
3263 self.assertAlmostEqual(-2.42,f2.getIJ(i,0),13);
3265 #6 components multi arrays with end array not defined
3266 f1=MEDCouplingFieldDouble.New(ON_NODES,LINEAR_TIME);
3267 f1.setTime(2.3,5,6);
3268 f1.setEndTime(3.8,7,3);
3270 array=DataArrayDouble.New();
3271 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,
3272 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]
3273 array.setValues(arr2,mesh1.getNumberOfNodes(),6);
3275 self.assertRaises(InterpKernelException,f1.checkCoherency);#no end array specified !
3277 f2=f1.determinant();
3278 self.assertEqual(LINEAR_TIME,f2.getTimeDiscretization());
3279 self.assertEqual(1,f2.getArray().getNumberOfComponents());
3280 self.assertEqual(9,f2.getNumberOfTuples());
3282 self.assertAlmostEqual(137.335,f2.getIJ(i,0),10);
3284 #6 components multi arrays with end array defined
3285 array=DataArrayDouble.New();
3286 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,
3287 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]
3288 array.setValues(arr3,mesh1.getNumberOfNodes(),6);
3289 f1.setEndArray(array);
3290 f1.checkCoherency();
3291 f2=f1.determinant();
3292 f2.checkCoherency();
3293 self.assertEqual(LINEAR_TIME,f2.getTimeDiscretization());
3294 self.assertEqual(1,f2.getNumberOfComponents());
3295 self.assertEqual(9,f2.getNumberOfTuples());
3296 time2,it,order=f2.getTime()
3297 self.assertAlmostEqual(2.3,time2,12);
3298 self.assertEqual(5,it);
3299 self.assertEqual(6,order);
3300 time2,it,order=f2.getEndTime()
3301 self.assertAlmostEqual(3.8,time2,12);
3302 self.assertEqual(7,it);
3303 self.assertEqual(3,order);
3305 self.assertAlmostEqual(137.335,f2.getIJ(i,0),10);
3306 self.assertAlmostEqual(1289.685,f2.getEndArray().getIJ(i,0),9);
3309 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
3310 f1.setTime(7.8,10,2);
3312 array=DataArrayDouble.New();
3313 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]
3314 array.setValues(arr4,mesh1.getNumberOfCells(),9);
3317 f1.checkCoherency();
3318 f2=f1.determinant();
3319 f2.checkCoherency();
3320 self.assertEqual(ONE_TIME,f2.getTimeDiscretization());
3321 self.assertEqual(1,f2.getNumberOfComponents());
3322 self.assertEqual(5,f2.getNumberOfTuples());
3323 time2,it,order=f2.getTime()
3324 self.assertAlmostEqual(7.8,time2,12);
3325 self.assertEqual(10,it);
3326 self.assertEqual(2,order);
3328 self.assertAlmostEqual(3.267,f2.getIJ(i,0),13);
3332 def testEigenValues1(self):
3333 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
3334 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
3336 array=DataArrayDouble.New();
3337 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]
3338 array.setValues(arr1,mesh1.getNumberOfCells(),6);
3340 f1.checkCoherency();
3342 f2=f1.eigenValues();
3343 f2.checkCoherency();
3344 self.assertEqual(3,f2.getNumberOfComponents());
3345 self.assertEqual(5,f2.getNumberOfTuples());
3346 expected1=[13.638813677891717,-4.502313844635971,-2.2364998332557486]
3348 self.assertAlmostEqual(expected1[0],f2.getIJ(i,0),13);
3349 self.assertAlmostEqual(expected1[1],f2.getIJ(i,1),13);
3350 self.assertAlmostEqual(expected1[2],f2.getIJ(i,2),13);
3354 def testEigenVectors1(self):
3355 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
3356 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
3358 array=DataArrayDouble.New();
3359 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]
3360 array.setValues(arr1,mesh1.getNumberOfCells(),6);
3362 f1.checkCoherency();
3364 f2=f1.eigenVectors();
3365 f2.checkCoherency();
3366 self.assertEqual(9,f2.getNumberOfComponents());
3367 self.assertEqual(5,f2.getNumberOfTuples());
3368 expected1=[0.5424262364180696, 0.5351201064614425, 0.6476266283176001,#eigenvect 0
3369 0.7381111277307373, 0.06458838384003074, -0.6715804522117897,#eigenvect 1
3370 -0.4012053603397987, 0.8423032781211455, -0.3599436712889738#eigenvect 2
3373 self.assertAlmostEqual(expected1[0],f2.getIJ(i,0),13);
3374 self.assertAlmostEqual(expected1[1],f2.getIJ(i,1),13);
3375 self.assertAlmostEqual(expected1[2],f2.getIJ(i,2),13);
3376 self.assertAlmostEqual(expected1[3],f2.getIJ(i,3),13);
3377 self.assertAlmostEqual(expected1[4],f2.getIJ(i,4),13);
3378 self.assertAlmostEqual(expected1[5],f2.getIJ(i,5),13);
3379 self.assertAlmostEqual(expected1[6],f2.getIJ(i,6),13);
3380 self.assertAlmostEqual(expected1[7],f2.getIJ(i,7),13);
3381 self.assertAlmostEqual(expected1[8],f2.getIJ(i,8),13);
3386 def testInverse1(self):
3387 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
3388 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
3390 array=DataArrayDouble.New();
3391 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]
3392 array.setValues(arr1,mesh1.getNumberOfCells(),9);
3394 f1.checkCoherency();
3397 f2.checkCoherency();
3398 self.assertEqual(9,f2.getNumberOfComponents());
3399 self.assertEqual(5,f2.getNumberOfTuples());
3400 expected1=[-2.6538108356290113, 2.855831037649208, -1.1111111111111067, 3.461891643709813, -4.775022956841121, 2.2222222222222143, -1.1111111111111054, 2.222222222222214, -1.1111111111111072]
3402 self.assertAlmostEqual(expected1[0],f2.getIJ(i,0),13);
3403 self.assertAlmostEqual(expected1[1],f2.getIJ(i,1),13);
3404 self.assertAlmostEqual(expected1[2],f2.getIJ(i,2),13);
3405 self.assertAlmostEqual(expected1[3],f2.getIJ(i,3),13);
3406 self.assertAlmostEqual(expected1[4],f2.getIJ(i,4),13);
3407 self.assertAlmostEqual(expected1[5],f2.getIJ(i,5),13);
3408 self.assertAlmostEqual(expected1[6],f2.getIJ(i,6),13);
3409 self.assertAlmostEqual(expected1[7],f2.getIJ(i,7),13);
3410 self.assertAlmostEqual(expected1[8],f2.getIJ(i,8),13);
3413 array=DataArrayDouble.New();
3414 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]
3415 array.setValues(arr3,mesh1.getNumberOfCells(),6);
3417 f1.checkCoherency();
3420 f2.checkCoherency();
3421 self.assertEqual(6,f2.getNumberOfComponents());
3422 self.assertEqual(5,f2.getNumberOfTuples());
3423 expected3=[-0.3617705098531818, -0.8678630828458127, -0.026843764174972983, 0.5539957431465833, 0.13133439560823013, -0.05301294502145887]
3425 self.assertAlmostEqual(expected3[0],f2.getIJ(i,0),13);
3426 self.assertAlmostEqual(expected3[1],f2.getIJ(i,1),13);
3427 self.assertAlmostEqual(expected3[2],f2.getIJ(i,2),13);
3428 self.assertAlmostEqual(expected3[3],f2.getIJ(i,3),13);
3429 self.assertAlmostEqual(expected3[4],f2.getIJ(i,4),13);
3430 self.assertAlmostEqual(expected3[5],f2.getIJ(i,5),13);
3433 array=DataArrayDouble.New();
3434 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]
3435 array.setValues(arr2,mesh1.getNumberOfCells(),4);
3437 f1.checkCoherency();
3440 f2.checkCoherency();
3441 self.assertEqual(4,f2.getNumberOfComponents());
3442 self.assertEqual(5,f2.getNumberOfTuples());
3443 expected2=[-1.8595041322314059, 0.9504132231404963, 1.404958677685951, -0.49586776859504156]
3445 self.assertAlmostEqual(expected2[0],f2.getIJ(i,0),13);
3446 self.assertAlmostEqual(expected2[1],f2.getIJ(i,1),13);
3447 self.assertAlmostEqual(expected2[2],f2.getIJ(i,2),13);
3448 self.assertAlmostEqual(expected2[3],f2.getIJ(i,3),13);
3453 def testTrace1(self):
3454 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
3455 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
3457 array=DataArrayDouble.New();
3458 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]
3459 array.setValues(arr1,mesh1.getNumberOfCells(),9);
3461 f1.checkCoherency();
3464 f2.checkCoherency();
3465 self.assertEqual(1,f2.getNumberOfComponents());
3466 self.assertEqual(5,f2.getNumberOfTuples());
3468 self.assertAlmostEqual(15.9,f2.getIJ(i,0),13);
3471 array=DataArrayDouble.New();
3472 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]
3473 array.setValues(arr3,mesh1.getNumberOfCells(),6);
3475 f1.checkCoherency();
3478 f2.checkCoherency();
3479 self.assertEqual(1,f2.getNumberOfComponents());
3480 self.assertEqual(5,f2.getNumberOfTuples());
3482 self.assertAlmostEqual(25.8,f2.getIJ(i,0),13);
3485 array=DataArrayDouble.New();
3486 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]
3487 array.setValues(arr2,mesh1.getNumberOfCells(),4);
3489 f1.checkCoherency();
3492 f2.checkCoherency();
3493 self.assertEqual(1,f2.getNumberOfComponents());
3494 self.assertEqual(5,f2.getNumberOfTuples());
3496 self.assertAlmostEqual(5.7,f2.getIJ(i,0),13);
3501 def testDeviator1(self):
3502 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
3503 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
3505 array=DataArrayDouble.New();
3506 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]
3507 array.setValues(arr1,mesh1.getNumberOfCells(),6);
3509 f1.checkCoherency();
3512 f2.checkCoherency();
3513 self.assertEqual(6,f2.getNumberOfComponents());
3514 self.assertEqual(5,f2.getNumberOfTuples());
3515 expected1=[-1.1,0.,1.1,4.5,5.6,6.7]
3517 self.assertAlmostEqual(expected1[0],f2.getIJ(i,0),13);
3518 self.assertAlmostEqual(expected1[1],f2.getIJ(i,1),13);
3519 self.assertAlmostEqual(expected1[2],f2.getIJ(i,2),13);
3520 self.assertAlmostEqual(expected1[3],f2.getIJ(i,3),13);
3521 self.assertAlmostEqual(expected1[4],f2.getIJ(i,4),13);
3522 self.assertAlmostEqual(expected1[5],f2.getIJ(i,5),13);
3527 def testMagnitude1(self):
3528 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
3529 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
3531 array=DataArrayDouble.New();
3532 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]
3533 array.setValues(arr1,mesh1.getNumberOfCells(),5);
3535 f1.checkCoherency();
3538 f2.checkCoherency();
3539 self.assertEqual(1,f2.getNumberOfComponents());
3540 self.assertEqual(5,f2.getNumberOfTuples());
3542 self.assertAlmostEqual(8.3606219864313918,f2.getIJ(i,0),13);
3547 def testMaxPerTuple1(self):
3548 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
3549 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
3551 array=DataArrayDouble.New();
3552 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]
3553 array.setValues(arr1,mesh1.getNumberOfCells(),5);
3555 f1.checkCoherency();
3557 f2=f1.maxPerTuple();
3558 f2.checkCoherency();
3559 self.assertEqual(1,f2.getNumberOfComponents());
3560 self.assertEqual(5,f2.getNumberOfTuples());
3562 self.assertAlmostEqual(5.6,f2.getIJ(i,0),13);
3565 d2,d2I=array.maxPerTupleWithCompoId()
3566 self.assertEqual(1,d2.getNumberOfComponents());
3567 self.assertEqual(5,d2.getNumberOfTuples());
3569 self.assertAlmostEqual(5.6,d2.getIJ(i,0),13);
3571 self.assertTrue(d2I.isEqual(DataArrayInt([4,3,2,0,1])))
3574 def testChangeNbOfComponents(self):
3575 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
3576 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
3578 array=DataArrayDouble.New();
3579 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]
3580 array.setValues(arr1,mesh1.getNumberOfCells(),5);
3582 f1.checkCoherency();
3584 f1.changeNbOfComponents(3,7.77);
3585 f1.checkCoherency();
3586 self.assertEqual(3,f1.getNumberOfComponents());
3587 self.assertEqual(5,f1.getNumberOfTuples());
3588 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]
3589 for i in xrange(15):
3590 self.assertAlmostEqual(expected1[i],f1.getIJ(0,i),13);
3592 f1.changeNbOfComponents(4,7.77);
3593 f1.checkCoherency();
3594 self.assertEqual(4,f1.getNumberOfComponents());
3595 self.assertEqual(5,f1.getNumberOfTuples());
3596 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]
3597 for i in xrange(20):
3598 self.assertAlmostEqual(expected2[i],f1.getIJ(0,i),13);
3603 def testSortPerTuple1(self):
3604 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
3605 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
3607 array=DataArrayDouble.New();
3608 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]
3609 array.setValues(arr1,mesh1.getNumberOfCells(),5);
3611 f1.checkCoherency();
3613 f1.sortPerTuple(True);
3614 f1.checkCoherency();
3615 self.assertEqual(5,f1.getNumberOfComponents());
3616 self.assertEqual(5,f1.getNumberOfTuples());
3618 self.assertAlmostEqual(arr1[0],f1.getIJ(i,0),13);
3619 self.assertAlmostEqual(arr1[1],f1.getIJ(i,1),13);
3620 self.assertAlmostEqual(arr1[2],f1.getIJ(i,2),13);
3621 self.assertAlmostEqual(arr1[3],f1.getIJ(i,3),13);
3622 self.assertAlmostEqual(arr1[4],f1.getIJ(i,4),13);
3625 f1.sortPerTuple(False);
3626 f1.checkCoherency();
3627 self.assertEqual(5,f1.getNumberOfComponents());
3628 self.assertEqual(5,f1.getNumberOfTuples());
3630 self.assertAlmostEqual(arr1[4],f1.getIJ(i,0),13);
3631 self.assertAlmostEqual(arr1[3],f1.getIJ(i,1),13);
3632 self.assertAlmostEqual(arr1[2],f1.getIJ(i,2),13);
3633 self.assertAlmostEqual(arr1[1],f1.getIJ(i,3),13);
3634 self.assertAlmostEqual(arr1[0],f1.getIJ(i,4),13);
3639 def testIsEqualWithoutConsideringStr1(self):
3640 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
3641 mesh2=MEDCouplingDataForTest.build2DTargetMesh_1();
3643 self.assertTrue(mesh1.isEqual(mesh2,1e-12));
3644 self.assertTrue(mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
3645 mesh2.setName("rr");
3646 self.assertTrue(not mesh1.isEqual(mesh2,1e-12));
3647 self.assertTrue(mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
3648 da1,da2=mesh1.checkGeoEquivalWith(mesh2,2,1e-12);
3649 self.assertRaises(InterpKernelException,mesh1.checkGeoEquivalWith,mesh2,0,1e-12);
3651 self.assertTrue(mesh1.isEqual(mesh2,1e-12));
3652 self.assertTrue(mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
3653 mesh2.getCoords().setInfoOnComponent(0,"tty");
3654 self.assertTrue(not mesh1.isEqual(mesh2,1e-12));
3655 self.assertTrue(mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
3656 mesh2.getCoords().setInfoOnComponent(0,"");
3657 self.assertTrue(mesh1.isEqual(mesh2,1e-12));
3658 self.assertTrue(mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
3659 mesh2.getCoords().setInfoOnComponent(1,"tty");
3660 self.assertTrue(not mesh1.isEqual(mesh2,1e-12));
3661 self.assertTrue(mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
3662 mesh2.getCoords().setInfoOnComponent(1,"");
3663 self.assertTrue(mesh1.isEqual(mesh2,1e-12));
3664 self.assertTrue(mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
3665 tmp=mesh2.getCoords().getIJ(0,3);
3666 mesh2.getCoords().setIJ(0,3,9999.);
3667 self.assertTrue(not mesh1.isEqual(mesh2,1e-12));
3668 self.assertTrue(not mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
3669 mesh2.getCoords().setIJ(0,3,tmp);
3670 self.assertTrue(mesh1.isEqual(mesh2,1e-12));
3671 self.assertTrue(mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
3672 tmp2=mesh2.getNodalConnectivity().getIJ(0,4);
3673 mesh2.getNodalConnectivity().setIJ(0,4,0);
3674 self.assertTrue(not mesh1.isEqual(mesh2,1e-12));
3675 self.assertTrue(not mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
3676 mesh2.getNodalConnectivity().setIJ(0,4,tmp2);
3677 self.assertTrue(mesh1.isEqual(mesh2,1e-12));
3678 self.assertTrue(mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
3680 f1=mesh1.getMeasureField(True);
3681 f2=mesh2.getMeasureField(True);
3682 self.assertTrue(f1.isEqual(f2,1e-12,1e-12));
3683 self.assertTrue(f1.isEqualWithoutConsideringStr(f2,1e-12,1e-12));
3684 f2.setName("ftest");
3685 self.assertTrue(not f1.isEqual(f2,1e-12,1e-12));
3686 self.assertTrue(f1.isEqualWithoutConsideringStr(f2,1e-12,1e-12));
3687 f1.setName("ftest");
3688 self.assertTrue(f1.isEqual(f2,1e-12,1e-12));
3689 self.assertTrue(f1.isEqualWithoutConsideringStr(f2,1e-12,1e-12));
3691 f2.getArray().setInfoOnComponent(0,"eee");
3692 self.assertTrue(not f1.isEqual(f2,1e-12,1e-12));
3693 self.assertTrue(f1.isEqualWithoutConsideringStr(f2,1e-12,1e-12));
3694 f2.getArray().setInfoOnComponent(0,"");
3695 self.assertTrue(f1.isEqual(f2,1e-12,1e-12));
3696 self.assertTrue(f1.isEqualWithoutConsideringStr(f2,1e-12,1e-12));
3698 f2.getArray().setIJ(1,0,0.123);
3699 self.assertTrue(not f1.isEqual(f2,1e-12,1e-12));
3700 self.assertTrue(not f1.isEqualWithoutConsideringStr(f2,1e-12,1e-12));
3701 f2.getArray().setIJ(1,0,0.125);
3702 self.assertTrue(f1.isEqual(f2,1e-12,1e-12));
3703 self.assertTrue(f1.isEqualWithoutConsideringStr(f2,1e-12,1e-12));
3707 def testGetNodeIdsOfCell1(self):
3708 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
3709 li=mesh1.getNodeIdsOfCell(1)
3711 self.assertEqual(expected1,list(li))
3712 li=mesh1.getCoordinatesOfNode(4)
3713 self.assertEqual(2,len(li))
3714 self.assertAlmostEqual(0.2,li[0],13);
3715 self.assertAlmostEqual(0.2,li[1],13);
3716 li=mesh1.getCoords().getValuesAsTuple()
3717 self.assertEqual(9,len(li))
3718 li2=mesh1.getNodalConnectivityIndex().getValuesAsTuple()
3719 self.assertEqual(6,len(li2))
3722 def testGetEdgeRatioField1(self):
3723 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
3724 m1.setTime(3.4,5,6); m1.setTimeUnit("us");
3725 f1=m1.getEdgeRatioField();
3726 self.assertAlmostEqual(3.4,f1.getTime()[0],12) ; self.assertEqual(5,f1.getTime()[1]) ; self.assertEqual(6,f1.getTime()[2])
3727 self.assertEqual("us",f1.getTimeUnit())
3728 self.assertEqual(m1.getNumberOfCells(),f1.getNumberOfTuples());
3729 self.assertEqual(5,f1.getNumberOfTuples());
3730 self.assertEqual(1,f1.getNumberOfComponents());
3731 expected1=[1.,1.4142135623730951, 1.4142135623730951,1.,1.]
3733 self.assertAlmostEqual(expected1[i],f1.getIJ(i,0),14);
3736 m1=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
3737 f1=m1.getEdgeRatioField();
3738 self.assertEqual(m1.getNumberOfCells(),f1.getNumberOfTuples());
3739 self.assertEqual(5,f1.getNumberOfTuples());
3740 self.assertEqual(1,f1.getNumberOfComponents());
3741 expected2=[1.4142135623730951, 1.7320508075688772, 1.7320508075688772, 1.4142135623730951, 1.4142135623730951]
3743 self.assertAlmostEqual(expected2[i],f1.getIJ(i,0),14);
3747 def testFillFromAnalytic3(self):
3748 m=MEDCouplingDataForTest.build2DTargetMesh_1()
3749 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME)
3750 self.assertRaises(InterpKernelException,f1.fillFromAnalytic,1,"y+x");
3752 f1.setName("myField");
3753 f1.fillFromAnalytic(1,"y+x");
3754 f1.checkCoherency();
3755 self.assertEqual(f1.getName(),"myField");
3756 self.assertEqual(f1.getTypeOfField(),ON_CELLS);
3757 self.assertEqual(f1.getTimeDiscretization(),ONE_TIME);
3758 self.assertEqual(1,f1.getNumberOfComponents());
3759 self.assertEqual(5,f1.getNumberOfTuples());
3760 values1=[-0.1,0.23333333333333336,0.56666666666666665,0.4,0.9]
3761 tmp=f1.getArray().getValues();
3762 self.assertEqual(len(values1),len(tmp))
3763 for i in xrange(len(values1)):
3764 self.assertTrue(abs(values1[i]-tmp[i])<1.e-12);
3767 f1=MEDCouplingFieldDouble.New(ON_NODES,CONST_ON_TIME_INTERVAL)
3769 f1.fillFromAnalytic(1,"y+2*x");
3770 f1.setEndTime(1.2,3,4);
3771 f1.checkCoherency();
3772 self.assertEqual(f1.getTypeOfField(),ON_NODES);
3773 self.assertEqual(f1.getTimeDiscretization(),CONST_ON_TIME_INTERVAL);
3774 self.assertEqual(1,f1.getNumberOfComponents());
3775 self.assertEqual(9,f1.getNumberOfTuples());
3776 values2=[-0.9,0.1,1.1,-0.4,0.6,1.6,0.1,1.1,2.1]
3777 tmp=f1.getArray().getValues();
3778 self.assertEqual(len(values2),len(tmp))
3779 for i in xrange(len(values2)):
3780 self.assertTrue(abs(values2[i]-tmp[i])<1.e-12);
3782 f1=MEDCouplingFieldDouble.New(ON_NODES,LINEAR_TIME);
3784 f1.fillFromAnalytic(1,"2.*x+y");
3785 f1.setEndTime(1.2,3,4);
3786 f1.checkCoherency();
3787 self.assertEqual(f1.getTypeOfField(),ON_NODES);
3788 self.assertEqual(f1.getTimeDiscretization(),LINEAR_TIME);
3789 self.assertEqual(1,f1.getNumberOfComponents());
3790 self.assertEqual(9,f1.getNumberOfTuples());
3791 tmp=f1.getArray().getValues();
3792 values2Bis=[-0.9,0.1,1.1,-0.4,0.6,1.6,0.1,1.1,2.1]
3793 self.assertEqual(len(values2Bis),len(tmp))
3794 for i in xrange(len(values2Bis)):
3795 self.assertTrue(abs(values2Bis[i]-tmp[i])<1.e-12);
3797 tmp=f1.getEndArray().getValues();
3798 self.assertEqual(len(values2Bis),len(tmp))
3799 for i in xrange(len(values2Bis)):
3800 self.assertTrue(abs(values2Bis[i]-tmp[i])<1.e-12);
3803 f1=MEDCouplingFieldDouble.New(ON_NODES,ONE_TIME);
3805 f1.fillFromAnalytic(2,"(x+y)*IVec+2*(x+y)*JVec");
3806 f1.checkCoherency();
3807 self.assertEqual(f1.getTypeOfField(),ON_NODES);
3808 self.assertEqual(f1.getTimeDiscretization(),ONE_TIME);
3809 self.assertEqual(2,f1.getNumberOfComponents());
3810 self.assertEqual(9,f1.getNumberOfTuples());
3811 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]
3812 tmp=f1.getArray().getValues();
3813 self.assertEqual(len(values3),len(tmp))
3814 for i in xrange(len(values3)):
3815 self.assertTrue(abs(values3[i]-tmp[i])<1.e-12);
3817 values4=f1.accumulate();
3818 self.assertTrue(abs(3.6-values4[0])<1.e-12);
3819 self.assertTrue(abs(7.2-values4[1])<1.e-12);
3820 values4=f1.integral(True);
3821 self.assertTrue(abs(0.5-values4[0])<1.e-12);
3822 self.assertTrue(abs(1.-values4[1])<1.e-12);
3824 f1=MEDCouplingFieldDouble.New(ON_NODES,NO_TIME);
3826 self.assertRaises(InterpKernelException,f1.fillFromAnalytic,1,"1./(x-0.2)");
3829 def testFieldDoubleOpEqual1(self):
3830 m=MEDCouplingDataForTest.build2DTargetMesh_1();
3831 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
3832 self.assertRaises(InterpKernelException,f1.assign,0.07);
3835 f1.checkCoherency();
3836 self.assertEqual(1,f1.getNumberOfComponents());
3837 self.assertEqual(5,f1.getNumberOfTuples());
3839 self.assertAlmostEqual(0.07,f1.getIJ(i,0),16);
3842 f1.checkCoherency();
3843 self.assertEqual(1,f1.getNumberOfComponents());
3844 self.assertEqual(5,f1.getNumberOfTuples());
3846 self.assertAlmostEqual(0.09,f1.getIJ(i,0),16);
3849 f1=MEDCouplingFieldDouble.New(ON_NODES,LINEAR_TIME);
3850 f1.setEndTime(4.5,2,3);
3853 f1.checkCoherency();
3854 self.assertEqual(1,f1.getNumberOfComponents());
3855 self.assertEqual(9,f1.getNumberOfTuples());
3857 self.assertAlmostEqual(0.08,f1.getIJ(i,0),16);
3859 self.assertEqual(1,f1.getEndArray().getNumberOfComponents());
3860 self.assertEqual(9,f1.getEndArray().getNumberOfTuples());
3862 self.assertAlmostEqual(0.08,f1.getEndArray().getIJ(i,0),16);
3866 def testAreaBary3D2(self):
3867 coordsForHexa8=[-75.45749305371, 180.95495078401, 39.515472018008,
3868 -9.755591679144, 23.394927935279, 5.108794294848,
3869 14.337630157832, 61.705351002702, 160.42422501908,
3870 -27.273893776752, 167.567731083961, 192.830034145464,
3871 99.857193154796,264.499264735586,-8.287335493412,
3872 144.939882761126,156.38626563134,-31.896173894226,
3873 161.34096835726,182.4654895809,73.832387065572,
3874 132.680430393685,255.37973247196,96.15235602819];
3875 volHexa8=3258520.29637466;
3876 baryHexa8=[43.925705821778, 155.31893955289, 65.874418109644]
3878 coordsForPenta6=[-68.199829618726,178.938498373416,62.608505919588,
3879 8.461744647847,76.653979804423,165.00018874933,
3880 -27.273893776752,167.567731083961,192.830034145464,
3881 106.586501038965,262.629609408327,13.124533008813,
3882 155.465082847275,197.414118382622,78.408350795821,
3883 132.680430393685,255.37973247196,96.15235602819];
3884 volPenta6=944849.868507338;
3885 baryPenta6=[39.631002313543,182.692711783428,106.98540473964]
3887 coordsForPyra5=[132.680430393685,255.37973247196,96.15235602819,
3888 -27.273893776752,167.567731083961,192.830034145464,
3889 8.461744647847,76.653979804423,165.00018874933,
3890 155.465082847275,197.414118382622,78.408350795821,
3891 -68.199829618726,178.938498373416,62.608505919588];
3892 volPyra5=756943.92980254;
3893 baryPyra5=[29.204294116618,172.540129749156,118.01035951483]
3894 mesh=MEDCouplingUMesh.New("Bary3D2",3);
3895 coo=DataArrayDouble.New();
3896 tmp=coordsForHexa8+coordsForPenta6+coordsForPyra5
3897 coo.setValues(tmp,19,3);
3898 mesh.setCoords(coo);
3900 tmpConn=[0,1,2,3,4,5,6,7]
3901 mesh.allocateCells(3);
3902 self.assertRaises(InterpKernelException,mesh.insertNextCell,NORM_HEXA8,9,tmpConn[0:8])
3903 mesh.insertNextCell(NORM_HEXA8,tmpConn[0:8])
3904 mesh.insertNextCell(NORM_PENTA6,6,[i+8 for i in tmpConn])
3905 mesh.insertNextCell(NORM_PYRA5,5,[i+14 for i in tmpConn])
3906 mesh.finishInsertingCells();
3907 mesh.checkCoherency();
3908 mesh.mergeNodes(1e-7)
3909 self.assertEqual(12,mesh.getNumberOfNodes());
3910 vols=mesh.getMeasureField(True);
3911 self.assertEqual(3,vols.getNumberOfTuples());
3912 self.assertEqual(1,vols.getNumberOfComponents());
3913 self.assertAlmostEqual(volHexa8,vols.getIJ(0,0),6);
3914 self.assertAlmostEqual(volPenta6,vols.getIJ(1,0),7);
3915 self.assertAlmostEqual(volPyra5,vols.getIJ(2,0),7);
3916 bary=mesh.getBarycenterAndOwner();
3917 self.assertEqual(3,bary.getNumberOfTuples());
3918 self.assertEqual(3,bary.getNumberOfComponents());
3919 self.assertAlmostEqual(baryHexa8[0],bary.getIJ(0,0),11);
3920 self.assertAlmostEqual(baryHexa8[1],bary.getIJ(0,1),11);
3921 self.assertAlmostEqual(baryHexa8[2],bary.getIJ(0,2),11);
3922 self.assertAlmostEqual(baryPenta6[0],bary.getIJ(1,0),11);
3923 self.assertAlmostEqual(baryPenta6[1],bary.getIJ(1,1),11);
3924 self.assertAlmostEqual(baryPenta6[2],bary.getIJ(1,2),11);
3925 self.assertAlmostEqual(baryPyra5[0],bary.getIJ(2,0),11);
3926 self.assertAlmostEqual(baryPyra5[1],bary.getIJ(2,1),11);
3927 self.assertAlmostEqual(baryPyra5[2],bary.getIJ(2,2),11);
3930 def testGetMeasureFieldCMesh1(self):
3931 m=MEDCouplingCMesh.New();
3932 da=DataArrayDouble.New();
3933 discX=[2.3,3.4,5.8,10.2]
3934 discY=[12.3,23.4,45.8]
3935 discZ=[-0.7,1.2,1.25,2.13,2.67]
3936 da.setValues(discX,4,1);
3937 m.setCoordsAt(0,da);
3939 self.assertEqual(4,m.getNumberOfNodes());
3940 self.assertEqual(3,m.getNumberOfCells());
3941 self.assertEqual(1,m.getSpaceDimension());
3942 f=m.getMeasureField(True);
3943 self.assertEqual(3,f.getNumberOfTuples());
3944 self.assertEqual(1,f.getNumberOfComponents());
3945 expected1=[1.1,2.4,4.4]
3947 self.assertAlmostEqual(expected1[i],f.getIJ(i,0),12);
3949 coords=m.getCoordinatesAndOwner();
3950 self.assertEqual(4,coords.getNumberOfTuples());
3951 self.assertEqual(1,coords.getNumberOfComponents());
3953 self.assertAlmostEqual(discX[i],coords.getIJ(i,0),12);
3955 coords=m.getBarycenterAndOwner();
3956 self.assertEqual(3,coords.getNumberOfTuples());
3957 self.assertEqual(1,coords.getNumberOfComponents());
3958 expected1_3=[2.85,4.6,8.]
3960 self.assertAlmostEqual(expected1_3[i],coords.getIJ(i,0),12);
3963 da=DataArrayDouble.New();
3964 da.setValues(discY,3,1);
3965 m.setCoordsAt(1,da);
3967 self.assertEqual(12,m.getNumberOfNodes());
3968 self.assertEqual(6,m.getNumberOfCells());
3969 self.assertEqual(2,m.getSpaceDimension());
3970 f=m.getMeasureField(True);
3971 self.assertEqual(6,f.getNumberOfTuples());
3972 self.assertEqual(1,f.getNumberOfComponents());
3973 expected2=[12.21,26.64,48.84,24.64,53.76,98.56]
3975 self.assertAlmostEqual(expected2[i],f.getIJ(i,0),12);
3977 coords=m.getCoordinatesAndOwner();
3978 self.assertEqual(12,coords.getNumberOfTuples());
3979 self.assertEqual(2,coords.getNumberOfComponents());
3980 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]
3981 for i in xrange(24):
3982 self.assertAlmostEqual(expected2_2[i],coords.getIJ(0,i),12);
3984 coords=m.getBarycenterAndOwner();
3985 self.assertEqual(6,coords.getNumberOfTuples());
3986 self.assertEqual(2,coords.getNumberOfComponents());
3987 expected2_3=[2.85,17.85,4.6,17.85,8.,17.85, 2.85,34.6,4.6,34.6,8.,34.6]
3988 for i in xrange(12):
3989 self.assertAlmostEqual(expected2_3[i],coords.getIJ(0,i),12);
3992 da=DataArrayDouble.New();
3993 da.setValues(discZ,5,1);
3994 m.setCoordsAt(2,da);
3996 self.assertEqual(60,m.getNumberOfNodes());
3997 self.assertEqual(24,m.getNumberOfCells());
3998 self.assertEqual(3,m.getSpaceDimension());
3999 f=m.getMeasureField(True);
4000 self.assertEqual(24,f.getNumberOfTuples());
4001 self.assertEqual(1,f.getNumberOfComponents());
4002 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]
4003 for i in xrange(24):
4004 self.assertAlmostEqual(expected3[i],f.getIJ(i,0),12);
4006 coords=m.getCoordinatesAndOwner();
4007 self.assertEqual(60,coords.getNumberOfTuples());
4008 self.assertEqual(3,coords.getNumberOfComponents());
4010 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,
4011 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,
4012 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,
4013 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,
4014 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];
4015 for i in xrange(180):
4016 self.assertAlmostEqual(expected3_2[i],coords.getIJ(0,i),12);
4018 coords=m.getBarycenterAndOwner();
4019 self.assertEqual(24,coords.getNumberOfTuples());
4020 self.assertEqual(3,coords.getNumberOfComponents());
4022 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,
4023 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,
4024 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,
4025 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];
4026 for i in xrange(72):
4027 self.assertAlmostEqual(expected3_3[i],coords.getIJ(0,i),12);
4031 def testFieldDoubleZipCoords1(self):
4032 m=MEDCouplingDataForTest.build2DTargetMeshMergeNode_1();
4033 f=m.fillFromAnalytic(ON_NODES,2,"x*2.");
4034 f.getArray().setInfoOnComponent(0,"titi");
4035 f.getArray().setInfoOnComponent(1,"tutu");
4037 self.assertEqual(18,f.getNumberOfTuples());
4038 self.assertEqual(2,f.getNumberOfComponents());
4039 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]
4040 for i in xrange(36):
4041 self.assertAlmostEqual(expected1[i],f.getIJ(0,i),12);
4043 self.assertTrue(f.zipCoords());
4045 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]
4046 for i in xrange(30):
4047 self.assertAlmostEqual(expected2[i],f.getIJ(0,i),12);
4049 self.assertTrue(not f.zipCoords());
4051 for i in xrange(30):
4052 self.assertAlmostEqual(expected2[i],f.getIJ(0,i),12);
4054 self.assertTrue(f.getArray().getInfoOnComponent(0)=="titi");
4055 self.assertTrue(f.getArray().getInfoOnComponent(1)=="tutu");
4058 def testFieldDoubleZipConnectivity1(self):
4059 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
4060 m2=MEDCouplingDataForTest.build2DTargetMesh_1();
4062 m3_1=m2.buildPartOfMySelf(cells1,True);
4064 m4=MEDCouplingDataForTest.build2DSourceMesh_1();
4065 m5=MEDCouplingUMesh.MergeUMeshes(m1,m3);
4066 m6=MEDCouplingUMesh.MergeUMeshes(m5,m4);
4068 self.assertEqual(10,m6.getNumberOfCells());
4069 self.assertEqual(22,m6.getNumberOfNodes());
4070 arr,areNodesMerged,newNbOfNodes=m6.mergeNodes(1e-13);
4071 self.assertEqual(9,m6.getNumberOfNodes());
4072 f=m6.fillFromAnalytic(ON_CELLS,2,"x");
4073 f2=m6.fillFromAnalytic(ON_NODES,2,"x");
4074 self.assertEqual(10,f.getNumberOfTuples());
4075 self.assertEqual(2,f.getNumberOfComponents());
4076 expected1=[-0.05, -0.05, 0.3666666666666667, 0.3666666666666667, 0.53333333333333321, 0.53333333333333321,
4077 -0.05, -0.05, 0.45, 0.45, 0.53333333333333321, 0.53333333333333321, -0.05, -0.05, 0.45, 0.45,
4078 0.36666666666666659, 0.36666666666666659, 0.033333333333333326, 0.033333333333333326];
4079 for i in xrange(20):
4080 self.assertAlmostEqual(expected1[i],f.getIJ(0,i),12);
4082 f.getArray().setInfoOnComponent(0,"titi");
4083 f.getArray().setInfoOnComponent(1,"tutu");
4085 self.assertTrue(f.zipConnectivity(0));
4086 expected2=[-0.05, -0.05, 0.3666666666666667, 0.3666666666666667, 0.53333333333333321, 0.53333333333333321,
4087 -0.05, -0.05, 0.45, 0.45, 0.36666666666666659, 0.36666666666666659, 0.033333333333333326, 0.033333333333333326];
4088 self.assertEqual(7,f.getNumberOfTuples());
4089 self.assertEqual(2,f.getNumberOfComponents());
4090 for i in xrange(14):
4091 self.assertAlmostEqual(expected2[i],f.getIJ(0,i),12);
4093 self.assertTrue(f.getArray().getInfoOnComponent(0)=="titi");
4094 self.assertTrue(f.getArray().getInfoOnComponent(1)=="tutu");
4095 self.assertTrue(not f.zipConnectivity(0));
4097 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,
4098 -0.3, -0.3, 0.2, 0.2, 0.7, 0.7];
4099 self.assertEqual(9,f2.getNumberOfTuples());
4100 self.assertEqual(2,f2.getNumberOfComponents());
4101 for i in xrange(18):
4102 self.assertAlmostEqual(expected3[i],f2.getIJ(0,i),12);
4104 self.assertTrue(f2.zipConnectivity(0));
4105 self.assertEqual(9,f2.getNumberOfTuples());
4106 self.assertEqual(2,f2.getNumberOfComponents());
4107 for i in xrange(18):
4108 self.assertAlmostEqual(expected3[i],f2.getIJ(0,i),12);
4112 def testDaDoubleRenumber1(self):
4113 a=DataArrayDouble.New();
4114 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]
4115 a.setValues(arr1,7,2);
4116 a.setInfoOnComponent(0,"toto");
4117 a.setInfoOnComponent(1,"tata");
4119 arr2=[3,1,0,6,5,4,2]
4121 self.assertEqual(7,b.getNumberOfTuples());
4122 self.assertEqual(2,b.getNumberOfComponents());
4123 self.assertTrue(b.getInfoOnComponent(0)=="toto");
4124 self.assertTrue(b.getInfoOnComponent(1)=="tata");
4125 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]
4126 for i in xrange(14):
4127 self.assertAlmostEqual(expected1[i],b.getIJ(0,i),14);
4130 c=DataArrayInt.New();
4131 arr3=[1,11,2,12,3,13,4,14,5,15,6,16,7,17]
4132 c.setValues(arr3,7,2);
4133 c.setInfoOnComponent(0,"toto");
4134 c.setInfoOnComponent(1,"tata");
4136 self.assertEqual(7,d.getNumberOfTuples());
4137 self.assertEqual(2,d.getNumberOfComponents());
4138 self.assertTrue(d.getInfoOnComponent(0)=="toto");
4139 self.assertTrue(d.getInfoOnComponent(1)=="tata");
4140 expected2=[3, 13, 2, 12, 7, 17, 1, 11, 6, 16, 5, 15, 4, 14]
4141 for i in xrange(14):
4142 self.assertEqual(expected2[i],d.getIJ(0,i));
4146 def testDaDoubleRenumberAndReduce1(self):
4147 a=DataArrayDouble.New();
4148 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]
4149 a.setValues(arr1,7,2);
4150 a.setInfoOnComponent(0,"toto");
4151 a.setInfoOnComponent(1,"tata");
4153 arr2=[2,-1,1,-1,0,4,3]
4154 b=a.renumberAndReduce(arr2,5);
4155 self.assertEqual(5,b.getNumberOfTuples());
4156 self.assertEqual(2,b.getNumberOfComponents());
4157 self.assertTrue(b.getInfoOnComponent(0)=="toto");
4158 self.assertTrue(b.getInfoOnComponent(1)=="tata");
4159 expected1=[5.1,15.1,3.1,13.1,1.1,11.1,7.1,17.1,6.1,16.1]
4160 for i in xrange(10):
4161 self.assertAlmostEqual(expected1[i],b.getIJ(0,i),14);
4164 c=DataArrayInt.New();
4165 arr3=[1,11,2,12,3,13,4,14,5,15,6,16,7,17]
4166 c.setValues(arr3,7,2);
4167 c.setInfoOnComponent(0,"toto");
4168 c.setInfoOnComponent(1,"tata");
4169 d=c.renumberAndReduce(arr2,5);
4170 self.assertEqual(5,d.getNumberOfTuples());
4171 self.assertEqual(2,d.getNumberOfComponents());
4172 self.assertTrue(d.getInfoOnComponent(0)=="toto");
4173 self.assertTrue(d.getInfoOnComponent(1)=="tata");
4174 expected2=[5,15,3,13,1,11,7,17,6,16]
4175 for i in xrange(10):
4176 self.assertEqual(expected2[i],d.getIJ(0,i));
4180 def testDaDoubleRenumberInPlace1(self):
4181 a=DataArrayDouble.New();
4182 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]
4183 a.setValues(arr1,7,2);
4185 arr2=[3,1,0,6,5,4,2]
4186 a.renumberInPlace(arr2);
4187 self.assertEqual(7,a.getNumberOfTuples());
4188 self.assertEqual(2,a.getNumberOfComponents());
4189 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]
4190 for i in xrange(14):
4191 self.assertAlmostEqual(expected1[i],a.getIJ(0,i),14);
4194 c=DataArrayInt.New();
4195 arr3=[1,11,2,12,3,13,4,14,5,15,6,16,7,17]
4196 c.setValues(arr3,7,2);
4197 c.renumberInPlace(arr2);
4198 self.assertEqual(7,c.getNumberOfTuples());
4199 self.assertEqual(2,c.getNumberOfComponents());
4200 expected2=[3, 13, 2, 12, 7, 17, 1, 11, 6, 16, 5, 15, 4, 14]
4201 for i in xrange(14):
4202 self.assertEqual(expected2[i],c.getIJ(0,i));
4206 def testDaDoubleRenumberR1(self):
4207 a=DataArrayDouble.New();
4208 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]
4209 a.setValues(arr1,7,2);
4210 a.setInfoOnComponent(0,"toto");
4211 a.setInfoOnComponent(1,"tata");
4213 arr2=[3,1,0,6,5,4,2]
4214 b=a.renumberR(arr2);
4215 self.assertEqual(7,b.getNumberOfTuples());
4216 self.assertEqual(2,b.getNumberOfComponents());
4217 self.assertTrue(b.getInfoOnComponent(0)=="toto");
4218 self.assertTrue(b.getInfoOnComponent(1)=="tata");
4219 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]
4220 for i in xrange(14):
4221 self.assertAlmostEqual(expected1[i],b.getIJ(0,i),14);
4224 c=DataArrayInt.New();
4225 arr3=[1,11,2,12,3,13,4,14,5,15,6,16,7,17]
4226 c.setValues(arr3,7,2);
4227 c.setInfoOnComponent(0,"toto");
4228 c.setInfoOnComponent(1,"tata");
4229 d=c.renumberR(arr2);
4230 self.assertEqual(7,d.getNumberOfTuples());
4231 self.assertEqual(2,d.getNumberOfComponents());
4232 self.assertTrue(d.getInfoOnComponent(0)=="toto");
4233 self.assertTrue(d.getInfoOnComponent(1)=="tata");
4234 expected2=[4, 14, 2, 12, 1, 11, 7, 17, 6, 16, 5, 15, 3, 13]
4235 for i in xrange(14):
4236 self.assertEqual(expected2[i],d.getIJ(0,i));
4240 def testDaDoubleRenumberInPlaceR1(self):
4241 a=DataArrayDouble.New();
4242 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]
4243 a.setValues(arr1,7,2);
4245 arr2=[3,1,0,6,5,4,2]
4246 a.renumberInPlaceR(arr2);
4247 self.assertEqual(7,a.getNumberOfTuples());
4248 self.assertEqual(2,a.getNumberOfComponents());
4249 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]
4250 for i in xrange(14):
4251 self.assertAlmostEqual(expected1[i],a.getIJ(0,i),14);
4254 c=DataArrayInt.New();
4255 arr3=[1,11,2,12,3,13,4,14,5,15,6,16,7,17]
4256 c.setValues(arr3,7,2);
4257 c.renumberInPlaceR(arr2);
4258 self.assertEqual(7,c.getNumberOfTuples());
4259 self.assertEqual(2,c.getNumberOfComponents());
4260 expected2=[4, 14, 2, 12, 1, 11, 7, 17, 6, 16, 5, 15, 3, 13]
4261 for i in xrange(14):
4262 self.assertEqual(expected2[i],c.getIJ(0,i));
4266 def testDaDoubleSelectByTupleId1(self):
4267 a=DataArrayDouble.New();
4268 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]
4269 a.setValues(arr1,7,2);
4270 a.setInfoOnComponent(0,"toto");
4271 a.setInfoOnComponent(1,"tata");
4274 b=a.selectByTupleId(arr2);
4275 self.assertEqual(5,b.getNumberOfTuples());
4276 self.assertEqual(2,b.getNumberOfComponents());
4277 self.assertTrue(b.getInfoOnComponent(0)=="toto");
4278 self.assertTrue(b.getInfoOnComponent(1)=="tata");
4279 expected1=[5.1,15.1,3.1,13.1,1.1,11.1,7.1,17.1,6.1,16.1]
4280 for i in xrange(10):
4281 self.assertAlmostEqual(expected1[i],b.getIJ(0,i),14);
4284 c=DataArrayInt.New();
4285 arr3=[1,11,2,12,3,13,4,14,5,15,6,16,7,17]
4286 c.setValues(arr3,7,2);
4287 c.setInfoOnComponent(0,"toto");
4288 c.setInfoOnComponent(1,"tata");
4289 d=c.selectByTupleId(arr2);
4290 self.assertEqual(5,d.getNumberOfTuples());
4291 self.assertEqual(2,d.getNumberOfComponents());
4292 self.assertTrue(d.getInfoOnComponent(0)=="toto");
4293 self.assertTrue(d.getInfoOnComponent(1)=="tata");
4294 expected2=[5,15,3,13,1,11,7,17,6,16]
4295 for i in xrange(10):
4296 self.assertEqual(expected2[i],d.getIJ(0,i));
4300 def testDaDoubleGetMinMaxValues1(self):
4301 a=DataArrayDouble.New();
4302 arr1=[2.34,4.56,-6.77,4.55,4.56,2.24,2.34,1.02,4.56]
4303 a.setValues(arr1,9,1);
4304 m,where=a.getMaxValue();
4305 self.assertEqual(1,where);
4306 self.assertAlmostEqual(4.56,m,12);
4307 m,ws=a.getMaxValue2();
4308 self.assertAlmostEqual(4.56,m,12);
4309 self.assertEqual(3,ws.getNumberOfTuples());
4310 self.assertEqual(1,ws.getNumberOfComponents());
4313 self.assertEqual(expected1[i],ws.getIJ(i,0));
4315 a=DataArrayDouble.New();
4316 arr2=[-2.34,-4.56,6.77,-4.55,-4.56,-2.24,-2.34,-1.02,-4.56]
4317 a.setValues(arr2,9,1);
4318 m,where=a.getMinValue();
4319 self.assertEqual(1,where);
4320 self.assertAlmostEqual(-4.56,m,12);
4321 m,ws=a.getMinValue2();
4322 self.assertAlmostEqual(-4.56,m,12);
4323 self.assertEqual(3,ws.getNumberOfTuples());
4324 self.assertEqual(1,ws.getNumberOfComponents());
4326 self.assertEqual(expected1[i],ws.getIJ(i,0));
4330 def testFieldDoubleGetMinMaxValues2(self):
4331 m2,m1=MEDCouplingDataForTest.build3DExtrudedUMesh_1();
4332 self.assertEqual(18,m2.getNumberOfCells());
4333 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]
4334 f=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
4335 a=DataArrayDouble.New();
4336 a.setValues(arr1,18,1);
4342 self.assertAlmostEqual(8.71,m,12);
4343 m,ws=f.getMaxValue2();
4344 self.assertAlmostEqual(8.71,m,12);
4345 self.assertEqual(4,ws.getNumberOfTuples());
4346 self.assertEqual(1,ws.getNumberOfComponents());
4347 expected1=[0,3,7,17]
4349 self.assertEqual(expected1[i],ws.getIJ(i,0));
4352 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]
4353 a.setValues(arr2,18,1);
4356 self.assertAlmostEqual(-8.71,m,12);
4357 m,ws=f.getMinValue2();
4358 self.assertAlmostEqual(-8.71,m,12);
4359 self.assertEqual(4,ws.getNumberOfTuples());
4360 self.assertEqual(1,ws.getNumberOfComponents());
4362 self.assertEqual(expected1[i],ws.getIJ(i,0));
4366 def testBuildUnstructuredCMesh1(self):
4367 m=MEDCouplingCMesh.New();
4368 da=DataArrayDouble.New();
4369 discX=[2.3,3.4,5.8,10.2]
4370 discY=[12.3,23.4,45.8]
4371 discZ=[-0.7,1.2,1.25,2.13,2.67]
4372 da.setValues(discX,4,1);
4373 m.setCoordsAt(0,da);
4375 self.assertEqual(0,m.getCellContainingPoint([2.4],1e-12));
4376 self.assertEqual(1,m.getCellContainingPoint([3.7],1e-12));
4377 self.assertEqual(2,m.getCellContainingPoint([5.9],1e-12));
4378 self.assertEqual(-1,m.getCellContainingPoint([10.3],1e-12));
4379 self.assertEqual(-1,m.getCellContainingPoint([1.3],1e-12));
4381 m2=m.buildUnstructured();
4382 m2.checkCoherency();
4383 f1=m.getMeasureField(False);
4384 f2=m2.getMeasureField(False);
4385 self.assertTrue(isinstance(f1.getMesh(),MEDCouplingCMesh))
4386 self.assertEqual(f1.getNumberOfTuples(),3);
4387 self.assertEqual(f2.getNumberOfTuples(),3);
4388 self.assertEqual(1,m2.getMeshDimension());
4389 self.assertEqual(1,m2.getSpaceDimension());
4391 self.assertAlmostEqual(f1.getIJ(i,0),f2.getIJ(i,0),10);
4393 da=DataArrayDouble.New();
4394 da.setValues(discY,3,1);
4395 m.setCoordsAt(1,da);
4397 m2=m.buildUnstructured();
4398 m2.checkCoherency();
4399 f1=m.getMeasureField(False);
4400 f2=m2.getMeasureField(False);
4401 self.assertEqual(f1.getNumberOfTuples(),6);
4402 self.assertEqual(f2.getNumberOfTuples(),6);
4403 self.assertEqual(2,m2.getMeshDimension());
4404 self.assertEqual(2,m2.getSpaceDimension());
4406 self.assertAlmostEqual(f1.getIJ(i,0),f2.getIJ(i,0),10);
4409 da=DataArrayDouble.New();
4410 da.setValues(discZ,5,1);
4411 m.setCoordsAt(2,da);
4412 m2=m.buildUnstructured();
4413 m2.checkCoherency();
4414 f1=m.getMeasureField(False);
4415 f2=m2.getMeasureField(False);
4416 self.assertEqual(f1.getNumberOfTuples(),24);
4417 self.assertEqual(f2.getNumberOfTuples(),24);
4418 self.assertEqual(3,m2.getMeshDimension());
4419 self.assertEqual(3,m2.getSpaceDimension());
4420 for i in xrange(24):
4421 self.assertAlmostEqual(f1.getIJ(i,0),f2.getIJ(i,0),10);
4425 self.assertEqual(16,m.getCellContainingPoint(pos1,1e-12));
4427 elems=m2.getCellsInBoundingBox([3.5,6.,12.2,25.,0.,1.5],1e-7)
4428 self.assertEqual([1, 2, 4, 5, 7, 8, 10, 11, 13, 14, 16, 17],elems.getValues())
4432 m3=m.buildUnstructured();
4434 self.assertTrue(m3.isEqual(m2,1e-12));
4437 def testDataArrayIntInvertO2NNO21(self):
4439 da=DataArrayInt.New();
4440 da.setValues(arr1,6,1);
4441 da2=da.invertArrayO2N2N2O(6);
4442 self.assertEqual(6,da2.getNumberOfTuples());
4443 self.assertEqual(1,da2.getNumberOfComponents());
4444 expected1=[1,3,0,5,2,4]
4446 self.assertEqual(expected1[i],da2.getIJ(i,0));
4448 da3=da2.invertArrayN2O2O2N(6);
4450 self.assertEqual(arr1[i],da3.getIJ(i,0));
4453 arr2=[3,-1,5,4,-1,0,-1,1,2,-1]
4454 da=DataArrayInt.New();
4455 da.setValues(arr2,10,1);
4456 da2=da.invertArrayO2N2N2O(6);
4457 self.assertEqual(6,da2.getNumberOfTuples());
4458 self.assertEqual(1,da2.getNumberOfComponents());
4459 expected2=[5,7,8,0,3,2]
4461 self.assertEqual(expected2[i],da2.getIJ(i,0));
4463 da3=da2.invertArrayN2O2O2N(10);
4464 for i in xrange(10):
4465 self.assertEqual(arr2[i],da3.getIJ(i,0));
4469 def testKeepSetSelectedComponent1(self):
4470 arr1=[1.,2.,3.,4., 11.,12.,13.,14., 21.,22.,23.,24., 31.,32.,33.,34., 41.,42.,43.,44.]
4471 a1=DataArrayDouble.New();
4472 a1.setValues(arr1,5,4);
4473 expp=[21.,22.,23.,24.]
4474 self.assertEqual(4,len(a1.getTuple(2)));
4476 self.assertAlmostEqual(expp[i],a1.getTuple(2)[i],12)
4478 a1.setInfoOnComponent(0,"aaaa");
4479 a1.setInfoOnComponent(1,"bbbb");
4480 a1.setInfoOnComponent(2,"cccc");
4481 a1.setInfoOnComponent(3,"dddd");
4483 a2=a1.keepSelectedComponents(arr2V);
4484 self.assertEqual(6,a2.getNumberOfComponents());
4485 self.assertEqual(5,a2.getNumberOfTuples());
4486 self.assertTrue(a2.getInfoOnComponent(0)=="bbbb");
4487 self.assertTrue(a2.getInfoOnComponent(1)=="cccc");
4488 self.assertTrue(a2.getInfoOnComponent(2)=="bbbb");
4489 self.assertTrue(a2.getInfoOnComponent(3)=="cccc");
4490 self.assertTrue(a2.getInfoOnComponent(4)=="aaaa");
4491 self.assertTrue(a2.getInfoOnComponent(5)=="aaaa");
4492 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.]
4493 for i in xrange(30):
4494 self.assertAlmostEqual(expected1[i],a2.getIJ(0,i),14);
4496 a3=a1.convertToIntArr();
4497 self.assertEqual([21,22,23,24],a3.getTuple(2))
4498 a4=a3.keepSelectedComponents(arr2V);
4499 self.assertEqual(6,a4.getNumberOfComponents());
4500 self.assertEqual(5,a4.getNumberOfTuples());
4501 self.assertTrue(a4.getInfoOnComponent(0)=="bbbb");
4502 self.assertTrue(a4.getInfoOnComponent(1)=="cccc");
4503 self.assertTrue(a4.getInfoOnComponent(2)=="bbbb");
4504 self.assertTrue(a4.getInfoOnComponent(3)=="cccc");
4505 self.assertTrue(a4.getInfoOnComponent(4)=="aaaa");
4506 self.assertTrue(a4.getInfoOnComponent(5)=="aaaa");
4507 for i in xrange(30):
4508 self.assertEqual(int(expected1[i]),a4.getIJ(0,i));
4510 # setSelectedComponents
4512 a5=a1.keepSelectedComponents(arr3V);
4513 a5.setInfoOnComponent(0,"eeee");
4514 a5.setInfoOnComponent(1,"ffff");
4516 a2.setSelectedComponents(a5,arr4V);
4517 self.assertEqual(6,a2.getNumberOfComponents());
4518 self.assertEqual(5,a2.getNumberOfTuples());
4519 self.assertTrue(a2.getInfoOnComponent(0)=="bbbb");
4520 self.assertTrue(a2.getInfoOnComponent(1)=="eeee");
4521 self.assertTrue(a2.getInfoOnComponent(2)=="ffff");
4522 self.assertTrue(a2.getInfoOnComponent(3)=="cccc");
4523 self.assertTrue(a2.getInfoOnComponent(4)=="aaaa");
4524 self.assertTrue(a2.getInfoOnComponent(5)=="aaaa");
4525 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.]
4526 for i in xrange(30):
4527 self.assertAlmostEqual(expected2[i],a2.getIJ(0,i),14);
4529 a6=a5.convertToIntArr();
4530 a6.setInfoOnComponent(0,"eeee");
4531 a6.setInfoOnComponent(1,"ffff");
4532 a4.setSelectedComponents(a6,arr4V);
4533 self.assertEqual(6,a4.getNumberOfComponents());
4534 self.assertEqual(5,a4.getNumberOfTuples());
4535 self.assertTrue(a4.getInfoOnComponent(0)=="bbbb");
4536 self.assertTrue(a4.getInfoOnComponent(1)=="eeee");
4537 self.assertTrue(a4.getInfoOnComponent(2)=="ffff");
4538 self.assertTrue(a4.getInfoOnComponent(3)=="cccc");
4539 self.assertTrue(a4.getInfoOnComponent(4)=="aaaa");
4540 self.assertTrue(a4.getInfoOnComponent(5)=="aaaa");
4541 for i in xrange(30):
4542 self.assertEqual(int(expected2[i]),a4.getIJ(0,i));
4548 self.assertRaises(InterpKernelException,a2.keepSelectedComponents,arr5V);
4549 self.assertRaises(InterpKernelException,a2.keepSelectedComponents,arr6V);
4550 self.assertRaises(InterpKernelException,a2.setSelectedComponents,a1,arr7V);
4552 self.assertRaises(InterpKernelException,a2.setSelectedComponents,a1,arr7V);
4556 def testKeepSetSelectedComponent2(self):
4557 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
4558 arr1=[1.,2.,3.,4., 11.,12.,13.,14., 21.,22.,23.,24., 31.,32.,33.,34., 41.,42.,43.,44.]
4559 a1=DataArrayDouble.New();
4560 a1.setValues(arr1,5,4);
4561 a1.setInfoOnComponent(0,"aaaa");
4562 a1.setInfoOnComponent(1,"bbbb");
4563 a1.setInfoOnComponent(2,"cccc");
4564 a1.setInfoOnComponent(3,"dddd");
4565 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
4566 f1.setTime(2.3,4,5);
4570 f1.checkCoherency();
4573 f2=f1.keepSelectedComponents(arr2V);
4574 self.assertTrue(f2.getTimeDiscretization()==ONE_TIME);
4575 t,dt,it=f2.getTime()
4576 self.assertAlmostEqual(2.3,t,13);
4577 self.assertEqual(4,dt);
4578 self.assertEqual(5,it);
4579 f2.checkCoherency();
4580 self.assertEqual(6,f2.getNumberOfComponents());
4581 self.assertEqual(5,f2.getNumberOfTuples());
4582 self.assertTrue(f2.getArray().getInfoOnComponent(0)=="bbbb");
4583 self.assertTrue(f2.getArray().getInfoOnComponent(1)=="cccc");
4584 self.assertTrue(f2.getArray().getInfoOnComponent(2)=="bbbb");
4585 self.assertTrue(f2.getArray().getInfoOnComponent(3)=="cccc");
4586 self.assertTrue(f2.getArray().getInfoOnComponent(4)=="aaaa");
4587 self.assertTrue(f2.getArray().getInfoOnComponent(5)=="aaaa");
4588 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.]
4589 for i in xrange(30):
4590 self.assertAlmostEqual(expected1[i],f2.getIJ(0,i),14);
4592 #setSelectedComponents
4594 f5=f1.keepSelectedComponents(arr3V);
4595 f5.setTime(6.7,8,9);
4596 f5.getArray().setInfoOnComponent(0,"eeee");
4597 f5.getArray().setInfoOnComponent(1,"ffff");
4598 f5.checkCoherency();
4600 f2.setSelectedComponents(f5,arr4V);
4601 self.assertEqual(6,f2.getNumberOfComponents());
4602 self.assertEqual(5,f2.getNumberOfTuples());
4603 f2.checkCoherency();
4604 t,dt,it=f2.getTime()
4605 self.assertAlmostEqual(2.3,t,13);
4606 self.assertEqual(4,dt);
4607 self.assertEqual(5,it);
4608 self.assertTrue(f2.getArray().getInfoOnComponent(0)=="bbbb");
4609 self.assertTrue(f2.getArray().getInfoOnComponent(1)=="eeee");
4610 self.assertTrue(f2.getArray().getInfoOnComponent(2)=="ffff");
4611 self.assertTrue(f2.getArray().getInfoOnComponent(3)=="cccc");
4612 self.assertTrue(f2.getArray().getInfoOnComponent(4)=="aaaa");
4613 self.assertTrue(f2.getArray().getInfoOnComponent(5)=="aaaa");
4614 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.]
4615 for i in xrange(30):
4616 self.assertAlmostEqual(expected2[i],f2.getIJ(0,i),14);
4621 def testElementaryDAThrowAndSpecialCases(self):
4622 da=DataArrayInt.New();
4623 self.assertRaises(InterpKernelException, da.checkAllocated);
4624 self.assertRaises(InterpKernelException, da.fillWithValue, 1);
4625 self.assertRaises(InterpKernelException, da.iota, 1);
4627 da.fillWithValue(11); #11,11,11,11...
4628 da.iota(10); #10,11,12,13...
4630 db=DataArrayInt.New();
4633 dbl2=DataArrayDouble.New();
4635 self.assertRaises(InterpKernelException, dbl2.isUniform, 10., 1e-15);
4636 self.assertRaises(InterpKernelException, dbl2.sort);
4637 self.assertRaises(InterpKernelException, dbl2.iota, 10.);
4639 dbl=DataArrayDouble.New();
4640 #DataArrayDouble not allocated yet
4641 self.assertRaises(InterpKernelException, dbl.iota, 10.);
4642 self.assertRaises(InterpKernelException, dbl.isUniform, 10., 1e-15);
4643 self.assertRaises(InterpKernelException, dbl.sort);
4644 self.assertRaises(InterpKernelException, dbl.fromNoInterlace);
4645 self.assertRaises(InterpKernelException, dbl.toNoInterlace);
4649 self.assertTrue(not dbl.isUniform(10.,1e-15));
4651 self.assertTrue(dbl.isMonotonic(True, .99));
4652 self.assertTrue(dbl.isMonotonic(True, -.99));
4653 self.assertTrue(not dbl.isMonotonic(True, 1.1));
4654 self.assertTrue(not dbl.isMonotonic(True, -1.1));
4656 self.assertTrue(dbl.isMonotonic(False, .99));
4657 self.assertTrue(not dbl.isMonotonic(False, 1.1));
4658 self.assertTrue(not dbl.isMonotonic(False, -1.1));
4660 dc=DataArrayInt.New();
4663 dd=DataArrayDouble.New();
4664 self.assertRaises(InterpKernelException, dd.checkAllocated);
4665 self.assertRaises(InterpKernelException, dd.fillWithValue, 1.);
4666 self.assertRaises(InterpKernelException, dd.iota, 1.);
4667 self.assertTrue(not ((dd.repr().find("No data"))==-1));
4669 dd.alloc(0,1); #Allocated but nbOfElements==0!
4670 self.assertTrue(not ((dd.repr().find("Number of tuples : 0"))==-1));
4671 self.assertTrue(not ((dd.repr().find("Empty Data"))==-1));
4672 dd.fillWithValue(11); #?!...ok
4673 dd.iota(10); #?!...ok
4674 self.assertTrue(dd.isMonotonic(True, 1.)); #nothing is monotonic
4675 self.assertTrue(dd.isMonotonic(False, 1.));
4677 self.assertRaises(InterpKernelException, db.copyStringInfoFrom, da);
4678 self.assertRaises(InterpKernelException, db.copyStringInfoFrom, da);
4680 self.assertRaises(InterpKernelException, da.copyPartOfStringInfoFrom, db, cIds);
4683 self.assertRaises(InterpKernelException, da.copyPartOfStringInfoFrom, db, cIds);
4685 info=["infoOfOneComponent"]*2;
4686 self.assertRaises(InterpKernelException, da.setInfoOnComponents, info);
4687 self.assertRaises(InterpKernelException, da.setInfoOnComponent, 1, info[0]);
4688 db.setInfoOnComponents(info);
4690 self.assertRaises(InterpKernelException, da.getInfoOnComponent, -1);
4691 self.assertRaises(InterpKernelException, da.getInfoOnComponent, 2);
4692 self.assertTrue(db.getInfoOnComponent(1)==db.getInfoOnComponent(0));
4693 self.assertRaises(InterpKernelException, db.getVarOnComponent, -1);
4694 self.assertRaises(InterpKernelException, db.getVarOnComponent, 2);
4695 self.assertRaises(InterpKernelException, db.getUnitOnComponent, -1);
4696 self.assertRaises(InterpKernelException, db.getUnitOnComponent, 2);
4698 self.assertTrue(da.GetVarNameFromInfo("varname unit ")=="varname unit ");
4699 self.assertTrue(da.GetVarNameFromInfo("varname]unit[")=="varname]unit[");
4700 self.assertTrue(da.GetVarNameFromInfo("[unit]")=="");
4701 self.assertTrue(da.GetVarNameFromInfo("varname [unit]")=="varname");
4703 self.assertTrue(da.GetUnitFromInfo("varname unit ")=="");
4704 self.assertTrue(da.GetUnitFromInfo("varname]unit[")=="");
4705 self.assertTrue(da.GetUnitFromInfo("[unit]")=="unit");
4706 self.assertTrue(da.GetUnitFromInfo("varname [unit]")=="unit");
4708 self.assertRaises(InterpKernelException, da.checkNbOfTuplesAndComp, db, "theMessageInThrow");
4709 self.assertRaises(InterpKernelException, da.checkNbOfTuplesAndComp, dc, "theMessageInThrow");
4710 self.assertRaises(InterpKernelException, db.checkNbOfTuplesAndComp, dc, "theMessageInThrow");
4712 self.assertRaises(InterpKernelException, da.checkNbOfTuplesAndComp, 7, 2, "theMessageInThrow");
4713 da.checkNbOfTuplesAndComp(7,1,"theMessageInThrow");
4715 self.assertRaises(InterpKernelException, db.checkNbOfElems, 7*2+1, "theMessageInThrow");
4716 db.checkNbOfElems(7*2,"theMessageInThrow");
4718 self.assertRaises(InterpKernelException, db.GetNumberOfItemGivenBES, 10, 9, 1, "theMessageInThrow");
4719 self.assertRaises(InterpKernelException, db.GetNumberOfItemGivenBES, 0, 1, -1, "theMessageInThrow");
4720 self.assertEqual(10,db.GetNumberOfItemGivenBES(0,10,1,"theMessageInThrow"));
4721 self.assertEqual(5,db.GetNumberOfItemGivenBES(0,10,2,"theMessageInThrow"));
4722 self.assertEqual(6,db.GetNumberOfItemGivenBES(0,11,2,"theMessageInThrow"));
4724 self.assertTrue(not ((da.repr().find("Number of components : 1"))==-1));
4725 self.assertTrue(not ((dd.repr().find("Number of components : 1"))==-1));
4726 self.assertTrue(not ((dbl.repr().find("Number of components : 1"))==-1));
4728 self.assertTrue(not ((da.reprZip().find("Number of components : 1"))==-1));
4729 self.assertTrue(not ((dd.reprZip().find("Number of components : 1"))==-1));
4730 self.assertTrue(not ((dbl.reprZip().find("Number of components : 1"))==-1));
4732 self.assertRaises(InterpKernelException, dbl.selectByTupleId2, 0, 1, -1);
4733 self.assertRaises(InterpKernelException, dbl.substr, -1, 1);
4734 self.assertRaises(InterpKernelException, dbl.substr, 8, 1);
4735 self.assertRaises(InterpKernelException, dbl.substr, 0, 8);
4736 self.assertRaises(InterpKernelException, dbl.meldWith, dd);
4738 self.assertRaises(InterpKernelException, dbl.setPartOfValuesAdv, dbl2, da); #dbl dbl2 not have the same number of components
4739 self.assertRaises(InterpKernelException, dbl.setPartOfValuesAdv, dd, da); #da tuple selector DataArrayInt instance not have exactly 2 components
4741 dbl3=DataArrayDouble.New();
4743 dbl3.fillWithValue(11.);
4744 #bad number of components
4745 self.assertRaises(InterpKernelException, dbl3.getMaxValue);
4746 self.assertRaises(InterpKernelException, dd.getMaxValue);
4747 self.assertRaises(InterpKernelException, dbl3.getMinValue);
4748 self.assertRaises(InterpKernelException, dd.getMinValue);
4749 self.assertRaises(InterpKernelException, dbl3.getAverageValue);
4750 self.assertRaises(InterpKernelException, dd.getAverageValue);
4751 self.assertRaises(InterpKernelException, dd.accumulate, 100);
4752 self.assertRaises(InterpKernelException, dbl.fromPolarToCart);
4753 self.assertRaises(InterpKernelException, dbl3.fromCylToCart);
4754 self.assertRaises(InterpKernelException, dbl3.fromSpherToCart);
4755 self.assertRaises(InterpKernelException, dbl3.doublyContractedProduct);
4756 self.assertRaises(InterpKernelException, dbl3.determinant);
4757 self.assertRaises(InterpKernelException, dbl3.eigenValues);
4758 self.assertRaises(InterpKernelException, dbl3.eigenVectors);
4759 self.assertRaises(InterpKernelException, dbl3.inverse);
4760 self.assertRaises(InterpKernelException, dbl3.trace);
4761 self.assertRaises(InterpKernelException, dbl3.deviator);
4763 dbl3.setIJ(5,1,12.);
4764 self.assertTrue(dbl3.getMaxValueInArray()==12.);
4765 self.assertTrue(dbl3.getMinValueInArray()==11.);
4767 db.fillWithValue(100); #bad Ids
4768 self.assertRaises(InterpKernelException, dbl3.setPartOfValuesAdv, dbl2, db);
4769 db.fillWithValue(-1); #bad Ids
4770 self.assertRaises(InterpKernelException, dbl3.setPartOfValuesAdv, dbl2, db);
4771 db.fillWithValue(6); #bad Ids for dbl3
4772 self.assertRaises(InterpKernelException, dbl3.setPartOfValuesAdv, dbl2, db);
4774 dbl3.checkNoNullValues();
4776 self.assertRaises(InterpKernelException, dbl3.checkNoNullValues);
4777 self.assertRaises(InterpKernelException, dbl3.applyInv, 1.); #div by zero
4778 self.assertRaises(InterpKernelException, dbl2.getIdsInRange, 1., 2.);
4780 self.assertRaises(InterpKernelException, DataArrayDouble_Aggregate, a);
4781 self.assertRaises(InterpKernelException, DataArrayDouble_Meld, a);
4783 a=[dbl2,dbl]; #Nb of components mismatch
4784 self.assertRaises(InterpKernelException, DataArrayDouble_Aggregate, a);
4786 self.assertRaises(InterpKernelException, DataArrayDouble_Dot, dbl2, dbl);
4788 self.assertRaises(InterpKernelException, DataArrayDouble_CrossProduct, dbl2, dbl); #Nb of components mismatch
4789 self.assertRaises(InterpKernelException, DataArrayDouble_CrossProduct, dbl2, dbl2); #Nb of components must be equal to 3
4790 dbl4=DataArrayDouble.New();
4792 dbl5=DataArrayDouble.New();
4794 self.assertRaises(InterpKernelException, DataArrayDouble_CrossProduct, dbl4, dbl5); #Nb of tuples mismatch
4796 a[0]=dbl4; #Nb of tuple mismatch
4797 a[1]=dbl5; #Nb of tuple mismatch
4798 self.assertRaises(InterpKernelException, DataArrayDouble_Meld, a);
4799 self.assertRaises(InterpKernelException, DataArrayDouble_Dot, dbl4, dbl5);
4802 def testDAIGetIdsEqual1(self):
4803 tab1=[5,-2,-4,-2,3,2,-2];
4804 da=DataArrayInt.New();
4805 da.setValues(tab1,7,1);
4806 da2=da.getIdsEqual(-2);
4807 self.assertEqual(3,da2.getNumberOfTuples());
4808 self.assertEqual(1,da2.getNumberOfComponents());
4810 self.assertEqual(expected1,da2.getValues());
4813 def testDAIGetIdsEqualList1(self):
4814 tab1=[5,-2,-4,-2,3,2,-2];
4815 da=DataArrayInt.New();
4816 da.setValues(tab1,7,1);
4817 da2=da.getIdsEqualList([3,-2,0]);
4818 self.assertEqual(4,da2.getNumberOfTuples());
4819 self.assertEqual(1,da2.getNumberOfComponents());
4820 expected1=[1,3,4,6];
4821 self.assertEqual(expected1,da2.getValues());
4824 def testDAFromNoInterlace1(self):
4825 tab1=[1,11,21,31,41,2,12,22,32,42,3,13,23,33,43]
4826 da=DataArrayInt.New();
4827 da.setValues(tab1,5,3);
4828 da2=da.fromNoInterlace();
4829 expected1=[1,2,3,11,12,13,21,22,23,31,32,33,41,42,43]
4830 self.assertEqual(5,da2.getNumberOfTuples());
4831 self.assertEqual(3,da2.getNumberOfComponents());# it's not a bug. Avoid to have 1 million components !
4832 self.assertEqual(expected1,da2.getValues());
4833 da3=da.convertToDblArr();
4834 da4=da3.fromNoInterlace();
4835 self.assertEqual(5,da4.getNumberOfTuples());
4836 self.assertEqual(3,da4.getNumberOfComponents());# it's not a bug. Avoid to have 1 million components !
4837 for i in xrange(15):
4838 self.assertAlmostEqual(expected1[i],da4.getIJ(0,i),14);
4842 def testDAToNoInterlace1(self):
4843 tab1=[1,2,3,11,12,13,21,22,23,31,32,33,41,42,43]
4844 da=DataArrayInt.New();
4845 da.setValues(tab1,5,3);
4846 da2=da.toNoInterlace();
4847 expected1=[1,11,21,31,41,2,12,22,32,42,3,13,23,33,43]
4848 self.assertEqual(5,da2.getNumberOfTuples());
4849 self.assertEqual(3,da2.getNumberOfComponents());# it's not a bug. Avoid to have 1 million components !
4850 self.assertEqual(expected1,da2.getValues());
4851 da3=da.convertToDblArr();
4852 da4=da3.toNoInterlace();
4853 self.assertEqual(5,da4.getNumberOfTuples());
4854 self.assertEqual(3,da4.getNumberOfComponents());# it's not a bug. Avoid to have 1 million components !
4855 for i in xrange(15):
4856 self.assertAlmostEqual(expected1[i],da4.getIJ(0,i),14);
4860 def testDAIsUniform1(self):
4862 da=DataArrayInt.New();
4863 da.setValues(tab1,5,1);
4864 self.assertTrue(da.isUniform(1));
4866 self.assertTrue(not da.isUniform(1));
4868 self.assertTrue(da.isUniform(1));
4869 da2=da.convertToDblArr();
4870 self.assertTrue(da2.isUniform(1.,1.e-12));
4871 da2.setIJ(1,0,1.+1.e-13);
4872 self.assertTrue(da2.isUniform(1.,1.e-12));
4873 da2.setIJ(1,0,1.+1.e-11);
4874 self.assertTrue(not da2.isUniform(1.,1.e-12));
4877 def testDADFromPolarToCart1(self):
4878 tab1=[2.,0.2,2.5,0.7]
4879 da=DataArrayDouble.New();
4880 da.setValues(tab1,2,2);
4881 da2=da.fromPolarToCart();
4882 expected1=[1.9601331556824833,0.39733866159012243, 1.9121054682112213,1.6105442180942275]
4884 self.assertAlmostEqual(expected1[i],da2.getIJ(0,i),13);
4888 def testDADFromCylToCart1(self):
4889 tab1=[2.,0.2,4.,2.5,0.7,9.]
4890 da=DataArrayDouble.New();
4891 da.setValues(tab1,2,3);
4892 da2=da.fromCylToCart();
4893 expected1=[1.9601331556824833,0.39733866159012243,4., 1.9121054682112213,1.6105442180942275,9.]
4895 self.assertAlmostEqual(expected1[i],da2.getIJ(0,i),13);
4899 def testDADFromSpherToCart1(self):
4900 tab1=[2.,0.2,0.3,2.5,0.7,0.8]
4901 da=DataArrayDouble.New();
4902 da.setValues(tab1,2,3);
4903 da2=da.fromSpherToCart();
4904 expected1=[0.37959212195737485,0.11742160338765303,1.9601331556824833, 1.1220769624465328,1.1553337045129035,1.9121054682112213]
4906 self.assertAlmostEqual(expected1[i],da2.getIJ(0,i),13);
4910 def testUnPolyze1(self):
4911 elts=[0,1,2,3,4,5,6,7]
4913 mesh=MEDCouplingDataForTest.build3DTargetMesh_1();
4914 mesh.convertToPolyTypes(eltsV);
4916 mesh2=MEDCouplingDataForTest.build3DTargetMesh_1();
4917 mesh.checkCoherency();
4918 self.assertTrue(mesh.isEqual(mesh2,1e-12));
4919 mesh.convertToPolyTypes(eltsV);
4920 self.assertTrue(not mesh.isEqual(mesh2,1e-12));
4921 mesh.getNodalConnectivity().setIJ(0,6,10);
4922 mesh.getNodalConnectivity().setIJ(0,7,9);
4923 mesh.getNodalConnectivity().setIJ(0,8,12);
4924 mesh.getNodalConnectivity().setIJ(0,9,13);
4926 self.assertTrue(mesh.isEqual(mesh2,1e-12));
4927 mesh.convertToPolyTypes(eltsV);
4928 mesh.getNodalConnectivity().setIJ(0,6,12);
4929 mesh.getNodalConnectivity().setIJ(0,7,13);
4930 mesh.getNodalConnectivity().setIJ(0,8,10);
4931 mesh.getNodalConnectivity().setIJ(0,9,9);
4933 self.assertTrue(mesh.isEqual(mesh2,1e-12));
4934 mesh.convertToPolyTypes(eltsV);
4935 mesh.getNodalConnectivity().setIJ(0,6,12);
4936 mesh.getNodalConnectivity().setIJ(0,7,10);
4937 mesh.getNodalConnectivity().setIJ(0,8,13);
4938 mesh.getNodalConnectivity().setIJ(0,9,9);
4940 self.assertTrue(not mesh.isEqual(mesh2,1e-12));
4942 mesh=MEDCouplingDataForTest.build2DTargetMesh_1();
4943 mesh2=MEDCouplingDataForTest.build2DTargetMesh_1();
4945 mesh.convertToPolyTypes(eltsV);
4946 self.assertTrue(not mesh.isEqual(mesh2,1e-12));
4948 self.assertTrue(mesh.isEqual(mesh2,1e-12));
4951 def testConvertDegeneratedCells1(self):
4952 mesh=MEDCouplingDataForTest.build3DTargetMesh_1();
4953 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]
4954 mesh.allocateCells(4);
4955 mesh.insertNextCell(NORM_HEXA8,8,conn[0:8])
4956 mesh.insertNextCell(NORM_HEXA8,8,conn[8:16])
4957 mesh.insertNextCell(NORM_HEXA8,8,conn[16:24])
4958 mesh.insertNextCell(NORM_HEXA8,8,conn[24:32])
4959 mesh.finishInsertingCells();
4960 mesh.checkCoherency();
4961 self.assertEqual(4,mesh.getNumberOfCells());
4962 self.assertEqual(NORM_HEXA8,mesh.getTypeOfCell(0));
4963 self.assertEqual(NORM_HEXA8,mesh.getTypeOfCell(1));
4964 self.assertEqual(NORM_HEXA8,mesh.getTypeOfCell(2));
4965 self.assertEqual(NORM_HEXA8,mesh.getTypeOfCell(3));
4966 f1=mesh.getMeasureField(True);
4967 mesh.convertDegeneratedCells();
4968 mesh.checkCoherency();
4969 f2=mesh.getMeasureField(True);
4970 self.assertEqual(4,mesh.getNumberOfCells());
4971 self.assertEqual(NORM_PENTA6,mesh.getTypeOfCell(0));
4972 self.assertEqual(NORM_PYRA5,mesh.getTypeOfCell(1));
4973 self.assertEqual(NORM_TETRA4,mesh.getTypeOfCell(2));
4974 self.assertEqual(NORM_PYRA5,mesh.getTypeOfCell(3));
4976 self.assertAlmostEqual(f1.getArray().getIJ(0,i),f2.getArray().getIJ(0,i),5);
4980 def testGetNodeIdsNearPoints1(self):
4981 mesh=MEDCouplingDataForTest.build2DTargetMesh_1();
4982 coords=mesh.getCoords();
4983 tmp=DataArrayDouble.New();
4984 vals=[0.2,0.2,0.1,0.2,0.2,0.2]
4985 tmp.setValues(vals,3,2);
4986 tmp2=DataArrayDouble.Aggregate(coords,tmp);
4987 mesh.setCoords(tmp2);
4988 pts=[0.2,0.2,0.1,0.3,-0.3,0.7]
4989 c=mesh.getNodeIdsNearPoint(pts[:2],1e-7);
4990 self.assertEqual([4,9,11],c.getValues());
4991 c,cI=mesh.getNodeIdsNearPoints(pts,3,1e-7);
4992 self.assertEqual([0,3,3,4],cI.getValues());
4993 self.assertEqual([4,9,11,6],c.getValues());
4994 c,cI=mesh.getNodeIdsNearPoints(pts,1e-7);
4995 self.assertEqual([0,3,3,4],cI.getValues());
4996 self.assertEqual([4,9,11,6],c.getValues());
4997 c,cI=mesh.getNodeIdsNearPoints(DataArrayDouble.New(pts,3,2),1e-7);
4998 self.assertEqual([0,3,3,4],cI.getValues());
4999 self.assertEqual([4,9,11,6],c.getValues());
5000 self.assertRaises(InterpKernelException,mesh.getNodeIdsNearPoints,DataArrayDouble.New(pts,2,3),1e-7);
5003 def testFieldCopyTinyAttrFrom1(self):
5004 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
5006 f1.setTimeTolerance(1.e-5);
5007 f1.setDescription("f1Desc");
5008 f1.setTime(1.23,4,5);
5009 f2=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
5011 f2.setDescription("f2Desc");
5012 f2.setTime(6.78,9,10);
5013 f2.setTimeTolerance(4.556e-12);
5015 f1.copyTinyAttrFrom(f2);
5016 self.assertAlmostEqual(4.556e-12,f1.getTimeTolerance(),24);
5017 t,dt,it=f1.getTime()
5018 self.assertAlmostEqual(6.78,t,12);
5019 self.assertEqual(9,dt);
5020 self.assertEqual(10,it);
5021 self.assertTrue(f1.getName()=="f1");#name unchanged
5022 self.assertTrue(f1.getDescription()=="f1Desc");#description unchanged
5024 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
5026 f1.setTimeTolerance(1.e-5);
5027 f1.setDescription("f1Desc");
5028 f2=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
5030 f2.setDescription("f2Desc");
5031 f2.setTimeTolerance(4.556e-12);
5033 f1.copyTinyAttrFrom(f2);
5034 self.assertAlmostEqual(4.556e-12,f1.getTimeTolerance(),24);
5035 self.assertTrue(f1.getName()=="f1");#name unchanged
5036 self.assertTrue(f1.getDescription()=="f1Desc");#description unchanged
5038 f1=MEDCouplingFieldDouble.New(ON_CELLS,CONST_ON_TIME_INTERVAL);
5040 f1.setTimeTolerance(1.e-5);
5041 f1.setDescription("f1Desc");
5042 f1.setTime(1.23,4,5);
5043 f1.setEndTime(5.43,2,1);
5044 f2=MEDCouplingFieldDouble.New(ON_CELLS,CONST_ON_TIME_INTERVAL);
5046 f2.setDescription("f2Desc");
5047 f2.setTimeTolerance(4.556e-12);
5048 f2.setTime(6.78,9,10);
5049 f2.setEndTime(10.98,7,6);
5051 f1.copyTinyAttrFrom(f2);
5052 self.assertAlmostEqual(4.556e-12,f1.getTimeTolerance(),24);
5053 self.assertTrue(f1.getName()=="f1");#name unchanged
5054 self.assertTrue(f1.getDescription()=="f1Desc");#description unchanged
5055 t,dt,it=f1.getTime()
5056 self.assertAlmostEqual(6.78,t,12);
5057 self.assertEqual(9,dt);
5058 self.assertEqual(10,it);
5059 t,dt,it=f1.getEndTime()
5060 self.assertAlmostEqual(10.98,t,12);
5061 self.assertEqual(7,dt);
5062 self.assertEqual(6,it);
5064 f1=MEDCouplingFieldDouble.New(ON_CELLS,LINEAR_TIME);
5066 f1.setTimeTolerance(1.e-5);
5067 f1.setDescription("f1Desc");
5068 f1.setTime(1.23,4,5);
5069 f1.setEndTime(5.43,2,1);
5070 f2=MEDCouplingFieldDouble.New(ON_CELLS,LINEAR_TIME);
5072 f2.setDescription("f2Desc");
5073 f2.setTimeTolerance(4.556e-12);
5074 f2.setTime(6.78,9,10);
5075 f2.setEndTime(10.98,7,6);
5077 f1.copyTinyAttrFrom(f2);
5078 self.assertAlmostEqual(4.556e-12,f1.getTimeTolerance(),24);
5079 self.assertTrue(f1.getName()=="f1");#name unchanged
5080 self.assertTrue(f1.getDescription()=="f1Desc");#description unchanged
5081 t,dt,it=f1.getTime()
5082 self.assertAlmostEqual(6.78,t,12);
5083 self.assertEqual(9,dt);
5084 self.assertEqual(10,it);
5085 t,dt,it=f1.getEndTime()
5086 self.assertAlmostEqual(10.98,t,12);
5087 self.assertEqual(7,dt);
5088 self.assertEqual(6,it);
5091 def testExtrudedMesh5(self):
5093 a=DataArrayDouble.New();
5094 a.setValues(coo1,4,1);
5095 b=MEDCouplingCMesh.New();
5097 c=b.buildUnstructured();
5098 self.assertEqual(1,c.getSpaceDimension());
5099 c.changeSpaceDimension(2);
5101 d=DataArrayDouble.New();
5104 e=MEDCouplingCMesh.New();
5106 f=e.buildUnstructured();
5107 g=f.getCoords().applyFunc(2,"3.5*IVec+x/6*3.14159265359*JVec");
5108 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 !
5109 h=g.fromPolarToCart();
5111 i=c.buildExtrudedMesh(f,1);
5112 self.assertEqual(52,i.getNumberOfNodes());
5113 tmp,tmp2,tmp3=i.mergeNodes(1e-9);
5114 self.assertTrue(tmp2);
5115 self.assertEqual(37,tmp3);
5116 i.convertDegeneratedCells();
5118 self.assertEqual(36,i.getNumberOfCells());
5119 self.assertEqual(37,i.getNumberOfNodes());
5120 self.assertEqual(12,i.getNumberOfCellsWithType(NORM_TRI3));
5121 self.assertEqual(24,i.getNumberOfCellsWithType(NORM_QUAD4));
5122 expected1=[0.25,0.75,2.0625]
5123 j=i.getMeasureField(True);
5124 for ii in xrange(12):
5126 self.assertAlmostEqual(expected1[k],j.getIJ(0,ii*3+k),10);
5129 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]
5130 m=i.getBarycenterAndOwner();
5131 for i in xrange(72):
5132 self.assertAlmostEqual(expected2[i],m.getIJ(0,i),10);
5137 def testExtrudedMesh6(self):
5139 a=DataArrayDouble.New();
5140 a.setValues(coo1,4,1);
5141 b=MEDCouplingCMesh.New();
5143 c=b.buildUnstructured();
5144 self.assertEqual(1,c.getSpaceDimension());
5145 c.changeSpaceDimension(2);
5147 d=DataArrayDouble.New();
5150 e=MEDCouplingCMesh.New();
5152 f=e.buildUnstructured();
5153 d2=f.getCoords().applyFunc("x*x/2");
5155 f.changeSpaceDimension(2);
5158 f.rotate(center,None,pi/3);
5159 g=c.buildExtrudedMesh(f,0);
5161 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 ]
5162 f1=g.getMeasureField(True);
5163 for i in xrange(12):
5164 self.assertAlmostEqual(expected1[i],f1.getIJ(0,i),12);
5166 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]
5167 f2=g.getBarycenterAndOwner();
5168 for i in xrange(24):
5169 self.assertAlmostEqual(expected2[i],f2.getIJ(0,i),12);
5173 def testExtrudedMesh7(self):
5175 a=DataArrayDouble.New();
5176 a.setValues(coo1,4,1);
5177 b=MEDCouplingCMesh.New();
5179 c=b.buildUnstructured();
5180 self.assertEqual(1,c.getSpaceDimension());
5181 c.changeSpaceDimension(2);
5183 d=DataArrayDouble.New();
5186 e=MEDCouplingCMesh.New();
5188 f=e.buildUnstructured();
5189 g=f.getCoords().applyFunc(2,"3.5*IVec+x/6*3.14159265359*JVec");
5190 h=g.fromPolarToCart();
5192 i=c.buildExtrudedMesh(f,1);
5193 self.assertEqual(52,i.getNumberOfNodes());
5194 tmp,tmp2,tmp3=i.mergeNodes(1e-9);
5195 self.assertTrue(tmp2);
5196 self.assertEqual(37,tmp3);
5197 i.convertDegeneratedCells();
5200 g2=h.applyFunc(3,"13.5/3.5*x*IVec+0*JVec+13.5/3.5*y*KVec");
5202 i.changeSpaceDimension(3);
5203 i3=i.buildExtrudedMesh(f,1);
5204 f2=i3.getMeasureField(True);
5205 tmp,tmp2,tmp3=i.mergeNodes(1e-9);
5206 self.assertTrue(tmp2);
5207 self.assertEqual(444,tmp3);
5208 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]
5209 for ii in xrange(12):
5210 for jj in xrange(36):
5211 self.assertAlmostEqual(expected1[jj],f2.getIJ(0,ii*36+jj),9);
5216 def testSimplexize1(self):
5217 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
5218 m.convertToPolyTypes([3]);
5220 self.assertEqual(7,da.getNumberOfTuples());
5221 self.assertEqual(1,da.getNumberOfComponents());
5222 expected2=[0,0,1,2,3,4,4]
5224 self.assertEqual(expected2[i],da.getIJ(i,0));
5227 self.assertEqual(7,m.getNumberOfCells());
5228 self.assertEqual(NORM_TRI3,m.getTypeOfCell(0));
5229 self.assertEqual(NORM_TRI3,m.getTypeOfCell(1));
5230 self.assertEqual(NORM_TRI3,m.getTypeOfCell(2));
5231 self.assertEqual(NORM_TRI3,m.getTypeOfCell(3));
5232 self.assertEqual(NORM_POLYGON,m.getTypeOfCell(4));
5233 self.assertEqual(NORM_TRI3,m.getTypeOfCell(5));
5234 self.assertEqual(NORM_TRI3,m.getTypeOfCell(6));
5235 expected1=[0.125,0.125,0.125,0.125,0.25,0.125,0.125]
5236 f=m.getMeasureField(False);
5238 self.assertAlmostEqual(expected1[i]*sqrt(2.),f.getIJ(i,0),10);
5240 types=m.getAllGeoTypes();
5241 self.assertEqual([NORM_TRI3,NORM_POLYGON],types);
5243 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
5244 m.convertToPolyTypes([3]);
5246 self.assertEqual(7,da.getNumberOfTuples());
5247 self.assertEqual(1,da.getNumberOfComponents());
5249 self.assertEqual(expected2[i],da.getIJ(i,0));
5252 types=m.getAllGeoTypes();
5253 self.assertEqual([NORM_TRI3,NORM_POLYGON],types);
5254 self.assertEqual(7,m.getNumberOfCells());
5255 self.assertEqual(NORM_TRI3,m.getTypeOfCell(0));
5256 self.assertEqual(NORM_TRI3,m.getTypeOfCell(1));
5257 self.assertEqual(NORM_TRI3,m.getTypeOfCell(2));
5258 self.assertEqual(NORM_TRI3,m.getTypeOfCell(3));
5259 self.assertEqual(NORM_POLYGON,m.getTypeOfCell(4));
5260 self.assertEqual(NORM_TRI3,m.getTypeOfCell(5));
5261 self.assertEqual(NORM_TRI3,m.getTypeOfCell(6));
5262 f=m.getMeasureField(False);
5264 self.assertAlmostEqual(expected1[i]*sqrt(2.),f.getIJ(i,0),10);
5268 def testSimplexize2(self):
5269 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
5270 m.convertToPolyTypes([3]);
5271 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
5273 arr=DataArrayDouble.New();
5274 arr1=[10.,110.,20.,120.,30.,130.,40.,140.,50.,150.]
5275 arr.setValues(arr1,5,2);
5278 f1.checkCoherency();
5279 self.assertTrue(f1.simplexize(0));
5280 f1.checkCoherency();
5281 expected1=[10.,110.,10.,110.,20.,120.,30.,130.,40.,140.,50.,150.,50.,150.]
5282 for i in xrange(14):
5283 self.assertAlmostEqual(expected1[i],f1.getIJ(0,i),10);
5285 self.assertTrue(not f1.simplexize(0));
5286 for i in xrange(14):
5287 self.assertAlmostEqual(expected1[i],f1.getIJ(0,i),10);
5292 def testDAMeld1(self):
5293 da1=DataArrayDouble.New();
5295 da2=DataArrayDouble.New();
5298 da1.fillWithValue(7.);
5300 da3=da2.applyFunc(3,"10*x*IVec+100*x*JVec+1000*x*KVec");
5302 da1.setInfoOnComponent(0,"c0da1");
5303 da1.setInfoOnComponent(1,"c1da1");
5304 da3.setInfoOnComponent(0,"c0da3");
5305 da3.setInfoOnComponent(1,"c1da3");
5306 da3.setInfoOnComponent(2,"c2da3");
5310 self.assertEqual(5,da1.getNumberOfComponents());
5311 self.assertEqual(7,da1.getNumberOfTuples());
5312 self.assertTrue(da1.getInfoOnComponent(0)=="c0da1");
5313 self.assertTrue(da1.getInfoOnComponent(1)=="c1da1");
5314 self.assertTrue(da1.getInfoOnComponent(2)=="c0da3");
5315 self.assertTrue(da1.getInfoOnComponent(3)=="c1da3");
5316 self.assertTrue(da1.getInfoOnComponent(4)=="c2da3");
5318 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.]
5319 for i in xrange(35):
5320 self.assertAlmostEqual(expected1[i],da1.getIJ(0,i),10);
5323 dai1=da1C.convertToIntArr();
5324 dai3=da3.convertToIntArr();
5325 dai1.meldWith(dai3);
5326 self.assertEqual(5,dai1.getNumberOfComponents());
5327 self.assertEqual(7,dai1.getNumberOfTuples());
5328 self.assertTrue(dai1.getInfoOnComponent(0)=="c0da1");
5329 self.assertTrue(dai1.getInfoOnComponent(1)=="c1da1");
5330 self.assertTrue(dai1.getInfoOnComponent(2)=="c0da3");
5331 self.assertTrue(dai1.getInfoOnComponent(3)=="c1da3");
5332 self.assertTrue(dai1.getInfoOnComponent(4)=="c2da3");
5333 for i in xrange(35):
5334 self.assertEqual(int(expected1[i]),dai1.getIJ(0,i));
5336 # test of static method DataArrayDouble::meld
5337 da4=DataArrayDouble.Meld(da1C,da3);
5338 tmp=DataArrayDouble.Meld([da1C,da3]);
5339 self.assertTrue(da4.isEqual(tmp,1e-10))
5340 self.assertEqual(5,da4.getNumberOfComponents());
5341 self.assertEqual(7,da4.getNumberOfTuples());
5342 self.assertTrue(da4.getInfoOnComponent(0)=="c0da1");
5343 self.assertTrue(da4.getInfoOnComponent(1)=="c1da1");
5344 self.assertTrue(da4.getInfoOnComponent(2)=="c0da3");
5345 self.assertTrue(da4.getInfoOnComponent(3)=="c1da3");
5346 self.assertTrue(da4.getInfoOnComponent(4)=="c2da3");
5347 for i in xrange(35):
5348 self.assertAlmostEqual(expected1[i],da4.getIJ(0,i),10);
5350 # test of static method DataArrayInt::meld
5351 dai1=da1C.convertToIntArr();
5352 dai4=DataArrayInt.Meld(dai1,dai3);
5353 tmp=DataArrayInt.Meld([dai1,dai3]);
5354 self.assertTrue(dai4.isEqual(tmp))
5355 self.assertEqual(5,dai4.getNumberOfComponents());
5356 self.assertEqual(7,dai4.getNumberOfTuples());
5357 self.assertTrue(dai4.getInfoOnComponent(0)=="c0da1");
5358 self.assertTrue(dai4.getInfoOnComponent(1)=="c1da1");
5359 self.assertTrue(dai4.getInfoOnComponent(2)=="c0da3");
5360 self.assertTrue(dai4.getInfoOnComponent(3)=="c1da3");
5361 self.assertTrue(dai4.getInfoOnComponent(4)=="c2da3");
5362 for i in xrange(35):
5363 self.assertEqual(int(expected1[i]),dai4.getIJ(0,i));
5367 def testFieldMeld1(self):
5368 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
5369 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
5371 da1=DataArrayDouble.New();
5372 arr1=[12.,23.,34.,45.,56.]
5373 da1.setValues(arr1,5,1);
5374 da1.setInfoOnComponent(0,"aaa");
5376 f1.setTime(3.4,2,1);
5377 f1.checkCoherency();
5380 f2.setMesh(f1.getMesh());
5381 f2.checkCoherency();
5382 f2.changeNbOfComponents(2,5.);
5384 f2.getArray().setInfoOnComponent(0,"bbb");
5385 f2.getArray().setInfoOnComponent(1,"ccc");
5386 f2.checkCoherency();
5388 f3=MEDCouplingFieldDouble.MeldFields(f2,f1);
5389 f3.checkCoherency();
5390 self.assertEqual(5,f3.getNumberOfTuples());
5391 self.assertEqual(3,f3.getNumberOfComponents());
5392 self.assertTrue(f3.getArray().getInfoOnComponent(0)=="bbb");
5393 self.assertTrue(f3.getArray().getInfoOnComponent(1)=="ccc");
5394 self.assertTrue(f3.getArray().getInfoOnComponent(2)=="aaa");
5395 expected1=[5.,5.,12.,5.,5.,23.,5.,5.,34.,5.,5.,45.,5.,5.,56.]
5396 for i in xrange(15):
5397 self.assertAlmostEqual(expected1[i],f3.getIJ(0,i),12);
5399 time,dt,it=f3.getTime();
5400 self.assertAlmostEqual(3.4,time,14);
5401 self.assertEqual(2,dt);
5402 self.assertEqual(1,it);
5404 f4=f2.buildNewTimeReprFromThis(NO_TIME,False);
5405 f5=f1.buildNewTimeReprFromThis(NO_TIME,False);
5406 f6=MEDCouplingFieldDouble.MeldFields(f4,f5);
5407 f6.checkCoherency();
5408 self.assertEqual(5,f6.getNumberOfTuples());
5409 self.assertEqual(3,f6.getNumberOfComponents());
5410 self.assertTrue(f6.getArray().getInfoOnComponent(0)=="bbb");
5411 self.assertTrue(f6.getArray().getInfoOnComponent(1)=="ccc");
5412 self.assertTrue(f6.getArray().getInfoOnComponent(2)=="aaa");
5413 for i in xrange(15):
5414 self.assertAlmostEqual(expected1[i],f6.getIJ(0,i),12);
5419 def testMergeNodes2(self):
5420 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
5421 m2=MEDCouplingDataForTest.build2DTargetMesh_1();
5425 m3=MEDCouplingUMesh.MergeUMeshes([m1,m2]);
5426 da,b,newNbOfNodes=m3.mergeNodes2(0.01);
5427 self.assertEqual(9,m3.getNumberOfNodes());
5428 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]
5429 for i in xrange(18):
5430 self.assertAlmostEqual(expected1[i],m3.getCoords().getIJ(0,i),13);
5435 def testMergeField2(self):
5436 m=MEDCouplingDataForTest.build2DTargetMesh_1();
5437 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
5439 arr=DataArrayDouble.New();
5441 arr.fillWithValue(2.);
5443 f2=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
5445 arr=DataArrayDouble.New();
5447 arr.fillWithValue(5.);
5449 f3=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
5451 arr=DataArrayDouble.New();
5453 arr.fillWithValue(7.);
5456 f4=MEDCouplingFieldDouble.MergeFields([f1,f2,f3]);
5457 self.assertEqual(15,f4.getMesh().getNumberOfCells());
5458 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.]
5459 for i in xrange(30):
5460 self.assertAlmostEqual(expected1[i],f4.getIJ(0,i),13);
5465 def testDAIBuildComplement1(self):
5466 a=DataArrayInt.New();
5468 a.setValues(tab,4,1);
5469 b=a.buildComplement(12);
5470 self.assertEqual(8,b.getNumberOfTuples());
5471 self.assertEqual(1,b.getNumberOfComponents());
5472 expected1=[0,2,4,5,6,9,10,11]
5474 self.assertEqual(expected1[i],b.getIJ(0,i));
5478 def testDAIBuildUnion1(self):
5479 a=DataArrayInt.New();
5481 a.setValues(tab1,4,1);
5482 c=DataArrayInt.New();
5484 c.setValues(tab2,5,1);
5486 self.assertEqual(7,b.getNumberOfTuples());
5487 self.assertEqual(1,b.getNumberOfComponents());
5488 expected1=[0,1,3,5,7,8,18]
5490 self.assertEqual(expected1[i],b.getIJ(0,i));
5492 b=DataArrayInt.BuildUnion([a,c]);
5493 self.assertEqual(7,b.getNumberOfTuples());
5494 self.assertEqual(1,b.getNumberOfComponents());
5495 expected1=[0,1,3,5,7,8,18]
5497 self.assertEqual(expected1[i],b.getIJ(0,i));
5501 def testDAIBuildIntersection1(self):
5502 a=DataArrayInt.New();
5504 a.setValues(tab1,4,1);
5505 c=DataArrayInt.New();
5507 c.setValues(tab2,5,1);
5508 b=a.buildIntersection(c);
5509 self.assertEqual(2,b.getNumberOfTuples());
5510 self.assertEqual(1,b.getNumberOfComponents());
5513 self.assertEqual(expected1[i],b.getIJ(0,i));
5515 b=DataArrayInt.BuildIntersection([a,c]);
5516 self.assertEqual(2,b.getNumberOfTuples());
5517 self.assertEqual(1,b.getNumberOfComponents());
5520 self.assertEqual(expected1[i],b.getIJ(0,i));
5524 def testDAIDeltaShiftIndex1(self):
5525 a=DataArrayInt.New();
5526 tab=[1,3,6,7,7,9,15]
5527 a.setValues(tab,7,1);
5528 b=a.deltaShiftIndex();
5529 self.assertEqual(6,b.getNumberOfTuples());
5530 self.assertEqual(1,b.getNumberOfComponents());
5531 expected1=[2,3,1,0,2,6]
5533 self.assertEqual(expected1[i],b.getIJ(0,i));
5537 def testDaDoubleSelectByTupleIdSafe1(self):
5538 a=DataArrayDouble.New();
5539 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]
5540 a.setValues(arr1,7,2);
5541 a.setInfoOnComponent(0,"toto");
5542 a.setInfoOnComponent(1,"tata");
5545 b=a.selectByTupleIdSafe(arr2);
5546 self.assertEqual(5,b.getNumberOfTuples());
5547 self.assertEqual(2,b.getNumberOfComponents());
5548 self.assertTrue(b.getInfoOnComponent(0)=="toto");
5549 self.assertTrue(b.getInfoOnComponent(1)=="tata");
5550 expected1=[5.1,15.1,3.1,13.1,1.1,11.1,7.1,17.1,6.1,16.1]
5551 for i in xrange(10):
5552 self.assertAlmostEqual(expected1[i],b.getIJ(0,i),14);
5555 self.assertRaises(InterpKernelException,a.selectByTupleIdSafe,arr4);
5557 self.assertRaises(InterpKernelException,a.selectByTupleIdSafe,arr5);
5559 c=DataArrayInt.New();
5560 arr3=[1,11,2,12,3,13,4,14,5,15,6,16,7,17]
5561 c.setValues(arr3,7,2);
5562 c.setInfoOnComponent(0,"toto");
5563 c.setInfoOnComponent(1,"tata");
5564 d=c.selectByTupleIdSafe(arr2);
5565 self.assertEqual(5,d.getNumberOfTuples());
5566 self.assertEqual(2,d.getNumberOfComponents());
5567 self.assertTrue(d.getInfoOnComponent(0)=="toto");
5568 self.assertTrue(d.getInfoOnComponent(1)=="tata");
5569 expected2=[5,15,3,13,1,11,7,17,6,16]
5570 for i in xrange(10):
5571 self.assertEqual(expected2[i],d.getIJ(0,i));
5573 self.assertRaises(InterpKernelException,c.selectByTupleIdSafe,arr4);
5574 self.assertRaises(InterpKernelException,c.selectByTupleIdSafe,arr5);
5577 def testAreCellsIncludedIn1(self):
5578 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
5580 m2=m.buildPartOfMySelf(pt,True);
5581 ret,tmp=m.areCellsIncludedIn(m2,0)
5582 self.assertTrue(ret);
5583 self.assertEqual(2,tmp.getNumberOfTuples());
5584 self.assertEqual(1,tmp.getNumberOfComponents());
5585 self.assertEqual(pt[0],tmp.getIJ(0,0));
5586 self.assertEqual(pt[1],tmp.getIJ(0,1));
5587 ret,tmp=m2.areCellsIncludedIn(m,0)
5588 self.assertTrue(not ret);
5589 m3=MEDCouplingUMesh.MergeUMeshesOnSameCoords(m,m2)
5590 c,cI=m3.findCommonCells(2,m.getNumberOfCells())
5591 self.assertTrue(c.isEqual(DataArrayInt([1,5,3,6])))
5592 self.assertTrue(cI.isEqual(DataArrayInt([0,2,4])))
5595 def testSwigErrorProtection1(self):
5596 m=MEDCouplingDataForTest.build3DTargetMesh_1();
5597 m.rotate([0.,0.,0.],[0.3,0.6,1.2],0.37)
5598 m.rotate([0.,0.,0.],[0.3,6,1.2],0.37)
5599 self.assertRaises(InterpKernelException,m.rotate,[0.,0.,0.],(0.3,6,"1.2"),0.37)
5600 self.assertRaises(InterpKernelException,m.rotate,[0.,"0.",0.],[0.3,0.6,1.2],0.37)
5601 self.assertRaises(InterpKernelException,m.rotate,[0.,0.,0.],[0.3,'0.6',1.2],0.37)
5602 m2=m.buildPartOfMySelf([2,5],True)
5603 m3=m.buildPartOfMySelf((2,5),True)
5604 self.assertTrue(m2.isEqual(m3,1e-12))
5605 self.assertRaises(InterpKernelException,m.buildPartOfMySelf,[2,5.],True)
5606 da1=m.getCoords().keepSelectedComponents([1])
5607 da2=m.getCoords().keepSelectedComponents((1,))
5608 self.assertTrue(da1.isEqual(da2,1e-12))
5609 self.assertRaises(InterpKernelException,m.getCoords().keepSelectedComponents,["1"])
5612 def testDAIBuildSubstraction1(self):
5613 a=DataArrayInt.New()
5616 b=DataArrayInt.New()
5619 self.assertEqual([2,6,8],a.buildSubstraction(b).getValues())
5622 def testBuildOrthogonalField2(self):
5623 m=MEDCouplingDataForTest.build2DTargetMesh_1();
5624 d1=DataArrayInt.New();
5625 d2=DataArrayInt.New();
5626 d3=DataArrayInt.New();
5627 d4=DataArrayInt.New();
5628 m1=m.buildDescendingConnectivity(d1,d2,d3,d4);
5630 f1=m1.buildOrthogonalField();
5632 self.assertEqual(2,da1.getNumberOfComponents());
5633 self.assertEqual(13,da1.getNumberOfTuples());
5635 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.];
5636 for i in xrange(26):
5637 self.assertAlmostEqual(expected1[i],da1.getIJ(0,i),14);
5641 def testSwigErrorProtection2(self):
5642 m=MEDCouplingDataForTest.build2DTargetMesh_1();
5644 c=m.getNodalConnectivity()
5645 ci=m.getNodalConnectivityIndex()
5647 self.assertEqual(2,coo.getNumberOfComponents());
5648 self.assertEqual(6,ci.getNumberOfTuples());
5649 self.assertEqual(23,c.getNumberOfTuples());
5650 m=MEDCouplingDataForTest.build2DTargetMesh_1();
5651 f=m.getMeasureField(True)
5654 self.assertEqual(1,c.getNumberOfComponents());
5655 m=MEDCouplingCMesh.New()
5656 x=DataArrayDouble.New()
5657 x.setValues([1.,2.,4.],3,1)
5662 self.assertEqual(3,xx.getNumberOfTuples());
5664 m=MEDCouplingDataForTest.build2DTargetMesh_1();
5665 f=m.getMeasureField(True)
5669 self.assertEqual(5,m2.getNumberOfCells());
5672 def testUMInsertNextCell1(self):
5673 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 ]
5674 targetConn=[0,3,4,1, 1,4,2, 4,5,2, 6,7,4,3, 7,8,5,4]
5675 targetMesh=MEDCouplingUMesh.New();
5676 targetMesh.allocateCells(5);
5677 self.assertRaises(InterpKernelException,targetMesh.insertNextCell,NORM_QUAD4,4,targetConn[0:4])
5678 targetMesh.setMeshDimension(2);
5679 targetMesh.insertNextCell(NORM_QUAD4,4,targetConn[0:4])
5680 self.assertRaises(InterpKernelException,targetMesh.insertNextCell,NORM_TETRA4,4,targetConn[0:4])
5681 self.assertRaises(InterpKernelException,targetMesh.insertNextCell,NORM_SEG2,2,targetConn[0:2])
5682 self.assertRaises(InterpKernelException,targetMesh.insertNextCell,NORM_POINT1,1,targetConn[0:1])
5683 targetMesh.insertNextCell(NORM_TRI3,3,targetConn[4:7])
5684 targetMesh.insertNextCell(NORM_TRI3,3,targetConn[7:10])
5685 targetMesh.insertNextCell(NORM_QUAD4,4,targetConn[10:14])
5686 targetMesh.insertNextCell(NORM_QUAD4,4,targetConn[14:18])
5687 targetMesh.finishInsertingCells();
5688 myCoords=DataArrayDouble.New();
5689 myCoords.setValues(targetCoords,9,2);
5690 targetMesh.setCoords(myCoords);
5691 targetMesh.checkCoherency();
5694 def testFieldOperatorDivDiffComp1(self):
5695 m=MEDCouplingDataForTest.build2DTargetMesh_1();
5696 m1,d0,d1,d2,d3=m.buildDescendingConnectivity();
5698 f1=m1.buildOrthogonalField();
5699 arr1=[2.,3.,4.,5.,6.,7.,8.,9.,10.,11.,12.,13.,14.]
5700 arr=DataArrayDouble.New();
5701 arr.setValues(arr1,13,1);
5702 f2=MEDCouplingFieldDouble.New(ON_CELLS);
5705 f2.checkCoherency();
5708 self.assertRaises(InterpKernelException,f2.__div__,f1)
5709 f3.checkCoherency();
5711 #self.assertRaises(InterpKernelException,f2.__idiv__,f1) # mem leaks
5712 self.assertTrue(f1.isEqual(f3,1e-10,1e-10));
5713 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]
5714 for i in xrange(26):
5715 self.assertAlmostEqual(expected1[i],f3.getIJ(0,i),10);
5719 def testDARearrange1(self):
5720 da1=DataArrayInt.New();
5724 self.assertEqual(12,da1.getNbOfElems());
5725 self.assertEqual(1,da1.getNumberOfComponents());
5726 self.assertEqual(12,da1.getNumberOfTuples());
5728 self.assertEqual(12,da1.getNbOfElems());
5729 self.assertEqual(4,da1.getNumberOfComponents());
5730 self.assertEqual(3,da1.getNumberOfTuples());
5731 for i in xrange(12):
5732 self.assertEqual(i,da1.getIJ(0,i));
5735 self.assertEqual(12,da1.getNbOfElems());
5736 self.assertEqual(6,da1.getNumberOfComponents());
5737 self.assertEqual(2,da1.getNumberOfTuples());
5738 for i in xrange(12):
5739 self.assertEqual(i,da1.getIJ(0,i));
5741 self.assertRaises(InterpKernelException,da1.rearrange,7);
5744 self.assertEqual(12,da1.getNbOfElems());
5745 self.assertEqual(12,da1.getNumberOfComponents());
5746 self.assertEqual(1,da1.getNumberOfTuples());
5747 for i in xrange(12):
5748 self.assertEqual(i,da1.getIJ(0,i));
5751 self.assertEqual(12,da1.getNbOfElems());
5752 self.assertEqual(3,da1.getNumberOfComponents());
5753 self.assertEqual(4,da1.getNumberOfTuples());
5754 for i in xrange(12):
5755 self.assertEqual(i,da1.getIJ(0,i));
5757 da2=da1.convertToDblArr();
5758 st=da2.getHiddenCppPointer()
5760 self.assertEqual(12,da2.getNbOfElems());
5761 self.assertEqual(3,da2.getNumberOfComponents());
5762 self.assertEqual(4,da2.getNumberOfTuples());
5764 self.assertEqual(12,da2.getNbOfElems());
5765 self.assertEqual(4,da2.getNumberOfComponents());
5766 self.assertEqual(3,da2.getNumberOfTuples());
5767 for i in xrange(12):
5768 self.assertAlmostEqual(float(i),da2.getIJ(0,i),14);
5771 self.assertEqual(12,da2.getNbOfElems());
5772 self.assertEqual(6,da2.getNumberOfComponents());
5773 self.assertEqual(2,da2.getNumberOfTuples());
5774 for i in xrange(12):
5775 self.assertAlmostEqual(float(i),da2.getIJ(0,i),14);
5777 self.assertRaises(InterpKernelException,da2.rearrange,7);
5780 self.assertEqual(st,da2.getHiddenCppPointer())
5781 self.assertEqual(12,da2.getNbOfElems());
5782 self.assertEqual(1,da2.getNumberOfComponents());
5783 self.assertEqual(12,da2.getNumberOfTuples());
5784 for i in xrange(12):
5785 self.assertAlmostEqual(float(i),da2.getIJ(0,i),14);
5788 self.assertEqual(12,da2.getNbOfElems());
5789 self.assertEqual(3,da2.getNumberOfComponents());
5790 self.assertEqual(4,da2.getNumberOfTuples());
5791 for i in xrange(12):
5792 self.assertAlmostEqual(float(i),da2.getIJ(0,i),14);
5795 def testDARearrange2(self):
5796 da1=DataArrayInt.New();
5797 arr=[1,2,3,2,2,3,5,1,5,5,2,2]
5798 da1.setValues(arr,4,3);
5799 s=da1.getDifferentValues();
5800 expected1=DataArrayInt([1,2,3,5])
5801 self.assertTrue(expected1.isEqual(s));
5804 def testSwigErrorProtection3(self):
5805 da=DataArrayInt.New()
5806 da.setValues([1,2,3,4,0,0,0,0,0,0,0,0],4,3)
5807 self.assertEqual([1, 2, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0],da.getValues())
5808 self.assertEqual(3,da.getNumberOfComponents());
5809 self.assertEqual(4,da.getNumberOfTuples());
5810 da=DataArrayInt.New()
5811 da.setValues(((1,2,3),(4,4,3),(0,0,0),(0,0,0)),4,3)
5812 self.assertEqual([1, 2, 3, 4, 4, 3, 0, 0, 0, 0, 0, 0],da.getValues())
5813 self.assertEqual(3,da.getNumberOfComponents());
5814 self.assertEqual(4,da.getNumberOfTuples());
5815 da.setValues((10*[1]+290*[2])[:12],4,3)
5816 self.assertEqual(10*[1]+[2,2],da.getValues())
5817 self.assertEqual(3,da.getNumberOfComponents());
5818 self.assertEqual(4,da.getNumberOfTuples());
5820 da=DataArrayDouble.New()
5821 da.setValues([1,2,3.,4,0,0,0,0,0,0,0,0],4,3)
5822 self.assertEqual([1., 2., 3., 4., 0., 0., 0., 0., 0., 0., 0., 0.],da.getValues())
5823 self.assertEqual(3,da.getNumberOfComponents());
5824 self.assertEqual(4,da.getNumberOfTuples());
5825 da=DataArrayDouble.New()
5826 da.setValues(((1,2,3),(4.,4,3),(0,0,0),(0,0,0)),4,3)
5827 self.assertEqual([1., 2., 3., 4., 4., 3., 0., 0., 0., 0., 0., 0.],da.getValues())
5828 self.assertEqual(3,da.getNumberOfComponents());
5829 self.assertEqual(4,da.getNumberOfTuples());
5830 da.setValues((10*[1]+290*[2])[:12],4,3)
5831 self.assertEqual(10*[1.]+[2.,2.],da.getValues())
5832 self.assertEqual(3,da.getNumberOfComponents());
5833 self.assertEqual(4,da.getNumberOfTuples());
5836 def testDAIBuildPermutationArr1(self):
5837 a=DataArrayInt.New()
5838 a.setValues([4,5,6,7,8],5,1)
5839 b=DataArrayInt.New()
5840 b.setValues([5,4,8,6,7],5,1)
5841 c=a.buildPermutationArr(b)
5842 self.assertEqual([1,0,4,2,3],c.getValues())
5843 self.assertTrue(a.isEqualWithoutConsideringStrAndOrder(b))
5845 self.assertTrue(not a.isEqualWithoutConsideringStrAndOrder(b))
5846 self.assertRaises(InterpKernelException,a.buildPermutationArr,b)
5849 b.setIJ(4,0,4)#a==[4,5,6,4,8] and b==[5,4,8,6,4]
5850 self.assertTrue(a.isEqualWithoutConsideringStrAndOrder(b))
5851 c=a.buildPermutationArr(b)
5852 self.assertEqual([1,3,4,2,3],c.getValues())
5853 d=b.convertToDblArr()
5856 self.assertEqual(expect3,b.getValues())
5858 self.assertEqual(5,d.getNumberOfTuples());
5859 self.assertEqual(1,d.getNumberOfComponents());
5861 self.assertAlmostEqual(float(expect3[i]),d.getIJ(i,0),14);
5865 def testAreCellsIncludedIn2(self):
5867 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
5868 m2=m.buildPartOfMySelf([],True);
5869 self.assertEqual(0,m2.getNumberOfCells());
5870 self.assertEqual(3,m2.getSpaceDimension());
5871 self.assertEqual(2,m2.getMeshDimension());
5873 test,tmp=m.areCellsIncludedIn(m2,0)
5874 self.assertTrue(test);
5875 self.assertEqual(myName,tmp.getName());
5876 self.assertEqual(0,tmp.getNumberOfTuples())
5877 self.assertEqual(1,tmp.getNumberOfComponents())
5880 def testUMeshGetPartBarycenterAndOwner1(self):
5881 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
5883 part=DataArrayInt.New();
5884 part.setValues(part1,3,1);
5885 b=m1.getPartBarycenterAndOwner(part);
5886 self.assertEqual(2,b.getNumberOfComponents());
5887 self.assertEqual(3,b.getNumberOfTuples());
5888 expected1=[0.36666666666666665,-0.13333333333333333,-0.05,-0.05,0.45,0.45];
5890 self.assertAlmostEqual(expected1[i],b.getIJ(0,i),14);
5894 def testUMeshGetPartMeasureField1(self):
5895 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
5897 part=DataArrayInt.New();
5898 part.setValues(part1,3,1);
5899 b=m1.getPartMeasureField(True,part);
5900 self.assertEqual(1,b.getNumberOfComponents());
5901 self.assertEqual(3,b.getNumberOfTuples());
5902 expected1=[0.125,0.25,0.25];
5904 self.assertAlmostEqual(expected1[i],b.getIJ(0,i),14);
5908 def testUMeshBuildPartOrthogonalField1(self):
5909 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
5910 m1.changeSpaceDimension(3);
5912 part=DataArrayInt.New();
5913 part.setValues(part1,3,1);
5914 b=m1.buildPartOrthogonalField(part);
5915 self.assertEqual(3,b.getArray().getNumberOfComponents());
5916 self.assertEqual(3,b.getArray().getNumberOfTuples());
5917 expected1=[0.,0.,-1.,0.,0.,-1.,0.,0.,-1.];
5919 self.assertAlmostEqual(expected1[i],b.getArray().getIJ(0,i),14);
5923 def testUMeshGetTypesOfPart1(self):
5924 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
5926 p1=DataArrayInt.New()
5927 p1.setValues(part1,3,1)
5928 s=m1.getTypesOfPart(p1);
5929 self.assertEqual([NORM_QUAD4],s);
5931 p2=DataArrayInt.New()
5932 p2.setValues(part2,4,1)
5933 s=m1.getTypesOfPart(p2);
5934 self.assertEqual([NORM_TRI3],s);
5936 p3=DataArrayInt.New()
5937 p3.setValues(part3,3,1)
5938 s=m1.getTypesOfPart(p3);
5939 self.assertEqual(s,[NORM_TRI3,NORM_QUAD4]);
5942 def testUMeshKeepCellIdsByType1(self):
5943 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
5945 p1=DataArrayInt.New()
5946 p1.setValues(part1,3,1)
5948 a=m1.keepCellIdsByType(NORM_TRI3,p1);
5949 self.assertEqual("p1",a.getName())
5950 self.assertEqual(1,a.getNumberOfComponents());
5951 self.assertEqual(0,a.getNumberOfTuples());
5954 p2=DataArrayInt.New()
5955 p2.setValues(part2,5,1)
5957 a=m1.keepCellIdsByType(NORM_TRI3,p2);
5958 self.assertEqual("p2",a.getName())
5959 self.assertEqual(1,a.getNumberOfComponents());
5960 self.assertEqual(2,a.getNumberOfTuples());
5961 self.assertEqual(2,a.getIJ(0,0));
5962 self.assertEqual(2,a.getIJ(1,0));
5964 a=m1.keepCellIdsByType(NORM_QUAD4,p2);
5965 self.assertEqual("p2",a.getName())
5966 self.assertEqual(1,a.getNumberOfComponents());
5967 self.assertEqual(3,a.getNumberOfTuples());
5968 self.assertEqual(3,a.getIJ(0,0));
5969 self.assertEqual(0,a.getIJ(1,0));
5970 self.assertEqual(4,a.getIJ(2,0));
5973 def testSwigErrorDaIntSelectByTupleId1(self):
5974 a=DataArrayInt.New();
5975 arr1=[1,11,2,12,3,13,4,14,5,15,6,16,7,17]
5976 a.setValues(arr1,7,2);
5977 a.setInfoOnComponent(0,"toto");
5978 a.setInfoOnComponent(1,"tata");
5981 b=a.selectByTupleId(arr2);
5982 self.assertEqual(5,b.getNumberOfTuples());
5983 self.assertEqual(2,b.getNumberOfComponents());
5984 self.assertTrue(b.getInfoOnComponent(0)=="toto");
5985 self.assertTrue(b.getInfoOnComponent(1)=="tata");
5986 expected1=[5,15,3,13,1,11,7,17,6,16]
5987 self.assertEqual(expected1,b.getValues())
5989 a2=DataArrayInt.New()
5990 a2.setValues(arr2,5,1)
5991 b=a.selectByTupleId(a2);
5992 self.assertEqual(5,b.getNumberOfTuples());
5993 self.assertEqual(2,b.getNumberOfComponents());
5994 self.assertTrue(b.getInfoOnComponent(0)=="toto");
5995 self.assertTrue(b.getInfoOnComponent(1)=="tata");
5996 expected1=[5,15,3,13,1,11,7,17,6,16]
5997 self.assertEqual(expected1,b.getValues())
6000 def testSwigErrorRenum(self):
6001 da=DataArrayDouble.New()
6002 da.setValues([7.,107.,8.,108.,9.,109.,10.,110.,11.,111.,12.,112.,13.,113.,14.,114.,15.,115.,16.,116.],10,2)
6003 d=DataArrayInt.New()
6004 d.setValues([0,2,3,1,4,5,6,8,7,9],10,1)
6005 da.renumberInPlace(d)
6009 def testSwigGetItem1(self):
6010 da=DataArrayInt.New()
6015 da.setInfoOnComponent(0,"X [m]")
6016 da.setInfoOnComponent(1,"Y [m]")
6017 da.setInfoOnComponent(2,"Z [km]")
6019 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())
6021 self.assertEqual([19, 20, 21],da2.getValues())
6024 except InterpKernelException as e:
6025 self.assertTrue(True)
6027 self.assertTrue(False)
6030 self.assertEqual([24, 27, 30, 33, 36, 39, 42, 45, 48],da2.getValues())
6032 self.assertEqual([22, 23, 24, 25, 26, 27, 28, 29, 30],da2.getValues())
6034 self.assertTrue(da2.isEqual(da))
6036 self.assertTrue(da2.isEqual(da))
6039 except InterpKernelException as e:
6040 self.assertTrue(True)
6042 self.assertTrue(False)
6044 self.assertTrue(da[5:8,-2].isEqualWithoutConsideringStr(DataArrayInt([23,26,29])))
6046 self.assertEqual([22, 25, 28],da2.getValues())
6049 except InterpKernelException as e:
6050 self.assertTrue(True)
6052 self.assertTrue(False)
6055 self.assertEqual([],da2.getValues())
6058 def testSwigGetItem2(self):
6059 da=DataArrayDouble.New()
6064 da.setInfoOnComponent(0,"X [m]")
6065 da.setInfoOnComponent(1,"Y [m]")
6066 da.setInfoOnComponent(2,"Z [km]")
6068 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())
6070 self.assertEqual([19., 20., 21],da2.getValues())
6073 except InterpKernelException as e:
6074 self.assertTrue(True)
6076 self.assertTrue(False)
6079 self.assertEqual([24., 27., 30., 33., 36., 39., 42., 45., 48.],da2.getValues())
6081 self.assertEqual([22., 23., 24., 25., 26., 27., 28., 29., 30.],da2.getValues())
6083 self.assertTrue(da2.isEqual(da,1e-12))
6085 self.assertTrue(da2.isEqual(da,1e-12))
6088 except InterpKernelException as e:
6089 self.assertTrue(True)
6091 self.assertTrue(False)
6093 self.assertTrue(da[5:8,-2].isEqualWithoutConsideringStr(DataArrayDouble([23.,26.,29.]),1e-12))
6095 self.assertEqual([22., 25., 28.],da2.getValues())
6098 except InterpKernelException as e:
6099 self.assertTrue(True)
6101 self.assertTrue(False)
6104 self.assertEqual([],da2.getValues())
6107 def testSwigSetItem1(self):
6108 da=DataArrayInt.New()
6112 da.setInfoOnComponent(0,"X [m]") ; da.setInfoOnComponent(1,"Y [km]") ; da.setInfoOnComponent(2,"Y [m]")
6113 da.setInfoOnComponent(3,"Z [W]") ; da.setInfoOnComponent(4,"ZZ [km]") ;
6115 self.assertEqual([7, 8, 3, 10, 11, 12, 13, 3, 15, 16, 17, 18, 3, 20, 21, 22, 23, 3, 25, 26],da.getValues())
6116 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6118 self.assertEqual([7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3, 3, 3, 3, 3, 22, 23, 24, 25, 26],da.getValues())
6119 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6121 self.assertEqual([-1, -1, -1, -1, -1, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, -1, -1, -1, -1, -1],da.getValues())
6122 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6124 self.assertEqual([7, -3, 9, -3, -3, 12, -3, 14, -3, -3, 17, -3, 19, -3, -3, 22, -3, 24, -3, -3],da.getValues())
6125 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6126 da2=DataArrayInt.New() ; da2.setValues([0,2,3],3,1)
6128 self.assertEqual([-7, -7, -7, -7, -7, 12, 13, 14, 15, 16, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7],da.getValues())
6129 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6131 self.assertEqual([7, 8, 9, -7, -7, 12, 13, 14, 15, 16, 17, 18, 19, -7, -7, 22, 23, 24, -7, -7],da.getValues())
6132 # Let's test with DAI right hand side
6133 da1=DataArrayInt.New()
6134 da1.setValues([25,26,27,125,126,127],2,3)
6136 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6138 self.assertEqual([7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 25, 26, 27, 21, 22, 125, 126, 127, 26],da.getValues())
6139 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6140 da[1:,3]=[225,226,227]
6141 self.assertEqual([7, 8, 9, 10, 11, 12, 13, 14, 225, 16, 17, 18, 19, 226, 21, 22, 23, 24, 227, 26],da.getValues())
6142 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6143 da[1,2:]=[225,226,227]
6144 self.assertEqual([7, 8, 9, 10, 11, 12, 13, 225, 226, 227, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26],da.getValues())
6145 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6146 da[da2,-2:]=[88,99,1010,1111,1212,1313]
6147 self.assertEqual([7, 8, 9, 88, 99, 12, 13, 14, 15, 16, 17, 18, 19, 1010, 1111, 22, 23, 24, 1212, 1313],da.getValues())
6148 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6149 da3=DataArrayInt.New(); da3.setValues([88,99,1010,1111,1212,1313],3,2)
6151 self.assertEqual([7, 8, 9, 88, 99, 12, 13, 14, 15, 16, 17, 18, 19, 1010, 1111, 22, 23, 24, 1212, 1313],da.getValues())
6152 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6154 self.assertEqual([88, 8, 99, 10, 11, 12, 13, 14, 15, 16, 1010, 18, 1111, 20, 21, 1212, 23, 1313, 25, 26],da.getValues())
6155 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6157 self.assertEqual([88, 8, 99, 10, 11, 12, 13, 14, 15, 16, 1010, 18, 1111, 20, 21, 1212, 23, 1313, 25, 26],da.getValues())
6158 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6160 self.assertEqual([-8, 8, -8, 10, 11, 12, 13, 14, 15, 16, -8, 18, -8, 20, 21, -8, 23, -8, 25, 26],da.getValues())
6163 def testSwigSetItem2(self):
6164 da=DataArrayDouble.New()
6168 da.setInfoOnComponent(0,"X [m]") ; da.setInfoOnComponent(1,"Y [km]") ; da.setInfoOnComponent(2,"Y [m]")
6169 da.setInfoOnComponent(3,"Z [W]") ; da.setInfoOnComponent(4,"ZZ [km]") ;
6171 self.assertEqual([7., 8., 3., 10., 11., 12., 13., 3., 15., 16., 17., 18., 3., 20., 21., 22., 23., 3., 25., 26.],da.getValues())
6172 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6174 self.assertEqual([7., 8., 9., 10., 11., 12., 13., 14., 15., 16., 3., 3., 3., 3., 3., 22., 23., 24., 25., 26.],da.getValues())
6175 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6177 self.assertEqual([-1., -1., -1., -1., -1., 12., 13., 14., 15., 16., 17., 18., 19., 20., 21., -1., -1., -1., -1., -1.],da.getValues())
6178 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6180 self.assertEqual([7., -3., 9., -3., -3., 12., -3., 14., -3., -3., 17., -3., 19., -3., -3., 22., -3., 24., -3., -3.],da.getValues())
6181 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6182 da2=DataArrayInt.New() ; da2.setValues([0,2,3],3,1)
6184 self.assertEqual([-7., -7., -7., -7., -7., 12., 13., 14., 15., 16., -7., -7., -7., -7., -7., -7., -7., -7., -7., -7.],da.getValues())
6185 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6187 self.assertEqual([7., 8., 9., -7., -7., 12., 13., 14., 15., 16., 17., 18., 19., -7., -7., 22., 23., 24., -7., -7.],da.getValues())
6188 # Let's test with DAI right hand side
6189 da1=DataArrayDouble.New()
6190 da1.setValues([25,26,27,125,126,127],2,3)
6192 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6194 self.assertEqual([7., 8., 9., 10., 11., 12., 13., 14., 15., 16., 17., 25., 26., 27., 21., 22., 125., 126., 127., 26.],da.getValues())
6195 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6196 da[1:,3]=[225.,226.,227.]
6197 self.assertEqual([7., 8., 9., 10., 11., 12., 13., 14., 225., 16., 17., 18., 19., 226., 21., 22., 23., 24., 227., 26.],da.getValues())
6198 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6199 da[1,2:]=[225,226,227]
6200 self.assertEqual([7., 8., 9., 10., 11., 12., 13., 225., 226., 227., 17., 18., 19., 20., 21., 22., 23., 24., 25., 26.],da.getValues())
6201 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6202 da[da2,-2:]=[88,99,1010,1111,1212,1313]
6203 self.assertEqual([7., 8., 9., 88., 99., 12., 13., 14., 15., 16., 17., 18., 19., 1010., 1111., 22., 23., 24., 1212., 1313.],da.getValues())
6204 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6205 da3=DataArrayDouble.New(); da3.setValues([88,99,1010,1111,1212,1313],3,2)
6207 self.assertEqual([7., 8., 9., 88., 99., 12., 13., 14., 15., 16., 17., 18., 19., 1010., 1111., 22., 23., 24., 1212., 1313.],da.getValues())
6208 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6210 self.assertEqual([88., 8., 99., 10., 11., 12., 13., 14., 15., 16., 1010., 18., 1111., 20., 21., 1212., 23., 1313., 25., 26.],da.getValues())
6211 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6213 self.assertEqual([88., 8., 99., 10., 11., 12., 13., 14., 15., 16., 1010., 18., 1111., 20., 21., 1212., 23., 1313., 25., 26.],da.getValues())
6214 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
6216 self.assertEqual([-8., 8., -8., 10., 11., 12., 13., 14., 15., 16., -8., 18., -8., 20., 21., -8., 23., -8., 25., 26.],da.getValues())
6219 def testSwigDADOp(self):
6220 da=DataArrayDouble.New()
6223 da1=DataArrayDouble.New()
6227 self.assertEqual([15., 17., 19., 21., 23., 25., 27., 29., 31., 33., 35., 37.],da2.getValues())
6230 self.assertTrue(da2.isEqual(da3,1e-12))
6232 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())
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([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())
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([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())
6242 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())
6245 self.assertTrue(da4.isUniform(1.,1e-12))
6246 st1=da.getHiddenCppPointer()
6248 st2=da.getHiddenCppPointer()
6249 self.assertEqual(st1,st2)
6250 self.assertTrue(da.isEqual(da1,1e-12))
6252 st2=da.getHiddenCppPointer()
6253 self.assertEqual(st1,st2)
6254 self.assertEqual(range(12),da.getValues())
6256 st2=da.getHiddenCppPointer()
6257 self.assertEqual(st1,st2)
6258 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())
6260 st2=da.getHiddenCppPointer()
6261 self.assertEqual(st1,st2)
6262 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())
6264 st2=da.getHiddenCppPointer()
6265 self.assertEqual(st1,st2)
6266 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())
6268 self.assertEqual(st1,st2)
6269 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())
6271 st2=da.getHiddenCppPointer()
6272 self.assertEqual(st1,st2)
6273 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())
6275 da5=DataArrayDouble.New()
6276 da5.setValues([5.,4.,3.,2.],4,1)
6277 da*=da5 # it works with unmathing number of compo
6278 st2=da.getHiddenCppPointer()
6279 self.assertEqual(st1,st2)
6280 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())
6285 ids=DataArrayInt.New()
6286 ids.setValues([3,4,7],3,1)
6287 da[ids,:]=[5.,8.,9.]
6288 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())
6290 da.rearrange(1) ; da.iota(7) ; da.rearrange(3)
6292 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())
6295 def testSwigDAIOp(self):
6296 da=DataArrayInt.New()
6299 da1=DataArrayInt.New()
6303 self.assertEqual([15,17,19,21,23,25,27,29,31,33,35,37],da2.getValues())
6306 self.assertTrue(da2.isEqual(da3))
6308 self.assertEqual([6,7,8,9,10,11,12,13,14,15,16,17],da2.getValues())
6310 self.assertEqual([-6,-7,-8,-9,-10,-11,-12,-13,-14,-15,-16,-17],da2.getValues())
6312 self.assertEqual([21,24,27,30,33,36,39,42,45,48,51,54.0],da2.getValues())
6314 self.assertEqual([21,24,27,30,33,36,39,42,45,48,51,54.0],da2.getValues())
6316 self.assertEqual([56,72,90,110,132,156,182,210,240,272,306,342.0],da2.getValues())
6318 self.assertEqual([1,2,2,2,2,3,3,3,3,4,4,4],da2.getValues())
6321 self.assertTrue(da4.isUniform(0))
6322 st1=da.getHiddenCppPointer()
6324 st2=da.getHiddenCppPointer()
6325 self.assertEqual(st1,st2)
6326 self.assertTrue(da.isEqual(da1))
6328 st2=da.getHiddenCppPointer()
6329 self.assertEqual(st1,st2)
6330 self.assertEqual(range(12),da.getValues())
6332 st2=da.getHiddenCppPointer()
6333 self.assertEqual(st1,st2)
6334 self.assertEqual([8,10,12,14,16,18,20,22,24,26,28,30],da.getValues())
6336 st2=da.getHiddenCppPointer()
6337 self.assertEqual(st1,st2)
6338 self.assertEqual([4,5,6,7,8,9,10,11,12,13,14,15],da.getValues())
6340 st2=da.getHiddenCppPointer()
6341 self.assertEqual(st1,st2)
6342 self.assertEqual([32,45,60,77,96,117,140,165,192,221,252,285],da.getValues())
6344 self.assertEqual(st1,st2)
6345 self.assertEqual([4,5,6,7,8,9,10,11,12,13,14,15],da.getValues())
6347 st2=da.getHiddenCppPointer()
6348 self.assertEqual(st1,st2)
6349 self.assertEqual([2,2, 3,3, 4,4, 5,5, 6,6, 7,7],da.getValues())
6351 da5=DataArrayInt.New()
6352 da5.setValues([5,4,3,2],4,1)
6353 da*=da5 # it works with unmathing number of compo
6354 st2=da.getHiddenCppPointer()
6355 self.assertEqual(st1,st2)
6356 self.assertEqual([10,10, 15,12,16,16,15,15, 18,12,14,14],da.getValues())
6358 st2=da.getHiddenCppPointer()
6359 self.assertEqual(st1,st2)
6360 self.assertEqual([4,4,3,0,4,4,3,3,0,0,2,2],da.getValues())
6365 ids=DataArrayInt.New()
6366 ids.setValues([3,4,7],3,1)
6368 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())
6370 da.rearrange(1) ; da.iota(7) ; da.rearrange(3)
6372 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())
6375 def testSwigDAIOp2(self):
6376 da=DataArrayInt.New()
6377 st=da.getHiddenCppPointer()
6387 self.assertEqual(st,da.getHiddenCppPointer())
6388 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])
6391 def testSwigDAIOp3(self):
6392 da=DataArrayInt.New()
6393 self.assertRaises(InterpKernelException,da.__len__)
6394 self.assertRaises(InterpKernelException,da.__int__)
6396 self.assertTrue(False)
6399 da.rearrange(1) ; da.fillWithZero()
6401 self.assertEqual(36,len(da));
6404 self.assertRaises(InterpKernelException,tmp.__int__)
6405 self.assertEqual(12,len(da));
6407 for elt in enumerate(l):
6410 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]
6411 self.assertEqual(ref,da.getValues());
6413 l=[int(elt) for elt in l1]
6414 self.assertEqual(ref,da.getValues());
6415 self.assertEqual(11,int(da[-1:]))
6418 def testSwigDADOp3(self):
6419 da=DataArrayDouble.New()
6420 self.assertRaises(InterpKernelException,da.__len__)
6421 self.assertRaises(InterpKernelException,da.__float__)
6423 self.assertTrue(False)
6426 da.rearrange(1) ; da.fillWithZero()
6428 self.assertEqual(36,len(da));
6431 self.assertRaises(InterpKernelException,tmp.__float__)
6432 self.assertEqual(12,len(da));
6434 for elt in enumerate(l):
6437 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.]
6438 self.assertEqual(ref,da.getValues());
6440 l=[float(elt) for elt in l1]
6441 self.assertEqual(ref,da.getValues());
6442 self.assertEqual(11.,float(da[-1:]))
6445 def testSwigDataArrayIntIterator1(self):
6446 da=DataArrayInt.New()
6450 # __getitem__ testing
6455 self.assertEqual([3, 4, 6, 7, 9, 10, 12, 13],li)
6460 self.assertEqual([4, 7, 10, 13],li)
6465 self.assertEqual([4, 3, 2, 7, 6, 5, 10, 9, 8, 13, 12, 11],li)
6466 # __setitem__ testing
6468 da2=DataArrayInt.New()
6478 self.assertTrue(da.isEqual(da2))
6486 self.assertTrue(da.isUniform(5))
6493 self.assertEqual([8, 9, 12, 8, 9, 12, 8, 9, 12, 8, 9, 12],da.getValues())
6500 self.assertEqual([2, 3, 7, 5, 6, 7, 8, 9, 7, 11, 12, 7],da.getValues())
6503 def testSwigDataArrayDoubleIterator1(self):
6504 da=DataArrayDouble.New()
6508 # __getitem__ testing
6513 self.assertEqual([3, 4, 6, 7, 9, 10, 12, 13],li)
6518 self.assertEqual([4, 7, 10, 13],li)
6523 self.assertEqual([4, 3, 2, 7, 6, 5, 10, 9, 8, 13, 12, 11],li)
6524 # __setitem__ testing
6526 da2=DataArrayDouble.New()
6536 self.assertTrue(da.isEqual(da2,1e-12))
6544 self.assertTrue(da.isUniform(5,1e-12))
6551 self.assertEqual([8, 9, 12, 8, 9, 12, 8, 9, 12, 8, 9, 12],da.getValues())
6558 self.assertEqual([2, 3, 7, 5, 6, 7, 8, 9, 7, 11, 12, 7],da.getValues())
6561 def testSwigUMeshIterator1(self):
6562 m=MEDCouplingDataForTest.build2DTargetMesh_1()
6566 li1+=cell.getAllConn()[1:]
6567 li2+=[cell.getType()]
6569 self.assertEqual(li1,[0, 3, 4, 1, 1, 4, 2, 4, 5, 2, 6, 7, 4, 3, 7, 8, 5, 4])
6570 self.assertEqual(li2,[4, 3, 3, 4, 4])
6573 def testSwigUMeshIterator2(self):
6574 m=MEDCouplingDataForTest.build2DTargetMesh_1()
6575 self.assertRaises(InterpKernelException,m.cellsByType);
6576 m.rearrange2ConsecutiveCellTypes()
6580 for cellsByType in m.cellsByType():
6581 li1.append(cellsByType.getType())
6582 li2.append(cellsByType.getNumberOfElems())
6584 for cell in cellsByType:
6587 t[1]=cell.getAllConn()[1:]
6592 self.assertEqual(li1,[4, 3])
6593 self.assertEqual(li2,[3, 2])
6594 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)]]])
6597 def testDAIAggregateMulti1(self):
6598 a=DataArrayInt.New()
6599 a.setValues(range(4),2,2)
6601 b=DataArrayInt.New()
6602 b.setValues(range(6),3,2)
6603 c=DataArrayInt.Aggregate([a,b])
6604 self.assertEqual(range(4)+range(6),c.getValues())
6605 self.assertEqual("aa",c.getName())
6606 self.assertEqual(5,c.getNumberOfTuples())
6607 self.assertEqual(2,c.getNumberOfComponents())
6610 def testMergeUMeshes2(self):
6611 m1=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
6612 m2=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
6613 m3=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
6616 m2_2=m2.buildPartOfMySelf(vec1,False);
6618 m3_2=m3.buildPartOfMySelf(vec2,False);
6622 self.assertRaises(InterpKernelException,MEDCouplingUMesh.MergeUMeshes,ms+[None]);
6623 self.assertRaises(InterpKernelException,MEDCouplingUMesh.MergeUMeshes,ms+[3.4])
6624 m4=MEDCouplingUMesh.MergeUMeshes(ms);
6625 m4.checkCoherency();
6626 self.assertEqual(10,m4.getNumberOfCells());
6627 self.assertEqual(20,m4.getNumberOfNodes());
6628 self.assertEqual(45,m4.getMeshLength());
6629 m4bis=MEDCouplingMesh.MergeMeshes(ms);
6630 self.assertTrue(m4.isEqual(m4bis,1e-12))
6634 m4_1=m4.buildPartOfMySelf(vec3,False);
6635 m4_1.setName(m1.getName());
6636 self.assertTrue(m4_1.isEqual(m1,1e-12));
6639 m4_2=m4.buildPartOfMySelf(vec4,False);
6640 cellCor,nodeCor=m4_2.checkGeoEquivalWith(m2_2,10,1e-12);
6643 m4_3=m4.buildPartOfMySelf(vec5,False);
6644 self.assertEqual(2,m4_3.getNumberOfCells());
6645 self.assertEqual(3,m4_3.getNumberOfNodes());
6647 m4_3.setName(m3_2.getName());
6648 self.assertTrue(m4_3.isEqual(m3_2,1e-12));
6652 def testBuild0DMeshFromCoords1(self):
6653 sourceCoords=[-0.3,-0.3,0., 0.7,-0.3,0., -0.3,0.7,0., 0.7,0.7,0.]
6654 coo=DataArrayDouble.New();
6655 coo.setValues(sourceCoords,4,3);
6656 coo.setName("My0D");
6657 m=MEDCouplingUMesh.Build0DMeshFromCoords(coo);
6659 self.assertEqual(4,m.getNumberOfNodes());
6660 self.assertEqual(4,m.getNumberOfCells());
6661 self.assertEqual(3,m.getSpaceDimension());
6662 self.assertEqual(0,m.getMeshDimension());
6663 types1=m.getAllGeoTypes();
6664 self.assertEqual([NORM_POINT1],types1);
6666 conn=m.getNodeIdsOfCell(i);
6667 self.assertEqual([i],conn);
6668 self.assertTrue(NORM_POINT1==m.getTypeOfCell(i));
6670 self.assertEqual(m.getName(),"My0D");
6673 def testDescriptionInMeshTimeUnit1(self):
6675 m=MEDCouplingDataForTest.build2DTargetMesh_1();
6676 m.setDescription(text1);
6677 self.assertEqual(m.getDescription(),text1);
6679 self.assertTrue(m.isEqual(m2,1e-12));
6680 self.assertEqual(m2.getDescription(),text1);
6681 m2.setDescription("ggg");
6682 self.assertTrue(not m.isEqual(m2,1e-12));
6684 f=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
6685 f.setTimeUnit(text1);
6686 self.assertEqual(f.getTimeUnit(),text1);
6688 self.assertEqual(f2.getTimeUnit(),text1);
6692 def testMultiFields1(self):
6693 mfs=MEDCouplingDataForTest.buildMultiFields_1();
6695 dms,refs=mfs.getDifferentMeshes()
6696 das=mfs.getArrays();
6697 das2,refs2=mfs.getDifferentArrays()
6698 self.assertEqual(5,len(mfs.getFields()))
6699 self.assertEqual(1,len(mfs.getFields()[0].getArrays()));
6700 self.assertEqual(2,len(mfs.getFields()[1].getArrays()));
6701 self.assertEqual(1,len(mfs.getFields()[2].getArrays()));
6702 self.assertEqual(1,len(mfs.getFields()[3].getArrays()));
6703 self.assertEqual(1,len(mfs.getFields()[4].getArrays()));
6704 self.assertEqual(5,len(ms));
6705 self.assertEqual(2,len(dms));
6706 self.assertEqual(6,len(das));
6707 self.assertEqual(5,len(das2));
6709 self.assertTrue(mfs.isEqual(mfs2,1e-12,1e-12))
6712 def testFieldOverTime1(self):
6713 fs=MEDCouplingDataForTest.buildMultiFields_2();
6714 self.assertRaises(InterpKernelException,MEDCouplingFieldOverTime.New,fs);
6715 f4bis=fs[4].buildNewTimeReprFromThis(ONE_TIME,False);
6717 self.assertRaises(InterpKernelException,MEDCouplingFieldOverTime.New,fs);
6718 f4bis.setTime(2.7,20,21);
6719 fot=MEDCouplingFieldOverTime.New(fs);
6720 dt=fot.getDefinitionTimeZone();
6721 hs=dt.getHotSpotsTime();
6722 self.assertEqual(6,len(hs));
6723 expected1=[0.2,0.7,1.2,1.35,1.7,2.7]
6725 self.assertAlmostEqual(expected1[i],hs[i],12);
6727 meshId,arrId,arrIdInField,fieldId=dt.getIdsOnTimeRight(0.2);
6728 self.assertEqual(0,meshId);
6729 self.assertEqual(0,arrId);
6730 self.assertEqual(0,arrIdInField);
6731 self.assertEqual(0,fieldId);
6733 meshId,arrId,arrIdInField,fieldId=dt.getIdsOnTimeRight(0.7);
6734 self.assertEqual(0,meshId);
6735 self.assertEqual(1,arrId);
6736 self.assertEqual(0,arrIdInField);
6737 self.assertEqual(1,fieldId);
6739 meshId,arrId,arrIdInField,fieldId=dt.getIdsOnTimeLeft(1.2);#**** WARNING left here
6740 self.assertEqual(0,meshId);
6741 self.assertEqual(2,arrId);
6742 self.assertEqual(1,arrIdInField);
6743 self.assertEqual(1,fieldId);
6745 meshId,arrId,arrIdInField,fieldId=dt.getIdsOnTimeRight(1.2);#**** WARNING right again here
6746 self.assertEqual(1,meshId);
6747 self.assertEqual(3,arrId);
6748 self.assertEqual(0,arrIdInField);
6749 self.assertEqual(2,fieldId);
6751 meshId,arrId,arrIdInField,fieldId=dt.getIdsOnTimeRight(1.35);
6752 self.assertEqual(1,meshId);
6753 self.assertEqual(3,arrId);
6754 self.assertEqual(0,arrIdInField);
6755 self.assertEqual(2,fieldId);
6757 meshId,arrId,arrIdInField,fieldId=dt.getIdsOnTimeRight(1.7);
6758 self.assertEqual(0,meshId);
6759 self.assertEqual(3,arrId);
6760 self.assertEqual(0,arrIdInField);
6761 self.assertEqual(3,fieldId);
6763 meshId,arrId,arrIdInField,fieldId=dt.getIdsOnTimeRight(2.7);
6764 self.assertEqual(1,meshId);
6765 self.assertEqual(4,arrId);
6766 self.assertEqual(0,arrIdInField);
6767 self.assertEqual(4,fieldId);
6769 dt2=MEDCouplingDefinitionTime();
6770 self.assertTrue(not dt2.isEqual(dt));
6772 dt2.assign(dt);#to check memory management
6773 self.assertTrue(dt2.isEqual(dt));
6775 dt3=MEDCouplingDefinitionTime();
6779 def testDAICheckAndPreparePermutation1(self):
6780 vals1=[9,10,0,6,4,11,3,7];
6781 expect1=[5,6,0,3,2,7,1,4];
6782 vals2=[9,10,0,6,10,11,3,7];
6783 da=DataArrayInt.New();
6784 da.setValues(vals1,8,1);
6785 da2=da.checkAndPreparePermutation();
6786 self.assertEqual(8,da2.getNumberOfTuples());
6787 self.assertEqual(1,da2.getNumberOfComponents());
6789 self.assertEqual(expect1[i],da2.getIJ(i,0));
6792 da=DataArrayInt.New();
6795 da2=da.checkAndPreparePermutation();
6796 self.assertEqual(8,da2.getNumberOfTuples());
6797 self.assertEqual(1,da2.getNumberOfComponents());
6798 self.assertTrue(da2.isIdentity());
6800 da=DataArrayInt.New();
6802 da.setValues(vals2,8,1);
6803 self.assertRaises(InterpKernelException,da.checkAndPreparePermutation);
6806 def testDAIChangeSurjectiveFormat1(self):
6807 vals1=[0,3,2,3,2,2,1,2]
6808 expected1=[0,1,2,6,8]
6809 expected2=[0, 6, 2,4,5,7, 1,3]
6810 da=DataArrayInt.New();
6811 da.setValues(vals1,8,1);
6813 da2,da2I=da.changeSurjectiveFormat(4);
6814 self.assertEqual(5,da2I.getNumberOfTuples());
6815 self.assertEqual(8,da2.getNumberOfTuples());
6816 self.assertEqual(expected1,da2I.getValues());
6817 self.assertEqual(expected2,da2.getValues());
6819 self.assertRaises(InterpKernelException,da.changeSurjectiveFormat,3);
6823 def testUMeshGetCellIdsLyingOnNodes1(self):
6824 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
6825 nodeIds1=[1,2,3,4,6]
6827 da=m.getCellIdsLyingOnNodes(nodeIds1,True);
6828 self.assertEqual(1,da.getNumberOfTuples());
6829 self.assertEqual(1,da.getNumberOfComponents());
6830 self.assertEqual(1,da.getIJ(0,0));
6831 da2=DataArrayInt.New()
6832 da2.setValues(nodeIds2,2,1)
6833 da=m.getCellIdsLyingOnNodes(da2,False);
6834 self.assertEqual(2,da.getNumberOfTuples());
6835 self.assertEqual(1,da.getNumberOfComponents());
6836 self.assertEqual(3,da.getIJ(0,0));
6837 self.assertEqual(4,da.getIJ(1,0));
6840 def testUMeshFindCellIdsOnBoundary1(self):
6841 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
6842 da5=m.findCellIdsOnBoundary();
6843 self.assertEqual(5,da5.getNumberOfTuples());
6844 self.assertTrue(da5.isIdentity());
6847 def testMeshSetTime1(self):
6848 m1=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
6849 m2=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
6851 self.assertTrue(m1.isEqual(m2,1e-12));
6852 m1.setTime(3.14,6,7);
6853 tmp3,tmp1,tmp2=m1.getTime();
6854 self.assertEqual(6,tmp1);
6855 self.assertEqual(7,tmp2);
6856 self.assertAlmostEqual(3.14,tmp3,12);
6857 self.assertTrue(not m1.isEqual(m2,1e-12));
6858 m2.setTime(3.14,6,7);
6859 self.assertTrue(m1.isEqual(m2,1e-12));
6860 m1.setTimeUnit("ms");
6861 self.assertTrue(m1.getTimeUnit()=="ms");
6862 m1.setTimeUnit("us");
6863 self.assertTrue(m1.getTimeUnit()=="us");
6864 self.assertTrue(not m1.isEqual(m2,1e-12));
6865 m2.setTimeUnit("us");
6866 self.assertTrue(m1.isEqual(m2,1e-12));
6867 m2.setTime(3.14,6,8);
6868 self.assertTrue(not m1.isEqual(m2,1e-12));
6869 m2.setTime(3.14,7,7);
6870 self.assertTrue(not m1.isEqual(m2,1e-12));
6871 m2.setTime(3.15,6,7);
6872 self.assertTrue(not m1.isEqual(m2,1e-12));
6874 m1.setTime(10.34,55,12);
6876 self.assertTrue(m1.isEqual(m3,1e-12));
6877 tmp3,tmp1,tmp2=m3.getTime();
6878 self.assertEqual(55,tmp1);
6879 self.assertEqual(12,tmp2);
6880 self.assertAlmostEqual(10.34,tmp3,12);
6884 a=DataArrayDouble.New();
6885 a.setValues(coo1,4,1);
6886 b=MEDCouplingCMesh.New();
6889 b.setTime(5.67,8,100);
6890 tmp3,tmp1,tmp2=b.getTime();
6891 self.assertEqual(8,tmp1);
6892 self.assertEqual(100,tmp2);
6893 self.assertAlmostEqual(5.67,tmp3,12);
6895 self.assertTrue(c.isEqual(b,1e-12));
6896 tmp3,tmp1,tmp2=c.getTime();
6897 self.assertEqual(8,tmp1);
6898 self.assertEqual(100,tmp2);
6899 self.assertAlmostEqual(5.67,tmp3,12);
6902 def testApplyFuncTwo1(self):
6903 m1=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
6904 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
6907 vals=[1.,11.,21.,2.,12.,22.,3.,13.,23.,4.,14.,24.,5.,15.,25.]
6908 da=DataArrayDouble.New();
6909 da.setValues(vals,5,3);
6912 self.assertRaises(InterpKernelException,da.applyFunc2,1,"y+z");
6913 da.setInfoOnComponent(0,"x [m]");
6914 da.setInfoOnComponent(1,"y [mm]");
6915 da.setInfoOnComponent(2,"z [km]");
6917 self.assertRaises(InterpKernelException, da.applyFunc2, 1, "x+y+zz+zzz");
6918 self.assertRaises(InterpKernelException, da.applyFunc2, 1, "toto(x+y)");
6919 self.assertRaises(InterpKernelException, da.applyFunc2, 1, "x/0");
6921 da2=da.applyFunc2(1,"y+z");
6922 self.assertEqual(1,da2.getNumberOfComponents());
6923 self.assertEqual(5,da2.getNumberOfTuples());
6924 expected1=[32.,34.,36.,38.,40.]
6926 self.assertAlmostEqual(expected1[i],da2.getIJ(0,i),12);
6928 da2=da.applyFunc(1,"y+z");
6929 expected2=[12.,14.,16.,18.,20.]
6931 self.assertAlmostEqual(expected2[i],da2.getIJ(0,i),12);
6934 self.assertEqual(3,f1.getNumberOfComponents());
6935 self.assertEqual(5,f1.getNumberOfTuples());
6936 f1.applyFunc2(1,"y+z");
6937 self.assertEqual(1,f1.getNumberOfComponents());
6938 self.assertEqual(5,f1.getNumberOfTuples());
6940 self.assertAlmostEqual(expected1[i],f1.getArray().getIJ(0,i),12);
6945 def testApplyFuncThree1(self):
6946 m1=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
6947 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
6950 vals=[1.,11.,21.,2.,12.,22.,3.,13.,23.,4.,14.,24.,5.,15.,25.]
6951 da=DataArrayDouble.New();
6952 da.setValues(vals,5,3);
6956 vs[0]="x"; vs[1]="Y"; vs[2]="z";
6957 self.assertRaises(InterpKernelException, da.applyFunc3, 1, vs, "y+z");
6958 self.assertRaises(InterpKernelException, da.applyFunc3, 1, vs, "x+Y+z+zz+zzz");
6959 self.assertRaises(InterpKernelException, da.applyFunc3, 1, vs, "x/0");
6961 da2=da.applyFunc3(1,vs,"y+z");
6962 expected1=[32.,34.,36.,38.,40.]
6964 self.assertAlmostEqual(expected1[i],da2.getIJ(0,i),12);
6966 self.assertRaises(InterpKernelException, da.applyFunc3, 1, ["x","y","z","a"],"x+a")
6968 self.assertEqual(3,f1.getNumberOfComponents());
6969 self.assertEqual(5,f1.getNumberOfTuples());
6970 f1.applyFunc3(1,vs,"y+z");
6971 self.assertEqual(1,f1.getNumberOfComponents());
6972 self.assertEqual(5,f1.getNumberOfTuples());
6974 self.assertAlmostEqual(expected1[i],f1.getArray().getIJ(0,i),12);
6978 def testFillFromAnalyticTwo1(self):
6979 m1=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
6980 m1.setTime(3.4,5,6); m1.setTimeUnit("us");
6981 self.assertRaises(InterpKernelException,m1.fillFromAnalytic2,ON_NODES,1,"y+z");
6982 m1.getCoords().setInfoOnComponent(0,"x [m]");
6983 m1.getCoords().setInfoOnComponent(1,"y");
6984 m1.getCoords().setInfoOnComponent(2,"z");
6985 f1=m1.fillFromAnalytic2(ON_NODES,1,"y+z");
6986 self.assertAlmostEqual(3.4,f1.getTime()[0],12) ; self.assertEqual(5,f1.getTime()[1]) ; self.assertEqual(6,f1.getTime()[2])
6987 self.assertEqual("us",f1.getTimeUnit())
6988 self.assertEqual(1,f1.getNumberOfComponents());
6989 self.assertEqual(9,f1.getNumberOfTuples());
6990 expected1=[0.2, 0.7, 1.2, 0.7, 1.2, 1.7, 1.2, 1.7, 2.2]
6992 self.assertAlmostEqual(expected1[i],f1.getArray().getIJ(0,i),12);
6996 def testFillFromAnalyticThree1(self):
6997 m1=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
6998 m1.setTime(3.4,5,6); m1.setTimeUnit("us");
7000 vs[0]="x"; vs[1]="Y"; vs[2]="z";
7001 self.assertRaises(InterpKernelException,m1.fillFromAnalytic3,ON_NODES,1,vs,"y+z");
7003 f1=m1.fillFromAnalytic3(ON_NODES,1,vs,"y+z");
7004 self.assertAlmostEqual(3.4,f1.getTime()[0],12) ; self.assertEqual(5,f1.getTime()[1]) ; self.assertEqual(6,f1.getTime()[2])
7005 self.assertEqual("us",f1.getTimeUnit())
7006 self.assertEqual(1,f1.getNumberOfComponents());
7007 self.assertEqual(9,f1.getNumberOfTuples());
7008 expected1=[0.2, 0.7, 1.2, 0.7, 1.2, 1.7, 1.2, 1.7, 2.2]
7010 self.assertAlmostEqual(expected1[i],f1.getArray().getIJ(0,i),12);
7014 def testDAUnitVar1(self):
7015 da=DataArrayDouble.New();
7017 da.setInfoOnComponent(0,"XPS [m]");
7018 st1=da.getVarOnComponent(0);
7019 self.assertTrue(st1=="XPS");
7020 st2=da.getUnitOnComponent(0);
7021 self.assertTrue(st2=="m");
7023 da.setInfoOnComponent(0,"XPS [m]");
7024 st1=da.getVarOnComponent(0);
7025 self.assertTrue(st1=="XPS");
7026 st2=da.getUnitOnComponent(0);
7027 self.assertTrue(st2=="m");
7029 da.setInfoOnComponent(0,"XPP [m]");
7030 st1=da.getVarOnComponent(0);
7031 self.assertTrue(st1=="XPP");
7032 st2=da.getUnitOnComponent(0);
7033 self.assertTrue(st2=="m");
7035 da.setInfoOnComponent(0,"XPP kdep kefer [ m ]");
7036 st1=da.getVarOnComponent(0);
7037 self.assertTrue(st1=="XPP kdep kefer");
7038 st2=da.getUnitOnComponent(0);
7039 self.assertTrue(st2==" m ");
7041 da.setInfoOnComponent(0," XPP k[ dep k]efer [ m^ 2/s^3*kJ ]");
7042 st1=da.getVarOnComponent(0);
7043 self.assertTrue(st1==" XPP k[ dep k]efer");
7044 st2=da.getUnitOnComponent(0);
7045 self.assertTrue(st2==" m^ 2/s^3*kJ ");
7047 da.setInfoOnComponent(0," XPP kefer ");
7048 st1=da.getVarOnComponent(0);
7049 self.assertTrue(st1==" XPP kefer ");
7050 st2=da.getUnitOnComponent(0);
7051 self.assertTrue(st2=="");
7053 da.setInfoOnComponent(0,"temperature( bof)");
7054 st1=da.getVarOnComponent(0);
7055 self.assertTrue(st1=="temperature( bof)");
7056 st2=da.getUnitOnComponent(0);
7057 self.assertTrue(st2=="");
7059 da.setInfoOnComponent(0,"kkk [m]");
7060 da.setInfoOnComponent(1,"ppp [m^2/kJ]");
7061 da.setInfoOnComponent(2,"abcde [MW/s]");
7063 vs=da.getVarsOnComponent();
7064 self.assertEqual(3,len(vs));
7065 self.assertTrue(vs[0]=="kkk");
7066 self.assertTrue(vs[1]=="ppp");
7067 self.assertTrue(vs[2]=="abcde");
7068 vs=da.getUnitsOnComponent();
7069 self.assertEqual(3,len(vs));
7070 self.assertTrue(vs[0]=="m");
7071 self.assertTrue(vs[1]=="m^2/kJ");
7072 self.assertTrue(vs[2]=="MW/s");
7075 def testGaussCoordinates1(self):
7076 #Testing 1D cell types
7077 m1=MEDCouplingDataForTest.build1DMultiTypes_1();
7078 f=MEDCouplingFieldDouble.New(ON_GAUSS_PT,ONE_TIME);
7083 f.setGaussLocalizationOnType(NORM_SEG2,refCoo1,gsCoo1,wg1);
7086 refCoo2=[-1.0,1.0,0.0];
7087 f.setGaussLocalizationOnType(NORM_SEG3,refCoo2,gsCoo2,wg2);
7089 resToTest=f.getLocalizationOfDiscr();
7090 self.assertEqual(3,resToTest.getNumberOfComponents());
7091 self.assertEqual(2,resToTest.getNumberOfTuples());
7092 expected1=[0.6,0.6,0.6, 0.6,0.6,0.6]
7094 self.assertAlmostEqual(expected1[i],resToTest.getIJ(0,i),14);
7097 #Testing 2D cell types
7098 m2=MEDCouplingDataForTest.build2DMultiTypes_1();
7099 f=MEDCouplingFieldDouble.New(ON_GAUSS_PT,ONE_TIME);
7102 tria3CooGauss=[ 0.1, 0.8, 0.2, 0.7 ]
7103 gsCoo3=tria3CooGauss
7104 tria3CooRef=[ 0.0, 0.0, 1.0 , 0.0, 0.0, 1.0 ]
7105 refCoo3=tria3CooRef;
7106 f.setGaussLocalizationOnType(NORM_TRI3,refCoo3,gsCoo3,wg3);
7108 tria6CooGauss=[ 0.3, 0.2, 0.2, 0.1, 0.2, 0.4 ]
7109 gsCoo4=tria6CooGauss;
7110 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]
7111 refCoo4=tria6CooRef;
7112 f.setGaussLocalizationOnType(NORM_TRI6,refCoo4,gsCoo4,wg4);
7113 wg5=[0.3,0.3,0.3,0.3];
7114 quad4CooGauss=[ 0.3, 0.2, 0.2, 0.1, 0.2, 0.4, 0.15, 0.27 ]
7115 gsCoo5=quad4CooGauss;
7116 quad4CooRef=[-1.0, 1.0, -1.0, -1.0, 1.0, -1.0, 1.0, 1.0]
7117 refCoo5=quad4CooRef;
7118 f.setGaussLocalizationOnType(NORM_QUAD4,refCoo5,gsCoo5,wg5);
7119 wg6=[0.3,0.3,0.3,0.3];
7120 quad8CooGauss=[ 0.34, 0.16, 0.21, 0.3, 0.23, 0.4, 0.14, 0.37 ]
7121 gsCoo6=quad8CooGauss;
7122 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]
7123 refCoo6=quad8CooRef;
7124 f.setGaussLocalizationOnType(NORM_QUAD8,refCoo6,gsCoo6,wg6);
7126 resToTest=f.getLocalizationOfDiscr();
7127 self.assertEqual(3,resToTest.getNumberOfComponents());
7128 self.assertEqual(13,resToTest.getNumberOfTuples());#2+3+4+4 gauss points for resp TRI3,TRI6,QUAD4,QUAD8
7129 expected2=[5.1,1.55,0.0, 4.7,1.65,0.0,
7130 2.32,1.52,0.0, 1.6,1.32,0.0, 3.52,1.26,0.0,#TRI6
7131 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
7132 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
7133 for i in xrange(39):
7134 self.assertAlmostEqual(expected2[i],resToTest.getIJ(0,i),14);
7137 #Testing 3D cell types
7138 m3=MEDCouplingDataForTest.build3DMultiTypes_1();
7139 f=MEDCouplingFieldDouble.New(ON_GAUSS_PT,ONE_TIME);
7143 tetra4CooGauss=[0.34, 0.16, 0.21]
7144 gsCoo7=tetra4CooGauss;
7145 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]
7146 refCoo7=tetra4CooRef;
7147 f.setGaussLocalizationOnType(NORM_TETRA4,refCoo7,gsCoo7,wg7);
7149 tetra10CooGauss=[0.2, 0.3, 0.1]
7150 gsCoo8=tetra10CooGauss;
7151 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]
7152 refCoo8=tetra10CooRef;
7153 f.setGaussLocalizationOnType(NORM_TETRA10,refCoo8,gsCoo8,wg8);
7155 pyra5CooGauss=[0.2, 0.3, 0.1]
7156 gsCoo9=pyra5CooGauss;
7157 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]
7158 refCoo9=pyra5CooRef;
7159 f.setGaussLocalizationOnType(NORM_PYRA5,refCoo9,gsCoo9,wg9);
7161 pyra13CooGauss=[0.1, 0.2, 0.7]
7162 gsCoo10=pyra13CooGauss;
7163 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]
7164 refCoo10=pyra13CooRef;
7165 f.setGaussLocalizationOnType(NORM_PYRA13,refCoo10,gsCoo10,wg10);
7167 penta6CooGauss=[0.2, 0.3, 0.1]
7168 gsCoo11=penta6CooGauss;
7169 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]
7170 refCoo11=penta6CooRef;
7171 f.setGaussLocalizationOnType(NORM_PENTA6,refCoo11,gsCoo11,wg11);
7173 penta15CooGauss=[0.2, 0.3,0.15]
7174 gsCoo12=penta15CooGauss;
7175 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]
7176 refCoo12=penta15CooRef;
7177 f.setGaussLocalizationOnType(NORM_PENTA15,refCoo12,gsCoo12,wg12);
7179 hexa8CooGauss=[0.2,0.3,0.15]
7180 gsCoo13=hexa8CooGauss;
7181 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]
7182 refCoo13=hexa8CooRef;
7183 f.setGaussLocalizationOnType(NORM_HEXA8,refCoo13,gsCoo13,wg13);
7185 hexa20CooGauss=[0.11,0.3,0.55]
7186 gsCoo14=hexa20CooGauss;
7187 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]
7188 refCoo14=hexa20CooRef;
7189 f.setGaussLocalizationOnType(NORM_HEXA20,refCoo14,gsCoo14,wg14);
7191 resToTest=f.getLocalizationOfDiscr();
7192 self.assertEqual(3,resToTest.getNumberOfComponents());
7193 self.assertEqual(8,resToTest.getNumberOfTuples());#2+3+4+4 gauss points for resp TRI3,TRI6,QUAD4,QUAD8
7194 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]
7195 for i in xrange(24):
7196 self.assertAlmostEqual(expected3[i],resToTest.getIJ(0,i),14);
7201 def testP2Localization1(self):
7202 m=MEDCouplingUMesh.New("testP2",2);
7203 coords=[0.,2.,3.5,0.,4.5,1.5,1.2,0.32,3.4,1.,2.1,2.4]
7205 coo=DataArrayDouble.New();
7206 coo.setValues(coords,6,2);
7209 m.insertNextCell(NORM_TRI6,6,conn[0:6])
7210 m.finishInsertingCells();
7212 f=MEDCouplingFieldDouble.New(ON_NODES,ONE_TIME);
7214 da=DataArrayDouble.New();
7215 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]
7216 da.setValues(vals1,6,3);
7220 locs=f.getValueOnMulti(loc);
7221 expected1=[6.0921164547752236, 7.1921164547752232, 8.2921164547752255]
7223 self.assertAlmostEqual(expected1[i],locs.getIJ(0,i),12);
7227 def testP2Localization2(self):
7228 m=MEDCouplingUMesh.New("testP2_2",3);
7229 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]
7230 conn=[0,1,2,3,4,5,6,7,8,9]
7231 coo=DataArrayDouble.New();
7232 coo.setValues(coords,10,3);
7235 m.insertNextCell(NORM_TETRA10,10,conn[0:10])
7236 m.finishInsertingCells();
7238 f=MEDCouplingFieldDouble.New(ON_NODES,ONE_TIME);
7240 da=DataArrayDouble.New();
7241 vals1=[1.1,2.1,3.1,4.1,5.2,6.2,7.2,8.2,9.2,10.2]
7242 da.setValues(vals1,10,1);
7245 loc=[0.64637931739890486, -0.16185896817550552, 0.22678966365273748]
7246 locs=f.getValueOnMulti(loc);
7247 expected1=[10.0844021968047]
7249 self.assertAlmostEqual(expected1[i],locs.getIJ(0,i),12);
7253 def testGetValueOn2(self):
7254 m=MEDCouplingDataForTest.build2DTargetMesh_1();
7255 f=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
7257 arr=DataArrayDouble.New();
7258 nbOfCells=m.getNumberOfCells();
7260 values1=[7.,107.,10007.,8.,108.,10008.,9.,109.,10009.,10.,110.,10010.,11.,111.,10011.]
7261 arr.setValues(values1,nbOfCells,3);
7262 loc=[-0.05,-0.05, 0.55,-0.25, 0.55,0.15, -0.05,0.45, 0.45,0.45]
7264 locs=f.getValueOnMulti(loc);
7265 self.assertEqual(5,locs.getNumberOfTuples());
7266 self.assertEqual(3,locs.getNumberOfComponents());
7267 for j in xrange(15):
7268 self.assertAlmostEqual(values1[j],locs.getIJ(0,j),12);
7271 f=MEDCouplingFieldDouble.New(ON_NODES,NO_TIME);
7273 arr=DataArrayDouble.New();
7274 nbOfNodes=m.getNumberOfNodes();
7276 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.]
7277 arr.setValues(values2,nbOfNodes,3);
7278 loc2=[0.5432,-0.2432, 0.5478,0.1528, 0.5432,-0.2432, 0.5432,-0.2432]
7279 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]
7281 loc3=DataArrayDouble.New()
7282 loc3.setValues(loc2,4,2);
7283 locs=f.getValueOnMulti(loc3);
7284 self.assertEqual(4,locs.getNumberOfTuples());
7285 self.assertEqual(3,locs.getNumberOfComponents());
7286 for i in xrange(12):
7287 self.assertAlmostEqual(expected2[i],locs.getIJ(0,i),12);
7292 def testDAIGetIdsNotEqual1(self):
7293 d=DataArrayInt.New();
7294 vals1=[2,3,5,6,8,5,5,6,1,-5]
7295 d.setValues(vals1,10,1);
7296 d2=d.getIdsNotEqual(5);
7297 self.assertEqual(7,d2.getNumberOfTuples());
7298 self.assertEqual(1,d2.getNumberOfComponents());
7299 expected1=[0,1,3,4,7,8,9]
7301 self.assertEqual(expected1[i],d2.getIJ(0,i));
7304 self.assertRaises(InterpKernelException,d.getIdsNotEqual,5);
7308 d3=d.getIdsNotEqualList(vals3);
7309 self.assertEqual(5,d3.getNumberOfTuples());
7310 self.assertEqual(1,d3.getNumberOfComponents());
7311 expected2=[0,1,4,8,9]
7313 self.assertEqual(expected2[i],d3.getIJ(0,i));
7317 def testDAIComputeOffsets1(self):
7318 d=DataArrayInt.New();
7320 expected1=[0,3,8,9,11,11]
7321 d.setValues(vals1,6,1);
7323 self.assertEqual(6,d.getNumberOfTuples());
7324 self.assertEqual(1,d.getNumberOfComponents());
7326 self.assertEqual(expected1[i],d.getIJ(0,i));
7330 def testUMeshHexagonPrism1(self):
7331 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,
7332 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];
7333 conn=[1,2,3,4,5,0,7,8,9,10,11,6]
7334 mesh=MEDCouplingUMesh.New("MyFirstHexagonalPrism",3);
7335 coo=DataArrayDouble.New();
7336 coo.setValues(coords,12,3);
7337 mesh.setCoords(coo);
7338 mesh.allocateCells(1);
7339 mesh.insertNextCell(NORM_HEXGP12,12,conn[0:12])
7340 mesh.finishInsertingCells();
7342 mesh.checkCoherency();
7343 vols=mesh.getMeasureField(False);
7344 self.assertEqual(1,vols.getNumberOfTuples());
7345 self.assertEqual(1,vols.getNumberOfComponents());
7346 self.assertAlmostEqual(-5.196152422706632,vols.getIJ(0,0),12);
7347 bary=mesh.getBarycenterAndOwner();
7348 self.assertEqual(1,bary.getNumberOfTuples());
7349 self.assertEqual(3,bary.getNumberOfComponents());
7350 expected1=[0.,0.,1.]
7352 self.assertAlmostEqual(expected1[i],bary.getIJ(0,i),12);
7354 d1=DataArrayInt.New();
7355 d2=DataArrayInt.New();
7356 d3=DataArrayInt.New();
7357 d4=DataArrayInt.New();
7358 m2=mesh.buildDescendingConnectivity(d1,d2,d3,d4);
7359 self.assertEqual(8,m2.getNumberOfCells());
7360 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]];
7361 expected2=[NORM_POLYGON, NORM_POLYGON, NORM_QUAD4, NORM_QUAD4, NORM_QUAD4, NORM_QUAD4, NORM_QUAD4, NORM_QUAD4];
7362 expected3=[6,6,4,4,4,4,4,4]
7364 self.assertTrue(m2.getTypeOfCell(i)==expected2[i]);
7365 v=m2.getNodeIdsOfCell(i);
7366 self.assertTrue(len(v)==expected3[i]);
7367 self.assertEqual(expected4[i],v);
7369 mesh.convertAllToPoly();
7370 self.assertTrue(NORM_POLYHED==mesh.getTypeOfCell(0));
7372 self.assertTrue(NORM_HEXGP12==mesh.getTypeOfCell(0));
7373 self.assertEqual(13,mesh.getMeshLength());
7377 def testDADCheckIsMonotonic(self):
7378 da=DataArrayDouble.New();
7379 da.setValues([-1.,1.01,2.03,6.],2,2);
7380 self.assertRaises(InterpKernelException,da.isMonotonic,True,1e-12);
7382 self.assertTrue(da.isMonotonic(True,1e-12));
7383 da.checkMonotonic(True,1e-12);
7385 self.assertTrue(not da.isMonotonic(True,1e-12));
7386 self.assertRaises(InterpKernelException,da.checkMonotonic,True,1e-12);
7388 self.assertTrue(da.isMonotonic(True,1e-12));
7389 self.assertTrue(not da.isMonotonic(True,1e-1));
7392 def testCheckCoherencyDeeper1(self):
7393 m=MEDCouplingDataForTest.build3DSourceMesh_1();
7395 m.checkCoherency1();
7396 m.getNodalConnectivity().setIJ(8,0,-1);
7398 self.assertRaises(InterpKernelException,m.checkCoherency1);
7399 m.getNodalConnectivity().setIJ(8,0,-6);
7401 self.assertRaises(InterpKernelException,m.checkCoherency1);
7402 m.getNodalConnectivity().setIJ(8,0,9);#9>=NbOfNodes
7404 self.assertRaises(InterpKernelException,m.checkCoherency1);
7405 m.getNodalConnectivity().setIJ(8,0,8);#OK
7407 m.checkCoherency1();
7409 m.convertToPolyTypes(elts);
7411 m.checkCoherency1();
7412 m.getNodalConnectivity().setIJ(2,0,9);#9>=NbOfNodes
7414 self.assertRaises(InterpKernelException,m.checkCoherency1);
7415 m.getNodalConnectivity().setIJ(2,0,-3);
7417 self.assertRaises(InterpKernelException,m.checkCoherency1);
7418 m.getNodalConnectivity().setIJ(2,0,-1);
7420 self.assertRaises(InterpKernelException,m.checkCoherency1);#Throw because cell#0 is not a polyhedron
7421 m.getNodalConnectivity().setIJ(2,0,4);
7423 m.checkCoherency1();
7424 m.getNodalConnectivity().setIJ(7,0,-1);
7426 m.checkCoherency1();#OK because we are in polyhedron connec
7427 m.getNodalConnectivity().setIJ(36,0,14);
7429 self.assertRaises(InterpKernelException,m.checkCoherency1);#Throw beacause now cell 5 is a TETRA4 (14) so mimatch of number index and static type.
7432 def testUnPolyze2(self):
7433 m=MEDCouplingUMesh.New("jjj",3);
7434 coo=DataArrayDouble.New();
7441 m.insertNextCell(NORM_TETRA4,4,[0,1,2,3]);
7442 m.insertNextCell(NORM_TETRA4,4,[0,1,2,3]);
7443 m.finishInsertingCells();
7444 m2=MEDCouplingUMesh.MergeUMeshesOnSameCoords(4*[m]);
7445 m2.convertToPolyTypes([2]);
7447 self.assertEqual(NORM_TETRA4,m2.getTypeOfCell(2));
7448 self.assertEqual(40,m2.getMeshLength());
7449 temp2=m2.getNodeIdsOfCell(2);
7450 self.assertEqual(temp2,[0,1,2,3]);
7451 m2.checkCoherency1();
7454 self.assertTrue(m3.isEqual(m2,1e-12));
7457 def testDACpyFrom1(self):
7458 d=DataArrayDouble.New();
7463 d.setInfoOnComponent(0,"X [m]");
7464 d.setInfoOnComponent(1,"Y [m]");
7465 d.setInfoOnComponent(2,"Z [m]");
7467 d1=DataArrayDouble.New();
7468 self.assertTrue(not d.isEqual(d1,1e-12));
7470 self.assertTrue(d.isEqual(d1,1e-12));
7472 self.assertTrue(d.isEqual(d1,1e-12));
7474 self.assertTrue(not d.isEqual(d1,1e-12));
7476 self.assertTrue(d.isEqual(d1,1e-12));
7478 d2=d.convertToIntArr();
7479 d4=DataArrayInt.New();
7480 self.assertTrue(not d2.isEqual(d4));
7482 self.assertTrue(d2.isEqual(d4));
7484 self.assertTrue(d2.isEqual(d4));
7486 self.assertTrue(not d2.isEqual(d4));
7488 self.assertTrue(d2.isEqual(d4));
7491 def testDAITransformWithIndArr1(self):
7493 tab2=[0,1,1,3,3,0,1,3,2,2,3,0]
7494 expected=[17,18,18,19,19,17,18,19,22,22,19,17]
7495 d=DataArrayInt.New();
7496 d.setValues(tab1,4,1);
7497 d1=DataArrayInt.New();
7498 d1.setValues(tab2,12,1);
7501 d1.transformWithIndArr(d);
7502 self.assertEqual(12,d1.getNumberOfTuples());
7503 self.assertEqual(1,d1.getNumberOfComponents());
7504 for i in xrange(12):
7505 self.assertEqual(expected[i],d1.getIJ(i,0));
7509 d1.transformWithIndArr(tab1)
7510 self.assertEqual(12,d1.getNumberOfTuples());
7511 self.assertEqual(1,d1.getNumberOfComponents());
7512 for i in xrange(12):
7513 self.assertEqual(expected[i],d1.getIJ(i,0));
7517 def testDAIBuildPermArrPerLevel1(self):
7518 arr=[2,0,1,1,0,1,2,0,1,1,0,0]
7519 expected1=[10,0,5,6,1,7,11,2,8,9,3,4]
7520 da=DataArrayInt.New();
7521 da.setValues(arr,12,1);
7522 da2=da.buildPermArrPerLevel();
7523 self.assertEqual(12,da2.getNumberOfTuples());
7524 self.assertEqual(1,da2.getNumberOfComponents());
7525 for i in xrange(12):
7526 self.assertEqual(expected1[i],da2.getIJ(i,0));
7530 def testDAIOperations1(self):
7531 arr1=[-1,-2,4,7,3,2,6,6,4,3,0,1]
7532 da=DataArrayInt.New();
7533 da.setValues(arr1,4,3);
7534 da1=DataArrayInt.New();
7537 self.assertRaises(InterpKernelException,DataArrayInt.Add,da,da1);#not same number of tuples/Components
7539 da2=DataArrayInt.Add(da,da1);
7540 self.assertEqual(4,da2.getNumberOfTuples());
7541 self.assertEqual(3,da2.getNumberOfComponents());
7542 expected1=[1,1,8,12,9,9,14,15,14,14,12,14]
7543 for i in xrange(12):
7544 self.assertEqual(expected1[i],da2.getIJ(0,i));
7546 da1.substractEqual(da);
7547 expected2=[3,5,0,-2,3,5,2,3,6,8,12,12]
7548 for i in xrange(12):
7549 self.assertEqual(expected2[i],da1.getIJ(0,i));
7551 da1.rearrange(1); da1.iota(2); da1.rearrange(3);
7553 for i in xrange(12):
7554 self.assertEqual(expected1[i],da1.getIJ(0,i));
7556 da1.rearrange(1); da1.iota(2); da1.rearrange(3);
7557 da2=DataArrayInt.Multiply(da,da1);
7558 self.assertEqual(4,da2.getNumberOfTuples());
7559 self.assertEqual(3,da2.getNumberOfComponents());
7560 expected3=[-2,-6,16,35,18,14,48,54,40,33,0,13]
7561 for i in xrange(12):
7562 self.assertEqual(expected3[i],da2.getIJ(0,i));
7564 da.divideEqual(da1);
7565 self.assertEqual(4,da.getNumberOfTuples());
7566 self.assertEqual(3,da.getNumberOfComponents());
7567 expected4=[0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0]
7568 for i in xrange(12):
7569 self.assertEqual(expected4[i],da.getIJ(0,i));
7571 da.setValues(arr1,4,3);
7572 da1.multiplyEqual(da);
7573 self.assertEqual(4,da1.getNumberOfTuples());
7574 self.assertEqual(3,da1.getNumberOfComponents());
7575 for i in xrange(12):
7576 self.assertEqual(expected3[i],da1.getIJ(0,i));
7578 da1.rearrange(1); da1.iota(2); da1.rearrange(3);
7579 da2=DataArrayInt.Divide(da,da1);
7580 self.assertEqual(4,da2.getNumberOfTuples());
7581 self.assertEqual(3,da2.getNumberOfComponents());
7582 for i in xrange(12):
7583 self.assertEqual(expected4[i],da2.getIJ(0,i));
7586 self.assertEqual(4,da1.getNumberOfTuples());
7587 self.assertEqual(3,da1.getNumberOfComponents());
7588 expected5=[160,107,80,64,53,45,40,35,32,29,26,24]
7589 for i in xrange(12):
7590 self.assertEqual(expected5[i],da1.getIJ(0,i));
7592 da1.applyDivideBy(2);
7593 self.assertEqual(4,da1.getNumberOfTuples());
7594 self.assertEqual(3,da1.getNumberOfComponents());
7595 expected6=[80,53,40,32,26,22,20,17,16,14,13,12]
7596 for i in xrange(12):
7597 self.assertEqual(expected6[i],da1.getIJ(0,i));
7599 expected7=[3,4,5,4,5,1,6,3,2,0,6,5]
7600 da1.applyModulus(7);
7601 for i in xrange(12):
7602 self.assertEqual(expected7[i],da1.getIJ(0,i));
7605 expected8=[3,3,3,3,3,1,3,3,0,0,3,3]
7606 da1.applyRModulus(3);
7607 for i in xrange(12):
7608 self.assertEqual(expected8[i],da1.getIJ(0,i));
7612 def testEmulateMEDMEMBDC1(self):
7613 m,m1=MEDCouplingDataForTest.buildPointe_1();
7614 m2,da1,da2,da3,da4,da5,da0=m.emulateMEDMEMBDC(m1)
7615 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]
7616 expected1=[1,32,29,23,41,36]
7617 self.assertEqual(47,da0.getNumberOfTuples());
7618 self.assertEqual(1,da0.getNumberOfComponents());
7619 for i in xrange(47):
7620 self.assertEqual(expected0[i],da0.getIJ(0,i));
7622 self.assertEqual(6,da5.getNumberOfTuples());
7623 self.assertEqual(1,da5.getNumberOfComponents());
7625 self.assertEqual(expected1[i],da5.getIJ(0,i));
7627 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]
7628 self.assertEqual(70,da1.getNumberOfTuples());
7629 self.assertEqual(1,da1.getNumberOfComponents());
7630 for i in xrange(70):
7631 self.assertEqual(expected2[i],da1.getIJ(0,i));
7633 expected3=[0,4,8,12,16,20,24,28,32,36,40,44,48,53,58,64,70]
7634 self.assertEqual(17,da2.getNumberOfTuples());
7635 self.assertEqual(1,da2.getNumberOfComponents());
7636 for i in xrange(17):
7637 self.assertEqual(expected3[i],da2.getIJ(0,i));
7639 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]
7640 #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];
7641 self.assertEqual(48,da4.getNumberOfTuples());
7642 self.assertEqual(1,da4.getNumberOfComponents());
7643 for i in xrange(48):
7644 self.assertEqual(expected4[i],da4.getIJ(0,i));
7646 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]
7647 self.assertEqual(70,da3.getNumberOfTuples());
7648 self.assertEqual(1,da3.getNumberOfComponents());
7649 for i in xrange(70):
7650 self.assertEqual(expected5[i],da3.getIJ(0,i));
7654 def testGetLevArrPerCellTypes1(self):
7655 m,m1=MEDCouplingDataForTest.buildPointe_1();
7656 m1,d0,d1,d2,d3=m.buildDescendingConnectivity();
7657 order=[NORM_TRI3,NORM_QUAD4];
7658 da0,da1=m1.getLevArrPerCellTypes(order);
7659 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]
7660 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]
7661 self.assertEqual(47,da0.getNumberOfTuples());
7662 self.assertEqual(1,da0.getNumberOfComponents());
7663 for i in xrange(47):
7664 self.assertEqual(expected0[i],da0.getIJ(0,i));
7666 self.assertEqual(2,da1.getNumberOfTuples());
7667 self.assertEqual(1,da1.getNumberOfComponents());
7668 self.assertEqual(36,da1.getIJ(0,0));#36 TRI3
7669 self.assertEqual(11,da1.getIJ(1,0));#11 QUAD4
7671 da2=da0.buildPermArrPerLevel();
7673 self.assertEqual(47,da2.getNumberOfTuples());
7674 self.assertEqual(1,da2.getNumberOfComponents());
7675 for i in xrange(47):
7676 self.assertEqual(expected1[i],da2.getIJ(0,i));
7680 def testSortCellsInMEDFileFrmt1(self):
7681 m,m1=MEDCouplingDataForTest.buildPointe_1();
7683 da=DataArrayInt.New()
7684 da.setValues([0,1,2,14,3,12,4,5,15,6,7,8,9,10,11,13],16,1)
7685 daa=da.invertArrayN2O2O2N(16)
7686 m.renumberCells(daa,False)
7687 da2=m.sortCellsInMEDFileFrmt()
7688 self.assertEqual(da2.getValues(),[0,1,2,14,3,12,4,5,15,6,7,8,9,10,11,13])
7689 self.assertTrue(m.isEqual(m2,1e-12))
7690 self.assertTrue(da.isEqual(da2))
7693 def testBuildPartAndReduceNodes1(self):
7694 m=MEDCouplingDataForTest.build2DTargetMesh_1();
7696 m2,da=m.buildPartAndReduceNodes(arr);
7697 self.assertEqual(5,m2.getNumberOfNodes());
7698 self.assertEqual(2,m2.getNumberOfCells());
7699 f=m2.getMeasureField(True);
7700 self.assertAlmostEqual(0.125,f.getArray().getIJ(0,0),12);
7701 self.assertAlmostEqual(0.25,f.getArray().getIJ(1,0),12);
7703 arr2=DataArrayInt.New()
7704 arr2.setValues(arr,2,1)
7705 m2,da=m.buildPartAndReduceNodes(arr2);
7706 self.assertEqual(5,m2.getNumberOfNodes());
7707 self.assertEqual(2,m2.getNumberOfCells());
7708 f=m2.getMeasureField(True);
7709 self.assertAlmostEqual(0.125,f.getArray().getIJ(0,0),12);
7710 self.assertAlmostEqual(0.25,f.getArray().getIJ(1,0),12);
7713 def testDAITransformWithIndArrR1(self):
7715 tab2=[-1,-1,0,1,2,3,4,5,-1,-1,-1,-1]
7716 expected=[0,3,1,2,4,5]
7717 d=DataArrayInt.New();
7718 d.setValues(tab1,6,1);
7719 d1=DataArrayInt.New();
7720 d1.setValues(tab2,12,1);
7723 d3=d.transformWithIndArrR(d1);
7724 self.assertEqual(6,d3.getNumberOfTuples());
7725 self.assertEqual(1,d3.getNumberOfComponents());
7727 self.assertEqual(expected[i],d3.getIJ(i,0));
7731 d3=d.transformWithIndArrR(tab2)
7732 self.assertEqual(6,d3.getNumberOfTuples());
7733 self.assertEqual(1,d3.getNumberOfComponents());
7735 self.assertEqual(expected[i],d3.getIJ(i,0));
7739 def testDAISplitByValueRange1(self):
7740 val1=[6,5,0,3,2,7,8,1,4]
7742 d=DataArrayInt.New();
7743 d.setValues(val1,9,1);
7744 e,f,g=d.splitByValueRange(val2);
7745 self.assertEqual(9,e.getNumberOfTuples());
7746 self.assertEqual(1,e.getNumberOfComponents());
7747 self.assertEqual(9,f.getNumberOfTuples());
7748 self.assertEqual(1,f.getNumberOfComponents());
7749 self.assertEqual(2,g.getNumberOfTuples());
7750 self.assertEqual(1,g.getNumberOfComponents());
7752 expected1=[1,1,0,0,0,1,1,0,1]
7753 expected2=[2,1,0,3,2,3,4,1,0]
7755 self.assertEqual(expected1[i],e.getIJ(i,0));
7756 self.assertEqual(expected2[i],f.getIJ(i,0));
7758 self.assertEqual(0,g.getIJ(0,0));
7759 self.assertEqual(1,g.getIJ(1,0));
7762 self.assertRaises(InterpKernelException,d.splitByValueRange,val2);
7765 def testUMeshSplitProfilePerType1(self):
7767 m=MEDCouplingDataForTest.build2DTargetMesh_1();
7768 m.renumberCells(val0,False);
7771 d=DataArrayInt.New();
7772 d.setValues(val1,3,1);
7774 code,idsInPflPerType,pfls=m.splitProfilePerType(d);
7775 self.assertEqual(2,len(code));
7776 self.assertEqual(2,len(idsInPflPerType));
7777 expected1=[[3,1,0], [4,2,1]]
7778 self.assertEqual(expected1,code)
7779 self.assertEqual(2,len(idsInPflPerType));
7780 self.assertEqual(1,idsInPflPerType[0].getNumberOfTuples());
7781 self.assertEqual(0,idsInPflPerType[0].getIJ(0,0));
7782 self.assertEqual(2,idsInPflPerType[1].getNumberOfTuples());
7783 self.assertEqual(1,idsInPflPerType[1].getIJ(0,0));
7784 self.assertEqual(2,idsInPflPerType[1].getIJ(1,0));
7786 self.assertEqual(2,len(pfls));
7787 self.assertEqual("sup",pfls[0].getName())
7788 self.assertEqual(1,pfls[0].getNumberOfTuples());
7789 self.assertEqual(0,pfls[0].getIJ(0,0));
7790 self.assertEqual("sup",pfls[1].getName())
7791 self.assertEqual(2,pfls[1].getNumberOfTuples());
7792 self.assertEqual(0,pfls[1].getIJ(0,0));
7793 self.assertEqual(1,pfls[1].getIJ(1,0));
7796 d=DataArrayInt.New();
7797 d.setValues(val2,4,1);
7798 code,idsInPflPerType,pfls=m.splitProfilePerType(d);
7799 self.assertEqual(2,len(code));
7800 self.assertEqual(2,len(idsInPflPerType));
7801 expected2=[[3,1,0], [4,3,-1]]
7802 self.assertEqual(expected2,code);
7803 self.assertEqual(2,len(idsInPflPerType));
7804 self.assertEqual(1,idsInPflPerType[0].getNumberOfTuples());
7805 self.assertEqual(0,idsInPflPerType[0].getIJ(0,0));
7806 self.assertEqual(3,idsInPflPerType[1].getNumberOfTuples());
7807 self.assertEqual(1,idsInPflPerType[1].getIJ(0,0));
7808 self.assertEqual(2,idsInPflPerType[1].getIJ(1,0));
7809 self.assertEqual(3,idsInPflPerType[1].getIJ(2,0));
7811 self.assertEqual(1,len(pfls));
7812 self.assertEqual(1,pfls[0].getNumberOfTuples());
7813 self.assertEqual(0,pfls[0].getIJ(0,0));
7816 d=DataArrayInt.New();
7817 d.setValues(val3,3,1);
7818 code,idsInPflPerType,pfls=m.splitProfilePerType(d);
7819 self.assertEqual(2,len(code));
7820 self.assertEqual(2,len(idsInPflPerType));
7821 expected3=[[3,2,0], [4,1,1]]
7822 self.assertEqual(expected3,code);
7823 self.assertEqual(2,len(idsInPflPerType));
7824 self.assertEqual(2,idsInPflPerType[0].getNumberOfTuples());
7825 self.assertEqual(0,idsInPflPerType[0].getIJ(0,0));
7826 self.assertEqual(1,idsInPflPerType[0].getIJ(1,0));
7827 self.assertEqual(1,idsInPflPerType[1].getNumberOfTuples());
7828 self.assertEqual(2,idsInPflPerType[1].getIJ(0,0));
7830 self.assertEqual(2,len(pfls));
7831 self.assertEqual(2,pfls[0].getNumberOfTuples());
7832 self.assertEqual(1,pfls[0].getIJ(0,0));
7833 self.assertEqual(0,pfls[0].getIJ(1,0));
7834 self.assertEqual(0,pfls[1].getIJ(0,0));
7837 d=DataArrayInt.New();
7838 d.setValues(val4,2,1);
7839 code,idsInPflPerType,pfls=m.splitProfilePerType(d);
7840 self.assertEqual(1,len(code));
7841 self.assertEqual(1,len(idsInPflPerType));
7843 self.assertEqual(expected4,code);
7844 self.assertEqual(1,len(idsInPflPerType));
7845 self.assertEqual(2,idsInPflPerType[0].getNumberOfTuples());
7846 self.assertEqual(0,idsInPflPerType[0].getIJ(0,0));
7847 self.assertEqual(1,idsInPflPerType[0].getIJ(1,0));
7849 self.assertEqual(1,len(pfls));
7850 self.assertEqual(2,pfls[0].getNumberOfTuples());
7851 self.assertEqual(1,pfls[0].getIJ(0,0));
7852 self.assertEqual(2,pfls[0].getIJ(1,0));
7855 def testDAIBuildExplicitArrByRanges1(self):
7856 d=DataArrayInt.New();
7858 d.setValues(vals1,3,1);
7859 e=DataArrayInt.New();
7860 vals2=[0,3,6,10,14,20]
7861 e.setValues(vals2,6,1);
7863 f=d.buildExplicitArrByRanges(e);
7864 self.assertEqual(11,f.getNumberOfTuples());
7865 self.assertEqual(1,f.getNumberOfComponents());
7866 expected1=[0,1,2,6,7,8,9,10,11,12,13]
7867 for i in xrange(11):
7868 self.assertEqual(expected1[i],f.getIJ(i,0));
7872 def testDAIComputeOffsets2(self):
7873 d=DataArrayInt.New();
7875 expected1=[0,3,8,9,11,11,19]
7876 d.setValues(vals1,6,1);
7877 d.computeOffsets2();
7878 self.assertEqual(7,d.getNumberOfTuples());
7879 self.assertEqual(1,d.getNumberOfComponents());
7881 self.assertEqual(expected1[i],d.getIJ(0,i));
7885 def testMergeField3(self):
7886 m=MEDCouplingDataForTest.build2DTargetMesh_1();
7887 m.getCoords().setInfoOnComponent(0,"x [m]");
7888 m.getCoords().setInfoOnComponent(1,"z [km]");
7890 m.setDescription("desc");
7891 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
7894 arr=DataArrayDouble.New();
7896 arr.setInfoOnComponent(0,"X [m]");
7897 arr.setInfoOnComponent(1,"YY [mm]");
7898 arr.fillWithValue(2.);
7901 f2=MEDCouplingFieldDouble.MergeFields([f1]);
7902 self.assertTrue(f1.isEqual(f2,1e-12,1e-12));
7906 def testGetDistributionOfTypes1(self):
7907 m=MEDCouplingDataForTest.build2DTargetMesh_1();
7909 self.assertRaises(InterpKernelException,m.getDistributionOfTypes);
7910 m.renumberCells(tab1,False);
7911 code=m.getDistributionOfTypes();
7912 self.assertEqual(2,len(code));
7913 self.assertEqual(3,code[0][0]);
7914 self.assertEqual(2,code[0][1]);
7915 self.assertEqual(-1,code[0][2]);
7916 self.assertEqual(4,code[1][0]);
7917 self.assertEqual(3,code[1][1]);
7918 self.assertEqual(-1,code[1][2]);
7921 def testNorm2_1(self):
7922 m=MEDCouplingDataForTest.build2DTargetMesh_1();
7923 f=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
7926 d=DataArrayDouble.New();
7927 tab=[1.2,1.3,2.2,2.3,3.2,3.3,4.2,4.3,5.2,5.3]
7928 d.setValues(tab,5,2);
7932 self.assertAlmostEqual(11.209371079592289,f.norm2(),14);
7936 def testNormMax1(self):
7937 m=MEDCouplingDataForTest.build2DTargetMesh_1();
7938 f=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
7941 d=DataArrayDouble.New();
7942 tab=[2.3,-1.2,6.3,-7.8,2.9,7.7,2.1,0.,3.6,-7.6]
7943 d.setValues(tab,5,2);
7947 self.assertAlmostEqual(7.8,f.normMax(),14);
7951 def testFindAndCorrectBadOriented3DExtrudedCells1(self):
7952 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];
7953 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]
7954 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]
7955 invalidCells=[2,3,6,7]
7956 m=MEDCouplingUMesh.New("Example",3);
7957 coo=DataArrayDouble.New();
7958 coo.setValues(coords,38,3);
7961 m.insertNextCell(NORM_PENTA6,6,conn[0:6])
7962 m.insertNextCell(NORM_PENTA6,6,conn[6:12])
7963 m.insertNextCell(NORM_PENTA6,6,conn[12:18])
7964 m.insertNextCell(NORM_PENTA6,6,conn[18:24])
7965 m.insertNextCell(NORM_HEXA8,8,conn[24:32])
7966 m.insertNextCell(NORM_HEXA8,8,conn[32:40])
7967 m.insertNextCell(NORM_HEXA8,8,conn[40:48])
7968 m.insertNextCell(NORM_HEXA8,8,conn[48:56])
7969 m.finishInsertingCells();
7971 v=m.findAndCorrectBadOriented3DExtrudedCells();
7972 self.assertEqual(4,len(v));
7973 self.assertEqual(v.getValues(),invalidCells);
7974 self.assertEqual(connExp,m.getNodalConnectivity().getValues());
7975 self.assertTrue(m.findAndCorrectBadOriented3DExtrudedCells().empty())
7979 def testConvertExtrudedPolyhedra1(self):
7980 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]
7981 m=MEDCouplingUMesh.New("Example",3);
7982 coo=DataArrayDouble.New();
7984 coo.rearrange(1); coo.iota(0); coo.rearrange(3);
7987 m.insertNextCell(NORM_TETRA4,4,conn[0:4])
7988 m.insertNextCell(NORM_HEXA8,8,conn[4:12])
7989 m.insertNextCell(NORM_TETRA4,4,conn[12:16])
7990 m.insertNextCell(NORM_POLYHED,6,conn[16:22])
7991 m.insertNextCell(NORM_PENTA6,6,conn[22:28])
7992 m.insertNextCell(NORM_POLYHED,10,conn[28:38])
7993 m.insertNextCell(NORM_HEXA8,8,conn[38:46])
7994 m.insertNextCell(NORM_HEXGP12,12,conn[46:58])
7995 m.insertNextCell(NORM_POLYHED,14,conn[58:72])
7996 m.finishInsertingCells();
7998 m.convertExtrudedPolyhedra();
7999 da=m.getNodalConnectivity();
8000 dai=m.getNodalConnectivityIndex();
8001 self.assertEqual(10,dai.getNbOfElems());
8002 self.assertEqual(159,da.getNbOfElems());
8004 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];
8005 expected2=[0,5,14,19,42,49,86,95,108,159]
8006 self.assertEqual(expected1,da.getValues());
8007 self.assertEqual(expected2,dai.getValues());
8011 def testNonRegressionCopyTinyStrings(self):
8012 m=MEDCouplingDataForTest.build2DTargetMesh_1()
8013 f1=m.getMeasureField(True)
8014 f1.getArray().setInfoOnComponent(0,"P [N/m^2]")
8015 bary=m.getBarycenterAndOwner()
8016 f2=f1.buildNewTimeReprFromThis(NO_TIME,False)
8018 self.assertRaises(InterpKernelException,f1.copyTinyAttrFrom,f2)
8021 def testDaDSetPartOfValuesAdv1(self):
8022 tab1=[3.,4.,5., 13.,14.,15., 23.,24.,25., 33.,34.,35., 43.,44.,45., 53.,54.,55.]
8023 tab2=[6.,7.,8., 16.,17.,18., 26.,27.,28.]
8024 tab3=[4,1, 2,2, 3,0]
8025 a=DataArrayDouble.New();
8026 a.setValues(tab1,6,3);
8027 b=DataArrayDouble.New();
8028 b.setValues(tab2,3,3);
8029 c=DataArrayInt.New();
8030 c.setValues(tab3,3,2);
8032 a.setPartOfValuesAdv(b,c);
8033 expected1=[3.,4.,5., 13.,14.,15., 26.,27.,28., 6.,7.,8., 16.,17.,18., 53.,54.,55.]
8034 self.assertEqual(expected1,a.getValues());
8037 def testUMeshBuildSetInstanceFromThis1(self):
8038 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
8039 m2=m.buildSetInstanceFromThis(3);
8040 self.assertTrue(m.isEqual(m2,1e-12));
8042 m=MEDCouplingUMesh.New("toto",2);
8043 m2=m.buildSetInstanceFromThis(3);
8044 self.assertEqual(0,m2.getNumberOfNodes());
8045 self.assertEqual(0,m2.getNumberOfCells());
8048 def testUMeshMergeMeshesCVW1(self):
8049 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
8050 m2=MEDCouplingUMesh.New("toto",2);
8051 m3=MEDCouplingUMesh.MergeUMeshes([m,m2]);
8052 m3.setName(m.getName());
8053 self.assertTrue(m.isEqual(m3,1e-12));
8056 def testChangeUnderlyingMeshWithCMesh1(self):
8057 mesh=MEDCouplingCMesh.New();
8058 coordsX=DataArrayDouble.New();
8059 arrX=[ -1., 1., 2., 4. ]
8060 coordsX.setValues(arrX,4,1);
8061 coordsY=DataArrayDouble.New();
8062 arrY=[ -2., 2., 4., 8. ]
8063 coordsY.setValues(arrY,4,1);
8064 coordsZ=DataArrayDouble.New();
8065 arrZ=[ -3., 3., 6., 12. ]
8066 coordsZ.setValues(arrZ,4,1);
8067 mesh.setCoords(coordsX,coordsY,coordsZ);
8068 f=mesh.getMeasureField(True)
8069 mesh2=mesh.deepCpy()
8070 for myId in [0,1,2,10,11,12,20,21,22]:
8071 f=mesh.getMeasureField(True)
8072 f.changeUnderlyingMesh(mesh2,myId,1e-12);
8074 mesh2.setName("uuuu")
8075 for myId in [1,2,10,11,12,20,21,22]:
8076 f=mesh.getMeasureField(True)
8077 f.changeUnderlyingMesh(mesh2,myId,1e-12);
8081 def testDADFindCommonTuples1(self):
8082 da=DataArrayDouble.New();
8084 array1=[2.3,1.2,1.3,2.3,2.301,0.8]
8085 da.setValues(array1,6,1)
8086 c,cI=da.findCommonTuples(1e-2);
8089 self.assertEqual(3,c.getNbOfElems());
8090 self.assertEqual(2,cI.getNbOfElems());
8091 self.assertEqual(expected1,c.getValues())
8092 self.assertEqual(expected2,cI.getValues())
8093 c,cI=da.findCommonTuples(2e-1)
8094 expected3=[0,3,4,1,2]
8096 self.assertEqual(5,c.getNbOfElems());
8097 self.assertEqual(3,cI.getNbOfElems());
8098 self.assertEqual(expected3,c.getValues())
8099 self.assertEqual(expected4,cI.getValues())
8101 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]
8102 da.setValues(array2,6,2)
8103 c,cI=da.findCommonTuples(1e-2);
8104 self.assertEqual(3,c.getNbOfElems());
8105 self.assertEqual(2,cI.getNbOfElems());
8106 self.assertEqual(expected1,c.getValues())
8107 self.assertEqual(expected2,cI.getValues())
8108 c,cI=da.findCommonTuples(2e-1)
8109 self.assertEqual(5,c.getNbOfElems());
8110 self.assertEqual(3,cI.getNbOfElems());
8111 self.assertEqual(expected3,c.getValues())
8112 self.assertEqual(expected4,cI.getValues())
8114 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]
8115 da.setValues(array3,6,3)
8116 c,cI=da.findCommonTuples(1e-2);
8117 self.assertEqual(3,c.getNbOfElems());
8118 self.assertEqual(2,cI.getNbOfElems());
8119 self.assertEqual(expected1,c.getValues())
8120 self.assertEqual(expected2,cI.getValues())
8121 c,cI=da.findCommonTuples(2e-1)
8122 self.assertEqual(5,c.getNbOfElems());
8123 self.assertEqual(3,cI.getNbOfElems());
8124 self.assertEqual(expected3,c.getValues())
8125 self.assertEqual(expected4,cI.getValues())
8126 # nbOftuples=1, no common groups
8127 array11=[2.3,1.2,1.3,2.4,2.5,0.8]
8128 da.setValues(array11,6,1)
8129 c,cI=da.findCommonTuples(1e-2);
8130 self.assertEqual(0,c.getNbOfElems());
8131 self.assertEqual(1,cI.getNbOfElems());
8132 self.assertEqual([0],cI.getValues())
8135 da.setValues(array12,6,5) #bad NumberOfComponents
8136 self.assertRaises(InterpKernelException, da.findCommonTuples, 1e-2);
8139 def testDABack1(self):
8140 da=DataArrayDouble.New();
8141 array1=[2.3,1.2,1.3,2.3,2.301,0.8]
8142 da.setValues(array1,6,1);
8143 self.assertAlmostEqual(0.8,da.back(),14);
8145 self.assertRaises(InterpKernelException,da.back);
8147 self.assertRaises(InterpKernelException,da.back);
8149 da=DataArrayInt.New();
8151 da.setValues(array2,4,1);
8152 self.assertEqual(2,da.back());
8154 self.assertRaises(InterpKernelException,da.back);
8156 self.assertRaises(InterpKernelException,da.back);
8159 def testDADGetDifferentValues1(self):
8160 da=DataArrayDouble.New();
8161 array1=[2.3,1.2,1.3,2.3,2.301,0.8]
8162 da.setValues(array1,6,1)
8164 expected1=[2.301,1.2,1.3,0.8]
8165 dv=da.getDifferentValues(1e-2);
8166 self.assertEqual(4,dv.getNbOfElems());
8168 self.assertAlmostEqual(expected1[i],dv.getIJ(i,0),14);
8171 dv=da.getDifferentValues(2e-1);
8172 expected2=[2.301,1.3,0.8]
8173 self.assertEqual(3,dv.getNbOfElems());
8175 self.assertAlmostEqual(expected2[i],dv.getIJ(i,0),14);
8179 def testDAIBuildOld2NewArrayFromSurjectiveFormat2(self):
8182 a=DataArrayInt.New();
8183 a.setValues(arr,5,1);
8184 b=DataArrayInt.New();
8185 b.setValues(arrI,3,1);
8186 ret,newNbTuple=DataArrayInt.BuildOld2NewArrayFromSurjectiveFormat2(10,a,b);
8187 expected=[0,1,2,0,3,4,5,4,6,4]
8188 self.assertEqual(10,ret.getNbOfElems());
8189 self.assertEqual(7,newNbTuple);
8190 self.assertEqual(1,ret.getNumberOfComponents());
8191 self.assertEqual(expected,ret.getValues());
8192 self.assertRaises(InterpKernelException,DataArrayInt.BuildOld2NewArrayFromSurjectiveFormat2,9,a,b);
8195 def testDADIReverse1(self):
8197 a=DataArrayInt.New();
8198 a.setValues(arr,6,1);
8199 self.assertEqual(2,a.back());
8202 self.assertEqual(arr[5-i],a.getIJ(i,0));
8204 a.setValues(arr[:-1],5,1);
8207 self.assertEqual(arr[4-i],a.getIJ(i,0));
8210 arr2=[0.,3.,5.,7.,9.,2.]
8211 b=DataArrayDouble.New();
8212 b.setValues(arr2,6,1);
8215 self.assertAlmostEqual(arr2[5-i],b.getIJ(i,0),14);
8217 b.setValues(arr2[:5],5,1);
8218 self.assertAlmostEqual(9.,b.back(),14)
8221 self.assertAlmostEqual(arr2[4-i],b.getIJ(i,0),14);
8225 def testGetNodeIdsInUse1(self):
8226 m0=MEDCouplingDataForTest.build2DTargetMesh_1();
8228 m1=m0.buildPartOfMySelf(CellIds,True);
8229 arr,newNbOfNodes=m1.getNodeIdsInUse();
8230 expected=[-1,0,1,-1,2,3,-1,-1,-1]
8231 self.assertEqual(4,newNbOfNodes);
8232 self.assertEqual(9,arr.getNbOfElems());
8233 self.assertEqual(expected,arr.getValues());
8234 arr2=arr.invertArrayO2N2N2O(newNbOfNodes);
8235 self.assertEqual(4,arr2.getNbOfElems());
8237 self.assertEqual(expected2,arr2.getValues());
8240 def testBuildDescendingConnec2(self):
8241 mesh=MEDCouplingDataForTest.build2DTargetMesh_1();
8243 mesh2,desc,descIndx,revDesc,revDescIndx=mesh.buildDescendingConnectivity2();
8244 mesh2.checkCoherency();
8245 self.assertEqual(1,mesh2.getMeshDimension());
8246 self.assertEqual(13,mesh2.getNumberOfCells());
8247 self.assertEqual(14,revDescIndx.getNbOfElems()); self.assertEqual(14,revDescIndx.getNumberOfTuples());
8248 self.assertEqual(6,descIndx.getNbOfElems()); self.assertEqual(6,descIndx.getNumberOfTuples());
8249 self.assertEqual(18,desc.getNbOfElems()); self.assertEqual(18,desc.getNumberOfTuples());
8250 self.assertEqual(18,revDesc.getNbOfElems()); self.assertEqual(18,revDesc.getNumberOfTuples());
8251 expected1=[1,2,3,4,-3,5,6, 7,8,-5,9,10,-2,11, 12,13,-7,-10]
8252 self.assertEqual(expected1,desc.getValues());
8253 expected2=[0,4,7,10,14,18]
8254 self.assertEqual(expected2,descIndx.getValues());
8255 expected3=[0,1,3,5,6,8,9,11,12,13,15,16,17,18]
8256 self.assertEqual(expected3,revDescIndx.getValues());
8257 expected4=[0, 0,3, 0,1, 0, 1,2, 1, 2,4, 2, 3, 3,4, 3, 4, 4]
8258 self.assertEqual(expected4,revDesc.getValues());
8259 conn=mesh2.getNodalConnectivity();
8260 connIndex=mesh2.getNodalConnectivityIndex();
8261 expected5=[0,3,6,9,12,15,18,21,24,27,30,33,36,39]
8262 self.assertEqual(expected5,connIndex.getValues());
8263 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]
8264 self.assertEqual(expected6,conn.getValues());
8267 def testIntersect2DMeshesTmp1(self):
8268 m1c=MEDCouplingCMesh.New();
8269 coordsX=DataArrayDouble.New();
8270 arrX=[ -1., 1., 2., 4. ]
8271 coordsX.setValues(arrX,4,1);
8272 m1c.setCoordsAt(0,coordsX);
8273 coordsY=DataArrayDouble.New();
8274 arrY=[ -2., 2., 4., 8. ]
8275 coordsY.setValues(arrY,4,1);
8276 m1c.setCoordsAt(1,coordsY);
8277 m1=m1c.buildUnstructured()
8278 m1bis=m1.buildPartOfMySelf([3,4,5],False)
8280 m2=m2.buildPartOfMySelf([0,1,2],False)
8281 m2.translate([0.5,0.5])
8283 m3,d1,d2=MEDCouplingUMesh.Intersect2DMeshes(m1bis,m2,1e-10)
8284 expected1=[0,0,1,1,1,2,2,2]
8285 expected2=[0,-1,0,1,-1,1,2,-1]
8286 self.assertEqual(8,d1.getNumberOfTuples());
8287 self.assertEqual(8,d2.getNumberOfTuples());
8288 self.assertEqual(8,m3.getNumberOfCells());
8289 self.assertEqual(22,m3.getNumberOfNodes());
8290 self.assertEqual(2,m3.getSpaceDimension());
8291 self.assertEqual(expected1,d1.getValues());
8292 self.assertEqual(expected2,d2.getValues());
8293 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]
8294 expected4=[0,5,12,17,22,28,33,38,44]
8295 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]
8296 self.assertEqual(44,m3.getNodalConnectivity().getNumberOfTuples());
8297 self.assertEqual(9,m3.getNodalConnectivityIndex().getNumberOfTuples());
8298 self.assertEqual(expected3,m3.getNodalConnectivity().getValues());
8299 self.assertEqual(expected4,m3.getNodalConnectivityIndex().getValues());
8300 for i in xrange(44):
8301 self.assertAlmostEqual(expected5[i],m3.getCoords().getIJ(0,i),12);
8305 def testFindNodesOnLine1(self):
8306 mesh=MEDCouplingDataForTest.build2DTargetMesh_1();
8314 res=mesh.findNodesOnLine(pt,vec,1e-12);
8315 self.assertEqual(3,len(res));
8316 self.assertEqual(expected1,res.getValues());
8318 mesh.changeSpaceDimension(3);
8319 mesh.rotate(pt2,vec2,pi/4.);
8320 res=mesh.findNodesOnLine(pt3,vec3,1e-12);
8321 self.assertEqual(3,len(res));
8322 self.assertEqual(expected1,res.getValues());
8325 def testIntersect2DMeshesTmp2(self):
8326 m1c=MEDCouplingCMesh.New();
8327 coordsX1=DataArrayDouble.New();
8328 arrX1=[ 0., 1., 1.5, 2. ]
8329 coordsX1.setValues(arrX1,4,1);
8330 m1c.setCoordsAt(0,coordsX1);
8331 coordsY1=DataArrayDouble.New();
8332 arrY1=[ 0., 1.5, 3.]
8333 coordsY1.setValues(arrY1,3,1);
8334 m1c.setCoordsAt(1,coordsY1);
8335 m1=m1c.buildUnstructured();
8336 m2c=MEDCouplingCMesh.New();
8337 coordsX2=DataArrayDouble.New();
8338 arrX2=[ 0., 1., 2. ]
8339 coordsX2.setValues(arrX2,3,1);
8340 m2c.setCoordsAt(0,coordsX2);
8341 coordsY2=DataArrayDouble.New();
8343 coordsY2.setValues(arrY2,3,1);
8344 m2c.setCoordsAt(1,coordsY2);
8345 m2=m2c.buildUnstructured();
8347 m3,d1,d2=MEDCouplingUMesh.Intersect2DMeshes(m1,m2,1e-10)
8349 expected1=[0,0,1,1,2,2,3,4,5]
8350 expected2=[0,2,1,3,1,3,2,3,3]
8351 self.assertEqual(9,d1.getNumberOfTuples());
8352 self.assertEqual(9,d2.getNumberOfTuples());
8353 self.assertEqual(9,m3.getNumberOfCells());
8354 self.assertEqual(22,m3.getNumberOfNodes());
8355 self.assertEqual(2,m3.getSpaceDimension());
8356 self.assertEqual(expected1,d1.getValues());
8357 self.assertEqual(expected2,d2.getValues());
8358 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]
8359 expected4=[0,5,10,15,20,25,30,35,40,45]
8360 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]
8361 self.assertEqual(45,m3.getNodalConnectivity().getNumberOfTuples());
8362 self.assertEqual(10,m3.getNodalConnectivityIndex().getNumberOfTuples());
8363 self.assertEqual(expected3,m3.getNodalConnectivity().getValues());
8364 self.assertEqual(expected4,m3.getNodalConnectivityIndex().getValues());
8365 for i in xrange(44):
8366 self.assertAlmostEqual(expected5[i],m3.getCoords().getIJ(0,i),12);
8370 def testBuildPartOfMySelfSafe1(self):
8371 mesh=MEDCouplingDataForTest.build2DTargetMesh_1()
8372 self.assertRaises(InterpKernelException,mesh.buildPartOfMySelf,[0,-1,4,2],True)
8373 self.assertRaises(InterpKernelException,mesh.buildPartOfMySelf,[0,4,5,4],True)
8376 def testIntersect2DMeshesTmp3(self):
8377 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];
8378 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];
8379 m1=MEDCouplingUMesh.New();
8380 m1.setMeshDimension(2);
8381 m1.allocateCells(8);
8382 m1.insertNextCell(NORM_TRI6,6,m1Conn[0:6]);
8383 m1.insertNextCell(NORM_QUAD8,8,m1Conn[6:14]);
8384 m1.insertNextCell(NORM_TRI6,6,m1Conn[14:20]);
8385 m1.insertNextCell(NORM_QUAD8,8,m1Conn[20:28]);
8386 m1.insertNextCell(NORM_TRI6,6,m1Conn[28:34]);
8387 m1.insertNextCell(NORM_QUAD8,8,m1Conn[34:42]);
8388 m1.insertNextCell(NORM_TRI6,6,m1Conn[42:48]);
8389 m1.insertNextCell(NORM_QUAD8,8,m1Conn[48:56]);
8390 m1.finishInsertingCells();
8391 myCoords1=DataArrayDouble.New();
8392 myCoords1.setValues(m1Coords,25,2);
8393 m1.setCoords(myCoords1);
8395 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.]
8396 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]
8397 m2=MEDCouplingUMesh.New();
8398 m2.setMeshDimension(2);
8399 m2.allocateCells(8);
8401 m2.insertNextCell(NORM_QUAD4,4,m2Conn[4*i:4*(i+1)])
8403 m2.finishInsertingCells();
8404 myCoords2=DataArrayDouble.New();
8405 myCoords2.setValues(m2Coords,15,2);
8406 m2.setCoords(myCoords2);
8408 m3,d1,d2=MEDCouplingUMesh.Intersect2DMeshes(m1,m2,1e-10)
8411 expected1=[0,1,1,1,2,3,3,3,4,5,5,5,6,7,7,7]
8412 expected2=[0,0,1,-1,2,2,3,-1,4,4,5,-1,6,6,7,-1]
8413 self.assertEqual(16,d1.getNumberOfTuples());
8414 self.assertEqual(16,d2.getNumberOfTuples());
8415 self.assertEqual(16,m3.getNumberOfCells());
8416 self.assertEqual(104,m3.getNumberOfNodes());
8417 self.assertEqual(2,m3.getSpaceDimension());
8418 self.assertEqual(expected1,d1.getValues());
8419 self.assertEqual(expected2,d2.getValues());
8420 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]
8421 expected4=[0,7,16,25,34,41,50,59,68,75,84,93,102,109,118,127,136]
8422 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]
8423 self.assertEqual(136,m3.getNodalConnectivity().getNumberOfTuples());
8424 self.assertEqual(17,m3.getNodalConnectivityIndex().getNumberOfTuples());
8425 self.assertEqual(expected3,m3.getNodalConnectivity().getValues());
8426 self.assertEqual(expected4,m3.getNodalConnectivityIndex().getValues());
8427 for i in xrange(208):
8428 self.assertAlmostEqual(expected5[i],m3.getCoords().getIJ(0,i),12);
8432 def testUMeshTessellate2D1(self):
8433 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];
8434 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];
8435 m1=MEDCouplingUMesh.New();
8436 m1.setMeshDimension(2);
8437 m1.allocateCells(8);
8438 m1.insertNextCell(NORM_TRI6,6,m1Conn[0:6]);
8439 m1.insertNextCell(NORM_QUAD8,8,m1Conn[6:14]);
8440 m1.insertNextCell(NORM_TRI6,6,m1Conn[14:20]);
8441 m1.insertNextCell(NORM_QUAD8,8,m1Conn[20:28]);
8442 m1.insertNextCell(NORM_TRI6,6,m1Conn[28:34]);
8443 m1.insertNextCell(NORM_QUAD8,8,m1Conn[34:42]);
8444 m1.insertNextCell(NORM_TRI6,6,m1Conn[42:48]);
8445 m1.insertNextCell(NORM_QUAD8,8,m1Conn[48:56]);
8446 m1.finishInsertingCells();
8447 myCoords1=DataArrayDouble.New();
8448 myCoords1.setValues(m1Coords,25,2);
8449 m1.setCoords(myCoords1);
8452 m11.tessellate2D(1.);
8453 self.assertTrue(m11.getCoords().isEqual(m11.getCoords(),1e-12));
8454 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]
8455 expected2=[0,5,12,17,24,29,36,41,48]
8456 self.assertEqual(48,m11.getNodalConnectivity().getNumberOfTuples());
8457 self.assertEqual(9,m11.getNodalConnectivityIndex().getNumberOfTuples());
8458 self.assertEqual(expected1,m11.getNodalConnectivity().getValues());
8459 self.assertEqual(expected2,m11.getNodalConnectivityIndex().getValues());
8462 m12.tessellate2D(0.5);
8463 self.assertEqual(41,m12.getNumberOfNodes());
8464 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]
8465 expected4=[0,6,15,21,30,36,45,51,60]
8466 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]
8467 for i in xrange(82):
8468 self.assertAlmostEqual(expected5[i],m12.getCoords().getIJ(0,i),12);
8470 self.assertEqual(60,m12.getNodalConnectivity().getNumberOfTuples());
8471 self.assertEqual(9,m12.getNodalConnectivityIndex().getNumberOfTuples());
8472 self.assertEqual(expected3,m12.getNodalConnectivity().getValues());
8473 self.assertEqual(expected4,m12.getNodalConnectivityIndex().getValues());
8476 def testUMeshTessellate2DCurve1(self):
8477 # A quarter of circle:
8478 mcoords = [0.4,0.0, 0.0,-0.4, 0.283,-0.283]
8481 m1 = MEDCouplingUMesh.New()
8482 m1.setMeshDimension(1)
8484 m1.insertNextCell(NORM_SEG3, mconnec)
8486 myCoords = DataArrayDouble.New(mcoords, 3, 2)
8487 m1.setCoords(myCoords)
8490 m2.tessellate2DCurve(0.1)
8491 # If the following raises, the test will fail automatically:
8492 m2.checkCoherency1(0.0) # eps param not used
8494 def testIntersect2DMeshesTmp4(self):
8495 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];
8496 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];
8497 m1=MEDCouplingUMesh.New();
8498 m1.setMeshDimension(2);
8499 m1.allocateCells(8);
8500 m1.insertNextCell(NORM_TRI6,6,m1Conn[0:6]);
8501 m1.insertNextCell(NORM_QUAD8,8,m1Conn[6:14]);
8502 m1.insertNextCell(NORM_TRI6,6,m1Conn[14:20]);
8503 m1.insertNextCell(NORM_QUAD8,8,m1Conn[20:28]);
8504 m1.insertNextCell(NORM_TRI6,6,m1Conn[28:34]);
8505 m1.insertNextCell(NORM_QUAD8,8,m1Conn[34:42]);
8506 m1.insertNextCell(NORM_TRI6,6,m1Conn[42:48]);
8507 m1.insertNextCell(NORM_QUAD8,8,m1Conn[48:56]);
8508 m1.finishInsertingCells();
8509 myCoords1=DataArrayDouble.New();
8510 myCoords1.setValues(m1Coords,25,2);
8511 m1.setCoords(myCoords1);
8513 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.]
8514 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]
8515 m2=MEDCouplingUMesh.New();
8516 m2.setMeshDimension(2);
8517 m2.allocateCells(8);
8519 m2.insertNextCell(NORM_QUAD4,4,m2Conn[4*i:4*(i+1)])
8521 m2.finishInsertingCells();
8522 myCoords2=DataArrayDouble.New();
8523 myCoords2.setValues(m2Coords,15,2);
8524 m2.setCoords(myCoords2);
8526 m3,d1,d2=MEDCouplingUMesh.Intersect2DMeshes(m2,m1,1e-10)
8529 expected1=[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]
8530 expected2=[0,1,1,-1,2,3,3,-1,4,5,5,-1,6,7,7,-1]
8531 self.assertEqual(16,d1.getNumberOfTuples());
8532 self.assertEqual(16,d2.getNumberOfTuples());
8533 self.assertEqual(16,m3.getNumberOfCells());
8534 self.assertEqual(104,m3.getNumberOfNodes());
8535 self.assertEqual(2,m3.getSpaceDimension());
8536 self.assertEqual(expected1,d1.getValues());
8537 self.assertEqual(expected2,d2.getValues());
8538 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]
8539 expected4=[0,7,16,25,34,41,50,59,68,75,84,93,102,109,118,127,136]
8540 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]
8541 self.assertEqual(136,m3.getNodalConnectivity().getNumberOfTuples());
8542 self.assertEqual(17,m3.getNodalConnectivityIndex().getNumberOfTuples());
8543 self.assertEqual(expected3,m3.getNodalConnectivity().getValues());
8544 self.assertEqual(expected4,m3.getNodalConnectivityIndex().getValues());
8545 for i in xrange(208):
8546 self.assertAlmostEqual(expected5[i],m3.getCoords().getIJ(0,i),12);
8550 def testGetCellIdsCrossingPlane1(self):
8551 mesh3D,mesh2D=MEDCouplingDataForTest.build3DExtrudedUMesh_1();
8553 origin=[1.524,1.4552,1.74768]
8554 ids1=mesh3D.getCellIdsCrossingPlane(origin,vec,1e-10)
8555 self.assertEqual([1,3,4,7,9,10,13,15,16],ids1.getValues())
8557 ids2=mesh3D.getCellIdsCrossingPlane(origin,vec2,1e-10)
8558 self.assertEqual([6,7,8,9,10,11],ids2.getValues())
8561 def testBuildSlice3D1(self):
8562 mesh3D,mesh2D=MEDCouplingDataForTest.build3DExtrudedUMesh_1();
8563 vec1=[-0.07,1.,0.07]
8564 origin1=[1.524,1.4552,1.74768]
8565 slice1,ids=mesh3D.buildSlice3D(origin1,vec1,1e-10);
8566 expected1=[1,3,4,7,9,10,13,15,16]
8567 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]
8568 expected3=[0,6,11,17,22,27,32,37,42,47]
8569 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.]
8570 self.assertEqual(2,slice1.getMeshDimension());
8571 self.assertEqual(3,slice1.getSpaceDimension());
8572 self.assertEqual(57,slice1.getNumberOfNodes());
8573 self.assertEqual(9,slice1.getNumberOfCells());
8574 self.assertEqual(9,ids.getNumberOfTuples());
8575 self.assertEqual(47,slice1.getNodalConnectivity().getNumberOfTuples());
8576 self.assertEqual(10,slice1.getNodalConnectivityIndex().getNumberOfTuples());
8577 self.assertEqual(expected1,ids.getValues());
8578 self.assertEqual(expected2,slice1.getNodalConnectivity().getValues());
8579 self.assertEqual(expected3,slice1.getNodalConnectivityIndex().getValues());
8580 for i in xrange(171):
8581 self.assertAlmostEqual(expected4[i],slice1.getCoords().getIJ(0,i),12);
8583 # 2nd slice based on already existing nodes of mesh3D.
8586 slice1,ids=mesh3D.buildSlice3D(origin2,vec2,1e-10);
8587 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]
8588 expected6=[0,5,10,15,21,26,32,38,43,49]
8589 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]
8590 self.assertEqual(2,slice1.getMeshDimension());
8591 self.assertEqual(3,slice1.getSpaceDimension());
8592 self.assertEqual(60,slice1.getNumberOfNodes());
8593 self.assertEqual(9,slice1.getNumberOfCells());
8594 self.assertEqual(9,ids.getNumberOfTuples());
8595 self.assertEqual(49,slice1.getNodalConnectivity().getNumberOfTuples());
8596 self.assertEqual(10,slice1.getNodalConnectivityIndex().getNumberOfTuples());
8597 self.assertEqual(expected1,ids.getValues());
8598 self.assertEqual(expected5,slice1.getNodalConnectivity().getValues());
8599 self.assertEqual(expected6,slice1.getNodalConnectivityIndex().getValues());
8600 for i in xrange(180):
8601 self.assertAlmostEqual(expected7[i],slice1.getCoords().getIJ(0,i),12);
8603 # 3rd slice based on shared face of mesh3D.
8606 slice1,ids=mesh3D.buildSlice3D(origin3,vec3,1e-10);
8607 expected8=[6,7,8,9,10,11,12,13,14,15,16,17]
8608 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]
8609 expected10=[0,5,12,17,22,29,34,39,46,51,56,63,68]
8610 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.]
8611 self.assertEqual(2,slice1.getMeshDimension());
8612 self.assertEqual(3,slice1.getSpaceDimension());
8613 self.assertEqual(45,slice1.getNumberOfNodes());
8614 self.assertEqual(12,slice1.getNumberOfCells());
8615 self.assertEqual(12,ids.getNumberOfTuples());
8616 self.assertEqual(68,slice1.getNodalConnectivity().getNumberOfTuples());
8617 self.assertEqual(13,slice1.getNodalConnectivityIndex().getNumberOfTuples());
8618 self.assertEqual(expected8,ids.getValues());
8619 self.assertEqual(expected9,slice1.getNodalConnectivity().getValues());
8620 self.assertEqual(expected10,slice1.getNodalConnectivityIndex().getValues());
8621 for i in xrange(135):
8622 self.assertAlmostEqual(expected11[i],slice1.getCoords().getIJ(0,i),12);
8626 def testBuildSlice3DSurf1(self):
8627 mesh3D,mesh2D=MEDCouplingDataForTest.build3DExtrudedUMesh_1();
8628 mesh2D=mesh3D.buildDescendingConnectivity()[0];
8629 vec1=[-0.07,1.,0.07]
8630 origin1=[1.524,1.4552,1.74768]
8631 slice1,ids=mesh2D.buildSlice3DSurf(origin1,vec1,1e-10);
8632 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]
8633 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]
8634 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];
8635 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.]
8636 self.assertEqual(1,slice1.getMeshDimension());
8637 self.assertEqual(3,slice1.getSpaceDimension());
8638 self.assertEqual(57,slice1.getNumberOfNodes());
8639 self.assertEqual(25,slice1.getNumberOfCells());
8640 self.assertEqual(25,ids.getNumberOfTuples());
8641 self.assertEqual(75,slice1.getNodalConnectivity().getNumberOfTuples());
8642 self.assertEqual(26,slice1.getNodalConnectivityIndex().getNumberOfTuples());
8643 self.assertEqual(expected1,ids.getValues());
8644 self.assertEqual(expected2,slice1.getNodalConnectivity().getValues());
8645 self.assertEqual(expected3,slice1.getNodalConnectivityIndex().getValues());
8646 for i in xrange(171):
8647 self.assertAlmostEqual(expected4[i],slice1.getCoords().getIJ(0,i),12);
8652 slice1,ids=mesh2D.buildSlice3DSurf(origin2,vec2,1e-10);
8653 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]
8654 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]
8655 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];
8656 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.]
8657 self.assertEqual(1,slice1.getMeshDimension());
8658 self.assertEqual(3,slice1.getSpaceDimension());
8659 self.assertEqual(45,slice1.getNumberOfNodes());
8660 self.assertEqual(68,slice1.getNumberOfCells());
8661 self.assertEqual(68,ids.getNumberOfTuples());
8662 self.assertEqual(204,slice1.getNodalConnectivity().getNumberOfTuples());
8663 self.assertEqual(69,slice1.getNodalConnectivityIndex().getNumberOfTuples());
8664 self.assertEqual(expected5,ids.getValues());
8665 self.assertEqual(expected6,slice1.getNodalConnectivity().getValues());
8666 self.assertEqual(expected7,slice1.getNodalConnectivityIndex().getValues());
8667 for i in xrange(135):
8668 self.assertAlmostEqual(expected8[i],slice1.getCoords().getIJ(0,i),12);
8672 def testDataArrayDoubleAdvSetting1(self):
8673 data1=[1.,11.,2.,12.,3.,13.,4.,14.,5.,15.,6.,16.,7.,17.]
8674 data2=[8.,38.,9.,39.,0.,30.,11.,41.,12.,42.]
8675 compsCpp=["comp1","comp2"]
8676 da=DataArrayDouble.New();
8677 da.setInfoAndChangeNbOfCompo(compsCpp);
8680 compsCpp=compsCpp[:-1]
8681 self.assertRaises(InterpKernelException,da.setInfoAndChangeNbOfCompo,compsCpp);
8682 da.setValues(data1,7,2)
8684 p=[(0,3),(3,5),(5,7)]
8685 tmp=da.selectByTupleRanges(p);
8686 self.assertTrue(tmp.isEqual(da,1e-14));
8687 p=[(0,2),(3,4),(5,7)]
8688 tmp=da.selectByTupleRanges(p);
8689 expected1=[1.,11.,2.,12.,4.,14.,6.,16.,7.,17.]
8690 self.assertEqual(5,tmp.getNumberOfTuples());
8691 self.assertEqual(2,tmp.getNumberOfComponents());
8692 for i in xrange(10):
8693 self.assertAlmostEqual(expected1[i],tmp.getIJ(0,i),14);
8695 p=[(0,2),(0,2),(5,6)]
8696 tmp=da.selectByTupleRanges(p);
8697 expected2=[1.,11.,2.,12.,1.,11.,2.,12.,6.,16.]
8698 self.assertEqual(5,tmp.getNumberOfTuples());
8699 self.assertEqual(2,tmp.getNumberOfComponents());
8700 for i in xrange(10):
8701 self.assertAlmostEqual(expected2[i],tmp.getIJ(0,i),14);
8703 p=[(0,2),(-1,2),(5,6)]
8704 self.assertRaises(InterpKernelException,da.selectByTupleRanges,p);
8705 p=[(0,2),(0,2),(5,8)]
8706 self.assertRaises(InterpKernelException,da.selectByTupleRanges,p);
8708 da2=DataArrayDouble.New();
8709 da2.setValues(data2,5,2);
8712 dac.setContigPartOfSelectedValues2(1,da2,2,4,1);
8713 expected3=[1.,11.,0.,30.,11.,41.,4.,14.,5.,15.,6.,16.,7.,17.]
8714 for i in xrange(14):
8715 self.assertAlmostEqual(expected3[i],dac.getIJ(0,i),14);
8719 self.assertRaises(InterpKernelException,dac.setContigPartOfSelectedValues2,3,da2,0,5,1);
8720 self.assertRaises(InterpKernelException,dac.setContigPartOfSelectedValues2,0,da2,4,6,1);
8721 self.assertRaises(InterpKernelException,dac.setContigPartOfSelectedValues2,3,da2,5,0,1);
8722 dac.setContigPartOfSelectedValues2(3,da2,1,5,1);
8723 expected4=[1.,11.,2.,12.,3.,13.,9.,39.,0.,30.,11.,41.,12.,42.]
8724 for i in xrange(14):
8725 self.assertAlmostEqual(expected4[i],dac.getIJ(0,i),14);
8728 ids=DataArrayInt.New();
8731 ids.setIJ(0,0,2); ids.setIJ(1,0,0); ids.setIJ(2,0,4);
8732 dac.setContigPartOfSelectedValues(2,da2,ids);
8733 expected5=[1.,11.,2.,12.,0.,30.,8.,38.,12.,42.,6.,16.,7.,17.]
8734 for i in xrange(14):
8735 self.assertAlmostEqual(expected5[i],dac.getIJ(0,i),14);
8739 ids.setIJ(0,0,2); ids.setIJ(1,0,5); ids.setIJ(2,0,4);
8740 self.assertRaises(InterpKernelException,dac.setContigPartOfSelectedValues,1,da2,ids);
8741 ids.setIJ(0,0,2); ids.setIJ(1,0,2); ids.setIJ(2,0,-1);
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,5,da2,ids);
8746 ids.setIJ(0,0,2); ids.setIJ(1,0,2); ids.setIJ(2,0,1);
8748 dac.setContigPartOfSelectedValues(4,da2,ids);
8749 expected6=[1.,11.,2.,12.,3.,13.,4.,14.,0.,30.,0.,30.,9.,39.]
8750 for i in xrange(14):
8751 self.assertAlmostEqual(expected6[i],dac.getIJ(0,i),14);
8755 def testDataArrayIntAdvSetting1(self):
8756 data1=[1,11,2,12,3,13,4,14,5,15,6,16,7,17]
8757 data2=[8,38,9,39,0,30,11,41,12,42]
8758 compsCpp=["comp1","comp2"]
8759 da=DataArrayInt.New();
8760 da.setInfoAndChangeNbOfCompo(compsCpp);
8763 compsCpp=compsCpp[:-1]
8764 self.assertRaises(InterpKernelException,da.setInfoAndChangeNbOfCompo,compsCpp);
8765 da.setValues(data1,7,2)
8767 p=[(0,3),(3,5),(5,7)]
8768 tmp=da.selectByTupleRanges(p);
8769 self.assertTrue(tmp.isEqual(da));
8770 p=[(0,2),(3,4),(5,7)]
8771 tmp=da.selectByTupleRanges(p);
8772 expected1=[1,11,2,12,4,14,6,16,7,17]
8773 self.assertEqual(5,tmp.getNumberOfTuples());
8774 self.assertEqual(2,tmp.getNumberOfComponents());
8775 for i in xrange(10):
8776 self.assertEqual(expected1[i],tmp.getIJ(0,i));
8778 p=[(0,2),(0,2),(5,6)]
8779 tmp=da.selectByTupleRanges(p);
8780 expected2=[1,11,2,12,1,11,2,12,6,16]
8781 self.assertEqual(5,tmp.getNumberOfTuples());
8782 self.assertEqual(2,tmp.getNumberOfComponents());
8783 for i in xrange(10):
8784 self.assertEqual(expected2[i],tmp.getIJ(0,i));
8786 p=[(0,2),(-1,2),(5,6)]
8787 self.assertRaises(InterpKernelException,da.selectByTupleRanges,p);
8788 p=[(0,2),(0,2),(5,8)]
8789 self.assertRaises(InterpKernelException,da.selectByTupleRanges,p);
8791 da2=DataArrayInt.New();
8792 da2.setValues(data2,5,2);
8795 dac.setContigPartOfSelectedValues2(1,da2,2,4,1);
8796 expected3=[1,11,0,30,11,41,4,14,5,15,6,16,7,17]
8797 for i in xrange(14):
8798 self.assertEqual(expected3[i],dac.getIJ(0,i));
8802 self.assertRaises(InterpKernelException,dac.setContigPartOfSelectedValues2,3,da2,0,5,1);
8803 self.assertRaises(InterpKernelException,dac.setContigPartOfSelectedValues2,0,da2,4,6,1);
8804 self.assertRaises(InterpKernelException,dac.setContigPartOfSelectedValues2,3,da2,5,0,1);
8805 dac.setContigPartOfSelectedValues2(3,da2,1,5,1);
8806 expected4=[1,11,2,12,3,13,9,39,0,30,11,41,12,42]
8807 for i in xrange(14):
8808 self.assertEqual(expected4[i],dac.getIJ(0,i));
8811 ids=DataArrayInt.New();
8814 ids.setIJ(0,0,2); ids.setIJ(1,0,0); ids.setIJ(2,0,4);
8815 dac.setContigPartOfSelectedValues(2,da2,ids);
8816 expected5=[1,11,2,12,0,30,8,38,12,42,6,16,7,17]
8817 for i in xrange(14):
8818 self.assertEqual(expected5[i],dac.getIJ(0,i));
8822 ids.setIJ(0,0,2); ids.setIJ(1,0,5); ids.setIJ(2,0,4);
8823 self.assertRaises(InterpKernelException,dac.setContigPartOfSelectedValues,1,da2,ids);
8824 ids.setIJ(0,0,2); ids.setIJ(1,0,2); ids.setIJ(2,0,-1);
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,5,da2,ids);
8829 ids.setIJ(0,0,2); ids.setIJ(1,0,2); ids.setIJ(2,0,1);
8831 dac.setContigPartOfSelectedValues(4,da2,ids);
8832 expected6=[1,11,2,12,3,13,4,14,0,30,0,30,9,39]
8833 for i in xrange(14):
8834 self.assertEqual(expected6[i],dac.getIJ(0,i));
8838 def testBuildDescendingConnec2Of3DMesh1(self):
8839 mesh=MEDCouplingDataForTest.build3DSourceMesh_1();
8841 mesh2,desc,descIndx,revDesc,revDescIndx=mesh.buildDescendingConnectivity2();
8842 mesh2.checkCoherency();
8843 self.assertEqual(2,mesh2.getMeshDimension());
8844 self.assertEqual(30,mesh2.getNumberOfCells());
8845 self.assertEqual(31,revDescIndx.getNbOfElems()); self.assertEqual(31,revDescIndx.getNumberOfTuples());
8846 self.assertEqual(13,descIndx.getNbOfElems()); self.assertEqual(13,descIndx.getNumberOfTuples());
8847 self.assertEqual(48,desc.getNbOfElems()); self.assertEqual(48,desc.getNumberOfTuples());
8848 self.assertEqual(48,revDesc.getNbOfElems()); self.assertEqual(48,revDesc.getNumberOfTuples());
8849 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]
8850 self.assertEqual(expected1,desc.getValues());
8851 expected2=[0,4,8,12,16,20,24,28,32,36,40,44,48]
8852 self.assertEqual(expected2,descIndx.getValues());
8853 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]
8854 self.assertEqual(expected3,revDescIndx.getValues());
8855 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]
8856 self.assertEqual(expected4,revDesc.getValues());
8857 conn=mesh2.getNodalConnectivity();
8858 connIndex=mesh2.getNodalConnectivityIndex();
8859 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]
8860 self.assertEqual(expected5,connIndex.getValues());
8861 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]
8862 self.assertEqual(expected6,conn.getValues());
8865 def testAre2DCellsNotCorrectlyOriented1(self):
8866 m1Coords=[1.,1.,-1.,-1.,-1.,-1.,1.,-1.]
8868 m1=MEDCouplingUMesh.New();
8869 m1.setMeshDimension(2);
8870 m1.allocateCells(1);
8871 m1.insertNextCell(NORM_QUAD4,4,m1Conn[0:4])
8872 m1.finishInsertingCells();
8873 myCoords1=DataArrayDouble.New();
8874 myCoords1.setValues(m1Coords,4,2);
8875 m1.setCoords(myCoords1);
8878 for i in xrange(18):
8879 vec2=[3.*cos(pi/9.*i),3.*sin(pi/9.*i)];
8881 m1Cpy.translate(vec2);
8882 self.assertRaises(InterpKernelException,m1Cpy.are2DCellsNotCorrectlyOriented,vec1,False);
8883 m1Cpy.changeSpaceDimension(3);
8884 res=m1Cpy.are2DCellsNotCorrectlyOriented(vec1,False)
8885 self.assertEqual([0],res.getValues());
8889 def testDataArrayAbs1(self):
8890 d1=DataArrayDouble.New();
8891 val1=[2.,-3.,-5.,6.,-7.,-8.,9.,10.,-11.,-12.,-13.,-15.]
8892 expected1=[2.,3.,5.,6.,7.,8.,9.,10.,11.,12.,13.,15.]
8893 d1.setValues(val1,6,2);
8894 d2=d1.convertToIntArr();
8897 for i in xrange(12):
8898 self.assertAlmostEqual(expected1[i],d1.getIJ(0,i),14);
8901 expected2=[2,3,5,6,7,8,9,10,11,12,13,15]
8903 for i in xrange(12):
8904 self.assertEqual(expected2[i],d2.getIJ(0,i));
8910 def testGetValueOn3(self):
8912 v2=[0.7,1.25,0.,2.,1.5]
8913 disp=[5.,50.,500.,6.,60.,600.,7.,70.,700.,8.,80.,800.]
8914 m=MEDCouplingUMesh.New("myMesh",1)
8917 m.allocateCells(nbCells)
8918 coords=DataArrayDouble.New() ; coords.setValues(v,nbNodes,1)
8920 m.insertNextCell(NORM_SEG2,2,[0,1])
8921 m.insertNextCell(NORM_SEG2,2,[2,1])
8922 m.insertNextCell(NORM_SEG2,2,[2,3])
8923 m.finishInsertingCells()
8924 f=MEDCouplingFieldDouble.New(ON_NODES)
8926 array=DataArrayDouble.New(); array.setValues(disp,m.getNumberOfNodes(),3)
8928 arr1=f.getValueOnMulti(v2)
8929 self.assertEqual(5,arr1.getNumberOfTuples());
8930 self.assertEqual(3,arr1.getNumberOfComponents());
8931 expected1=[5.7,57.,570.,6.5,65.,650.,5.,50.,500.,8.,80.,800.,7.,70.,700.]
8932 for i in xrange(15):
8933 self.assertAlmostEqual(expected1[i],arr1.getIJ(0,i),14);
8937 def testGetNodeIdsOfCell2(self):
8938 m1c=MEDCouplingCMesh.New();
8939 coordsX=DataArrayDouble.New();
8940 arrX=[ -1., 1., 2., 4., 4.5 ]
8941 coordsX.setValues(arrX,5,1);
8942 coordsY=DataArrayDouble.New();
8943 arrY=[ -2., 2., 4., 8.]
8944 coordsY.setValues(arrY,4,1);
8945 coordsZ=DataArrayDouble.New();
8947 coordsZ.setValues(arrZ,3,1);
8949 m1c.setCoordsAt(0,coordsX);
8950 expected1=[[0,1],[1,2],[2,3],[3,4]]
8951 self.assertEqual(4,m1c.getNumberOfCells())
8952 for i in xrange(m1c.getNumberOfCells()):
8953 self.assertEqual(expected1[i],m1c.getNodeIdsOfCell(i))
8956 m1c.setCoordsAt(1,coordsY);
8957 self.assertEqual(12,m1c.getNumberOfCells())
8958 self.assertEqual(20,m1c.getNumberOfNodes())
8959 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]]
8960 for i in xrange(m1c.getNumberOfCells()):
8961 self.assertEqual(expected2[i],m1c.getNodeIdsOfCell(i))
8964 m1c.setCoordsAt(2,coordsZ);
8965 self.assertEqual(24,m1c.getNumberOfCells())
8966 self.assertEqual(60,m1c.getNumberOfNodes())
8967 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]]
8968 self.assertEqual(24,m1c.getNumberOfCells())
8969 for i in xrange(m1c.getNumberOfCells()):
8970 self.assertEqual(expected3[i],m1c.getNodeIdsOfCell(i))
8974 def testSwigDADOp4(self):
8975 da=DataArrayDouble.New(range(6,30),12,2)
8976 self.assertEqual(12,da.getNumberOfTuples());
8977 self.assertEqual(2,da.getNumberOfComponents());
8978 for i in xrange(24):
8979 self.assertAlmostEqual(da.getIJ(0,i),float(i+6),13)
8981 # operator transpose
8983 self.assertEqual(2,da.getNumberOfTuples());
8984 self.assertEqual(12,da.getNumberOfComponents());
8985 for i in xrange(24):
8986 self.assertAlmostEqual(da.getIJ(0,i),float(i+6),13)
8990 da2=DataArrayDouble.New(12,1)
8993 for i in xrange(24):
8994 self.assertAlmostEqual(dabis.getIJ(0,i),-float(i+6),13)
8998 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.]
8999 for i in xrange(24):
9000 self.assertAlmostEqual(da.getIJ(0,i),expected1[i],13)
9004 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.]
9005 self.assertEqual(12,da.getNumberOfTuples());
9006 self.assertEqual(2,da.getNumberOfComponents());
9007 for i in xrange(24):
9008 self.assertAlmostEqual(da.getIJ(0,i),expected2[i],13)
9010 for pos,elt in enumerate(dabis):
9013 self.assertEqual(12,da.getNumberOfTuples());
9014 self.assertEqual(2,da.getNumberOfComponents());
9017 self.assertAlmostEqual(li[0],100.,13) ; self.assertAlmostEqual(li[1],101.,13)
9020 da=DataArrayDouble.New(range(6,30),12,2)
9021 da2=DataArrayDouble.New(range(12),12,1)
9024 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.]
9025 for i in xrange(24):
9026 self.assertAlmostEqual(da.getIJ(0,i),expected1[i],13)
9030 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.]
9031 self.assertEqual(12,da.getNumberOfTuples());
9032 self.assertEqual(2,da.getNumberOfComponents());
9033 for i in xrange(24):
9034 self.assertAlmostEqual(da.getIJ(0,i),expected2[i],13)
9036 for pos,elt in enumerate(dabis):
9039 self.assertEqual(12,da.getNumberOfTuples());
9040 self.assertEqual(2,da.getNumberOfComponents());
9041 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.]
9042 for i in xrange(24):
9043 self.assertAlmostEqual(da.getIJ(0,i),expected3[i],13)
9046 da=DataArrayDouble.New(range(6,30),12,2)
9047 da2=DataArrayDouble.New(range(12),12,1)
9050 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.]
9051 for i in xrange(24):
9052 self.assertAlmostEqual(da.getIJ(0,i),expected1[i],13)
9056 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.]
9057 self.assertEqual(12,da.getNumberOfTuples());
9058 self.assertEqual(2,da.getNumberOfComponents());
9059 for i in xrange(24):
9060 self.assertAlmostEqual(da.getIJ(0,i),expected2[i],13)
9062 for pos,elt in enumerate(dabis):
9065 self.assertEqual(12,da.getNumberOfTuples());
9066 self.assertEqual(2,da.getNumberOfComponents());
9067 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]
9068 for i in xrange(24):
9069 self.assertAlmostEqual(da.getIJ(0,i),expected3[i],13)
9072 da=DataArrayDouble.New(range(6,30),12,2)
9073 da2=DataArrayDouble.New(range(1,13),12,1)
9076 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]
9077 for i in xrange(24):
9078 self.assertAlmostEqual(da.getIJ(0,i),expected1[i],13)
9082 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]
9083 self.assertEqual(12,da.getNumberOfTuples());
9084 self.assertEqual(2,da.getNumberOfComponents());
9085 for i in xrange(24):
9086 self.assertAlmostEqual(da.getIJ(0,i),expected2[i],13)
9088 for pos,elt in enumerate(dabis):
9091 self.assertEqual(12,da.getNumberOfTuples());
9092 self.assertEqual(2,da.getNumberOfComponents());
9093 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]
9094 for i in xrange(24):
9095 self.assertAlmostEqual(da.getIJ(0,i),expected3[i],13)
9099 def testSwigDAIOp4(self):
9100 da=DataArrayInt.New(range(6,30),12,2)
9101 self.assertEqual(12,da.getNumberOfTuples());
9102 self.assertEqual(2,da.getNumberOfComponents());
9103 for i in xrange(24):
9104 self.assertEqual(da.getIJ(0,i),i+6)
9106 # operator transpose
9108 self.assertEqual(2,da.getNumberOfTuples());
9109 self.assertEqual(12,da.getNumberOfComponents());
9110 for i in xrange(24):
9111 self.assertEqual(da.getIJ(0,i),i+6)
9115 da2=DataArrayInt.New(12,1)
9118 for i in xrange(24):
9119 self.assertEqual(dabis.getIJ(0,i),-(i+6))
9123 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]
9124 for i in xrange(24):
9125 self.assertEqual(da.getIJ(0,i),expected1[i])
9129 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]
9130 self.assertEqual(12,da.getNumberOfTuples());
9131 self.assertEqual(2,da.getNumberOfComponents());
9132 for i in xrange(24):
9133 self.assertEqual(da.getIJ(0,i),expected2[i])
9135 for pos,elt in enumerate(dabis):
9138 self.assertEqual(12,da.getNumberOfTuples());
9139 self.assertEqual(2,da.getNumberOfComponents());
9142 self.assertEqual(li[0],100) ; self.assertEqual(li[1],101)
9145 da=DataArrayInt.New(range(6,30),12,2)
9146 da2=DataArrayInt.New(range(12),12,1)
9149 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]
9150 for i in xrange(24):
9151 self.assertEqual(da.getIJ(0,i),expected1[i])
9155 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]
9156 self.assertEqual(12,da.getNumberOfTuples());
9157 self.assertEqual(2,da.getNumberOfComponents());
9158 for i in xrange(24):
9159 self.assertEqual(da.getIJ(0,i),expected2[i])
9161 for pos,elt in enumerate(dabis):
9164 self.assertEqual(12,da.getNumberOfTuples());
9165 self.assertEqual(2,da.getNumberOfComponents());
9166 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]
9167 for i in xrange(24):
9168 self.assertEqual(da.getIJ(0,i),expected3[i])
9171 da=DataArrayInt.New(range(6,30),12,2)
9172 da2=DataArrayInt.New(range(12),12,1)
9175 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]
9176 for i in xrange(24):
9177 self.assertEqual(da.getIJ(0,i),expected1[i])
9181 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]
9182 self.assertEqual(12,da.getNumberOfTuples());
9183 self.assertEqual(2,da.getNumberOfComponents());
9184 for i in xrange(24):
9185 self.assertEqual(da.getIJ(0,i),expected2[i])
9187 for pos,elt in enumerate(dabis):
9190 self.assertEqual(12,da.getNumberOfTuples());
9191 self.assertEqual(2,da.getNumberOfComponents());
9192 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]
9193 for i in xrange(24):
9194 self.assertEqual(da.getIJ(0,i),expected3[i])
9197 da=DataArrayInt.New(range(6,30),12,2)
9198 da2=DataArrayInt.New(range(1,13),12,1)
9201 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]
9202 for i in xrange(24):
9203 self.assertEqual(da.getIJ(0,i),expected1[i])
9206 da/=DataArrayInt.New([2,3],1,2)
9207 self.assertEqual(12,da.getNumberOfTuples());
9208 self.assertEqual(2,da.getNumberOfComponents());
9209 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]
9210 for i in xrange(24):
9211 self.assertEqual(da.getIJ(0,i),expected2[i])
9215 def testSwigDADOp5(self):
9216 da=DataArrayDouble.New([5,6,7,8,9,6,7,-2,3,9,8,10])
9218 da2=DataArrayDouble.New([5.,8.,10.,12])
9219 self.assertEqual(4,da2.getNumberOfTuples());
9220 self.assertEqual(1,da2.getNumberOfComponents());
9222 self.assertEqual(4,da3.getNumberOfTuples());
9223 self.assertEqual(3,da3.getNumberOfComponents());
9224 expected1=[10.,11.,12.,16.,17.,14.,17.,8.,13.,21.,20.,22.]
9225 for i in xrange(12):
9226 self.assertAlmostEqual(da3.getIJ(0,i),expected1[i],13)
9229 self.assertEqual(4,da3.getNumberOfTuples());
9230 self.assertEqual(3,da3.getNumberOfComponents());
9231 for i in xrange(12):
9232 self.assertAlmostEqual(da3.getIJ(0,i),expected1[i],13)
9234 # Test new API of classmethod DataArrayDouble.New
9235 vals=[5,6,7,8,9,6,7,-2,3,9,8,10]
9236 da=DataArrayDouble.New(vals)
9237 self.assertEqual(12,da.getNumberOfTuples());
9238 self.assertEqual(1,da.getNumberOfComponents());
9239 for i in xrange(12):
9240 self.assertAlmostEqual(da.getIJ(0,i),vals[i],13)
9242 da=DataArrayDouble.New(vals,12)
9243 self.assertEqual(12,da.getNumberOfTuples());
9244 self.assertEqual(1,da.getNumberOfComponents());
9245 for i in xrange(12):
9246 self.assertAlmostEqual(da.getIJ(0,i),vals[i],13)
9248 da=DataArrayDouble.New(vals,1,12)
9249 self.assertEqual(1,da.getNumberOfTuples());
9250 self.assertEqual(12,da.getNumberOfComponents());
9251 for i in xrange(12):
9252 self.assertAlmostEqual(da.getIJ(0,i),vals[i],13)
9254 da=DataArrayDouble.New(vals,6,2)
9255 self.assertEqual(6,da.getNumberOfTuples());
9256 self.assertEqual(2,da.getNumberOfComponents());
9257 for i in xrange(12):
9258 self.assertAlmostEqual(da.getIJ(0,i),vals[i],13)
9260 da=DataArrayDouble.New(vals,4,3)
9261 self.assertEqual(4,da.getNumberOfTuples());
9262 self.assertEqual(3,da.getNumberOfComponents());
9263 for i in xrange(12):
9264 self.assertAlmostEqual(da.getIJ(0,i),vals[i],13)
9266 self.assertRaises(InterpKernelException,DataArrayDouble.New,vals,11);
9267 self.assertRaises(InterpKernelException,DataArrayDouble.New,vals,13);
9268 self.assertRaises(InterpKernelException,DataArrayDouble.New,vals,5,2);
9269 self.assertRaises(InterpKernelException,DataArrayDouble.New,vals,7,2);
9272 def testSwigDADOp6(self):
9273 da=DataArrayInt.New([5,6,7,8,9,6,7,-2,3,9,8,10])
9275 da2=DataArrayInt.New([5,8,10,12])
9276 self.assertEqual(4,da2.getNumberOfTuples());
9277 self.assertEqual(1,da2.getNumberOfComponents());
9279 self.assertEqual(4,da3.getNumberOfTuples());
9280 self.assertEqual(3,da3.getNumberOfComponents());
9281 expected1=[10,11,12,16,17,14,17,8,13,21,20,22]
9282 for i in xrange(12):
9283 self.assertEqual(da3.getIJ(0,i),expected1[i])
9286 self.assertEqual(4,da3.getNumberOfTuples());
9287 self.assertEqual(3,da3.getNumberOfComponents());
9288 for i in xrange(12):
9289 self.assertEqual(da3.getIJ(0,i),expected1[i])
9291 da3=da+DataArrayInt.New(da2.getValues())
9292 # Test new API of classmethod DataArrayInt.New
9293 vals=[5,6,7,8,9,6,7,-2,3,9,8,10]
9294 da=DataArrayDouble.New(vals)
9295 self.assertEqual(12,da.getNumberOfTuples());
9296 self.assertEqual(1,da.getNumberOfComponents());
9297 for i in xrange(12):
9298 self.assertEqual(da.getIJ(0,i),vals[i])
9300 da=DataArrayDouble.New(vals,12)
9301 self.assertEqual(12,da.getNumberOfTuples());
9302 self.assertEqual(1,da.getNumberOfComponents());
9303 for i in xrange(12):
9304 self.assertEqual(da.getIJ(0,i),vals[i])
9306 da=DataArrayDouble.New(vals,1,12)
9307 self.assertEqual(1,da.getNumberOfTuples());
9308 self.assertEqual(12,da.getNumberOfComponents());
9309 for i in xrange(12):
9310 self.assertEqual(da.getIJ(0,i),vals[i])
9312 da=DataArrayDouble.New(vals,6,2)
9313 self.assertEqual(6,da.getNumberOfTuples());
9314 self.assertEqual(2,da.getNumberOfComponents());
9315 for i in xrange(12):
9316 self.assertEqual(da.getIJ(0,i),vals[i])
9318 da=DataArrayDouble.New(vals,4,3)
9319 self.assertEqual(4,da.getNumberOfTuples());
9320 self.assertEqual(3,da.getNumberOfComponents());
9321 for i in xrange(12):
9322 self.assertEqual(da.getIJ(0,i),vals[i])
9324 self.assertRaises(InterpKernelException,DataArrayDouble.New,vals,11);
9325 self.assertRaises(InterpKernelException,DataArrayDouble.New,vals,13);
9326 self.assertRaises(InterpKernelException,DataArrayDouble.New,vals,5,2);
9327 self.assertRaises(InterpKernelException,DataArrayDouble.New,vals,7,2);
9330 def testSwigDADOp9(self):
9331 l1=[(1.,2.,3),(4.,5.,6.),(7.,8.,9.),[10.,11.,12.]]
9332 da1=DataArrayDouble(l1,4,3)
9333 self.assertEqual(4,da1.getNumberOfTuples());
9334 self.assertEqual(3,da1.getNumberOfComponents());
9335 da2=DataArrayDouble(12) ; da2.iota(1.) ; da2.rearrange(3)
9336 self.assertTrue(da2.isEqual(da1,1e-12))
9337 self.assertRaises(InterpKernelException,DataArrayDouble.New,l1,3,4);
9338 da3=DataArrayDouble(l1,4)
9339 self.assertTrue(da3.isEqual(da1,1e-12))
9340 self.assertRaises(InterpKernelException,DataArrayDouble.New,l1,3);
9341 self.assertRaises(InterpKernelException,DataArrayDouble.New,l1,5);
9342 l1=[(1.,2.,3),(4.,(5.),((6.))),(7.,8.,9.),[10.,11.,12.]]
9343 da1=DataArrayDouble(l1,4,3)
9344 self.assertEqual(4,da1.getNumberOfTuples());
9345 self.assertEqual(3,da1.getNumberOfComponents());
9346 da2=DataArrayDouble(12) ; da2.iota(1.) ; da2.rearrange(3)
9347 self.assertTrue(da2.isEqual(da1,1e-12))
9348 self.assertRaises(InterpKernelException,DataArrayDouble.New,l1,3,4);
9349 da3=DataArrayDouble(l1,4)
9350 self.assertTrue(da3.isEqual(da1,1e-12))
9351 self.assertRaises(InterpKernelException,DataArrayDouble.New,l1,3);
9352 self.assertRaises(InterpKernelException,DataArrayDouble.New,l1,5);
9354 l1=[(1,2,3),(4,5,6),(7,8,9),[10,11,12]]
9355 da1=DataArrayInt(l1,4,3)
9356 self.assertEqual(4,da1.getNumberOfTuples());
9357 self.assertEqual(3,da1.getNumberOfComponents());
9358 da2=DataArrayInt(12) ; da2.iota(1) ; da2.rearrange(3)
9359 self.assertTrue(da2.isEqual(da1))
9360 self.assertRaises(InterpKernelException,DataArrayInt.New,l1,3,4);
9361 da3=DataArrayInt(l1,4)
9362 self.assertTrue(da3.isEqual(da1))
9363 self.assertRaises(InterpKernelException,DataArrayInt.New,l1,3);
9364 self.assertRaises(InterpKernelException,DataArrayInt.New,l1,5);
9365 l1=[(1,[2],3),(4,[(5)],6),((([7])),8,9),[10,11,12]]
9366 da1=DataArrayInt(l1,4,3)
9367 self.assertEqual(4,da1.getNumberOfTuples());
9368 self.assertEqual(3,da1.getNumberOfComponents());
9369 da2=DataArrayInt(12) ; da2.iota(1) ; da2.rearrange(3)
9370 self.assertTrue(da2.isEqual(da1))
9371 self.assertRaises(InterpKernelException,DataArrayInt.New,l1,3,4);
9372 da3=DataArrayInt(l1,4)
9373 self.assertTrue(da3.isEqual(da1))
9374 self.assertRaises(InterpKernelException,DataArrayInt.New,l1,3);
9375 self.assertRaises(InterpKernelException,DataArrayInt.New,l1,5);
9378 def testRenumberNodesInConn1(self):
9379 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. ]
9380 mesh2DConn=[1,4,2, 4,5,2, 0,3,4,1, 6,7,4,3, 7,8,5,4]
9381 mesh2D=MEDCouplingUMesh.New("mesh",2);
9382 mesh2D.allocateCells(5);
9383 mesh2D.insertNextCell(NORM_TRI3,3,mesh2DConn[0:3])
9384 mesh2D.insertNextCell(NORM_TRI3,3,mesh2DConn[3:6])
9385 mesh2D.insertNextCell(NORM_QUAD4,4,mesh2DConn[6:10])
9386 mesh2D.insertNextCell(NORM_QUAD4,4,mesh2DConn[10:14])
9387 mesh2D.insertNextCell(NORM_QUAD4,4,mesh2DConn[14:18])
9388 mesh2D.finishInsertingCells();
9389 myCoords=DataArrayDouble.New(mesh2DCoords,9,3);
9390 mesh2D.setCoords(myCoords);
9391 mesh2D.checkCoherency();
9393 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. ]
9394 mesh3DConn=[0,1,2,3,4,5,6,7]
9395 mesh3D=MEDCouplingUMesh.New("mesh",3);
9396 mesh3D.allocateCells(1);
9397 mesh3D.insertNextCell(NORM_HEXA8,8,mesh3DConn[:])
9398 mesh3D.finishInsertingCells();
9399 myCoords3D=DataArrayDouble.New(mesh3DCoords,8,3);
9400 mesh3D.setCoords(myCoords3D);
9401 mesh3D.checkCoherency();
9403 mesh3D_2=mesh3D.deepCpy();
9404 mesh2D_2=mesh2D.deepCpy();
9405 mesh3D_4=mesh3D.deepCpy();
9406 mesh2D_4=mesh2D.deepCpy();
9407 oldNbOf3DNodes=mesh3D.getNumberOfNodes();
9408 renumNodes=DataArrayInt.New();
9409 renumNodes.alloc(mesh2D.getNumberOfNodes(),1);
9410 renumNodes.iota(oldNbOf3DNodes);
9411 coo=DataArrayDouble.Aggregate(mesh3D.getCoords(),mesh2D.getCoords());
9412 mesh3D.setCoords(coo);
9413 mesh2D.setCoords(coo);
9414 mesh2DCpy=mesh2D.deepCpy()
9415 mesh2D_3=mesh2D.deepCpy();
9416 mesh2D_3.shiftNodeNumbersInConn(oldNbOf3DNodes);
9417 mesh2D.renumberNodesInConn(renumNodes);
9418 mesh2DCpy.renumberNodesInConn(renumNodes.getValues());
9419 self.assertTrue(mesh2D.isEqual(mesh2DCpy,1e-12))
9420 self.assertTrue(mesh2D.isEqual(mesh2D_3,1e-12))
9422 da1,da2=mesh3D.checkGeoEquivalWith(mesh3D_2,10,1e-12);
9423 self.assertTrue(da1==None);
9424 self.assertEqual(8,da2.getNumberOfTuples());
9425 self.assertEqual(1,da2.getNumberOfComponents());
9426 expected1=[8,11,12,9,4,5,6,7]
9428 self.assertEqual(expected1[i],da2.getIJ(i,0));
9431 da1,da2=mesh2D.checkGeoEquivalWith(mesh2D_2,10,1e-12);
9432 self.assertTrue(da1==None);
9433 self.assertEqual(9,da2.getNumberOfTuples());
9434 self.assertEqual(1,da2.getNumberOfComponents());
9436 self.assertEqual(8+i,da2.getIJ(i,0));
9439 mesh2D_5=mesh2D_4.deepCpy();
9440 mesh2D_5.translate([1.,0.,0.]);
9441 meshes=[mesh3D_4,mesh2D_4,mesh2D_5];
9442 MEDCouplingUMesh.PutUMeshesOnSameAggregatedCoords(meshes);
9443 self.assertTrue(mesh3D_4.getCoords().getHiddenCppPointer()==mesh2D_4.getCoords().getHiddenCppPointer());
9444 self.assertTrue(mesh2D_4.getCoords().getHiddenCppPointer()==mesh2D_5.getCoords().getHiddenCppPointer());
9445 mesh3D_4.checkCoherency(); mesh2D_4.checkCoherency(); mesh2D_5.checkCoherency();
9446 self.assertEqual(26,mesh3D_4.getNumberOfNodes());
9447 self.assertEqual(3,mesh3D_4.getSpaceDimension());
9448 self.assertEqual(9,mesh3D_4.getNodalConnectivity().getNumberOfTuples());
9449 self.assertEqual(23,mesh2D_4.getNodalConnectivity().getNumberOfTuples());
9450 self.assertEqual(23,mesh2D_5.getNodalConnectivity().getNumberOfTuples());
9451 expected2=[18,0,1,2,3,4,5,6,7]
9452 expected3=[3,9,12,10, 3,12,13,10, 4,8,11,12,9, 4,14,15,12,11, 4,15,16,13,12]
9453 expected4=[3,18,21,19, 3,21,22,19, 4,17,20,21,18, 4,23,24,21,20, 4,24,25,22,21]
9454 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]
9455 self.assertEqual(expected2,mesh3D_4.getNodalConnectivity().getValues());
9456 self.assertEqual(expected3,mesh2D_4.getNodalConnectivity().getValues());
9457 self.assertEqual(expected4,mesh2D_5.getNodalConnectivity().getValues());
9458 for i in xrange(78):
9459 self.assertAlmostEqual(expected5[i],mesh3D_4.getCoords().getIJ(0,i),12);
9462 MEDCouplingUMesh.MergeNodesOnUMeshesSharingSameCoords(meshes,1e-12);
9463 mesh3D_4.checkCoherency(); mesh2D_4.checkCoherency(); mesh2D_5.checkCoherency();
9464 self.assertTrue(mesh3D_4.getCoords().getHiddenCppPointer()==mesh2D_4.getCoords().getHiddenCppPointer());
9465 self.assertTrue(mesh2D_4.getCoords().getHiddenCppPointer()==mesh2D_5.getCoords().getHiddenCppPointer());
9466 self.assertEqual(19,mesh3D_4.getNumberOfNodes());
9467 self.assertEqual(3,mesh3D_4.getSpaceDimension());
9468 self.assertEqual(9,mesh3D_4.getNodalConnectivity().getNumberOfTuples());
9469 self.assertEqual(23,mesh2D_4.getNodalConnectivity().getNumberOfTuples());
9470 self.assertEqual(23,mesh2D_5.getNodalConnectivity().getNumberOfTuples());
9471 expected6=[18,0,1,2,3,4,5,6,7]
9472 expected7=[3,3,2,8, 3,2,9,8, 4,0,1,2,3, 4,10,11,2,1, 4,11,12,9,2]
9473 expected8=[3,13,15,14, 3,15,16,14, 4,8,9,15,13, 4,12,17,15,9, 4,17,18,16,15]
9474 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.,
9475 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.,
9476 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.]
9477 self.assertEqual(expected6,mesh3D_4.getNodalConnectivity().getValues());
9478 self.assertEqual(expected7,mesh2D_4.getNodalConnectivity().getValues());
9479 self.assertEqual(expected8,mesh2D_5.getNodalConnectivity().getValues());
9480 for i in xrange(57):
9481 self.assertAlmostEqual(expected9[i],mesh3D_4.getCoords().getIJ(0,i),12);
9486 def testComputeNeighborsOfCells1(self):
9487 m=MEDCouplingDataForTest.build2DTargetMesh_1();
9488 d1,d2=m.computeNeighborsOfCells();
9489 self.assertEqual(6,d2.getNumberOfTuples());
9490 self.assertEqual(10,d1.getNumberOfTuples());
9491 expected1=[0,2,4,6,8,10]
9492 expected2=[3,1,0,2,4,1,4,0,2,3]
9493 self.assertEqual(expected1,d2.getValues());
9494 self.assertEqual(expected2,d1.getValues());
9497 def testCheckButterflyCellsBug1(self):
9498 mesh2DCoords=[323.85,120.983748908684,317.5,131.982271536747,336.55,120.983748908686,330.2,131.982271536751,323.85,142.98079416481]
9499 mesh2DConn=[4,1,0,2,3]
9500 mesh2D=MEDCouplingUMesh.New("mesh",2);
9501 mesh2D.allocateCells(1);
9502 mesh2D.insertNextCell(NORM_POLYGON,5,mesh2DConn[0:5])
9503 mesh2D.finishInsertingCells();
9504 myCoords=DataArrayDouble.New(mesh2DCoords,5,2);
9505 mesh2D.setCoords(myCoords);
9506 mesh2D.checkCoherency();
9508 v=mesh2D.checkButterflyCells();
9509 self.assertTrue(v.empty());
9512 def testDataArrayIntRange1(self):
9513 d=DataArrayInt.Range(2,17,7);
9515 self.assertEqual(3,d.getNumberOfTuples());
9516 self.assertEqual(1,d.getNumberOfComponents());
9517 self.assertEqual(expected1,d.getValues());
9519 d=DataArrayInt.Range(2,23,7);
9520 self.assertEqual(3,d.getNumberOfTuples());
9521 self.assertEqual(1,d.getNumberOfComponents());
9522 self.assertEqual(expected1,d.getValues());
9524 d=DataArrayInt.Range(2,24,7);
9525 expected2=[2,9,16,23]
9526 self.assertEqual(4,d.getNumberOfTuples());
9527 self.assertEqual(1,d.getNumberOfComponents());
9528 self.assertEqual(expected2,d.getValues());
9530 d=DataArrayInt.Range(24,2,-7);
9531 expected3=[24,17,10,3]
9532 self.assertEqual(4,d.getNumberOfTuples());
9533 self.assertEqual(1,d.getNumberOfComponents());
9534 self.assertEqual(expected3,d.getValues());
9536 d=DataArrayInt.Range(23,2,-7);
9538 self.assertEqual(3,d.getNumberOfTuples());
9539 self.assertEqual(1,d.getNumberOfComponents());
9540 self.assertEqual(expected4,d.getValues());
9542 d=DataArrayInt.Range(23,22,-7);
9543 self.assertEqual(1,d.getNumberOfTuples());
9544 self.assertEqual(1,d.getNumberOfComponents());
9545 self.assertEqual(23,d.getIJ(0,0));
9547 d=DataArrayInt.Range(22,23,7);
9548 self.assertEqual(1,d.getNumberOfTuples());
9549 self.assertEqual(1,d.getNumberOfComponents());
9550 self.assertEqual(22,d.getIJ(0,0));
9552 d=DataArrayInt.Range(22,22,7);
9553 self.assertEqual(0,d.getNumberOfTuples());
9554 self.assertEqual(1,d.getNumberOfComponents());
9556 d=DataArrayInt.Range(22,22,-7);
9557 self.assertEqual(0,d.getNumberOfTuples());
9558 self.assertEqual(1,d.getNumberOfComponents());
9560 self.assertRaises(InterpKernelException,DataArrayInt.Range,22,23,-7);
9561 self.assertRaises(InterpKernelException,DataArrayInt.Range,23,22,7);
9562 self.assertRaises(InterpKernelException,DataArrayInt.Range,23,22,0);
9563 self.assertRaises(InterpKernelException,DataArrayInt.Range,22,23,0);
9566 def testSwigUMeshGetItem1(self):
9567 m=MEDCouplingDataForTest.build2DTargetMesh_1();
9568 subMesh=m.buildPartOfMySelf([1,3],True);
9569 self.assertTrue(isinstance(subMesh,MEDCouplingUMesh))
9571 self.assertTrue(isinstance(m1,MEDCouplingUMesh))
9573 self.assertTrue(isinstance(m2,MEDCouplingUMesh))
9575 self.assertTrue(isinstance(m3,MEDCouplingUMesh))
9576 m4=m[DataArrayInt.New([1,3])]
9578 self.assertTrue(isinstance(m5_1,MEDCouplingUMesh))
9580 self.assertTrue(isinstance(m5_2,MEDCouplingUMesh))
9581 m5=MEDCouplingUMesh.MergeUMeshesOnSameCoords([m5_1,m5_2]);
9582 m5.setName(subMesh.getName())
9583 self.assertTrue(isinstance(m4,MEDCouplingUMesh))
9584 self.assertTrue(subMesh.isEqual(m1,1e-12))
9585 self.assertTrue(subMesh.isEqual(m2,1e-12))
9586 self.assertTrue(subMesh.isEqual(m3,1e-12))
9587 self.assertTrue(subMesh.isEqual(m4,1e-12))
9588 self.assertTrue(subMesh.isEqual(m5,1e-12))
9589 self.assertRaises(InterpKernelException,m.buildPartOfMySelf,[1,5],True);
9592 def testSwigGetItem3(self):
9593 da=DataArrayInt.New([4,5,6])
9594 self.assertEqual(5,da[1])
9595 self.assertEqual(6,da[-1])
9596 self.assertRaises(InterpKernelException,da.__getitem__,3)
9597 da=DataArrayInt.New([4,5,6,7,8,9],2,3)
9598 self.assertEqual(9,da[1,2])
9599 da=DataArrayDouble.New([4.1,5.2,6.3])
9600 self.assertAlmostEqual(5.2,da[1],12)
9601 self.assertAlmostEqual(6.3,da[-1],12)
9602 self.assertRaises(InterpKernelException,da.__getitem__,3)
9603 da=DataArrayDouble.New([4.12,5.12,6.12,7.12,8.12,9.12],2,3)
9604 self.assertAlmostEqual(9.12,da[1,2],12)
9607 def testSwigDADISub1(self):
9608 mesh3D,mesh2D=MEDCouplingDataForTest.build3DExtrudedUMesh_1();
9609 bary=mesh3D.getBarycenterAndOwner()
9611 pts=bary.getDifferentValues(1e-12)
9612 expected=[[0,6,12],[1,7,13],[2,8,14],[3,9,15],[4,10,16],[5,11,17]]
9613 for pos,pt in enumerate(pts):
9616 norm=bary2.magnitude()
9617 self.assertEqual(expected[pos],norm.getIdsInRange(-1.,1e-5).getValues())
9619 expected2=[[3.,54.],[-141.,180.],[21.,54.],[39.,72.],[-15.,90.],[21.,90.]]
9620 for pos,pt in enumerate(pts):
9623 self.assertAlmostEqual(expected2[pos][0],bary2.accumulate()[0],12);
9624 self.assertAlmostEqual(expected2[pos][1],bary2.accumulate()[1],12);
9626 expected3=[[-3.,22.5],[45.,337.5],[-9., 22.5],[-15.,67.5],[3.,112.5],[-9.,112.5]]
9627 for pos,pt in enumerate(pts):
9630 self.assertAlmostEqual(expected3[pos][0],bary2.accumulate()[0],12);
9631 self.assertAlmostEqual(expected3[pos][1],bary2.accumulate()[1],12);
9633 expected4=[[-12.,90.],[0.8,6.],[-4,90.],[-2.4,30.],[12.,18],[-4,18.]]
9634 for pos,pt in enumerate(pts):
9637 self.assertAlmostEqual(expected4[pos][0],bary2.accumulate()[0],12);
9638 self.assertAlmostEqual(expected4[pos][1],bary2.accumulate()[1],12);
9641 d=DataArrayInt.New([1,2,0,1,0,2],3,2)
9642 e=DataArrayInt.New([1,11,101,2,12,102,3,13,103,4,14,104],4,3)
9643 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]]
9644 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]]
9645 for pos,tup in enumerate(d):
9647 self.assertTrue(isinstance(f,DataArrayInt))
9649 self.assertEqual(expected5[pos],f.getValues())
9650 self.assertEqual(6*[77],f[tup].getValues())
9653 self.assertEqual(expected6[pos],f.getValues())
9654 self.assertEqual(8*[77],f[:,tup].getValues())
9657 e=e.convertToDblArr()
9658 for pos,tup in enumerate(d):
9660 self.assertTrue(isinstance(f,DataArrayDouble))
9662 self.assertEqual(expected5[pos],f.convertToIntArr().getValues())
9663 self.assertEqual(6*[77],f[tup].convertToIntArr().getValues())
9666 self.assertEqual(expected6[pos],f.convertToIntArr().getValues())
9667 self.assertEqual(8*[77],f[:,tup].convertToIntArr().getValues())
9671 def testDataArrayDoubleGetMinMaxPerComponent1(self):
9672 values1=[1.,2.,3.,-0.9,2.1,3.,1.3,1.7,3.,1.,1.8,3.]
9673 d1=DataArrayDouble.New();
9674 self.assertRaises(InterpKernelException,d1.getMinMaxPerComponent)
9675 d1=DataArrayDouble.New(values1,4,3);
9676 res=d1.getMinMaxPerComponent();
9677 self.assertTrue(isinstance(res,list))
9678 self.assertEqual(3,len(res))
9680 self.assertTrue(isinstance(res[i],tuple))
9681 self.assertEqual(2,len(res[i]))
9683 expected1=[-0.9,1.3,1.7,2.1,3.,3.]
9685 self.assertAlmostEqual(expected1[i],res[i/2][i%2],14)
9689 res=d1.getMinMaxPerComponent();
9690 self.assertTrue(isinstance(res,list))
9691 self.assertEqual(2,len(res))
9693 self.assertTrue(isinstance(res[i],tuple))
9694 self.assertEqual(2,len(res[i]))
9696 expected2=[1.,3.,-0.9,3.]
9698 self.assertAlmostEqual(expected2[i],res[i/2][i%2],14)
9702 res=d1.getMinMaxPerComponent();
9703 self.assertTrue(isinstance(res,list))
9704 self.assertEqual(1,len(res))
9706 self.assertTrue(isinstance(res[i],tuple))
9707 self.assertEqual(2,len(res[i]))
9711 self.assertAlmostEqual(expected3[i],res[i/2][i%2],14)
9715 def testDataArrayIntGetHashCode1(self):
9716 d1=DataArrayInt.New(range(3545))
9717 d2=DataArrayInt.New(range(3545))
9718 self.assertEqual(d2.getHashCode(),d1.getHashCode())
9719 self.assertEqual(232341068,d1.getHashCode())
9721 self.assertEqual(232340188,d1.getHashCode())
9724 def testZipConnectivityPol1(self):
9725 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
9727 m2_1=m1.buildPartOfMySelf(cells1,True);
9729 self.assertTrue(isinstance(m2,MEDCouplingUMesh))
9730 # no permutation policy 0
9731 isOk,arr=m1.areCellsIncludedIn(m2,0)
9732 self.assertTrue(isOk);
9733 self.assertEqual(3,arr.getNumberOfTuples());
9734 self.assertEqual(1,arr.getNumberOfComponents());
9735 self.assertEqual(cells1,arr.getValues())
9736 # no permutation policy 1
9737 isOk,arr=m1.areCellsIncludedIn(m2,1)
9738 self.assertTrue(isOk);
9739 self.assertEqual(3,arr.getNumberOfTuples());
9740 self.assertEqual(1,arr.getNumberOfComponents());
9741 self.assertEqual(cells1,arr.getValues())
9742 # no permutation policy 2
9743 isOk,arr=m1.areCellsIncludedIn(m2,2)
9744 self.assertTrue(isOk);
9745 self.assertEqual(3,arr.getNumberOfTuples());
9746 self.assertEqual(1,arr.getNumberOfComponents());
9747 self.assertEqual(cells1,arr.getValues())
9748 # some modification into m2
9750 m2.getNodalConnectivity()[1:4]=modif1
9751 #policy 0 fails because cell0 in m2 has same orientation be not same connectivity
9753 isOk,arr=m1.areCellsIncludedIn(m2,0)
9754 self.assertTrue(not isOk);
9755 self.assertEqual(3,arr.getNumberOfTuples());
9756 self.assertEqual(1,arr.getNumberOfComponents());
9757 self.assertEqual(expected1,arr.getValues())
9758 #policy 1 succeeds because cell0 in m2 has not exactly the same conn
9759 isOk,arr=m1.areCellsIncludedIn(m2,1)
9760 self.assertTrue(isOk);
9761 self.assertEqual(3,arr.getNumberOfTuples());
9762 self.assertEqual(1,arr.getNumberOfComponents());
9763 self.assertEqual(cells1,arr.getValues())
9764 #policy 2 succeeds because cell0 in m2 has same nodes in connectivity
9765 isOk,arr=m1.areCellsIncludedIn(m2,2)
9766 self.assertTrue(isOk);
9767 self.assertEqual(3,arr.getNumberOfTuples());
9768 self.assertEqual(1,arr.getNumberOfComponents());
9769 self.assertEqual(cells1,arr.getValues())
9770 #some new modification into m2
9772 m2.getNodalConnectivity()[1:4]=modif2
9773 #policy 0 fails because cell0 in m2 has not exactly the same conn
9774 isOk,arr=m1.areCellsIncludedIn(m2,0)
9775 self.assertTrue(not isOk);
9776 self.assertEqual(3,arr.getNumberOfTuples());
9777 self.assertEqual(1,arr.getNumberOfComponents());
9778 self.assertEqual(expected1,arr.getValues())
9779 #policy 1 fails too because cell0 in m2 has not same orientation
9780 isOk,arr=m1.areCellsIncludedIn(m2,1)
9781 self.assertTrue(not isOk);
9782 self.assertEqual(3,arr.getNumberOfTuples());
9783 self.assertEqual(1,arr.getNumberOfComponents());
9784 self.assertEqual(expected1,arr.getValues())
9785 #policy 2 succeeds because cell0 in m2 has same nodes in connectivity
9786 isOk,arr=m1.areCellsIncludedIn(m2,2)
9787 self.assertTrue(isOk);
9788 self.assertEqual(3,arr.getNumberOfTuples());
9789 self.assertEqual(1,arr.getNumberOfComponents());
9790 self.assertEqual(cells1,arr.getValues())
9793 m1=MEDCouplingDataForTest.build1DSourceMesh_2();
9794 m2_1=m1.buildPartOfMySelf(cells2,True);
9796 self.assertTrue(isinstance(m2,MEDCouplingUMesh))
9797 # no permutation policy 0
9798 isOk,arr=m1.areCellsIncludedIn(m2,0)
9799 self.assertTrue(isOk);
9800 self.assertEqual(2,arr.getNumberOfTuples());
9801 self.assertEqual(1,arr.getNumberOfComponents());
9802 self.assertEqual(cells2,arr.getValues())
9803 # no permutation policy 1
9804 isOk,arr=m1.areCellsIncludedIn(m2,1)
9805 self.assertTrue(isOk);
9806 self.assertEqual(2,arr.getNumberOfTuples());
9807 self.assertEqual(1,arr.getNumberOfComponents());
9808 self.assertEqual(cells2,arr.getValues())
9809 # no permutation policy 2
9810 isOk,arr=m1.areCellsIncludedIn(m2,2)
9811 self.assertTrue(isOk);
9812 self.assertEqual(2,arr.getNumberOfTuples());
9813 self.assertEqual(1,arr.getNumberOfComponents());
9814 self.assertEqual(cells2,arr.getValues())
9815 # some modification into m2
9817 m2.getNodalConnectivity()[1:3]=modif3
9818 #policy 0 fails because cell0 in m2 has not exactly the same conn
9820 isOk,arr=m1.areCellsIncludedIn(m2,0)
9821 self.assertTrue(not isOk);
9822 self.assertEqual(2,arr.getNumberOfTuples());
9823 self.assertEqual(1,arr.getNumberOfComponents());
9824 self.assertEqual(expected2,arr.getValues())
9825 #policy 1 fails too because cell0 in m2 has not same orientation
9826 isOk,arr=m1.areCellsIncludedIn(m2,1)
9827 self.assertTrue(not isOk);
9828 self.assertEqual(2,arr.getNumberOfTuples());
9829 self.assertEqual(1,arr.getNumberOfComponents());
9830 self.assertEqual(expected2,arr.getValues())
9831 #policy 2 succeeds because cell0 in m2 has same nodes in connectivity
9832 isOk,arr=m1.areCellsIncludedIn(m2,2)
9833 self.assertTrue(isOk);
9834 self.assertEqual(2,arr.getNumberOfTuples());
9835 self.assertEqual(1,arr.getNumberOfComponents());
9836 self.assertEqual(cells2,arr.getValues())
9839 def toSeeIfDaIIopsAreOK(self,d):
9847 def testSwigDAIOp5(self):
9848 d=DataArrayInt.New([4,5,6,10,3,-1],2,3)
9849 self.toSeeIfDaIIopsAreOK(d)
9850 dExp=DataArrayInt.New([2,4,6,0,0,6],2,3)
9851 self.assertTrue(d.isEqual(dExp));
9854 def toSeeIfDaDIopsAreOK(self,d):
9861 def testSwigDADOp7(self):
9862 d=DataArrayDouble.New([4.,5.,6.,10.,3.,-1.],2,3)
9863 self.toSeeIfDaDIopsAreOK(d)
9864 dExp=DataArrayDouble.New([16.,18.,20.,28.,14.,6.],2,3)
9865 self.assertTrue(d.isEqual(dExp,1e-14));
9868 def testConvexEnvelop2D1(self):
9869 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]
9870 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]
9871 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]
9873 m=MEDCouplingUMesh.New("convexhull",2);
9874 m.allocateCells(331);
9875 for i in xrange(331):
9876 m.insertNextCell(NORM_POLYGON,conn[connI[i]:connI[i+1]]);
9878 m.finishInsertingCells();
9879 coordsDa=DataArrayDouble.New(coords,331,2);
9880 m.setCoords(coordsDa);
9883 da=m.convexEnvelop2D();
9885 self.assertEqual(coordsDa.getHiddenCppPointer(),m.getCoords().getHiddenCppPointer())
9886 daC=da.buildComplement(m.getNumberOfCells());
9887 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]);
9888 self.assertTrue(expected2.isEqual(daC));
9890 vals=m.getMeasureField(ON_CELLS).getArray()
9891 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]
9892 vals-=DataArrayDouble.New(ref)
9894 theTest=vals.getIdsInRange(-1.,1e-7)
9895 self.assertTrue(theTest.isIdentity())
9896 self.assertEqual(331,len(theTest))
9899 def testSwigDAIOp8(self):
9900 da=DataArrayInt.New([7,5,6,7,8,9,9,10,12,13,47,15])
9901 self.assertTrue(7 in da)
9902 self.assertTrue(47 in da)
9903 self.assertTrue(15 in da)
9904 self.assertEqual(0,da.index(7))
9905 self.assertEqual(10,da.index(47))
9906 self.assertTrue(14 not in da)
9907 self.assertEqual(5,da.search([9,9]))
9908 self.assertEqual(-1,da.search([5,8]))
9910 self.assertTrue([47,16] not in da)
9911 self.assertTrue([5,6] not in da)
9912 self.assertTrue([6,7] in da)
9913 self.assertEqual(4,da.index([12,13]))
9916 def testDataArraySort1(self):
9917 arr=DataArrayInt.New();
9918 self.assertRaises(InterpKernelException,arr.sort,True)
9919 self.assertRaises(InterpKernelException,arr.sort,False)
9920 values=[2,1,6,5,4,7]
9922 self.assertRaises(InterpKernelException,arr.sort,True)
9923 self.assertRaises(InterpKernelException,arr.sort,False)
9925 arr.setValues(values,6,1)
9929 expected1=[1,2,4,5,6,7]
9930 self.assertEqual(6,arr1.getNumberOfTuples());
9931 self.assertEqual(1,arr1.getNumberOfComponents());
9932 self.assertEqual(expected1,arr1.getValues());
9934 expected2=[7,6,5,4,2,1]
9935 self.assertEqual(6,arr2.getNumberOfTuples());
9936 self.assertEqual(1,arr2.getNumberOfComponents());
9937 self.assertTrue(expected2,arr2.getValues());
9939 ard=DataArrayDouble.New();
9940 self.assertRaises(InterpKernelException,ard.sort,True)
9941 self.assertRaises(InterpKernelException,ard.sort,False)
9942 valuesD=[2.,1.,6.,5.,4.,7.]
9944 self.assertRaises(InterpKernelException,ard.sort,True)
9945 self.assertRaises(InterpKernelException,ard.sort,False)
9947 ard.setValues(valuesD,6,1)
9951 expected3=[1.,2.,4.,5.,6.,7.]
9952 self.assertEqual(6,ard1.getNumberOfTuples());
9953 self.assertEqual(1,ard1.getNumberOfComponents());
9955 self.assertAlmostEqual(expected3[i],ard1.getIJ(i,0),12)
9958 expected4=[7.,6.,5.,4.,2.,1.]
9959 self.assertEqual(6,ard2.getNumberOfTuples());
9960 self.assertEqual(1,ard2.getNumberOfComponents());
9962 self.assertAlmostEqual(expected4[i],ard2.getIJ(i,0),12)
9966 def testPartitionBySpreadZone1(self):
9967 m=MEDCouplingDataForTest.build2DTargetMesh_1();
9968 m4=MEDCouplingUMesh.MergeUMeshes([m,m[-3:],m[0:2]]);
9969 m4.renumberCells([5,2,9,6,4,7,0,1,3,8]);
9971 v2=m4.partitionBySpreadZone();
9972 self.assertTrue(3,len(v2));
9973 self.assertTrue(v2[0].isEqual(DataArrayInt.New([0,1,7])))
9974 self.assertTrue(v2[1].isEqual(DataArrayInt.New([2,4,5,6,9])))
9975 self.assertTrue(v2[2].isEqual(DataArrayInt.New([3,8])))
9977 m5=m4.buildSpreadZonesWithPoly();
9978 self.assertEqual(3,m5.getNumberOfCells());
9979 self.assertTrue(m5.getCoords().getHiddenCppPointer()==m4.getCoords().getHiddenCppPointer());
9980 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())
9981 self.assertEqual([0,8,17,23],m5.getNodalConnectivityIndex().getValues())
9985 def testGiveCellsWithType1(self):
9988 m=MEDCouplingDataForTest.build2DTargetMesh_1();
9989 da=m.giveCellsWithType(NORM_TRI3);
9990 self.assertEqual(2,da.getNumberOfTuples());
9991 self.assertEqual(1,da.getNumberOfComponents());
9992 self.assertEqual(expected0,da.getValues())
9994 da=m.giveCellsWithType(NORM_QUAD4);
9995 self.assertEqual(3,da.getNumberOfTuples());
9996 self.assertEqual(1,da.getNumberOfComponents());
9997 self.assertEqual(expected1,da.getValues())
9999 da=m.giveCellsWithType(NORM_TRI6);
10000 self.assertEqual(0,da.getNumberOfTuples());
10001 self.assertEqual(1,da.getNumberOfComponents());
10003 self.assertRaises(InterpKernelException,m.giveCellsWithType,NORM_SEG2)
10004 self.assertRaises(InterpKernelException,m.giveCellsWithType,NORM_HEXA8)
10007 def testSwigDAOp1(self):
10008 d=DataArrayDouble.New(5,2)
10009 d.rearrange(1) ; d.iota(2.) ; d.rearrange(2)
10010 d.setInfoOnComponents(["X [m]","Y [m]"])
10014 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))
10015 d1bis=DataArrayDouble.New([8,9],1,2)+d
10016 self.assertTrue(d1bis.isEqual(d1,1e-12))
10018 self.assertTrue(d1ter.isEqual(d1,1e-12))
10021 self.assertTrue(d2.isEqual(d,1e-12))
10022 self.assertRaises(InterpKernelException,d1.__rsub__,[8,9])#[8,9]-d1
10025 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))
10026 d3bis=DataArrayDouble.New([8,9],1,2)*d
10027 self.assertTrue(d3bis.isEqual(d3,1e-12))
10029 self.assertTrue(d3ter.isEqual(d3,1e-12))
10032 self.assertTrue(d4.isEqual(d,1e-12))
10034 d=DataArrayInt.New(5,2)
10035 d.rearrange(1) ; d.iota(2) ; d.rearrange(2)
10036 d.setInfoOnComponents(["X [m]","Y [m]"])
10040 self.assertEqual(d1.getValues(),[10,12,12,14,14,16,16,18,18,20])
10041 d1bis=DataArrayInt.New([8,9],1,2)+d
10042 self.assertTrue(d1bis.isEqual(d1))
10044 self.assertTrue(d1ter.isEqual(d1))
10047 self.assertTrue(d2.isEqual(d))
10048 self.assertRaises(InterpKernelException,d1.__rsub__,[8,9])
10051 self.assertEqual(d3.getValues(),[16,27,32,45,48,63,64,81,80,99])
10052 d3bis=DataArrayInt.New([8,9],1,2)*d
10053 self.assertTrue(d3bis.isEqual(d3))
10055 self.assertTrue(d3ter.isEqual(d3))
10058 self.assertTrue(d4.isEqual(d))
10061 self.assertEqual(d5.getValues(),[2,3,0,0,2,2,0,4,2,1])
10064 def testSwigSelectTupleId2DAIBug1(self):
10065 da=DataArrayInt.New([0,1,2,3,12,13,4,5,6,7,14,15,8,9,10,11,16,17])
10066 self.assertEqual([2,6,10],da[2::6].getValues())
10067 self.assertEqual([0,4,8],da[::6].getValues())
10068 self.assertEqual([5,9],da[7::6].getValues())
10069 self.assertEqual([5],da[7:-5:6].getValues())
10072 def testSwigCpp5Safe1(self):
10073 m=MEDCouplingUMesh.New("toto",2)
10074 coords=DataArrayDouble.New([0.,0.,1.,0.,1.,1.,0.,1.],4,2)
10075 m.setCoords(coords)
10076 vecs=DataArrayDouble.New([2.,3.,4.,5.,6.,7.],3,2)
10077 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]]
10078 for pos,vec in enumerate(vecs):
10081 self.assertTrue(m2.getCoords().isEqual(DataArrayDouble.New(expected1[pos],4,2),1e-12))
10083 for pos,vec in enumerate(vecs):
10085 m2.translate(vec.buildDADouble())
10086 self.assertTrue(m2.getCoords().isEqual(DataArrayDouble.New(expected1[pos],4,2),1e-12))
10090 def testSwigBugNonRegressionZipDA(self):
10091 angles=map(lambda x:pi/3*x,xrange(6))
10094 dad=DataArrayDouble.New(6, 2)
10098 dad2=dad.fromPolarToCart()
10099 dads=[dad2.deepCpy() for elt in 7*[None]]
10101 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.)]]
10102 for d,t in zip(dads,translationToPerform):
10106 self.assertTrue(not dad2.isEqual(elt,1e-12))
10108 for d,t in zip(dads,translationToPerform):
10112 self.assertTrue(dad2.isEqual(elt,1e-12))
10116 def testBuildSlice3D2(self):
10117 mesh3D,mesh2D=MEDCouplingDataForTest.build3DExtrudedUMesh_1();
10118 vec1=[-0.07,1.,0.07]
10119 origin1=[1.524,1.4552,1.74768]
10120 slice1,ids=mesh3D.buildSlice3D(origin1,vec1,1e-10);
10121 f=MEDCouplingFieldDouble(ON_CELLS,ONE_TIME)
10122 f.setTime(4.5,6,7) ; f.setMesh(mesh3D)
10123 arr=DataArrayDouble(mesh3D.getNumberOfCells(),2)
10124 arr.rearrange(1) ; arr.iota(2.) ; arr.rearrange(2)
10127 expected1=DataArrayInt([1,3,4,7,9,10,13,15,16])
10128 self.assertTrue(expected1.isEqual(ids))
10129 arr2=arr[expected1]
10131 f2=f.extractSlice3D(origin1,vec1,1e-10)
10132 self.assertTrue(f2.getArray().isEqual(arr2,1e-12));
10133 self.assertTrue(slice1.isEqual(f2.getMesh(),1e-12))
10134 self.assertEqual(6,f2.getTime()[1]) ; self.assertEqual(7,f2.getTime()[2])
10135 self.assertAlmostEqual(4.5,f2.getTime()[0],12);
10138 def testComputeTupleIdsToSelectFromCellIds1(self):
10139 m=MEDCouplingDataForTest.build2DTargetMesh_3()
10140 f=MEDCouplingFieldDouble.New(ON_GAUSS_NE,NO_TIME);
10142 arr=DataArrayDouble(52,2) ; arr.rearrange(1) ; arr.iota(7.) ; arr.rearrange(2)
10145 f2=f.buildSubPart([1,5,9])
10146 f2.checkCoherency()
10147 cI=m.computeNbOfNodesPerCell()
10148 cI.computeOffsets2()
10149 sel=DataArrayInt([1,5,9])
10150 res=sel.buildExplicitArrByRanges(cI)
10152 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))
10153 self.assertTrue(arr2.isEqual(f2.getArray(),1e-12))
10156 def testComputeSkin1(self):
10157 arrX=DataArrayDouble([2.,3.4,5.6,7.7,8.0]) ; arrY=DataArrayDouble([2.,3.4,5.6,7.7,9.0,14.2])
10158 cmesh=MEDCouplingCMesh() ; cmesh.setCoordsAt(0,arrX) ; cmesh.setCoordsAt(1,arrY)
10159 umesh=cmesh.buildUnstructured()
10161 skin=umesh.computeSkin()
10162 self.assertEqual(18,skin.getNumberOfCells())
10163 self.assertEqual(1,skin.getMeshDimension())
10164 self.assertTrue(skin.getCoords().getHiddenCppPointer()==umesh.getCoords().getHiddenCppPointer())
10165 self.assertEqual([0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54],skin.getNodalConnectivityIndex().getValues())
10166 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())
10167 ids=skin.computeFetchedNodeIds()
10168 self.assertEqual([0,1,2,3,4,5,9,10,14,15,19,20,24,25,26,27,28,29],ids.getValues())
10169 part=umesh.buildFacePartOfMySelfNode(ids,True)
10170 part.setName(skin.getName());
10171 self.assertTrue(part.isEqual(skin,1e-12))
10174 self.assertTrue(not part.isEqual(skin,1e-12))
10175 trad=part.zipConnectivityTraducer(0)
10176 self.assertEqual(9,part.getNumberOfCells())
10177 self.assertEqual([0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8],trad.getValues())
10180 def testUMeshSetPartOfMySelf2(self):
10181 # resize with explicit ids list
10182 m=MEDCouplingDataForTest.build2DTargetMesh_1()
10183 self.assertEqual([3,4],m.getAllGeoTypes())
10186 part2=part[[1,2,5]]
10188 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())
10189 self.assertEqual([0,4,8,12,16,20],m.getNodalConnectivityIndex().getValues())
10190 self.assertEqual([3],m.getAllGeoTypes())
10191 # no resize with explicit ids list
10192 m=MEDCouplingDataForTest.build2DTargetMesh_1()
10194 part.convertAllToPoly()
10196 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())
10197 self.assertEqual([0,5,9,13,18,23],m.getNodalConnectivityIndex().getValues())
10198 self.assertEqual([3,4,5],m.getAllGeoTypes())
10199 # resize with range ids
10200 m=MEDCouplingDataForTest.build2DTargetMesh_1()
10203 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())
10204 self.assertEqual([0,5,10,15,20,25],m.getNodalConnectivityIndex().getValues())
10205 self.assertEqual([4],m.getAllGeoTypes())
10206 # no resize with range ids
10207 m=MEDCouplingDataForTest.build2DTargetMesh_1()
10209 part.convertAllToPoly()
10211 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())
10212 self.assertEqual([0,5,9,13,18,23],m.getNodalConnectivityIndex().getValues())
10213 self.assertEqual([3,4,5],m.getAllGeoTypes())
10214 # no resize with range ids negative direction
10215 m=MEDCouplingDataForTest.build2DTargetMesh_1()
10217 part.convertAllToPoly()
10219 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())
10220 self.assertEqual([0,5,9,13,18,23],m.getNodalConnectivityIndex().getValues())
10221 self.assertEqual([3,4,5],m.getAllGeoTypes())
10224 def testUnPolyze3(self):
10225 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]
10226 conn=[1,2,5,4,-1,4,3,0,1,-1,2,0,3,5,-1,0,2,1,-1,4,5,3]
10227 m=MEDCouplingUMesh.New("a mesh",3);
10228 m.allocateCells(1);
10229 m.insertNextCell(NORM_POLYHED,22,conn[0:22])
10230 m.finishInsertingCells();
10231 coords=DataArrayDouble(coord,6,3);
10232 m.setCoords(coords);
10233 m.checkCoherency();
10235 vol=m.getMeasureField(ON_CELLS);
10236 self.assertEqual(1,vol.getArray().getNumberOfTuples());
10237 self.assertAlmostEqual(0.5,vol.getArray().getIJ(0,0),12)
10241 self.assertEqual([NORM_PENTA6],m.getAllGeoTypes())
10242 self.assertTrue(DataArrayInt([0,7]).isEqual(m.getNodalConnectivityIndex()))
10243 self.assertTrue(DataArrayInt([16,0,2,1,3,5,4]).isEqual(m.getNodalConnectivity()))
10245 vol=m.getMeasureField(ON_CELLS);
10246 self.assertEqual(1,vol.getArray().getNumberOfTuples());
10247 self.assertAlmostEqual(0.5,vol.getArray().getIJ(0,0),12)
10250 def testKrSpatialDiscretization1(self):
10251 srcPointCoordsX=[0.8401877171547095, 0.7830992237586059, 0.9116473579367843, 0.335222755714889, 0.2777747108031878, 0.4773970518621602, 0.3647844727918433, 0.9522297251747128, 0.6357117279599009, 0.1416025553558034]
10252 srcFieldValsOnPoints=[2.129892434968836, 2.295320474540621, 1.931948594981134, 2.728013590937196, 2.715603240418478, 2.661778472822935, 2.695696990104364, 1.893710234970982, 2.529628016549284, 2.728432341300668]
10253 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]
10254 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]
10255 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])
10257 nbOfInputPoints=10;
10258 f=MEDCouplingFieldDouble.New(ON_NODES_KR,ONE_TIME);
10259 srcArrX=DataArrayDouble.New(srcPointCoordsX,nbOfInputPoints,1);
10260 cmesh=MEDCouplingCMesh.New("aMesh");
10261 cmesh.setCoordsAt(0,srcArrX);
10262 umesh=cmesh.buildUnstructured();
10264 srcVals=DataArrayDouble.New(srcFieldValsOnPoints,nbOfInputPoints,1);
10265 f.setArray(srcVals);
10266 f.checkCoherency();
10268 res0=f.getValueOn(targetPointCoordsX[:1]);
10269 self.assertAlmostEqual(targetFieldValsExpected[0],res0[0],10)
10271 valuesToTest=f.getValueOnMulti(targetPointCoordsX);
10272 self.assertEqual(40,valuesToTest.getNumberOfTuples());
10273 self.assertEqual(1,valuesToTest.getNumberOfComponents());
10274 for i in xrange(40):
10275 self.assertAlmostEqual(targetFieldValsExpected[i],valuesToTest.getIJ(i,0),10)
10277 fd=f.getDiscretization()
10279 self.assertTrue(isinstance(fd,MEDCouplingFieldDiscretizationKriging))
10280 coeffs,isDrift=fd.computeVectorOfCoefficients(umesh,srcVals)
10281 self.assertEqual(2,isDrift)
10282 self.assertTrue(coeffsExpected.isEqual(coeffs,1e-8))
10286 def testDuplicateEachTupleNTimes1(self):
10287 d=DataArrayDouble.New([9.,8.,7.,6.],4,1) ; d.setInfoOnComponents(["mass [kg]"]) ; d.setName("aname")
10288 d2=d.duplicateEachTupleNTimes(3)
10289 self.assertTrue(d2.isEqualWithoutConsideringStr(DataArrayDouble.New([9.,9.,9.,8.,8.,8.,7.,7.,7.,6.,6.,6.],4*3,1),1e-14))
10290 self.assertEqual("aname",d2.getName())
10291 self.assertEqual(["mass [kg]"],d2.getInfoOnComponents())
10293 d=DataArrayInt.New([9,8,7,6],4,1) ; d.setInfoOnComponents(["mass [kg]"]) ; d.setName("aname")
10294 d2=d.duplicateEachTupleNTimes(3)
10295 self.assertTrue(d2.isEqualWithoutConsideringStr(DataArrayInt.New([9,9,9,8,8,8,7,7,7,6,6,6],4*3,1)))
10296 self.assertEqual("aname",d2.getName())
10297 self.assertEqual(["mass [kg]"],d2.getInfoOnComponents())
10300 def testSwigComputeTupleIdsNearTuples1(self):
10301 da=DataArrayDouble([5.,6.,-5.,-6.,5.,-6.,-5.,6.,5.,6.],5,2)
10302 arr,arrI=da.computeTupleIdsNearTuples(DataArrayDouble([5.,-6.,5.,6.,-5.,-6.],3,2),1e-10)
10303 self.assertEqual([2,0,4,1],arr.getValues())
10304 self.assertEqual([0,1,3,4],arrI.getValues())
10305 arr,arrI=da.computeTupleIdsNearTuples([5.,-6.,5.,6.,-5.,-6.],1e-10)
10306 self.assertEqual([2,0,4,1],arr.getValues())
10307 self.assertEqual([0,1,3,4],arrI.getValues())
10308 expected0=[[2],[0,4],[1]]
10309 expected1=[[0,1],[0,2],[0,1]]
10310 for pos,it in enumerate(DataArrayDouble([5.,-6.,5.,6.,-5.,-6.],3,2)):
10311 arr,arrI=da.computeTupleIdsNearTuples(it,1e-10)
10312 self.assertEqual(expected0[pos],arr.getValues())
10313 self.assertEqual(expected1[pos],arrI.getValues())
10317 def testSwigDataTupleIOp1(self):
10318 d=DataArrayDouble(10,1)
10323 toTest=DataArrayDouble([9.0,10.0,11.0,12.0,13.0,14.0,15.0,16.0,17.0,18.0])
10324 self.assertTrue(toTest.isEqual(d,1e-12))
10328 toTest=DataArrayDouble([7.0,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0,16.0])
10329 self.assertTrue(toTest.isEqual(d,1e-12))
10333 toTest=DataArrayDouble([14.0,16.0,18.0,20.0,22.0,24.0,26.0,28.0,30.0,32.0])
10334 self.assertTrue(toTest.isEqual(d,1e-12))
10338 toTest=DataArrayDouble([7.0,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0,16.0])
10339 self.assertTrue(toTest.isEqual(d,1e-12))
10341 d=DataArrayInt(10,1)
10346 self.assertEqual(d.getValues(),[9,10,11,12,13,14,15,16,17,18])
10350 self.assertEqual(d.getValues(),[7,8,9,10,11,12,13,14,15,16])
10354 self.assertEqual(d.getValues(),[14,16,18,20,22,24,26,28,30,32])
10358 self.assertEqual(d.getValues(),[7,8,9,10,11,12,13,14,15,16])
10362 self.assertEqual(d.getValues(),[1,2,0,1,2,0,1,2,0,1])
10365 def testIntersect2DMeshesTmp5(self):
10366 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)
10367 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)
10368 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)
10370 m1=MEDCouplingUMesh.New("Fix",2);
10371 m1.setCoords(coords);
10372 m1.setConnectivity(conn,connI,True);
10374 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)
10376 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);
10378 connI=DataArrayInt([0,9,18,27,36,45,54,63,72],9)
10379 m2=MEDCouplingUMesh.New("Mobile",2);
10380 m2.setCoords(coords);
10381 m2.setConnectivity(conn,connI,True);
10383 m3,d1,d2=MEDCouplingUMesh.Intersect2DMeshes(m1,m2,1e-10);
10384 self.assertEqual(105,m3.getNumberOfCells());
10385 self.assertEqual(105,d1.getNumberOfTuples());
10386 self.assertEqual(105,d2.getNumberOfTuples());
10387 self.assertEqual(704,m3.getNumberOfNodes());
10389 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]
10390 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]
10391 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]
10392 f3=m3.getMeasureField(ON_CELLS).getArray().getValues();
10393 for i in xrange(105):
10394 self.assertAlmostEqual(areaExpected[i],f3[i],10)
10396 self.assertEqual(expected1,d1.getValues())
10397 self.assertEqual(expected2,d2.getValues())
10400 def testSwig2Intersect2DMeshesQuadra1(self):
10402 def createDiagCircle(lX, lY, R, cells=[0,1]):
10403 """ A circle in a square box, cut along the diagonal.
10407 c.append(cmath.rect(R, i*pi/4))
10409 coords = [0.0,0.0, c[3].real,c[3].imag, -lX/2.0, lY/2.0,
10410 0.0, lY/2.0, lX/2.0,lY/2.0, lX/2.0,0.0,
10412 lX/2.0,-lY/2.0, c[7].real,c[7].imag, c[1].real,c[1].imag,
10414 c[5].real,c[5].imag, -lX/2.0,-lY/2.0, 0.0, -lY/2.0,
10416 -lX/2.0,0.0, 0.0,0.0, 0.0, 0.0]
10417 # Points 13 (reps. 14) are average of points (6,7) (resp (1,2))
10418 coords[13*2] = 0.5*(coords[6*2]+coords[7*2])
10419 coords[13*2+1] = 0.5*(coords[6*2+1]+coords[7*2+1])
10420 coords[14*2] = 0.5*(coords[1*2]+coords[2*2])
10421 coords[14*2+1] = 0.5*(coords[1*2+1]+coords[2*2+1])
10422 connec = [1,7,8,0] # half circle up right
10423 connec3 = [6,7,1,2,4,13,8,14,3,5]
10425 baseMesh = MEDCouplingUMesh.New("box_circle", 2)
10426 baseMesh.allocateCells(2)
10427 meshCoords = DataArrayDouble.New(coords, len(coords)/2, 2)
10428 meshCoords.setInfoOnComponents(["X [au]", "Y [au]"])
10429 baseMesh.setCoords(meshCoords)
10432 baseMesh.insertNextCell(NORM_QPOLYG, connec)
10434 baseMesh.insertNextCell(NORM_QPOLYG, connec3)
10435 baseMesh.finishInsertingCells()
10436 baseMesh.checkCoherency()
10440 m1 = createDiagCircle(1.0, 1.0, 0.5*0.90, cells=[0,1])
10441 m2 = createDiagCircle(1.0, 1.0, 0.5*0.95, cells=[0])
10442 m3, _, _= MEDCouplingUMesh.Intersect2DMeshes(m1, m2, eps)
10444 m3.convertDegeneratedCells()
10447 m5, _, _ = MEDCouplingUMesh.Intersect2DMeshes(m3, m4, eps)
10449 # Check coordinates:
10450 self.assertTrue(m3.getCoords().isEqual(m5.getCoords(), eps))
10452 def testIntersect2DMeshesTmp7(self):
10454 coords = [-0.5,-0.5, -0.5, 0.5, 0.5, 0.5, 0.5,-0.5]
10456 m1 = MEDCouplingUMesh.New("box", 2)
10457 m1.allocateCells(1)
10458 meshCoords = DataArrayDouble.New(coords, len(coords)/2, 2)
10459 m1.setCoords(meshCoords)
10460 m1.insertNextCell(NORM_POLYGON, connec)
10461 m1.finishInsertingCells()
10463 m2 = MEDCouplingDataForTest.buildCircle(0.25, 0.2, 0.4)
10464 # Was looping indefinitly:
10465 m_intersec, resToM1, resToM2 = MEDCouplingUMesh.Intersect2DMeshes(m1, m2, eps)
10466 m_intersec.zipCoords()
10467 coo_tgt = DataArrayDouble([-0.5, -0.5, -0.5, 0.5, 0.5, 0.5, 0.5, -0.5, -0.03284271247461901, 0.4828427124746191,
10468 -0.014575131106459124, 0.5000000000000001, 0.5, -0.11224989991991996, 0.24271243444677046, 0.5, 0.5, 0.19387505004004,
10469 -0.04799910280454185, -0.06682678787499614, -0.023843325638122054, 0.4915644577163915, 0.5, -0.30612494995996, 0.0, -0.5,
10470 -0.5, 0.0, -0.25728756555322957, 0.5, -0.023843325638122026, 0.49156445771639157, -0.04799910280454181, -0.06682678787499613], 17 ,2)
10471 conn_tgt = [32, 5, 2, 6, 4, 7, 8, 9, 10, 32, 6, 3, 0, 1, 5, 4, 11, 12, 13, 14, 15, 16]
10472 connI_tgt = [0, 9, 22]
10475 self.assert_(coo_tgt.isEqualWithoutConsideringStr(m_intersec.getCoords(), 1e-12))
10476 self.assertEqual(conn_tgt, m_intersec.getNodalConnectivity().getValues())
10477 self.assertEqual(connI_tgt, m_intersec.getNodalConnectivityIndex().getValues())
10478 self.assertEqual(res1_tgt, resToM1.getValues())
10479 self.assertEqual(res2_tgt, resToM2.getValues())
10481 def testDAIBuildUnique1(self):
10482 d=DataArrayInt([1,2,2,3,3,3,3,4,5,5,7,7,7,19])
10484 self.assertTrue(e.isEqual(DataArrayInt([1,2,3,4,5,7,19])))
10487 def testDAIPartitionByDifferentValues1(self):
10488 d=DataArrayInt([1,0,1,2,0,2,2,-3,2])
10489 expected=[[-3,[7]],[0,[1,4]],[1,[0,2]],[2,[3,5,6,8]]]
10490 for i,elt in enumerate(zip(*d.partitionByDifferentValues())):
10491 self.assertEqual(expected[i][0],elt[1])
10492 self.assertEqual(expected[i][1],elt[0].getValues())
10496 def testFieldGaussMultiDiscPerType1(self):
10497 coords=DataArrayDouble([0.,0.,0.,1.,1.,1.,1.,0.,0.,0.5,0.5,1.,1.,0.5,0.5,0.],8,2)
10498 mQ8=MEDCouplingUMesh("",2) ; mQ8.setCoords(coords)
10499 mQ8.allocateCells(1)
10500 mQ8.insertNextCell(NORM_QUAD8,range(8))
10501 mQ8.finishInsertingCells()
10502 mQ4=MEDCouplingUMesh("",2) ; mQ4.setCoords(coords)
10503 mQ4.allocateCells(1)
10504 mQ4.insertNextCell(NORM_QUAD4,range(4))
10505 mQ4.finishInsertingCells()
10506 mT3=MEDCouplingUMesh("",2) ; mT3.setCoords(coords)
10507 mT3.allocateCells(1)
10508 mT3.insertNextCell(NORM_TRI3,range(3))
10509 mT3.finishInsertingCells()
10511 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.]]
10512 ms=2*[mQ4]+7*[mQ8]+11*[mT3]
10513 ms[:]=(elt.deepCpy() for elt in ms)
10514 for m,t in zip(ms,tr):
10515 d=m.getCoords() ; d+= t
10517 m=MEDCouplingUMesh.MergeUMeshes(ms)
10518 f=MEDCouplingFieldDouble.New(ON_GAUSS_PT,NO_TIME)
10520 # throw because cell 0,1 are QUAD4 and cell 3 is QUAD8
10521 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])
10522 f.setGaussLocalizationOnCells([0,1],[0.,0.,1.,0.,1.,1.,0.,1.],[0.3,0.3,0.7,0.7],[0.8,0.2])
10523 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])
10524 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])
10525 f.setGaussLocalizationOnCells([9,10,11,12,13],[0.,0.,1.,0.,1.,1.],[0.4,0.4],[1.])
10526 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])
10527 self.assertEqual(46,f.getNumberOfTuplesExpected())
10528 vals=DataArrayDouble.New(46*3,1) ; vals.iota(7.7) ; vals.rearrange(3)
10531 #f.getLocalizationOfDiscr()
10532 self.assertRaises(InterpKernelException,f.getGaussLocalizationIdOfOneType,NORM_QUAD8) #throw because several loc
10533 self.assertEqual([1,2],f.getGaussLocalizationIdsOfOneType(NORM_QUAD8))
10534 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())
10536 fc.checkCoherency()
10537 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))
10538 fc.renumberCells([3,2,0,1])
10539 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))
10543 def testSwigRotate(self):
10544 d=DataArrayDouble([1.,2.,3.,4.,6.,5.],2,3)
10545 MEDCouplingPointSet.Rotate3DAlg([0.,0.,0.],[0.,1.,0.],1.5707963267948966,d)
10546 self.assertTrue(d.isEqual(DataArrayDouble([3.,2.,-1.,5.,6.,-4.],2,3),1e-12))
10547 d=DataArrayDouble([1.,2.,3.,4.,6.,5.],3,2)
10548 MEDCouplingPointSet.Rotate2DAlg([0.,0.],1.5707963267948966,d)
10549 self.assertTrue(d.isEqual(DataArrayDouble([-2.,1.,-4.,3.,-5.,6.],3,2),1e-12))
10552 def testSwigCMeshProtection(self):
10553 cm=MEDCouplingCMesh()
10554 self.assertRaises(InterpKernelException,cm.setCoordsAt,0,DataArrayDouble([4.,4.5,6.,7.],2,2))
10555 self.assertRaises(InterpKernelException,cm.setCoords,DataArrayDouble([4.,4.5,6.,7.],2,2))
10558 def testSwigCellsInBoundingBox1(self):
10559 m3D=MEDCouplingDataForTest.build3DExtrudedUMesh_1()[0]
10560 self.assertTrue(m3D.getCellsInBoundingBox([(0,3),(0,3),(0,1)],-1e-12).isEqual(DataArrayInt([0,1,2,3,4,5])))
10561 self.assertRaises(InterpKernelException,m3D.getCellsInBoundingBox,[(0,3,0),(3,0,1)],-1e-12)
10564 def testDAICheckMonotonic1(self):
10565 data1=[-1,0,2,2,4,5]
10566 data2=[6,2,0,-8,-9,-56]
10567 data3=[-1,0,3,2,4,6]
10568 data4=[7,5,2,3,0,-6]
10569 d=DataArrayInt.New(data1);
10570 self.assertTrue(d.isMonotonic(True));
10571 self.assertTrue(not d.isMonotonic(False));
10572 d.checkMonotonic(True);
10573 self.assertRaises(InterpKernelException,d.checkMonotonic,False)
10574 d=DataArrayInt.New(data2);
10575 self.assertTrue(d.isMonotonic(False));
10576 self.assertTrue(not d.isMonotonic(True));
10577 d.checkMonotonic(False);
10578 self.assertRaises(InterpKernelException,d.checkMonotonic,True)
10579 d=DataArrayInt.New(data3);
10580 self.assertTrue(not d.isMonotonic(False));
10581 self.assertTrue(not d.isMonotonic(True));
10582 self.assertRaises(InterpKernelException,d.checkMonotonic,True)
10583 self.assertRaises(InterpKernelException,d.checkMonotonic,False)
10584 d=DataArrayInt.New(data4);
10585 self.assertTrue(not d.isMonotonic(False));
10586 self.assertTrue(not d.isMonotonic(True));
10587 self.assertRaises(InterpKernelException,d.checkMonotonic,True)
10588 self.assertRaises(InterpKernelException,d.checkMonotonic,False)
10589 d=DataArrayInt.New(0,1)
10590 self.assertTrue(d.isMonotonic(True));
10591 self.assertTrue(d.isMonotonic(False));
10592 d.checkMonotonic(True);
10593 d.checkMonotonic(False);
10594 d=DataArrayInt.New(data4,3,2);#throw because nbComp!=1
10595 self.assertRaises(InterpKernelException,d.isMonotonic,True)
10596 self.assertRaises(InterpKernelException,d.isMonotonic,False)
10597 self.assertRaises(InterpKernelException,d.checkMonotonic,True)
10598 self.assertRaises(InterpKernelException,d.checkMonotonic,False)
10601 def testSwigDASetItemOnEmpty1(self):
10602 d=DataArrayInt(0,1)
10606 except InterpKernelException as e:
10609 self.assertTrue(isThrow)
10613 d=DataArrayDouble(0,1)
10617 except InterpKernelException as e:
10620 self.assertTrue(isThrow)
10623 d=DataArrayInt([],0,1)
10625 self.assertTrue(d2.isEqual(d))
10626 d=DataArrayDouble([],0,1)
10627 d2=DataArrayDouble(0)
10628 self.assertTrue(d2.isEqual(d,1e-12))
10631 def testSwigDAITransformWithIndArr1(self):
10632 arr=DataArrayInt([0,4,5,1])
10633 d=DataArrayInt([7,8,9,10])
10634 self.assertRaises(InterpKernelException,arr.transformWithIndArr,d)
10637 def testIntersect2DMeshesTmp6(self):
10639 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);
10641 conn=DataArrayInt.New([8,0,3,5,1,4,6,7,2])
10642 connI=DataArrayInt.New([0,9]);
10643 m1=MEDCouplingUMesh.New("Fixe",2);
10644 m1.setCoords(coords);
10645 m1.setConnectivity(conn,connI,True);
10647 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);
10649 conn=DataArrayInt.New([8,0,1,2,3,4,5,6,7,8,3,2,8,9,6,10,11,12]);
10650 connI=DataArrayInt.New([0,9,18]);
10652 m2=MEDCouplingUMesh.New("Mobile",2);
10653 m2.setCoords(coords);
10654 m2.setConnectivity(conn,connI,True);
10656 m3,d1,d2=MEDCouplingUMesh.Intersect2DMeshes(m1,m2,1e-10);
10657 self.assertTrue(d1.isEqual(DataArrayInt([0,0,0,0])));
10658 self.assertTrue(d2.isEqual(DataArrayInt([0,1,-1,-1])));
10659 self.assertEqual(4,m3.getNumberOfCells());
10660 self.assertEqual(4,d1.getNumberOfTuples());
10661 self.assertEqual(4,d2.getNumberOfTuples());
10662 self.assertEqual(43,m3.getNumberOfNodes());
10663 dI,areMerged,newNbOfNodes=m3.mergeNodes(1e-12)
10664 self.assertEqual(35,m3.getNumberOfNodes());
10666 self.assertEqual(23,m3.getNumberOfNodes());
10668 f=m3.getMeasureField(True);
10669 valuesExpected=DataArrayDouble([1.6603638692585716,5.747555728471923,129.68907101754394,7.4162714498559694])
10670 self.assertTrue(f.getArray().isEqual(valuesExpected,1e-12))
10673 def testDAPushBack(self):
10674 d=DataArrayDouble(0,1)
10675 for i in xrange(8):
10676 d.pushBackSilent(i)
10678 self.assertEqual(d.getNumberOfTuples(),8)
10679 self.assertEqual(d.getNbOfElemAllocated(),8)
10680 d.pushBackSilent(4.44)
10681 self.assertEqual(d.getNumberOfTuples(),9)
10682 self.assertEqual(d.getNbOfElemAllocated(),16)
10683 self.assertTrue(d.isEqual(DataArrayDouble([0.,1.,2.,3.,4.,5.,6.,7.,4.44]),1e-12))
10685 self.assertEqual(e.getNumberOfTuples(),9)
10686 self.assertEqual(e.getNbOfElemAllocated(),9)
10687 self.assertTrue(e.isEqual(DataArrayDouble([0.,1.,2.,3.,4.,5.,6.,7.,4.44]),1e-12))
10688 self.assertAlmostEqual(d.popBackSilent(),4.44,12)
10689 self.assertEqual(d.getNumberOfTuples(),8)
10690 self.assertEqual(d.getNbOfElemAllocated(),16)
10691 self.assertTrue(d.isEqual(DataArrayDouble([0.,1.,2.,3.,4.,5.,6.,7.]),1e-12))
10692 f=DataArrayDouble()
10694 f.pushBackSilent(4.)
10695 self.assertTrue(f.isEqual(DataArrayDouble([4.]),1e-12))
10696 self.assertEqual(f.getNumberOfTuples(),1)
10697 self.assertEqual(f.getNbOfElemAllocated(),1000)
10699 self.assertTrue(ff.isEqual(DataArrayDouble([4.]),1e-12))
10700 self.assertEqual(ff.getNumberOfTuples(),1)
10701 self.assertEqual(ff.getNbOfElemAllocated(),1)
10702 d=DataArrayDouble()
10703 d.pushBackSilent(4.44)
10704 d.pushBackSilent(5.55)
10705 d.pushBackSilent(6.66)
10706 self.assertTrue(d.isEqual(DataArrayDouble([4.44,5.55,6.66]),1e-12))
10708 d=DataArrayInt(0,1)
10709 for i in xrange(8):
10710 d.pushBackSilent(i)
10712 self.assertEqual(d.getNumberOfTuples(),8)
10713 self.assertEqual(d.getNbOfElemAllocated(),8)
10714 d.pushBackSilent(444)
10715 self.assertEqual(d.getNumberOfTuples(),9)
10716 self.assertEqual(d.getNbOfElemAllocated(),16)
10717 self.assertTrue(d.isEqual(DataArrayInt([0,1,2,3,4,5,6,7,444])))
10719 self.assertEqual(e.getNumberOfTuples(),9)
10720 self.assertEqual(e.getNbOfElemAllocated(),9)
10721 self.assertTrue(e.isEqual(DataArrayInt([0,1,2,3,4,5,6,7,444])))
10722 self.assertEqual(d.popBackSilent(),444)
10723 self.assertEqual(d.getNumberOfTuples(),8)
10724 self.assertEqual(d.getNbOfElemAllocated(),16)
10725 self.assertTrue(d.isEqual(DataArrayInt([0,1,2,3,4,5,6,7])))
10728 f.pushBackSilent(4)
10729 self.assertTrue(f.isEqual(DataArrayInt([4])))
10730 self.assertEqual(f.getNumberOfTuples(),1)
10731 self.assertEqual(f.getNbOfElemAllocated(),1000)
10733 self.assertTrue(ff.isEqual(DataArrayInt([4])))
10734 self.assertEqual(ff.getNumberOfTuples(),1)
10735 self.assertEqual(ff.getNbOfElemAllocated(),1)
10737 d.pushBackSilent(444)
10738 d.pushBackSilent(555)
10739 d.pushBackSilent(666)
10740 self.assertTrue(d.isEqual(DataArrayInt([444,555,666])))
10744 d.setInfoOnComponent(0,"ABC")
10747 e=DataArrayInt([7,8,9,10,11,12,13,14,15,16]) ; e.copyStringInfoFrom(d) ; self.assertTrue(d.isEqual(e))
10748 self.assertEqual(10,d.getNbOfElemAllocated())
10749 d.pushBackSilent(55)
10750 e=DataArrayInt([7,8,9,10,11,12,13,14,15,16,55]) ; e.copyStringInfoFrom(d) ; self.assertTrue(d.isEqual(e))
10751 self.assertEqual(20,d.getNbOfElemAllocated())
10753 e=DataArrayInt([7,8,9,10]) ; e.copyStringInfoFrom(d) ; self.assertTrue(d.isEqual(e))
10754 self.assertEqual(4,d.getNbOfElemAllocated())
10755 d.pushBackSilent(5)
10756 e=DataArrayInt([7,8,9,10,5]) ; e.copyStringInfoFrom(d) ; self.assertTrue(d.isEqual(e))
10757 self.assertEqual(8,d.getNbOfElemAllocated())
10758 self.assertEqual(5,d.popBackSilent())
10759 e=DataArrayInt([7,8,9,10]) ; e.copyStringInfoFrom(d) ; self.assertTrue(d.isEqual(e))
10760 self.assertEqual(8,d.getNbOfElemAllocated())
10761 self.assertRaises(OverflowError,d.reserve,-1)
10762 e=DataArrayInt([7,8,9,10]) ; e.copyStringInfoFrom(d) ; self.assertTrue(d.isEqual(e))
10763 self.assertEqual(8,d.getNbOfElemAllocated())
10765 e=DataArrayInt([]) ; e.setInfoOnComponent(0,"ABC") ; e.setName("dEf") ; self.assertTrue(d.isEqual(e))
10766 self.assertEqual(0,d.getNbOfElemAllocated())
10768 d=DataArrayDouble()
10770 d.setInfoOnComponent(0,"ABC")
10773 e=DataArrayDouble([7,8,9,10,11,12,13,14,15,16]) ; e.copyStringInfoFrom(d) ; self.assertTrue(d.isEqual(e,1e-14))
10774 self.assertEqual(10,d.getNbOfElemAllocated())
10775 d.pushBackSilent(55)
10776 e=DataArrayDouble([7,8,9,10,11,12,13,14,15,16,55]) ; e.copyStringInfoFrom(d) ; self.assertTrue(d.isEqual(e,1e-14))
10777 self.assertEqual(20,d.getNbOfElemAllocated())
10779 e=DataArrayDouble([7,8,9,10]) ; e.copyStringInfoFrom(d) ; self.assertTrue(d.isEqual(e,1e-14))
10780 self.assertEqual(4,d.getNbOfElemAllocated())
10781 d.pushBackSilent(5)
10782 e=DataArrayDouble([7,8,9,10,5]) ; e.copyStringInfoFrom(d) ; self.assertTrue(d.isEqual(e,1e-14))
10783 self.assertEqual(8,d.getNbOfElemAllocated())
10784 self.assertEqual(5.,d.popBackSilent())
10785 e=DataArrayDouble([7,8,9,10]) ; e.copyStringInfoFrom(d) ; self.assertTrue(d.isEqual(e,1e-14))
10786 self.assertEqual(8,d.getNbOfElemAllocated())
10787 self.assertRaises(OverflowError,d.reserve,-1)
10788 e=DataArrayDouble([7,8,9,10]) ; e.copyStringInfoFrom(d) ; self.assertTrue(d.isEqual(e,1e-14))
10789 self.assertEqual(8,d.getNbOfElemAllocated())
10791 e=DataArrayDouble([]) ; e.setInfoOnComponent(0,"ABC") ; e.setName("dEf") ; self.assertTrue(d.isEqual(e,1e-14))
10792 self.assertEqual(0,d.getNbOfElemAllocated())
10795 def testDAIBuildSubstractionOptimized1(self):
10796 da1=DataArrayInt.New([1,3,5,6,7,9,13])
10797 da2=DataArrayInt.New([3,5,9])
10798 da3=DataArrayInt.New([1,3,5])
10799 da4=DataArrayInt.New([1,3,5,6,7,9,13])
10801 a=da1.buildSubstractionOptimized(da2);
10802 self.assertTrue(a.isEqual(DataArrayInt([1,6,7,13])));
10804 a=da1.buildSubstractionOptimized(da3);
10805 self.assertTrue(a.isEqual(DataArrayInt([6,7,9,13])));
10807 a=da1.buildSubstractionOptimized(da4);
10808 self.assertTrue(a.isEqual(DataArrayInt([])));
10811 def testDAIIsStrictlyMonotonic1(self):
10812 da1=DataArrayInt.New([1,3,5,6,7,9,13])
10813 self.assertTrue(da1.isStrictlyMonotonic(True));
10814 da1.checkStrictlyMonotonic(True);
10815 self.assertTrue(da1.isMonotonic(True));
10816 da1.checkMonotonic(True);
10817 self.assertTrue(not da1.isStrictlyMonotonic(False));
10818 self.assertRaises(InterpKernelException,da1.checkStrictlyMonotonic,False)
10819 self.assertTrue(not da1.isMonotonic(False));
10820 self.assertRaises(InterpKernelException,da1.checkMonotonic,False)
10822 da1=DataArrayInt.New([1,3,5,6,6,9,13])
10823 self.assertTrue(not da1.isStrictlyMonotonic(True));
10824 self.assertRaises(InterpKernelException,da1.checkStrictlyMonotonic,True)
10825 self.assertTrue(da1.isMonotonic(True));
10826 da1.checkMonotonic(True);
10827 self.assertTrue(not da1.isStrictlyMonotonic(False));
10828 self.assertRaises(InterpKernelException,da1.checkStrictlyMonotonic,False)
10829 self.assertTrue(not da1.isMonotonic(False));
10830 self.assertRaises(InterpKernelException,da1.checkMonotonic,False)
10832 da1=DataArrayInt.New([1,3,5,6,5,9,13])
10833 self.assertTrue(not da1.isStrictlyMonotonic(True));
10834 self.assertRaises(InterpKernelException,da1.checkStrictlyMonotonic,True)
10835 self.assertTrue(not da1.isMonotonic(True));
10836 self.assertRaises(InterpKernelException,da1.checkMonotonic,True)
10837 self.assertTrue(not da1.isStrictlyMonotonic(False));
10838 self.assertRaises(InterpKernelException,da1.checkStrictlyMonotonic,False)
10839 self.assertTrue(not da1.isMonotonic(False));
10840 self.assertRaises(InterpKernelException,da1.checkMonotonic,False)
10842 da1=DataArrayInt.New([13,9,7,6,5,3,1])
10843 self.assertTrue(not da1.isStrictlyMonotonic(True));
10844 self.assertRaises(InterpKernelException,da1.checkStrictlyMonotonic,True)
10845 self.assertTrue(not da1.isMonotonic(True));
10846 self.assertRaises(InterpKernelException,da1.checkMonotonic,True)
10847 self.assertTrue(da1.isStrictlyMonotonic(False));
10848 da1.checkStrictlyMonotonic(False);
10849 self.assertTrue(da1.isMonotonic(False));
10850 da1.checkMonotonic(False);
10852 da1=DataArrayInt.New([13,9,6,6,5,3,1])
10853 self.assertTrue(not da1.isStrictlyMonotonic(True));
10854 self.assertRaises(InterpKernelException,da1.checkStrictlyMonotonic,True)
10855 self.assertTrue(not da1.isMonotonic(True));
10856 self.assertRaises(InterpKernelException,da1.checkMonotonic,True)
10857 self.assertTrue(not da1.isStrictlyMonotonic(False));
10858 self.assertRaises(InterpKernelException,da1.checkStrictlyMonotonic,False)
10859 self.assertTrue(da1.isMonotonic(False));
10860 da1.checkMonotonic(False);
10862 da1=DataArrayInt.New([13,9,5,6,5,3,1])
10863 self.assertTrue(not da1.isStrictlyMonotonic(True));
10864 self.assertRaises(InterpKernelException,da1.checkStrictlyMonotonic,True)
10865 self.assertTrue(not da1.isMonotonic(True));
10866 self.assertRaises(InterpKernelException,da1.checkMonotonic,True)
10867 self.assertTrue(not da1.isStrictlyMonotonic(False));
10868 self.assertRaises(InterpKernelException,da1.checkStrictlyMonotonic,False)
10869 self.assertTrue(not da1.isMonotonic(False));
10870 self.assertRaises(InterpKernelException,da1.checkMonotonic,False)
10872 da1=DataArrayInt.New([])
10873 self.assertTrue(da1.isStrictlyMonotonic(True));
10874 da1.checkStrictlyMonotonic(True);
10875 self.assertTrue(da1.isMonotonic(True));
10876 da1.checkMonotonic(True);
10877 self.assertTrue(da1.isStrictlyMonotonic(False));
10878 da1.checkStrictlyMonotonic(False);
10879 self.assertTrue(da1.isMonotonic(False));
10880 da1.checkMonotonic(False);
10882 da1=DataArrayInt.New([13])
10883 self.assertTrue(da1.isStrictlyMonotonic(True));
10884 da1.checkStrictlyMonotonic(True);
10885 self.assertTrue(da1.isMonotonic(True));
10886 da1.checkMonotonic(True);
10887 self.assertTrue(da1.isStrictlyMonotonic(False));
10888 da1.checkStrictlyMonotonic(False);
10889 self.assertTrue(da1.isMonotonic(False));
10890 da1.checkMonotonic(False);
10893 def testFindAndCorrectBadOriented3DCells1(self):
10895 vects=([0,0,-1],[0.3,0.7,0.2],[-0.3,0.7,0.2],[-0.3,-0.7,0.2])
10897 m0=MEDCouplingUMesh("m",3) ; m0.allocateCells(0); m0.insertNextCell(NORM_TETRA4,[0,1,2,3]); #Well oriented
10898 m1=MEDCouplingUMesh("m",3) ; m1.allocateCells(0); m1.insertNextCell(NORM_PYRA5,[0,1,2,3,4]); #Well oriented
10899 m2=MEDCouplingUMesh("m",3) ; m2.allocateCells(0); m2.insertNextCell(NORM_PENTA6,[0,1,2,3,4,5]); #Well oriented
10900 m3=MEDCouplingUMesh("m",3) ; m3.allocateCells(0); m3.insertNextCell(NORM_HEXA8,[0,1,2,3,4,5,6,7]); #Well oriented
10901 m4=MEDCouplingUMesh("m",3) ; m4.allocateCells(0)
10902 self.assertRaises(InterpKernelException,m4.insertNextCell,NORM_HEXGP12,[0,1,2,3,4,5,6,7,8,9,10,11,12]);
10903 m4.insertNextCell(NORM_HEXGP12,[0,1,2,3,4,5,6,7,8,9,10,11]); #Well oriented
10904 c0=DataArrayDouble([0.,0.,0.,0.,1.,0.,1.,0.,0.,0.,0.,1.],4,3) ; m0.setCoords(c0)
10905 c1=DataArrayDouble([0.,0.,0.,0.,1.,0.,1.,1.,0.,1.,0.,0.,0.,0.,1.],5,3) ; m1.setCoords(c1)
10906 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)
10907 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)
10908 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)
10909 m=MEDCouplingMesh.MergeMeshes([m0,m1,m2,m3,m4])
10910 expected1=DataArrayDouble([0.16666666666666666,0.3333333333333333,0.5,1.,1.])
10912 for i in xrange(nbOfDisc):
10914 mm.rotate([0.,0.,0.],[0.3,0.7,0.2],float(i)/float(nbOfDisc)*2*pi)
10916 self.assertTrue(mm.getMeasureField(False).getArray().isEqual(expected1,1e-14))
10917 self.assertTrue(mm.findAndCorrectBadOriented3DCells().empty())
10918 self.assertTrue(mm.isEqual(mm2,1e-14))
10919 self.assertTrue(mm.getMeasureField(False).getArray().isEqual(expected1,1e-14))
10920 mm.convertAllToPoly()
10921 self.assertTrue(mm.getMeasureField(False).getArray().isEqual(expected1,1e-14))
10926 m0=MEDCouplingUMesh("m",3) ; m0.allocateCells(0); m0.insertNextCell(NORM_TETRA4,[0,2,1,3]); #Not well oriented
10927 m1=MEDCouplingUMesh("m",3) ; m1.allocateCells(0); m1.insertNextCell(NORM_PYRA5,[0,1,2,3,4]); #Well oriented
10928 m2=MEDCouplingUMesh("m",3) ; m2.allocateCells(0); m2.insertNextCell(NORM_PENTA6,[0,1,2,3,4,5]); #Well oriented
10929 m3=MEDCouplingUMesh("m",3) ; m3.allocateCells(0); m3.insertNextCell(NORM_HEXA8,[0,3,2,1,4,7,6,5]); #Not well oriented
10930 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
10931 m0.setCoords(c0) ; m1.setCoords(c1) ; m2.setCoords(c2) ; m3.setCoords(c3) ; m4.setCoords(c4)
10932 m=MEDCouplingMesh.MergeMeshes([m0,m1,m2,m3,m4])
10933 expected2=DataArrayDouble([-0.16666666666666666,0.3333333333333333,0.5,-1.,-1.])
10935 for i in xrange(nbOfDisc):
10937 mm.rotate([0.,0.,0.],[0.3,0.7,0.2],float(i)/float(nbOfDisc)*2*pi)
10938 mm2=mm.deepCpy() ; mm3=mm.deepCpy() ; mm3.convertAllToPoly()
10939 self.assertTrue(mm3.getMeasureField(False).getArray().isEqual(expected2,1e-14))
10940 self.assertTrue(mm.getMeasureField(False).getArray().isEqual(expected2,1e-14))
10941 self.assertTrue(mm.findAndCorrectBadOriented3DCells().isEqual(DataArrayInt([0,3,4])))
10942 mOK.setCoords(mm.getCoords())
10943 self.assertTrue(mm.isEqual(mOK,1e-14))
10944 self.assertTrue(mm.getMeasureField(False).getArray().isEqual(expected1,1e-14))
10946 self.assertTrue(mmm.findAndCorrectBadOriented3DCells().empty())
10947 mm.convertAllToPoly()
10948 self.assertTrue(mm.getMeasureField(False).getArray().isEqual(expected1,1e-14))
10952 m0=MEDCouplingUMesh("m",3) ; m0.allocateCells(0); m0.insertNextCell(NORM_TETRA4,[0,1,2,3]); #Well oriented
10953 m1=MEDCouplingUMesh("m",3) ; m1.allocateCells(0); m1.insertNextCell(NORM_PYRA5,[0,3,2,1,4]); #Not well oriented
10954 m2=MEDCouplingUMesh("m",3) ; m2.allocateCells(0); m2.insertNextCell(NORM_PENTA6,[0,2,1,3,5,4]); #Not well oriented
10955 m3=MEDCouplingUMesh("m",3) ; m3.allocateCells(0); m3.insertNextCell(NORM_HEXA8,[0,1,2,3,4,5,6,7]); #Well oriented
10956 m4=MEDCouplingUMesh("m",3) ; m4.allocateCells(0); m4.insertNextCell(NORM_HEXGP12,range(12)); #Well oriented
10957 m0.setCoords(c0) ; m1.setCoords(c1) ; m2.setCoords(c2) ; m3.setCoords(c3) ; m4.setCoords(c4)
10958 m=MEDCouplingMesh.MergeMeshes([m0,m1,m2,m3,m4])
10959 expected3=DataArrayDouble([0.16666666666666666,-0.3333333333333333,-0.5,1.,1.])
10961 for i in xrange(nbOfDisc):
10963 mm.rotate([0.,0.,0.],[0.3,0.7,0.2],float(i)/float(nbOfDisc)*2*pi)
10964 mm2=mm.deepCpy() ; mm3=mm.deepCpy() ; mm3.convertAllToPoly()
10965 self.assertTrue(mm3.getMeasureField(False).getArray().isEqual(expected3,1e-14))
10966 self.assertTrue(mm.getMeasureField(False).getArray().isEqual(expected3,1e-14))
10967 self.assertTrue(mm.findAndCorrectBadOriented3DCells().isEqual(DataArrayInt([1,2])))
10968 mOK.setCoords(mm.getCoords())
10969 self.assertTrue(mm.isEqual(mOK,1e-14))
10970 self.assertTrue(mm.getMeasureField(False).getArray().isEqual(expected1,1e-14))
10972 self.assertTrue(mmm.findAndCorrectBadOriented3DCells().empty())
10973 mm.convertAllToPoly()
10974 self.assertTrue(mm.getMeasureField(False).getArray().isEqual(expected1,1e-14))
10979 def testSwig2CellOrientation1(self):
10980 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)
10981 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]]
10982 for i in xrange(256):
10983 mesh=MEDCouplingUMesh("FluidMesh_1",3);
10984 mesh.allocateCells(0)
10985 conn2=[elt[:] for elt in conn]
10986 code=bin(i)[2:] ; code='0'*(8-len(code))+code
10987 for face,rev in zip(conn2,code):
10992 conn3=[elt+[-1] for elt in conn2]
10993 conn3=sum(conn3,[])[:-1]
10994 mesh.insertNextCell(NORM_POLYHED,conn3)
10995 mesh.setCoords(coords)
10996 mesh.orientCorrectlyPolyhedrons()
10997 self.assertTrue(mesh.getBarycenterAndOwner().isEqual(DataArrayDouble([-0.10803,0.,0.3385],1,3),1e-12))
11001 def testSwig2CheckConsecutiveCellTypesForMEDFileFrmt1(self):
11002 m1=MEDCouplingUMesh("",2) ; m1.allocateCells(0)
11003 m1.insertNextCell(NORM_QUAD4,[0,1,2,3])
11004 m1.insertNextCell(NORM_TRI3,[0,1,2])
11005 d=DataArrayDouble(4,3) ; d[:]=0.
11007 self.assertTrue(m1.checkConsecutiveCellTypes())
11008 self.assertTrue(not m1.checkConsecutiveCellTypesForMEDFileFrmt())
11009 m1.renumberCells([1,0])
11010 self.assertTrue(m1.checkConsecutiveCellTypes())
11011 self.assertTrue(m1.checkConsecutiveCellTypesForMEDFileFrmt())
11014 def testSwig2DAAccumulate1(self):
11015 d=DataArrayInt(10) ; d.iota(0)
11016 self.assertEqual([45],d.accumulate())
11017 self.assertEqual(45,d.accumulate(0))
11018 d=DataArrayInt(30) ; d.iota(0) ; d.rearrange(3)
11019 self.assertEqual([135,145,155],d.accumulate())
11020 self.assertEqual(135,d.accumulate(0))
11021 self.assertEqual(145,d.accumulate(1))
11022 self.assertEqual(155,d.accumulate(2))
11023 d=DataArrayDouble(10) ; d.iota(0.)
11024 self.assertEqual([45.],d.accumulate())
11025 self.assertEqual(45.,d.accumulate(0))
11026 d=DataArrayDouble(30) ; d.iota(0) ; d.rearrange(3)
11027 self.assertEqual([135.,145.,155.],d.accumulate())
11028 self.assertEqual(135.,d.accumulate(0))
11029 self.assertEqual(145.,d.accumulate(1))
11030 self.assertEqual(155.,d.accumulate(2))
11033 def testSwig2UMeshDistanceToMesh1(self):
11034 m=MEDCouplingUMesh("toto",2)
11035 coords=DataArrayDouble([2.3,3.4,5.6,6.5,-4.3,3.2,-9.8,7.6,-5.4],3,3)
11036 m.setCoords(coords)
11038 m.insertNextCell(NORM_TRI3,[0,1,2])
11039 a,b=m.distanceToPoint([-0.335,2.27,1.21])
11040 self.assertEqual(0,b)
11041 self.assertAlmostEqual(0.022360988100374124,a,14);
11042 a,b=m.distanceToPoint(DataArrayDouble([-0.335,2.27,1.21],1,3))
11043 self.assertEqual(0,b)
11044 self.assertAlmostEqual(0.022360988100374124,a,14);
11045 a,b=coords.distanceToTuple([-0.335,2.27,1.21])
11046 self.assertAlmostEqual(5.243302871282566,a,14)
11047 self.assertEqual(0,b)
11049 m=MEDCouplingUMesh("toto",2)
11050 coords=DataArrayDouble([0.,0.,0., 8.,0.,0., 8.,8.,0., 0.,8.,0.],4,3)
11051 m.setCoords(coords)
11053 m.insertNextCell(NORM_QUAD4,[0,1,2,3])
11054 m.checkCoherency2()
11055 self.assertEqual([4,0,1,2,3],m.getNodalConnectivity().getValues())
11056 a,b=m.distanceToPoint([5.,2.,0.1])
11057 self.assertAlmostEqual(0.1,a,14) ; self.assertEqual(0,b)
11058 a,b=m.distanceToPoint([5.,-2.,4.])
11059 self.assertAlmostEqual(sqrt(2*2+4*4),a,14) ; self.assertEqual(0,b)
11061 m.insertNextCell(NORM_POLYGON,[0,1,2,3])
11062 m.checkCoherency2()
11063 self.assertEqual([5,0,1,2,3],m.getNodalConnectivity().getValues())
11064 a,b=m.distanceToPoint([11.,3.,4.])
11065 self.assertAlmostEqual(sqrt(3*3+4*4),a,14) ; self.assertEqual(0,b)
11066 a,b=m.distanceToPoint([4.,12.,5.])
11067 self.assertAlmostEqual(sqrt(4*4+5*5),a,14) ; self.assertEqual(0,b)
11068 d=DataArrayDouble([-1.2,3.,2.],1,3)
11070 a,b=m.distanceToPoint(d)
11071 self.assertAlmostEqual(sqrt(1.2*1.2+2*2),a,14) ; self.assertEqual(0,b)
11074 m=MEDCouplingUMesh("toto",1)
11075 coords=DataArrayDouble([0.,0.,4.,0.,0.,4.],3,2) ; m.setCoords(coords)
11076 m.allocateCells(0) ; m.insertNextCell(NORM_SEG2,[0,1]) ; m.insertNextCell(NORM_SEG2,[1,2])
11077 a,b=m.distanceToPoint([-0.1,4.1])
11078 self.assertAlmostEqual(0.14142135623730925,a,14) # b==1 self.assertEqual(2,c)
11079 a,b=m.distanceToPoint([0.,3.9])
11080 self.assertAlmostEqual(0.07071067811865482,a,14) ; self.assertEqual(1,b) # self.assertEqual(2,c)
11083 def testSwig2NonRegressionPartitionBySpreadZone1(self):
11084 m=MEDCouplingCMesh()
11085 arr=DataArrayDouble(6) ; arr.iota(0.)
11086 m.setCoords(arr,arr,arr)
11087 m=m.buildUnstructured()
11088 mPart=m[50,80,85,87,92,122]
11089 zones=mPart.partitionBySpreadZone()
11090 self.assertEqual(4,len(zones))
11091 self.assertTrue(zones[0].isEqual(DataArrayInt([0])))
11092 self.assertTrue(zones[1].isEqual(DataArrayInt([1,2])))
11093 self.assertTrue(zones[2].isEqual(DataArrayInt([3,4])))
11094 self.assertTrue(zones[3].isEqual(DataArrayInt([5])))
11096 n,ni=m.computeNeighborsOfCells()
11097 a,b=MEDCouplingUMesh.ComputeSpreadZoneGraduallyFromSeed(0,n,ni)
11098 self.assertEqual(13,b) ; self.assertEqual(125,len(a)) ; self.assertTrue(a.isIdentity())
11099 a,b=MEDCouplingUMesh.ComputeSpreadZoneGraduallyFromSeed([1],n,ni)
11100 self.assertEqual(12,b) ; self.assertEqual(125,len(a)) ; self.assertTrue(a.isIdentity())
11101 a,b=MEDCouplingUMesh.ComputeSpreadZoneGraduallyFromSeed((2,),n,ni)
11102 self.assertEqual(11,b) ; self.assertEqual(125,len(a)) ; self.assertTrue(a.isIdentity())
11103 a,b=MEDCouplingUMesh.ComputeSpreadZoneGraduallyFromSeed(DataArrayInt([3]),n,ni)
11104 self.assertEqual(12,b) ; self.assertEqual(125,len(a)) ; self.assertTrue(a.isIdentity())
11107 def testSwigUMeshInsertNextCell1(self):
11108 m=MEDCouplingUMesh("toto",2)
11110 coords=DataArrayDouble([0.,0.,1.,1.,1.,0.]) ; m.setCoords(coords)
11111 da=DataArrayInt([0,1,2])
11113 for i in xrange(5):
11114 m.insertNextCell(NORM_TRI3,da)
11116 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])))
11117 self.assertTrue(m.getNodalConnectivityIndex().isEqual(DataArrayInt([0,4,8,12,16,20])))
11119 da=DataArrayInt([0,1,2,3])
11121 for i in xrange(5):
11122 m.insertNextCell(NORM_TRI3,3,da)
11124 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])))
11125 self.assertTrue(m.getNodalConnectivityIndex().isEqual(DataArrayInt([0,4,8,12,16,20])))
11127 da=DataArrayInt([0,1])
11129 self.assertRaises(InterpKernelException,m.insertNextCell,NORM_TRI3,3,da)
11131 da=DataArrayInt([0,1,2,0,1,3,0,1,4,0,1,5,0,1,6],5,3)
11134 m.insertNextCell(NORM_TRI3,t)
11136 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])))
11137 self.assertTrue(m.getNodalConnectivityIndex().isEqual(DataArrayInt([0,4,8,12,16,20])))
11138 self.assertRaises(InterpKernelException,m.insertNextCell,NORM_TRI3,None)
11141 def testSwigCurveLinearMesh1(self):
11142 m=MEDCouplingCurveLinearMesh("toto")
11143 m.setNodeGridStructure([2,3])
11144 coords=DataArrayDouble([0.,0., 2.,0., 0.,1., 1.9,1.1, 0.3,1.9, 2.2,2.1],6,2)
11145 m.setCoords(coords)
11148 self.assertTrue(m0.isEqual(m,1e-12))
11149 m.getCoords().setInfoOnComponents(["X [m]","Y [m]"])
11150 self.assertTrue(not m0.isEqual(m,1e-12))
11152 self.assertTrue(m0.isEqual(m,1e-12))
11153 self.assertEqual(m.getNodeGridStructure(),(2,3))
11156 def testSimplexize3(self):
11157 m=MEDCouplingUMesh("toto",3)
11159 m.insertNextCell(NORM_TETRA4,[0,1,2,3])
11160 self.assertEqual([NORM_TETRA4],m.getAllGeoTypesSorted())
11161 m.insertNextCell(NORM_HEXA8,[4,5,6,7,8,9,10,11])
11162 self.assertEqual([NORM_TETRA4,NORM_HEXA8],m.getAllGeoTypesSorted())
11163 m.insertNextCell(NORM_HEXA8,[12,13,14,15,16,17,18,19])
11164 self.assertEqual([NORM_TETRA4,NORM_HEXA8],m.getAllGeoTypesSorted())
11165 m.insertNextCell(NORM_TETRA4,[20,21,22,23])
11166 self.assertEqual([NORM_TETRA4,NORM_HEXA8,NORM_TETRA4],m.getAllGeoTypesSorted())
11167 c1=DataArrayDouble([0.,0.,0.,0.,1.,0.,1.,0.,0.,0.,0.,1.],4,3)
11168 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.]
11171 c=DataArrayDouble.Aggregate([c1,c2,c3,c4])
11173 m.checkCoherency2()
11176 d1=m1.simplexize(PLANAR_FACE_5)
11177 m1.checkCoherency2()
11178 vol1=m1.getMeasureField(ON_CELLS).getArray()
11179 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))
11180 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])
11181 self.assertEqual(m1.getNodalConnectivityIndex().getValues(),[0,5,10,15,20,25,30,35,40,45,50,55,60])
11182 self.assertTrue(d1.isEqual(DataArrayInt([0,1,1,1,1,1,2,2,2,2,2,3])))
11185 d2=m2.simplexize(PLANAR_FACE_6)
11186 m2.checkCoherency2()
11187 vol2=m2.getMeasureField(ON_CELLS).getArray()
11188 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))
11189 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])
11190 self.assertEqual(m2.getNodalConnectivityIndex().getValues(),[0,5,10,15,20,25,30,35,40,45,50,55,60,65,70])
11191 self.assertTrue(d2.isEqual(DataArrayInt([0,1,1,1,1,1,1,2,2,2,2,2,2,3])))
11194 def testSwig2CurveLinearMesh2(self):
11195 c=MEDCouplingCMesh()
11197 arr1=DataArrayDouble([0,1,3,7])
11198 arr2=DataArrayDouble([0,1,1.5])
11199 c.setCoords(arr1,arr2)
11200 u=c.buildUnstructured()
11202 cl=MEDCouplingCurveLinearMesh()
11204 cl.setNodeGridStructure([4,3])
11205 cl.checkCoherency2()
11206 li1=[1.,2.,4.,0.5,1.,2.]
11207 self.assertTrue(cl.getMeasureField(False).getArray().isEqual(DataArrayDouble(li1),1e-14))
11208 self.assertTrue(u.getMeasureField(False).getArray().isEqual(DataArrayDouble(li1),1e-14))
11209 li1_1=[0.5,0.5,2.,0.5,5.,0.5,0.5,1.25,2.,1.25,5.,1.25]
11210 self.assertTrue(cl.getBarycenterAndOwner().isEqual(DataArrayDouble(li1_1,6,2),1e-14))
11211 self.assertTrue(u.getBarycenterAndOwner().isEqual(DataArrayDouble(li1_1,6,2),1e-14))
11213 c.setCoords(arr1,arr2,arr2)
11214 u=c.buildUnstructured()
11216 cl=MEDCouplingCurveLinearMesh()
11218 cl.setNodeGridStructure([4,3,3])
11219 cl.checkCoherency2()
11220 li2=[1.,2.,4.,0.5, 1.,2.,0.5,1.,2.,0.25,0.5,1.]
11221 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]
11222 self.assertTrue(cl.getMeasureField(False).getArray().isEqual(DataArrayDouble(li2),1e-14))
11223 self.assertTrue(u.getMeasureField(False).getArray().isEqual(DataArrayDouble(li2),1e-14))
11224 self.assertTrue(cl.getBarycenterAndOwner().isEqual(DataArrayDouble(li2_1,12,3),1e-14))
11225 self.assertTrue(u.getBarycenterAndOwner().isEqual(DataArrayDouble(li2_1,12,3),1e-14))
11227 coo=DataArrayDouble(5) ; coo.iota(0.)
11230 cl.setNodeGridStructure([5])
11231 cl.checkCoherency2()
11233 li3_1=[0.5,2.5,6.5,12.5]
11234 self.assertTrue(cl.getMeasureField(False).getArray().isEqual(DataArrayDouble(li3),1e-14))
11235 self.assertTrue(cl.buildUnstructured().getMeasureField(False).getArray().isEqual(DataArrayDouble(li3),1e-14))
11236 self.assertTrue(cl.getBarycenterAndOwner().isEqual(DataArrayDouble(li3_1),1e-14))
11237 self.assertTrue(cl.buildUnstructured().getBarycenterAndOwner().isEqual(DataArrayDouble(li3_1),1e-14))
11239 coo=DataArrayDouble.Meld(coo,coo)
11241 cl.checkCoherency2()
11242 li4=[sqrt(2.)*elt for elt in [1.,3.,5.,7.]]
11243 li4_1=[0.5,0.5,2.5,2.5,6.5,6.5,12.5,12.5]
11244 self.assertEqual(2,cl.getSpaceDimension())
11245 self.assertEqual(1,cl.getMeshDimension())
11246 self.assertEqual(4,cl.getNumberOfCells())
11247 self.assertEqual(5,cl.getNumberOfNodes())
11248 self.assertTrue(cl.getMeasureField(False).getArray().isEqual(DataArrayDouble(li4),1e-14))
11249 self.assertTrue(cl.buildUnstructured().getMeasureField(False).getArray().isEqual(DataArrayDouble(li4),1e-14))
11250 self.assertTrue(cl.getBarycenterAndOwner().isEqual(DataArrayDouble(li4_1,4,2),1e-14))
11251 self.assertTrue(cl.buildUnstructured().getBarycenterAndOwner().isEqual(DataArrayDouble(li4_1,4,2),1e-14))
11254 def testSwig2CurveLinearMeshNonRegression1(self):
11255 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)
11256 m=MEDCouplingCurveLinearMesh("toto")
11257 m.setCoords(coords)
11258 m.setNodeGridStructure([3,3,3])
11260 vol=m.getMeasureField(False).getArray()
11261 self.assertTrue(vol.isEqual(DataArrayDouble([0.11450000709295281, 0.10583334351579375,0.11149999939029423,0.08866666863113633, 0.1404166805123294,0.1250000135352219,0.1270833433481557,0.13258334288001067]),1e-12))
11262 self.assertTrue(vol.isEqual(m.buildUnstructured().getMeasureField(False).getArray(),1e-12))
11264 self.assertTrue(m.getBarycenterAndOwner().isEqual(m.buildUnstructured().getBarycenterAndOwner(),1e-12))
11267 def testSwig2NonRegressionDASetSelectedComponents1(self):
11268 da=DataArrayDouble.New([1.,2.,3.,4.,5.,6.],3,2)
11269 dv=DataArrayDouble.New();
11272 # da has less tuples than dv
11273 dv.setSelectedComponents(da,[1,0])
11275 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))
11277 da=DataArrayInt.New([1,2,3,4,5,6],3,2)
11278 dv=DataArrayInt.New();
11281 # da has less tuples than dv
11282 dv.setSelectedComponents(da,[1,0])
11284 self.assertTrue(dv.isEqual(DataArrayInt([2,1,0,0,4,3,0,0,6,5,0,0,0,0,0,0],4,4)))
11287 def testSwigSetItem3(self):
11289 d=DataArrayDouble([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11291 self.assertTrue(d.isEqual(DataArrayDouble([0,0,0,0,0,0,1,2,0,0,0,0],6,2),1e-14))
11293 d=DataArrayDouble([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11295 self.assertTrue(d.isEqual(DataArrayDouble([0,0,0,0,1,2,1,2,0,0,1,2],6,2),1e-14))
11297 d=DataArrayDouble([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11299 self.assertTrue(d.isEqual(DataArrayDouble([1,2,1,2,1,2,1,2,1,2,1,2],6,2),1e-14))
11301 d=DataArrayDouble([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11302 d[DataArrayInt([0,3,4])]=[1,2]
11303 self.assertTrue(d.isEqual(DataArrayDouble([1,2,0,0,0,0,1,2,1,2,0,0],6,2),1e-14))
11305 d=DataArrayDouble([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11307 self.assertTrue(d.isEqual(DataArrayDouble([0,0,0,0,0,0,0,0,0,0,0,7],6,2),1e-14))
11309 d=DataArrayDouble([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11311 self.assertTrue(d.isEqual(DataArrayDouble([0,0,0,0,0,0,0,7,0,0,0,7],6,2),1e-14))
11313 d=DataArrayDouble([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11315 self.assertTrue(d.isEqual(DataArrayDouble([0,7,0,0,0,7,0,0,0,7,0,0],6,2),1e-14))
11317 d=DataArrayDouble([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11318 d[DataArrayInt([0,3,4]),1]=[7]
11319 self.assertTrue(d.isEqual(DataArrayDouble([0,7,0,0,0,0,0,7,0,7,0,0],6,2),1e-14))
11321 d=DataArrayDouble([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11323 self.assertTrue(d.isEqual(DataArrayDouble([0,0,0,0,0,0,8,7,0,0,0,0],6,2),1e-14))
11325 d=DataArrayDouble([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11326 d[[1,3,4],[1,0]]=[7,8]
11327 self.assertTrue(d.isEqual(DataArrayDouble([0,0,8,7,0,0,8,7,8,7,0,0],6,2),1e-14))
11329 d=DataArrayDouble([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11330 d[1::2,[1,0]]=[7,8]
11331 self.assertTrue(d.isEqual(DataArrayDouble([0,0,8,7,0,0,8,7,0,0,8,7],6,2),1e-14))
11333 d=DataArrayDouble([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11334 d[DataArrayInt([1,4]),[1,0]]=[7,8]
11335 self.assertTrue(d.isEqual(DataArrayDouble([0,0,8,7,0,0,0,0,8,7,0,0],6,2),1e-14))
11337 d=DataArrayDouble([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11339 self.assertTrue(d.isEqual(DataArrayDouble([0,0,9,0,0,0,0,0,0,0,0,0],6,2),1e-14))
11341 d=DataArrayDouble([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11343 self.assertTrue(d.isEqual(DataArrayDouble([0,0,7,8,0,0,0,0,7,8,7,8],6,2),1e-14))
11345 d=DataArrayDouble([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11347 self.assertTrue(d.isEqual(DataArrayDouble([0,0,3,9,0,0,3,9,0,0,3,9],6,2),1e-14))
11349 d=DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11351 self.assertTrue(d.isEqual(DataArrayInt([0,0,0,0,0,0,1,2,0,0,0,0],6,2)))
11353 d=DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11355 self.assertTrue(d.isEqual(DataArrayInt([0,0,0,0,1,2,1,2,0,0,1,2],6,2)))
11357 d=DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11359 self.assertTrue(d.isEqual(DataArrayInt([1,2,1,2,1,2,1,2,1,2,1,2],6,2)))
11361 d=DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11362 d[DataArrayInt([0,3,4])]=[1,2]
11363 self.assertTrue(d.isEqual(DataArrayInt([1,2,0,0,0,0,1,2,1,2,0,0],6,2)))
11365 d=DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11367 self.assertTrue(d.isEqual(DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,7],6,2)))
11369 d=DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11371 self.assertTrue(d.isEqual(DataArrayInt([0,0,0,0,0,0,0,7,0,0,0,7],6,2)))
11373 d=DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11375 self.assertTrue(d.isEqual(DataArrayInt([0,7,0,0,0,7,0,0,0,7,0,0],6,2)))
11377 d=DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11378 d[DataArrayInt([0,3,4]),1]=[7]
11379 self.assertTrue(d.isEqual(DataArrayInt([0,7,0,0,0,0,0,7,0,7,0,0],6,2)))
11381 d=DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11383 self.assertTrue(d.isEqual(DataArrayInt([0,0,0,0,0,0,8,7,0,0,0,0],6,2)))
11385 d=DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11386 d[[1,3,4],[1,0]]=[7,8]
11387 self.assertTrue(d.isEqual(DataArrayInt([0,0,8,7,0,0,8,7,8,7,0,0],6,2)))
11389 d=DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11390 d[1::2,[1,0]]=[7,8]
11391 self.assertTrue(d.isEqual(DataArrayInt([0,0,8,7,0,0,8,7,0,0,8,7],6,2)))
11393 d=DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11394 d[DataArrayInt([1,4]),[1,0]]=[7,8]
11395 self.assertTrue(d.isEqual(DataArrayInt([0,0,8,7,0,0,0,0,8,7,0,0],6,2)))
11397 d=DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11399 self.assertTrue(d.isEqual(DataArrayInt([0,0,9,0,0,0,0,0,0,0,0,0],6,2)))
11401 d=DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11403 self.assertTrue(d.isEqual(DataArrayInt([0,0,7,8,0,0,0,0,7,8,7,8],6,2)))
11405 d=DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,0],6,2)
11407 self.assertTrue(d.isEqual(DataArrayInt([0,0,3,9,0,0,3,9,0,0,3,9],6,2)))
11410 def testSwig2ConvertLinearCellsToQuadratic1(self):
11411 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)
11413 m2D=MEDCouplingDataForTest.build2DTargetMesh_1()
11414 m2D.convertLinearCellsToQuadratic(0)
11415 m2D.checkCoherency1()
11416 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])
11417 self.assertEqual(m2D.getNodalConnectivityIndex().getValues(),[0,9,16,23,32,41])
11418 self.assertTrue(m2D.getCoords().isEqual(coordsExp,1e-14))
11420 m1D=MEDCouplingDataForTest.build2DTargetMesh_1().buildDescendingConnectivity()[0]
11421 m1D.convertLinearCellsToQuadratic(0)
11422 m1D.checkCoherency1()
11423 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])
11424 self.assertEqual(m1D.getNodalConnectivityIndex().getValues(),[0,4,8,12,16,20,24,28,32,36,40,44,48,52])
11425 self.assertTrue(m1D.getCoords().isEqual(coordsExp,1e-14))
11427 m2D=MEDCouplingDataForTest.build2DTargetMesh_1()
11428 m2D.changeSpaceDimension(3)
11429 arr=DataArrayDouble(4); arr.iota(0) ; z=MEDCouplingCMesh() ; z.setCoords(arr)
11430 m1D=z.buildUnstructured() ; m1D.setCoords(arr.changeNbOfComponents(3,0.))
11431 m1D.getCoords()[:]=m1D.getCoords()[:,[1,2,0]]
11432 cooTmp=m2D.getCoords()[:]
11433 m3D=m2D.buildExtrudedMesh(m1D,0)
11434 m3D.convertLinearCellsToQuadratic(0)
11435 m3D.checkCoherency1()
11436 # check of new m3D content
11437 coordsExp2=[coordsExp.changeNbOfComponents(3,i) for i in xrange(4)]
11438 coordsExp3=[DataArrayDouble.Meld(cooTmp[:,[0,1]],cooTmp[:,2]+(0.5+float(i))) for i in xrange(3)]
11439 coordsExp4=DataArrayDouble.Aggregate([coordsExp2[0],coordsExp3[0],coordsExp2[1],coordsExp3[1],coordsExp2[2],coordsExp3[2],coordsExp2[3]])
11440 c=DataArrayDouble.Aggregate(m3D.getCoords(),coordsExp4)
11441 self.assertEqual(len(coordsExp4),115)
11442 self.assertEqual(len(m3D.getCoords()),115)
11443 a,b=c.findCommonTuples(1e-14)
11444 self.assertEqual(len(b),len(coordsExp4)+1)
11445 e,f=DataArrayInt.BuildOld2NewArrayFromSurjectiveFormat2(2*115,a,b)
11446 self.assertEqual(f,115)
11447 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])))
11448 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()))
11449 self.assertTrue(DataArrayInt([0,21,37,53,74,95,116,132,148,169,190,211,227,243,264,285]).isEqual(m3D.getNodalConnectivityIndex()))
11450 # testing explode3DMeshTo1D
11452 m3DSlice0.zipCoords()
11453 a,b,c,d,e=m3DSlice0.explode3DMeshTo1D()
11454 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])))
11455 self.assertTrue(c.isEqual(DataArrayInt([0,12,21,30,42,54])))
11456 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])))
11457 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])))
11458 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])))
11459 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])))
11460 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))
11463 def testSwig2DataArrayPushBackValsSilent1(self):
11464 d=DataArrayDouble()
11465 d.pushBackValsSilent([4,5,6])
11466 self.assertTrue(d.isEqual(DataArrayDouble([4.,5.,6.]),1e-14))
11467 e=DataArrayDouble([1,2,3],1,3)
11468 for t in e: d.pushBackValsSilent(t)
11469 self.assertTrue(d.isEqual(DataArrayDouble([4.,5.,6.,1.,2.,3.]),1e-14))
11470 d.pushBackValsSilent(DataArrayDouble([9,10.]))
11471 self.assertTrue(d.isEqual(DataArrayDouble([4.,5.,6.,1.,2.,3.,9.,10.]),1e-14))
11472 d.pushBackValsSilent(DataArrayDouble(0,1))
11473 self.assertTrue(d.isEqual(DataArrayDouble([4.,5.,6.,1.,2.,3.,9.,10.]),1e-14))
11474 e=DataArrayDouble([1,2,3],3,1)
11475 for t in e: d.pushBackValsSilent(t)
11476 self.assertTrue(d.isEqual(DataArrayDouble([4.,5.,6.,1.,2.,3.,9.,10.,1.,2.,3.]),1e-14))
11477 d.pushBackValsSilent(77)
11478 self.assertTrue(d.isEqual(DataArrayDouble([4.,5.,6.,1.,2.,3.,9.,10.,1.,2.,3.,77.]),1e-14))
11481 d.pushBackValsSilent([4,5,6])
11482 self.assertTrue(d.isEqual(DataArrayInt([4,5,6])))
11483 e=DataArrayInt([1,2,3],1,3)
11484 for t in e: d.pushBackValsSilent(t)
11485 self.assertTrue(d.isEqual(DataArrayInt([4,5,6,1,2,3])))
11486 d.pushBackValsSilent(DataArrayInt([9,10]))
11487 self.assertTrue(d.isEqual(DataArrayInt([4,5,6,1,2,3,9,10])))
11488 d.pushBackValsSilent(DataArrayInt(0,1))
11489 self.assertTrue(d.isEqual(DataArrayInt([4,5,6,1,2,3,9,10])))
11490 e=DataArrayInt([1,2,3],3,1)
11491 for t in e: d.pushBackValsSilent(t)
11492 self.assertTrue(d.isEqual(DataArrayInt([4,5,6,1,2,3,9,10,1,2,3])))
11493 d.pushBackValsSilent(77)
11494 self.assertTrue(d.isEqual(DataArrayInt([4,5,6,1,2,3,9,10,1,2,3,77])))
11497 def testSwig2ConvertLinearCellsToQuadratic2(self):
11498 m2D=MEDCouplingDataForTest.build2DTargetMesh_1()
11499 ret=m2D.convertLinearCellsToQuadratic(1)
11500 self.assertTrue(ret.isIdentity())
11501 self.assertEqual(5,len(ret))
11502 m2D.checkCoherency1()
11503 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)
11504 self.assertTrue(m2D.getCoords().isEqual(coordsExp,1e-14))
11505 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])))
11506 self.assertTrue(m2D.getNodalConnectivityIndex().isEqual(DataArrayInt([0,10,18,26,36,46])))
11508 m2D=MEDCouplingDataForTest.build2DTargetMesh_1()[(0,3)] ; m2D.zipCoords()
11509 m2D.changeSpaceDimension(3)
11510 arr=DataArrayDouble(3); arr.iota(0) ; z=MEDCouplingCMesh() ; z.setCoords(arr)
11511 m1D=z.buildUnstructured() ; m1D.setCoords(arr.changeNbOfComponents(3,0.))
11512 m1D.getCoords()[:]=m1D.getCoords()[:,[1,2,0]]
11513 cooTmp=m2D.getCoords()[:]
11514 m3D=m2D.buildExtrudedMesh(m1D,0)
11515 ret=m3D.convertLinearCellsToQuadratic(1)
11516 self.assertTrue(ret.isIdentity())
11517 self.assertEqual(4,len(ret))
11518 m3D.checkCoherency1()
11519 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)
11520 self.assertTrue(m3D.getCoords().isEqual(coordsExp2,1e-14))
11521 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])))
11522 self.assertTrue(m3D.getNodalConnectivityIndex().isEqual(DataArrayInt([0,28,56,84,112])))
11525 def testSwig2GaussNEIntegral1(self):
11526 m2D=MEDCouplingDataForTest.build2DTargetMesh_1()
11527 m0=m2D[0] ; m0.zipCoords()
11528 m1=m2D[[1,2]] ; m1.zipCoords()
11529 m2=m2D[[3,4]] ; m2.zipCoords()
11530 m0.convertLinearCellsToQuadratic(1)
11531 m1.convertLinearCellsToQuadratic(0)
11532 m2.convertLinearCellsToQuadratic(1)
11533 m=MEDCouplingUMesh.MergeUMeshes([m0,m1,m2])
11534 m.mergeNodes(1e-12)
11535 f=MEDCouplingFieldDouble(ON_GAUSS_NE)
11537 arr=DataArrayDouble([1.1,2.2,3.3,4.4,5.5,6.6,7.7,8.8,9.9,
11538 11.1,12.2,13.3,14.4,15.5,16.6,
11539 21.1,22.2,23.3,24.4,25.5,26.6,
11540 31.1,32.2,33.3,34.4,35.5,36.6,37.7,38.8,39.9,
11541 41.1,42.2,43.3,44.4,45.5,46.6,47.7,48.8,49.9])
11542 arr2=DataArrayDouble(len(arr),2)
11543 arr2[:,0]=arr ; arr2[:,1]=arr+100
11546 res=f.integral(False)
11547 # a=25./81 ; b=40./81 ; c=64./81
11548 # p1=0.11169079483905 ; p2=0.0549758718227661
11550 # 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
11551 # c1=(p2*(11.1+12.2+13.3)+p1*(14.4+15.5+16.6))*0.125/0.4999999999854482 ; c1=1.8014347172346943
11552 # c2=(p2*(21.1+22.2+23.3)+p1*(24.4+25.5+26.6))*0.125/0.4999999999854482 ; c2=3.0514347172346943
11553 # 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
11554 # 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
11555 # c0+c1+c2+c3+c4=27.104258323358287
11556 integExp0=27.104258323358287
11557 self.assertAlmostEqual(res[0],integExp0,13)
11559 # 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
11560 # c1=(p2*(111.1+112.2+113.3)+p1*(114.4+115.5+116.6))*0.125/0.4999999999854482 ; c1=14.301434717234699
11561 # c2=(p2*(121.1+122.2+123.3)+p1*(124.4+125.5+126.6))*0.125/0.4999999999854482 ; c2=15.5514347172347
11562 # 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
11563 # 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
11564 # c0+c1+c2+c3+c4=127.10425832335835
11565 integExp1=127.10425832335835
11566 self.assertAlmostEqual(res[1],integExp1,12)
11567 meas=f.getDiscretization().getMeasureField(f.getMesh(),False)
11569 res2=intPerTuple.accumulate()
11570 self.assertAlmostEqual(res2[0],integExp0,13)
11571 self.assertAlmostEqual(res2[1],integExp1,12)
11573 meas2=f.buildMeasureField(False)
11574 intPerTuple=meas2*f
11575 res3=intPerTuple.accumulate()
11576 self.assertAlmostEqual(res3[0],integExp0,13)
11577 self.assertAlmostEqual(res3[1],integExp1,12)
11579 res4=f.getWeightedAverageValue(False) # res4==res2 because sum of area of mesh is equal to 1
11580 self.assertAlmostEqual(res4[0],integExp0,13)
11581 self.assertAlmostEqual(res4[1],integExp1,12)
11585 res5=f.getWeightedAverageValue() # res4==res4 because weighted average is not sensitive to the scaling
11586 self.assertAlmostEqual(res5[0],integExp0,13)
11587 self.assertAlmostEqual(res5[1],integExp1,12)
11588 meas3=f.buildMeasureField(False)
11589 delta=4*meas2.getArray()-meas3.getArray()
11591 self.assertTrue(delta.isUniform(0.,1e-16))
11592 res6=f.integral(False)
11593 self.assertAlmostEqual(res6[0],4.*integExp0,12)
11594 self.assertAlmostEqual(res6[1],4.*integExp1,11)
11597 def testSwig2SlowDADFindClosestTupleId(self):
11600 d=DataArrayDouble(nbPt) ; d.iota() ; d*=1./(nbPt-1)
11601 c=MEDCouplingCMesh() ; c.setCoords(d,d) ; m=c.buildUnstructured() ; pts=m.getCoords() ; del m
11603 d0=DataArrayDouble((nbPt-1)*(nbPt-1)) ; d0.iota() ; d0*=(3./((nbPt-1)*(nbPt-1))) ; d0=d0.applyFunc("exp(x)-1")
11604 d1=DataArrayDouble((nbPt-1)*(nbPt-1)) ; d1.iota()
11605 d2=DataArrayDouble.Meld(d0,d1) ; d2=d2.fromPolarToCart() ; d2+=[0.32,0.73]
11606 ids=pts.findClosestTupleId(d2)
11607 #print "Start of costly computation"
11608 idsExpected=DataArrayInt(len(d2))
11610 for i,elt in enumerate(d2):
11611 l,m=(pts-elt).magnitude().getMinValue()
11612 idsExpected.setIJSilent(i,0,m)
11614 tmp=l ; tmp1=m ; tmp2=i
11617 #print "End of costly computation"
11618 self.assertTrue(idsExpected.isEqual(ids))
11619 a,b,c=pts.minimalDistanceTo(d2)
11620 self.assertEqual(tmp,a)
11621 self.assertEqual(tmp1,b)
11622 self.assertEqual(tmp2,c)
11624 l=[d2[:,i] for i in [0,1]]
11625 for elt in l: elt.reverse()
11626 d2i=DataArrayDouble.Meld(l)
11627 ids1=pts.findClosestTupleId(d2i)
11628 idsExpectedI=idsExpected.deepCpy() ; idsExpectedI.reverse()
11629 self.assertTrue(idsExpectedI.isEqual(ids1))
11631 l=[pts[:,i] for i in [0,1]]
11632 for elt in l: elt.reverse()
11633 ptsi=DataArrayDouble.Meld(l)
11634 ids2=ptsi.findClosestTupleId(d2)
11635 idsExpected2=nbPt*nbPt-1-ids
11636 self.assertTrue(idsExpected2.isEqual(ids2))
11638 ids3=ptsi.findClosestTupleId(d2i)
11639 idsExpected3=idsExpected2.deepCpy() ; idsExpected3.reverse()
11640 self.assertTrue(idsExpected3.isEqual(ids3))
11643 def testSwig2DataArrayAsciiChar1(self):
11644 alpha=DataArrayInt(26) ; alpha.iota(ord("A"))
11645 d=DataArrayAsciiChar(alpha.getValues(),2,13)
11646 d.setInfoOnComponents(["c%i"%(v) for v in xrange(13)])
11647 self.assertEqual('ABCDEFGHIJKLM',d.getTuple(0))
11648 self.assertEqual('NOPQRSTUVWXYZ',d.getTuple(1))
11649 self.assertEqual(2,d.getNumberOfTuples())
11650 self.assertEqual(26,d.getNbOfElems())
11651 self.assertEqual(13,d.getNumberOfComponents())
11653 self.assertTrue(d.isEqual(dd))
11655 self.assertTrue(not d.isEqual(dd))
11656 d.setIJ(0,3,ord('d'))
11657 self.assertTrue(d.isEqual(dd))
11660 self.assertEqual(20,d.getNumberOfTuples())
11661 self.assertEqual(20,d.getNbOfElems())
11662 self.assertEqual(1,d.getNumberOfComponents())
11664 d0=DataArrayAsciiChar([ord('a')],1,1)
11665 self.assertEqual('a',d0.asciiCharValue())
11666 self.assertTrue(not d0.empty())
11667 d0=DataArrayAsciiChar(0,3)
11668 self.assertTrue(d0.empty())
11669 d.pushBackSilent("U") ; d.pushBackSilent("V") ; d.pushBackSilent("W")
11670 self.assertEqual("W",d.popBackSilent())
11672 self.assertEqual(['AB','Cd','EF','GH','IJ','KL','MN','OP','QR','ST','UV'],d.toStrList())
11674 self.assertEqual(11*[''],d.toStrList())
11675 d.fillWithValue('T')
11676 self.assertEqual(11*["TT"],d.toStrList())
11678 self.assertTrue(d.isUniform("T"))
11683 dd.renumberInPlace([3,1,2,4,0,11,10,9,8,7,5,12,6])
11684 self.assertEqual(dd.toStrList(),['IJ','Cd','EF','AB','GH','UV','YZ','ST','QR','OP','MN','KL','WX'])
11685 dd.renumberInPlaceR([3,1,2,4,0,11,10,9,8,7,5,12,6])
11686 self.assertEqual(['AB','Cd','EF','GH','IJ','KL','MN','OP','QR','ST','UV','WX','YZ'],dd.toStrList())
11687 e=dd.renumber([3,1,2,4,0,11,10,9,8,7,5,12,6])
11688 self.assertEqual(e.toStrList(),['IJ','Cd','EF','AB','GH','UV','YZ','ST','QR','OP','MN','KL','WX'])
11689 e=dd.renumberR([3,1,2,4,0,11,10,9,8,7,5,12,6])
11690 self.assertEqual(e.toStrList(),['GH','Cd','EF','IJ','AB','WX','UV','ST','QR','OP','KL','YZ','MN'])
11691 e=dd.renumberAndReduce([1,1,1,1,1,1,1,2,0,0,0,0,0],3)
11692 self.assertEqual(['YZ','MN','OP'],e.toStrList())
11693 self.assertEqual(['GH','IJ'],dd.selectByTupleIdSafe([3,4]).toStrList())
11694 self.assertEqual(['AB','GH','MN','ST','YZ'],dd.selectByTupleId2(0,13,3).toStrList())
11695 dd3=dd.changeNbOfComponents(3,"G")
11696 self.assertEqual(['ABG','CdG','EFG','GHG','IJG','KLG','MNG','OPG','QRG','STG','UVG','WXG','YZG'],dd3.toStrList())
11697 dd3.rearrange(1) ; self.assertEqual("G",dd3.back()) ; dd3.rearrange(3)
11698 self.assertTrue(dd3.changeNbOfComponents(2,"\0").isEqual(dd))
11699 self.assertEqual(len(dd),13)
11700 d=DataArrayAsciiChar(13,2) ; d.fillWithValue('Y')
11702 self.assertEqual(['ABGYY','CdGYY','EFGYY','GHGYY','IJGYY','KLGYY','MNGYY','OPGYY','QRGYY','STGYY','UVGYY','WXGYY','YZGYY'],dd3.toStrList())
11703 self.assertEqual("d",dd3.getIJ(0,6))
11704 self.assertRaises(InterpKernelException,dd3.getIJSafe,0,6)
11705 self.assertEqual("d",dd3.getIJSafe(1,1))
11707 e=dd3.getIdsEqual("Y")
11708 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])))
11709 e=dd3.getIdsNotEqual("Y")
11710 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])))
11711 self.assertEqual(("d",6),dd3.getMaxValue())
11712 self.assertEqual(("A",0),dd3.getMinValue())
11713 self.assertEqual(26,dd3.search("LGYYM"))
11714 self.assertEqual(-1,dd3.search("LGYYN"))
11716 self.assertEqual(7,dd3.locateTuple("OPGYY"))
11717 self.assertTrue("OPGYY" in dd3)
11718 self.assertEqual(7,dd3.index("OPGYY"))
11719 self.assertEqual(-1,dd3.locateTuple("OPGYP"))
11721 self.assertEqual(2,dd3.locateValue("OPGYY"))
11722 self.assertTrue(dd3.presenceOfValue("OPGYY"))
11723 self.assertTrue("O" in dd3)
11724 self.assertTrue(not dd3.presenceOfValue("z"))
11725 self.assertTrue("z" not in dd3)
11728 self.assertEqual([e.buildDAAsciiChar().toStrList()[0] for e in list(dd3)],dd3.toStrList())
11730 dd4=DataArrayChar.Aggregate(dd3,dd3)
11731 self.assertEqual(['ABGYY','CdGYY','EFGYY','GHGYY','IJGYY','ABGYY','CdGYY','EFGYY','GHGYY','IJGYY'],dd4.toStrList())
11732 dd5=DataArrayChar.Aggregate([dd4,dd3,dd4])
11733 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())
11734 # getitem,__iter__,__setitem__
11736 self.assertEqual("ABGYY",str(a[0]))
11738 self.assertEqual(['ABGYY','EFGYY','IJGYY'],dd4.toStrList())
11740 self.assertEqual(['GHGYY','EFGYY','CdGYY'],dd4.toStrList())
11742 dd4[::2]=["12","345","67890"]
11743 self.assertEqual(['12 ','CdGYY','345 ','GHGYY','67890'],dd4.toStrList())
11746 self.assertEqual(['ABGYY',' ',' ','GHGYY','IJGYY'],dd4.toStrList())
11749 self.assertEqual(['ABGYY','CdGYY','EFGYY','GHGYY','12345'],dd4.toStrList())
11751 self.assertEqual(['CdGYY','CdGYY','EFGYY','GHGYY','12345'],dd4.toStrList())
11752 dd4=DataArrayAsciiChar(["abc","de","fghi"])
11753 self.assertEqual(['abc ','de ','fghi'],dd4.toStrList())
11754 dd4=DataArrayAsciiChar(["abc","de","fghi"],"t")
11755 self.assertEqual(['abct','dett','fghi'],dd4.toStrList())
11758 def testSwig2GaussNELocalizationOfDiscValues(self):
11759 m=MEDCouplingDataForTest.build2DTargetMesh_3()[[0,1,3,4,5,6,8,9]] # suppression of polygons
11760 f=MEDCouplingFieldDouble(ON_GAUSS_NE)
11762 loc=f.getLocalizationOfDiscr()
11763 self.assertEqual(42,len(loc))
11764 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))
11765 m.changeSpaceDimension(3)
11766 m.getCoords()[:,2]=7.
11767 loc=f.getLocalizationOfDiscr()
11768 self.assertEqual(42,len(loc))
11769 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))
11772 def testSwig2GaussMeasureAndIntegral(self):
11773 ft=MEDCouplingDataForTest.buildFieldOnGauss_1()
11774 mea=ft.buildMeasureField(False)
11775 mea.checkCoherency()
11776 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))
11777 f=MEDCouplingFieldDouble(ft)
11778 arr=DataArrayDouble(126,2)
11779 arr[:,0]=range(126)
11780 arr[:,1]=range(126)
11784 self.assertTrue(DataArrayDouble(f.integral(False)).isEqual(DataArrayDouble([-211.66121638700983,-4863.9563007698835]),1e-11))
11785 self.assertTrue(DataArrayDouble(f.getWeightedAverageValue()).isEqual(DataArrayDouble([45.496085813113595,1045.496085813114]),1e-11))
11786 self.assertTrue(DataArrayDouble(f.normL1()).isEqual(DataArrayDouble([45.49608581311362,1045.496085813114]),1e-11))
11787 self.assertTrue(DataArrayDouble(f.normL2()).isEqual(DataArrayDouble([58.16846378340898,1046.1241521947334]),1e-11))
11790 def testSwig2FieldDiscretizationComputeMeshRestrictionFromTupleIds1(self):
11791 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1()
11792 f=MEDCouplingFieldDouble(ON_GAUSS_NE)
11794 a,b=f.getDiscretization().computeMeshRestrictionFromTupleIds(f.getMesh(),[3,4,5,6,8,9,10,14,15,16,17])
11795 self.assertTrue(a.isEqual(DataArrayInt([1,4])))
11796 self.assertTrue(b.isEqual(DataArrayInt([4,5,6,14,15,16,17])))
11797 a,b=f.getDiscretization().computeMeshRestrictionFromTupleIds(f.getMesh(),DataArrayInt([0,1,2,3,5,7,8,9,10,11,12,18]))
11798 self.assertTrue(a.isEqual(DataArrayInt([0,2])))
11799 self.assertTrue(b.isEqual(DataArrayInt([0,1,2,3,7,8,9])))
11801 f=MEDCouplingFieldDouble(ON_CELLS)
11803 a,b=f.getDiscretization().computeMeshRestrictionFromTupleIds(f.getMesh(),[3,4])
11804 self.assertTrue(a.isEqual(DataArrayInt([3,4])))
11805 self.assertTrue(b.isEqual(DataArrayInt([3,4])))
11807 f=MEDCouplingFieldDouble(ON_NODES)
11809 a,b=f.getDiscretization().computeMeshRestrictionFromTupleIds(f.getMesh(),[1,2,3,4])
11810 self.assertTrue(a.isEqual(DataArrayInt([1])))
11811 self.assertTrue(b.isEqual(DataArrayInt([1,2,4])))
11813 f=MEDCouplingDataForTest.buildFieldOnGauss_1()
11814 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])
11815 self.assertTrue(a.isEqual(DataArrayInt([0,11,12,18,35])))
11816 self.assertTrue(b.isEqual(DataArrayInt([0,11,12,13,14,15,36,37,38,117,118,119,120,121,122,123,124,125])))
11818 d=DataArrayInt([0,3,7,9,15,18])
11819 e=DataArrayInt([0,1,2,3,7,8,15,16,17])
11820 a,b=d.searchRangesInListOfIds(e)
11821 self.assertTrue(a.isEqual(DataArrayInt([0,2,4])))
11822 self.assertTrue(b.isEqual(DataArrayInt([0,1,2,7,8,15,16,17])))
11825 def testSwig2BigMem(self):
11826 if MEDCouplingSizeOfVoidStar()==64:
11827 d=DataArrayAsciiChar(223456789,16)
11828 self.assertTrue(d.getNumberOfTuples(),223456789)
11829 self.assertTrue(d.getNumberOfComponents(),16)
11830 d.setIJ(223456788,5,"r")
11831 self.assertTrue(d.getIJ(223456788,5),'r')
11832 d[223456787]="1234567890123456"
11833 self.assertTrue(d[223456787],'1234567890123456')
11834 self.assertRaises(InterpKernelException,d.rearrange,1)# fails because it would lead to nb of tuples > 2147483647
11838 def testSwig2DAReverseMultiCompo1(self):
11839 d=DataArrayDouble(6,2)
11841 d[:,1]=range(10,16)
11843 self.assertTrue(d.isEqual(DataArrayDouble([5.,15.,4.,14.,3.,13.,2.,12.,1.,11.,0.,10.],6,2),1e-14))
11844 d=DataArrayDouble(7,2)
11846 d[:,1]=range(10,17)
11848 self.assertTrue(d.isEqual(DataArrayDouble([6.,16.,5.,15.,4.,14.,3.,13.,2.,12.,1.,11.,0.,10.],7,2),1e-14))
11850 d=DataArrayInt(6,2)
11852 d[:,1]=range(10,16)
11854 self.assertTrue(d.isEqual(DataArrayInt([5,15,4,14,3,13,2,12,1,11,0,10],6,2)))
11855 d=DataArrayInt(7,2)
11857 d[:,1]=range(10,17)
11859 self.assertTrue(d.isEqual(DataArrayInt([6,16,5,15,4,14,3,13,2,12,1,11,0,10],7,2)))
11862 def testSwigDAPow1(self):
11867 self.assertTrue((d**2).isEqual(DataArrayInt([0,1,4,9,16,25,36,49,64,81])))
11868 self.assertTrue((d**3).isEqual(DataArrayInt([0,1,-8,27,64,125,216,343,512,729])))
11872 self.assertTrue(d.isEqual(DataArrayInt([0,1,4,9,16,25,36,49,64,81])))
11873 self.assertTrue((d1[:4]**d1[:4]).isEqual(DataArrayInt([1,1,4,27])))
11874 self.assertTrue((3**d1[:4]).isEqual(DataArrayInt([1,3,9,27])))
11877 self.assertTrue(d2.isEqual(DataArrayInt([1,1,4,27])))
11878 self.assertRaises(InterpKernelException,d2.__pow__,-1)#non supporting negative pow in DataArrayInt.__pow__
11879 self.assertRaises(InterpKernelException,d2.__ipow__,-1)#non supporting negative pow in DataArrayInt.__pow__
11881 d=DataArrayDouble(10)
11885 self.assertTrue((d**2).isEqual(DataArrayDouble([0,1,4,9,16,25,36,49,64,81]),1e-12))
11886 self.assertTrue((d**3).isEqual(DataArrayDouble([0,1,-8,27,64,125,216,343,512,729]),1e-12))
11887 self.assertRaises(InterpKernelException,d.__pow__,3.1)#3.1 is double not integer -> not supporting negative values in d
11891 self.assertTrue(d.isEqual(DataArrayDouble([0,1,4,9,16,25,36,49,64,81]),1e-12))
11892 self.assertTrue((d1[:4]**d1[:4]).isEqual(DataArrayDouble([1,1,4,27]),1e-12))
11893 self.assertTrue((3**d1[:4]).isEqual(DataArrayDouble([1,3,9,27]),1e-12))
11896 self.assertTrue(d2.isEqual(DataArrayDouble([1,1,4,27]),1e-12))
11898 self.assertTrue(d2.isEqual(DataArrayDouble([1,1,1./2,1./sqrt(27.)]),1e-14))
11900 self.assertTrue((3**d3).isEqual(DataArrayDouble([0.3333333333333333,0.5773502691896257,0.6933612743506348,0.7598356856515925]),1e-14))
11901 d4=d3.deepCpy() ; d4.abs()
11902 self.assertTrue((d4**d3).isEqual(DataArrayDouble([1.,sqrt(2.),1.4422495703074083,sqrt(2.)]),1e-14))
11904 self.assertTrue(d4.isEqual(DataArrayDouble([1.,sqrt(2.),1.4422495703074083,sqrt(2.)]),1e-14))
11907 def testSwig2Baryenter3DForCellsWithVolumeZero1(self):
11908 coo=DataArrayDouble([0.,0.,0.,1.,0.,0.,0.,1.,0.],3,3)
11909 m2=MEDCouplingUMesh("mesh",2)
11910 m2.allocateCells(0)
11911 m2.insertNextCell(NORM_POLYGON,[0,1,2])
11913 m2.checkCoherency1()
11915 coo2=DataArrayDouble([0.,0.,0.,0.,0.,0.,0.,0.,2.],3,3)
11916 m1=MEDCouplingUMesh("mesh",1)
11917 m1.allocateCells(0)
11918 m1.insertNextCell(NORM_SEG2,[0,1])
11919 m1.insertNextCell(NORM_SEG2,[1,2])
11921 m1.checkCoherency1()
11923 m3=m2.buildExtrudedMesh(m1,0)
11924 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
11925 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))
11926 m4,a,b,c,d=m3.buildDescendingConnectivity()
11927 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))
11930 def testSwigRepr1(self):
11931 d=DataArrayDouble()
11932 self.assertTrue(len(d.__repr__())<120)
11933 d.alloc(1000,0) ; self.assertTrue(len(d.__repr__())<100)
11934 for i in xrange(100):
11935 d.alloc(i,1) ; d.iota(1.1234567890123456) ; d*=1e123
11936 self.assertTrue(len(d.__repr__())<500)
11938 for i in xrange(50):
11939 d.alloc(i,2) ; d.rearrange(1) ; d.iota(1.1234567890123456) ; d.rearrange(2) ; d*=1e123
11940 self.assertTrue(len(d.__repr__())<500)
11942 d.alloc(4000,1) ; d.iota() ; self.assertTrue(len(d.__repr__())<500)
11943 for i in xrange(2,4):
11944 d.alloc(362880,1) ; d.iota() ; d.rearrange(i) ; self.assertTrue(len(d.__repr__())<500)
11947 self.assertTrue(len(d.__repr__())<120)
11950 self.assertTrue(len(d.__repr__())<100)
11951 d.alloc(1000,0) ; self.assertTrue(len(d.__repr__())<100)
11952 for i in xrange(100):
11953 d.alloc(i,1) ; d.iota(123456789)
11954 self.assertTrue(len(d.__repr__())<500)
11956 for i in xrange(50):
11957 d.alloc(i,2) ; d.rearrange(1) ; d.iota(123456789) ; d.rearrange(2)
11958 self.assertTrue(len(d.__repr__())<500)
11960 d.alloc(4000,1) ; d.iota() ; self.assertTrue(len(d.__repr__())<500)
11961 for i in xrange(2,10):
11962 d.alloc(362880,1) ; d.iota() ; d.rearrange(i) ; self.assertTrue(len(d.__repr__())<500)
11965 self.assertTrue(len(d.__repr__())<100)
11967 d=DataArrayAsciiChar()
11968 d.alloc(1000,0) ; self.assertTrue(len(d.__repr__())<100)
11969 d.alloc(2,16) ; d[:]='1234567890ABCDEF'
11970 self.assertTrue(len(d.__repr__())<500)
11971 d.alloc(2000,16) ; d[:]='1234567890ABCDEF'
11972 self.assertTrue(len(d.__repr__())<500)
11973 d.alloc(0,16) ; d[:]='1234567890ABCDEF'
11974 self.assertTrue(len(d.__repr__())<120)
11977 self.assertTrue(len(d.__repr__())<100)
11978 d.alloc(1000,0) ; self.assertTrue(len(d.__repr__())<100)
11979 d.alloc(0,16) ; self.assertTrue(len(d.__repr__())<100)
11980 d.alloc(5,1) ; d.fillWithValue(127)
11981 self.assertTrue(len(d.__repr__())<200)
11982 d.alloc(1000,1) ; d.fillWithValue(127)
11983 self.assertTrue(len(d.__repr__())<500)
11984 d.alloc(1000,3) ; d.fillWithValue(127)
11985 self.assertTrue(len(d.__repr__())<500)
11988 def testSwig2MeshComputeIsoBarycenterOfNodesPerCell1(self):
11989 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)
11990 m=MEDCouplingUMesh.New("toto",3)
11992 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])
11993 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])
11995 m.checkCoherency1()
11997 dReference=DataArrayDouble([(34.900130952189848,0.,200),(17.450065476094931,30.2244,200.)])
11998 self.assertTrue(m.computeIsoBarycenterOfNodesPerCell().isEqual(dReference,1e-12))
11999 m.getNodalConnectivity().setIJ(87,0,24)
12000 self.assertRaises(InterpKernelException,m.computeIsoBarycenterOfNodesPerCell)
12001 m.getNodalConnectivity().setIJ(87,0,-2)
12002 self.assertRaises(InterpKernelException,m.computeIsoBarycenterOfNodesPerCell)
12003 m.getNodalConnectivity().setIJ(87,0,21)# put again 21 as at the beginning
12005 self.assertTrue(m.unPolyze())
12006 self.assertEqual([NORM_HEXGP12],m.getAllGeoTypes())
12007 self.assertTrue(m.computeIsoBarycenterOfNodesPerCell().isEqual(dReference,1e-12))
12008 m.getNodalConnectivity().setIJ(25,0,24)
12009 self.assertRaises(InterpKernelException,m.computeIsoBarycenterOfNodesPerCell)
12010 m.getNodalConnectivity().setIJ(25,0,-1)
12011 self.assertRaises(InterpKernelException,m.computeIsoBarycenterOfNodesPerCell)
12014 def testSwig2NonRegressionBugDescHexa20(self):
12015 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)
12016 m=MEDCouplingUMesh('mesh',3)
12018 m.insertNextCell(NORM_HEXA20,[0,3,5,1,12,18,16,14,7,4,6,2,19,17,15,13,8,11,10,9])
12020 m.checkCoherency1()
12022 a,b,c,d,e=m.buildDescendingConnectivity()
12023 m2=MEDCouplingUMesh('mesh',2)
12024 m2.allocateCells(0)
12026 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]]
12027 for i in xrange(6):
12028 m2.insertNextCell(NORM_QUAD8,conn2[i])
12030 self.assertTrue(m2.isEqual(a,1e-12))
12031 self.assertTrue(b.isEqual(DataArrayInt([0,1,2,3,4,5])))
12032 self.assertTrue(c.isEqual(DataArrayInt([0,6])))
12033 self.assertTrue(d.isEqual(DataArrayInt([0,0,0,0,0,0])))
12034 self.assertTrue(e.isEqual(DataArrayInt([0,1,2,3,4,5,6])))
12036 m.convertQuadraticCellsToLinear() ; m.zipCoords()
12037 m.convertLinearCellsToQuadratic(1)
12039 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)
12040 m3=MEDCouplingUMesh("mesh",3)
12041 m3.allocateCells(1)
12042 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])
12044 self.assertTrue(m3.isEqual(m,1e-12))
12046 a,b,c,d,e=m.buildDescendingConnectivity()
12047 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]]
12048 m4=MEDCouplingUMesh("mesh",2)
12049 m4.allocateCells(0)
12050 for i in xrange(6):
12051 m4.insertNextCell(NORM_QUAD9,conn4[i])
12054 self.assertTrue(m4.isEqual(a,1e-12))
12055 self.assertTrue(b.isEqual(DataArrayInt([0,1,2,3,4,5])))
12056 self.assertTrue(c.isEqual(DataArrayInt([0,6])))
12057 self.assertTrue(d.isEqual(DataArrayInt([0,0,0,0,0,0])))
12058 self.assertTrue(e.isEqual(DataArrayInt([0,1,2,3,4,5,6])))
12061 def testSwigAdvGauss(self):
12062 f=MEDCouplingFieldTemplate(ON_GAUSS_PT)
12063 f.setDiscretization(None)
12064 f.__repr__() ; f.__str__()
12066 f=MEDCouplingFieldTemplate(ON_GAUSS_PT)
12067 d=f.getDiscretization()
12068 i=DataArrayInt() ; i.alloc(10,1) ; i.iota(1)
12069 d.setArrayOfDiscIds(i)
12070 f.__repr__() ; f.__str__()
12071 i2=d.getArrayOfDiscIds()
12072 self.assertEqual(i.__repr__(),i2.__repr__())
12074 f=MEDCouplingFieldDouble(ON_GAUSS_PT)
12075 f.setDiscretization(None)
12076 f.__repr__() ; f.__str__()
12078 f=MEDCouplingFieldDouble(ON_GAUSS_PT)
12079 d=f.getDiscretization()
12080 i=DataArrayInt() ; i.alloc(10,1) ; i.iota(1)
12081 d.setArrayOfDiscIds(i)
12082 f.__repr__() ; f.__str__()
12084 gl=MEDCouplingGaussLocalization(NORM_SEG2,[0,1],[0.5],[1.])
12085 gl.setWeights([3.])
12086 gl.__repr__() ; gl.__str__()
12087 gl=MEDCouplingGaussLocalization(NORM_ERROR)
12088 gl.setWeights([3.])
12089 gl.__repr__() ; gl.__str__()
12092 def testSwig2NonRegressionBugSubstractInPlaceDM(self):
12093 m0=MEDCouplingCMesh()
12094 arr=DataArrayDouble(5,1) ; arr.iota(0.)
12095 m0.setCoords(arr,arr)
12096 m0=m0.buildUnstructured()
12097 m00=m0[::2] ; m00.simplexize(0) ; m01=m0[1::2]
12098 m0=MEDCouplingUMesh.MergeUMeshes([m00,m01])
12099 m0.getCoords()[:]*=1/4.
12102 NodeField=MEDCouplingFieldDouble(ON_NODES,ONE_TIME) ; NodeField.setTime(5.6,5,6) ; NodeField.setMesh(m0)
12103 NodeField.setName("NodeField")
12104 NodeField.fillFromAnalytic(1,"exp(-((x-1)*(x-1)+(y-1)*(y-1)))") ; NodeField.getArray().setInfoOnComponent(0,"powernode [W]")
12105 proc0=m0.getCellsInBoundingBox([(0.,0.4),(0.,0.4)],1e-10)
12106 proc1=proc0.buildComplement(m0.getNumberOfCells())
12108 NodeField0=NodeField[proc0] ; NodeField0.getMesh().setName(m0.getName())
12109 NodeField1=NodeField[proc1] ; NodeField1.getMesh().setName(m0.getName())
12111 NodeField_read=MEDCouplingFieldDouble.MergeFields([NodeField0,NodeField1])
12112 NodeField_read.mergeNodes(1e-10)
12113 NodeFieldCpy=NodeField.deepCpy()
12114 NodeFieldCpy.mergeNodes(1e-10)
12115 NodeField.checkCoherency()
12116 self.assertTrue(not NodeField.getArray().isUniform(0.,1e-12))
12117 NodeField.substractInPlaceDM(NodeField_read,10,1e-12)
12118 self.assertTrue(NodeField.getArray().isUniform(0.,1e-12))
12121 def testSwigFieldOperationOpen1(self):
12122 ## MEDCouplingFieldDouble.__add__
12123 m=MEDCouplingDataForTest.build2DTargetMesh_1()
12124 f=MEDCouplingFieldDouble(ON_CELLS)
12126 arr=DataArrayDouble(5,2)
12127 arr[:,0]=range(5) ; arr[:,1]=2*arr[:,0]
12129 self.assertRaises(InterpKernelException,f.__add__,2)
12130 self.assertRaises(InterpKernelException,f.__add__,range(5))
12131 self.assertRaises(InterpKernelException,f.__add__,arr)
12132 self.assertRaises(InterpKernelException,f.__add__,f2)
12133 f.setArray(DataArrayDouble())
12134 self.assertRaises(InterpKernelException,f.__add__,2)
12135 self.assertRaises(InterpKernelException,f.__add__,range(5))
12136 self.assertRaises(InterpKernelException,f.__add__,arr)
12137 self.assertRaises(InterpKernelException,f.__add__,f2)
12138 self.assertRaises(InterpKernelException,f.__getitem__,(slice(None),0))
12139 f.getArray().alloc(5,2)
12140 f.getArray()[:,0]=range(5) ; f.getArray()[:,1]=f.getArray()[:,0]+7
12142 ff.checkCoherency()
12143 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(2,9),(3,10),(4,11),(5,12),(6,13)]),1e-12))
12145 ff.checkCoherency()
12146 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(0,7),(2,10),(4,13),(6,16),(8,19)]),1e-12))
12147 self.assertRaises(InterpKernelException,f.__add__,f2)
12150 ff.checkCoherency()
12151 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(0,7),(2,10),(4,13),(6,16),(8,19)]),1e-12))
12153 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(5,15),(6,16),(7,17),(8,18),(9,19)]),1e-12))
12154 ### MEDCouplingFieldDouble.__sub__
12155 m=MEDCouplingDataForTest.build2DTargetMesh_1()
12156 f=MEDCouplingFieldDouble(ON_CELLS)
12158 arr=DataArrayDouble(5,2)
12159 arr[:,0]=range(5) ; arr[:,1]=2*arr[:,0]
12161 self.assertRaises(InterpKernelException,f.__sub__,2)
12162 self.assertRaises(InterpKernelException,f.__sub__,range(5))
12163 self.assertRaises(InterpKernelException,f.__sub__,arr)
12164 self.assertRaises(InterpKernelException,f.__sub__,f2)
12165 f.setArray(DataArrayDouble())
12166 self.assertRaises(InterpKernelException,f.__sub__,2)
12167 self.assertRaises(InterpKernelException,f.__sub__,range(5))
12168 self.assertRaises(InterpKernelException,f.__sub__,arr)
12169 self.assertRaises(InterpKernelException,f.__sub__,f2)
12170 self.assertRaises(InterpKernelException,f.__getitem__,(slice(None),0))
12171 f.getArray().alloc(5,2)
12172 f.getArray()[:,0]=range(5) ; f.getArray()[:,1]=f.getArray()[:,0]+7
12174 ff.checkCoherency()
12175 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(-2,5),(-1,6),(0,7),(1,8),(2,9)]),1e-12))
12177 ff.checkCoherency()
12178 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(0,7),(0,6),(0,5),(0,4),(0,3)]),1e-12))
12179 self.assertRaises(InterpKernelException,f.__sub__,f2)
12182 ff.checkCoherency()
12183 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(0,7),(0,6),(0,5),(0,4),(0,3)]),1e-12))
12185 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(-5,-1),(-4,0),(-3,1),(-2,2),(-1,3)]),1e-12))
12186 ### MEDCouplingFieldDouble.__mul__
12187 m=MEDCouplingDataForTest.build2DTargetMesh_1()
12188 f=MEDCouplingFieldDouble(ON_CELLS)
12190 arr=DataArrayDouble(5,2)
12191 arr[:,0]=range(5) ; arr[:,1]=2*arr[:,0]
12193 self.assertRaises(InterpKernelException,f.__mul__,2)
12194 self.assertRaises(InterpKernelException,f.__mul__,range(5))
12195 self.assertRaises(InterpKernelException,f.__mul__,arr)
12196 self.assertRaises(InterpKernelException,f.__mul__,f2)
12197 f.setArray(DataArrayDouble())
12198 self.assertRaises(InterpKernelException,f.__mul__,2)
12199 self.assertRaises(InterpKernelException,f.__mul__,range(5))
12200 self.assertRaises(InterpKernelException,f.__mul__,arr)
12201 self.assertRaises(InterpKernelException,f.__mul__,f2)
12202 self.assertRaises(InterpKernelException,f.__getitem__,(slice(None),0))
12203 f.getArray().alloc(5,2)
12204 f.getArray()[:,0]=range(5) ; f.getArray()[:,1]=f.getArray()[:,0]+7
12206 ff.checkCoherency()
12207 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(0,14),(2,16),(4,18),(6,20),(8,22)]),1e-12))
12209 ff.checkCoherency()
12210 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(0,0),(1,16),(4,36),(9,60),(16,88)]),1e-12))
12211 self.assertRaises(InterpKernelException,f.__mul__,f2)
12214 ff.checkCoherency()
12215 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(0,0),(1,16),(4,36),(9,60),(16,88)]),1e-12))
12217 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(0,56),(5,64),(10,72),(15,80),(20,88)]),1e-12))
12218 ### MEDCouplingFieldDouble.__div__
12219 m=MEDCouplingDataForTest.build2DTargetMesh_1()
12220 f=MEDCouplingFieldDouble(ON_CELLS)
12222 arr=DataArrayDouble(5,2)
12223 arr[:,0]=range(1,6) ; arr[:,1]=2*arr[:,0]
12225 self.assertRaises(InterpKernelException,f.__div__,2)
12226 self.assertRaises(InterpKernelException,f.__div__,range(5))
12227 self.assertRaises(InterpKernelException,f.__div__,arr)
12228 self.assertRaises(InterpKernelException,f.__div__,f2)
12229 f.setArray(DataArrayDouble())
12230 self.assertRaises(InterpKernelException,f.__div__,2)
12231 self.assertRaises(InterpKernelException,f.__div__,range(5))
12232 self.assertRaises(InterpKernelException,f.__div__,arr)
12233 self.assertRaises(InterpKernelException,f.__div__,f2)
12234 self.assertRaises(InterpKernelException,f.__getitem__,(slice(None),0))
12235 f.getArray().alloc(5,2)
12236 f.getArray()[:,0]=range(5) ; f.getArray()[:,1]=f.getArray()[:,0]+7
12237 self.assertRaises(InterpKernelException,f.__div__,0)
12239 ff.checkCoherency()
12240 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(0,3.5),(0.5,4),(1,4.5),(1.5,5),(2,5.5)]),1e-12))
12242 ff.checkCoherency()
12243 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))
12244 self.assertRaises(InterpKernelException,f.__div__,f2)
12247 ff.checkCoherency()
12248 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))
12250 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))
12251 ### MEDCouplingFieldDouble.__pow__
12252 m=MEDCouplingDataForTest.build2DTargetMesh_1()
12253 f=MEDCouplingFieldDouble(ON_CELLS)
12255 arr=DataArrayDouble(5)
12258 self.assertRaises(InterpKernelException,f.__div__,2)
12259 self.assertRaises(InterpKernelException,f.__div__,range(5))
12260 self.assertRaises(InterpKernelException,f.__div__,arr)
12261 self.assertRaises(InterpKernelException,f.__div__,f2)
12262 f.setArray(DataArrayDouble())
12263 self.assertRaises(InterpKernelException,f.__div__,2)
12264 self.assertRaises(InterpKernelException,f.__div__,range(5))
12265 self.assertRaises(InterpKernelException,f.__div__,arr)
12266 self.assertRaises(InterpKernelException,f.__div__,f2)
12267 self.assertRaises(InterpKernelException,f.__getitem__,(slice(None),0))
12268 f.getArray().alloc(5,1)
12269 f.getArray()[:]=range(2,7)
12271 ff.checkCoherency()
12272 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([4,9,16,25,36]),1e-12))
12274 ff.checkCoherency()
12275 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([2,3,64,25,1]),1e-12))
12278 ff.checkCoherency()
12279 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([2,3,64,25,1]),1e-12))
12280 ## MEDCouplingFieldDouble.__iadd__
12281 m=MEDCouplingDataForTest.build2DTargetMesh_1()
12282 f=MEDCouplingFieldDouble(ON_CELLS)
12284 arr=DataArrayDouble(5,2)
12285 arr[:,0]=range(5) ; arr[:,1]=2*arr[:,0]
12287 self.assertRaises(InterpKernelException,f.__iadd__,2)
12288 self.assertRaises(InterpKernelException,f.__iadd__,range(5))
12289 self.assertRaises(InterpKernelException,f.__iadd__,arr)
12290 self.assertRaises(InterpKernelException,f.__iadd__,f2)
12291 f.setArray(DataArrayDouble())
12292 self.assertRaises(InterpKernelException,f.__iadd__,2)
12293 self.assertRaises(InterpKernelException,f.__iadd__,range(5))
12294 self.assertRaises(InterpKernelException,f.__iadd__,arr)
12295 self.assertRaises(InterpKernelException,f.__iadd__,f2)
12296 f.getArray().alloc(5,2)
12297 f.getArray()[:,0]=range(5) ; f.getArray()[:,1]=f.getArray()[:,0]+7
12301 self.assertTrue(f.getArray().isEqual(DataArrayDouble([(2,9),(3,10),(4,11),(5,12),(6,13)]),1e-12))
12304 self.assertTrue(f.getArray().isEqual(DataArrayDouble([(2,9),(4,12),(6,15),(8,18),(10,21)]),1e-12))
12308 self.assertTrue(f.getArray().isEqual(DataArrayDouble([(2,9),(5,14),(8,19),(11,24),(14,29)]),1e-12))
12311 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))
12312 ## MEDCouplingFieldDouble.__isub__
12313 m=MEDCouplingDataForTest.build2DTargetMesh_1()
12314 f=MEDCouplingFieldDouble(ON_CELLS)
12316 arr=DataArrayDouble(5,2)
12317 arr[:,0]=range(5) ; arr[:,1]=2*arr[:,0]
12319 self.assertRaises(InterpKernelException,f.__isub__,2)
12320 self.assertRaises(InterpKernelException,f.__isub__,range(5))
12321 self.assertRaises(InterpKernelException,f.__isub__,arr)
12322 self.assertRaises(InterpKernelException,f.__isub__,f2)
12323 f.setArray(DataArrayDouble())
12324 self.assertRaises(InterpKernelException,f.__isub__,2)
12325 self.assertRaises(InterpKernelException,f.__isub__,range(5))
12326 self.assertRaises(InterpKernelException,f.__isub__,arr)
12327 self.assertRaises(InterpKernelException,f.__isub__,f2)
12328 f.getArray().alloc(5,2)
12329 f.getArray()[:,0]=range(5) ; f.getArray()[:,1]=f.getArray()[:,0]+7
12333 self.assertTrue(f.getArray().isEqual(DataArrayDouble([(-2,5),(-1,6),(0,7),(1,8),(2,9)]),1e-12))
12336 self.assertTrue(f.getArray().isEqual(DataArrayDouble([(-2,5),(-2,4),(-2,3),(-2,2),(-2,1)]),1e-12))
12340 self.assertTrue(f.getArray().isEqual(DataArrayDouble([(-2,5),(-3,2),(-4,-1),(-5,-4),(-6,-7)]),1e-12))
12343 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))
12344 ## MEDCouplingFieldDouble.__imul__
12345 m=MEDCouplingDataForTest.build2DTargetMesh_1()
12346 f=MEDCouplingFieldDouble(ON_CELLS)
12348 arr=DataArrayDouble(5,2)
12349 arr[:,0]=range(5) ; arr[:,1]=2*arr[:,0]
12351 self.assertRaises(InterpKernelException,f.__imul__,2)
12352 self.assertRaises(InterpKernelException,f.__imul__,range(5))
12353 self.assertRaises(InterpKernelException,f.__imul__,arr)
12354 self.assertRaises(InterpKernelException,f.__imul__,f2)
12355 f.setArray(DataArrayDouble())
12356 self.assertRaises(InterpKernelException,f.__imul__,2)
12357 self.assertRaises(InterpKernelException,f.__imul__,range(5))
12358 self.assertRaises(InterpKernelException,f.__imul__,arr)
12359 self.assertRaises(InterpKernelException,f.__imul__,f2)
12360 f.getArray().alloc(5,2)
12361 f.getArray()[:,0]=range(5) ; f.getArray()[:,1]=f.getArray()[:,0]+7
12365 self.assertTrue(f.getArray().isEqual(DataArrayDouble([(0,14),(2,16),(4,18),(6,20),(8,22)]),1e-12))
12368 self.assertTrue(f.getArray().isEqual(DataArrayDouble([(0,0),(2,32),(8,72),(18,120),(32,176)]),1e-12))
12372 self.assertTrue(f.getArray().isEqual(DataArrayDouble([(0,0),(2,64),(16,288),(54,720),(128,1408)]),1e-12))
12375 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))
12376 ## MEDCouplingFieldDouble.__idiv__
12377 m=MEDCouplingDataForTest.build2DTargetMesh_1()
12378 f=MEDCouplingFieldDouble(ON_CELLS)
12380 arr=DataArrayDouble(5,2)
12381 arr[:,0]=range(1,6) ; arr[:,1]=2*arr[:,0]
12383 self.assertRaises(InterpKernelException,f.__idiv__,2)
12384 self.assertRaises(InterpKernelException,f.__idiv__,range(5))
12385 self.assertRaises(InterpKernelException,f.__idiv__,arr)
12386 self.assertRaises(InterpKernelException,f.__idiv__,f2)
12387 f.setArray(DataArrayDouble())
12388 self.assertRaises(InterpKernelException,f.__idiv__,2)
12389 self.assertRaises(InterpKernelException,f.__idiv__,range(5))
12390 self.assertRaises(InterpKernelException,f.__idiv__,arr)
12391 self.assertRaises(InterpKernelException,f.__idiv__,f2)
12392 f.getArray().alloc(5,2)
12393 f.getArray()[:,0]=range(5) ; f.getArray()[:,1]=f.getArray()[:,0]+7
12397 self.assertTrue(f.getArray().isEqual(DataArrayDouble([(0,3.5),(0.5,4),(1,4.5),(1.5,5),(2,5.5)]),1e-12))
12400 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))
12404 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))
12407 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))
12408 ## MEDCouplingFieldDouble.__ipow__
12409 m=MEDCouplingDataForTest.build2DTargetMesh_1()
12410 f=MEDCouplingFieldDouble(ON_CELLS)
12412 arr=DataArrayDouble(5,2)
12413 arr[:,0]=range(1,6) ; arr[:,1]=2*arr[:,0]
12415 self.assertRaises(InterpKernelException,f.__ipow__,2)
12416 self.assertRaises(InterpKernelException,f.__ipow__,range(5))
12417 self.assertRaises(InterpKernelException,f.__ipow__,arr)
12418 self.assertRaises(InterpKernelException,f.__ipow__,f2)
12419 f.setArray(DataArrayDouble())
12420 self.assertRaises(InterpKernelException,f.__ipow__,2)
12421 self.assertRaises(InterpKernelException,f.__ipow__,range(5))
12422 self.assertRaises(InterpKernelException,f.__ipow__,arr)
12423 self.assertRaises(InterpKernelException,f.__ipow__,f2)
12424 f.getArray().alloc(5,2)
12425 f.getArray()[:,0]=range(5) ; f.getArray()[:,1]=f.getArray()[:,0]+7
12429 self.assertTrue(f.getArray().isEqual(DataArrayDouble([(0,49),(1,64),(4,81),(9,100),(16,121)]),1e-12))
12430 ## MEDCouplingFieldDouble.__radd__
12431 m=MEDCouplingDataForTest.build2DTargetMesh_1()
12432 f=MEDCouplingFieldDouble(ON_CELLS)
12434 arr=DataArrayDouble(5,2)
12435 arr[:,0]=range(5) ; arr[:,1]=2*arr[:,0]
12437 self.assertRaises(InterpKernelException,f.__radd__,2)
12438 self.assertRaises(InterpKernelException,f.__radd__,range(5))
12439 self.assertRaises(InterpKernelException,f.__radd__,arr)
12440 self.assertRaises(InterpKernelException,f.__radd__,f2)
12441 f.setArray(DataArrayDouble())
12442 self.assertRaises(InterpKernelException,f.__radd__,2)
12443 self.assertRaises(InterpKernelException,f.__radd__,range(5))
12444 self.assertRaises(InterpKernelException,f.__radd__,arr)
12445 self.assertRaises(InterpKernelException,f.__radd__,f2)
12446 self.assertRaises(InterpKernelException,f.__getitem__,(slice(None),0))
12447 f.getArray().alloc(5,2)
12448 f.getArray()[:,0]=range(5) ; f.getArray()[:,1]=f.getArray()[:,0]+7
12450 ff.checkCoherency()
12451 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(2,9),(3,10),(4,11),(5,12),(6,13)]),1e-12))
12453 ff.checkCoherency()
12454 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(0,7),(2,10),(4,13),(6,16),(8,19)]),1e-12))
12455 self.assertRaises(InterpKernelException,f.__radd__,f2)
12457 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(5,15),(6,16),(7,17),(8,18),(9,19)]),1e-12))
12458 ### MEDCouplingFieldDouble.__rsub__
12459 m=MEDCouplingDataForTest.build2DTargetMesh_1()
12460 f=MEDCouplingFieldDouble(ON_CELLS)
12462 arr=DataArrayDouble(5,2)
12463 arr[:,0]=range(5) ; arr[:,1]=2*arr[:,0]
12465 self.assertRaises(InterpKernelException,f.__rsub__,2)
12466 self.assertRaises(InterpKernelException,f.__rsub__,range(5))
12467 self.assertRaises(InterpKernelException,f.__rsub__,arr)
12468 self.assertRaises(InterpKernelException,f.__rsub__,f2)
12469 f.setArray(DataArrayDouble())
12470 self.assertRaises(InterpKernelException,f.__rsub__,2)
12471 self.assertRaises(InterpKernelException,f.__rsub__,range(5))
12472 self.assertRaises(InterpKernelException,f.__rsub__,arr)
12473 self.assertRaises(InterpKernelException,f.__rsub__,f2)
12474 self.assertRaises(InterpKernelException,f.__getitem__,(slice(None),0))
12475 f.getArray().alloc(5,2)
12476 f.getArray()[:,0]=range(5) ; f.getArray()[:,1]=f.getArray()[:,0]+7
12478 ff.checkCoherency()
12479 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(2,-5),(1,-6),(0,-7),(-1,-8),(-2,-9)]),1e-12))
12481 ff.checkCoherency()
12482 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(0,-7),(0,-6),(0,-5),(0,-4),(0,-3)]),1e-12))
12483 self.assertRaises(InterpKernelException,f.__rsub__,f2)
12484 ### MEDCouplingFieldDouble.__rmul__
12485 m=MEDCouplingDataForTest.build2DTargetMesh_1()
12486 f=MEDCouplingFieldDouble(ON_CELLS)
12488 arr=DataArrayDouble(5,2)
12489 arr[:,0]=range(5) ; arr[:,1]=2*arr[:,0]
12491 self.assertRaises(InterpKernelException,f.__rmul__,2)
12492 self.assertRaises(InterpKernelException,f.__rmul__,range(5))
12493 self.assertRaises(InterpKernelException,f.__rmul__,arr)
12494 self.assertRaises(InterpKernelException,f.__rmul__,f2)
12495 f.setArray(DataArrayDouble())
12496 self.assertRaises(InterpKernelException,f.__rmul__,2)
12497 self.assertRaises(InterpKernelException,f.__rmul__,range(5))
12498 self.assertRaises(InterpKernelException,f.__rmul__,arr)
12499 self.assertRaises(InterpKernelException,f.__rmul__,f2)
12500 self.assertRaises(InterpKernelException,f.__getitem__,(slice(None),0))
12501 f.getArray().alloc(5,2)
12502 f.getArray()[:,0]=range(5) ; f.getArray()[:,1]=f.getArray()[:,0]+7
12504 ff.checkCoherency()
12505 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(0,14),(2,16),(4,18),(6,20),(8,22)]),1e-12))
12507 ff.checkCoherency()
12508 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(0,0),(1,16),(4,36),(9,60),(16,88)]),1e-12))
12509 self.assertRaises(InterpKernelException,f.__rmul__,f2)
12511 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(0,56),(5,64),(10,72),(15,80),(20,88)]),1e-12))
12512 ### MEDCouplingFieldDouble.__rdiv__
12513 m=MEDCouplingDataForTest.build2DTargetMesh_1()
12514 f=MEDCouplingFieldDouble(ON_CELLS)
12516 arr=DataArrayDouble(5,2)
12517 arr[:,0]=range(1,6) ; arr[:,1]=2*arr[:,0]
12519 self.assertRaises(InterpKernelException,f.__rdiv__,2)
12520 self.assertRaises(InterpKernelException,f.__rdiv__,range(5))
12521 self.assertRaises(InterpKernelException,f.__rdiv__,arr)
12522 self.assertRaises(InterpKernelException,f.__rdiv__,f2)
12523 f.setArray(DataArrayDouble())
12524 self.assertRaises(InterpKernelException,f.__rdiv__,2)
12525 self.assertRaises(InterpKernelException,f.__rdiv__,range(5))
12526 self.assertRaises(InterpKernelException,f.__rdiv__,arr)
12527 self.assertRaises(InterpKernelException,f.__rdiv__,f2)
12528 self.assertRaises(InterpKernelException,f.__getitem__,(slice(None),0))
12529 f.getArray().alloc(5,2)
12530 f.getArray()[:,0]=range(1,6) ; f.getArray()[:,1]=f.getArray()[:,0]+7
12532 ff.checkCoherency()
12533 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))
12535 ff.checkCoherency()
12536 self.assertTrue(ff.getArray().isEqual(DataArrayDouble([(1,0.25),(1,0.44444444444444442),(1,0.59999999999999998),(1,0.72727272727272729),(1,0.83333333333333337)]),1e-12))
12537 self.assertRaises(InterpKernelException,f.__rdiv__,f2)
12540 def testSwig2FieldDoubleBuildSubPartRange1(self):
12542 m=MEDCouplingDataForTest.build2DTargetMesh_1()
12543 f=MEDCouplingFieldDouble(ON_CELLS)
12545 arr=DataArrayDouble(5,2) ; arr[:,0]=range(7,12) ; arr[:,1]=100+arr[:,0]
12549 ff.checkCoherency()
12550 self.assertTrue((m.buildPartOfMySelf([1,3],True)).isEqual(ff.getMesh(),1e-12))
12551 self.assertTrue(9,ff.getMesh().getNumberOfNodes())
12552 self.assertTrue(2,ff.getMesh().getNumberOfCells())
12553 self.assertTrue(ff.getArray().isEqual(arr[[1,3]],1e-12))
12555 a,b=f.buildSubMeshDataRange(2,5,1)
12556 self.assertTrue(m.buildPartOfMySelf([2,3,4],True).isEqual(a,1e-12))
12557 self.assertEqual(b,slice(2,5,1))
12559 ff.checkCoherency()
12560 self.assertTrue((m.buildPartOfMySelf([2,3,4],True)).isEqual(ff.getMesh(),1e-12))
12561 self.assertTrue(9,ff.getMesh().getNumberOfNodes())
12562 self.assertTrue(3,ff.getMesh().getNumberOfCells())
12563 self.assertTrue(ff.getArray().isEqual(arr[[2,3,4]],1e-12))
12566 ff.checkCoherency()
12567 self.assertTrue((m.buildPartOfMySelf([3,2,1],True)).isEqual(ff.getMesh(),1e-12))
12568 self.assertTrue(9,ff.getMesh().getNumberOfNodes())
12569 self.assertTrue(3,ff.getMesh().getNumberOfCells())
12570 self.assertTrue(ff.getArray().isEqual(arr[[3,2,1]],1e-12))
12571 self.assertTrue(f[-2:0:-1,1].getArray().isEqual(arr[[3,2,1],1],1e-12))
12573 f=MEDCouplingFieldDouble(ON_NODES)
12575 arr=DataArrayDouble(9,2) ; arr[:,0]=range(7,16) ; arr[:,1]=100+arr[:,0]
12579 ff.checkCoherency()
12580 self.assertTrue((m.buildPartOfMySelf([1,3],False)).isEqual(ff.getMesh(),1e-12))
12581 self.assertTrue(6,ff.getMesh().getNumberOfNodes())
12582 self.assertTrue(2,ff.getMesh().getNumberOfCells())
12583 self.assertTrue(ff.getArray().isEqual(arr[[1,2,3,4,6,7]],1e-12))
12585 m2=m.buildPartRange(2,5,1)
12586 self.assertTrue(m.buildPartOfMySelf([2,3,4],True).isEqual(m2,1e-12))
12587 m2,b=m.buildPartRangeAndReduceNodes(2,5,1)
12588 self.assertTrue(m.buildPartOfMySelf([2,3,4],False).isEqual(m2,1e-12))
12589 self.assertTrue(b.isEqual(DataArrayInt([-1,-1,0,1,2,3,4,5,6])))
12590 a,b=f.buildSubMeshDataRange(2,5,1)
12591 self.assertTrue(m.buildPartOfMySelf([2,3,4],False).isEqual(a,1e-12))
12592 self.assertTrue(b.isEqual(DataArrayInt([2,3,4,5,6,7,8])))
12594 ff.checkCoherency()
12595 self.assertTrue((m.buildPartOfMySelf([2,3,4],False)).isEqual(ff.getMesh(),1e-12))
12596 self.assertTrue(7,ff.getMesh().getNumberOfNodes())
12597 self.assertTrue(3,ff.getMesh().getNumberOfCells())
12598 self.assertTrue(ff.getArray().isEqual(arr[[2,3,4,5,6,7,8]],1e-12))
12601 ff.checkCoherency()
12602 self.assertTrue((m.buildPartOfMySelf([3,2,1],False)).isEqual(ff.getMesh(),1e-12))
12603 self.assertTrue(7,ff.getMesh().getNumberOfNodes())
12604 self.assertTrue(3,ff.getMesh().getNumberOfCells())
12605 self.assertTrue(ff.getArray().isEqual(arr[[1,2,3,4,5,6,7]],1e-12))
12606 self.assertTrue(f[-2:0:-1,1].getArray().isEqual(arr[[1,2,3,4,5,6,7],1],1e-12))
12608 f=MEDCouplingFieldDouble(ON_GAUSS_NE)
12610 arr=DataArrayDouble(18,2) ; arr[:,0]=range(7,25) ; arr[:,1]=100+arr[:,0]
12614 ff.checkCoherency()
12615 self.assertTrue((m.buildPartOfMySelf([1,3],True)).isEqual(ff.getMesh(),1e-12))
12616 self.assertTrue(9,ff.getMesh().getNumberOfNodes())
12617 self.assertTrue(2,ff.getMesh().getNumberOfCells())
12618 self.assertTrue(ff.getArray().isEqual(arr[[4,5,6,10,11,12,13]],1e-12))
12620 a,b=f.buildSubMeshDataRange(2,5,1)
12621 self.assertTrue(m.buildPartOfMySelf([2,3,4],True).isEqual(a,1e-12))
12622 self.assertEqual(b,slice(7,18,1))
12624 ff.checkCoherency()
12625 self.assertTrue((m.buildPartOfMySelf([2,3,4],True)).isEqual(ff.getMesh(),1e-12))
12626 self.assertTrue(9,ff.getMesh().getNumberOfNodes())
12627 self.assertTrue(3,ff.getMesh().getNumberOfCells())
12628 self.assertTrue(ff.getArray().isEqual(arr[[7,8,9,10,11,12,13,14,15,16,17]],1e-12))
12631 ff.checkCoherency()
12632 self.assertTrue((m.buildPartOfMySelf([3,2,1],True)).isEqual(ff.getMesh(),1e-12))
12633 self.assertTrue(9,ff.getMesh().getNumberOfNodes())
12634 self.assertTrue(3,ff.getMesh().getNumberOfCells())
12635 self.assertTrue(ff.getArray().isEqual(arr[[10,11,12,13,7,8,9,4,5,6]],1e-12))
12636 self.assertTrue(f[-2:0:-1,1].getArray().isEqual(arr[[10,11,12,13,7,8,9,4,5,6],1],1e-12))
12638 f=MEDCouplingFieldDouble(ON_GAUSS_PT)
12640 f.setGaussLocalizationOnCells([0,4],[0,0,1,0,1,1,1,0],[1.1,1.1,2.2,2.2],[0.2,0.8]);
12641 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]);
12642 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]);
12643 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]);
12644 arr=DataArrayDouble(16,2) ; arr[:,0]=range(7,23) ; arr[:,1]=100+arr[:,0]
12648 ff.checkCoherency()
12649 self.assertTrue((m.buildPartOfMySelf([1,3],True)).isEqual(ff.getMesh(),1e-12))
12650 self.assertTrue(9,ff.getMesh().getNumberOfNodes())
12651 self.assertTrue(2,ff.getMesh().getNumberOfCells())
12652 self.assertTrue(ff.getArray().isEqual(arr[[2,3,4,5,11,12,13]],1e-12))
12654 a,b=f.buildSubMeshDataRange(2,5,1)
12655 self.assertTrue(m.buildPartOfMySelf([2,3,4],True).isEqual(a,1e-12))
12656 self.assertEqual(b,slice(6,16,1))
12658 ff.checkCoherency()
12659 self.assertTrue((m.buildPartOfMySelf([2,3,4],True)).isEqual(ff.getMesh(),1e-12))
12660 self.assertTrue(9,ff.getMesh().getNumberOfNodes())
12661 self.assertTrue(3,ff.getMesh().getNumberOfCells())
12662 self.assertTrue(ff.getArray().isEqual(arr[[6,7,8,9,10,11,12,13,14,15]],1e-12))
12665 ff.checkCoherency()
12666 self.assertTrue((m.buildPartOfMySelf([3,2,1],True)).isEqual(ff.getMesh(),1e-12))
12667 self.assertTrue(9,ff.getMesh().getNumberOfNodes())
12668 self.assertTrue(3,ff.getMesh().getNumberOfCells())
12669 self.assertTrue(ff.getArray().isEqual(arr[[11,12,13,6,7,8,9,10,2,3,4,5]],1e-12))
12670 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))
12673 def testSwig2FieldDoubleApplyFuncBug1(self):
12674 f=MEDCouplingFieldDouble(ON_CELLS)
12675 f.setMesh(MEDCouplingDataForTest.build2DTargetMesh_1())
12676 f.applyFunc(3,700.)
12678 self.assertEqual(3,f.getArray().getNumberOfComponents())
12679 f.getArray().rearrange(1)
12680 self.assertTrue(f.getArray().isUniform(700.,1e-10))
12681 f.getArray().rearrange(3)
12683 f.applyFunc(4,800.)
12685 self.assertEqual(4,f.getArray().getNumberOfComponents())
12686 f.getArray().rearrange(1)
12687 self.assertTrue(f.getArray().isUniform(800.,1e-10))
12688 f.getArray().rearrange(4)
12692 def testSwig2ComputeTupleIdsNearTupleBug1(self):
12693 coords=[1.1,0.0, 1.1,0.0 ];
12694 coordsArr=DataArrayDouble(coords,2,2);
12695 mesh=MEDCouplingUMesh();
12696 mesh.setCoords(coordsArr);
12697 points=[1.1, 0.002]
12698 c,cI=mesh.getNodeIdsNearPoints(points,0.00185);
12699 self.assertTrue(c.isEqual(DataArrayInt([])))
12700 self.assertTrue(cI.isEqual(DataArrayInt([0,0])))
12701 c,cI=mesh.getNodeIdsNearPoints(points,0.00200000000000001);
12702 self.assertTrue(c.isEqual(DataArrayInt([0,1])))
12703 self.assertTrue(cI.isEqual(DataArrayInt([0,2])))
12706 def testSwig2NonRegressionBugChangeUnderlyingWithZeroCells(self):
12707 coords1=[0.,1.,2.,3.]
12708 coords2=[2.,1.,0.,3.] #0 <==> #2
12710 mesh1=MEDCouplingUMesh.New();
12711 coordsArr=DataArrayDouble.New(coords1,4,1);
12712 mesh1.setCoords(coordsArr);
12713 mesh1.setMeshDimension(0);
12714 mesh1.allocateCells(0);
12715 mesh1.finishInsertingCells();
12717 mesh2=mesh1.deepCpy();
12718 coordsArr=DataArrayDouble.New(coords2,4,1);
12719 mesh2.setCoords(coordsArr);
12720 field = mesh1.fillFromAnalytic(ON_NODES,1,"x")
12721 field.checkCoherency()
12723 field.changeUnderlyingMesh( mesh2, levOfCheck, 1e-13, 0 )
12724 self.assertTrue( field.getArray().getValues() == coords2 )
12727 def testSwig2UMeshDistanceToMesh2(self):
12729 m=MEDCouplingCMesh()
12730 arr=DataArrayDouble(sz+1) ; arr.iota() ; arr/=sz
12731 m.setCoords(arr,arr,arr)
12732 m=m.buildUnstructured()
12735 c=m1.getCoords()[:]
12736 d=2*(c-[0.5,0.5,0.5])+[0.5,0.5,0.5]
12737 time_deb = datetime.now()
12739 a,b=m1.distanceToPoints(d)
12740 #print 'time spent in distanceToPoints %s ' %str(datetime.now() - time_deb)
12741 time_deb = datetime.now()
12742 a1=DataArrayDouble(len(d))
12743 b1=DataArrayInt(len(d))
12744 m1s=[m1[i] for i in xrange(m1.getNumberOfCells())]
12745 for j,pt in enumerate(d):
12748 for i,miter in enumerate(m1s):
12749 e,f=miter.distanceToPoint(pt)
12750 self.assertEqual(0,f)
12758 #print 'time spent in naive distanceToPoints %s ' %str(datetime.now() - time_deb)
12759 self.assertTrue(a.isEqual(a1,1e-12))
12760 self.assertTrue(b.isEqual(b1))
12761 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))
12762 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])))
12765 def testSwig2NonRegressionBugDistance1(self):
12766 pt=DataArrayDouble([(8.8452994616207476,3.1547005383792515,3.1547005383792515)])
12767 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)])
12768 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])
12769 m=MEDCouplingUMesh("mesh",2)
12772 for i in xrange(24):
12773 m.insertNextCell(NORM_QUAD4,conn[4*i:4*i+4])
12775 m.checkCoherency2()
12776 m0=m[3] ; m0.zipCoords()
12777 expectedDist=0.8452994616207476
12778 a,b=m0.distanceToPoint(pt)
12779 self.assertAlmostEqual(expectedDist,a,14)
12780 self.assertEqual(0,b)
12782 a,b=m.distanceToPoint(pt)
12783 self.assertAlmostEqual(expectedDist,a,14)
12784 self.assertEqual(3,b)
12786 fd=MEDCouplingFieldDiscretization.New(ON_CELLS)
12787 self.assertEqual(24,fd.getNumberOfTuples(m))
12788 fd=MEDCouplingFieldDiscretization.New(ON_NODES)
12789 self.assertEqual(26,fd.getNumberOfTuples(m))
12792 def testSwig2AreaBarySeg3Quad8Tri6QPolyg(self):
12793 #QUAD8 representing a circle of center zeBary and radius zeRadius
12796 d=DataArrayDouble(8,2)
12798 d[:,1]=[87,-100,-170,110,5,-130,175,95] # angle in degree
12799 d[:,1]*=pi/180. # angle in radian
12800 d=d.fromPolarToCart()
12802 m=MEDCouplingUMesh("quad8",2) ; m.allocateCells() ; m.insertNextCell(NORM_QUAD8,range(8)) ; m.setCoords(d)
12803 self.assertTrue(m.getBarycenterAndOwner().isEqual(DataArrayDouble(zeBary,1,2),1e-13))
12804 self.assertAlmostEqual(float(m.getMeasureField(False).getArray()),pi*zeRadius*zeRadius,12)
12805 tri32D=m.buildDescendingConnectivity()[0][0] ; tri32D.zipCoords()
12806 # spaceDim=3 QUAD8 becomes QUAD4 ... for the moment
12807 m.setCoords(m.getCoords().changeNbOfComponents(3,0.))
12809 m2.convertQuadraticCellsToLinear()
12810 self.assertAlmostEqual(float(m.getMeasureField(False).getArray()),float(m2.getMeasureField(False).getArray()),12)
12811 self.assertTrue(m.getBarycenterAndOwner().isEqual(m2.getBarycenterAndOwner(),1e-13))
12812 #TRI6 representing a circle of center zeBary and radius zeRadius
12815 d=DataArrayDouble(6,2)
12817 d[:,1]=[87,-100,110,5,175,95] # angle in degree
12818 d[:,1]*=pi/180. # angle in radian
12819 d=d.fromPolarToCart()
12821 m=MEDCouplingUMesh("tri6",2) ; m.allocateCells() ; m.insertNextCell(NORM_TRI6,range(6)) ; m.setCoords(d)
12822 self.assertTrue(m.getBarycenterAndOwner().isEqual(DataArrayDouble(zeBary,1,2),1e-13))
12823 self.assertAlmostEqual(float(m.getMeasureField(False).getArray()),pi*zeRadius*zeRadius,12)
12824 # spaceDim=3 TRI6 becomes TRI3 ... for the moment
12825 m.setCoords(m.getCoords().changeNbOfComponents(3,0.))
12827 m2.convertQuadraticCellsToLinear()
12828 self.assertAlmostEqual(float(m.getMeasureField(False).getArray()),float(m2.getMeasureField(False).getArray()),12)
12829 self.assertTrue(m.getBarycenterAndOwner().isEqual(m2.getBarycenterAndOwner(),1e-13))
12830 # QPOLYG representing a circle of center zeBary and radius zeRadius
12833 d=DataArrayDouble(10,2)
12835 d[:,1]=[87,-80,-100,-170,110,5,-90,-130,175,95] # angle in degree
12836 d[:,1]*=pi/180. # angle in radian
12837 d=d.fromPolarToCart()
12839 m=MEDCouplingUMesh("qpolyg",2) ; m.allocateCells() ; m.insertNextCell(NORM_QPOLYG,range(10)) ; m.setCoords(d)
12840 self.assertTrue(m.getBarycenterAndOwner().isEqual(DataArrayDouble(zeBary,1,2),1e-13))
12841 self.assertAlmostEqual(float(m.getMeasureField(False).getArray()),pi*zeRadius*zeRadius,12)
12842 # spaceDim=3 QPOLYG becomes POLYG ... for the moment
12843 m.setCoords(m.getCoords().changeNbOfComponents(3,0.))
12845 m2.convertQuadraticCellsToLinear() ; m2.checkCoherency2()
12846 self.assertTrue(m2.getAllGeoTypes()==[NORM_POLYGON] and m2.getNodalConnectivity().getValues()==[5,0,1,2,3,4])
12847 self.assertAlmostEqual(float(m.getMeasureField(False).getArray()),float(m2.getMeasureField(False).getArray()),12)
12848 self.assertTrue(m.getBarycenterAndOwner().isEqual(m2.getBarycenterAndOwner(),1e-13))
12850 self.assertAlmostEqual(float(tri32D.getMeasureField(False).getArray()),(87+100)*pi/180*zeRadius,13)
12851 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)
12852 self.assertTrue(tri32D.getBarycenterAndOwner().isEqual(exp,1e-12))
12853 # spaceDim=3 TRI3 becomes TRI2 ... for the moment
12854 tri32D.changeSpaceDimension(3)
12855 tri2=tri32D.deepCpy() ; tri2.convertQuadraticCellsToLinear()
12856 self.assertAlmostEqual(float(tri32D.getMeasureField(False).getArray()),float(tri2.getMeasureField(False).getArray()),13)
12857 self.assertTrue(tri32D.getBarycenterAndOwner().isEqual(tri2.getBarycenterAndOwner(),1e-12))
12858 tri32D.changeSpaceDimension(1)
12859 self.assertAlmostEqual(float(tri32D.getMeasureField(False).getArray()),-0.67795240172962323,12)
12862 # this bug 5/6/2013 is swig specific
12863 def testSwigNonRegressionBugRotate3D1(self):
12864 m=MEDCouplingUMesh.New()
12865 dataArray=DataArrayDouble.New(100,3)
12867 dataArray[0]=[0.,1,3]
12868 m.setCoords(dataArray[0])
12870 m.rotate([0.,0.,3.],[1.,0.,0.],0.5*pi)
12871 self.assertTrue(m.getCoords().isEqual(DataArrayDouble([0.,0.,4.],1,3),1e-15))
12873 d1=DataArrayDouble([0.,0.,3.],1,3) ; d2=DataArrayDouble([1.,0.,0.],1,3)
12874 pts=[[0.,0.,3.],[(0.,0.,3.)],DataArrayDouble([0.,0.,3.],1,3),list(d1)[0]]
12875 vec=[[1.,0.,0.],[(1.,0.,0.)],DataArrayDouble([1.,0.,0.],1,3),list(d2)[0]]
12879 m2.rotate(p,v,0.5*pi)
12880 self.assertTrue(m2.getCoords().isEqual(DataArrayDouble([0.,0.,4.],1,3),1e-15))
12884 def testSwig2DataArrayCount1(self):
12886 self.assertEqual(0,d.getNumberOfTuples())
12887 self.assertEqual(1,d.getNumberOfComponents())
12888 self.assertEqual(0,d.count(0))
12889 self.assertEqual(0,d.count(1))
12890 self.assertEqual(0,d.count(-1))
12891 d=DataArrayInt([2,1,-2,-3,2,0,0,7,2,-2,3,0])
12892 self.assertEqual(12,d.getNumberOfTuples())
12893 self.assertEqual(1,d.getNumberOfComponents())
12894 self.assertEqual(3,d.count(0))
12895 self.assertEqual(1,d.count(1))
12896 self.assertEqual(0,d.count(-1))
12897 self.assertEqual(2,d.count(-2))
12898 self.assertEqual(3,d.count(2))
12899 e=d.getDifferentValues()
12902 f.pushBackSilent(d.count(int(it)))
12904 self.assertEqual(12,f.accumulate()[0])
12907 d=DataArrayDouble([])
12908 self.assertEqual(0,d.getNumberOfTuples())
12909 self.assertEqual(1,d.getNumberOfComponents())
12910 self.assertEqual(0,d.count(0,eps))
12911 self.assertEqual(0,d.count(1,eps))
12912 self.assertEqual(0,d.count(-1,eps))
12913 d=DataArrayDouble([2,1,-2,-3,2,0,eps/10,7,2+eps/10,-2,3,0])
12914 self.assertEqual(12,d.getNumberOfTuples())
12915 self.assertEqual(1,d.getNumberOfComponents())
12916 self.assertEqual(3,d.count(0,eps))
12917 self.assertEqual(1,d.count(1,eps))
12918 self.assertEqual(0,d.count(-1,eps))
12919 self.assertEqual(2,d.count(-2,eps))
12920 self.assertEqual(3,d.count(2,eps))
12921 self.assertEqual(3,d.count(2,eps))
12922 self.assertEqual(2,d.count(2,eps/100))
12923 e=d.getDifferentValues(eps)
12926 f.pushBackSilent(d.count(float(it),eps))
12928 self.assertEqual(12,f.accumulate()[0])
12931 def testSwig2DataArrayGetSlice1(self):
12933 self.assertEqual(DataArray.GetNumberOfItemGivenBESRelative(s),16)
12934 self.assertEqual(DataArray.GetNumberOfItemGivenBES(s),16)
12935 self.assertEqual(DataArray.GetSlice(s,0,4),slice(2,6,1))
12936 self.assertEqual(DataArray.GetSlice(s,1,4),slice(6,10,1))
12937 self.assertEqual(DataArray.GetSlice(s,2,4),slice(10,14,1))
12938 self.assertEqual(DataArray.GetSlice(s,3,4),slice(14,18,1))
12941 self.assertEqual(DataArray.GetNumberOfItemGivenBESRelative(s),8)
12942 self.assertEqual(DataArray.GetNumberOfItemGivenBES(s),8)
12943 self.assertEqual(DataArray.GetSlice(s,0,4),slice(2,6,2))
12944 self.assertEqual(DataArray.GetSlice(s,1,4),slice(6,10,2))
12945 self.assertEqual(DataArray.GetSlice(s,2,4),slice(10,14,2))
12946 self.assertEqual(DataArray.GetSlice(s,3,4),slice(14,18,2))
12949 self.assertEqual(DataArray.GetSlice(s,0,4),slice(1,5,1))
12950 self.assertEqual(DataArray.GetSlice(s,1,4),slice(5,9,1))
12951 self.assertEqual(DataArray.GetSlice(s,2,4),slice(9,13,1))
12952 self.assertEqual(DataArray.GetSlice(s,3,4),slice(13,18,1))# 18 not 17
12955 self.assertEqual(DataArray.GetNumberOfItemGivenBESRelative(s),9)
12956 self.assertEqual(DataArray.GetNumberOfItemGivenBES(s),9)
12957 self.assertEqual(DataArray.GetSlice(s,0,4),slice(1,5,2))
12958 self.assertEqual(DataArray.GetSlice(s,1,4),slice(5,9,2))
12959 self.assertEqual(DataArray.GetSlice(s,2,4),slice(9,13,2))
12960 self.assertEqual(DataArray.GetSlice(s,3,4),slice(13,18,2))# 18 not 17
12963 self.assertEqual(DataArray.GetSlice(s,0,4),slice(18,14,-1))
12964 self.assertEqual(DataArray.GetSlice(s,1,4),slice(14,10,-1))
12965 self.assertEqual(DataArray.GetSlice(s,2,4),slice(10,6,-1))
12966 self.assertEqual(DataArray.GetSlice(s,3,4),slice(6,2,-1))
12969 self.assertEqual(DataArray.GetSlice(s,0,4),slice(18,14,-2))
12970 self.assertEqual(DataArray.GetSlice(s,1,4),slice(14,10,-2))
12971 self.assertEqual(DataArray.GetSlice(s,2,4),slice(10,6,-2))
12972 self.assertEqual(DataArray.GetSlice(s,3,4),slice(6,2,-2))
12975 self.assertEqual(DataArray.GetSlice(s,0,4),slice(18,14,-1))
12976 self.assertEqual(DataArray.GetSlice(s,1,4),slice(14,10,-1))
12977 self.assertEqual(DataArray.GetSlice(s,2,4),slice(10,6,-1))
12978 self.assertEqual(DataArray.GetSlice(s,3,4),slice(6,1,-1))# 1 not 2
12981 self.assertEqual(DataArray.GetNumberOfItemGivenBESRelative(s),9)
12982 self.assertRaises(InterpKernelException,DataArray.GetNumberOfItemGivenBES,s)
12983 self.assertEqual(sum([DataArray.GetNumberOfItemGivenBESRelative(DataArray.GetSlice(s,i,4)) for i in xrange(4)]),DataArray.GetNumberOfItemGivenBESRelative(s))
12984 self.assertEqual(DataArray.GetSlice(s,0,4),slice(18,14,-2))
12985 self.assertEqual(DataArray.GetSlice(s,1,4),slice(14,10,-2))
12986 self.assertEqual(DataArray.GetSlice(s,2,4),slice(10,6,-2))
12987 self.assertEqual(DataArray.GetSlice(s,3,4),slice(6,1,-2))# 1 not 2
12988 self.assertRaises(InterpKernelException,DataArray.GetSlice,slice(0,None,2),0,4)
12990 d=DataArrayInt.Range(0,18,1)
12992 self.assertEqual(d.getNumberOfItemGivenBES(s),16)
12993 self.assertEqual(d.getNumberOfItemGivenBESRelative(s),16)
12994 self.assertEqual(d.getSlice(s,0,4),slice(2,6,1))
12995 self.assertEqual(d.getSlice(s,1,4),slice(6,10,1))
12996 self.assertEqual(d.getSlice(s,2,4),slice(10,14,1))
12997 self.assertEqual(d.getSlice(s,3,4),slice(14,18,1))
12999 d=DataArrayInt.Range(0,18,1)
13001 self.assertEqual(d.getSlice(s,0,4),slice(2,5,1))
13002 self.assertEqual(d.getSlice(s,1,4),slice(5,8,1))
13003 self.assertEqual(d.getSlice(s,2,4),slice(8,11,1))
13004 self.assertEqual(d.getSlice(s,3,4),slice(11,16,1))
13006 d=DataArrayInt.Range(0,18,1)
13007 s=slice(None,None,1)
13008 self.assertEqual(d.getSlice(s,0,4),slice(0,4,1))
13009 self.assertEqual(d.getSlice(s,1,4),slice(4,8,1))
13010 self.assertEqual(d.getSlice(s,2,4),slice(8,12,1))
13011 self.assertEqual(d.getSlice(s,3,4),slice(12,18,1))
13013 d=DataArrayInt.Range(0,18,1)
13015 self.assertRaises(InterpKernelException,d.getNumberOfItemGivenBES,s)
13016 self.assertEqual(d.getNumberOfItemGivenBESRelative(s),8)
13017 self.assertEqual(d.getSlice(s,0,4),slice(17,13,-2))
13018 self.assertEqual(d.getSlice(s,1,4),slice(13,9,-2))
13019 self.assertEqual(d.getSlice(s,2,4),slice(9,5,-2))
13020 self.assertEqual(d.getSlice(s,3,4),slice(5,2,-2))
13023 def testSwig2AccumulatePerChunk1(self):
13024 arr=DataArrayDouble(11) ; arr.iota()
13025 m=MEDCouplingCMesh() ; m.setCoords(arr,arr)
13026 m=m.buildUnstructured()
13027 m0=m[::2] ; ids0=m0.simplexize(0) ; m1=m[1::2]
13028 m=MEDCouplingUMesh.MergeUMeshesOnSameCoords(m0,m1) ; m.setName("mesh")
13029 m.checkConsecutiveCellTypesForMEDFileFrmt()
13031 formula="7-sqrt((x-5.)*(x-5.)+(y-5.)*(y-5.))"
13032 f=MEDCouplingFieldDouble(ON_CELLS,ONE_TIME) ; f.setMesh(m)
13033 f.fillFromAnalytic(1,formula)
13034 f.setName("Field1") ; f.setTime(1.1,1,-1)
13038 arr2=DataArrayDouble(len(arr),2) ; arr2[:,0]=arr
13039 arr2=DataArrayDouble(len(arr),2) ; arr2[:,0]=arr ; arr2[:,1]=2*arr
13042 # here the compact code to obviously put field on cell to nodes
13043 rn,rni=f.getMesh().getReverseNodalConnectivity()
13044 arr2=f.getArray()[rn]
13045 arr4=arr2.accumulatePerChunck(rni)
13046 nbOfCellsSharingNodes=rni.deltaShiftIndex()
13047 arr4/=nbOfCellsSharingNodes.convertToDblArr()
13049 maxNbCSN=nbOfCellsSharingNodes.getMaxValue()[0]
13050 arr3=DataArrayDouble(f.getMesh().getNumberOfNodes(),f.getArray().getNumberOfComponents()) ; arr3[:]=0.
13051 for i in xrange(1,maxNbCSN+1):
13052 ids=nbOfCellsSharingNodes.getIdsEqual(i)
13056 rni2=rni[ids] ; rni2+=j
13057 arr3[ids]+=arr2[rni2]
13061 fNode=MEDCouplingFieldDouble(ON_NODES,ONE_TIME) ; fNode.setMesh(m)
13062 fNode.setName("Field1Node") ; fNode.setTime(1.1,1,-1)
13063 fNode.setArray(arr3) ; fNode.checkCoherency()
13064 self.assertTrue(arr3.isEqual(arr4,1e-12))
13066 d=DataArrayInt.Range(0,20,1)
13067 self.assertTrue(d.accumulatePerChunck([2,4,12]).isEqual(DataArrayInt([5,60])))
13069 a=DataArrayDouble(12) ; a.iota() ; a.rearrange(3)
13070 b=DataArrayDouble(12) ; b.iota(20) ; b.rearrange(3)
13071 ids=DataArrayInt([])
13072 self.assertEqual(len(a[ids]),0)
13073 self.assertEqual(len(b[ids]),0)
13074 a2=a.deepCpy() ; a2[ids]+=b[ids] ; self.assertTrue(a2.isEqual(a,1e-15))
13075 a2=a.deepCpy() ; a2[ids]*=b[ids] ; self.assertTrue(a2.isEqual(a,1e-15))
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))
13080 def testSwig2CheckAndPreparePermutation1(self):
13081 a=DataArrayInt([10003,9999999,5,67])
13082 self.assertTrue(a.checkAndPreparePermutation().isEqual(DataArrayInt([2,3,0,1])))
13083 a=DataArrayInt([10003,-9999999,5,67])
13084 self.assertTrue(a.checkAndPreparePermutation().isEqual(DataArrayInt([3,0,1,2])))
13086 self.assertTrue(a.checkAndPreparePermutation().isEqual(DataArrayInt([])))
13089 self.assertTrue(a.isEqual(DataArrayInt([])))
13092 def testSwig21SGTUMesh1(self):
13093 m=MEDCoupling1GTUMesh.New("m",NORM_PENTA6)
13094 m.__repr__() ; m.__str__()
13095 self.assertTrue(isinstance(m,MEDCoupling1SGTUMesh))
13096 m.setCoords(DataArrayDouble(20,3))
13098 m.__repr__() ; m.__str__()
13099 m.insertNextCell([0,1,2,5,7,2])
13100 self.assertEqual(1,m.getNumberOfCells())
13101 self.assertTrue(DataArrayInt([6]).isEqual(m.computeNbOfNodesPerCell()))
13102 self.assertTrue(DataArrayInt([5]).isEqual(m.computeNbOfFacesPerCell()))
13103 m.__repr__() ; m.__str__()
13105 m.checkCoherency2()
13107 cm=MEDCouplingCMesh() ; cm.setName("m")
13108 arr0=DataArrayDouble(6) ; arr0.iota()
13109 arr1=DataArrayDouble([0,1])
13110 cm.setCoords(arr0,arr1,arr1) ; um=cm.buildUnstructured()
13112 m=MEDCoupling1SGTUMesh("m",NORM_QUAD4)
13113 mem_m=m.getHeapMemorySize()
13115 self.assertIn(m.getHeapMemorySize()-mem_m,xrange(5*4*4,5*4*4+32))
13116 self.assertEqual(m.getNodalConnectivity().getNbOfElemAllocated(),20)
13117 m.setCoords(um.getCoords())
13118 m.insertNextCell([1,0,6,7])
13119 self.assertEqual(1,m.getNumberOfCells())
13120 m.insertNextCell([2,1,7,8])
13121 m.insertNextCell([3,2,8,9])
13122 m.insertNextCell([4,3,9,10])
13123 m.insertNextCell([5,4,10,11])
13124 self.assertEqual(5,m.getNumberOfCells())
13125 self.assertRaises(InterpKernelException,m.insertNextCell,[0,6,7])
13126 self.assertRaises(InterpKernelException,m.insertNextCell,[0,6,7,1,2])
13127 self.assertEqual(m.getNodalConnectivity().getNbOfElemAllocated(),20)
13128 f=m.getMeasureField(ON_CELLS)
13129 self.assertEqual(f.getMesh().getHiddenCppPointer(),m.getHiddenCppPointer())
13130 self.assertTrue(f.getArray().isUniform(1,1e-14))
13131 self.assertEqual(m.getType(),10)
13132 self.assertEqual(m.getCellModelEnum(),NORM_QUAD4)
13133 mo=MEDCoupling1SGTUMesh("m",NORM_QUAD4) ; mo.setCoords(m.getCoords())
13134 mo.setNodalConnectivity(DataArrayInt([1,0,6,7,2,1,7,8,3,2,8,9,4,3,9,10,5,4,10,11]))
13135 self.assertTrue(m.isEqual(mo,1e-12))
13137 mo2=MEDCoupling1SGTUMesh.Merge1SGTUMeshesOnSameCoords([m[[0,1]],m[[2]],m[[3,4]]])
13138 mo2.setName(m.getName())
13139 self.assertTrue(m.isEqual(mo2,1e-12))
13141 mp0=m[[0]] ; mp0.zipCoords() ; mp1=m[2] ; mp1.zipCoords() ; mp2=m[4] ; mp2.zipCoords()
13142 mo3=MEDCoupling1SGTUMesh.Merge1SGTUMeshes([mp0,mp1,mp2])
13143 self.assertTrue(isinstance(mo3,MEDCoupling1SGTUMesh))
13144 mo3.setName(m.getName())
13145 m_ref=m[(0,2,4)] ; m_ref.zipCoords()
13146 m_ref.tryToShareSameCoordsPermute(mo3,1e-12)
13147 self.assertTrue(m_ref.isEqual(mo3,1e-12))
13149 m1=um.buildDescendingConnectivity()[0]
13150 ids=m1.getCellIdsFullyIncludedInNodeIds(DataArrayInt.Range(0,12,1))
13152 m1c=m1.convertIntoSingleGeoTypeMesh()
13153 self.assertTrue(isinstance(m1c,MEDCoupling1SGTUMesh))
13154 self.assertEqual(m1c.getCoords().getHiddenCppPointer(),m.getCoords().getHiddenCppPointer())
13155 m1c.checkCoherency2()
13156 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])))
13157 self.assertEqual(20,m1c.getNodalConnectivityLength())
13158 self.assertTrue(m.isEqual(m1c,1e-12))
13159 m.getNodalConnectivity().setIJ(1,0,1)
13160 self.assertTrue(not m.isEqual(m1c,1e-12))
13161 m.getNodalConnectivity().setIJ(1,0,0)
13162 self.assertTrue(m.isEqual(m1c,1e-12))
13163 m1c.setCoords(m.getCoords().deepCpy())
13164 self.assertTrue(m.isEqual(m1c,1e-12))
13165 m1c.getCoords().setIJ(0,1,0.1)
13166 self.assertTrue(not m.isEqual(m1c,1e-12))
13167 m1c.getCoords().setIJ(0,1,0)
13168 self.assertTrue(m.isEqual(m1c,1e-12))
13169 m1c.getCoords().setInfoOnComponent(1,"X")
13170 self.assertTrue(not m.isEqual(m1c,1e-12) and m.isEqualWithoutConsideringStr(m1c,1e-12))
13171 m.getCoords().setInfoOnComponent(1,"X")
13172 self.assertTrue(m.isEqual(m1c,1e-12) and m.isEqualWithoutConsideringStr(m1c,1e-12))
13174 self.assertTrue(not m.isEqual(m1c,1e-12) and m.isEqualWithoutConsideringStr(m1c,1e-12))
13176 m.checkCoherency() ; m.checkCoherency1() ; m.checkCoherency2()
13177 self.assertEqual(m.getMeshDimension(),2)
13178 self.assertTrue(m.giveCellsWithType(NORM_QUAD4).isEqual(DataArrayInt([0,1,2,3,4])))
13179 self.assertTrue(m.giveCellsWithType(NORM_TRI3).isEqual(DataArrayInt([])))
13180 self.assertEqual(m.getNumberOfCellsWithType(NORM_QUAD4),5)
13181 self.assertEqual(m.getNumberOfCellsWithType(NORM_TRI3),0)
13182 self.assertEqual(m.getTypeOfCell(3),NORM_QUAD4)
13183 self.assertRaises(InterpKernelException,m.getTypeOfCell,5)
13184 self.assertEqual(m.getAllGeoTypes(),[NORM_QUAD4])
13185 self.assertEqual(m.getDistributionOfTypes(),[[NORM_QUAD4,5,-1]])
13187 pfl1=DataArrayInt([1,3,4])
13188 a,b,c=m.splitProfilePerType(pfl1)
13189 d,e,f=m.buildUnstructured().splitProfilePerType(pfl1)
13190 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())
13191 self.assertTrue(a==d and len(b)==1 and b[0].isEqual(e[0]) and len(c)==1 and c[0].isEqual(f[0]))
13193 pfl2=DataArrayInt([0,1,2,3])
13194 a,b,c=m.splitProfilePerType(pfl2)
13195 d,e,f=m.buildUnstructured().splitProfilePerType(pfl2)
13196 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())
13197 self.assertTrue(a==d and len(b)==1 and b[0].isEqual(e[0]) and len(c)==1 and c[0].isEqual(f[0]))
13199 pfl3=DataArrayInt([0,1,2,3,4])
13200 a,b,c=m.splitProfilePerType(pfl3)
13201 d,e,f=m.buildUnstructured().splitProfilePerType(pfl3)
13202 self.assertTrue(a==[[4,5,-1]] and len(b)==1 and b[0].isEqual(DataArrayInt([0,1,2,3,4])) and c==[])
13203 self.assertTrue(a==d and len(b)==1 and b[0].isEqual(e[0]) and c==[])
13205 invalidPfl=DataArrayInt([1,2,3,4,5])
13206 self.assertRaises(InterpKernelException,m.splitProfilePerType,invalidPfl)
13207 self.assertRaises(InterpKernelException,m.buildUnstructured().splitProfilePerType,invalidPfl)
13209 pfl1=DataArrayInt([1,2,3])
13210 a=m.checkTypeConsistencyAndContig([NORM_QUAD4,3,0],[pfl1])
13211 b=m.buildUnstructured().checkTypeConsistencyAndContig([NORM_QUAD4,3,0],[pfl1])
13212 self.assertTrue(a.isEqual(b) and pfl1.getHiddenCppPointer(),a.getHiddenCppPointer())
13214 pfl2=DataArrayInt([0,1,2,3])
13215 a=m.checkTypeConsistencyAndContig([NORM_QUAD4,4,0],[pfl2])
13216 b=m.buildUnstructured().checkTypeConsistencyAndContig([NORM_QUAD4,4,0],[pfl2])
13217 self.assertTrue(a.isEqual(b) and pfl2.getHiddenCppPointer()==a.getHiddenCppPointer())
13219 pfl3=DataArrayInt([0,1,2,3,4])
13220 a=m.checkTypeConsistencyAndContig([NORM_QUAD4,4,0],[pfl3])
13221 b=m.buildUnstructured().checkTypeConsistencyAndContig([NORM_QUAD4,5,0],[pfl3])
13222 self.assertTrue(a.isEqual(b) and pfl3.getHiddenCppPointer()==a.getHiddenCppPointer())
13224 invalidPfl=DataArrayInt([1,2,3,4,5])
13225 self.assertRaises(InterpKernelException,m.checkTypeConsistencyAndContig,[NORM_QUAD4,5,0],[invalidPfl])
13226 self.assertRaises(InterpKernelException,m.buildUnstructured().checkTypeConsistencyAndContig,[NORM_QUAD4,5,0],[invalidPfl])
13228 self.assertTrue(DataArrayInt([4,4,4,4,4]).isEqual(m.computeNbOfNodesPerCell()))
13230 self.assertEqual(m.getNodeIdsOfCell(1),[2,1,7,8])
13232 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))
13234 ref=m.getCoords().getHiddenCppPointer()
13235 mcpy=m.deepCpy() ; mcpy.insertNextCell([1,0,6,7])
13236 c=m.getNodalConnectivity().deepCpy()
13237 o2n=DataArrayInt([2,0,1,4,3])
13238 m.renumberCells(o2n,False)
13239 c.rearrange(4) ; c.renumberInPlace(o2n) ; c.rearrange(1)
13240 self.assertTrue(c.isEqual(m.getNodalConnectivity()))
13241 self.assertEqual(ref,m.getCoords().getHiddenCppPointer())
13242 m2=mcpy.mergeMyselfWith(m)
13243 self.assertTrue(isinstance(m2,MEDCoupling1SGTUMesh))
13244 self.assertEqual(11,m2.getNumberOfCells())
13245 self.assertEqual(48,m2.getNumberOfNodes())
13246 self.assertTrue(m2.getCoords().isEqual(DataArrayDouble.Aggregate([m.getCoords(),m.getCoords()]),1e-12))
13247 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])))
13249 mu=m.buildUnstructured()
13250 mu.checkCoherency2()
13251 self.assertEqual(mu.getCoords().getHiddenCppPointer(),m.getCoords().getHiddenCppPointer())
13252 self.assertEqual(2,mu.getMeshDimension())
13253 self.assertEqual([NORM_QUAD4],mu.getAllGeoTypes())
13254 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])))
13255 self.assertTrue(mu.getNodalConnectivityIndex().isEqual(DataArrayInt([0,5,10,15,20,25])))
13258 mcpy2=m.deepCpy() ; umcpy2=mcpy2.buildUnstructured()
13259 ids=mcpy2.simplexize(typ) ; ids2=umcpy2.simplexize(typ)
13260 self.assertTrue(ids.isEqual(ids2))
13261 mcpy3=umcpy2.convertIntoSingleGeoTypeMesh()
13262 self.assertTrue(mcpy2.isEqual(mcpy3,1e-14))
13264 um1=um.convertIntoSingleGeoTypeMesh()
13265 self.assertEqual(8,um1.getNumberOfNodesPerCell())
13266 for typ in [PLANAR_FACE_5,PLANAR_FACE_6]:
13267 mcpy2=um1.deepCpy() ; umcpy2=mcpy2.buildUnstructured()
13268 ids=mcpy2.simplexize(typ) ; ids2=umcpy2.simplexize(typ)
13269 self.assertTrue(ids.isEqual(ids2))
13270 mcpy3=umcpy2.convertIntoSingleGeoTypeMesh()
13271 self.assertTrue(mcpy2.isEqual(mcpy3,1e-14))
13274 self.assertRaises(InterpKernelException,mcpy.mergeMyselfWithOnSameCoords,m)
13275 mcpy.tryToShareSameCoords(m,1e-14)
13276 m3=mcpy.mergeMyselfWithOnSameCoords(m)
13277 self.assertTrue(isinstance(m3,MEDCoupling1SGTUMesh))
13278 self.assertEqual(11,m3.getNumberOfCells())
13279 self.assertEqual(24,m3.getNumberOfNodes())
13280 self.assertEqual(m3.getCoords().getHiddenCppPointer(),mcpy.getCoords().getHiddenCppPointer())
13281 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])))
13283 ref=mcpy.getCoords().deepCpy()
13284 c3=mcpy.getNodalConnectivity()[:]
13285 mcpy.getNodalConnectivity().setIJ(int(c3.getIdsEqual(11)),0,24)
13286 c2=DataArrayDouble.Aggregate([mcpy.getCoords(),mcpy.getCoords()[11:]])
13288 mcpy.checkCoherency2()
13289 a,b=mcpy.getNodeIdsInUse()
13290 self.assertEqual(12,b)
13291 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])))
13292 ids=mcpy.zipCoordsTraducer()
13293 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])))
13294 self.assertTrue(mcpy.getCoords().isEqual(ref[:12],1e-12))
13295 self.assertTrue(mcpy.getNodalConnectivity().isEqual(c3))
13296 mcpy.checkCoherency2()
13298 m4=mcpy[DataArrayInt([0,3,4])]
13299 m5=mcpy.buildPartOfMySelfKeepCoords(DataArrayInt([0,3,4]))
13300 self.assertTrue(isinstance(m4,MEDCoupling1SGTUMesh))
13301 self.assertTrue(m4.isEqual(m5,-1e-14))# < 0 not a bug it proves that coordinates pointer are equal
13302 self.assertTrue(m4.getNodalConnectivity().isEqual(DataArrayInt([1,0,6,7,4,3,9,10,5,4,10,11])))
13304 self.assertTrue(isinstance(m6,MEDCoupling1SGTUMesh))
13305 self.assertTrue(m6.getNodalConnectivity().isEqual(DataArrayInt([1,0,6,7,3,2,8,9,5,4,10,11])))
13307 mcpy.setCoords(DataArrayDouble.Aggregate([mcpy.getCoords(),mcpy.getCoords()]))
13308 mcpy.checkCoherency2()
13310 mcppy=mcpy.deepCpyConnectivityOnly()
13311 self.assertTrue(mcppy.isEqual(mcpy,1e-12))
13312 self.assertTrue(mcppy.getCoords().getHiddenCppPointer()==mcpy.getCoords().getHiddenCppPointer())
13313 self.assertTrue(mcppy.getNodalConnectivity().isEqual(mcpy.getNodalConnectivity()))
13314 self.assertTrue(mcppy.getNodalConnectivity().getHiddenCppPointer()!=mcpy.getNodalConnectivity().getHiddenCppPointer())
13316 a,b=mcpy.getReverseNodalConnectivity()
13317 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])))
13318 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])))
13319 self.assertTrue(mcpy.fillCellIdsToKeepFromNodeIds([0,1,6,7],False).isEqual(DataArrayInt([0,1,5])))
13320 self.assertTrue(mcpy.fillCellIdsToKeepFromNodeIds([0,1,6,7],True).isEqual(DataArrayInt([0,5])))
13321 self.assertTrue(mcpy.getCellsInBoundingBox([(0,1),(0,1),(0,1)],1e-12).isEqual(DataArrayInt([0,1,5])))
13322 f=mcpy.buildOrthogonalField()
13323 self.assertEqual(f.getMesh().getHiddenCppPointer(),mcpy.getHiddenCppPointer())
13324 self.assertTrue(f.getArray().isEqual(DataArrayDouble(6*[(0,0,-1)]),1e-12))
13325 mcpy.changeSpaceDimension(2)
13326 self.assertEqual(1,mcpy.getCellContainingPoint([1.5,0.5],1e-12))
13328 self.assertTrue(mcpy.fillCellIdsToKeepFromNodeIds(DataArrayInt([6,7]),False).isEqual(DataArrayInt([0,1,5])))
13330 mcpy2=mcpy.deepCpy()
13331 self.assertEqual([None,None],mcpy.checkGeoEquivalWith(mcpy2,1,1e-12))#fast equal
13332 mcpy.checkFastEquivalWith(mcpy2,1e-12)
13333 mcpy2.renumberCells([0,2,4,3,1,5])
13334 mcpy.checkFastEquivalWith(mcpy2,1e-12)
13335 self.assertEqual([None,None],mcpy.checkGeoEquivalWith(mcpy2,1,1e-12))#fast equal
13336 mcpy2.renumberCells([0,2,4,3,1,5])
13337 mcpy2.renumberCells([1,3,5,0,2,4])
13338 self.assertRaises(InterpKernelException,mcpy.checkFastEquivalWith,mcpy2,1e-12)
13339 self.assertRaises(InterpKernelException,mcpy.checkGeoEquivalWith,mcpy2,1,1e-12)#fast equal
13342 def testSwig21DGTUMesh1(self):
13343 a0=DataArrayInt([0,2,3,5,6,8])
13344 a1=DataArrayInt([0,4,7,11,14,18,21,25])
13345 a2=DataArrayInt([0,1,4,5])
13346 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])))
13347 self.assertEqual(a1[3:].front(),11)
13348 self.assertEqual(a1[4:].convertToDblArr().front(),14.)
13349 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])
13350 d,e=MEDCouplingUMesh.ExtractFromIndexedArrays2(1,5,2,a1c,a1)
13351 self.assertTrue(d.isEqual(DataArrayInt([8,11,0,1,5,2])))
13352 self.assertTrue(e.isEqual(DataArrayInt([0,3,6])))
13354 m=MEDCouplingDataForTest.build2DTargetMesh_1()[0,3,4]
13355 ref=DataArrayInt([0,3,4,1,6,7,4,3,7,8,5,4])
13356 self.assertTrue(m.convertNodalConnectivityToStaticGeoTypeMesh().isEqual(ref))
13357 d,e=m.convertNodalConnectivityToDynamicGeoTypeMesh()
13358 self.assertTrue(d.isEqual(ref))
13359 self.assertTrue(e.isEqual(DataArrayInt.Range(0,13,4)))
13360 self.assertTrue(m.fillCellIdsToKeepFromNodeIds(DataArrayInt([6,7]),False).isEqual(DataArrayInt([1,2])))
13362 m=MEDCoupling1GTUMesh.New("m",NORM_POLYHED)
13363 self.assertTrue(isinstance(m,MEDCoupling1DGTUMesh))
13364 m.__repr__() ; m.__str__()
13365 m.setCoords(DataArrayDouble(20,3))
13367 m.__repr__() ; m.__str__()
13368 m.insertNextCell([0,1,2,5,7,2,-1,1,3])
13369 self.assertEqual(1,m.getNumberOfCells())
13370 self.assertTrue(DataArrayInt([8]).isEqual(m.computeNbOfNodesPerCell()))
13371 self.assertTrue(DataArrayInt([2]).isEqual(m.computeNbOfFacesPerCell()))
13372 m.__repr__() ; m.__str__()
13374 m.checkCoherency2()
13376 cm=MEDCouplingCMesh() ; cm.setName("m")
13377 arr0=DataArrayDouble(6) ; arr0.iota()
13378 arr1=DataArrayDouble([0,1])
13379 cm.setCoords(arr0,arr1,arr1) ; um=cm.buildUnstructured() ; um.convertAllToPoly()
13380 um2=um.deepCpyConnectivityOnly()
13381 self.assertTrue(um2.isEqual(um,1e-12))
13382 self.assertEqual(um2.getCoords().getHiddenCppPointer(),um.getCoords().getHiddenCppPointer())
13383 self.assertTrue(um2.getNodalConnectivity().isEqual(um.getNodalConnectivity()))
13384 self.assertTrue(um2.getNodalConnectivity().getHiddenCppPointer()!=um.getNodalConnectivity().getHiddenCppPointer())
13385 self.assertTrue(um2.getNodalConnectivityIndex().isEqual(um.getNodalConnectivityIndex()))
13386 self.assertTrue(um2.getNodalConnectivityIndex().getHiddenCppPointer()!=um.getNodalConnectivityIndex().getHiddenCppPointer())
13388 self.assertRaises(InterpKernelException,MEDCoupling1SGTUMesh.New,"m",NORM_POLYHED)
13389 m=MEDCoupling1DGTUMesh("m",NORM_POLYHED)
13391 self.assertEqual(15,m.getNodalConnectivity().getNbOfElemAllocated())
13392 self.assertEqual(6,m.getNodalConnectivityIndex().getNbOfElemAllocated())
13393 m.setCoords(um.getCoords())
13394 m.insertNextCell([1,0,6,7,-1,7,6,1])
13395 self.assertEqual(1,m.getNumberOfCells())
13396 m.insertNextCell([2,1,7,8,-1,2,1,-1,8,-1,7])
13397 m.insertNextCell([3,2,8,9])
13398 m.insertNextCell([4,3,9,10,-1,5,3,9])
13399 m.insertNextCell([5,4,10,11,-1,11,10,-1,5])
13401 m.checkCoherency2()
13402 self.assertEqual(5,m.getNumberOfCells())
13403 self.assertTrue(m.getNodalConnectivityIndex().isEqual(DataArrayInt([0,8,19,23,31,40])))
13404 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])))
13407 self.assertTrue(m.isEqual(m4,1e-12))
13408 m4.getNodalConnectivity().setIJ(2,0,5)
13409 self.assertTrue(not m.isEqual(m4,1e-12))
13410 m4.getNodalConnectivity().setIJ(2,0,6)
13411 self.assertTrue(m.isEqual(m4,1e-12))
13412 m4.getNodalConnectivityIndex().setIJ(2,0,21)
13413 self.assertTrue(not m.isEqual(m4,1e-12))
13414 m4.getNodalConnectivityIndex().setIJ(2,0,19)
13415 self.assertTrue(m.isEqual(m4,1e-12))
13416 m4.getCoords().setIJ(10,1,1.1)
13417 self.assertTrue(not m.isEqual(m4,1e-12))
13418 m4.getCoords().setIJ(10,1,1.)
13419 self.assertTrue(m.isEqual(m4,1e-12))
13420 m4.getNodalConnectivity().pushBackSilent(7)
13421 self.assertTrue(not m.isEqual(m4,1e-12))
13422 self.assertEqual(7,m4.getNodalConnectivity().popBackSilent())
13423 self.assertTrue(m.isEqual(m4,1e-12))
13425 self.assertTrue(not m.isEqual(m4,1e-12))
13427 self.assertTrue(m.isEqual(m4,1e-12))
13429 self.assertEqual(6,m.getNodalConnectivityIndex().getNbOfElemAllocated())
13430 self.assertEqual(60,m.getNodalConnectivity().getNbOfElemAllocated())
13431 self.assertTrue(m.computeNbOfNodesPerCell().isEqual(DataArrayInt([7,8,4,7,7])))
13432 self.assertTrue(m.computeNbOfFacesPerCell().isEqual(DataArrayInt([2,4,1,2,3])))
13433 self.assertEqual(m.getNodeIdsOfCell(1),[2,1,7,8,-1,2,1,-1,8,-1,7])
13434 f=m.computeIsoBarycenterOfNodesPerCell()
13435 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))
13436 mu0=m.buildUnstructured()
13439 m3=m.deepCpyConnectivityOnly()
13440 self.assertTrue(m3.isEqual(m,1e-12))
13441 self.assertEqual(m3.getCoords().getHiddenCppPointer(),m.getCoords().getHiddenCppPointer())
13442 self.assertTrue(m3.getNodalConnectivity().getHiddenCppPointer()!=m.getNodalConnectivity().getHiddenCppPointer())
13443 self.assertTrue(m3.getNodalConnectivity().isEqual(m.getNodalConnectivity()))
13444 self.assertTrue(m3.getNodalConnectivityIndex().getHiddenCppPointer()!=m.getNodalConnectivityIndex().getHiddenCppPointer())
13445 self.assertTrue(m3.getNodalConnectivityIndex().isEqual(m.getNodalConnectivityIndex()))
13446 m.renumberCells(o2n)
13447 mu0.renumberCells(o2n)
13448 self.assertTrue(mu0.isEqual(m.buildUnstructured(),1e-12))
13449 self.assertTrue(m.getNodalConnectivityIndex().isEqual(DataArrayInt([0,4,12,23,32,40])))
13450 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])))
13452 mcpy0=m.buildUnstructured()
13453 self.assertTrue(isinstance(mcpy0,MEDCouplingUMesh))
13454 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])))
13455 self.assertTrue(mcpy0.getNodalConnectivityIndex().isEqual(DataArrayInt([0,5,14,26,36,45])))
13456 self.assertEqual(mcpy0.getAllGeoTypes(),[NORM_POLYHED])
13457 mcpy0.checkCoherency()
13458 mcpy0.checkCoherency2()
13459 mcpy1=mcpy0.convertIntoSingleGeoTypeMesh()
13460 self.assertTrue(mcpy1.isEqual(m,1e-12))
13462 m_mrg=MEDCoupling1DGTUMesh.Merge1DGTUMeshes([m2,m,m2])
13463 self.assertTrue(m_mrg.getNodalConnectivityIndex().isEqual(DataArrayInt([0,8,19,23,31,40,44,52,63,72,80,88,99,103,111,120])))
13464 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])))
13465 m_mrg2=MEDCoupling1DGTUMesh.Merge1DGTUMeshesOnSameCoords([m3,m,m3])
13466 self.assertTrue(m_mrg2.getNodalConnectivityIndex().isEqual(DataArrayInt([0,8,19,23,31,40,44,52,63,72,80,88,99,103,111,120])))
13467 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])))
13468 a,b=m_mrg2.getReverseNodalConnectivity()
13469 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])))
13470 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])))
13471 self.assertTrue(m_mrg2.fillCellIdsToKeepFromNodeIds([7],False).isEqual(DataArrayInt([0,1,6,7,10,11])))
13472 self.assertTrue(m_mrg2.fillCellIdsToKeepFromNodeIds([0,1,6,7],True).isEqual(DataArrayInt([0,6,10])))
13474 self.assertTrue(m_mrg2.isPacked())
13475 self.assertEqual(120,m_mrg2.getNodalConnectivityIndex().popBackSilent())
13476 self.assertEqual(m_mrg2.getNumberOfCells(),14)
13477 m_mrg2.checkCoherency2()
13478 self.assertTrue(not m_mrg2.isPacked())
13479 m_mrg4,b=m_mrg2.copyWithNodalConnectivityPacked()
13480 self.assertTrue(not b)
13481 m_mrg4.checkCoherency2()
13482 self.assertEqual(m_mrg4.getNumberOfCells(),14)
13483 self.assertTrue(m_mrg4.getNodalConnectivityIndex().isEqual(m_mrg2.getNodalConnectivityIndex()))
13484 self.assertEqual(len(m_mrg4.getNodalConnectivity()),111)
13485 self.assertEqual(len(m_mrg2.getNodalConnectivity()),120)
13486 self.assertTrue(m_mrg4.getNodalConnectivity().isEqual(m_mrg2.getNodalConnectivity()[:111]))
13489 m1=m_mrg2[[5,6,7,8,9]]
13491 self.assertTrue(m1.isEqualWithoutConsideringStr(m,1e-12))
13492 a,b=m.checkGeoEquivalWith(m0,12,1e-12)
13493 self.assertTrue(a.isEqual(DataArrayInt(o2n)))
13494 self.assertTrue(b is None)
13497 def testSwig2DADAreIncludedInMe1(self):
13498 a=DataArrayDouble(30) ; a.iota() ; a.rearrange(3)
13499 p=DataArrayInt([5,2,1,9])
13500 b,c=a.areIncludedInMe(a[p],1e-12)
13502 self.assertTrue(c.isEqual(p))
13505 b,c=a.areIncludedInMe(d,1e-12)
13506 self.assertTrue(not b)
13507 self.assertTrue(c.isEqual(DataArrayInt([5,2,1,10])))
13510 def testSwig2DADesallocate1(self):
13511 d=DataArrayDouble([(1,2),(6,7),(6,8)]) ; d.setInfoOnComponents(["aa","bbb"])
13512 self.assertTrue(d.isAllocated())
13514 self.assertEqual(d.getInfoOnComponents(),["aa","bbb"])
13515 ref=d.getHeapMemorySize()
13517 self.assertEqual(ref-d.getHeapMemorySize(),6*8)
13518 self.assertTrue(not d.isAllocated())
13519 self.assertEqual(d.getInfoOnComponents(),["aa","bbb"])
13520 self.assertRaises(InterpKernelException,d.checkAllocated)
13522 d=DataArrayInt([(1,2),(6,7),(6,8)]) ; d.setInfoOnComponents(["aa","bbb"])
13523 self.assertTrue(d.isAllocated())
13525 self.assertEqual(d.getInfoOnComponents(),["aa","bbb"])
13526 ref=d.getHeapMemorySize()
13528 self.assertEqual(ref-d.getHeapMemorySize(),6*4)
13529 self.assertTrue(not d.isAllocated())
13530 self.assertEqual(d.getInfoOnComponents(),["aa","bbb"])
13531 self.assertRaises(InterpKernelException,d.checkAllocated)
13534 def testSwig2IsPartStructured1(self):
13536 d10=DataArrayInt([2,3,4,5,6,7,8,9,10,11])
13537 a,b=MEDCouplingStructuredMesh.IsPartStructured(d10,[13])
13538 self.assertTrue(a) ; self.assertEqual(b,[(2,12)])
13539 d11=DataArrayInt([2,3,4,5,6,7,8,10,9,11])
13540 a,b=MEDCouplingStructuredMesh.IsPartStructured(d11,[13])
13541 self.assertTrue(not a)
13542 self.assertRaises(InterpKernelException,MEDCouplingStructuredMesh.IsPartStructured,d10,[11])
13545 d20=DataArrayInt([1,2,3,4,11,12,13,14,21,22,23,24])
13546 a,b=MEDCouplingStructuredMesh.IsPartStructured(d20,st)
13547 self.assertTrue(a) ; self.assertEqual(b,[(1,5),(0,3)])
13548 self.assertEqual(12,MEDCouplingStructuredMesh.DeduceNumberOfGivenRangeInCompactFrmt(b))
13549 self.assertEqual(0,MEDCouplingStructuredMesh.DeduceNumberOfGivenRangeInCompactFrmt([(1,5),(1,3),(2,2)]))
13550 self.assertEqual(0,MEDCouplingStructuredMesh.DeduceNumberOfGivenRangeInCompactFrmt([(5,5),(3,3),(2,2)]))
13551 self.assertEqual(36,MEDCouplingStructuredMesh.DeduceNumberOfGivenStructure([3,2,6]))
13552 self.assertEqual(126,MEDCouplingStructuredMesh.DeduceNumberOfGivenStructure((3,7,6)))
13553 d20=DataArrayInt([1,2,3,4,12,11,13,14,21,22,23,24])
13554 a,b=MEDCouplingStructuredMesh.IsPartStructured(d20,st)
13555 self.assertTrue(not a)
13556 d20=DataArrayInt([1,2,3,4,11,12,13,15,21,22,23,24])
13557 a,b=MEDCouplingStructuredMesh.IsPartStructured(d20,st)
13558 self.assertTrue(not a)
13559 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])
13560 a,b=MEDCouplingStructuredMesh.IsPartStructured(d21,st)
13561 self.assertTrue(a) ; self.assertEqual(b,[(0,10),(0,4)])
13562 d22=DataArrayInt([1,2,3,4,11,12,13,14,21,22,23,24,31,32,33,34,41,42,43,44])
13563 self.assertRaises(InterpKernelException,MEDCouplingStructuredMesh.IsPartStructured,d22,st)
13564 a,b=MEDCouplingStructuredMesh.IsPartStructured(d22,[10,5])
13565 self.assertTrue(a) ; self.assertEqual(b,[(1,5),(0,5)])
13567 d30=DataArrayInt([11,12,13,14,21,22,23,24,51,52,53,54,61,62,63,64])
13568 a,b=MEDCouplingStructuredMesh.IsPartStructured(d30,[10,4,2])
13569 self.assertTrue(a) ; self.assertEqual(b,[(1,5),(1,3),(0,2)])
13570 d31=DataArrayInt([11,12,13,14,21,22,24,23,51,52,53,54,61,62,63,64])
13571 a,b=MEDCouplingStructuredMesh.IsPartStructured(d31,[10,4,2])
13572 self.assertTrue(not a)
13573 self.assertRaises(InterpKernelException,MEDCouplingStructuredMesh.IsPartStructured,d30,[10,4,1])
13576 def testSwig2PartStructured1(self):
13577 c=MEDCouplingCMesh() ; c.setName("toto")
13578 arr0=DataArrayDouble(10); arr0.iota()
13579 arr1=DataArrayDouble(4) ; arr1.iota(3)
13580 c.setCoords(arr0,arr1)
13581 self.assertEqual(c.getNodeGridStructure(),(10,4))
13582 self.assertEqual(c.getCellGridStructure(),(9,3))
13583 d20=DataArrayInt([1,2,3,4,10,11,12,13,19,20,21,22])
13584 self.assertEqual(27,c.getNumberOfCells())
13585 self.assertEqual(40,c.getNumberOfNodes())
13586 self.assertEqual(2,c.getMeshDimension())
13589 arr2=MEDCouplingStructuredMesh.BuildExplicitIdsFrom([9,3],[(1,5),(0,3)])
13590 self.assertTrue(arr2.isEqual(DataArrayInt([1,2,3,4,10,11,12,13,19,20,21,22])))
13592 c2=c.buildStructuredSubPart([(1,5),(0,3)])
13593 c2.checkCoherency()
13594 self.assertTrue(isinstance(c2,MEDCouplingCMesh))
13595 self.assertEqual(12,c2.getNumberOfCells())
13596 self.assertEqual(20,c2.getNumberOfNodes())
13597 self.assertEqual(2,c2.getMeshDimension())
13598 self.assertEqual("toto",c2.getName())
13599 self.assertTrue(c2.getCoordsAt(0).isEqual(DataArrayDouble([1.,2.,3.,4.,5.]),1e-12))
13600 self.assertTrue(c2.getCoordsAt(1).isEqual(DataArrayDouble([3.,4.,5.,6.]),1e-12))
13602 a,b=c.buildPartAndReduceNodes(d20)
13604 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])
13605 self.assertTrue(exp2.isEqual(b))
13606 self.assertTrue(isinstance(a,MEDCouplingCMesh))
13607 self.assertTrue(a.buildUnstructured().isEqual(c.buildUnstructured().buildPartAndReduceNodes(d20)[0],1e-12))
13609 c2=MEDCouplingCurveLinearMesh() ; c2.setName("toto")
13610 c2.setCoords(c.buildUnstructured().getCoords())
13611 c2.setNodeGridStructure([10,4])
13612 c2.checkCoherency()
13613 a,b=c2.buildPartAndReduceNodes(d20)
13615 self.assertTrue(exp2.isEqual(b))
13616 self.assertTrue(isinstance(a,MEDCouplingCurveLinearMesh))
13617 self.assertTrue(a.buildUnstructured().isEqual(c2.buildUnstructured().buildPartAndReduceNodes(d20)[0],1e-12))
13620 def testSwig2FindPermutationFromFirstToSecond1(self):
13621 ids1=DataArrayInt([3,1,103,4,6,10,-7,205])
13622 ids2=DataArrayInt([-7,1,205,10,6,3,103,4])
13623 ids3=DataArrayInt.FindPermutationFromFirstToSecond(ids1,ids2)
13624 self.assertTrue(ids3.isEqual(DataArrayInt([5,1,6,7,4,3,0,2])))
13625 ids2ToTest=ids1.renumber(ids3)
13626 self.assertTrue(ids2ToTest.isEqual(ids2))
13627 self.assertRaises(InterpKernelException,DataArrayInt.FindPermutationFromFirstToSecond,DataArrayInt([3,1,103]),DataArrayInt([1,103]))
13628 self.assertRaises(InterpKernelException,DataArrayInt.FindPermutationFromFirstToSecond,DataArrayInt([3,1,103]),DataArrayInt([1,103,2]))
13629 self.assertRaises(InterpKernelException,DataArrayInt.FindPermutationFromFirstToSecond,DataArrayInt([3,1,103]),DataArrayInt([1,103,1]))
13630 self.assertTrue(DataArrayInt.FindPermutationFromFirstToSecond(DataArrayInt([]),DataArrayInt([])).empty())
13633 def testSwig2BugStructuredMeshGetNodeIdsOfCell1(self):
13634 m=MEDCouplingCMesh("mesh")
13635 coordsX=DataArrayDouble([0,1.1,2.2,3.3,4.4]) ; coordsX.setInfoOnComponents(["XX [m]"])
13636 coordsY=DataArrayDouble([0,1.7,3.4]) ; coordsY.setInfoOnComponents(["YYY [km]"])
13637 m.setCoords(coordsX,coordsY)
13638 self.assertEqual([2,3,8,7],m.getNodeIdsOfCell(2))
13639 self.assertEqual([3,4,9,8],m.getNodeIdsOfCell(3))
13640 self.assertEqual([7,8,13,12],m.getNodeIdsOfCell(6))
13641 self.assertEqual([8,9,14,13],m.getNodeIdsOfCell(7))
13644 def testSwig2ThrowOnDAIInvertN2O2ON2(self):
13645 p1=DataArrayInt([3,5,8])
13646 p2=DataArrayInt([0,3,4,5,6,7,8,9,10])
13647 p1.transformWithIndArr(p2.invertArrayN2O2O2N(11))
13648 self.assertTrue(p1.isEqual(DataArrayInt([1,3,6])))
13649 self.assertTrue(p2.invertArrayN2O2O2N(11).isEqual(DataArrayInt([0,-1,-1,1,2,3,4,5,6,7,8])))
13650 self.assertRaises(InterpKernelException,p2.invertArrayN2O2O2N,10)
13653 def testSwig2ComputeEffectiveNbOfNodesPerCell1(self):
13654 coords=DataArrayDouble([ 0.241310763507 , 0.0504777305619 , 0.0682283524903 , 0.252501053866 , -0.0625176732937 , 0.137272639894 ,
13655 0.152262663601 , 0.241816569527 , 0.133812556197 , 0.18047750211 , -0.0789949051358 , 0.339098173401 ,
13656 0.151741971857 , 0.238885278571 , 0.137715037333 , 0.242532155481 , -0.0928169086456 , 0.0678043417367 ,
13657 0.240941965335 , -0.015461491464 , 0.0617186345825 , 0.24127650112 , 0.0499427876717 , 0.0679634099148 ,
13658 -0.145828917428 , 0.206291632565 , 0.0310071927543 , 0.0125651775307 , 0.266262085828 , 0.105228430543 ,
13659 -0.0994066533286 , 0.233224271238 , 0.0572213839567 , -0.0951345338317 , 0.234819509426 , 0.0592126284538 ,
13660 0.136580574205 , -0.205486212579 , 0.0572866072014 , 0.0637270784978 , -0.168886355238 , 0.446614057077 ,
13661 0.041337157151 , -0.213402568198 , 0.372407095999 , 0.0411601970268 , -0.202387875756 , 0.411334979491 ,
13662 -0.108355701857 , 0.193636239335 , 0.204886756738 , 0.00639779029829 , 0.155296981517 , 0.252585892979 ,
13663 0.0262473111702 , -0.112919732543 , 0.424286639249 ,-0.224103052733 , -0.139430015438 , -0.0122352295701 ,
13664 -0.0312760589481 , -0.274272003594 , 0.0323959636568 , -0.166663422532 , -0.217754445175 , 0.00392109070364 ,
13665 -0.30586619777 , -0.0475168041091 , -0.0144585228182 , -0.280881480586 , 0.135571293538 , 0.00623923647986 ,
13666 -0.25548538234 , 0.156819217766 , 0.0645277879769 , -0.131567009284 , 0.184133752309 , 0.206021802753 ,
13667 -0.196204010965 , 0.151602971681 , 0.212974777736 , -0.183713879463 , 0.0802946639531 , 0.260115662599 ,
13668 -0.244241178767 , -0.0738873389604 , 0.144590565817 , -0.155804057829 , -0.164892720025 , 0.210613950558 ,
13669 -0.170950800428 , -0.215099334026 , 0.00610122860092 , -0.30552634869 , -0.0490020791904 , -0.0132786533145 ,
13670 0.271831011884 , 0.15105657296 , 0.0230534827908 , 0.281919192283 , 0.0898544306288 , -0.0625201489143 ,
13671 0.260240727276 , -0.0120688706637 , -0.0532316588626 , 0.244947737722 , 0.0197984684293 , 0.0309341209233 ,
13672 0.23439631578 , 0.229825279875 , 0.0508520585381 , 0.160921316875 , 0.265078502128 , 0.121716560626 ,
13673 -0.315088694175 , 0.0747700471918 , -0.245836615071 , -0.327728781776 , 0.0857114674649 , -0.239431905957 ,
13674 -0.308385460634 , 0.145142997084 , -0.149886828433 , 0.0488236045164 , 0.309462801914 , 0.0849169148265 ,
13675 -0.0244964803395 , 0.33145611751 , -0.0476415818061 , 0.0060567994229 , 0.32418412014 , 0.0367779543812 ,
13676 -0.0950221448063 , 0.236675326003 , 0.0572594453983 , 0.248723023186 , 0.0886648784791 , -0.176629430538 ,
13677 0.116796984 , 0.256596599567 , -0.292863523603 , 0.118024552914 , 0.229154257843 , -0.34233232501 ,
13678 0.217507892549 , -0.0417822335742 , -0.176771782888 , -0.224429321304 , 0.0125595300114 , -0.362064725588 ,
13679 0.0937301100955 , -0.0500824832657 , -0.299713548444 , -0.244162220397 , 0.0383853931293 , -0.389856984411 ,
13680 -0.0281989366102 , 0.097392811563 , -0.458244577284 , -0.385010847162 , 0.10122766194 , -0.140052859922 ,
13681 -0.377936358012 , 0.110875172128 , -0.176207095463 , 0.244483045556 , -0.0991073977045 , 0.0575134372934 ,
13682 0.262605120167 , -0.100243191645 , -0.0495620806935 , 0.240306880972 , -0.136153701579 , -0.114745281696 ,
13683 0.215763176129 , -0.0836766059189 , -0.183249640616 , 0.237870396603 , -0.132449578286 , -0.121598854639 ,
13684 -0.0637683083097 , -0.27921020214 , -0.149112321992 , -0.0856211014977 , -0.2973233473 , -0.0446878139589 ,
13685 0.104675342288 , -0.0625908305324 , -0.290346256534 , 0.0248264249186 , -0.247797708548 , -0.165830884019 ,
13686 0.0719302438309 , -0.178468260473 , -0.211432157345 , 0.142871843159 , -0.208769948542 , 0.0454101128246 ,
13687 0.167803379307 , -0.207851396623 , -0.088802726124 , 0.12868717152 , -0.230920439715 , 0.00760508389036 ,
13688 -0.0372812069535 , -0.286740286332 , 0.00963701291166 ], 69, 3)
13689 connN = [ #polyhedron 0
13690 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
13691 , 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
13692 , 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
13693 , 22 , 19 , 21 , 30 , 31 , -1 , 22 , 31 , 28 , 27 , 26 , 24 , 23 , -1 , 31 , 30 , 29 , 28,
13695 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
13696 , 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
13697 , 33 , 34 , 48 , 45 , -1 , 35 , 34 , 48 , 50 , 49 , 38 , -1 , 41 , 43 , 42 , 46 , 36 , 37 , -1 , 38 , 39 , 51 , 49 , -1
13698 , 39 , 40 , 42 , 46 , 47 , 52 , 51 , -1 , 45 , 47 , 52 , 50 , 48 , -1 , 52 , 51 , 49 , 50,
13700 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
13701 , 23 , 53 , 54 , 40 , 8 , -1 , 53 , 22 , 23 , -1 , 39 , 54 , 40,
13703 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
13704 , 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
13705 , 55 , 5 , 12 , 65 , -1 , 66 , 67 , 65 , 55 , 56 , 57 , -1 , 63 , 66 , 57 , 59 , 64 , -1 , 64 , 62 , 58 , 59 , -1
13706 , 60 , 63 , 66 , 67 , 68 , 61 , -1 , 61 , 68 , 20 , 21 , -1 , 67 , 68 , 20 , 12 , 65]
13707 meshN=MEDCouplingUMesh.New()
13708 meshN.setName("ForBary")
13709 meshN.setMeshDimension(3) ; meshN.setCoords(coords)
13710 meshN.allocateCells(4)
13711 meshN.insertNextCell(NORM_POLYHED,113,connN);
13712 meshN.insertNextCell(NORM_POLYHED,99,connN[113:])
13713 meshN.insertNextCell(NORM_POLYHED,43,connN[212:])
13714 meshN.insertNextCell(NORM_POLYHED,92,connN[255:])
13715 d=meshN.computeEffectiveNbOfNodesPerCell()
13716 e=meshN.computeNbOfNodesPerCell()
13717 self.assertTrue(d.isEqual(DataArrayInt([32,28,12,26])))
13718 self.assertTrue(e.isEqual(DataArrayInt([96,84,36,78])))
13719 m0=MEDCoupling1DGTUMesh(meshN)
13720 c=MEDCouplingCMesh()
13721 arr=DataArrayDouble(3) ; arr.iota(10)
13722 c.setCoords(arr,arr,arr)
13723 m10=c.buildUnstructured()
13724 m11=c.build1SGTUnstructured()
13725 m12=MEDCoupling1SGTUMesh.New(m10)
13726 self.assertTrue(m12.isEqual(m11,1e-12))
13727 m12.setCoords(m0.getCoords()) # m12 is not OK geometrically but the aim of the test is only connectivity values
13728 m3=MEDCoupling1GTUMesh.AggregateOnSameCoordsToUMesh([m12,m0])
13729 m3.checkCoherency()
13730 self.assertEqual(m3.getCoords().getHiddenCppPointer(),m12.getCoords().getHiddenCppPointer())
13731 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])))
13732 self.assertTrue(m3.getNodalConnectivityIndex().isEqual(DataArrayInt([0,9,18,27,36,45,54,63,72,186,286,330,423])))
13735 def testSwig2Tetrahedrize1(self):
13736 d=DataArrayInt([0,3,6,10,14,20])
13737 d2=d.buildExplicitArrOfSliceOnScaledArr(slice(0,5,2))
13738 self.assertTrue(d2.isEqual(DataArrayInt([0,0,0, 2,2,2,2, 4,4,4,4,4,4])))
13739 m=MEDCouplingUMesh("Penta6",3)
13740 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"])
13742 m.insertNextCell(NORM_PENTA6,[1,2,0,4,5,3])
13743 st=m.getCoords().getHiddenCppPointer()
13744 c,a,b=m.tetrahedrize(PLANAR_FACE_5)
13745 c.checkCoherency2()
13746 self.assertTrue(a.isEqual(DataArrayInt([0,0,0])))
13747 self.assertEqual(0,b)
13748 self.assertEqual(m.getCoords().getHiddenCppPointer(),c.getCoords().getHiddenCppPointer())
13749 self.assertTrue(c.getNodalConnectivity().isEqual(DataArrayInt([1,2,0,4,4,3,5,0,5,0,2,4])))
13752 m2=MEDCouplingUMesh("octa12",3)
13753 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)
13754 m2.setCoords(coords)
13756 m2.insertNextCell(NORM_HEXGP12,[3,2,1,0,5,4,9,8,7,6,11,10])
13757 c,a,b=m2.tetrahedrize(PLANAR_FACE_5)
13758 c.checkCoherency2()
13759 self.assertTrue(a.isEqual(DataArrayInt([0,0,0,0,0,0,0,0,0,0,0,0])))
13760 self.assertEqual(0,b)
13761 self.assertEqual(c.getCoords().getHiddenCppPointer(),coords.getHiddenCppPointer())
13762 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])))
13765 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"])
13766 m3=MEDCouplingUMesh("hexa8",3)
13767 m3.setCoords(coords)
13768 m3.allocateCells(0)
13769 m3.insertNextCell(NORM_HEXA8,[3,2,1,0,7,6,5,4])
13770 st=m3.getCoords().getHiddenCppPointer()
13771 c,a,b=m3.tetrahedrize(PLANAR_FACE_5)
13772 c.checkCoherency2()
13773 a.isEqual(DataArrayInt([0,0,0,0,0]))
13774 self.assertEqual(0,b)
13775 self.assertEqual(m3.getCoords().getHiddenCppPointer(),coords.getHiddenCppPointer())
13776 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])))
13778 m4=MEDCouplingUMesh("hexa8",3)
13779 m4.setCoords(coords)
13780 m4.allocateCells(0)
13781 m4.insertNextCell(NORM_HEXA8,[3,2,1,0,7,6,5,4])
13782 c,a,b=m4.tetrahedrize(PLANAR_FACE_6)
13783 c.checkCoherency2()
13784 a.isEqual(DataArrayInt([0,0,0,0,0,0]))
13785 self.assertEqual(0,b)
13786 self.assertEqual(c.getCoords().getHiddenCppPointer(),coords.getHiddenCppPointer())
13787 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])))
13789 m4=MEDCouplingUMesh("hexa8",3)
13790 m4.setCoords(coords)
13791 m4.allocateCells(0)
13792 m4.insertNextCell(NORM_HEXA8,[3,2,1,0,7,6,5,4])
13793 st=m4.getCoords().getHiddenCppPointer()
13794 c,a,b=m4.tetrahedrize(GENERAL_24)
13795 c.checkCoherency2()
13796 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]))
13797 self.assertEqual(7,b)
13798 self.assertTrue(c.getCoords().getHiddenCppPointer()!=coords.getHiddenCppPointer())
13799 self.assertTrue(c.getCoords()[:8].isEqual(coords,0))
13800 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])))
13801 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)
13802 m4CoordsExp.setInfoOnComponents(["X","YY","ZZZ"])
13803 self.assertTrue(c.getCoords().isEqual(m4CoordsExp,1e-12))
13804 self.assertAlmostEqual(2.,c.getMeasureField(False).accumulate()[0],12)
13806 m6=MEDCouplingUMesh("hexa8",3)
13807 m6.setCoords(coords)
13808 m6.allocateCells(0)
13809 m6.insertNextCell(NORM_HEXA8,[3,2,1,0,7,6,5,4])
13810 st=m6.getCoords().getHiddenCppPointer()
13811 c,a,b=m6.tetrahedrize(GENERAL_48)
13812 c.checkCoherency2()
13813 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]))
13814 self.assertEqual(19,b)
13815 self.assertTrue(c.getCoords().getHiddenCppPointer()!=coords.getHiddenCppPointer())
13816 self.assertTrue(c.getCoords()[:8].isEqual(coords,0))
13817 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])))
13818 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)
13819 m6CoordsExp.setInfoOnComponents(["X","YY","ZZZ"])
13820 self.assertTrue(c.getCoords().isEqual(m6CoordsExp,1e-12))
13821 self.assertAlmostEqual(2.,c.getMeasureField(False).accumulate()[0],12)
13823 m7=MEDCouplingUMesh("polyhed",3)
13824 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"])
13825 m7.setCoords(coords)
13827 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])
13828 c,a,b=m7.tetrahedrize(PLANAR_FACE_5)
13829 c.checkCoherency2()
13830 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])))
13831 self.assertEqual(9,b)
13832 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])))
13833 self.assertAlmostEqual(5.196152422706635,c.getMeasureField(False).accumulate()[0],12)
13834 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)
13835 m7CoordsExp.setInfoOnComponents(["X","YY","ZZZ"])
13836 self.assertTrue(c.getCoords().isEqual(m7CoordsExp,1e-12))
13839 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"])
13840 m8=MEDCouplingUMesh("pyra5",3)
13841 m8.setCoords(coords)
13842 m8.allocateCells(0)
13843 m8.insertNextCell(NORM_PYRA5,[3,2,1,0,7])
13844 st=m8.getCoords().getHiddenCppPointer()
13845 c,a,b=m8.tetrahedrize(PLANAR_FACE_5)
13846 self.assertEqual(m8.getCoords().getHiddenCppPointer(),coords.getHiddenCppPointer())
13847 c.checkCoherency2()
13848 self.assertTrue(a.isEqual(DataArrayInt([0,0])))
13849 self.assertEqual(0,b)
13850 self.assertTrue(c.getNodalConnectivity().isEqual(DataArrayInt([3,2,1,7,3,1,0,7])))
13851 self.assertAlmostEqual(0.6666666666666667,c.getMeasureField(False).accumulate()[0],12)
13854 def testDualMesh3D1(self):
13855 arr=DataArrayDouble(2) ; arr.iota()
13856 c=MEDCouplingCMesh() ; c.setCoords(arr,arr,arr)
13857 m=c.buildUnstructured()
13858 t=m.tetrahedrize(PLANAR_FACE_5)[0]
13859 d=t.computeDualMesh()
13860 self.assertTrue(d.getNodalConnectivityIndex().isEqual(DataArrayInt([0,29,118,207,236,325,354,383,472])))
13861 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])))
13862 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))
13863 self.assertAlmostEqual(1.,d.getMeasureField(False).accumulate()[0],1e-13)
13866 def testDualMesh2D1(self):
13867 arr=DataArrayDouble(5) ; arr.iota()
13868 c=MEDCouplingCMesh() ; c.setCoords(arr,arr)
13869 m=c.buildUnstructured()
13871 t=MEDCoupling1SGTUMesh(m)
13872 d=t.computeDualMesh()
13873 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])))
13874 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])))
13875 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))
13876 self.assertAlmostEqual(16.,d.getMeasureField(False).accumulate()[0],1e-13)
13879 def testSwig2LoadBalanceBBox1(self):
13880 arr=DataArrayDouble(5) ; arr.iota()
13881 t=MEDCouplingCMesh() ; t.setCoords(arr,arr)
13882 arr=DataArrayDouble(16) ; arr.iota() ; arr*=2./15
13883 s=MEDCouplingCMesh() ; s.setCoords(arr,arr[:]) ; s.translate([2.,1.])
13885 s1=s.build1SGTUnstructured()
13886 t1=t.build1SGTUnstructured()
13887 w=MEDCouplingPointSet.ComputeNbOfInteractionsWithSrcCells(s1,t1,1e-12)
13888 wExp=DataArrayInt([0,0,0,0,0,0,64,64,0,0,64,64,0,0,0,0])
13889 self.assertTrue(w.isEqual(wExp))
13890 slcs=w.splitInBalancedSlices(4)
13891 self.assertEqual(len(slcs),4)
13892 self.assertEqual(slcs,[slice(0,7,1),slice(7,8,1),slice(8,11,1),slice(11,16,1)])
13893 bbs=s1.getBoundingBoxForBBTree()
13894 bbt=t1.getBoundingBoxForBBTree()
13895 self.assertTrue(bbt.computeNbOfInteractionsWith(bbs,1e-12).isEqual(wExp))
13898 def testKrSpatialDiscretization2(self):
13899 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)
13900 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)
13901 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)
13902 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])
13903 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])
13905 nbOfInputPoints=100;
13906 f=MEDCouplingFieldDouble.New(ON_NODES_KR,ONE_TIME);
13907 mesh=MEDCoupling1SGTUMesh.New("aMesh",NORM_POINT1);
13908 mesh.setCoords(srcPointCoordsXY);
13910 f.setArray(srcFieldValsOnPoints);
13911 f.checkCoherency();
13913 res0=f.getValueOn([-0.5,-0.5]);
13914 self.assertAlmostEqual(targetFieldValsExpected.getIJ(0,0),res0[0],10)
13916 valuesToTest=f.getValueOnMulti(targetPointCoordsXY);
13917 self.assertEqual(196,valuesToTest.getNumberOfTuples());
13918 self.assertEqual(1,valuesToTest.getNumberOfComponents());
13919 for i in xrange(40):
13920 self.assertAlmostEqual(targetFieldValsExpected[i],valuesToTest.getIJ(i,0),10)
13922 fd=f.getDiscretization()
13924 self.assertTrue(isinstance(fd,MEDCouplingFieldDiscretizationKriging))
13925 coeffs,isDrift=fd.computeVectorOfCoefficients(mesh,srcFieldValsOnPoints)
13926 self.assertEqual(3,isDrift)
13927 self.assertTrue(coeffsExpected.isEqual(coeffs,1e-8))
13929 pts3=[-0.5,-0.5,-0.5,-0.35,-0.35,-0.2]
13930 mesh.setCoords(srcPointCoordsXY[:4])
13931 m,nbCols=fd.computeEvaluationMatrixOnGivenPts(mesh,pts3)
13932 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))
13933 if MEDCouplingHasNumPyBindings():
13935 m0=m.toNumPyArray() ; m0=m0.reshape(3,nbCols) ; m0=np.matrix(m0)
13936 srcFieldValsOnPoints2=DataArrayDouble(4,2) ; srcFieldValsOnPoints2[:,0]=srcFieldValsOnPoints[:4] ; srcFieldValsOnPoints2[:,1]=2*srcFieldValsOnPoints[:4]
13937 n0=srcFieldValsOnPoints2.toNumPyArray() ; n0=n0.reshape(4,2) ; n0=np.matrix(n0)
13939 f=MEDCouplingFieldDouble.New(ON_NODES_KR,ONE_TIME) ; f.setMesh(mesh) ; f.setArray(srcFieldValsOnPoints2) ; f.checkCoherency()
13940 self.assertTrue(DataArrayDouble(np.array((m0*n0))).isEqual(f.getValueOnMulti(pts3),1e-14))
13945 # test the when input slice is all the same object is return by MEDCouplingMesh.buildPartRange
13946 def testSwig2MeshPartSlice1(self):
13947 a=DataArrayDouble(4) ; a.iota()
13948 c=MEDCouplingCMesh() ; c.setCoords(a,a) ; m=c.buildUnstructured()
13949 fc0=c.getMeasureField(False) ; fc1=fc0[:] ; fc2=fc0*fc1 ; fc2.setName(fc0.getName())
13950 self.assertEqual(fc0.getMesh().getHiddenCppPointer(),fc1.getMesh().getHiddenCppPointer())
13951 self.assertEqual(fc2.getMesh().getHiddenCppPointer(),fc1.getMesh().getHiddenCppPointer())
13952 self.assertTrue(fc2.isEqual(fc1,1e-12,1e-12))
13954 fm0=m.getMeasureField(False) ; fm1=fm0[:] ; fm2=fm0*fm1 ; fm2.setName(fm0.getName())
13955 self.assertEqual(fm0.getMesh().getHiddenCppPointer(),fm1.getMesh().getHiddenCppPointer())
13956 self.assertEqual(fm2.getMesh().getHiddenCppPointer(),fm1.getMesh().getHiddenCppPointer())
13957 self.assertTrue(fm2.isEqual(fm1,1e-12,1e-12))
13960 # test the correct behaviour when attempting to aggregate two fields whose mesh is null
13961 def testSwig2MergeFieldsOnFieldsHavingNoMesh(self):
13962 a=DataArrayDouble(4) ; a.iota() ; a*=1.5
13963 c=MEDCouplingCMesh() ; c.setCoords(a,a) ; f1=c.getMeasureField(False)
13964 f1.setMesh(None) ; f2=f1.deepCpy() ; f2*=2
13965 f3=MEDCouplingFieldDouble.MergeFields(f1,f2)
13966 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])
13967 self.assertTrue(f3.getArray().isEqual(daExp,1e-12))
13968 self.assertEqual(f3.getTypeOfField(),ON_CELLS)
13969 self.assertEqual(f3.getMesh(),None)
13970 f4=MEDCouplingFieldDouble.MergeFields([f1,f2])
13971 self.assertTrue(f4.getArray().isEqual(daExp,1e-12))
13972 self.assertEqual(f4.getTypeOfField(),ON_CELLS)
13973 self.assertEqual(f4.getMesh(),None)
13976 # test a simple node to cell convertion of a field
13977 def testSwig2NodeToCellDiscretization1(self):
13978 f=MEDCouplingFieldDouble(ON_NODES) ; f.setTime(1.1,2,3)
13979 a1=DataArrayDouble(4) ; a1.iota()
13980 a2=DataArrayDouble(3) ; a2.iota()
13981 m=MEDCouplingCMesh() ; m.setCoords(a1,a2)
13983 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]"])
13984 f.setArray(arr) ; f.setName("toto")
13986 f2=f.nodeToCellDiscretization()
13987 self.assertEqual(ON_CELLS,f2.getTypeOfField())
13988 self.assertEqual("toto",f2.getName())
13989 self.assertEqual([1.1,2,3],f2.getTime())
13990 self.assertEqual(["aa [km]","bbb [kJ]"],f2.getArray().getInfoOnComponents())
13991 self.assertEqual(6,f2.getArray().getNumberOfTuples())
13992 self.assertEqual(f.getMesh().getHiddenCppPointer(),f2.getMesh().getHiddenCppPointer())
13993 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]"])
13994 self.assertTrue(f2.getArray().isEqual(exp,1e-13))
13997 def testSwig2NonRegressionBugIntersectMeshes1(self):
13998 src=MEDCouplingUMesh("src",2)
13999 src.setCoords(DataArrayDouble([-2.5,-3,-2.5,3,2.5,3],3,2))
14000 src.allocateCells()
14001 src.insertNextCell(NORM_TRI3,[0,1,2])
14003 trg=MEDCouplingUMesh("trg",2)
14004 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))
14005 trg.allocateCells()
14006 trg.insertNextCell(NORM_QPOLYG,[2,1,0,5,3,7,8,6,4,9])
14008 a,b,c=MEDCouplingUMesh.Intersect2DMeshes(src,trg,1.0e-8)
14010 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))
14011 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])))
14012 self.assertTrue(a.getNodalConnectivityIndex().isEqual(DataArrayInt([0,9,20])))
14013 self.assertTrue(b.isEqual(DataArrayInt([0,0])))
14014 self.assertTrue(c.isEqual(DataArrayInt([0,-1])))
14017 def testSwig2MeshOrientCorrectly2DCells1(self):
14018 m=MEDCouplingUMesh("mesh",2)
14019 coo=DataArrayDouble([1.,0.,0.5,-0.1,0.,1.,0.,0.,0.07,0.5,0.59,0.5],6,2)
14022 m.insertNextCell(NORM_TRI6,[3,0,2,1,5,4])
14023 m.insertNextCell(NORM_QPOLYG,[3,0,2,1,5,4])
14024 self.assertTrue(DataArrayDouble([-0.58093333350930543,-0.58093333350930543]).isEqual(m.getMeasureField(False).getArray(),1e-12))
14025 m.changeSpaceDimension(3)
14026 m.orientCorrectly2DCells([0.,0.,-1.],False)
14029 self.assertTrue(m.getNodalConnectivity().isEqual(DataArrayInt([6,3,2,0,4,5,1, 32,3,2,0,4,5,1])))
14030 self.assertTrue(m.getNodalConnectivityIndex().isEqual(DataArrayInt([0,7,14])))
14031 m.changeSpaceDimension(2)
14032 self.assertTrue(DataArrayDouble([0.58093333350930543,0.58093333350930543]).isEqual(m.getMeasureField(False).getArray(),1e-12))
14035 def testSwig2Hexa8HavingFacesWarped1(self):
14036 """ 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
14037 intersected with src the sum of intersection volume is greater than the volume of the trg cell.
14038 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
14041 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)
14042 src=MEDCouplingUMesh("TBmesh3D",3) ; src.setCoords(srcCoo)
14043 src.allocateCells()
14044 src.insertNextCell(NORM_HEXA8,[0,1,4,3,8,9,12,11])
14045 src.insertNextCell(NORM_HEXA8,[1,2,5,4,9,10,13,12])
14046 src.insertNextCell(NORM_HEXA8,[4,5,7,6,12,13,15,14])
14047 src.insertNextCell(NORM_HEXA8,[8,9,12,11,16,17,20,19])
14048 src.insertNextCell(NORM_HEXA8,[9,10,13,12,17,18,21,20])
14049 src.checkCoherency2()
14050 # trg is useless here but I keep it in case of MEDCouplingRemapper were expected to do something about warped NORM_HEXA8
14051 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)
14052 trg=MEDCouplingUMesh("MESH",3) ; trg.setCoords(trgCoo)
14053 trg.allocateCells()
14054 trg.insertNextCell(NORM_HEXA8,[0,1,3,2,4,5,7,6])
14056 srcFace=src.buildDescendingConnectivity()[0]
14057 conn=MEDCoupling1SGTUMesh(srcFace).getNodalConnectivity() ; conn.rearrange(4)
14058 eqFaces=srcFace.computePlaneEquationOf3DFaces()
14060 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
14061 lambd=-e/(eqFaces[:,:3]**2).sumPerTuple()
14062 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
14063 shouldBeZero=(pts*eqFaces[:,:-1]).sumPerTuple()+eqFaces[:,3]# this line is useless only to be sure that pts are on the plane.
14064 check=(pts-srcFace.getCoords()[conn[:,nodeIdInCell]]).magnitude() # check contains the distance of the last point to its plane
14065 idsToTest=check.getIdsNotInRange(0.,1e-10)
14066 self.assertTrue(idsToTest.isEqual(DataArrayInt([17,18,19,20,22,23,24])))
14067 idsToTest2=idsToTest.getIdsNotInRange(18,22)
14068 self.assertTrue(idsToTest2.isEqual(DataArrayInt([0,4,5,6])))
14069 idsToTest2.rearrange(2)
14070 self.assertTrue(idsToTest2.sumPerTuple().isEqual(DataArrayInt([4,11])))
14073 def testSwig2SortHexa8EachOther1(self):
14075 testing MEDCoupling1SGTUMesh.sortHexa8EachOther method
14077 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)])
14078 m1=MEDCouplingUMesh("m1",3) ; m1.setCoords(coords1)
14079 m1.allocateCells() ; m1.insertNextCell(NORM_HEXA8,[7,1,3,0,6,4,2,5])
14080 m1.checkCoherency()
14082 m2=m1.deepCpy() ; m2.setName("m2")
14084 trs=[[0.,0.,-1.],[0.,0.,1.],[1.,0.,0.],[0.,-1.,0.],[-1.,0.,0.],[0.,1.,0.]]
14085 for i,t in enumerate(trs):
14086 for j in xrange(64):
14087 j2=(j//16) ; j1=((j%16)//4) ; j0=(j%4)
14089 m11.rotate([0.,0.,0.],[0.,0.,1.],float(j0)*pi/2)
14090 m11.rotate([0.,0.,0.],[0.,1.,0.],float(j1)*pi/2)
14091 m11.rotate([0.,0.,0.],[1.,0.,0.],float(j2)*pi/2)
14094 m=MEDCouplingUMesh.MergeUMeshes(m2,m11)
14095 m.mergeNodes(1e-12)
14096 self.assertEqual(12,m.getNumberOfNodes())
14097 m=MEDCoupling1SGTUMesh(m)
14098 m.sortHexa8EachOther()
14099 tmp0=m.buildUnstructured().tetrahedrize(PLANAR_FACE_6)[0].buildUnstructured()
14100 self.assertEqual(20,tmp0.computeSkin().getNumberOfCells())
14105 def testSwig2normMinComputeAbs1(self):
14106 d=DataArrayDouble([4,-5,2,6.1,-7.33,1,-1,3e2,0.07,-0.009,-6,-1e30],4,3)
14107 d.setInfoOnComponents(["XX [m]","YYY [km]","ABSJJ [MW]"])
14109 dExp=d.deepCpy() ; dExp.abs()
14110 self.assertTrue(dExp.isEqual(d0,1e-12))
14111 e=d0-DataArrayDouble([4,5,2,6.1,7.33,1,1,3e2,0.07,0.009,6,1e30],4,3)
14112 self.assertAlmostEqual(0.,e.normMin(),13)
14113 self.assertAlmostEqual(0.009,d.normMin(),13)
14115 di=DataArrayInt([3,-12,5,6,14,16,-23,100,23,-1,0,-6],4,3)
14116 di.setInfoOnComponents(["XX [m]","YYY [km]","ABSJJ [MW]"])
14117 d0i=di.computeAbs()
14118 diExp=di.deepCpy() ; diExp.abs()
14119 self.assertTrue(diExp.isEqual(d0i))
14120 self.assertEqual([3,12,5,6,14,16,23,100,23,1,0,6],d0i.getValues())
14123 def testSwig2GetCellsContainingPointsForNonConvexPolygon1(self):
14124 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)
14125 m=MEDCouplingUMesh("Intersect2D",2) ; m.setCoords(coo) ; m.allocateCells()
14126 m.insertNextCell(NORM_POLYGON,[6,3,4,5])
14127 m.insertNextCell(NORM_POLYGON,[4,0,1,2,6,5])
14128 m.checkCoherency2()
14130 self.assertTrue(m.getCellsContainingPoint((0.4,-0.4),1e-12).isEqual(DataArrayInt([0])))
14131 self.assertTrue(m.getCellsContainingPoint((-0.4,-0.4),1e-12).isEqual(DataArrayInt([1])))
14132 self.assertTrue(m.getCellsContainingPoint((0.,-0.4),1e-12).isEqual(DataArrayInt([0,1])))
14135 def testSwig2GetCellsContainingPointsForNonConvexPolygon2(self):
14136 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)
14137 m=MEDCouplingUMesh("mesh",2) ; m.setCoords(coo) ; m.allocateCells()
14138 m.insertNextCell(NORM_QPOLYG,[8,5,4,9])
14139 m.insertNextCell(NORM_QPOLYG,[5,8,4,10])
14140 m.insertNextCell(NORM_QPOLYG,[16,8,5,15,21,9,22,17])
14141 m.insertNextCell(NORM_QPOLYG,[15,1,2,3,16,20,6,7,19,17])
14142 m.insertNextCell(NORM_QPOLYG,[15,5,8,16,22,10,21,18])
14143 m.insertNextCell(NORM_QPOLYG,[16,3,0,1,15,19,11,12,20,18])
14144 m.checkCoherency2()
14145 self.assertTrue(m.getCellsContainingPoint([0.,0.27],1e-12).isEqual(DataArrayInt([2])))
14148 def testSwig2DAIGetIdsEqualTuple1(self):
14149 da=DataArrayInt([0,7,1,2,4,1,2,1,1,2,0,1,2,1,5,1,1,2],9,2)
14150 self.assertTrue(da.getIdsEqualTuple([1,2]).isEqual(DataArrayInt([1,4,8])))
14151 self.assertTrue(da.getIdsEqualTuple((1,2)).isEqual(DataArrayInt([1,4,8])))
14152 self.assertTrue(da.getIdsEqualTuple(DataArrayInt([1,2])).isEqual(DataArrayInt([1,4,8])))
14154 self.assertRaises(InterpKernelException,da.getIdsEqualTuple,[1,2])# mismatch nb of compo (3) and nb of elts in input tuple (2)
14155 self.assertTrue(da.getIdsEqualTuple([2,0,1]).isEqual(DataArrayInt([3])))
14156 self.assertTrue(da.getIdsEqualTuple([2,0,7]).isEqual(DataArrayInt([])))
14158 self.assertTrue(da.getIdsEqualTuple(2).isEqual(DataArrayInt([3,6,9,12,17])))
14159 self.assertTrue(da.getIdsEqualTuple(2).isEqual(da.getIdsEqual(2)))
14162 def testSwig2GaussNEStaticInfo1(self):
14163 self.assertTrue(DataArrayDouble(MEDCouplingFieldDiscretizationGaussNE.GetWeightArrayFromGeometricType(NORM_TRI3)).isEqual(DataArrayDouble([0.16666666666666666,0.16666666666666666,0.16666666666666666]),1e-12))
14164 self.assertTrue(DataArrayDouble(MEDCouplingFieldDiscretizationGaussNE.GetRefCoordsFromGeometricType(NORM_TRI3)).isEqual(DataArrayDouble([0.,0.,1.,0.,0.,1.]),1e-12))
14165 self.assertTrue(DataArrayDouble(MEDCouplingFieldDiscretizationGaussNE.GetLocsFromGeometricType(NORM_TRI3)).isEqual(DataArrayDouble([0.16666666666666666,0.16666666666666666,0.6666666666666667,0.16666666666666666,0.16666666666666666,0.6666666666666667]),1e-12))
14168 def testSwigReverseNodalConnOnStructuredMesh(self):
14170 c=MEDCouplingCMesh() ; arr=DataArrayDouble(10) ; arr.iota()
14171 c.setCoordsAt(0,arr)
14172 rn,rni=c.getReverseNodalConnectivity()
14173 rn2,rni2=c.buildUnstructured().getReverseNodalConnectivity()
14174 self.assertTrue(rn.isEqual(DataArrayInt([0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8])))
14175 self.assertTrue(rni.isEqual(DataArrayInt([0,1,3,5,7,9,11,13,15,17,18])))
14176 self.assertTrue(rn.isEqual(rn2)) ; self.assertTrue(rni.isEqual(rni2))
14178 c=MEDCouplingCMesh() ; arr=DataArrayDouble(1) ; arr.iota()
14179 c.setCoordsAt(0,arr)
14180 rn,rni=c.getReverseNodalConnectivity()
14181 rn2,rni2=c.buildUnstructured().getReverseNodalConnectivity()
14182 self.assertTrue(rn.isEqual(DataArrayInt([0])))
14183 self.assertTrue(rni.isEqual(DataArrayInt([0,1])))
14184 self.assertTrue(rn.isEqual(rn2)) ; self.assertTrue(rni.isEqual(rni2))
14186 c=MEDCouplingCMesh() ; arr=DataArrayDouble(0) ; arr.iota()
14187 c.setCoordsAt(0,arr)
14188 rn,rni=c.getReverseNodalConnectivity()
14189 rn.isEqual(DataArrayInt([]))
14190 rni.isEqual(DataArrayInt([0]))
14192 c=MEDCouplingCMesh() ; arr=DataArrayDouble(5) ; arr.iota() ; arr2=DataArrayDouble(4) ; arr.iota()
14193 c.setCoords(arr,arr2)
14194 rn,rni=c.getReverseNodalConnectivity()
14195 rn2,rni2=c.buildUnstructured().getReverseNodalConnectivity()
14196 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])))
14197 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])))
14198 self.assertTrue(rn.isEqual(rn2)) ; self.assertTrue(rni.isEqual(rni2))
14200 c=MEDCouplingCMesh() ; arr=DataArrayDouble(10) ; arr.iota() ; arr2=DataArrayDouble(1) ; arr.iota()
14201 c.setCoords(arr,arr2)
14202 rn,rni=c.getReverseNodalConnectivity()
14203 self.assertTrue(rn.isEqual(DataArrayInt([0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8])))
14204 self.assertTrue(rni.isEqual(DataArrayInt([0,1,3,5,7,9,11,13,15,17,18])))
14206 c=MEDCouplingCMesh() ; arr=DataArrayDouble(10) ; arr.iota() ; arr2=DataArrayDouble(1) ; arr.iota()
14207 c.setCoords(arr2,arr)
14208 rn,rni=c.getReverseNodalConnectivity()
14209 self.assertTrue(rn.isEqual(DataArrayInt([0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8])))
14210 self.assertTrue(rni.isEqual(DataArrayInt([0,1,3,5,7,9,11,13,15,17,18])))
14212 c=MEDCouplingCMesh() ; arr0=DataArrayDouble(5) ; arr0.iota() ; arr1=DataArrayDouble(3) ; arr1.iota() ; arr2=DataArrayDouble(4) ; arr2.iota()
14213 c.setCoords(arr0,arr1,arr2)
14214 rn,rni=c.getReverseNodalConnectivity()
14215 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])))
14216 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])))
14217 rn2,rni2=c.buildUnstructured().getReverseNodalConnectivity()
14218 self.assertTrue(rn.isEqual(rn2)) ; self.assertTrue(rni.isEqual(rni2))
14221 def testSwig2CellToNodeDiscretization1(self):
14222 m=MEDCouplingCMesh() ; arr0=DataArrayDouble(5) ; arr0.iota() ; arr1=DataArrayDouble(4) ; arr1.iota() ; m.setCoords(arr0,arr1)
14223 f=MEDCouplingFieldDouble(ON_CELLS) ; f.setMesh(m) ; f.setTime(1.1,5,6)
14224 arr=DataArrayDouble(12) ; arr.iota()
14225 arr=DataArrayDouble.Meld(arr,arr+100.) ; arr.setInfoOnComponents(["aaa","bbb"])
14229 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.])
14230 ref=DataArrayDouble.Meld(ref,ref+100.) ; ref.setInfoOnComponents(["aaa","bbb"])
14231 f2=f.cellToNodeDiscretization()
14232 f2.checkCoherency()
14233 self.assertEqual(f2.getTime()[1:],[5,6])
14234 self.assertAlmostEqual(f2.getTime()[0],1.1,15)
14235 self.assertEqual(f2.getMesh().getHiddenCppPointer(),m.getHiddenCppPointer())
14236 self.assertTrue(f2.getArray().isEqual(ref,1e-12))
14237 rn,rni=m.getReverseNodalConnectivity()
14238 rni2=(rni.deltaShiftIndex()).convertToDblArr()
14239 arr2=(f.getArray()[rn]).accumulatePerChunck(rni)/rni2
14240 self.assertTrue(f2.getArray().isEqual(arr2,1e-12))
14243 u=m.buildUnstructured() ; f.setMesh(u) ; del m
14244 f3=f.cellToNodeDiscretization()
14245 f3.checkCoherency()
14246 self.assertEqual(f3.getTime()[1:],[5,6])
14247 self.assertAlmostEqual(f3.getTime()[0],1.1,15)
14248 self.assertEqual(f3.getMesh().getHiddenCppPointer(),u.getHiddenCppPointer())
14249 self.assertTrue(f3.getArray().isEqual(ref,1e-12))
14252 def testSwig2GetMeshSpaceDimensionCMesh1(self):
14253 c=MEDCouplingCMesh()
14254 arr0=DataArrayDouble([0,1,2])
14255 arr1=DataArrayDouble([0])
14256 c.setCoords(arr0,arr0,arr0)
14257 self.assertEqual(c.getMeshDimension(),3)
14258 self.assertEqual(c.getSpaceDimension(),3)
14260 c.setCoords(arr0,arr0,arr1)
14261 self.assertEqual(c.getMeshDimension(),2)
14262 self.assertEqual(c.getSpaceDimension(),3)
14264 c.setCoords(arr0,arr0)
14265 self.assertEqual(c.getMeshDimension(),2)
14266 self.assertEqual(c.getSpaceDimension(),2)
14268 c.setCoords(arr0,arr1)
14269 self.assertEqual(c.getMeshDimension(),1)
14270 self.assertEqual(c.getSpaceDimension(),2)
14273 self.assertEqual(c.getMeshDimension(),1)
14274 self.assertEqual(c.getSpaceDimension(),1)
14277 self.assertEqual(c.getMeshDimension(),0)
14278 self.assertEqual(c.getSpaceDimension(),1)
14281 def testSwig2BuildSpreadZonesWithPolyOnQPolyg1(self):
14284 m=MEDCouplingCMesh()
14285 arr1=DataArrayDouble(nx) ; arr1.iota()
14286 arr2=DataArrayDouble(ny) ; arr2.iota()
14287 m.setCoords(arr1,arr2)
14288 m=m.buildUnstructured()
14289 da=DataArrayInt.Range(nx-1,(nx-1)*(ny-1),nx)
14290 m2=m[da] ; m2.simplexize(0)
14291 dan=da.buildComplement(m.getNumberOfCells())
14293 m=MEDCouplingUMesh.MergeUMeshesOnSameCoords(m1,m2)
14295 m.convertLinearCellsToQuadratic()
14296 m1=m[::2] ; m2=m[1::2] ; m2.convertAllToPoly()
14297 m=MEDCouplingUMesh.MergeUMeshesOnSameCoords(m1,m2)
14298 p=m.buildSpreadZonesWithPoly()
14299 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])))
14300 self.assertTrue(p.getNodalConnectivityIndex().isEqual(DataArrayInt([0,41])))
14301 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))
14304 def testSwig2Conformize2D1(self):
14306 coo = [0.,-0.5,0.,0.,0.5,0.,0.5,-0.5,0.25,
14307 -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]
14308 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]
14309 connI = [0,5,12,17,24]
14310 m = MEDCouplingUMesh("box",2)
14311 cooArr = DataArrayDouble(coo,len(coo)/2,2)
14312 m.setCoords(cooArr)
14313 m.setConnectivity(DataArrayInt(conn),DataArrayInt(connI))
14316 self.assertTrue(m.conformize2D(eps).isEqual(DataArrayInt([3])))
14317 self.assertEqual(m.getCoords().getHiddenCppPointer(),cooArr.getHiddenCppPointer()) # check that coordinates remain the same here
14318 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])))
14319 self.assertTrue(m.getNodalConnectivityIndex().isEqual(DataArrayInt([0,5,12,17,25])))
14322 def testSwig2Conformize2D2(self):
14324 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)
14325 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])
14326 m=MEDCoupling1SGTUMesh("mesh",NORM_QUAD4)
14328 m.setNodalConnectivity(conn)
14329 m=m.buildUnstructured()
14330 self.assertTrue(m.conformize2D(eps).isEqual(DataArrayInt([0,1,2,5])))
14331 self.assertEqual(m.getCoords().getHiddenCppPointer(),coo.getHiddenCppPointer()) # check that coordinates remain the same here
14332 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])))
14333 self.assertTrue(m.getNodalConnectivityIndex().isEqual(DataArrayInt([0,6,12,21,26,31,37,42])))
14336 def testSwigSplit2DCells1(self):
14337 coo=DataArrayDouble([[0,0],[1,0],[1,1],[0,1],[0.5,0],[1,0.5],[0.5,1],[0.,0.5]])
14338 m=MEDCouplingUMesh("mesh",2)
14341 m.insertNextCell(NORM_QUAD8,[0,1,2,3,4,5,6,7])
14342 _,d,di,_,_=m.buildDescendingConnectivity()
14343 subb=DataArrayInt([5])
14344 subbi=DataArrayInt([0,0,1,1,1])
14345 mid=DataArrayInt([-1,-1])
14346 midi=DataArrayInt([0,0,2,2,2])
14347 self.assertEqual(2,m.split2DCells(d,di,subb,subbi,mid,midi))
14348 self.assertTrue(m.getNodalConnectivity().isEqual(DataArrayInt([32,0,1,5,2,3,4,8,9,6,7])))
14349 self.assertTrue(m.getNodalConnectivityIndex().isEqual(DataArrayInt([0,11])))
14350 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))
14353 def testSwig2Conformize2D3(self):
14355 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)
14356 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])
14357 m=MEDCoupling1SGTUMesh("mesh",NORM_QUAD4)
14359 m.setNodalConnectivity(conn)
14360 m=m.buildUnstructured()
14361 m.convertLinearCellsToQuadratic()
14362 self.assertTrue(m.conformize2D(eps).isEqual(DataArrayInt([0,1,2,5])))
14363 self.assertTrue(m.getCoords().getHiddenCppPointer()!=coo.getHiddenCppPointer()) # coordinates are not the same here contrary to testSwig2Conformize2D2 ...
14364 self.assertTrue(m.getCoords()[:18].isEqual(coo,1e-12)) # but the 18 first nodes are the same
14367 def testSwig2Conformize2D4(self):
14369 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)
14370 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])
14371 m=MEDCoupling1SGTUMesh("mesh",NORM_QUAD4)
14373 m.setNodalConnectivity(conn)
14374 m=m.buildUnstructured()
14375 m.convertLinearCellsToQuadratic()
14376 self.assertEqual(42,m.getNumberOfNodes())
14377 oldCoo=m.getCoords().deepCpy()
14378 m.conformize2D(eps)
14379 self.assertTrue(m.getCoords()[:42].isEqual(oldCoo,1e-12))
14380 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])))
14381 self.assertTrue(m.getNodalConnectivityIndex().isEqual(DataArrayInt([0,11,22,39,48,57,68,77])))
14382 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))
14385 def testSwig2Conformize2D5(self):
14387 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]])
14388 m=MEDCouplingUMesh("mesh",2)
14391 m.insertNextCell(NORM_TRI6,[1,2,0,5,4,3])
14392 m.insertNextCell(NORM_TRI6,[8,6,0,12,7,13])
14393 m.insertNextCell(NORM_TRI6,[11,9,10,16,14,15])
14394 self.assertTrue(m.conformize2D(eps).isEqual(DataArrayInt([0])))
14395 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))
14396 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])))
14397 self.assertTrue(m.getNodalConnectivityIndex().isEqual(DataArrayInt([0,13,20,27])))
14400 def testSwigExtendedSlice1(self):
14401 d=DataArrayInt([5,6,7])
14402 self.assertTrue(d[2:].isEqual(DataArrayInt([7])))
14403 self.assertTrue(d[3:].isEqual(DataArrayInt([])))
14406 except InterpKernelException as e:
14407 self.assertTrue(True)
14409 self.assertTrue(False)
14411 d=DataArrayInt([5,6,7,8])
14412 self.assertEqual(d[-1],8)
14413 self.assertEqual(d[-4],5)
14416 except InterpKernelException as e:
14417 self.assertTrue(True)
14419 self.assertTrue(False)
14421 self.assertTrue(d[2::-1].isEqual(DataArrayInt([7,6,5])))
14422 self.assertTrue(d[0::-1].isEqual(DataArrayInt([5])))
14423 self.assertTrue(d[-1::-1].isEqual(DataArrayInt([8,7,6,5])))
14424 self.assertTrue(d[-3::-1].isEqual(DataArrayInt([6,5])))
14425 self.assertTrue(d[-5::-1].isEqual(DataArrayInt([])))
14428 except InterpKernelException as e:
14429 self.assertTrue(True)
14431 self.assertTrue(False)
14434 self.assertTrue(d[0:].isEqual(DataArrayInt([])))
14436 d=DataArrayDouble([5,6,7])
14437 self.assertTrue(d[2:].isEqual(DataArrayDouble([7]),1e-12))
14438 self.assertTrue(d[3:].isEqual(DataArrayDouble([]),1e-12))
14441 except InterpKernelException as e:
14442 self.assertTrue(True)
14444 self.assertTrue(False)
14446 d=DataArrayDouble([5,6,7,8])
14447 self.assertAlmostEqual(d[-1],8.,12)
14448 self.assertAlmostEqual(d[-4],5.,12)
14451 except InterpKernelException as e:
14452 self.assertTrue(True)
14454 self.assertTrue(False)
14456 self.assertTrue(d[2::-1].isEqual(DataArrayDouble([7,6,5]),1e-12))
14457 self.assertTrue(d[0::-1].isEqual(DataArrayDouble([5]),1e-12))
14458 self.assertTrue(d[-1::-1].isEqual(DataArrayDouble([8,7,6,5]),1e-12))
14459 self.assertTrue(d[-3::-1].isEqual(DataArrayDouble([6,5]),1e-12))
14460 self.assertTrue(d[-5::-1].isEqual(DataArrayDouble([]),1e-12))
14463 except InterpKernelException as e:
14464 self.assertTrue(True)
14466 self.assertTrue(False)
14468 d=DataArrayDouble([])
14469 self.assertTrue(d[0:].isEqual(DataArrayDouble([]),1e-12))
14472 def testSwig2Hexa27GP1(self):
14473 """ This test focused on shape functions of hexa27.
14475 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.]])
14476 m=MEDCouplingUMesh("mesh",3) ; m.setCoords(coo)
14478 # the cell description is exactly those described in the description of HEXA27 in MED file 3.0.7 documentation
14479 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])
14480 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.]
14481 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]
14482 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]
14483 fGauss=MEDCouplingFieldDouble(ON_GAUSS_PT) ; fGauss.setName("fGauss")
14485 fGauss.setGaussLocalizationOnType(NORM_HEXA27,refCoo,gCoords,weights)
14486 arr=DataArrayDouble(fGauss.getNumberOfTuplesExpected()) ; arr.iota()
14487 fGauss.setArray(arr)
14488 arrOfDisc=fGauss.getLocalizationOfDiscr()
14490 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))
14494 fGauss.setGaussLocalizationOnType(NORM_HEXA27,refCoo,gCoords,weights)
14495 arrOfDisc2=fGauss.getLocalizationOfDiscr()
14496 self.assertTrue(arrOfDisc2.isEqual(coo,1e-12))
14499 def testSwig2Pyra13GP1(self):
14500 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.]])
14501 m=MEDCouplingUMesh("mesh",3) ; m.setCoords(coo)
14503 # the cell description is exactly those described in the description of PYRA13 in MED file 3.0.7 documentation
14504 m.insertNextCell(NORM_PYRA13,[0,1,2,3,4,5,6,7,8,9,10,11,12])
14505 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]
14506 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]
14507 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]
14508 fGauss=MEDCouplingFieldDouble(ON_GAUSS_PT) ; fGauss.setName("fGauss")
14510 fGauss.setGaussLocalizationOnType(NORM_PYRA13,refCoords,gaussCoords,weights)
14511 arr=DataArrayDouble(fGauss.getNumberOfTuplesExpected()) ; arr.iota()
14512 fGauss.setArray(arr)
14513 arrOfDisc=fGauss.getLocalizationOfDiscr()
14515 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))
14518 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. !
14519 fGauss.setGaussLocalizationOnType(NORM_PYRA13,refCoords,gaussCoords,weights)
14520 arrOfDisc2=fGauss.getLocalizationOfDiscr()
14521 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. !
14524 def testSwig2Tri7GP1(self):
14525 coo=DataArrayDouble([[0,0],[0,2],[2,0],[0,1],[1,1],[1,0],[0.6666666666666667,0.6666666666666667]])
14526 m=MEDCouplingUMesh("mesh",2) ; m.setCoords(coo)
14528 # the cell description is exactly those described in the description of TRI7 in MED file 3.0.7 documentation
14529 m.insertNextCell(NORM_TRI7,range(7))
14530 refCoords=[0.,0.,1.,0.,0.,1.,0.5,0.,0.5,0.5,0.,0.5,0.3333333333333333,0.3333333333333333]
14531 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]
14532 weights=[0.062969590272413,0.062969590272413,0.062969590272413,0.066197076394253,0.066197076394253,0.066197076394253,0.1125]
14533 fGauss=MEDCouplingFieldDouble(ON_GAUSS_PT) ; fGauss.setName("fGauss")
14535 fGauss.setGaussLocalizationOnType(NORM_TRI7,refCoords,gaussCoords,weights)
14536 arr=DataArrayDouble(fGauss.getNumberOfTuplesExpected()) ; arr.iota()
14537 fGauss.setArray(arr)
14538 arrOfDisc=fGauss.getLocalizationOfDiscr()
14539 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))
14542 gaussCoords=refCoords
14543 fGauss.setGaussLocalizationOnType(NORM_TRI7,refCoords,gaussCoords,weights)
14544 arrOfDisc2=fGauss.getLocalizationOfDiscr()
14545 self.assertTrue(arrOfDisc2.isEqual(coo,1e-12))
14548 def testSwig2StructuredDesc1(self):
14549 c=MEDCouplingCMesh()
14550 arr0=DataArrayDouble(3) ; arr0.iota()
14551 arr1=DataArrayDouble(4) ; arr1.iota()
14552 arr2=DataArrayDouble(5) ; arr2.iota()
14553 c.setCoords(arr0,arr1,arr2)
14555 self.assertEqual(98,c.getNumberOfCellsOfSubLevelMesh())
14556 m=c.build1SGTSubLevelMesh()
14557 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])))
14558 self.assertEqual(NORM_QUAD4,m.getCellModelEnum())
14560 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])))
14563 def testSwig2Colinearize2D1(self):
14564 coo=DataArrayDouble([-5.,0.,-1.,0.,4.,3.,7.,0.,1.,6.,1.,0.,-3.,0.,6.,1.,5.,0.,3.,0.],10,2)
14566 m=MEDCouplingUMesh("mesh",2) ; m.setCoords(coo) ; m.allocateCells()
14567 m.insertNextCell(NORM_POLYGON,[5,9,8,3,7,2,4,0,6,1])
14568 refPtr=m.getCoords().getHiddenCppPointer()
14569 self.assertTrue(m.colinearize2D(1e-12).isEqual(DataArrayInt([0])))
14570 self.assertEqual(refPtr,m.getCoords().getHiddenCppPointer())
14571 self.assertTrue(m.getNodalConnectivity().isEqual(DataArrayInt([5,0,3,4])))
14572 self.assertTrue(m.getNodalConnectivityIndex().isEqual(DataArrayInt([0,4])))
14573 self.assertTrue(m.colinearize2D(1e-12).isEqual(DataArrayInt([])))
14574 self.assertEqual(refPtr,m.getCoords().getHiddenCppPointer())
14575 self.assertTrue(m.getNodalConnectivity().isEqual(DataArrayInt([5,0,3,4])))
14576 self.assertTrue(m.getNodalConnectivityIndex().isEqual(DataArrayInt([0,4])))
14578 m=MEDCouplingUMesh("mesh",2) ; m.setCoords(coo) ; m.allocateCells()
14579 m.insertNextCell(NORM_POLYGON,[8,3,7,2,4,0,6,1,5,9])
14580 refPtr=m.getCoords().getHiddenCppPointer()
14581 self.assertTrue(m.colinearize2D(1e-12).isEqual(DataArrayInt([0])))
14582 self.assertEqual(refPtr,m.getCoords().getHiddenCppPointer())
14583 self.assertTrue(m.getNodalConnectivity().isEqual(DataArrayInt([5,0,3,4])))
14584 self.assertTrue(m.getNodalConnectivityIndex().isEqual(DataArrayInt([0,4])))
14586 m=MEDCouplingUMesh("mesh",2) ; m.setCoords(coo) ; m.allocateCells()
14587 m.insertNextCell(NORM_POLYGON,[3,7,2,4,0,6,1,5,9,8])
14588 refPtr=m.getCoords().getHiddenCppPointer()
14589 self.assertTrue(m.colinearize2D(1e-12).isEqual(DataArrayInt([0])))
14590 self.assertEqual(refPtr,m.getCoords().getHiddenCppPointer())
14591 self.assertTrue(m.getNodalConnectivity().isEqual(DataArrayInt([5,3,4,0])))
14592 self.assertTrue(m.getNodalConnectivityIndex().isEqual(DataArrayInt([0,4])))
14594 m=MEDCouplingUMesh("mesh",2) ; m.setCoords(coo) ; m.allocateCells()
14595 m.insertNextCell(NORM_POLYGON,[4,0,6,1,5,9,8,3,7,2,])
14596 refPtr=m.getCoords().getHiddenCppPointer()
14597 self.assertTrue(m.colinearize2D(1e-12).isEqual(DataArrayInt([0])))
14598 self.assertEqual(refPtr,m.getCoords().getHiddenCppPointer())
14599 self.assertTrue(m.getNodalConnectivity().isEqual(DataArrayInt([5,4,0,3])))
14600 self.assertTrue(m.getNodalConnectivityIndex().isEqual(DataArrayInt([0,4])))
14602 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)])
14603 coo2.setInfoOnComponents(["aa","bbbb"])
14604 m=MEDCouplingUMesh("mesh",2) ; m.setCoords(coo2) ; m.allocateCells()
14605 m.insertNextCell(NORM_QPOLYG,[5,9,8,3,7,2,4,0,6,1,10,11,12,13,14,15,16,17,18,19])
14606 refPtr=m.getCoords().getHiddenCppPointer()
14607 self.assertTrue(m.colinearize2D(1e-12).isEqual(DataArrayInt([0])))
14608 self.assertNotEqual(refPtr,m.getCoords().getHiddenCppPointer())#not same coordinates here
14609 self.assertEqual(["aa","bbbb"],m.getCoords().getInfoOnComponents())
14610 refPtr=m.getCoords().getHiddenCppPointer()
14611 self.assertTrue(coo2.isEqual(m.getCoords()[:20],1e-12))
14612 self.assertTrue(m.getCoords()[20:].isEqualWithoutConsideringStr(DataArrayDouble([(1.,0.),(4.,3.)]),1e-12))
14613 self.assertTrue(m.getNodalConnectivity().isEqual(DataArrayInt([32,0,3,4,20,21,16])))
14614 self.assertTrue(m.getNodalConnectivityIndex().isEqual(DataArrayInt([0,7])))
14615 self.assertTrue(m.colinearize2D(1e-12).isEqual(DataArrayInt([])))
14616 self.assertEqual(refPtr,m.getCoords().getHiddenCppPointer())
14617 self.assertTrue(m.getNodalConnectivity().isEqual(DataArrayInt([32,0,3,4,20,21,16])))
14618 self.assertTrue(m.getNodalConnectivityIndex().isEqual(DataArrayInt([0,7])))
14619 # mix of quadratic and linear inside a QPOLYG cell
14620 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)])
14621 m=MEDCouplingUMesh("mesh",2) ; m.setCoords(coo2) ; m.allocateCells()
14622 m.insertNextCell(NORM_QPOLYG,[5,9,8,3,7,2,4,0,6,1,10,11,12,13,14,15,16,17,18,19])
14623 refPtr=m.getCoords().getHiddenCppPointer()
14624 self.assertTrue(m.colinearize2D(1e-12).isEqual(DataArrayInt([0])))
14625 self.assertNotEqual(refPtr,m.getCoords().getHiddenCppPointer())#not same coordinates here
14626 self.assertTrue(coo2.isEqual(m.getCoords()[:20],1e-12))
14627 self.assertTrue(m.getCoords()[20:].isEqual(DataArrayDouble([(1.,0.),(7.,6.)]),1e-12))
14628 self.assertTrue(m.getNodalConnectivity().isEqual(DataArrayInt([32,0,3,4,20,21,16])))
14629 self.assertTrue(m.getNodalConnectivityIndex().isEqual(DataArrayInt([0,7])))
14632 def testSwig2BoundingBoxForBBTree1(self):
14633 """ 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 !
14635 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)
14636 m=MEDCouplingUMesh("mesh",2) ; m.setCoords(coo)
14638 m.insertNextCell(NORM_QPOLYG,[0,1,2,3,11,5,7,9,12,13,14,17,4,6,8,16])
14639 m.insertNextCell(NORM_QPOLYG,[3,0,9,11,15,16,10,17])
14640 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))
14643 def testSwig2CartBuildUnstructuredOnExoticCases1(self):
14644 """ Test focusing on traduction from cartesian to unstructured mesh when spaceDim greater than meshDim.
14647 m=MEDCouplingCMesh()
14648 arrX=DataArrayDouble(3) ; arrX.iota()
14649 arrY=DataArrayDouble(4) ; arrY.iota()
14650 arrZ=DataArrayDouble(1) ; arrZ.iota()
14651 m.setCoords(arrX,arrY,arrZ)
14652 self.assertEqual(2,m.getMeshDimension())
14653 self.assertEqual(3,m.getSpaceDimension())
14654 mu=m.buildUnstructured()
14655 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])))
14656 self.assertTrue(mu.getNodalConnectivityIndex().isEqual(DataArrayInt([0,5,10,15,20,25,30])))
14657 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)])
14658 self.assertTrue(mu.getCoords().isEqual(coo0,1e-12))
14660 m=MEDCouplingCMesh()
14661 arrX=DataArrayDouble(3) ; arrX.iota()
14662 arrY=DataArrayDouble(1) ; arrY.iota()
14663 arrZ=DataArrayDouble(4) ; arrZ.iota()
14664 m.setCoords(arrX,arrY,arrZ)
14665 self.assertEqual(2,m.getMeshDimension())
14666 self.assertEqual(3,m.getSpaceDimension())
14667 mu=m.buildUnstructured()
14668 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])))
14669 self.assertTrue(mu.getNodalConnectivityIndex().isEqual(DataArrayInt([0,5,10,15,20,25,30])))
14670 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)])
14671 self.assertTrue(mu.getCoords().isEqual(coo1,1e-12))
14673 m=MEDCouplingCMesh()
14674 arrX=DataArrayDouble(1) ; arrX.iota() ; arrX+=9
14675 arrY=DataArrayDouble(3) ; arrY.iota()
14676 arrZ=DataArrayDouble(4) ; arrZ.iota()
14677 m.setCoords(arrX,arrY,arrZ)
14678 self.assertEqual(2,m.getMeshDimension())
14679 self.assertEqual(3,m.getSpaceDimension())
14680 mu=m.buildUnstructured()
14681 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])))
14682 self.assertTrue(mu.getNodalConnectivityIndex().isEqual(DataArrayInt([0,5,10,15,20,25,30])))
14683 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)])
14684 self.assertTrue(mu.getCoords().isEqual(coo2,1e-12))
14686 m=MEDCouplingCMesh()
14687 arrX=DataArrayDouble(3) ; arrX.iota()
14688 arrY=DataArrayDouble(1) ; arrY.iota(7)
14689 arrZ=DataArrayDouble(1) ; arrZ.iota(8)
14690 m.setCoords(arrX,arrY,arrZ)
14691 self.assertEqual(1,m.getMeshDimension())
14692 self.assertEqual(3,m.getSpaceDimension())
14693 mu=m.buildUnstructured()
14694 self.assertTrue(mu.getNodalConnectivity().isEqual(DataArrayInt([1,0,1,1,1,2])))
14695 self.assertTrue(mu.getNodalConnectivityIndex().isEqual(DataArrayInt([0,3,6])))
14696 coo3=DataArrayDouble([(0,7,8),(1,7,8),(2,7,8)])
14697 self.assertTrue(mu.getCoords().isEqual(coo3,1e-12))
14699 m=MEDCouplingCMesh()
14700 arrX=DataArrayDouble(1) ; arrX.iota(7)
14701 arrY=DataArrayDouble(1) ; arrY.iota(8)
14702 arrZ=DataArrayDouble(3) ; arrZ.iota()
14703 m.setCoords(arrX,arrY,arrZ)
14704 self.assertEqual(1,m.getMeshDimension())
14705 self.assertEqual(3,m.getSpaceDimension())
14706 mu=m.buildUnstructured()
14707 self.assertTrue(mu.getNodalConnectivity().isEqual(DataArrayInt([1,0,1,1,1,2])))
14708 self.assertTrue(mu.getNodalConnectivityIndex().isEqual(DataArrayInt([0,3,6])))
14709 coo4=DataArrayDouble([(7,8,0),(7,8,1),(7,8,2)])
14710 self.assertTrue(mu.getCoords().isEqual(coo4,1e-12))
14712 m=MEDCouplingCMesh()
14713 arrX=DataArrayDouble(3) ; arrX.iota()
14714 arrY=DataArrayDouble(1) ; arrY.iota(7)
14715 m.setCoords(arrX,arrY)
14716 self.assertEqual(1,m.getMeshDimension())
14717 self.assertEqual(2,m.getSpaceDimension())
14718 mu=m.buildUnstructured()
14719 self.assertTrue(mu.getNodalConnectivity().isEqual(DataArrayInt([1,0,1,1,1,2])))
14720 self.assertTrue(mu.getNodalConnectivityIndex().isEqual(DataArrayInt([0,3,6])))
14721 coo5=DataArrayDouble([(0,7),(1,7),(2,7)])
14722 self.assertTrue(mu.getCoords().isEqual(coo5,1e-12))
14724 m=MEDCouplingCMesh()
14725 arrX=DataArrayDouble(1) ; arrX.iota(7)
14726 arrY=DataArrayDouble(3) ; arrY.iota()
14727 m.setCoords(arrX,arrY)
14728 self.assertEqual(1,m.getMeshDimension())
14729 self.assertEqual(2,m.getSpaceDimension())
14730 mu=m.buildUnstructured()
14731 self.assertTrue(mu.getNodalConnectivity().isEqual(DataArrayInt([1,0,1,1,1,2])))
14732 self.assertTrue(mu.getNodalConnectivityIndex().isEqual(DataArrayInt([0,3,6])))
14733 coo6=DataArrayDouble([(7,0),(7,1),(7,2)])
14734 self.assertTrue(mu.getCoords().isEqual(coo6,1e-12))
14737 def testSwig2Colinearize2D2(self):
14738 """ simple non regression test but that has revealed a bug"""
14739 coo=DataArrayDouble([(0,0),(0,0.5),(0,1),(1,1),(1,0),(0.5,0)])
14740 m=MEDCouplingUMesh("mesh",2) ; m.setCoords(coo)
14741 m.allocateCells() ; m.insertNextCell(NORM_POLYGON,[0,1,2,3,4,5])
14742 m.checkCoherency2()
14743 refPtr=m.getCoords().getHiddenCppPointer()
14745 m.colinearize2D(1e-12)
14746 m.checkCoherency2()
14747 self.assertEqual(refPtr,m.getCoords().getHiddenCppPointer())
14748 self.assertTrue(m.getNodalConnectivity().isEqual(DataArrayInt([5,0,2,3,4])))
14749 self.assertTrue(m.getNodalConnectivityIndex().isEqual(DataArrayInt([0,5])))
14752 def testSwig2CheckAndPreparePermutation2(self):
14753 a=DataArrayInt([10003,9999999,5,67])
14754 self.assertTrue(DataArrayInt.CheckAndPreparePermutation(a).isEqual(DataArrayInt([2,3,0,1])))
14755 a=DataArrayInt([10003,-9999999,5,67])
14756 self.assertTrue(DataArrayInt.CheckAndPreparePermutation(a).isEqual(DataArrayInt([3,0,1,2])))
14758 self.assertTrue(DataArrayInt.checkAndPreparePermutation(a).isEqual(DataArrayInt([])))
14761 def testSwig2ComputeNeighborsOfNodes1(self):
14762 arrX=DataArrayDouble(3) ; arrX.iota()
14763 arrY=DataArrayDouble(4) ; arrY.iota()
14764 arrZ=DataArrayDouble(5) ; arrZ.iota()
14765 m=MEDCouplingCMesh() ; m.setCoords(arrX,arrY,arrZ) ; m=m.buildUnstructured()
14767 a,b=m.computeNeighborsOfNodes()
14768 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])))
14769 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])))
14771 m=MEDCouplingCMesh() ; m.setCoords(arrX,arrY) ; m=m.buildUnstructured()
14772 a,b=m.computeNeighborsOfNodes()
14773 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])))
14774 self.assertTrue(b.isEqual(DataArrayInt([0,2,5,7,10,14,17,20,24,27,29,32,34])))
14776 m=m.buildDescendingConnectivity()[0]
14777 a,b=m.computeNeighborsOfNodes()
14778 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])))
14779 self.assertTrue(b.isEqual(DataArrayInt([0,2,5,7,10,14,17,20,24,27,29,32,34])))
14782 def testSwigBugOnUnpackingTuplesInDataArray1(self):
14783 inp=DataArrayDouble([(1,2,3),(4,5,6),(7,8,9),(10,11,12)])
14786 self.assertRaises(StopIteration,r.__getitem__,4)
14787 self.assertEqual(len(r),3)
14790 self.assertEqual(len(r),3)
14793 self.assertEqual(len(r),3)
14796 self.assertEqual(len(r),3)
14798 self.assertTrue(inp.isEqual(DataArrayDouble([a,b,c,d,e,f,g,h,i,j,k,l],4,3),1e-12))
14800 inp=DataArrayInt([(1,2,3),(4,5,6),(7,8,9),(10,11,12)])
14803 self.assertRaises(StopIteration,r.__getitem__,4)
14804 self.assertEqual(len(r),3)
14807 self.assertEqual(len(r),3)
14810 self.assertEqual(len(r),3)
14813 self.assertEqual(len(r),3)
14815 self.assertTrue(inp.isEqual(DataArrayInt([a,b,c,d,e,f,g,h,i,j,k,l],4,3)))
14818 def testSwig2IMesh1(self):
14819 """ 1st test of image grid mesh.
14821 m=MEDCouplingIMesh()
14822 self.assertEqual(m.getSpaceDimension(),-1)
14823 self.assertEqual(1,len(m.__repr__().split("\n")))
14824 self.assertEqual(6,len(m.__str__().split("\n")))
14825 self.assertRaises(InterpKernelException,m.getNodeStruct)
14826 self.assertRaises(InterpKernelException,m.getOrigin)
14827 self.assertRaises(InterpKernelException,m.getDXYZ)
14828 m.setSpaceDimension(3)
14829 self.assertEqual(9,len(m.__str__().split("\n")))
14830 self.assertEqual(4,len(m.__repr__().split("\n")))
14831 self.assertEqual((0,0,0),m.getNodeStruct())
14832 self.assertEqual((0.,0.,0.),m.getOrigin())
14833 self.assertEqual((0.,0.,0.),m.getDXYZ())
14834 self.assertRaises(InterpKernelException,m.setNodeStruct,[3,4])
14835 m.setNodeStruct([3,4,2])
14836 self.assertEqual((3,4,2),m.getNodeStruct())
14837 m.setOrigin(DataArrayDouble([1.5,2.5,3.5]))
14838 self.assertEqual((1.5,2.5,3.5),m.getOrigin())
14839 m.setDXYZ((0.5,1.,0.25))
14840 self.assertEqual((0.5,1.,0.25),m.getDXYZ())
14841 for it in DataArrayDouble([(1.5,2.5,3.5)]):
14842 m2=MEDCouplingIMesh("",3,DataArrayInt([3,4,2]),it,DataArrayDouble((0.5,1.,0.25)))
14844 self.assertEqual(3,m.getSpaceDimension())
14845 self.assertEqual((3,4,2),m2.getNodeStruct())
14846 self.assertEqual((1.5,2.5,3.5),m2.getOrigin())
14847 self.assertEqual((0.5,1.,0.25),m2.getDXYZ())
14848 self.assertEqual(24,m2.getNumberOfNodes())
14849 self.assertEqual(6,m2.getNumberOfCells())
14850 self.assertTrue(m.isEqual(m2,1e-12)) ; self.assertTrue(m.isEqualWithoutConsideringStr(m2,1e-12))
14851 m2.setAxisUnit("m")
14852 self.assertTrue(not m.isEqual(m2,1e-12)) ; self.assertTrue(m.isEqualWithoutConsideringStr(m2,1e-12))
14854 self.assertTrue(m.isEqual(m2,1e-12)) ; self.assertTrue(m.isEqualWithoutConsideringStr(m2,1e-12))
14856 self.assertTrue(not m.isEqual(m2,1e-12)) ; self.assertTrue(m.isEqualWithoutConsideringStr(m2,1e-12))
14858 self.assertTrue(m.isEqual(m2,1e-12)) ; self.assertTrue(m.isEqualWithoutConsideringStr(m2,1e-12))
14859 m2.setTime(1.1,0,3)
14860 self.assertTrue(not m.isEqual(m2,1e-12))
14862 self.assertTrue(m.isEqual(m2,1e-12))
14863 m.setTimeUnit("ms")
14864 self.assertTrue(not m.isEqual(m2,1e-12)) ; self.assertTrue(m.isEqualWithoutConsideringStr(m2,1e-12))
14865 m2.setTimeUnit("ms")
14866 self.assertTrue(m.isEqual(m2,1e-12)) ; self.assertTrue(m.isEqualWithoutConsideringStr(m2,1e-12))
14868 m2.setNodeStruct([3,2,4])
14869 self.assertTrue(not m.isEqual(m2,1e-12))
14870 m.setNodeStruct([3,2,4])
14871 self.assertTrue(m.isEqual(m2,1e-12))
14872 m.setOrigin(DataArrayDouble([1.5,3.5,2.5]))
14873 self.assertTrue(not m.isEqual(m2,1e-12))
14874 m2.setOrigin([1.5,3.5,2.5])
14875 self.assertTrue(m.isEqual(m2,1e-12))
14876 m.setDXYZ((0.5,0.25,1.))
14877 self.assertTrue(not m.isEqual(m2,1e-12))
14878 m2.setDXYZ(DataArrayDouble((0.5,0.25,1.)))
14879 self.assertTrue(m.isEqual(m2,1e-12))
14881 self.assertTrue(m2bis.isEqual(m2,1e-12))
14883 self.assertEqual(6,m2bis.getNumberOfCells())#3,2,4
14884 m2bis.refineWithFactor([3,3,3])
14885 self.assertEqual(162,m2bis.getNumberOfCells())
14886 self.assertEqual((7,4,10),m2bis.getNodeStruct())
14887 self.assertEqual((1.5,3.5,2.5),m2bis.getOrigin())
14888 self.assertTrue(DataArrayDouble([0.16666666666666666,0.08333333333333333,0.3333333333333333]).isEqual(DataArrayDouble(m2bis.getDXYZ()),1e-12))
14890 self.assertEqual(3,m.getMeshDimension())
14891 self.assertAlmostEqual(0.125,m.getMeasureOfAnyCell(),16);
14892 mu=MEDCoupling1SGTUMesh(m.buildUnstructured())
14893 mu.checkCoherency2()
14894 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]"])
14895 self.assertTrue(isinstance(mu,MEDCoupling1SGTUMesh))
14896 self.assertEqual(NORM_HEXA8,mu.getCellModelEnum())
14897 self.assertTrue(mu.getCoords().isEqual(cooExp,1e-12))
14898 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])))
14899 bary=m.getBarycenterAndOwner()
14900 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]"])
14901 self.assertTrue(bary.isEqual(baryExp,1e-12))
14903 c=m.convertToCartesian()
14905 self.assertEqual([1.1,0,3],c.getTime())
14906 self.assertEqual("ms",c.getTimeUnit())
14907 self.assertEqual(3,c.getMeshDimension())
14908 self.assertEqual(3,c.getSpaceDimension())
14909 arrX=DataArrayDouble([1.5,2.,2.5]) ; arrX.setInfoOnComponents(["X [m]"])
14910 self.assertTrue(c.getCoordsAt(0).isEqual(arrX,1e-12))
14911 arrY=DataArrayDouble([3.5,3.75]) ; arrY.setInfoOnComponents(["Y [m]"])
14912 self.assertTrue(c.getCoordsAt(1).isEqual(arrY,1e-12))
14913 arrZ=DataArrayDouble([2.5,3.5,4.5,5.5]) ; arrZ.setInfoOnComponents(["Z [m]"])
14914 self.assertTrue(c.getCoordsAt(2).isEqual(arrZ,1e-12))
14915 self.assertTrue(c.buildUnstructured().isEqual(m.buildUnstructured(),1e-12))
14917 a,b=m.getCellsContainingPoints(baryExp,1e-12)
14918 self.assertTrue(a.isEqual(DataArrayInt([0,1,2,3,4,5])))
14919 self.assertTrue(b.isEqual(DataArrayInt([0,1,2,3,4,5,6])))
14920 for a,b in enumerate(baryExp):
14921 self.assertEqual(a,m.getCellContainingPoint(b,1e-12))
14924 m.translate([1.,2.,4.])
14925 self.assertEqual((3,2,4),m.getNodeStruct())
14926 self.assertEqual((2.5,5.5,6.5),m.getOrigin())
14927 self.assertEqual((0.5,0.25,1.),m.getDXYZ())
14928 m.scale([0.,1.,3.],2.)
14929 self.assertAlmostEqual(1.,m.getMeasureOfAnyCell(),16);
14930 self.assertEqual((3,2,4),m.getNodeStruct())
14931 self.assertEqual((5.,10.,10.),m.getOrigin())
14932 self.assertEqual((1.,0.5,2.),m.getDXYZ())
14934 f=m.getMeasureField(False)
14935 f2=MEDCouplingFieldDouble(ON_CELLS) ; f2.setTime(1.1,0,3) ; f2.setMesh(m) ; arr=DataArrayDouble(6) ; arr[:]=1. ; f2.setArray(arr) ; f2.setTimeUnit("ms")
14936 f2.setName("MeasureOfMesh_mesh")
14937 self.assertTrue(f.isEqual(f2,1e-12,1e-12))
14939 m3=m.buildStructuredSubPart([(1,2),(0,1),(1,3)])
14940 self.assertEqual((2,2,3),m3.getNodeStruct())
14941 self.assertEqual((6.,10.,12.),m3.getOrigin())
14942 self.assertEqual((1.,0.5,2.),m3.getDXYZ())
14943 # now playing with 3D surf
14944 m4=MEDCouplingIMesh("",3,DataArrayInt([3,1,4]),DataArrayDouble([1.5,2.5,3.5]),DataArrayDouble((0.5,1.,0.25))) ; m4.setAxisUnit("km")
14945 self.assertEqual([(1.5,2.5),(2.5,3.5),(3.5,4.25)],m4.getBoundingBox())
14946 self.assertEqual(3,m4.getSpaceDimension())
14947 self.assertEqual(2,m4.getMeshDimension())
14948 self.assertEqual(12,m4.getNumberOfNodes())
14949 self.assertEqual(6,m4.getNumberOfCells())
14950 mu=MEDCoupling1SGTUMesh(m4.buildUnstructured())
14951 mu.checkCoherency2()
14952 self.assertTrue(isinstance(mu,MEDCoupling1SGTUMesh))
14953 self.assertEqual(NORM_QUAD4,mu.getCellModelEnum())
14954 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]"])
14955 self.assertTrue(mu.getCoords().isEqual(coordsExp,1e-12))
14956 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])))
14959 def testSwig1GetValuesAsTuple1(self):
14960 d=DataArrayDouble()
14961 self.assertEqual(d.getValues(),[])
14962 self.assertEqual(d.getValuesAsTuple(),[])
14963 d=DataArrayDouble(24) ; d.iota() ; d.rearrange(3)
14964 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.])
14965 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.)])
14967 self.assertEqual(d.getValues(),[])
14968 self.assertEqual(d.getValuesAsTuple(),[])
14969 d=DataArrayInt(24) ; d.iota() ; d.rearrange(3)
14970 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])
14971 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)])
14974 def testSwig2AMR1(self):
14975 self.assertEqual((1,3,12),MEDCouplingStructuredMesh.GetSplitVectFromStruct([3,4,5]))
14976 self.assertEqual((3,2),MEDCouplingStructuredMesh.GetDimensionsFromCompactFrmt([(1,4),(2,4)]))
14978 amr=MEDCouplingCartesianAMRMesh("",2,[3,3],[0,0],[1,1])
14979 self.assertEqual(4,amr.getNumberOfCellsAtCurrentLevel())
14980 self.assertEqual(4,amr.getNumberOfCellsRecursiveWithOverlap())
14981 self.assertEqual(4,amr.getNumberOfCellsRecursiveWithoutOverlap())
14982 self.assertEqual(0,amr.getNumberOfPatches())
14983 self.assertEqual(1,amr.getMaxNumberOfLevelsRelativeToThis())
14984 self.assertEqual(2,amr.getSpaceDimension())
14985 amr.addPatch([(1,2),(0,1)],[4,4])
14986 self.assertEqual(4,amr.getNumberOfCellsAtCurrentLevel())
14987 self.assertEqual(20,amr.getNumberOfCellsRecursiveWithOverlap())
14988 self.assertEqual(19,amr.getNumberOfCellsRecursiveWithoutOverlap())
14989 self.assertEqual(1,amr.getNumberOfPatches())
14990 self.assertEqual(2,amr.getMaxNumberOfLevelsRelativeToThis())
14991 self.assertEqual(2,amr.getSpaceDimension())
14992 amr[0].addPatch([(2,3),(1,3)],[3,2])
14993 self.assertEqual(amr[0].getBLTRRange(),[(1,2),(0,1)])
14994 self.assertEqual(4,amr.getNumberOfCellsAtCurrentLevel())
14995 self.assertEqual(32,amr.getNumberOfCellsRecursiveWithOverlap())
14996 self.assertEqual(29,amr.getNumberOfCellsRecursiveWithoutOverlap())
14997 self.assertEqual(1,amr.getNumberOfPatches())
14998 self.assertEqual(3,amr.getMaxNumberOfLevelsRelativeToThis())
14999 self.assertEqual(2,amr.getSpaceDimension())
15000 amr[0].addPatch([(0,2),(3,4)],[3,2])
15001 self.assertEqual(16,amr[0].getMesh().getNumberOfCellsAtCurrentLevel())
15002 self.assertEqual(44,amr.getNumberOfCellsRecursiveWithOverlap())
15003 self.assertEqual(39,amr.getNumberOfCellsRecursiveWithoutOverlap())
15004 self.assertEqual(2,amr[0].getMesh().getNumberOfPatches())
15005 self.assertEqual(3,amr.getMaxNumberOfLevelsRelativeToThis())
15006 self.assertEqual(2,amr.getSpaceDimension())
15008 self.assertEqual(amr[0].getBLTRRange(),[(1,2),(0,1)])
15009 self.assertEqual(4,amr.getNumberOfCellsAtCurrentLevel())
15010 self.assertEqual(32,amr.getNumberOfCellsRecursiveWithOverlap())
15011 self.assertEqual(29,amr.getNumberOfCellsRecursiveWithoutOverlap())
15012 self.assertEqual(1,amr.getNumberOfPatches())
15013 self.assertEqual(3,amr.getMaxNumberOfLevelsRelativeToThis())
15014 self.assertEqual(2,amr.getSpaceDimension())
15017 def testSwig2NonRegressionTestPAL1164(self):
15018 """ Test PAL1164 Protection of applyLin against error in compoId ( #CEA22584 ) """
15019 xarr=DataArrayDouble(3,1)
15021 cmesh=MEDCouplingCMesh()
15022 cmesh.setCoords(xarr,xarr,xarr)
15023 mesh=cmesh.buildUnstructured()
15024 f=mesh.fillFromAnalytic(ON_CELLS,1,"(x-5.)*(x-5.)+(y-5.)*(y-5.)+(z-5.)*(z-5.)")
15025 f.setName("MyField")
15026 self.assertTrue(f.getArray().isEqual(DataArrayDouble([60.75,52.75,52.75,44.75,52.75,44.75,44.75,36.75]),1e-12))
15027 self.assertRaises(InterpKernelException,f.applyLin,2.,0.,1)# compoId 1 whereas f has only one component !
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 f.applyLin(2.,0.,0)# here it is OK !
15030 self.assertTrue(f.getArray().isEqual(DataArrayDouble([121.5,105.5,105.5,89.5,105.5,89.5,89.5,73.5]),1e-12))
15032 self.assertTrue(f.getArray().isEqual(DataArrayDouble([243.,211.,211.,179.,211.,179.,179.,147.]),1e-12))
15035 def testSwig2StructurizeMe1(self):
15036 arrx=DataArrayDouble(3) ; arrx.iota() ; arrx*=2.
15037 arry=DataArrayDouble(4) ; arry.iota() ; arry+=3.
15038 arrz=DataArrayDouble(5) ; arrz.iota() ; arrz*=0.5 ; arrz+=2.
15039 c=MEDCouplingCMesh() ; c.setCoords(arrx,arry,arrz)
15040 c.setName("mesh") ; c.setDescription("mesh descr") ; c.setTimeUnit("us") ; c.setTime(1.2,3,4)
15041 u=c.buildUnstructured()
15042 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])
15043 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])
15044 u.renumberCells(cp)
15045 u.renumberNodes(np,len(np))
15046 u=MEDCoupling1SGTUMesh(u)
15048 e,d,f=u.structurizeMe()
15049 self.assertTrue(c.isEqual(e,1e-12))
15050 self.assertTrue(d.isEqual(cp))
15051 self.assertTrue(f.isEqual(np))
15054 def testSwig2DenseMatrix1(self):
15055 m0=DenseMatrix(DataArrayDouble([2,3,4,5,1,6]),2,3)
15056 self.assertEqual(m0.getNumberOfRows(),2)
15057 self.assertEqual(m0.getNumberOfCols(),3)
15058 self.assertEqual(m0.getNbOfElems(),6)
15059 ref=m0.getData().getHiddenCppPointer()
15061 self.assertTrue(m0.isEqual(m00,1e-12))
15062 m00.getData().setIJ(0,0,2.1)
15063 self.assertTrue(not m0.isEqual(m00,1e-12))
15064 m00.getData().setIJ(0,0,2.)
15065 self.assertTrue(m0.isEqual(m00,1e-12))
15066 self.assertTrue(m0.getData().isEqual(DataArrayDouble([2,3,4,5,1,6]),1e-12))
15068 m000=m0*DataArrayDouble([5,9,3])
15069 self.assertTrue(m000.getData().isEqual(DataArrayDouble([49.,52.]),1e-12))
15072 self.assertTrue(not m0.isEqual(m00,1e-12))
15073 self.assertEqual(m0.getNumberOfRows(),3)
15074 self.assertEqual(m0.getNumberOfCols(),2)
15075 self.assertEqual(ref,m0.getData().getHiddenCppPointer())
15076 self.assertTrue(m0.getData().isEqual(DataArrayDouble([2,3,4,5,1,6]),1e-12))
15078 self.assertTrue(m0.isEqual(m00,1e-12))
15079 self.assertEqual(ref,m0.getData().getHiddenCppPointer())
15080 self.assertEqual(m0.getNumberOfRows(),2)
15081 self.assertEqual(m0.getNumberOfCols(),3)
15082 self.assertTrue(m0.getData().isEqual(DataArrayDouble([2,3,4,5,1,6]),1e-12))
15083 #m0np=m0.getData().toNumPyArray() ; m0np=matrix(m0np.reshape(m0.getNumberOfRows(),m0.getNumberOfCols()))
15085 self.assertEqual(m1.getNumberOfRows(),2)
15086 self.assertEqual(m1.getNumberOfCols(),3)
15087 self.assertTrue(m1.getData().isEqual(DataArrayDouble([2,3,4,5,1,6]),1e-12))
15088 m11=m0.deepCpy() ; m11+=m1
15089 self.assertEqual(m11.getNumberOfRows(),2)
15090 self.assertEqual(m11.getNumberOfCols(),3)
15091 self.assertTrue(m11.getData().isEqual(DataArrayDouble([4,6,8,10,2,12]),1e-12))
15093 self.assertEqual(m11.getNumberOfRows(),2)
15094 self.assertEqual(m11.getNumberOfCols(),3)
15095 self.assertTrue(m11.getData().isEqual(DataArrayDouble([6,9,12,15,3,18]),1e-12))
15097 self.assertEqual(m11.getNumberOfRows(),2)
15098 self.assertEqual(m11.getNumberOfCols(),3)
15099 self.assertTrue(m11.getData().isEqual(DataArrayDouble([4,6,8,10,2,12]),1e-12))
15101 self.assertEqual(m1.getNumberOfRows(),2)
15102 self.assertEqual(m1.getNumberOfCols(),3)
15103 self.assertTrue(m1.getData().isEqual(DataArrayDouble([2,3,4,5,1,6]),1e-12))
15105 self.assertEqual(m1.getNumberOfRows(),3)
15106 self.assertEqual(m1.getNumberOfCols(),2)
15107 self.assertTrue(m1.getData().isEqual(DataArrayDouble([2,5,3,1,4,6]),1e-12))
15108 #m1np=m0np.transpose()
15110 self.assertEqual(m2.getNumberOfRows(),2)
15111 self.assertEqual(m2.getNumberOfCols(),2)
15112 self.assertTrue(m2.getData().isEqual(DataArrayDouble([29,37,37,62]),1e-12))
15115 def testSwig2AMR2(self):
15116 """ 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."""
15117 coarse=DataArrayDouble(35) ; coarse.iota(0) #X=5,Y=7
15118 fine=DataArrayDouble(3*2*4*4) ; fine.iota(0) #X=3,Y=2 refined by 4
15119 MEDCouplingIMesh.CondenseFineToCoarse([5,7],fine,[(1,4),(2,4)],[4,4],coarse)
15120 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))
15122 coarse=DataArrayDouble(175) ; coarse.iota(0) #X=5,Y=7,Z=5
15123 fine=DataArrayDouble(3*2*3*4*4*4) ; fine.iota(0) #X=3,Y=2,Z=3 refined by 4
15124 MEDCouplingIMesh.CondenseFineToCoarse([5,7,5],fine,[(1,4),(2,4),(1,4)],[4,4,4],coarse)
15125 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))
15127 coarse=DataArrayDouble(5) ; coarse.iota(0) #X=5
15128 fine=DataArrayDouble(3*4) ; fine.iota(0) #X=3 refined by 4
15129 MEDCouplingIMesh.CondenseFineToCoarse([5],fine,[(1,4)],[4],coarse)
15130 self.assertTrue(coarse.isEqual(DataArrayDouble([0,6,22,38,4]),1e-12))
15133 def testSwig2AMR3(self):
15134 """ Test spread of coarse IMesh instance into a fine one, with a factor."""
15135 coarse=DataArrayDouble(35) ; coarse.iota(0) #X=5,Y=7
15136 fine=DataArrayDouble(3*2*4*4) ; fine.iota(0) #X=3,Y=2 refined by 4
15137 MEDCouplingIMesh.SpreadCoarseToFine(coarse,[5,7],fine,[(1,4),(2,4)],[4,4])
15138 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))
15140 coarse=DataArrayDouble(175) ; coarse.iota(0) #X=5,Y=7,Z=5
15141 fine=DataArrayDouble(3*2*3*4*4*4) ; fine.iota(0) #X=3,Y=2,Z=3 refined by 4
15142 MEDCouplingIMesh.SpreadCoarseToFine(coarse,[5,7,5],fine,[(1,4),(2,4),(1,4)],[4,4,4])
15143 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))
15144 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()
15145 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()
15147 coarse=DataArrayDouble(5) ; coarse.iota(0) #X=5
15148 fine=DataArrayDouble(3*4) ; fine.iota(0) #X=3 refined by 4
15149 MEDCouplingIMesh.SpreadCoarseToFine(coarse,[5],fine,[(1,4)],[4])
15150 self.assertTrue(fine.isEqual(DataArrayDouble([1.,1.,1.,1.,2.,2.,2.,2.,3.,3.,3.,3.]),1e-12))
15153 def testSwig2AMR4(self):
15154 """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."""
15155 im=MEDCouplingIMesh("mesh",2,[51,51],[0.,0.],[0.04,0.04])
15156 b=im.getBarycenterAndOwner() ; b-=[1.,1.] ; b=b.magnitude()
15157 ids=b.getIdsInRange(0.4,0.7)
15158 f=MEDCouplingFieldDouble(ON_CELLS) ; f.setMesh(im) ; f.setName("toto") ; arr=DataArrayDouble(im.getNumberOfCells()) ; arr[:]=0. ; arr[ids]=1. ; f.setArray(arr)
15159 # f.write("test.vti")
15160 amr=MEDCouplingCartesianAMRMesh(MEDCouplingIMesh("mesh",2,[51,51],[0.,0.],[0.04,0.04]))
15161 arr2=DataArrayByte(im.getNumberOfCells()) ; arr2[:]=0 ; arr2[ids]=1
15162 bso=BoxSplittingOptions() ; bso.setEfficiencyGoal(0.5); bso.setEfficiencyThreshold(0.8) ; bso.setMaximumNbOfCellsInPatch(3000) ; bso.setMinimumPatchLength(6) ; bso.setMaximumPatchLength(11)
15163 amr.createPatchesFromCriterion(bso,arr2,[2,2])
15164 m=amr.getImageMesh() ; m=m.buildUnstructured() ; m.changeSpaceDimension(3,1.)
15165 self.assertEqual(12,amr.getNumberOfPatches())
15166 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)]]
15167 for i,bltr in enumerate(exp0):
15168 self.assertEqual(amr[i].getBLTRRange(),bltr)
15170 self.assertAlmostEqual(0.666666666667,amr[3].getMesh().getImageMesh().computeSquareness(),12)
15172 self.assertEqual(MEDCouplingStructuredMesh.ChangeReferenceToGlobalOfCompactFrmt([(8,32),(4,17)],[(0,24),(2,12)]),[(8,32),(6,16)])
15173 self.assertEqual(MEDCouplingStructuredMesh.ChangeReferenceFromGlobalOfCompactFrmt([(8,32),(4,17)],[(8,32),(6,16)]),[(0,24),(2,12)])
15174 self.assertTrue(amr.getImageMesh().isEqual(im,1e-12))
15175 m=amr.getImageMesh().asSingleCell().build1SGTUnstructured()
15176 self.assertTrue(m.getNodalConnectivity().isEqual(DataArrayInt([1,0,2,3])))
15177 self.assertTrue(m.getCoords().isEqualWithoutConsideringStr(DataArrayDouble([(0,0),(2,0),(0,2),(2,2)]),1e-12))
15180 def testSwig2AMR5(self):
15181 """ Idem testAMR3, test spread of coarse IMesh instance into a fine one, with a factor, but here ghost is used !"""
15183 coarse=DataArrayDouble(5+2) ; coarse.iota(-1) #X=5 with ghostLev=1
15184 fine=DataArrayDouble(3*4+2) ; fine.iota(1000) #X=3 refined by 4 with ghostLev=1
15185 MEDCouplingIMesh.SpreadCoarseToFineGhost(coarse,[5],fine,[(1,4)],[4],1)
15186 self.assertTrue(fine.isEqual(DataArrayDouble([0,1,1,1,1,2,2,2,2,3,3,3,3,4]),1e-12))
15188 MEDCouplingIMesh.CondenseFineToCoarseGhost([5],fine,[(1,4)],[4],coarse,1)
15189 self.assertTrue(coarse.isEqual(DataArrayDouble([-1000.,-999.,4.,8.,12.,-995.,-994.]),1e-12))
15191 coarse=DataArrayDouble((5+2*1)*(7+2*1)) ; coarse.iota(0) #X=5,Y=7 with ghostLev=1
15192 fine=DataArrayDouble((3*4+2*1)*(2*4+2*1)) ; fine.iota(1000) #X=3,Y=2 refined by 4
15193 MEDCouplingIMesh.SpreadCoarseToFineGhost(coarse,[5,7],fine,[(1,4),(2,4)],[4,4],1)
15194 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))
15195 f=MEDCouplingFieldDouble(ON_CELLS) ; f.setMesh(MEDCouplingIMesh("",2,DataArrayInt([8,10]),[0.,0.],DataArrayDouble((1.,1.)))) ; f.setArray(coarse) ; f.setName("tutu") ; f.checkCoherency()
15197 fine2=DataArrayDouble.Meld(fine,3*fine) ; coarse2=DataArrayDouble.Meld(coarse,3*coarse)
15198 MEDCouplingIMesh.CondenseFineToCoarseGhost([5,7],fine,[(1,4),(2,4)],[4,4],coarse,1)
15199 MEDCouplingIMesh.CondenseFineToCoarseGhost([5,7],fine2,[(1,4),(2,4)],[4,4],coarse2,1)
15200 f=MEDCouplingFieldDouble(ON_CELLS) ; f.setMesh(MEDCouplingIMesh("",2,DataArrayInt([8,10]),[0.,0.],DataArrayDouble((1.,1.)))) ; f.setArray(coarse) ; f.setName("tutu") ; f.checkCoherency()
15201 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.])
15202 self.assertTrue(coarse.isEqual(coarseExp,1e-12))
15203 self.assertTrue(coarse2[:,0].isEqual(coarseExp,1e-12))
15204 self.assertTrue(coarse2[:,1].isEqual(3*coarseExp,1e-12))
15207 def testSwig2AMR6(self):
15208 """ 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."""
15209 amr=MEDCouplingCartesianAMRMesh("",2,[6,6],[0,0],[1,1])
15210 da=DataArrayDouble((5+2)*(5+2)) ; da.iota() ; da+=0.9
15211 amr.addPatch([(1,4),(2,4)],[4,4])
15212 amr.addPatch([(0,1),(0,1)],[4,4])
15213 amr.addPatch([(4,5),(3,4)],[4,4])
15214 amr.addPatch([(4,5),(1,3)],[4,4])
15215 amr.addPatch([(0,1),(1,4)],[4,4])
15216 da0=DataArrayDouble((3*4+2)*(2*4+2)) ; da0.iota() ; da0[:]+=0.2
15217 da1=DataArrayDouble((1*4+2)*(1*4+2)) ; da1.iota() ; da1[:]+=0.4
15218 da2=DataArrayDouble((1*4+2)*(1*4+2)) ; da2.iota() ; da2[:]+=0.6
15219 da3=DataArrayDouble((1*4+2)*(2*4+2)) ; da3.iota() ; da3[:]+=0.7
15220 da4=DataArrayDouble((1*4+2)*(3*4+2)) ; da4.iota() ; da4[:]+=0.8
15221 self.assertEqual(5,amr.getNumberOfPatches())
15222 l=[da0,da1,da2,da3,da4]
15223 lCpy=[elt.deepCpy() for elt in l]
15224 l2=[DataArrayDouble.Meld(elt,3*elt) for elt in l]
15225 amr.fillCellFieldOnPatchGhostAdv(0,da,1,l,False)
15226 amr.fillCellFieldOnPatchGhostAdv(0,DataArrayDouble.Meld(da,3*da),1,l2,False)
15227 amr.fillCellFieldOnPatchOnlyOnGhostZone(0,da,lCpy[0],1)
15229 f=MEDCouplingFieldDouble(ON_CELLS) ; f.setMesh(amr.getImageMesh().buildWithGhost(1)) ; f.setArray(da) ; f.setName("all")
15230 f0=MEDCouplingFieldDouble(ON_CELLS) ; f0.setMesh(amr[0].getMesh().getImageMesh().buildWithGhost(1)) ; f0.setArray(da0) ; f0.setName("p0") ; f0.checkCoherency()
15231 f1=MEDCouplingFieldDouble(ON_CELLS) ; f1.setMesh(amr[1].getMesh().getImageMesh().buildWithGhost(1)) ; f1.setArray(da1) ; f1.setName("p1") ; f1.checkCoherency()
15232 f2=MEDCouplingFieldDouble(ON_CELLS) ; f2.setMesh(amr[2].getMesh().getImageMesh().buildWithGhost(1)) ; f2.setArray(da2) ; f2.setName("p2") ; f2.checkCoherency()
15233 f3=MEDCouplingFieldDouble(ON_CELLS) ; f3.setMesh(amr[3].getMesh().getImageMesh().buildWithGhost(1)) ; f3.setArray(da3) ; f3.setName("p3") ; f3.checkCoherency()
15234 f4=MEDCouplingFieldDouble(ON_CELLS) ; f4.setMesh(amr[4].getMesh().getImageMesh().buildWithGhost(1)) ; f4.setArray(da4) ; f4.setName("p4") ; f4.checkCoherency()
15236 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])
15237 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])
15238 self.assertTrue(da0.isEqual(da0Exp,1e-12))
15239 self.assertTrue(l2[0][:,0].isEqual(da0Exp,1e-12))
15240 self.assertTrue(l2[0][:,1].isEqual(3*da0Exp,1e-12))
15241 self.assertTrue(lCpy[0].isEqual(da0Exp2,1e-12))
15243 g0=amr.retrieveGridsAt(0)
15244 self.assertEqual(1,len(g0))
15245 self.assertTrue(isinstance(g0[0],MEDCouplingCartesianAMRPatchGF))
15246 g1=amr.retrieveGridsAt(1)
15247 self.assertEqual(5,len(g1))
15248 for i in xrange(5):
15249 self.assertTrue(isinstance(g1[i],MEDCouplingCartesianAMRPatch))
15253 def testSwig2AMR7(self):
15254 """Idem testSwig2AMR6 except that we are in 1D"""
15255 amr=MEDCouplingCartesianAMRMesh("",1,[6],[0],[1])
15256 da=DataArrayDouble(5+2) ; da.iota() ; da+=0.9
15257 amr.addPatch([(1,4)],[4])
15258 amr.addPatch([(0,1)],[4])
15259 da0=DataArrayDouble(3*4+2) ; da0.iota() ; da0[:]+=0.2
15260 da1=DataArrayDouble(1*4+2) ; da1.iota() ; da1[:]+=0.4
15261 self.assertEqual(2,amr.getNumberOfPatches())
15263 lCpy=[elt.deepCpy() for elt in l]
15264 l2=[DataArrayDouble.Meld(elt,3*elt) for elt in l]
15265 amr.fillCellFieldOnPatchGhostAdv(0,da,1,l,False)
15266 amr.fillCellFieldOnPatchGhostAdv(0,DataArrayDouble.Meld(da,3*da),1,l2,False)
15267 amr.fillCellFieldOnPatchOnlyOnGhostZone(0,da,lCpy[0],1)
15269 f=MEDCouplingFieldDouble(ON_CELLS) ; f.setMesh(amr.getImageMesh().buildWithGhost(1)) ; f.setArray(da) ; f.setName("all")
15270 f0=MEDCouplingFieldDouble(ON_CELLS) ; f0.setMesh(amr[0].getMesh().getImageMesh().buildWithGhost(1)) ; f0.setArray(da0) ; f0.setName("p0") ; f0.checkCoherency()
15271 f1=MEDCouplingFieldDouble(ON_CELLS) ; f1.setMesh(amr[1].getMesh().getImageMesh().buildWithGhost(1)) ; f1.setArray(da1) ; f1.setName("p1") ; f1.checkCoherency()
15273 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])
15274 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])
15275 self.assertTrue(da0.isEqual(da0Exp,1e-12))
15276 self.assertTrue(l2[0][:,0].isEqual(da0Exp,1e-12))
15277 self.assertTrue(l2[0][:,1].isEqual(3*da0Exp,1e-12))
15278 self.assertTrue(lCpy[0].isEqual(da0Exp2,1e-12))
15281 def testSwig2AMR8(self):
15282 """This test checks 'basic' operations for ghost update."""
15284 amr=MEDCouplingCartesianAMRMesh("",2,[6,7],[0,0],[1,1])
15285 amr.addPatch([(1,4),(2,4)],[4,4])
15286 amr.addPatch([(4,5),(3,5)],[4,4])
15287 amr.addPatch([(0,1),(4,6)],[4,4])
15288 amr[0].addPatch([(10,12),(5,8)],[2,2])
15289 amr[1].addPatch([(0,1),(0,5)],[2,2])
15290 amr[2].addPatch([(3,4),(0,3)],[2,2])
15291 m=amr.buildMeshFromPatchEnvelop()
15292 self.assertTrue(m.getNodalConnectivity().isEqual(DataArrayInt([1,0,2,3,5,4,6,7,9,8,10,11])))
15293 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))
15294 self.assertEqual(3,amr.getMaxNumberOfLevelsRelativeToThis())
15295 att=MEDCouplingAMRAttribute(amr,[("Field",["X"])],ghostSz)
15297 d=att.getFieldOn(amr,"Field")
15298 self.assertEqual(56,d.getNumberOfTuples())
15299 self.assertEqual(1,d.getNumberOfComponents())
15301 d0=att.getFieldOn(amr[0].getMesh(),"Field")
15302 self.assertEqual(140,d0.getNumberOfTuples())
15303 self.assertEqual(1,d0.getNumberOfComponents())
15304 d0.iota() ; d0+=0.2
15305 d1=att.getFieldOn(amr[1].getMesh(),"Field")
15306 self.assertEqual(60,d1.getNumberOfTuples())
15307 self.assertEqual(1,d1.getNumberOfComponents())
15308 d1.iota() ; d1+=0.3
15309 d2=att.getFieldOn(amr[2].getMesh(),"Field")
15310 self.assertEqual(60,d2.getNumberOfTuples())
15311 self.assertEqual(1,d2.getNumberOfComponents())
15312 d2.iota() ; d2+=0.4
15313 d00=att.getFieldOn(amr[0][0].getMesh(),"Field")
15314 self.assertEqual(48,d00.getNumberOfTuples())
15315 self.assertEqual(1,d00.getNumberOfComponents())
15316 d00.iota() ; d00+=0.5
15317 d10=att.getFieldOn(amr[1][0].getMesh(),"Field")
15318 self.assertEqual(48,d10.getNumberOfTuples())
15319 self.assertEqual(1,d10.getNumberOfComponents())
15320 d10.iota() ; d10+=0.6
15321 d20=att.getFieldOn(amr[2][0].getMesh(),"Field")
15322 self.assertEqual(32,d20.getNumberOfTuples())
15323 self.assertEqual(1,d20.getNumberOfComponents())
15324 d20.iota() ; d20+=0.7
15325 f=att.buildCellFieldOnRecurseWithoutOverlapWithoutGhost(amr,"Field")
15326 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])
15327 arrExp.setName("Field") ; arrExp.setInfoOnComponents(["X"])
15328 self.assertTrue(f.getArray().isEqual(arrExp,1e-12))
15329 m=MEDCoupling1SGTUMesh(f.getMesh())
15330 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])))
15331 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))
15332 # the test is here ! To be called after iteration with no remesh
15333 att.synchronizeAllGhostZones()
15334 f=att.buildCellFieldOnWithGhost(amr,"Field") ; f.checkCoherency()
15335 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))
15336 f0=att.buildCellFieldOnWithGhost(amr[0].getMesh(),"Field")
15337 f1=att.buildCellFieldOnWithGhost(amr[1].getMesh(),"Field")
15338 f2=att.buildCellFieldOnWithGhost(amr[2].getMesh(),"Field")
15339 f00=att.buildCellFieldOnWithGhost(amr[0][0].getMesh(),"Field")
15340 f10=att.buildCellFieldOnWithGhost(amr[1][0].getMesh(),"Field")
15341 f20=att.buildCellFieldOnWithGhost(amr[2][0].getMesh(),"Field")
15342 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))
15343 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))
15344 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))
15345 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))
15346 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))
15347 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))
15348 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))
15351 def testSwig2AMR9(self):
15352 """ Equivalent to testSwig2AMR8 except that here the ghost level is 2 !"""
15354 amr=MEDCouplingCartesianAMRMesh("",2,[6,7],[0,0],[1,1])
15355 amr.addPatch([(1,4),(2,4)],[4,4])
15356 amr.addPatch([(4,5),(3,5)],[4,4])
15357 amr.addPatch([(0,1),(4,6)],[4,4])
15358 amr[0].addPatch([(10,12),(5,8)],[2,2])
15359 amr[1].addPatch([(0,1),(0,5)],[2,2])
15360 amr[2].addPatch([(3,4),(0,3)],[2,2])
15361 self.assertEqual(3,amr.getMaxNumberOfLevelsRelativeToThis())
15362 att=MEDCouplingAMRAttribute(amr,[("Field",["X"])],ghostSz)
15364 d=att.getFieldOn(amr,"Field")
15365 self.assertEqual(90,d.getNumberOfTuples())
15366 self.assertEqual(1,d.getNumberOfComponents())
15368 d0=att.getFieldOn(amr[0].getMesh(),"Field")
15369 self.assertEqual(192,d0.getNumberOfTuples())
15370 self.assertEqual(1,d0.getNumberOfComponents())
15371 d0.iota() ; d0+=0.2
15372 d1=att.getFieldOn(amr[1].getMesh(),"Field")
15373 self.assertEqual(96,d1.getNumberOfTuples())
15374 self.assertEqual(1,d1.getNumberOfComponents())
15375 d1.iota() ; d1+=0.3
15376 d2=att.getFieldOn(amr[2].getMesh(),"Field")
15377 self.assertEqual(96,d2.getNumberOfTuples())
15378 self.assertEqual(1,d2.getNumberOfComponents())
15379 d2.iota() ; d2+=0.4
15380 d00=att.getFieldOn(amr[0][0].getMesh(),"Field")
15381 self.assertEqual(80,d00.getNumberOfTuples())
15382 self.assertEqual(1,d00.getNumberOfComponents())
15383 d00.iota() ; d00+=0.5
15384 d10=att.getFieldOn(amr[1][0].getMesh(),"Field")
15385 self.assertEqual(84,d10.getNumberOfTuples())
15386 self.assertEqual(1,d10.getNumberOfComponents())
15387 d10.iota() ; d10+=0.6
15388 d20=att.getFieldOn(amr[2][0].getMesh(),"Field")
15389 self.assertEqual(60,d20.getNumberOfTuples())
15390 self.assertEqual(1,d20.getNumberOfComponents())
15391 d20.iota() ; d20+=0.7
15392 # the test is here ! To be called after iteration with no remesh
15393 att.synchronizeAllGhostZones()
15394 f=att.buildCellFieldOnWithGhost(amr,"Field")
15395 f0=att.buildCellFieldOnWithGhost(amr[0].getMesh(),"Field")
15396 f1=att.buildCellFieldOnWithGhost(amr[1].getMesh(),"Field")
15397 f2=att.buildCellFieldOnWithGhost(amr[2].getMesh(),"Field")
15398 f00=att.buildCellFieldOnWithGhost(amr[0][0].getMesh(),"Field")
15399 f10=att.buildCellFieldOnWithGhost(amr[1][0].getMesh(),"Field")
15400 f20=att.buildCellFieldOnWithGhost(amr[2][0].getMesh(),"Field")
15401 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))
15402 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))
15403 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))
15404 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))
15405 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))
15406 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))
15407 self.assertTrue(MEDCouplingStructuredMesh.ComputeCornersGhost([3],1).isEqual(DataArrayInt([0,4])))
15408 self.assertTrue(MEDCouplingStructuredMesh.ComputeCornersGhost([3],2).isEqual(DataArrayInt([0,1,5,6])))
15409 self.assertTrue(MEDCouplingStructuredMesh.ComputeCornersGhost([5,6],1).isEqual(DataArrayInt([0,6,49,55])))
15410 self.assertTrue(MEDCouplingStructuredMesh.ComputeCornersGhost([5,6],2).isEqual(DataArrayInt([0,8,10,16,73,79,81,89])))
15411 self.assertTrue(MEDCouplingStructuredMesh.ComputeCornersGhost([5,6,3],1).isEqual(DataArrayInt([0,6,49,55,224,230,273,279])))
15412 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])))
15415 def testSwig2AMR10(self):
15416 """ 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."""
15418 amr=MEDCouplingCartesianAMRMesh("",2,[11,11],[0,0],[0.1,0.1])
15419 amr.addPatch([(3,8),(0,3)],[2,2])
15420 amr[0].addPatch([(0,10),(3,6)],[3,3])
15421 amr[0].addPatch([(2,6),(0,3)],[3,3])
15422 amr[0].addPatch([(6,10),(2,3)],[3,3])
15423 amr.addPatch([(3,8),(3,6)],[2,2])
15424 amr[1].addPatch([(0,4),(0,6)],[3,3])
15425 amr[1].addPatch([(7,10),(0,4)],[3,3])
15426 amr[1].addPatch([(4,7),(0,3)],[3,3])
15427 amr[1].addPatch([(4,7),(3,6)],[3,3])
15428 amr.addPatch([(0,3),(6,10)],[2,2])
15429 self.assertEqual(([(30,39),(27,36)],[6,6]),amr[1][3].getMesh().positionRelativeToGodFather())
15430 self.assertEqual(([(6,16),(6,12)],[2,2]),amr[1].getMesh().positionRelativeToGodFather())
15431 self.assertTrue(not MEDCouplingStructuredMesh.AreRangesIntersect([(30,39),(27,36)],[(6,16),(6,12)]))
15432 self.assertTrue(MEDCouplingStructuredMesh.AreRangesIntersect([(30,39),(27,36)],[(28,32),(35,37)]))
15433 da=DataArrayDouble([0.,1.,2.,3.,4.,5.,6.,7.,8.,9.,10.,11.])
15434 MEDCouplingStructuredMesh.AssignPartOfFieldOfDoubleUsing([3,4],da,[(1,3),(2,3)],DataArrayDouble([7.7,8.8]))
15435 self.assertTrue(da.isEqual(DataArrayDouble([0.,1.,2.,3.,4.,5.,6.,7.7,8.8,9.,10.,11.]),1e-12))
15436 att=MEDCouplingAMRAttribute(amr,[("YY",1)],szGhost)
15437 att.spillNatures([ConservativeVolumic])
15439 yy=att.getFieldOn(amr,"YY") ; yy.iota(0.01)
15440 yy=att.getFieldOn(amr[0].getMesh(),"YY") ; yy.iota(0.02)
15441 yy=att.getFieldOn(amr[1].getMesh(),"YY") ; yy.iota(0.03)
15442 yy=att.getFieldOn(amr[0][0].getMesh(),"YY") ; yy.iota(0.04)
15443 yy=att.getFieldOn(amr[0][1].getMesh(),"YY") ; yy.iota(0.05)
15444 yy=att.getFieldOn(amr[0][2].getMesh(),"YY") ; yy.iota(0.06)
15445 yy=att.getFieldOn(amr[1][0].getMesh(),"YY") ; yy.iota(0.07)
15446 yy=att.getFieldOn(amr[1][1].getMesh(),"YY") ; yy.iota(0.08)
15447 yy=att.getFieldOn(amr[1][2].getMesh(),"YY") ; yy.iota(0.09)
15448 yy=att.getFieldOn(amr[1][3].getMesh(),"YY") ; yy.iota(0.10)
15449 yy=att.getFieldOn(amr[2].getMesh(),"YY") ; yy.iota(0.11)
15450 att2=att.deepCpy() ; att3=att2.deepCpy() ; att4=att3.deepCpy() ; att5=att4.deepCpy() ; att6=att5.deepCpy()
15452 att.synchronizeFineToCoarseBetween(2,1)
15454 for pos in [(),(0,0),(0,1),(0,2),(1,0),(1,1),(1,2),(1,3)]:
15455 self.assertTrue(att.getFieldOn(att.getMyGodFather().getMeshAtPosition(pos),"YY").isEqual(att2.getFieldOn(att2.getMyGodFather().getMeshAtPosition(pos),"YY"),1e-12))
15457 for pos in [(0,),(1,)]:
15458 self.assertTrue(not att.getFieldOn(att.getMyGodFather().getMeshAtPosition(pos),"YY").isEqual(att2.getFieldOn(att2.getMyGodFather().getMeshAtPosition(pos),"YY"),1e-12))
15460 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))
15461 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))
15464 att2.synchronizeAllGhostZonesOfDirectChidrenOf(att2.getMyGodFather())
15465 ### 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.
15466 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])
15467 self.assertTrue(att2.getFieldOn(att2.getMyGodFather().getMeshAtPosition((2,)),"YY").isEqualWithoutConsideringStr(exp2,1e-12))
15468 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])
15469 self.assertTrue(att2.getFieldOn(att2.getMyGodFather().getMeshAtPosition((1,)),"YY").isEqualWithoutConsideringStr(exp3,1e-12))
15470 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])
15471 self.assertTrue(att2.getFieldOn(att2.getMyGodFather().getMeshAtPosition((0,)),"YY").isEqualWithoutConsideringStr(exp4,1e-12))
15472 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)]:
15473 vals=att2.getFieldOn(att2.getMyGodFather().getMeshAtPosition(pos),"YY")
15474 l=vals.getNumberOfTuples()
15475 exps=DataArrayDouble(l) ; exps.iota(iot)
15476 self.assertTrue(vals.isEqualWithoutConsideringStr(exps,1e-12))
15480 att3.synchronizeCoarseToFineBetween(1,2)
15482 for pos in [(),(0,),(1,),(2,)]:
15483 self.assertTrue(att3.getFieldOn(att3.getMyGodFather().getMeshAtPosition(pos),"YY").isEqual(att4.getFieldOn(att4.getMyGodFather().getMeshAtPosition(pos),"YY"),1e-12))
15485 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])
15486 self.assertTrue(att3.getFieldOn(att3.getMyGodFather().getMeshAtPosition((0,0)),"YY").isEqualWithoutConsideringStr(exp5,1e-12))
15487 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])
15488 self.assertTrue(att3.getFieldOn(att3.getMyGodFather().getMeshAtPosition((0,1)),"YY").isEqualWithoutConsideringStr(exp6,1e-12))
15489 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])
15490 self.assertTrue(att3.getFieldOn(att3.getMyGodFather().getMeshAtPosition((0,2)),"YY").isEqualWithoutConsideringStr(exp7,1e-12))
15491 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])
15492 self.assertTrue(att3.getFieldOn(att3.getMyGodFather().getMeshAtPosition((1,0)),"YY").isEqualWithoutConsideringStr(exp8,1e-12))
15493 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])
15494 self.assertTrue(att3.getFieldOn(att3.getMyGodFather().getMeshAtPosition((1,1)),"YY").isEqualWithoutConsideringStr(exp9,1e-12))
15495 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])
15496 self.assertTrue(att3.getFieldOn(att3.getMyGodFather().getMeshAtPosition((1,2)),"YY").isEqualWithoutConsideringStr(exp10,1e-12))
15497 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])
15498 self.assertTrue(att3.getFieldOn(att3.getMyGodFather().getMeshAtPosition((1,3)),"YY").isEqualWithoutConsideringStr(exp11,1e-12))
15501 att4.synchronizeAllGhostZonesAtASpecifiedLevel(2)
15502 for pos in [(),(0,),(1,),(2,)]:
15503 self.assertTrue(att4.getFieldOn(att4.getMyGodFather().getMeshAtPosition(pos),"YY").isEqual(att5.getFieldOn(att5.getMyGodFather().getMeshAtPosition(pos),"YY"),1e-12))
15505 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])
15506 self.assertTrue(att4.getFieldOn(att4.getMyGodFather().getMeshAtPosition((0,0)),"YY").isEqualWithoutConsideringStr(exp12,1e-12))
15507 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]])
15508 self.assertTrue(att4.getFieldOn(att4.getMyGodFather().getMeshAtPosition((0,1)),"YY").isEqualWithoutConsideringStr(exp13,1e-12))
15509 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])
15510 self.assertTrue(att4.getFieldOn(att4.getMyGodFather().getMeshAtPosition((0,2)),"YY").isEqualWithoutConsideringStr(exp14,1e-12))
15511 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])
15512 self.assertTrue(att4.getFieldOn(att4.getMyGodFather().getMeshAtPosition((1,0)),"YY").isEqualWithoutConsideringStr(exp15,1e-12))
15513 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])
15514 self.assertTrue(att4.getFieldOn(att4.getMyGodFather().getMeshAtPosition((1,1)),"YY").isEqualWithoutConsideringStr(exp16,1e-12))
15515 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])
15516 self.assertTrue(att4.getFieldOn(att4.getMyGodFather().getMeshAtPosition((1,2)),"YY").isEqualWithoutConsideringStr(exp17,1e-12))
15517 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])
15518 self.assertTrue(att4.getFieldOn(att4.getMyGodFather().getMeshAtPosition((1,3)),"YY").isEqualWithoutConsideringStr(exp18,1e-12))
15521 att5.synchronizeAllGhostZonesAtASpecifiedLevelUsingOnlyFather(2)
15522 for pos in [(),(0,),(1,),(2,)]:
15523 self.assertTrue(att5.getFieldOn(att5.getMyGodFather().getMeshAtPosition(pos),"YY").isEqual(att6.getFieldOn(att6.getMyGodFather().getMeshAtPosition(pos),"YY"),1e-12))
15525 att5.buildCellFieldOnWithGhost(att5.getMyGodFather().getMeshAtPosition((0,0)),"YY")
15526 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])
15527 self.assertTrue(att5.getFieldOn(att5.getMyGodFather().getMeshAtPosition((0,0)),"YY").isEqualWithoutConsideringStr(exp19,1e-12))
15528 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])
15529 self.assertTrue(att5.getFieldOn(att5.getMyGodFather().getMeshAtPosition((0,1)),"YY").isEqualWithoutConsideringStr(exp20,1e-12))
15530 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])
15531 self.assertTrue(att5.getFieldOn(att5.getMyGodFather().getMeshAtPosition((0,2)),"YY").isEqualWithoutConsideringStr(exp21,1e-12))
15532 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])
15533 self.assertTrue(att5.getFieldOn(att5.getMyGodFather().getMeshAtPosition((1,0)),"YY").isEqualWithoutConsideringStr(exp22,1e-12))
15534 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])
15535 self.assertTrue(att5.getFieldOn(att5.getMyGodFather().getMeshAtPosition((1,1)),"YY").isEqualWithoutConsideringStr(exp23,1e-12))
15536 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])
15537 self.assertTrue(att5.getFieldOn(att5.getMyGodFather().getMeshAtPosition((1,2)),"YY").isEqualWithoutConsideringStr(exp24,1e-12))
15538 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])
15539 self.assertTrue(att5.getFieldOn(att5.getMyGodFather().getMeshAtPosition((1,3)),"YY").isEqualWithoutConsideringStr(exp25,1e-12))
15542 def testSwig2AMR11(self):
15543 """ Some tests in 3D with CondenseFineToCoarseGhost and SpreadCoarseToFineGhost"""
15544 coarse=DataArrayDouble((6+4)*(7+4)*(5+4)) ; coarse.iota()
15545 fine=DataArrayDouble((4*2+4)*(2*3+4)*(3*4+4))
15546 MEDCouplingIMesh.SpreadCoarseToFineGhost(coarse,[6,7,5],fine,[(1,5),(2,4),(1,4)],[2,3,4],2)
15547 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.])
15548 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.])
15549 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.])
15550 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.])
15551 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.])
15552 exp=DataArrayDouble.Aggregate([exp0,exp0,exp1,exp1,exp1,exp1,exp2,exp2,exp2,exp2,exp3,exp3,exp3,exp3,exp4,exp4])
15553 self.assertTrue(fine.isEqual(exp,1e-12))
15557 MEDCouplingIMesh.CondenseFineToCoarseGhost([6,7,5],fine,[(1,5),(2,4),(1,4)],[2,3,4],coarse,2)
15558 amr=MEDCouplingCartesianAMRMesh("mesh",3,[7,8,6],[0.,0.,0.],[1.,1.,1.])
15559 amr.addPatch([(1,5),(2,4),(1,4)],[2,3,4])
15560 att=MEDCouplingAMRAttribute(amr,[("YY",1)],2)
15562 exp1=DataArrayDouble(990) ; exp1.iota(0.5)
15563 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])
15564 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.])
15566 self.assertTrue(coarse.isEqual(exp1,1e-12))
15568 MEDCouplingStructuredMesh.MultiplyPartOf([10,11,9],[(3,7),(4,6),(3,6)],1/24.,coarse)
15569 exp2=DataArrayDouble(990) ; exp2.iota(0.5)
15571 self.assertTrue(coarse.isEqual(exp2,1e-12))
15573 coarse.iota(0.5) ; fine.iota(0.1)
15574 MEDCouplingIMesh.SpreadCoarseToFineGhostZone(coarse,[6,7,5],fine,[(1,5),(2,4),(1,4)],[2,3,4],2)
15576 coarse.iota(0.5) ; fine.iota(0.1)
15577 MEDCouplingIMesh.SpreadCoarseToFineGhostZone(coarse,[6,7,5],fine,[(1,5),(2,4),(1,4)],[2,3,4],2)
15578 exp00=DataArrayDouble.Aggregate([exp0,exp0]) ; exp00+=0.5
15579 self.assertTrue(fine[:240].isEqual(exp00,1e-12))
15580 exp44=DataArrayDouble.Aggregate([exp4,exp4]) ; exp44+=0.5
15581 self.assertTrue(fine[-240:].isEqual(exp44,1e-12))
15582 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))
15585 def testSwig2AMR12(self):
15586 """ This test check the MEDCouplingAMRAttribute.projectTo method."""
15587 amr0=MEDCouplingCartesianAMRMesh("mesh",2,[11,11],[0.,0.],[1.,1.])
15588 amr0.addPatch([(3,8),(0,3)],[2,2])
15589 amr0.addPatch([(3,8),(3,6)],[2,2])
15590 att0=MEDCouplingAMRAttribute(amr0,[("YY",1)],2)
15592 att0.getFieldOn(amr0,"YY").iota(0.01)
15593 att0.getFieldOn(amr0[0].getMesh(),"YY").iota(0.02)
15594 att0.getFieldOn(amr0[1].getMesh(),"YY").iota(0.03)
15595 amr1=MEDCouplingCartesianAMRMesh("mesh",2,[11,11],[0.,0.],[1.,1.])
15596 amr1.addPatch([(2,5),(1,4)],[2,2])
15597 att1=att0.projectTo(amr1)
15598 self.assertTrue(att1.getFieldOn(amr1,"YY").isEqualWithoutConsideringStr(att0.getFieldOn(amr0,"YY"),1e-12))
15599 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))
15601 amr0=MEDCouplingCartesianAMRMesh("mesh",2,[11,11],[0.,0.],[1.,1.])
15602 amr0.addPatch([(2,5),(2,7)],[2,2])
15603 amr0.addPatch([(5,8),(2,7)],[2,2])
15604 att0=MEDCouplingAMRAttribute(amr0,[("YY",1)],2)
15606 att0.getFieldOn(amr0,"YY").iota(0.01)
15607 att0.getFieldOn(amr0[0].getMesh(),"YY").iota(0.02)
15608 att0.getFieldOn(amr0[1].getMesh(),"YY").iota(0.03)
15609 amr1=MEDCouplingCartesianAMRMesh("mesh",2,[11,11],[0.,0.],[1.,1.])
15610 amr1.addPatch([(3,6),(2,7)],[2,2])
15611 amr1.addPatch([(6,9),(2,7)],[2,2])
15612 att1=att0.projectTo(amr1)
15613 self.assertTrue(att1.getFieldOn(amr1,"YY").isEqual(att0.getFieldOn(amr0,"YY"),1e-12))
15614 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))
15615 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))
15618 def testSwig2AMR13(self):
15619 """ non regression test"""
15620 for fact,len1,len2 in [([2,2],64,48),([3,3],100,70),([4,4],144,96)]:
15621 amr=MEDCouplingCartesianAMRMesh("mesh",2,[5,5],[0.,0.],[1.,1.])
15622 amr.addPatch([(1,3),(0,2)],fact)
15623 amr.addPatch([(1,3),(3,4)],fact)
15624 att=MEDCouplingAMRAttribute(amr,[("YY",1)],2)
15626 att.getFieldOn(amr,"YY").iota(0.1)
15627 att.getFieldOn(amr[0].getMesh(),"YY").iota(0.2)
15628 att.getFieldOn(amr[1].getMesh(),"YY").iota(0.3)
15629 att.synchronizeAllGhostZonesOfDirectChidrenOf(amr)
15630 exp=DataArrayDouble(64) ; exp.iota(0.1)
15631 self.assertTrue(att.getFieldOn(amr,"YY").isEqualWithoutConsideringStr(exp,1e-12))
15632 exp0=DataArrayDouble(len1) ; exp0.iota(0.2)
15633 self.assertTrue(att.getFieldOn(amr[0].getMesh(),"YY").isEqualWithoutConsideringStr(exp0,1e-12))
15634 exp1=DataArrayDouble(len2) ; exp1.iota(0.3)
15635 self.assertTrue(att.getFieldOn(amr[1].getMesh(),"YY").isEqualWithoutConsideringStr(exp1,1e-12))
15639 def testSwig2AMR14(self):
15640 """ non regression linked to VTHB write."""
15641 fact=[2,2] ; fact2=[3,3]
15642 amr=MEDCouplingCartesianAMRMesh("mesh",2,[5,5],[0.,0.],[1.,1.])
15643 amr.addPatch([(1,3),(0,2)],fact)
15644 amr.addPatch([(1,3),(3,4)],fact)
15645 amr[0].addPatch([(1,3),(1,3)],fact2)
15646 amr[1].addPatch([(1,3),(1,2)],fact2)
15647 att=MEDCouplingAMRAttribute(amr,[("YY",1)],2)
15649 att.getFieldOn(amr,"YY").iota(0.1)
15650 att.getFieldOn(amr[0].getMesh(),"YY").iota(0.2)
15651 att.getFieldOn(amr[1].getMesh(),"YY").iota(0.3)
15652 att.getFieldOn(amr[0][0].getMesh(),"YY").iota(0.4)
15653 att.getFieldOn(amr[1][0].getMesh(),"YY").iota(0.5)
15654 self.assertEqual(amr[0].getBLTRRangeRelativeToGF(),[(2,6),(0,4)])
15655 self.assertEqual(amr[1].getBLTRRangeRelativeToGF(),[(2,6),(6,8)])
15656 self.assertEqual(amr[0][0].getBLTRRangeRelativeToGF(),[(9,15),(3,9)])
15657 self.assertEqual(amr[1][0].getBLTRRangeRelativeToGF(),[(9,15),(21,24)])
15660 def testSwig2Intersect2DMeshWith1DLine1(self):
15661 """A basic test with no colinearity between m1 and m2."""
15662 i=MEDCouplingIMesh("mesh",2,[5,5],[0.,0.],[1.,1.])
15663 m1=i.buildUnstructured()
15664 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])
15665 a,b,c,d=MEDCouplingUMesh.Intersect2DMeshWith1DLine(m1,m2,1e-12)
15666 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])))
15667 self.assertTrue(b.getNodalConnectivity().isEqual(DataArrayInt([1,25,31,1,31,28,1,28,29,1,29,30,1,30,27,1,27,26])))
15668 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])))
15669 self.assertTrue(b.getNodalConnectivityIndex().isEqual(DataArrayInt([0,3,6,9,12,15,18])))
15670 self.assertTrue(a.getCoords().getHiddenCppPointer()==b.getCoords().getHiddenCppPointer())
15671 self.assertTrue(a.getCoords()[:25].isEqual(m1.getCoords(),1e-12))
15672 self.assertTrue(a.getCoords()[25:25+2].isEqualWithoutConsideringStr(m2.getCoords(),1e-12))
15673 self.assertTrue(a.getCoords()[27:].isEqualWithoutConsideringStr(DataArrayDouble([(3.3214285714285716,2.),(1.6071428571428572,3.),(2.,2.7708333333333335),(3.,2.1875),(1.,3.354166666666667)]),1e-12))
15674 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])))
15675 self.assertTrue(d.isEqual(DataArrayInt([(10,10),(11,12),(13,14),(15,16),(17,18),(19,19)])))
15678 def testSwig2Intersect2DMeshWith1DLine2(self):
15679 """A basic test with colinearity between m1 and m2 and the last cell of m2 outside m1."""
15680 i=MEDCouplingIMesh("mesh",2,[5,5],[0.,0.],[1.,1.])
15681 m1=i.buildUnstructured()
15682 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()
15683 for i in xrange(6):
15684 m2.insertNextCell(NORM_SEG2,[i,i+1])
15686 a,b,c,d=MEDCouplingUMesh.Intersect2DMeshWith1DLine(m1,m2,1e-12)
15687 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])))
15688 self.assertTrue(a.getNodalConnectivityIndex().isEqual(DataArrayInt([0,5,10,15,20,25,30,35,40,46,51,59,64,70,75,83,88])))
15689 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])))
15690 self.assertTrue(b.getNodalConnectivityIndex().isEqual(DataArrayInt([0,3,6,9,12,15,18,21,24])))
15691 self.assertTrue(a.getCoords().getHiddenCppPointer()==b.getCoords().getHiddenCppPointer())
15692 self.assertTrue(a.getCoords()[:25].isEqual(m1.getCoords(),1e-12))
15693 self.assertTrue(a.getCoords()[25:].isEqualWithoutConsideringStr(m2.getCoords(),1e-12))
15694 self.assertTrue(c.isEqual(DataArrayInt([0,1,2,3,12,13,14,15,4,5,6,7,8,9,10,11])))
15695 self.assertTrue(d.isEqual(DataArrayInt([(12,8),(13,9),(14,10),(14,10),(14,10),(14,10),(15,11),(-1,-1)])))
15698 def testSwig2Intersect2DMeshWith1DLine3(self):
15699 """m2 fully included in cell #12. of m1"""
15700 i=MEDCouplingIMesh("mesh",2,[5,5],[0.,0.],[1.,1.])
15701 m1=i.buildUnstructured()
15702 m2=MEDCouplingUMesh("mesh",1) ; m2.setCoords(DataArrayDouble([(0.75,3.25),(0.5,3.5),(0.25,3.25)])) ; m2.allocateCells()
15703 for i in xrange(2):
15704 m2.insertNextCell(NORM_SEG2,[i,i+1])
15706 a,b,c,d=MEDCouplingUMesh.Intersect2DMeshWith1DLine(m1,m2,1e-12)
15707 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])))
15708 self.assertTrue(a.getNodalConnectivityIndex().isEqual(DataArrayInt([0,5,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80])))
15709 self.assertTrue(b.getNodalConnectivity().isEqual(DataArrayInt([1,25,26,1,26,27])))
15710 self.assertTrue(b.getNodalConnectivityIndex().isEqual(DataArrayInt([0,3,6])))
15711 self.assertTrue(a.getCoords().getHiddenCppPointer()==b.getCoords().getHiddenCppPointer())
15712 self.assertTrue(a.getCoords()[:25].isEqual(m1.getCoords(),1e-12))
15713 self.assertTrue(a.getCoords()[25:].isEqualWithoutConsideringStr(m2.getCoords(),1e-12))
15714 self.assertTrue(c.isEqual(DataArrayInt([0,1,2,3,4,5,6,7,8,9,10,11,13,14,15,12])))
15715 self.assertTrue(d.isEqual(DataArrayInt([(15,15),(15,15)])))
15718 def testSwig2Intersect2DMeshWith1DLine4(self):
15719 """A special case where an edge is simultaneously a cut and colinear. This tests also checks negative values in descending edges of m1."""
15720 i=MEDCouplingIMesh("mesh",2,[5,5],[0.,0.],[1.,1.])
15721 m1=i.buildUnstructured()
15722 part=DataArrayInt([0,1,2,3,4,7,8,11,12,13,14,15])
15724 m1_2=m1[part.buildComplement(m1.getNumberOfCells())]
15725 m1=MEDCouplingUMesh.MergeUMeshesOnSameCoords(m1_1,m1_2.buildSpreadZonesWithPoly())
15727 m2=MEDCouplingUMesh("mesh",1) ; m2.setCoords(DataArrayDouble([(3.5,2.),(0.5,2.)])) ; m2.allocateCells()
15728 m2.insertNextCell(NORM_SEG2,[0,1])
15729 a,b,c,d=MEDCouplingUMesh.Intersect2DMeshWith1DLine(m1,m2,1e-12)
15730 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])))
15731 self.assertTrue(a.getNodalConnectivityIndex().isEqual(DataArrayInt([0,5,10,15,20,25,30,35,40,46,52,58,64,70,76])))
15732 self.assertTrue(b.getNodalConnectivity().isEqual(DataArrayInt([1,24,12,1,12,11,1,11,25])))
15733 self.assertTrue(b.getNodalConnectivityIndex().isEqual(DataArrayInt([0,3,6,9])))
15734 self.assertTrue(a.getCoords().getHiddenCppPointer()==b.getCoords().getHiddenCppPointer())
15735 self.assertTrue(a.getCoords()[:24].isEqual(m1.getCoords(),1e-12))
15736 self.assertTrue(a.getCoords()[24:].isEqualWithoutConsideringStr(m2.getCoords(),1e-12))
15737 self.assertTrue(c.isEqual(DataArrayInt([0,1,2,3,8,9,10,11,4,5,6,7,12,12])))
15738 self.assertTrue(d.isEqual(DataArrayInt([(9,11),(12,13),(8,10)])))
15741 def testSwig2Intersect2DMeshWith1DLine5(self):
15742 """A test focusing on a special case for cut."""
15743 i=MEDCouplingIMesh("mesh",2,[5,5],[0.,0.],[1.,1.])
15744 m1=i.buildUnstructured()
15745 m2=MEDCouplingUMesh("mesh",1) ; m2.setCoords(DataArrayDouble([(1.,0.),(3.,2.),(1.,4.)])) ; m2.allocateCells()
15746 for i in xrange(2):
15747 m2.insertNextCell(NORM_SEG2,[i,i+1])
15749 a,b,c,d=MEDCouplingUMesh.Intersect2DMeshWith1DLine(m1,m2,1e-12)
15750 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])))
15751 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])))
15752 self.assertTrue(b.getNodalConnectivity().isEqual(DataArrayInt([1,1,7,1,7,13,1,13,17,1,17,21])))
15753 self.assertTrue(b.getNodalConnectivityIndex().isEqual(DataArrayInt([0,3,6,9,12])))
15754 self.assertTrue(a.getCoords().getHiddenCppPointer()==b.getCoords().getHiddenCppPointer())
15755 self.assertTrue(a.getCoords()[:25].isEqual(m1.getCoords(),1e-12))
15756 self.assertTrue(a.getCoords()[25:].isEqualWithoutConsideringStr(m2.getCoords(),1e-12))
15757 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])))
15758 self.assertTrue(d.isEqual(DataArrayInt([(12,13),(14,15),(16,17),(18,19)])))
15761 def testIntersect2DMeshWith1DLine6(self):
15762 """ Basic test for Intersect2DMeshWith1DLine: a vertical line intersecting a square. """
15763 m1c = MEDCouplingCMesh()
15764 coordX = DataArrayDouble([-1., 1., 2])
15765 m1c.setCoordsAt(0,coordX)
15766 coordY = DataArrayDouble([0., 2.])
15767 m1c.setCoordsAt(1,coordY);
15768 m1 = m1c.buildUnstructured()
15771 m2 = MEDCouplingUMesh("bla", 1)
15772 coord2 = DataArrayDouble([0.,-1.0, 0.,1., 0.,3., 0.5,2.2], 4, 2)
15773 conn2 = DataArrayInt([NORM_SEG2,0,1,NORM_SEG3,1,2,3])
15774 connI2 = DataArrayInt([0,3,7])
15775 m2.setCoords(coord2)
15776 m2.setConnectivity(conn2, connI2)
15778 # End of construction of input meshes m1bis and m2 -> start of specific part of the test
15779 a,b,c,d = MEDCouplingUMesh.Intersect2DMeshWith1DLine(m1, m2, 1e-10)
15780 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])))
15781 self.assertTrue(a.getNodalConnectivityIndex().isEqual(DataArrayInt([0,5,16,27])))
15782 self.assertTrue(b.getNodalConnectivity().isEqual(DataArrayInt([1,6,10,1,10,7,2,7,11,12,2,11,8,13])))
15783 self.assertTrue(b.getNodalConnectivityIndex().isEqual(DataArrayInt([0,3,6,10,14])))
15784 self.assertTrue(a.getCoords().getHiddenCppPointer()==b.getCoords().getHiddenCppPointer())
15785 self.assertTrue(a.getCoords()[:6].isEqual(m1.getCoords(),1e-12))
15786 self.assertTrue(a.getCoords()[6:10].isEqual(m2.getCoords(),1e-12))
15787 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))
15788 self.assertTrue(c.isEqual(DataArrayInt([1,0,0])))
15789 self.assertTrue(d.isEqual(DataArrayInt([(-1,-1),(1,2),(1,2),(-1,-1)])))
15792 def testSwig2Intersect2DMeshWith1DLine7(self):
15793 """ Star pattern (a triangle intersecting another one upside down) """
15794 coords1 = DataArrayDouble([-2.,1., 2.,1., 0.,-2.], 3,2)
15795 coords2 = DataArrayDouble([0.,2., 2.,-1., -2.,-1., 0.,3.], 4,2)
15796 m1 = MEDCouplingUMesh("triangle", 2)
15797 m2 = MEDCouplingUMesh("tri_line", 1)
15798 m1.setCoords(coords1)
15799 m2.setCoords(coords2)
15800 m1.setConnectivity(DataArrayInt([NORM_TRI3, 0,1,2]), DataArrayInt([0,4]))
15801 m2.setConnectivity(DataArrayInt([NORM_SEG2,0,1,NORM_SEG2,1,2,NORM_SEG2,2,3]), DataArrayInt([0,3,6,9]))
15802 # End of construction of input meshes m1bis and m2 -> start of specific part of the test
15803 a,b,c,d = MEDCouplingUMesh.Intersect2DMeshWith1DLine(m1, m2, 1e-10)
15804 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])))
15805 self.assertTrue(a.getNodalConnectivityIndex().isEqual(DataArrayInt([0,4,8,12,19])))
15806 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])))
15807 self.assertTrue(b.getNodalConnectivityIndex().isEqual(DataArrayInt([0,3,6,9,12,15,18,21,24,27])))
15808 self.assertTrue(a.getCoords()[:3].isEqual(m1.getCoords(),1e-12))
15809 self.assertTrue(a.getCoords()[3:7].isEqual(m2.getCoords(),1e-12))
15810 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))
15811 self.assertTrue(a.getCoords().getHiddenCppPointer()==b.getCoords().getHiddenCppPointer())
15812 self.assertTrue(c.isEqual(DataArrayInt([0,0,0,0])))
15813 self.assertTrue(d.isEqual(DataArrayInt([(-1,-1),(0,3),(-1,-1),(-1,-1),(1,3),(-1,-1),(-1,-1),(2,3),(-1,-1)])))
15816 def testSwig2Intersect2DMeshWith1DLine8(self):
15817 """ Line pieces ending (or fully located) in the middle of a cell """
15818 m1c = MEDCouplingCMesh()
15819 m1c.setCoordsAt(0,DataArrayDouble([-1., 1.]))
15820 m1c.setCoordsAt(1,DataArrayDouble([-1., 1.]));
15821 m1 = m1c.buildUnstructured()
15822 coords2 = DataArrayDouble([0.,0., 0.,1.5, -1.5,0., 0.5,0.0, 0.0,-0.5, 1.1,-0.6], 6,2)
15823 m2 = MEDCouplingUMesh("piecewise_line", 1)
15824 m2.setCoords(coords2)
15825 c = DataArrayInt([NORM_SEG2,2,1, NORM_SEG2,1,4, NORM_SEG2,4,3, NORM_SEG2,3,5])
15826 cI = DataArrayInt([0,3,6,9,12])
15827 m2.setConnectivity(c, cI)
15828 a,b,c,d = MEDCouplingUMesh.Intersect2DMeshWith1DLine(m1, m2, 1e-10)
15829 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])))
15830 self.assertTrue(a.getNodalConnectivityIndex().isEqual(DataArrayInt([0,4,10,19])))
15831 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])))
15832 self.assertTrue(b.getNodalConnectivityIndex().isEqual(DataArrayInt([0,3,6,9,12,15,18,21,24])))
15833 self.assertTrue(a.getCoords()[:4].isEqual(m1.getCoords(),1e-12))
15834 self.assertTrue(a.getCoords()[4:10].isEqual(m2.getCoords(),1e-12))
15835 self.assertTrue(a.getCoords()[10:].isEqual(DataArrayDouble([(-1.,0.5),(-0.5,1.),(0.,1.),(1.,-0.5)]),1e-12))
15836 self.assertTrue(a.getCoords().getHiddenCppPointer()==b.getCoords().getHiddenCppPointer())
15837 self.assertTrue(c.isEqual(DataArrayInt([0,0,0])))
15838 self.assertTrue(d.isEqual(DataArrayInt([(-1,-1),(0,2),(-1,-1),(-1,-1),(1,2),(1,2),(1,2),(-1,-1)])))
15841 def testSwig2Intersect2DMeshWith1DLine9(self):
15842 """ Intersection with a line whose connectivity is not consecutive """
15843 m1c = MEDCouplingCMesh()
15844 coordX = DataArrayDouble([-1., 1., 2])
15845 m1c.setCoordsAt(0,coordX)
15846 coordY = DataArrayDouble([0., 2.])
15847 m1c.setCoordsAt(1,coordY);
15848 m1 = m1c.buildUnstructured()
15850 m2 = MEDCouplingUMesh("bla", 1)
15851 coord2 = DataArrayDouble([0.,1.5, 0.5,1., 0.0,0.5, 0.0,3.0, 0.0,-1.0], 5, 2)
15852 conn2 = DataArrayInt([NORM_SEG2,3,0,NORM_SEG3,0,2,1,NORM_SEG2,2,4])
15853 connI2 = DataArrayInt([0,3,7,10])
15854 m2.setCoords(coord2)
15855 m2.setConnectivity(conn2, connI2)
15856 # End of construction of input meshes m1bis and m2 -> start of specific part of the test
15857 a,b,c,d = MEDCouplingUMesh.Intersect2DMeshWith1DLine(m1, m2, 1e-10)
15858 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])))
15859 self.assertTrue(a.getNodalConnectivityIndex().isEqual(DataArrayInt([0,5,18,31])))
15860 self.assertTrue(b.getNodalConnectivity().isEqual(DataArrayInt([1,9,12,1,12,6,2,6,8,13,1,8,11,1,11,10])))
15861 self.assertTrue(b.getNodalConnectivityIndex().isEqual(DataArrayInt([0,3,6,10,13,16])))
15862 self.assertTrue(a.getCoords()[:6].isEqual(m1.getCoords(),1e-12))
15863 self.assertTrue(a.getCoords()[6:11].isEqual(m2.getCoords(),1e-12))
15864 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))
15865 self.assertTrue(a.getCoords().getHiddenCppPointer()==b.getCoords().getHiddenCppPointer())
15866 self.assertTrue(c.isEqual(DataArrayInt([1,0,0])))
15867 self.assertTrue(d.isEqual(DataArrayInt([(-1,-1),(1,2),(1,2),(1,2),(-1,-1)])))
15870 def testSwig2Intersect2DMeshWith1DLine10(self):
15871 """ Intersection between a circle and various lines """
15873 m_circ = MEDCouplingDataForTest.buildCircle2(0.0, 0.0, 2.0)
15874 coords = [0.0,3.0,0.0,-3.0]
15876 m_line = MEDCouplingUMesh("seg", 1)
15877 m_line.allocateCells(1)
15878 meshCoords = DataArrayDouble.New(coords, len(coords)/2, 2)
15879 m_line.setCoords(meshCoords)
15880 m_line.insertNextCell(NORM_SEG2, connec)
15881 a, b, c, d = MEDCouplingUMesh.Intersect2DMeshWith1DLine(m_circ, m_line, eps)
15882 self.assertTrue(a.getCoords().getHiddenCppPointer()==b.getCoords().getHiddenCppPointer())
15883 self.assertTrue(a.getCoords()[:m_circ.getNumberOfNodes()].isEqual(m_circ.getCoords(),1e-12))
15884 self.assertTrue(a.getCoords()[m_circ.getNumberOfNodes():m_circ.getNumberOfNodes()+m_line.getNumberOfNodes()].isEqual(m_line.getCoords(),1e-12))
15885 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))
15886 self.assertEqual([32,1,7,10,11,12,13,14,15,32,5,3,11,10,16,17,18,19],a.getNodalConnectivity().getValues())
15887 self.assertEqual([0,9,18], a.getNodalConnectivityIndex().getValues())
15888 self.assertEqual([1,8,11,1,11,10,1,10,9],b.getNodalConnectivity().getValues())
15889 self.assertEqual([0,3,6,9],b.getNodalConnectivityIndex().getValues())
15890 self.assertTrue(a.getCoords()[:8].isEqual(m_circ.getCoords(),1e-12))
15891 self.assertTrue(a.getCoords()[8:10].isEqual(m_line.getCoords(),1e-12))
15892 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])
15893 self.assertTrue(a.getCoords().isEqualWithoutConsideringStr(coo_tgt,1.0e-12))
15894 self.assertTrue(a.getCoords().getHiddenCppPointer()==b.getCoords().getHiddenCppPointer())
15895 self.assertEqual([0,0],c.getValues())
15896 self.assertEqual([-1,-1,0,1,-1,-1],d.getValues())
15898 def testSwig2Intersect2DMeshWith1DLine11(self):
15899 """ Quad line re-entering a square cell """
15901 m = MEDCouplingUMesh("box", 2)
15902 m.setCoords(DataArrayDouble([-1., -1., -1., 1., 1., 1., 1., -1.0],4,2))
15903 c, cI = [NORM_POLYGON, 0, 1, 2, 3], [0, 5]
15904 m.setConnectivity(DataArrayInt(c), DataArrayInt(cI))
15906 coords2 = [0., 1.3, -1.3, 0., -0.6, 0.6, 0., -1.3, -0.5, -0.5]
15907 connec2, cI2 = [NORM_SEG3, 0, 1, 2, NORM_SEG3, 1, 3, 4], [0,4,8]
15908 m_line = MEDCouplingUMesh("seg", 1)
15909 m_line.setCoords(DataArrayDouble(coords2, len(coords2)/2, 2))
15910 m_line.setConnectivity(DataArrayInt(connec2), DataArrayInt(cI2))
15911 a, b, c, d = MEDCouplingUMesh.Intersect2DMeshWith1DLine(m, m_line, eps)
15912 self.assertTrue(a.getCoords().getHiddenCppPointer()==b.getCoords().getHiddenCppPointer())
15913 self.assertTrue(a.getCoords()[:m.getNumberOfNodes()].isEqual(m.getCoords(),1e-12))
15914 self.assertTrue(a.getCoords()[m.getNumberOfNodes():m.getNumberOfNodes()+m_line.getNumberOfNodes()].isEqual(m_line.getCoords(),1e-12))
15915 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))
15916 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())
15917 self.assertEqual([0,13,20,27],a.getNodalConnectivityIndex().getValues())
15918 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())
15919 self.assertEqual([0,4,8,12,16,20,24],b.getNodalConnectivityIndex().getValues())
15920 self.assertTrue(a.getCoords()[:4].isEqual(m.getCoords(),1e-12))
15921 self.assertTrue(a.getCoords()[4:9].isEqual(m_line.getCoords(),1e-12))
15922 self.assertTrue(DataArrayInt([0,0,0]).isEqual(c))
15923 self.assertTrue(DataArrayInt([(-1,-1),(0,2),(-1,-1),(-1,-1),(0,1),(-1,-1)]).isEqual(d))
15926 def testSwig2Intersect2DMeshWith1DLine12(self):
15927 """ Two squares one in the other intersected by an horizontal line """
15929 m = MEDCouplingUMesh("boxbox", 2)
15930 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))
15931 c = [NORM_POLYGON, 4, 5, 6, 7, NORM_POLYGON, 0, 1, 5, 4, NORM_POLYGON, 1, 2, 3, 0, 4, 7, 6, 5]
15932 cI = [0, 5, 10, 19]
15933 m.setConnectivity(DataArrayInt(c), DataArrayInt(cI))
15935 coords2 = [-1., 0.25, 1., 0.25]
15936 connec2, cI2 = [NORM_SEG2, 0, 1], [0,3]
15937 m_line = MEDCouplingUMesh.New("seg", 1)
15938 m_line.setCoords(DataArrayDouble(coords2, len(coords2)/2, 2))
15939 m_line.setConnectivity(DataArrayInt(connec2), DataArrayInt(cI2))
15940 m_line2 = m_line.deepCpy()
15942 a, b, c, d = MEDCouplingUMesh.Intersect2DMeshWith1DLine(m, m_line, eps)
15943 self.assertTrue(a.getCoords().getHiddenCppPointer()==b.getCoords().getHiddenCppPointer())
15944 self.assertTrue(a.getCoords()[:m.getNumberOfNodes()].isEqual(m.getCoords(),1e-12))
15945 self.assertTrue(a.getCoords()[m.getNumberOfNodes():m.getNumberOfNodes()+m_line.getNumberOfNodes()].isEqual(m_line.getCoords(),1e-12))
15946 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))
15947 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())
15948 self.assertEqual([0,5,9,14,20,27],a.getNodalConnectivityIndex().getValues())
15949 self.assertEqual([1,8,10,1,10,5,1,5,6,1,6,11,1,11,9],b.getNodalConnectivity().getValues())
15950 self.assertEqual([0,3,6,9,12,15],b.getNodalConnectivityIndex().getValues())
15951 self.assertTrue(c.isEqual(DataArrayInt([0,1,1,2,2])))
15952 self.assertTrue(d.isEqual(DataArrayInt([(-1,-1),(1,2),(3,0),(3,4),(-1,-1)])))
15955 def testSwig2Intersect2DMeshWith1DLine13(self):
15956 """ A square (side length) in a circle intersected by a simple horizontal line """
15959 m = MEDCouplingUMesh("boxcircle", 2)
15960 sq2 = math.sqrt(2.0)
15961 soth = (sq2+1.0)/2.0
15962 coo = [2., 0., sq2, sq2, 0., 2., -sq2, sq2, -2., 0., -sq2, -sq2, 0., -2., sq2, -sq2, -1., -1., -1., 1., 1.,
15963 1., 1., -1., -1., 0., 0., 1., 1., 0., 0., -1., -soth, soth, soth,soth]
15964 coo = DataArrayDouble(coo); coo.rearrange(2)
15966 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]
15967 cI = [0, 9, 18, 35]
15968 m.setConnectivity(DataArrayInt(c), DataArrayInt(cI))
15970 coords2 = [-2., 1., 2., 1.0]
15971 connec2, cI2 = [NORM_SEG2, 0, 1], [0,3]
15972 m_line = MEDCouplingUMesh("seg", 1)
15973 m_line.setCoords(DataArrayDouble(coords2, len(coords2)/2, 2))
15974 m_line.setConnectivity(DataArrayInt(connec2), DataArrayInt(cI2))
15975 a, b, c, d = MEDCouplingUMesh.Intersect2DMeshWith1DLine(m, m_line, eps)
15976 self.assertTrue(a.getCoords().getHiddenCppPointer()==b.getCoords().getHiddenCppPointer())
15977 self.assertTrue(a.getCoords()[:m.getNumberOfNodes()].isEqual(m.getCoords(),1e-12))
15978 self.assertTrue(a.getCoords()[m.getNumberOfNodes():m.getNumberOfNodes()+m_line.getNumberOfNodes()].isEqual(m_line.getCoords(),1e-12))
15979 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))
15980 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())
15981 self.assertEqual([0,9,18,25,32,49],a.getNodalConnectivityIndex().getValues())
15982 self.assertEqual([1,18,21,1,21,9,1,9,10,1,10,20,1,20,19],b.getNodalConnectivity().getValues())
15983 self.assertEqual([0,3,6,9,12,15],b.getNodalConnectivityIndex().getValues())
15984 self.assertTrue(c.isEqual(DataArrayInt([0,1,2,2,2])))
15985 self.assertTrue(d.isEqual(DataArrayInt([(-1,-1),(2,4),(1,0),(3,4),(-1,-1)])))
15988 def testSwig2Intersect2DMeshWith1DLine14(self):
15989 """ A circle in a circle intersected by a simple horizontal line, not tangent to the circles """
15991 m = MEDCouplingUMesh("boxcircle", 2)
15992 coo = [2.,0.,1.4142135623730951,1.414213562373095,0.,2.,-1.414213562373095,1.4142135623730951,-2.,0.,-1.4142135623730954,-1.414213562373095,0.,-2.,
15993 1.4142135623730947,-1.4142135623730954,1.,0.,0.7071067811865476,0.7071067811865475,0.,1.,-0.7071067811865475,0.7071067811865476,-1.,0.,-0.7071067811865477,-0.7071067811865475,
15994 0.,-1.,0.7071067811865474,-0.7071067811865477,1.060660171779821,-1.0606601717798214,-1.0606601717798214,-1.0606601717798212]
15995 coo = DataArrayDouble(coo); coo.rearrange(2)
15997 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]
15998 cI = [0, 9, 18, 35]
15999 m.setConnectivity(DataArrayInt(c), DataArrayInt(cI))
16001 coords2 = [-2., 0., 2., 0.]
16002 connec2, cI2 = [NORM_SEG2, 0, 1], [0,3]
16003 m_line = MEDCouplingUMesh.New("seg", 1)
16004 m_line.setCoords(DataArrayDouble(coords2, len(coords2)/2, 2))
16005 m_line.setConnectivity(DataArrayInt(connec2), DataArrayInt(cI2))
16006 a, b, c, d = MEDCouplingUMesh.Intersect2DMeshWith1DLine(m, m_line, eps)
16007 self.assertTrue(a.getCoords().getHiddenCppPointer()==b.getCoords().getHiddenCppPointer())
16008 self.assertTrue(a.getCoords()[:m.getNumberOfNodes()].isEqual(m.getCoords(),1e-12))
16009 self.assertTrue(a.getCoords()[m.getNumberOfNodes():m.getNumberOfNodes()+m_line.getNumberOfNodes()].isEqual(m_line.getCoords(),1e-12))
16010 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))
16011 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())
16012 self.assertEqual([0,9,26,35,44,53,62],a.getNodalConnectivityIndex().getValues())
16013 self.assertEqual([1,18,20,1,20,21,1,21,19],b.getNodalConnectivity().getValues())
16014 self.assertEqual([0,3,6,9],b.getNodalConnectivityIndex().getValues())
16015 self.assertTrue(c.isEqual(DataArrayInt([1,2,2,2,0,0])))
16016 self.assertTrue(d.isEqual(DataArrayInt([(1,3),(4,5),(1,2)])))
16019 def testSwig2Intersect2DMeshWith1DLine15(self):
16020 """ Same as testSwig2Intersect2DMeshWith1DLine13 except that the line is colinear AND splits on of the common edge of 2D mesh."""
16023 m = MEDCouplingUMesh("boxcircle", 2)
16024 sq2 = math.sqrt(2.0)
16025 soth = (sq2+1.0)/2.0
16026 coo = [2., 0., sq2, sq2, 0., 2., -sq2, sq2, -2., 0., -sq2, -sq2, 0., -2., sq2, -sq2, -1., -1., -1., 1., 1.,
16027 1., 1., -1., -1., 0., 0., 1., 1., 0., 0., -1., -soth, soth, soth,soth]
16028 coo = DataArrayDouble(coo); coo.rearrange(2)
16030 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]
16031 cI = [0, 9, 18, 35]
16032 m.setConnectivity(DataArrayInt(c), DataArrayInt(cI))
16034 coords2 = [(-2., 1.),(2.,1.),(0.,1)]
16035 connec2, cI2 = [NORM_SEG2, 0, 2, NORM_SEG2, 2, 1], [0,3,6]
16036 m_line = MEDCouplingUMesh("seg", 1)
16037 m_line.setCoords(DataArrayDouble(coords2))
16038 m_line.setConnectivity(DataArrayInt(connec2), DataArrayInt(cI2))
16039 a, b, c, d = MEDCouplingUMesh.Intersect2DMeshWith1DLine(m, m_line, eps)
16040 self.assertTrue(a.getCoords().getHiddenCppPointer()==b.getCoords().getHiddenCppPointer())
16041 self.assertTrue(a.getCoords()[:m.getNumberOfNodes()].isEqual(m.getCoords(),1e-12))
16042 self.assertTrue(a.getCoords()[m.getNumberOfNodes():m.getNumberOfNodes()+m_line.getNumberOfNodes()].isEqual(m_line.getCoords(),1e-12))
16043 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))
16044 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())
16045 self.assertEqual([0,11,22,29,36,53],a.getNodalConnectivityIndex().getValues())
16046 self.assertEqual([1,18,22,1,22,9,1,9,20,1,20,10,1,10,21,1,21,19],b.getNodalConnectivity().getValues())
16047 self.assertEqual([0,3,6,9,12,15,18],b.getNodalConnectivityIndex().getValues())
16048 self.assertTrue(c.isEqual(DataArrayInt([0,1,2,2,2])))
16049 self.assertTrue(d.isEqual(DataArrayInt([(-1,-1),(2,4),(1,0),(1,0),(3,4),(-1,-1)])))
16052 def testSwig2Intersect2DMeshWith1DLine16(self):
16053 """ Same than testSwig2Intersect2DMeshWith1DLine13 except it is a vertical line. Non regression test."""
16056 m = MEDCouplingUMesh("boxcircle", 2)
16057 sq2 = math.sqrt(2.0)
16058 soth = (sq2+1.0)/2.0
16059 coo = [2., 0., sq2, sq2, 0., 2., -sq2, sq2, -2., 0., -sq2, -sq2, 0., -2., sq2, -sq2, -1., -1., -1., 1., 1.,
16060 1., 1., -1., -1., 0., 0., 1., 1., 0., 0., -1., -soth, soth, soth,soth]
16061 coo = DataArrayDouble(coo); coo.rearrange(2)
16063 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]
16064 cI = [0, 9, 18, 35]
16065 m.setConnectivity(DataArrayInt(c), DataArrayInt(cI))
16067 coords2 = [1., 2., 1., -2.]
16068 connec2, cI2 = [NORM_SEG2, 0, 1], [0,3]
16069 m_line = MEDCouplingUMesh("seg", 1)
16070 m_line.setCoords(DataArrayDouble(coords2, len(coords2)/2, 2))
16071 m_line.setConnectivity(DataArrayInt(connec2), DataArrayInt(cI2))
16072 a, b, c, d = MEDCouplingUMesh.Intersect2DMeshWith1DLine(m, m_line, eps)
16073 self.assertTrue(a.getCoords().getHiddenCppPointer()==b.getCoords().getHiddenCppPointer())
16074 self.assertTrue(a.getCoords()[:m.getNumberOfNodes()].isEqual(m.getCoords(),1e-12))
16075 self.assertTrue(a.getCoords()[m.getNumberOfNodes():m.getNumberOfNodes()+m_line.getNumberOfNodes()].isEqual(m_line.getCoords(),1e-12))
16076 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))
16077 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())
16078 self.assertEqual([0,9,16,25,36,49],a.getNodalConnectivityIndex().getValues())
16079 self.assertEqual([1,18,20,1,20,10,1,10,11,1,11,21,1,21,19],b.getNodalConnectivity().getValues())
16080 self.assertEqual([0,3,6,9,12,15],b.getNodalConnectivityIndex().getValues())
16081 self.assertTrue(c.isEqual(DataArrayInt([0,1,1,2,2])))
16082 self.assertTrue(d.isEqual(DataArrayInt([(-1,-1),(1,2),(3,0),(3,4),(-1,-1)])))
16085 def testOrderConsecutiveCells1D1(self):
16086 """A line in several unconnected pieces:"""
16087 m2 = MEDCouplingUMesh.New("bla", 1)
16088 c = DataArrayInt([NORM_SEG2,0,1,NORM_SEG3,1,3,2, NORM_SEG2,3,4,
16089 NORM_SEG3,5,7,6, NORM_SEG3,7,9,8, NORM_SEG2,9,10,
16090 NORM_SEG2,11,12,NORM_SEG2,12,13,
16092 cI = DataArrayInt([0,3,7,10,14,18,21,24,27,30])
16093 coords2 = DataArrayDouble([float(i) for i in range(32)], 16,2)
16094 m2.setCoords(coords2);
16095 m2.setConnectivity(c, cI);
16096 m2.checkCoherency2(1.0e-8);
16098 # Shuffle a bit :-)
16099 m2.renumberCells(DataArrayInt([0,3,6,8,1,4,7,5,2]), True);
16100 res = m2.orderConsecutiveCells1D()
16101 expRes = [0,3,6,8,1,4,2,7,5]
16102 self.assertEqual(m2.getNumberOfCells(),res.getNumberOfTuples())
16103 self.assertEqual(expRes, res.getValues())
16105 # A closed line (should also work)
16106 m3 = MEDCouplingUMesh.New("bla3", 1)
16107 conn3A = DataArrayInt([NORM_SEG2,0,1,NORM_SEG3,1,3,2, NORM_SEG2,3,0])
16108 coord3 = coords2[0:5]
16112 m3.setCoords(coord3)
16113 m3.setConnectivity(conn3A, cI)
16114 m3.checkCoherency2(1.0e-8)
16115 res2 = m3.orderConsecutiveCells1D()
16117 self.assertEqual(m3.getNumberOfCells(),res2.getNumberOfTuples())
16118 self.assertEqual(expRes2, res2.getValues())
16121 def testDADApplyFuncOnThis1(self):
16122 d=DataArrayDouble(5) ; d.iota(0.)
16123 d.applyFuncOnThis("2*x+1")
16124 self.assertTrue(d.isEqual(DataArrayDouble([1.,3.,5.,7.,9.]),1e-12))
16125 d=DataArrayDouble(6) ; d.iota(0.) ; d.rearrange(2)
16126 d.applyFuncOnThis("2*x+1")
16127 self.assertTrue(d.isEqual(DataArrayDouble([1.,3.,5.,7.,9.,11.],3,2),1e-12))
16128 d.applyFuncOnThis("1+2*3")
16129 self.assertTrue(d.isEqual(DataArrayDouble([(7.,7.),(7.,7.),(7.,7.)]),1e-12))
16132 def testSwig2PointSetComputeFetchedNodeIds1(self):
16133 arr=DataArrayDouble(6) ; arr.iota()
16134 m=MEDCouplingCMesh() ; m.setCoords(arr,arr,arr)
16135 m=m.buildUnstructured()
16136 m0=m[[0,1,5,6,25,26,30,31,124]]
16137 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])
16138 self.assertTrue(m0.computeFetchedNodeIds().isEqual(ref))
16139 self.assertTrue(MEDCoupling1SGTUMesh(m0).computeFetchedNodeIds().isEqual(ref))
16140 self.assertEqual(m0.getAllGeoTypes(),[NORM_HEXA8])
16141 m0.convertAllToPoly()
16142 self.assertEqual(m0.getAllGeoTypes(),[NORM_POLYHED])
16143 self.assertTrue(MEDCoupling1DGTUMesh(m0).computeFetchedNodeIds().isEqual(ref))
16146 def testSwig2PartDefinition1(self):
16147 pd=PartDefinition.New(5,22,3)
16148 self.assertTrue(isinstance(pd,SlicePartDefinition))
16149 self.assertTrue(pd.toDAI().isEqual(DataArrayInt([5,8,11,14,17,20])))
16150 self.assertEqual(pd.getNumberOfElems(),6)
16151 self.assertEqual(pd.getEffectiveStop(),23)
16152 pd=PartDefinition.New(5,23,3)
16153 self.assertTrue(isinstance(pd,SlicePartDefinition))
16154 self.assertTrue(pd.toDAI().isEqual(DataArrayInt([5,8,11,14,17,20])))
16155 self.assertEqual(pd.getNumberOfElems(),6)
16156 self.assertEqual(pd.getEffectiveStop(),23)
16157 self.assertEqual(pd.getSlice(),slice(5,23,3))
16158 pd=PartDefinition.New(5,22,1)
16159 self.assertTrue(isinstance(pd,SlicePartDefinition))
16160 self.assertTrue(pd.toDAI().isEqual(DataArrayInt([5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21])))
16161 self.assertEqual(pd.getNumberOfElems(),17)
16162 self.assertEqual(pd.getEffectiveStop(),22)
16163 pd=PartDefinition.New(5,23,3)+PartDefinition.New(23,27,3)
16164 self.assertTrue(isinstance(pd,SlicePartDefinition))
16165 self.assertEqual(pd.getNumberOfElems(),8)
16166 self.assertTrue(pd.toDAI().isEqual(DataArrayInt([5,8,11,14,17,20,23,26])))
16167 self.assertEqual(pd.getEffectiveStop(),29)
16168 pd=SlicePartDefinition(5,22,1)
16169 self.assertTrue(isinstance(pd,SlicePartDefinition))
16170 self.assertTrue(pd.toDAI().isEqual(DataArrayInt([5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21])))
16171 self.assertEqual(pd.getNumberOfElems(),17)
16172 self.assertEqual(pd.getEffectiveStop(),22)
16173 d=DataArrayInt([2,4,5,6,10])
16174 pd=PartDefinition.New(d)
16175 self.assertTrue(isinstance(pd,DataArrayPartDefinition))
16176 self.assertEqual(pd.toDAI().getHiddenCppPointer(),d.getHiddenCppPointer())
16177 pd=DataArrayPartDefinition(d)
16178 self.assertEqual(pd.toDAI().getHiddenCppPointer(),d.getHiddenCppPointer())
16179 pd=DataArrayPartDefinition(d)+DataArrayPartDefinition(DataArrayInt([12,14,20]))
16180 self.assertTrue(isinstance(pd,DataArrayPartDefinition))
16181 self.assertEqual(pd.getNumberOfElems(),8)
16182 self.assertTrue(pd.toDAI().isEqual(DataArrayInt([2,4,5,6,10,12,14,20])))
16185 def testSwig2SortEachPairToMakeALinkedList1(self):
16186 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)])
16187 d.sortEachPairToMakeALinkedList()
16188 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)])))
16191 def testSwig2DAIIsRange(self):
16192 d=DataArrayInt([2,6,10])
16195 self.assertEqual(b,slice(2,11,4))
16196 self.assertTrue(DataArrayInt.Range(b.start,b.stop,b.step).isEqual(d))
16198 d=DataArrayInt([2,7,10])
16200 self.assertTrue(not a)
16201 self.assertTrue(b is None)
16203 d=DataArrayInt([22,17,12])
16206 self.assertEqual(b,slice(22,11,-5))
16207 self.assertTrue(DataArrayInt.Range(b.start,b.stop,b.step).isEqual(d))
16209 d=DataArrayInt([22,16,12])
16211 self.assertTrue(not a)
16212 self.assertTrue(b is None)
16214 d=DataArrayInt([33])
16217 self.assertEqual(b,slice(33,34,1))
16218 self.assertTrue(DataArrayInt.Range(b.start,b.stop,b.step).isEqual(d))
16223 self.assertEqual(b,slice(0,0,1))
16224 self.assertTrue(DataArrayInt.Range(b.start,b.stop,b.step).isEqual(d))
16226 d=DataArrayInt([2,6,10,2])
16228 self.assertTrue(not a)
16229 self.assertTrue(b is None)
16232 def testSwig2PartDefinitionComposeWith1(self):
16233 f=PartDefinition.New(DataArrayInt([0,1,2,3,6,7,8,9]))
16234 g=PartDefinition.New(4,14,1)
16236 self.assertTrue(isinstance(h,DataArrayPartDefinition))
16237 self.assertTrue(h.toDAI().isEqual(DataArrayInt([4,5,6,7,10,11,12,13])))
16238 f2=f.tryToSimplify()
16239 g2=g.tryToSimplify()
16240 self.assertEqual(f2.getHiddenCppPointer(),f.getHiddenCppPointer())# same because no simplification due to content of array
16241 self.assertEqual(g2.getHiddenCppPointer(),g.getHiddenCppPointer())# same because no simplification linked to type of PartDef
16242 p=PartDefinition.New(DataArrayInt([2,6,10]))
16243 p2=p.tryToSimplify()
16244 self.assertNotEqual(p2.getHiddenCppPointer(),p.getHiddenCppPointer())
16245 self.assertTrue(isinstance(p2,SlicePartDefinition))
16246 self.assertEqual(p2.getSlice(),slice(2,11,4))
16249 def testSwig2DAIGetIdsStrictlyNegative1(self):
16250 d=DataArrayInt([4,-5,-1,0,3,99,-7])
16251 self.assertTrue(d.getIdsStrictlyNegative().isEqual(DataArrayInt([1,2,6])))
16254 def testSwig2DAIReplaceOneValByInThis1(self):
16255 d=DataArrayInt([4,-5,-1,0,-5,99,-7,5])
16256 d.replaceOneValByInThis(-5,900)
16257 self.assertTrue(d.isEqual(DataArrayInt([4,900,-1,0,900,99,-7,5])))
16260 def testSwig2DAIGetMinMaxValues1(self):
16261 d=DataArrayInt([4,-5,-1,0,3,99,-7])
16262 a,b=d.getMinMaxValues()
16263 self.assertEqual(a,-7)
16264 self.assertEqual(b,99)
16267 def testSwig2DAIBuildUniqueNotSorted1(self):
16268 d=DataArrayInt([-5,3,2,-1,2,3,-6,4,2,-5,3,7])
16269 self.assertTrue(d.buildUniqueNotSorted().isEqual(DataArrayInt([-5,3,2,-1,-6,4,7])))
16272 def testSwig2UMeshChangeOrientationOfCells1(self):
16273 """ Here testing changeOrientationOfCell method on unstructured meshes lying on no coords."""
16274 m=MEDCouplingUMesh("mesh",1)
16275 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])
16276 cI=DataArrayInt([0,3,6,10,14,17,22,27])
16277 m.setConnectivity(c,cI)
16278 m.changeOrientationOfCells()
16279 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])))
16280 self.assertTrue(m.getNodalConnectivityIndex().isEqual(cI))
16282 m=MEDCouplingUMesh("mesh",2)
16283 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])
16284 cI=DataArrayInt([0,4,9,15,22,31,42])
16285 m.setConnectivity(c,cI)
16286 m.changeOrientationOfCells()
16287 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])))
16288 self.assertTrue(m.getNodalConnectivityIndex().isEqual(cI))
16292 if __name__ == '__main__':