Salome HOME
fbc49da8c3a27cd73aefa776ff8e70e2f75e6f0b
[modules/med.git] / src / MEDCouplingCorba_Swig / MEDCouplingCorbaSwigTest.py
1 # Copyright (C) 2007-2012  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.
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
20 from MEDCoupling import *
21 import math
22 import os
23
24 class MEDCouplingCorbaServBasicsTest:
25     def build1DMesh(self):
26         coords=[ 0.0, 0.3, 0.75, 1.0 ]
27         conn=[ 0,1, 1,2, 2,3 ]
28         mesh=MEDCouplingUMesh.New("1DMeshForCorba",1);
29         mesh.setDescription("build1DMesh");
30         mesh.allocateCells(3);
31         mesh.setTime(5.6,7,8);
32         mesh.setTimeUnit("ms");
33         mesh.insertNextCell(NORM_SEG2,2,conn[0:2]);
34         mesh.insertNextCell(NORM_SEG2,2,conn[2:4]);
35         mesh.insertNextCell(NORM_SEG2,2,conn[4:6]);
36         mesh.finishInsertingCells();
37         myCoords=DataArrayDouble.New();
38         myCoords.setValues(coords,4,1);
39         mesh.setCoords(myCoords);
40         mesh.changeSpaceDimension(3);
41         myCoords=mesh.getCoords();
42         myCoords.setInfoOnComponent(0,"X1D [m]");
43         myCoords.setInfoOnComponent(1,"Y1D [dm]");
44         myCoords.setInfoOnComponent(2,"Z1D [pm]");
45         center=[0.,0.,0.]
46         vector=[0.,1.,0.]
47         mesh.rotate(center,vector,-math.pi/2.);
48         return mesh
49         
50     def build2DMesh(self):
51         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 ];
52         targetConn=[0,3,4,1, 1,4,2, 4,5,2, 6,7,4,3, 7,8,5,4]
53         targetMesh=MEDCouplingUMesh.New();
54         targetMesh.setMeshDimension(2);
55         targetMesh.setName("MyMesh2D");
56         targetMesh.setDescription("build2DMesh");
57         targetMesh.allocateCells(5);
58         targetMesh.insertNextCell(NORM_QUAD4,4,targetConn[0:4]);
59         targetMesh.insertNextCell(NORM_TRI3,3,targetConn[4:7]);
60         targetMesh.insertNextCell(NORM_TRI3,3,targetConn[7:10]);
61         targetMesh.insertNextCell(NORM_QUAD4,4,targetConn[10:14]);
62         targetMesh.insertNextCell(NORM_QUAD4,4,targetConn[14:18]);
63         targetMesh.finishInsertingCells();
64         myCoords=DataArrayDouble.New();
65         myCoords.setValues(targetCoords,9,2);
66         targetMesh.setCoords(myCoords);
67         return targetMesh;
68     
69     def build3DMesh(self):
70         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. ,
71                        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. ,
72                        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. ];
73         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,
74                     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];
75         targetMesh=MEDCouplingUMesh.New();
76         targetMesh.setMeshDimension(3);
77         targetMesh.setName("MyMesh3D");
78         targetMesh.setDescription("build3DMesh");
79         targetMesh.allocateCells(12);
80         for i in xrange(8):
81             targetMesh.insertNextCell(NORM_HEXA8,8,targetConn[8*i:8*(i+1)]);
82             pass
83         targetMesh.finishInsertingCells();
84         myCoords=DataArrayDouble.New();
85         myCoords.setValues(targetCoords,27,3);
86         targetMesh.setCoords(myCoords)
87         myCoords.setName("check in case")
88         return targetMesh;
89
90     def build3DSurfMesh(self):
91         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];
92         targetConn=[0,3,4,1, 1,4,2, 4,5,2, 6,7,4,3, 7,8,5,4];
93         targetMesh=MEDCouplingUMesh.New();
94         targetMesh.setMeshDimension(2);
95         targetMesh.setName("MyMesh3DSurf");
96         targetMesh.setDescription("build3DSurfMesh");
97         targetMesh.allocateCells(5);
98         targetMesh.insertNextCell(NORM_QUAD4,4,targetConn[0:4]);
99         targetMesh.insertNextCell(NORM_TRI3,3,targetConn[4:7]);
100         targetMesh.insertNextCell(NORM_TRI3,3,targetConn[7:10]);
101         targetMesh.insertNextCell(NORM_QUAD4,4,targetConn[10:14]);
102         targetMesh.insertNextCell(NORM_QUAD4,4,targetConn[14:18]);
103         targetMesh.finishInsertingCells();
104         myCoords=DataArrayDouble.New();
105         myCoords.setValues(targetCoords,9,3);
106         targetMesh.setCoords(myCoords);
107         myCoords.setInfoOnComponent(0,"X [m]");
108         myCoords.setInfoOnComponent(1,"X [dm]");
109         myCoords.setInfoOnComponent(2,"X [m]");
110         return targetMesh;
111
112     def build0DMesh(self):
113         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];
114         targetMesh=MEDCouplingUMesh.New();
115         targetMesh.setMeshDimension(0);
116         targetMesh.allocateCells(8);
117         targetMesh.setName("Wonderfull 0D mesh");
118         targetMesh.setDescription("build0DMesh");
119         targetConn=[]
120         targetMesh.insertNextCell(NORM_POINT1,1,[0]);
121         targetMesh.insertNextCell(NORM_POINT1,1,[1]);
122         targetMesh.insertNextCell(NORM_POINT1,1,[2]);
123         targetMesh.insertNextCell(NORM_POINT1,1,[3]);
124         targetMesh.insertNextCell(NORM_POINT1,1,[4]);
125         targetMesh.insertNextCell(NORM_POINT1,1,[5]);
126         targetMesh.insertNextCell(NORM_POINT1,1,[7]);
127         targetMesh.insertNextCell(NORM_POINT1,1,[6]);
128         targetMesh.finishInsertingCells();
129         myCoords=DataArrayDouble.New();
130         myCoords.setValues(targetCoords,9,3);
131         targetMesh.setCoords(myCoords);
132         myCoords.setInfoOnComponent(0,"X [m]");
133         myCoords.setInfoOnComponent(1,"YY [Pm]");
134         myCoords.setInfoOnComponent(2,"ZZZ [m]");
135         targetMesh.checkCoherency();
136         return targetMesh;
137
138     def buildM1DMesh(self):
139         meshM1D=MEDCouplingUMesh.New("wonderfull -1 D mesh",-1);
140         meshM1D.setDescription("buildM1DMesh");
141         meshM1D.checkCoherency();
142         return meshM1D;
143
144     def buildExtrudedMesh(self):
145         m2D=self.build2DMesh();
146         m2D.changeSpaceDimension(3);
147         m1D=self.build1DMesh();
148         retu=m2D.buildExtrudedMesh(m1D,0);
149         ret=MEDCouplingExtrudedMesh.New(retu,m2D,2);
150         ret.setName("ExtrudedTestForCorbaTest");
151         ret.setDescription("buildExtrudedMesh");
152         return ret;
153
154     def buildCMesh(self):
155         targetMesh=MEDCouplingCMesh.New();
156         targetMesh.setTime(2.3,4,5);
157         targetMesh.setTimeUnit("us");
158         targetMesh.setName("Example of CMesh");
159         targetMesh.setDescription("buildCMesh");
160         a1=DataArrayDouble.New();
161         a1Data=[3.,4.,5.,6.,7.]
162         a1.setValues(a1Data,5,1);
163         a1.setInfoOnComponent(0,"SmthX");
164         a2=DataArrayDouble.New();
165         a2Data=[2.78,3.,4.,5.,6.,7.]
166         a2.setValues(a2Data,6,1);
167         a2.setInfoOnComponent(0,"SmthZ");
168         #
169         targetMesh.setCoordsAt(0,a1);
170         targetMesh.setCoordsAt(2,a2);
171         #
172         #
173         targetMesh.checkCoherency();
174         #
175         return targetMesh;
176
177     def buildFieldScalarOn2DNT(self):
178         mesh=self.build2DMesh();
179         fieldOnCells=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
180         fieldOnCells.setTimeUnit("ms");
181         fieldOnCells.setName("toto");
182         fieldOnCells.setMesh(mesh);
183         array=DataArrayDouble.New();
184         tmp=mesh.getNumberOfCells()*6*[7.]
185         array.setValues(tmp,mesh.getNumberOfCells(),6);
186         fieldOnCells.setArray(array)
187         fieldOnCells.checkCoherency();
188         return fieldOnCells;
189
190     def buildFieldNodeScalarOn2DNT(self):
191         mesh=self.build2DMesh();
192         fieldOnNodes=MEDCouplingFieldDouble.New(ON_NODES,NO_TIME);
193         fieldOnNodes.setName("toto2");
194         fieldOnNodes.setTimeUnit("s");
195         fieldOnNodes.setDescription("my wonderful field toto2");
196         fieldOnNodes.setMesh(mesh);
197         array=DataArrayDouble.New();
198         tmp=mesh.getNumberOfNodes()*5*[7.1234]
199         array.setValues(tmp,mesh.getNumberOfNodes(),5);
200         fieldOnNodes.setArray(array);
201         fieldOnNodes.checkCoherency();
202         return fieldOnNodes;
203
204     def buildFieldScalarOn3DNT(self):
205         mesh=self.build3DMesh();
206         fieldOnCells=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
207         fieldOnCells.setNature(ConservativeVolumic);
208         fieldOnCells.setName("toto");
209         fieldOnCells.setDescription("my wonderful 3D field toto2");
210         fieldOnCells.setMesh(mesh);
211         array=DataArrayDouble.New();
212         tmp=mesh.getNumberOfCells()*6*[7.]
213         array.setValues(tmp,mesh.getNumberOfCells(),6);
214         fieldOnCells.setArray(array);
215         fieldOnCells.checkCoherency();
216         return fieldOnCells;
217
218     def buildFieldScalarOn3DSurfWT(self):
219         mesh=self.build3DSurfMesh();
220         fieldOnCells=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
221         fieldOnCells.setName("toto25");
222         fieldOnCells.setDescription("my wonderful 3D surf field toto25");
223         fieldOnCells.setTimeUnit("us");
224         fieldOnCells.setMesh(mesh);
225         array=DataArrayDouble.New();
226         tmp=mesh.getNumberOfCells()*3*[7.]
227         array.setValues(tmp,mesh.getNumberOfCells(),3);
228         array.setInfoOnComponents(["aaa","bbbb","ccccc"])
229         fieldOnCells.setArray(array);
230         fieldOnCells.setTime(6.7,1,4);
231         fieldOnCells.checkCoherency();
232         return fieldOnCells;
233
234     def buildFieldScalarOn3DSurfCOTI(self):
235         mesh=self.build3DSurfMesh();
236         fieldOnCells=MEDCouplingFieldDouble.New(ON_CELLS,CONST_ON_TIME_INTERVAL);
237         fieldOnCells.setName("toto26");
238         fieldOnCells.setDescription("my wonderful 3D surf field toto26");
239         fieldOnCells.setTimeUnit("us");
240         fieldOnCells.setMesh(mesh);
241         array=DataArrayDouble.New();
242         tmp=mesh.getNumberOfCells()*3*[7.]
243         array.setValues(tmp,mesh.getNumberOfCells(),3);
244         fieldOnCells.setArray(array);
245         fieldOnCells.setStartTime(6.7,1,4);
246         fieldOnCells.setEndTime(7.2,2,8);
247         fieldOnCells.checkCoherency();
248         return fieldOnCells;
249
250     def buildFieldScalarOn2DLT(self):
251         mesh=self.build2DMesh()
252         fieldOnCells=MEDCouplingFieldDouble.New(ON_CELLS,LINEAR_TIME)
253         fieldOnCells.setName("toto27");
254         fieldOnCells.setDescription("my wonderful 2D field toto27");
255         fieldOnCells.setTimeUnit("ms");
256         fieldOnCells.setMesh(mesh);
257         array=DataArrayDouble.New();
258         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]
259         array.setValues(arr1,mesh.getNumberOfCells(),4);
260         fieldOnCells.setArray(array);
261         array=DataArrayDouble.New();
262         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]
263         array.setValues(arr2,mesh.getNumberOfCells(),4);
264         fieldOnCells.setEndArray(array)
265         fieldOnCells.setStartTime(6.7,25,26);
266         fieldOnCells.setEndTime(17.2,125,126);
267         fieldOnCells.checkCoherency();
268         return fieldOnCells;
269
270     def buildFieldGaussPt2DWT(self):
271         _a=0.446948490915965;
272         _b=0.091576213509771;
273         _p1=0.11169079483905;
274         _p2=0.0549758718227661;
275         refCoo1=[ 0.,0., 1.,0., 0.,1. ]
276         gsCoo1=[ 2*_b-1, 1-4*_b, 2*_b-1, 2.07*_b-1, 1-4*_b,
277                  2*_b-1, 1-4*_a, 2*_a-1, 2*_a-1, 1-4*_a, 2*_a-1, 2*_a-1]
278         wg1=[ 4*_p2, 4*_p2, 4*_p2, 4*_p1, 4*_p1, 4*_p1 ]
279         _refCoo1=refCoo1
280         _gsCoo1=gsCoo1
281         _wg1=wg1
282         m=self.build2DMesh();
283         f=MEDCouplingFieldDouble.New(ON_GAUSS_PT,ONE_TIME);
284         f.setTime(6.7,1,4);
285         f.setMesh(m);
286         f.setGaussLocalizationOnType(NORM_TRI3,_refCoo1,_gsCoo1,_wg1);
287         refCoo2=[ 0.,0., 1.,0., 1.,1., 0.,1. ]
288         _refCoo2=refCoo2
289         _gsCoo1=_gsCoo1[0:4]
290         _wg1=_wg1[0:2]
291         f.setGaussLocalizationOnType(NORM_QUAD4,_refCoo2,_gsCoo1,_wg1);
292         array=DataArrayDouble.New();
293         ptr=18*2*[None]
294         for i in xrange(18*2):
295             ptr[i]=float(i+1);
296             pass
297         array.setValues(ptr,18,2);
298         array.setInfoOnComponent(0,"Power [MW]");
299         array.setInfoOnComponent(1,"Density [kg/m^3]");
300         f.setArray(array);
301         f.setName("MyFirstFieldOnGaussPoint");
302         f.setTimeUnit("ms");
303         f.setDescription("mmmmmmmmmmmm");
304         f.checkCoherency();
305         return f;
306
307     def buildFieldGaussPtNE2DWT(self):
308         m=self.build2DMesh();
309         f=MEDCouplingFieldDouble.New(ON_GAUSS_NE,ONE_TIME);
310         f.setTime(6.8,11,8);
311         f.setMesh(m);
312         f.setTimeUnit("ms");
313         f.setName("MyFirstFieldOnNE");
314         f.setDescription("MyDescriptionNE");
315         array=DataArrayDouble.New();
316         ptr=18*2*[None]
317         for i in xrange(18*2):
318             ptr[i]=float(i+7)
319         array.setValues(ptr,18,2);
320         array.setInfoOnComponent(0,"Power [MW]");
321         array.setInfoOnComponent(1,"Density [kg/m^3]");
322         f.setArray(array);
323         #
324         f.checkCoherency();
325         return f;
326
327     def buildFieldVectorOnExtrudedWT(self):
328         ext=self.buildExtrudedMesh();
329         #
330         f=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
331         f.setTime(6.8,11,8);
332         f.setMesh(ext);
333         f.setName("MyFieldOnExtruM");
334         f.setDescription("desc of MyFiOnExtruM");
335         array=DataArrayDouble.New();
336         nbOfCells=ext.getNumberOfCells();
337         ptr=2*nbOfCells*[None]
338         for i in range(nbOfCells*2):
339             ptr[i]=float(i/2+7)+float((i%2)*1000);
340             pass
341         array.setValues(ptr,nbOfCells,2);
342         array.setInfoOnComponent(0,"Power [MW]");
343         array.setInfoOnComponent(1,"Density [kg/m^3]");
344         f.setArray(array);
345         #
346         f.checkCoherency();
347         return f
348
349     def buildFieldVectorOnCMeshWT(self):
350         ext=self.buildCMesh();
351         #
352         f=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
353         f.setTime(6.8,11,8);
354         f.setMesh(ext);
355         f.setName("MyFieldOnCMesh");
356         f.setDescription("desc of MyFiOnCMesh");
357         array=DataArrayDouble.New();
358         nbOfCells=ext.getNumberOfCells();
359         ptr=2*nbOfCells*[None]
360         for i in range(nbOfCells*2):
361             ptr[i]=float(i/2+7)+float((i%2)*1000);
362             pass
363         array.setValues(ptr,nbOfCells,2);
364         array.setInfoOnComponent(0,"Power [GW]");
365         array.setInfoOnComponent(1,"Density [kg/m^3]");
366         f.setArray(array);
367         #
368         f.checkCoherency();
369         return f
370
371     def buildFieldTemplateCellOn2D(self):
372         f1=self.buildFieldScalarOn2DNT();
373         f2=MEDCouplingFieldTemplate.New(f1);
374         f2.setNature(NoNature);
375         return f2
376     
377     def buildFieldTemplateNodeOn2D(self):
378         f1=self.buildFieldNodeScalarOn2DNT();
379         f2=MEDCouplingFieldTemplate.New(f1);
380         f2.setNature(ConservativeVolumic);
381         return f2
382             
383     def buildFieldTemplateGaussPtOn2D(self):
384         f1=self.buildFieldGaussPt2DWT();
385         f2=MEDCouplingFieldTemplate.New(f1);
386         f2.setNature(Integral);
387         return f2
388
389     def buildFieldTemplateGaussNEOn2D(self):
390         f1=self.buildFieldGaussPtNE2DWT();
391         f2=MEDCouplingFieldTemplate.New(f1);
392         f2.setNature(IntegralGlobConstraint);
393         return f2
394
395     def buildMultiFields1(self):
396         m1=self.build2DMesh();
397         m1.setName("m1");
398         m2=self.build2DMesh();
399         m2.setName("m2");
400         vals0=[-0.7,-1.,-2.,-3.,-4.];
401         vals1=[0.,1.,2.,3.,4.,0.1,0.2,0.3,0.4];
402         vals1_1=[170.,171.,172.,173.,174.,170.1,170.2,170.3,170.4];
403         vals2=[5.,6.,7.,8.,9.];
404         vals4=[15.,16.,17.,18.,19.];
405         d0=DataArrayDouble.New();
406         d0.setValues(vals0,5,1);
407         d1=DataArrayDouble.New();
408         d1.setValues(vals1,9,1);
409         d1_1=DataArrayDouble.New();
410         d1_1.setValues(vals1_1,9,1);
411         d2=DataArrayDouble.New();
412         d2.setValues(vals2,5,1);
413         d4=DataArrayDouble.New();
414         d4.setValues(vals4,5,1);
415         d0.setName("d0"); d1.setName("d1"); d1_1.setName("d1_1"); d2.setName("d2"); d4.setName("d4");
416         d0.setInfoOnComponent(0,"c1");
417         d1.setInfoOnComponent(0,"c6");
418         d1_1.setInfoOnComponent(0,"c9");
419         d2.setInfoOnComponent(0,"c5");
420         d4.setInfoOnComponent(0,"c7");
421         f0=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
422         f0.setMesh(m1);
423         f0.setArray(d0);
424         f0.setTime(0.2,5,6);
425         f0.setName("f0");
426         f1=MEDCouplingFieldDouble.New(ON_NODES,LINEAR_TIME);
427         f1.setMesh(m1);
428         f1.setArrays([d1,d1_1]);
429         f1.setStartTime(0.7,7,8);
430         f1.setEndTime(1.2,9,10);
431         f1.setName("f1");
432         f2=MEDCouplingFieldDouble.New(ON_CELLS,CONST_ON_TIME_INTERVAL);
433         f2.setMesh(m2);
434         f2.setArray(d2);
435         f2.setTime(1.2,11,12);
436         f2.setEndTime(1.5,13,14);
437         f2.setName("f2");
438         f3=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
439         f3.setMesh(m1);
440         f3.setArray(d2);
441         f3.setTime(1.7,15,16);
442         f3.setName("f3");
443         f4=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
444         f4.setMesh(m2);
445         f4.setArray(d4);
446         f4.setName("f4");
447         ret=MEDCouplingMultiFields.New([f0,f1,f2,f3,f4]);
448         return ret;
449     
450     def buildArrayDouble1(self):
451         ret=DataArrayDouble.New();
452         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];
453         ret.setValues(vals,4,3);
454         ret.setName("toto");
455         ret.setInfoOnComponent(0,"sss");
456         ret.setInfoOnComponent(1,"ppp");
457         ret.setInfoOnComponent(2,"ttt");
458         return ret;
459
460     def buildArrayDouble2(self):
461         ret=DataArrayDouble.New();
462         ret.setName("titi");
463         return ret;
464
465     def buildArrayDouble3(self):
466         ret=DataArrayDouble.New();
467         ret.setName("titi");
468         ret.alloc(0,3);
469         ret.setInfoOnComponent(0,"sss");
470         ret.setInfoOnComponent(1,"ppp");
471         ret.setInfoOnComponent(2,"ttt");
472         return ret;
473
474     def buildArrayInt1(self):
475         ret=DataArrayInt.New();
476         vals=[2,3,5,9,47,20,24,278,2,3,2,9];
477         ret.setValues(vals,4,3);
478         ret.setName("toto");
479         ret.setInfoOnComponent(0,"sss");
480         ret.setInfoOnComponent(1,"ppp");
481         ret.setInfoOnComponent(2,"ttt");
482         return ret;
483
484     def buildArrayInt2(self):
485         ret=DataArrayInt.New();
486         ret.setName("titi");
487         return ret;
488
489     def buildArrayInt3(self):
490         ret=DataArrayInt.New();
491         ret.setName("titi");
492         ret.alloc(0,3);
493         ret.setInfoOnComponent(0,"sss");
494         ret.setInfoOnComponent(1,"ppp");
495         ret.setInfoOnComponent(2,"ttt");
496         return ret;
497
498     def buildMultiFields2(self):
499         m1=self.build2DMesh();
500         m1.setName("m1");
501         m2=self.build2DMesh();
502         m2.setName("m2");
503         vals0=[-0.7,-1.,-2.,-3.,-4.];
504         vals1=[0.,1.,2.,3.,4.,0.1,0.2,0.3,0.4];
505         vals1_1=[170.,171.,172.,173.,174.];
506         vals2=[5.,6.,7.,8.,9.];
507         vals4=[15.,16.,17.,18.,19.];
508         d0=DataArrayDouble.New();
509         d0.setValues(vals0,5,1);
510         d1=DataArrayDouble.New();
511         d1.setValues(vals1,5,1);
512         d1_1=DataArrayDouble.New();
513         d1_1.setValues(vals1_1,5,1);
514         d2=DataArrayDouble.New();
515         d2.setValues(vals2,5,1);
516         d4=DataArrayDouble.New();
517         d4.setValues(vals4,5,1);
518         d0.setName("d0"); d1.setName("d1"); d1_1.setName("d1_1"); d2.setName("d2"); d4.setName("d4");
519         d0.setInfoOnComponent(0,"c1");
520         d1.setInfoOnComponent(0,"c6");
521         d1_1.setInfoOnComponent(0,"c9");
522         d2.setInfoOnComponent(0,"c5");
523         d4.setInfoOnComponent(0,"c7");
524         f0=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
525         f0.setMesh(m1);
526         f0.setArray(d0);
527         f0.setTime(0.2,5,6);
528         f0.setName("f0");
529         f1=MEDCouplingFieldDouble.New(ON_CELLS,LINEAR_TIME);
530         f1.setMesh(m1);
531         f1.setArrays([d1,d1_1]);
532         f1.setStartTime(0.7,7,8);
533         f1.setEndTime(1.2,9,10);
534         f1.setName("f1");
535         f2=MEDCouplingFieldDouble.New(ON_CELLS,CONST_ON_TIME_INTERVAL);
536         f2.setMesh(m2);
537         f2.setArray(d2);
538         f2.setTime(1.2,11,12);
539         f2.setEndTime(1.5,13,14);
540         f2.setName("f2");
541         f3=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
542         f3.setMesh(m1);
543         f3.setArray(d2);
544         f3.setTime(1.7,15,16);
545         f3.setName("f3");
546         f4=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
547         f4.setMesh(m2);
548         f4.setArray(d4);
549         f4.setName("f4");
550         f4.setTime(2.7,25,26);
551         ret=MEDCouplingFieldOverTime.New([f0,f1,f2,f3,f4]);
552         ret.checkCoherency();
553         return ret;
554
555     def buildFileNameForIOR(self):
556         ret=os.getenv("TMP");
557         ret+="/entryPointMEDCouplingCorba.ior";
558         return ret;
559     pass
560
561 def testMesh():
562     tab4=[1, 2, 8, 7, 2, 3, 9, 8, 3,
563           4, 10, 9, 4, 5, 11, 10, 5,
564           0, 6, 11, 0, 1, 7, 6 ]
565     nbOfNodes=12
566     nbOfCells=6
567     coords=[ 0.024155, 0.04183768725682622, -0.305, 0.04831000000000001, -1.015761910347357e-17,
568              -0.305, 0.09662000000000001, -1.832979297858306e-18, -0.305, 0.120775, 0.04183768725682623,
569              -0.305, 0.09662000000000001, 0.08367537451365245, -0.305, 0.04831000000000001, 0.08367537451365246,
570              -0.305, 0.024155, 0.04183768725682622, -0.2863, 0.04831000000000001, -1.015761910347357e-17, -0.2863, 
571              0.09662000000000001, -1.832979297858306e-18, -0.2863, 0.120775, 0.04183768725682623, -0.2863, 0.09662000000000001,
572              0.08367537451365245, -0.2863, 0.04831000000000001, 0.08367537451365246, -0.2863 ]
573     mesh=MEDCouplingUMesh.New()
574     mesh.setMeshDimension(2)
575     mesh.allocateCells(8);
576     mesh.setName("mesh1")
577     for i in range(nbOfCells):
578         mesh.insertNextCell(NORM_QUAD4,4,tab4[4*i:4*(i+1)]);
579         pass
580     mesh.finishInsertingCells()
581     myCoords=DataArrayDouble.New()
582     myCoords.setValues(coords,nbOfNodes,3);
583     mesh.setCoords(myCoords);
584     mesh.checkCoherency();
585     myFalseConn=DataArrayInt.New()
586     myFalseConn.setValues(tab4,6,4)
587     return mesh
588
589 def testField():
590     #
591     mesh=testMesh()
592     nbOfCells=mesh.getNumberOfCells()
593     field=MEDCouplingFieldDouble.New(ON_CELLS)
594     field.setMesh(mesh)
595     field.setNature(Integral)
596     myCoords=DataArrayDouble.New()
597     sampleTab=[]
598     for i in range(nbOfCells*9):
599         sampleTab.append(float(i))
600         myCoords.setValues(sampleTab,nbOfCells,9);
601         pass
602     field.setArray(myCoords)
603     return field
604