Salome HOME
MEDCoupling API change - stage #1
[modules/med.git] / src / MEDCouplingCorba_Swig / MEDCouplingCorbaSwigTest.py
1 # Copyright (C) 2007-2015  CEA/DEN, EDF R&D
2 #
3 # This library is free software; you can redistribute it and/or
4 # modify it under the terms of the GNU Lesser General Public
5 # License as published by the Free Software Foundation; either
6 # version 2.1 of the License, or (at your option) any later version.
7 #
8 # This library is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11 # Lesser General Public License for more details.
12 #
13 # You should have received a copy of the GNU Lesser General Public
14 # License along with this library; if not, write to the Free Software
15 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
16 #
17 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18 #
19 # Author : Anthony Geay (CEA/DEN)
20
21 from MEDCoupling import *
22 import math
23 import os
24
25 class MEDCouplingCorbaServBasicsTest:
26     def build1DMesh(self):
27         coords=[ 0.0, 0.3, 0.75, 1.0 ]
28         conn=[ 0,1, 1,2, 2,3 ]
29         mesh=MEDCouplingUMesh.New("1DMeshForCorba",1);
30         mesh.setDescription("build1DMesh");
31         mesh.allocateCells(3);
32         mesh.setTime(5.6,7,8);
33         mesh.setTimeUnit("ms");
34         mesh.insertNextCell(NORM_SEG2,2,conn[0:2]);
35         mesh.insertNextCell(NORM_SEG2,2,conn[2:4]);
36         mesh.insertNextCell(NORM_SEG2,2,conn[4:6]);
37         mesh.finishInsertingCells();
38         myCoords=DataArrayDouble.New();
39         myCoords.setValues(coords,4,1);
40         mesh.setCoords(myCoords);
41         mesh.changeSpaceDimension(3);
42         myCoords=mesh.getCoords();
43         myCoords.setInfoOnComponent(0,"X1D [m]");
44         myCoords.setInfoOnComponent(1,"Y1D [dm]");
45         myCoords.setInfoOnComponent(2,"Z1D [pm]");
46         center=[0.,0.,0.]
47         vector=[0.,1.,0.]
48         mesh.rotate(center,vector,-math.pi/2.);
49         return mesh
50         
51     def build2DMesh(self):
52         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 ];
53         targetConn=[0,3,4,1, 1,4,2, 4,5,2, 6,7,4,3, 7,8,5,4]
54         targetMesh=MEDCouplingUMesh.New();
55         targetMesh.setMeshDimension(2);
56         targetMesh.setName("MyMesh2D");
57         targetMesh.setDescription("build2DMesh");
58         targetMesh.allocateCells(5);
59         targetMesh.insertNextCell(NORM_QUAD4,4,targetConn[0:4]);
60         targetMesh.insertNextCell(NORM_TRI3,3,targetConn[4:7]);
61         targetMesh.insertNextCell(NORM_TRI3,3,targetConn[7:10]);
62         targetMesh.insertNextCell(NORM_QUAD4,4,targetConn[10:14]);
63         targetMesh.insertNextCell(NORM_QUAD4,4,targetConn[14:18]);
64         targetMesh.finishInsertingCells();
65         myCoords=DataArrayDouble.New();
66         myCoords.setValues(targetCoords,9,2);
67         targetMesh.setCoords(myCoords);
68         return targetMesh;
69     
70     def build3DMesh(self):
71         targetCoords=[ 0., 0., 0., 50., 0., 0. , 200., 0., 0.  , 0., 50., 0., 50., 50., 0. , 200., 50., 0.,   0., 200., 0., 50., 200., 0. , 200., 200., 0. ,
72                        0., 0., 50., 50., 0., 50. , 200., 0., 50.  , 0., 50., 50., 50., 50., 50. , 200., 50., 50.,   0., 200., 50., 50., 200., 50. , 200., 200., 50. ,
73                        0., 0., 200., 50., 0., 200. , 200., 0., 200.  , 0., 50., 200., 50., 50., 200. , 200., 50., 200.,   0., 200., 200., 50., 200., 200. , 200., 200., 200. ];
74         targetConn=[0,1,4,3,9,10,13,12, 1,2,5,4,10,11,14,13, 3,4,7,6,12,13,16,15, 4,5,8,7,13,14,17,16,
75                     9,10,13,12,18,19,22,21, 10,11,14,13,19,20,23,22, 12,13,16,15,21,22,25,24, 13,14,17,16,22,23,26,25];
76         targetMesh=MEDCouplingUMesh.New();
77         targetMesh.setMeshDimension(3);
78         targetMesh.setName("MyMesh3D");
79         targetMesh.setDescription("build3DMesh");
80         targetMesh.allocateCells(12);
81         for i in xrange(8):
82             targetMesh.insertNextCell(NORM_HEXA8,8,targetConn[8*i:8*(i+1)]);
83             pass
84         targetMesh.finishInsertingCells();
85         myCoords=DataArrayDouble.New();
86         myCoords.setValues(targetCoords,27,3);
87         targetMesh.setCoords(myCoords)
88         myCoords.setName("check in case")
89         return targetMesh;
90
91     def build3DSurfMesh(self):
92         targetCoords=[-0.3,-0.3,0.5, 0.2,-0.3,1., 0.7,-0.3,1.5, -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];
93         targetConn=[0,3,4,1, 1,4,2, 4,5,2, 6,7,4,3, 7,8,5,4];
94         targetMesh=MEDCouplingUMesh.New();
95         targetMesh.setMeshDimension(2);
96         targetMesh.setName("MyMesh3DSurf");
97         targetMesh.setDescription("build3DSurfMesh");
98         targetMesh.allocateCells(5);
99         targetMesh.insertNextCell(NORM_QUAD4,4,targetConn[0:4]);
100         targetMesh.insertNextCell(NORM_TRI3,3,targetConn[4:7]);
101         targetMesh.insertNextCell(NORM_TRI3,3,targetConn[7:10]);
102         targetMesh.insertNextCell(NORM_QUAD4,4,targetConn[10:14]);
103         targetMesh.insertNextCell(NORM_QUAD4,4,targetConn[14:18]);
104         targetMesh.finishInsertingCells();
105         myCoords=DataArrayDouble.New();
106         myCoords.setValues(targetCoords,9,3);
107         targetMesh.setCoords(myCoords);
108         myCoords.setInfoOnComponent(0,"X [m]");
109         myCoords.setInfoOnComponent(1,"X [dm]");
110         myCoords.setInfoOnComponent(2,"X [m]");
111         return targetMesh;
112
113     def build0DMesh(self):
114         targetCoords=[-0.3,-0.3,0.5, 0.2,-0.3,1., 0.7,-0.3,1.5, -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];
115         targetMesh=MEDCouplingUMesh.New();
116         targetMesh.setMeshDimension(0);
117         targetMesh.allocateCells(8);
118         targetMesh.setName("Wonderfull 0D mesh");
119         targetMesh.setDescription("build0DMesh");
120         targetConn=[]
121         targetMesh.insertNextCell(NORM_POINT1,1,[0]);
122         targetMesh.insertNextCell(NORM_POINT1,1,[1]);
123         targetMesh.insertNextCell(NORM_POINT1,1,[2]);
124         targetMesh.insertNextCell(NORM_POINT1,1,[3]);
125         targetMesh.insertNextCell(NORM_POINT1,1,[4]);
126         targetMesh.insertNextCell(NORM_POINT1,1,[5]);
127         targetMesh.insertNextCell(NORM_POINT1,1,[7]);
128         targetMesh.insertNextCell(NORM_POINT1,1,[6]);
129         targetMesh.finishInsertingCells();
130         myCoords=DataArrayDouble.New();
131         myCoords.setValues(targetCoords,9,3);
132         targetMesh.setCoords(myCoords);
133         myCoords.setInfoOnComponent(0,"X [m]");
134         myCoords.setInfoOnComponent(1,"YY [Pm]");
135         myCoords.setInfoOnComponent(2,"ZZZ [m]");
136         targetMesh.checkConsistencyLight();
137         return targetMesh;
138
139     def buildM1DMesh(self):
140         meshM1D=MEDCouplingUMesh.New("wonderfull -1 D mesh",-1);
141         meshM1D.setDescription("buildM1DMesh");
142         meshM1D.checkConsistencyLight();
143         return meshM1D;
144
145     def buildExtrudedMesh(self):
146         m2D=self.build2DMesh();
147         m2D.changeSpaceDimension(3);
148         m1D=self.build1DMesh();
149         retu=m2D.buildExtrudedMesh(m1D,0);
150         ret=MEDCouplingMappedExtrudedMesh.New(retu,m2D,2);
151         ret.setName("ExtrudedTestForCorbaTest");
152         ret.setDescription("buildExtrudedMesh");
153         return ret;
154
155     def buildCMesh(self):
156         targetMesh=MEDCouplingCMesh.New();
157         targetMesh.setTime(2.3,4,5);
158         targetMesh.setTimeUnit("us");
159         targetMesh.setName("Example of CMesh");
160         targetMesh.setDescription("buildCMesh");
161         a1=DataArrayDouble.New();
162         a1Data=[3.,4.,5.,6.,7.]
163         a1.setValues(a1Data,5,1);
164         a1.setInfoOnComponent(0,"SmthX");
165         a2=DataArrayDouble.New();
166         a2Data=[2.78,3.,4.,5.,6.,7.]
167         a2.setValues(a2Data,6,1);
168         a2.setInfoOnComponent(0,"SmthZ");
169         #
170         targetMesh.setCoordsAt(0,a1);
171         targetMesh.setCoordsAt(1,a2);
172         #
173         #
174         targetMesh.checkConsistencyLight();
175         #
176         return targetMesh;
177
178     def buildIMesh(self):
179         targetMesh=MEDCouplingIMesh.New();
180         targetMesh.setTime(2.3,4,5);
181         targetMesh.setTimeUnit("us");
182         targetMesh.setName("Example of IMesh");
183         targetMesh.setDescription("buildIMesh");
184         #
185         targetMesh.setSpaceDimension(3);
186         targetMesh.setNodeStruct([6,7,8]);
187         targetMesh.setOrigin([4.25,3.75,-6.125]);
188         targetMesh.setDXYZ([0.5,0.375,0.75]);
189         targetMesh.setAxisUnit("mm");
190         #
191         return targetMesh
192
193     def buildCLMesh(self):
194         targetMesh=MEDCouplingCurveLinearMesh();
195         targetMesh.setTime(2.3,4,5);
196         targetMesh.setTimeUnit("us");
197         targetMesh.setName("Example of Cuve linear mesh");
198         targetMesh.setDescription("buildCLMesh");
199         a1=DataArrayDouble(3*20,1);
200         a1.iota(7.) ; a1.rearrange(3);
201         targetMesh.setCoords(a1);
202         targetMesh.setNodeGridStructure([4,5]);
203         #
204         targetMesh.checkConsistencyLight();
205         #
206         return targetMesh;
207
208     def build1SGTUMesh(self):
209         targetMesh=MEDCoupling1SGTUMesh("Mesh1SGT",NORM_QUAD4)
210         targetMesh.setTime(2.3,44,-55)
211         targetMesh.setTimeUnit("us")
212         targetMesh.setDescription("My Description of 1SGTU");
213         a1=DataArrayDouble([1.,1.,0.,2.,1.,0.,3.,1.,0.,1.,0.,0.,2.,0.,0.,0.,0.,0.,0.,1.,0.,3.,0.,0.,4.,0.,0.,4.,1.,0.],10,3)
214         a1.setInfoOnComponents(["X1 [m]","YY2 [km]","ZZZ3 [km]"])
215         targetMesh.setCoords(a1)
216         a2=DataArrayInt([6,0,3,5,3,0,1,4,1,2,7,4,8,7,2,9],4*4,1)
217         targetMesh.setNodalConnectivity(a2)
218         #
219         targetMesh.checkConsistencyLight();
220         #
221         return targetMesh;
222
223     def build1DGTUMesh(self):
224         targetMesh=MEDCoupling1DGTUMesh("Mesh1DGT",NORM_POLYGON);
225         targetMesh.setTime(2.3,55,-66)
226         targetMesh.setTimeUnit("us")
227         targetMesh.setDescription("My Description of 1DGTU");
228         a1=DataArrayDouble([1.,1.,0.,2.,1.,0.,3.,1.,0.,1.,0.,0.,2.,0.,0.,0.,0.,0.,0.,1.,0.,3.,0.,0.,4.,0.,0.,4.,1.,0.],10,3)
229         a1.setInfoOnComponents(["X1 [m]","YY2 [km]","ZZZ3 [km]"])
230         targetMesh.setCoords(a1)
231         a2=DataArrayInt([6,0,3,5,3,0,1,4,1,2,7,4,8,7,2],15,1)
232         a3=DataArrayInt([0,4,8,12,15],5,1)
233         targetMesh.setNodalConnectivity(a2,a3)
234         #
235         targetMesh.checkConsistencyLight();
236         #
237         return targetMesh;
238         
239     def buildFieldScalarOn2DNT(self):
240         mesh=self.build2DMesh();
241         fieldOnCells=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
242         fieldOnCells.setTimeUnit("ms");
243         fieldOnCells.setName("toto");
244         fieldOnCells.setMesh(mesh);
245         array=DataArrayDouble.New();
246         tmp=mesh.getNumberOfCells()*6*[7.]
247         array.setValues(tmp,mesh.getNumberOfCells(),6);
248         fieldOnCells.setArray(array)
249         fieldOnCells.checkConsistencyLight();
250         return fieldOnCells;
251
252     def buildFieldNodeScalarOn2DNT(self):
253         mesh=self.build2DMesh();
254         fieldOnNodes=MEDCouplingFieldDouble.New(ON_NODES,NO_TIME);
255         fieldOnNodes.setName("toto2");
256         fieldOnNodes.setTimeUnit("s");
257         fieldOnNodes.setDescription("my wonderful field toto2");
258         fieldOnNodes.setMesh(mesh);
259         array=DataArrayDouble.New();
260         tmp=mesh.getNumberOfNodes()*5*[7.1234]
261         array.setValues(tmp,mesh.getNumberOfNodes(),5);
262         fieldOnNodes.setArray(array);
263         fieldOnNodes.checkConsistencyLight();
264         return fieldOnNodes;
265
266     def buildFieldScalarOn3DNT(self):
267         mesh=self.build3DMesh();
268         fieldOnCells=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
269         fieldOnCells.setNature(IntensiveMaximum);
270         fieldOnCells.setName("toto");
271         fieldOnCells.setDescription("my wonderful 3D field toto2");
272         fieldOnCells.setMesh(mesh);
273         array=DataArrayDouble.New();
274         tmp=mesh.getNumberOfCells()*6*[7.]
275         array.setValues(tmp,mesh.getNumberOfCells(),6);
276         fieldOnCells.setArray(array);
277         fieldOnCells.checkConsistencyLight();
278         return fieldOnCells;
279
280     def buildFieldScalarOn3DSurfWT(self):
281         mesh=self.build3DSurfMesh();
282         fieldOnCells=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
283         fieldOnCells.setName("toto25");
284         fieldOnCells.setDescription("my wonderful 3D surf field toto25");
285         fieldOnCells.setTimeUnit("us");
286         fieldOnCells.setMesh(mesh);
287         array=DataArrayDouble.New();
288         tmp=mesh.getNumberOfCells()*3*[7.]
289         array.setValues(tmp,mesh.getNumberOfCells(),3);
290         array.setInfoOnComponents(["aaa","bbbb","ccccc"])
291         fieldOnCells.setArray(array);
292         fieldOnCells.setTime(6.7,1,4);
293         fieldOnCells.checkConsistencyLight();
294         return fieldOnCells;
295
296     def buildFieldScalarOn3DSurfCOTI(self):
297         mesh=self.build3DSurfMesh();
298         fieldOnCells=MEDCouplingFieldDouble.New(ON_CELLS,CONST_ON_TIME_INTERVAL);
299         fieldOnCells.setName("toto26");
300         fieldOnCells.setDescription("my wonderful 3D surf field toto26");
301         fieldOnCells.setTimeUnit("us");
302         fieldOnCells.setMesh(mesh);
303         array=DataArrayDouble.New();
304         tmp=mesh.getNumberOfCells()*3*[7.]
305         array.setValues(tmp,mesh.getNumberOfCells(),3);
306         fieldOnCells.setArray(array);
307         fieldOnCells.setStartTime(6.7,1,4);
308         fieldOnCells.setEndTime(7.2,2,8);
309         fieldOnCells.checkConsistencyLight();
310         return fieldOnCells;
311
312     def buildFieldScalarOn2DLT(self):
313         mesh=self.build2DMesh()
314         fieldOnCells=MEDCouplingFieldDouble.New(ON_CELLS,LINEAR_TIME)
315         fieldOnCells.setName("toto27");
316         fieldOnCells.setDescription("my wonderful 2D field toto27");
317         fieldOnCells.setTimeUnit("ms");
318         fieldOnCells.setMesh(mesh);
319         array=DataArrayDouble.New();
320         arr1=[1.2,1.02,1.002,1.0002, 3.4,3.04,3.004,3.0004, 5.6,5.06,5.006,5.0006, 7.8,7.08,7.008,7.0008, 9.1,9.01,9.001,9.0001]
321         array.setValues(arr1,mesh.getNumberOfCells(),4);
322         fieldOnCells.setArray(array);
323         array=DataArrayDouble.New();
324         arr2=[71.2,71.02,71.002,71.0002, 73.4,73.04,73.004,73.0004, 75.6,75.06,75.006,75.0006, 77.8,77.08,77.008,77.0008, 79.1,79.01,79.001,79.0001]
325         array.setValues(arr2,mesh.getNumberOfCells(),4);
326         fieldOnCells.setEndArray(array)
327         fieldOnCells.setStartTime(6.7,25,26);
328         fieldOnCells.setEndTime(17.2,125,126);
329         fieldOnCells.checkConsistencyLight();
330         return fieldOnCells;
331
332     def buildFieldGaussPt2DWT(self):
333         _a=0.446948490915965;
334         _b=0.091576213509771;
335         _p1=0.11169079483905;
336         _p2=0.0549758718227661;
337         refCoo1=[ 0.,0., 1.,0., 0.,1. ]
338         gsCoo1=[ 2*_b-1, 1-4*_b, 2*_b-1, 2.07*_b-1, 1-4*_b,
339                  2*_b-1, 1-4*_a, 2*_a-1, 2*_a-1, 1-4*_a, 2*_a-1, 2*_a-1]
340         wg1=[ 4*_p2, 4*_p2, 4*_p2, 4*_p1, 4*_p1, 4*_p1 ]
341         _refCoo1=refCoo1
342         _gsCoo1=gsCoo1
343         _wg1=wg1
344         m=self.build2DMesh();
345         f=MEDCouplingFieldDouble.New(ON_GAUSS_PT,ONE_TIME);
346         f.setTime(6.7,1,4);
347         f.setMesh(m);
348         f.setGaussLocalizationOnType(NORM_TRI3,_refCoo1,_gsCoo1,_wg1);
349         refCoo2=[ 0.,0., 1.,0., 1.,1., 0.,1. ]
350         _refCoo2=refCoo2
351         _gsCoo1=_gsCoo1[0:4]
352         _wg1=_wg1[0:2]
353         f.setGaussLocalizationOnType(NORM_QUAD4,_refCoo2,_gsCoo1,_wg1);
354         array=DataArrayDouble.New();
355         ptr=18*2*[None]
356         for i in xrange(18*2):
357             ptr[i]=float(i+1);
358             pass
359         array.setValues(ptr,18,2);
360         array.setInfoOnComponent(0,"Power [MW]");
361         array.setInfoOnComponent(1,"Density [kg/m^3]");
362         f.setArray(array);
363         f.setName("MyFirstFieldOnGaussPoint");
364         f.setTimeUnit("ms");
365         f.setDescription("mmmmmmmmmmmm");
366         f.checkConsistencyLight();
367         return f;
368
369     def buildFieldGaussPtNE2DWT(self):
370         m=self.build2DMesh();
371         f=MEDCouplingFieldDouble.New(ON_GAUSS_NE,ONE_TIME);
372         f.setTime(6.8,11,8);
373         f.setMesh(m);
374         f.setTimeUnit("ms");
375         f.setName("MyFirstFieldOnNE");
376         f.setDescription("MyDescriptionNE");
377         array=DataArrayDouble.New();
378         ptr=18*2*[None]
379         for i in xrange(18*2):
380             ptr[i]=float(i+7)
381         array.setValues(ptr,18,2);
382         array.setInfoOnComponent(0,"Power [MW]");
383         array.setInfoOnComponent(1,"Density [kg/m^3]");
384         f.setArray(array);
385         #
386         f.checkConsistencyLight();
387         return f;
388
389     def buildFieldVectorOnExtrudedWT(self):
390         ext=self.buildExtrudedMesh();
391         #
392         f=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
393         f.setTime(6.8,11,8);
394         f.setMesh(ext);
395         f.setName("MyFieldOnExtruM");
396         f.setDescription("desc of MyFiOnExtruM");
397         array=DataArrayDouble.New();
398         nbOfCells=ext.getNumberOfCells();
399         ptr=2*nbOfCells*[None]
400         for i in range(nbOfCells*2):
401             ptr[i]=float(i/2+7)+float((i%2)*1000);
402             pass
403         array.setValues(ptr,nbOfCells,2);
404         array.setInfoOnComponent(0,"Power [MW]");
405         array.setInfoOnComponent(1,"Density [kg/m^3]");
406         f.setArray(array);
407         #
408         f.checkConsistencyLight();
409         return f
410
411     def buildFieldVectorOnCMeshWT(self):
412         ext=self.buildCMesh();
413         #
414         f=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
415         f.setTime(6.8,11,8);
416         f.setMesh(ext);
417         f.setName("MyFieldOnCMesh");
418         f.setDescription("desc of MyFiOnCMesh");
419         array=DataArrayDouble.New();
420         nbOfCells=ext.getNumberOfCells();
421         ptr=2*nbOfCells*[None]
422         for i in range(nbOfCells*2):
423             ptr[i]=float(i/2+7)+float((i%2)*1000);
424             pass
425         array.setValues(ptr,nbOfCells,2);
426         array.setInfoOnComponent(0,"Power [GW]");
427         array.setInfoOnComponent(1,"Density [kg/m^3]");
428         f.setArray(array);
429         #
430         f.checkConsistencyLight();
431         return f
432
433     def buildFieldTemplateCellOn2D(self):
434         f1=self.buildFieldScalarOn2DNT();
435         f2=MEDCouplingFieldTemplate.New(f1);
436         f2.setNature(NoNature);
437         return f2
438     
439     def buildFieldTemplateNodeOn2D(self):
440         f1=self.buildFieldNodeScalarOn2DNT();
441         f2=MEDCouplingFieldTemplate.New(f1);
442         f2.setNature(IntensiveMaximum);
443         return f2
444             
445     def buildFieldTemplateGaussPtOn2D(self):
446         f1=self.buildFieldGaussPt2DWT();
447         f2=MEDCouplingFieldTemplate.New(f1);
448         f2.setNature(ExtensiveMaximum);
449         return f2
450
451     def buildFieldTemplateGaussNEOn2D(self):
452         f1=self.buildFieldGaussPtNE2DWT();
453         f2=MEDCouplingFieldTemplate.New(f1);
454         f2.setNature(ExtensiveConservation);
455         return f2
456
457     def buildMultiFields1(self):
458         m1=self.build2DMesh();
459         m1.setName("m1");
460         m2=self.build2DMesh();
461         m2.setName("m2");
462         vals0=[-0.7,-1.,-2.,-3.,-4.];
463         vals1=[0.,1.,2.,3.,4.,0.1,0.2,0.3,0.4];
464         vals1_1=[170.,171.,172.,173.,174.,170.1,170.2,170.3,170.4];
465         vals2=[5.,6.,7.,8.,9.];
466         vals4=[15.,16.,17.,18.,19.];
467         d0=DataArrayDouble.New();
468         d0.setValues(vals0,5,1);
469         d1=DataArrayDouble.New();
470         d1.setValues(vals1,9,1);
471         d1_1=DataArrayDouble.New();
472         d1_1.setValues(vals1_1,9,1);
473         d2=DataArrayDouble.New();
474         d2.setValues(vals2,5,1);
475         d4=DataArrayDouble.New();
476         d4.setValues(vals4,5,1);
477         d0.setName("d0"); d1.setName("d1"); d1_1.setName("d1_1"); d2.setName("d2"); d4.setName("d4");
478         d0.setInfoOnComponent(0,"c1");
479         d1.setInfoOnComponent(0,"c6");
480         d1_1.setInfoOnComponent(0,"c9");
481         d2.setInfoOnComponent(0,"c5");
482         d4.setInfoOnComponent(0,"c7");
483         f0=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
484         f0.setMesh(m1);
485         f0.setArray(d0);
486         f0.setTime(0.2,5,6);
487         f0.setName("f0");
488         f1=MEDCouplingFieldDouble.New(ON_NODES,LINEAR_TIME);
489         f1.setMesh(m1);
490         f1.setArrays([d1,d1_1]);
491         f1.setStartTime(0.7,7,8);
492         f1.setEndTime(1.2,9,10);
493         f1.setName("f1");
494         f2=MEDCouplingFieldDouble.New(ON_CELLS,CONST_ON_TIME_INTERVAL);
495         f2.setMesh(m2);
496         f2.setArray(d2);
497         f2.setTime(1.2,11,12);
498         f2.setEndTime(1.5,13,14);
499         f2.setName("f2");
500         f3=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
501         f3.setMesh(m1);
502         f3.setArray(d2);
503         f3.setTime(1.7,15,16);
504         f3.setName("f3");
505         f4=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
506         f4.setMesh(m2);
507         f4.setArray(d4);
508         f4.setName("f4");
509         ret=MEDCouplingMultiFields.New([f0,f1,f2,f3,f4]);
510         return ret;
511     
512     def buildArrayDouble1(self):
513         ret=DataArrayDouble.New();
514         vals=[2.4,3.2,5.6,9.6,47.6,20.4,24.6,278.1,2.01,3.3,2.4,9.4];
515         ret.setValues(vals,4,3);
516         ret.setName("toto");
517         ret.setInfoOnComponent(0,"sss");
518         ret.setInfoOnComponent(1,"ppp");
519         ret.setInfoOnComponent(2,"ttt");
520         return ret;
521
522     def buildArrayDouble2(self):
523         ret=DataArrayDouble.New();
524         ret.setName("titi");
525         return ret;
526
527     def buildArrayDouble3(self):
528         ret=DataArrayDouble.New();
529         ret.setName("titi");
530         ret.alloc(0,3);
531         ret.setInfoOnComponent(0,"sss");
532         ret.setInfoOnComponent(1,"ppp");
533         ret.setInfoOnComponent(2,"ttt");
534         return ret;
535
536     def buildArrayInt1(self):
537         ret=DataArrayInt.New();
538         vals=[2,3,5,9,47,20,24,278,2,3,2,9];
539         ret.setValues(vals,4,3);
540         ret.setName("toto");
541         ret.setInfoOnComponent(0,"sss");
542         ret.setInfoOnComponent(1,"ppp");
543         ret.setInfoOnComponent(2,"ttt");
544         return ret;
545
546     def buildArrayInt2(self):
547         ret=DataArrayInt.New();
548         ret.setName("titi");
549         return ret;
550
551     def buildArrayInt3(self):
552         ret=DataArrayInt.New();
553         ret.setName("titi");
554         ret.alloc(0,3);
555         ret.setInfoOnComponent(0,"sss");
556         ret.setInfoOnComponent(1,"ppp");
557         ret.setInfoOnComponent(2,"ttt");
558         return ret;
559
560     def buildMultiFields2(self):
561         m1=self.build2DMesh();
562         m1.setName("m1");
563         m2=self.build2DMesh();
564         m2.setName("m2");
565         vals0=[-0.7,-1.,-2.,-3.,-4.];
566         vals1=[0.,1.,2.,3.,4.,0.1,0.2,0.3,0.4];
567         vals1_1=[170.,171.,172.,173.,174.];
568         vals2=[5.,6.,7.,8.,9.];
569         vals4=[15.,16.,17.,18.,19.];
570         d0=DataArrayDouble.New();
571         d0.setValues(vals0,5,1);
572         d1=DataArrayDouble.New();
573         d1.setValues(vals1[:5],5,1);
574         d1_1=DataArrayDouble.New();
575         d1_1.setValues(vals1_1,5,1);
576         d2=DataArrayDouble.New();
577         d2.setValues(vals2,5,1);
578         d4=DataArrayDouble.New();
579         d4.setValues(vals4,5,1);
580         d0.setName("d0"); d1.setName("d1"); d1_1.setName("d1_1"); d2.setName("d2"); d4.setName("d4");
581         d0.setInfoOnComponent(0,"c1");
582         d1.setInfoOnComponent(0,"c6");
583         d1_1.setInfoOnComponent(0,"c9");
584         d2.setInfoOnComponent(0,"c5");
585         d4.setInfoOnComponent(0,"c7");
586         f0=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
587         f0.setMesh(m1);
588         f0.setArray(d0);
589         f0.setTime(0.2,5,6);
590         f0.setName("f0");
591         f1=MEDCouplingFieldDouble.New(ON_CELLS,LINEAR_TIME);
592         f1.setMesh(m1);
593         f1.setArrays([d1,d1_1]);
594         f1.setStartTime(0.7,7,8);
595         f1.setEndTime(1.2,9,10);
596         f1.setName("f1");
597         f2=MEDCouplingFieldDouble.New(ON_CELLS,CONST_ON_TIME_INTERVAL);
598         f2.setMesh(m2);
599         f2.setArray(d2);
600         f2.setTime(1.2,11,12);
601         f2.setEndTime(1.5,13,14);
602         f2.setName("f2");
603         f3=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
604         f3.setMesh(m1);
605         f3.setArray(d2);
606         f3.setTime(1.7,15,16);
607         f3.setName("f3");
608         f4=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
609         f4.setMesh(m2);
610         f4.setArray(d4);
611         f4.setName("f4");
612         f4.setTime(2.7,25,26);
613         ret=MEDCouplingFieldOverTime.New([f0,f1,f2,f3,f4]);
614         ret.checkConsistencyLight();
615         return ret;
616
617     def buildFileNameForIOR(self):
618         tmpdir=os.getenv("TMP", "/tmp");
619         username="";
620         if os.getenv("USERNAME"):
621             username = os.getenv("USERNAME")+"_";
622         elif os.getenv("USER"):
623             username = os.getenv("USER")+"_";
624         ret=tmpdir+"/"+username+"entryPointMEDCouplingCorba.ior";
625         return ret;
626     pass
627
628 def testMesh():
629     tab4=[1, 2, 8, 7, 2, 3, 9, 8, 3,
630           4, 10, 9, 4, 5, 11, 10, 5,
631           0, 6, 11, 0, 1, 7, 6 ]
632     nbOfNodes=12
633     nbOfCells=6
634     coords=[ 0.024155, 0.04183768725682622, -0.305, 0.04831000000000001, -1.015761910347357e-17,
635              -0.305, 0.09662000000000001, -1.832979297858306e-18, -0.305, 0.120775, 0.04183768725682623,
636              -0.305, 0.09662000000000001, 0.08367537451365245, -0.305, 0.04831000000000001, 0.08367537451365246,
637              -0.305, 0.024155, 0.04183768725682622, -0.2863, 0.04831000000000001, -1.015761910347357e-17, -0.2863, 
638              0.09662000000000001, -1.832979297858306e-18, -0.2863, 0.120775, 0.04183768725682623, -0.2863, 0.09662000000000001,
639              0.08367537451365245, -0.2863, 0.04831000000000001, 0.08367537451365246, -0.2863 ]
640     mesh=MEDCouplingUMesh.New()
641     mesh.setMeshDimension(2)
642     mesh.allocateCells(8);
643     mesh.setName("mesh1")
644     for i in range(nbOfCells):
645         mesh.insertNextCell(NORM_QUAD4,4,tab4[4*i:4*(i+1)]);
646         pass
647     mesh.finishInsertingCells()
648     myCoords=DataArrayDouble.New()
649     myCoords.setValues(coords,nbOfNodes,3);
650     mesh.setCoords(myCoords);
651     mesh.checkConsistencyLight();
652     myFalseConn=DataArrayInt.New()
653     myFalseConn.setValues(tab4,6,4)
654     return mesh
655
656 def testField():
657     #
658     mesh=testMesh()
659     nbOfCells=mesh.getNumberOfCells()
660     field=MEDCouplingFieldDouble.New(ON_CELLS)
661     field.setMesh(mesh)
662     field.setNature(ExtensiveMaximum)
663     myCoords=DataArrayDouble.New()
664     sampleTab=[]
665     for i in range(nbOfCells*9):
666         sampleTab.append(float(i))
667         myCoords.setValues(sampleTab,nbOfCells,9);
668         pass
669     field.setArray(myCoords)
670     return field
671