]> SALOME platform Git repositories - tools/medcoupling.git/blob - doc/MEDMEM/MESHINGexample.py
Salome HOME
Merge from BR_V5_DEV 16Feb09
[tools/medcoupling.git] / doc / MEDMEM / MESHINGexample.py
1 #  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
2 #
3 #  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 #  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5 #
6 #  This library is free software; you can redistribute it and/or
7 #  modify it under the terms of the GNU Lesser General Public
8 #  License as published by the Free Software Foundation; either
9 #  version 2.1 of the License.
10 #
11 #  This library is distributed in the hope that it will be useful,
12 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
13 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 #  Lesser General Public License for more details.
15 #
16 #  You should have received a copy of the GNU Lesser General Public
17 #  License along with this library; if not, write to the Free Software
18 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
19 #
20 #  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21 #
22 ###################################################################################
23 # This Python script uses the wrapped C++ class MESHING to buid a mesh from only
24 # primitive data like coordinates (Pythoin double array) and connectivity (Python
25 # integer arrays). It is the Python equivalent of the C++ program
26 # test_MEDMEM_Meshing.cxx in the ../MEDMEM directory of the SALOME distribution
27 ###################################################################################
28 #
29 from libMEDMEM_Swig import *
30
31 # files name to save the generated MESH(ING) in different format
32 # Med V2.1 Med V2.2 and vtk
33
34 med21FileName = "toto21.med"
35
36 med22FileName = "toto22.med"
37
38 vtkFileName = "toto.vtk"
39
40 myMeshing = MESHING()
41
42 myMeshing.setName("meshing")
43
44 # definition of the coordinates
45
46 spaceDimension = 3
47
48 numberOfNodes = 19
49
50 coordinates = []
51
52 coordinate = [0.0, 0.0, 0.0]
53 coordinates.append(coordinate[0])
54 coordinates.append(coordinate[1])
55 coordinates.append(coordinate[2])
56 coordinate = [0.0, 0.0, 1.0]
57 coordinates.append(coordinate[0])
58 coordinates.append(coordinate[1])
59 coordinates.append(coordinate[2])
60 coordinate = [2.0, 0.0, 1.0]
61 coordinates.append(coordinate[0])
62 coordinates.append(coordinate[1])
63 coordinates.append(coordinate[2])
64 coordinate = [0.0, 2.0, 1.0]
65 coordinates.append(coordinate[0])
66 coordinates.append(coordinate[1])
67 coordinates.append(coordinate[2])
68 coordinate = [-2.0, 0.0, 1.0]
69 coordinates.append(coordinate[0])
70 coordinates.append(coordinate[1])
71 coordinates.append(coordinate[2])
72 coordinate = [0.0, -2.0, 1.0]
73 coordinates.append(coordinate[0])
74 coordinates.append(coordinate[1])
75 coordinates.append(coordinate[2])
76 coordinate = [1.0, 1.0, 2.0]
77 coordinates.append(coordinate[0])
78 coordinates.append(coordinate[1])
79 coordinates.append(coordinate[2])
80 coordinate = [-1.0, 1.0, 2.0]
81 coordinates.append(coordinate[0])
82 coordinates.append(coordinate[1])
83 coordinates.append(coordinate[2])
84 coordinate = [-1.0, -1.0, 2.0]
85 coordinates.append(coordinate[0])
86 coordinates.append(coordinate[1])
87 coordinates.append(coordinate[2])
88 coordinate = [1.0, -1.0, 2.0]
89 coordinates.append(coordinate[0])
90 coordinates.append(coordinate[1])
91 coordinates.append(coordinate[2])
92 coordinate = [1.0, 1.0, 3.0]
93 coordinates.append(coordinate[0])
94 coordinates.append(coordinate[1])
95 coordinates.append(coordinate[2])
96 coordinate = [-1.0, 1.0, 3.0]
97 coordinates.append(coordinate[0])
98 coordinates.append(coordinate[1])
99 coordinates.append(coordinate[2])
100 coordinate = [-1.0, -1.0, 3.0]
101 coordinates.append(coordinate[0])
102 coordinates.append(coordinate[1])
103 coordinates.append(coordinate[2])
104 coordinate = [1.0, -1.0, 3.0]
105 coordinates.append(coordinate[0])
106 coordinates.append(coordinate[1])
107 coordinates.append(coordinate[2])
108 coordinate = [1.0, 1.0, 4.0]
109 coordinates.append(coordinate[0])
110 coordinates.append(coordinate[1])
111 coordinates.append(coordinate[2])
112 coordinate = [-1.0, 1.0, 4.0]
113 coordinates.append(coordinate[0])
114 coordinates.append(coordinate[1])
115 coordinates.append(coordinate[2])
116 coordinate = [-1.0, -1.0, 4.0]
117 coordinates.append(coordinate[0])
118 coordinates.append(coordinate[1])
119 coordinates.append(coordinate[2])
120 coordinate = [1.0, -1.0, 4.0]
121 coordinates.append(coordinate[0])
122 coordinates.append(coordinate[1])
123 coordinates.append(coordinate[2])
124 coordinate = [0.0, 0.0, 5.0]
125 coordinates.append(coordinate[0])
126 coordinates.append(coordinate[1])
127 coordinates.append(coordinate[2])
128
129 myMeshing.setCoordinates(spaceDimension,numberOfNodes,coordinates,"CARTESIAN",MED_FULL_INTERLACE)
130
131 for i in range(spaceDimension):
132     unit = "cm      "
133     if (i == 0):
134         name = "X       "
135     elif (i == 1):
136         name = "Y       "
137     elif (i == 2):
138         name = "Z       "
139
140     myMeshing.setCoordinateName(name,i)
141     myMeshing.setCoordinateUnit(unit,i)
142
143 # definition of connectivities
144 # cell part
145
146 numberOfTypes = 3
147 entity = MED_CELL
148
149 types = []
150 numberOfElements = []
151
152 types.append(MED_TETRA4)
153 numberOfElements.append(12)
154
155 types.append(MED_PYRA5)
156 numberOfElements.append(2)
157
158 types.append(MED_HEXA8)
159 numberOfElements.append(2)
160
161 myMeshing.setNumberOfTypes(numberOfTypes,entity)
162 myMeshing.setTypes(types,entity)
163 myMeshing.setNumberOfElements(numberOfElements,entity)
164
165 connectivityTetra = []
166
167 connectivity =  [1,2,3,6]
168 connectivityTetra.append(connectivity[0])
169 connectivityTetra.append(connectivity[1])
170 connectivityTetra.append(connectivity[2])
171 connectivityTetra.append(connectivity[3])
172 connectivity =  [1,2,4,3]
173 connectivityTetra.append(connectivity[0])
174 connectivityTetra.append(connectivity[1])
175 connectivityTetra.append(connectivity[2])
176 connectivityTetra.append(connectivity[3])
177 connectivity =  [1,2,5,4]
178 connectivityTetra.append(connectivity[0])
179 connectivityTetra.append(connectivity[1])
180 connectivityTetra.append(connectivity[2])
181 connectivityTetra.append(connectivity[3])
182 connectivity =  [1,2,6,5]
183 connectivityTetra.append(connectivity[0])
184 connectivityTetra.append(connectivity[1])
185 connectivityTetra.append(connectivity[2])
186 connectivityTetra.append(connectivity[3])
187 connectivity =  [2,7,4,3]
188 connectivityTetra.append(connectivity[0])
189 connectivityTetra.append(connectivity[1])
190 connectivityTetra.append(connectivity[2])
191 connectivityTetra.append(connectivity[3])
192 connectivity =  [2,8,5,4]
193 connectivityTetra.append(connectivity[0])
194 connectivityTetra.append(connectivity[1])
195 connectivityTetra.append(connectivity[2])
196 connectivityTetra.append(connectivity[3])
197 connectivity =  [2,9,6,5]
198 connectivityTetra.append(connectivity[0])
199 connectivityTetra.append(connectivity[1])
200 connectivityTetra.append(connectivity[2])
201 connectivityTetra.append(connectivity[3])
202 connectivity =  [2,10,3,6]
203 connectivityTetra.append(connectivity[0])
204 connectivityTetra.append(connectivity[1])
205 connectivityTetra.append(connectivity[2])
206 connectivityTetra.append(connectivity[3])
207 connectivity =  [2,7,3,10]
208 connectivityTetra.append(connectivity[0])
209 connectivityTetra.append(connectivity[1])
210 connectivityTetra.append(connectivity[2])
211 connectivityTetra.append(connectivity[3])
212 connectivity =  [2,8,4,7]
213 connectivityTetra.append(connectivity[0])
214 connectivityTetra.append(connectivity[1])
215 connectivityTetra.append(connectivity[2])
216 connectivityTetra.append(connectivity[3])
217 connectivity =  [2,9,5,8]
218 connectivityTetra.append(connectivity[0])
219 connectivityTetra.append(connectivity[1])
220 connectivityTetra.append(connectivity[2])
221 connectivityTetra.append(connectivity[3])
222 connectivity =  [2,10,6,9]
223 connectivityTetra.append(connectivity[0])
224 connectivityTetra.append(connectivity[1])
225 connectivityTetra.append(connectivity[2])
226 connectivityTetra.append(connectivity[3])
227
228 myMeshing.setConnectivity(connectivityTetra,entity,types[0])
229
230 connectivityPyra = []
231 connectivity =  [7,8,9,10,2]
232 connectivityPyra.append(connectivity[0])
233 connectivityPyra.append(connectivity[1])
234 connectivityPyra.append(connectivity[2])
235 connectivityPyra.append(connectivity[3])
236 connectivityPyra.append(connectivity[4])
237 connectivity =  [15,18,17,16,19]
238 connectivityPyra.append(connectivity[0])
239 connectivityPyra.append(connectivity[1])
240 connectivityPyra.append(connectivity[2])
241 connectivityPyra.append(connectivity[3])
242 connectivityPyra.append(connectivity[4])
243
244 myMeshing.setConnectivity(connectivityPyra,entity,types[1])
245
246 connectivityHexa = []
247 connectivity =  [11,12,13,14,7,8,9,10]
248 connectivityHexa.append(connectivity[0])
249 connectivityHexa.append(connectivity[1])
250 connectivityHexa.append(connectivity[2])
251 connectivityHexa.append(connectivity[3])
252 connectivityHexa.append(connectivity[4])
253 connectivityHexa.append(connectivity[5])
254 connectivityHexa.append(connectivity[6])
255 connectivityHexa.append(connectivity[7])
256 connectivity =  [15,16,17,18,11,12,13,14]
257 connectivityHexa.append(connectivity[0])
258 connectivityHexa.append(connectivity[1])
259 connectivityHexa.append(connectivity[2])
260 connectivityHexa.append(connectivity[3])
261 connectivityHexa.append(connectivity[4])
262 connectivityHexa.append(connectivity[5])
263 connectivityHexa.append(connectivity[6])
264 connectivityHexa.append(connectivity[7])
265
266 myMeshing.setConnectivity(connectivityHexa,entity,types[2])
267
268 # face part
269
270 numberOfTypes = 2
271 entity = MED_FACE
272
273 types = []
274 numberOfElements = []
275
276 types.append(MED_TRIA3)
277 numberOfElements.append(4)
278
279 types.append(MED_QUAD4)
280 numberOfElements.append(4)
281
282 myMeshing.setNumberOfTypes(numberOfTypes,entity)
283 myMeshing.setTypes(types,entity)
284 myMeshing.setNumberOfElements(numberOfElements,entity)
285
286 connectivityTria = []
287 connectivity =  [1,4,3]
288 connectivityTria.append(connectivity[0])
289 connectivityTria.append(connectivity[1])
290 connectivityTria.append(connectivity[2])
291 connectivity =  [1,5,4]
292 connectivityTria.append(connectivity[0])
293 connectivityTria.append(connectivity[1])
294 connectivityTria.append(connectivity[2])
295 connectivity =  [1,6,5]
296 connectivityTria.append(connectivity[0])
297 connectivityTria.append(connectivity[1])
298 connectivityTria.append(connectivity[2])
299 connectivity =  [1,3,6]
300 connectivityTria.append(connectivity[0])
301 connectivityTria.append(connectivity[1])
302 connectivityTria.append(connectivity[2])
303
304 myMeshing.setConnectivity(connectivityTria,entity,types[0])
305
306 connectivityQuad = []
307 connectivity =  [7,8,9,10]
308 connectivityQuad.append(connectivity[0])
309 connectivityQuad.append(connectivity[1])
310 connectivityQuad.append(connectivity[2])
311 connectivityQuad.append(connectivity[3])
312 connectivity =  [11,12,13,14]
313 connectivityQuad.append(connectivity[0])
314 connectivityQuad.append(connectivity[1])
315 connectivityQuad.append(connectivity[2])
316 connectivityQuad.append(connectivity[3])
317 connectivity =  [11,7,8,12]
318 connectivityQuad.append(connectivity[0])
319 connectivityQuad.append(connectivity[1])
320 connectivityQuad.append(connectivity[2])
321 connectivityQuad.append(connectivity[3])
322 connectivity =  [12,8,9,13]
323 connectivityQuad.append(connectivity[0])
324 connectivityQuad.append(connectivity[1])
325 connectivityQuad.append(connectivity[2])
326 connectivityQuad.append(connectivity[3])
327
328 myMeshing.setConnectivity(connectivityQuad,entity,types[1])
329
330 meshDimension = spaceDimension # because there 3D cells in the mesh
331 myMeshing.setMeshDimension(meshDimension)
332
333 # edge part
334
335 # adding GROUPs
336 # on Node
337
338 myGroup = GROUP()
339 myGroup.setName("SomeNodes")
340 myGroup.setMesh(myMeshing)
341 myGroup.setEntity(MED_NODE)
342 myGroup.setNumberOfGeometricType(1)
343
344 myTypes = [MED_NONE]
345 myGroup.setGeometricType(myTypes)
346
347 myNumberOfElements = [4]
348 myGroup.setNumberOfElements(myNumberOfElements)
349
350 index = [1,5]
351 values = [1,4,5,7]
352 myGroup.setNumber(index,values)
353
354 myMeshing.addGroup(myGroup)
355
356 myGroup = GROUP()
357 myGroup.setName("OtherNodes")
358 myGroup.setMesh(myMeshing)
359 myGroup.setEntity(MED_NODE)
360 myGroup.setNumberOfGeometricType(1)
361
362 myTypes = [MED_NONE]
363 myGroup.setGeometricType(myTypes)
364
365 myNumberOfElements = [3]
366 myGroup.setNumberOfElements(myNumberOfElements)
367
368 index = [1,4]
369 values = [2,3,6]
370 myGroup.setNumber(index,values)
371
372 myMeshing.addGroup(myGroup)
373
374 # on Cell
375
376 myGroup = GROUP()
377 myGroup.setName("SomeCells")
378 myGroup.setMesh(myMeshing)
379 myGroup.setEntity(MED_CELL)
380 myGroup.setNumberOfGeometricType(3)
381
382 myTypes = [MED_TETRA4,MED_PYRA5,MED_HEXA8]
383 myGroup.setGeometricType(myTypes)
384
385 myNumberOfElements = [4,1,2]
386 myGroup.setNumberOfElements(myNumberOfElements)
387
388 index = [1,5,6,8]
389 values = [
390     2,7,8,12,
391     13,
392     15,16
393     ]
394 myGroup.setNumber(index,values)
395
396 myMeshing.addGroup(myGroup)
397
398 myGroup = GROUP()
399 myGroup.setName("OtherCells")
400 myGroup.setMesh(myMeshing)
401 myGroup.setEntity(MED_CELL)
402 myGroup.setNumberOfGeometricType(2)
403
404 myTypes = [MED_TETRA4,MED_PYRA5]
405 myGroup.setGeometricType(myTypes)
406
407 myNumberOfElements = [4,1]
408 myGroup.setNumberOfElements(myNumberOfElements)
409
410 index = [1,5,6]
411 values = [
412     3,4,5,9,
413     14
414     ]
415 myGroup.setNumber(index,values)
416
417 myMeshing.addGroup(myGroup)
418
419 # on Face
420
421 myGroup = GROUP()
422 myGroup.setName("SomeFaces")
423 myGroup.setMesh(myMeshing)
424 myGroup.setEntity(MED_FACE)
425 myGroup.setNumberOfGeometricType(2)
426
427 myTypes = [MED_TRIA3,MED_QUAD4]
428 myGroup.setGeometricType(myTypes)
429
430 myNumberOfElements = [2,3]
431 myGroup.setNumberOfElements(myNumberOfElements)
432
433 index = [1,3,6]
434 values = [
435     2,4,
436     5,6,8
437     ]
438 myGroup.setNumber(index,values)
439
440 myMeshing.addGroup(myGroup)
441
442 myGroup = GROUP()
443 myGroup.setName("OtherFaces")
444 myGroup.setMesh(myMeshing)
445 myGroup.setEntity(MED_FACE)
446 myGroup.setNumberOfGeometricType(1)
447
448 myTypes = [MED_TRIA3]
449 myGroup.setGeometricType(myTypes)
450
451 myNumberOfElements = [2]
452 myGroup.setNumberOfElements(myNumberOfElements)
453
454 index = [1,3]
455 values = [
456     1,3
457     ]
458 myGroup.setNumber(index,values)
459
460 myMeshing.addGroup(myGroup)
461
462 # saving of the generated mesh in MED 2.1, 2.2 and VTK format
463
464 medFileVersion = getMedFileVersionForWriting()
465 print "Med File Version For Writing ",medFileVersion
466
467 if (medFileVersion == V22):
468     setMedFileVersionForWriting(V21)
469
470 idMedV21 = myMeshing.addDriver(MED_DRIVER,med21FileName,myMeshing.getName())
471 myMeshing.write(idMedV21)
472
473 medFileVersion = getMedFileVersionForWriting()
474 if (medFileVersion == V21):
475     setMedFileVersionForWriting(V22)
476
477 idMedV22 = myMeshing.addDriver(MED_DRIVER,med22FileName,myMeshing.getName())
478 myMeshing.write(idMedV22)
479
480 idVtk = myMeshing.addDriver(VTK_DRIVER,vtkFileName,myMeshing.getName())
481 myMeshing.write(idVtk)
482
483 # we build now 8 fields : 4 fields double (integer) :
484 #                         2 fields on nodes (cells) :
485 #                         1 scalar (vector)
486
487 supportOnNodes = SUPPORT(myMeshing,"On_All_Nodes",MED_NODE)
488 numberOfNodes = supportOnNodes.getNumberOfElements(MED_ALL_ELEMENTS)
489
490 supportOnCells = SUPPORT(myMeshing,"On_All_Cells",MED_CELL)
491 numberOfCells = supportOnCells.getNumberOfElements(MED_ALL_ELEMENTS)
492
493 fieldDoubleScalarOnNodes = FIELDDOUBLE(supportOnNodes,1)
494 fieldDoubleScalarOnNodes.setName("fieldScalarDoubleNode")
495 fieldDoubleScalarOnNodes.setIterationNumber(-1)
496 fieldDoubleScalarOnNodes.setOrderNumber(-1)
497 fieldDoubleScalarOnNodes.setTime(0.0)
498
499 fieldDoubleScalarOnNodes.setComponentName(1,"Vx")
500 fieldDoubleScalarOnNodes.setComponentDescription(1,"comp1")
501 fieldDoubleScalarOnNodes.setMEDComponentUnit(1,"unit1")
502
503 fieldDoubleVectorOnNodes = FIELDDOUBLE(supportOnNodes,spaceDimension)
504 fieldDoubleVectorOnNodes.setName("fieldVectorDoubleNode")
505 fieldDoubleVectorOnNodes.setIterationNumber(-1)
506 fieldDoubleVectorOnNodes.setOrderNumber(-1)
507 fieldDoubleVectorOnNodes.setTime(0.0)
508
509 fieldDoubleVectorOnNodes.setComponentName(1,"Vx")
510 fieldDoubleVectorOnNodes.setComponentDescription(1,"comp1")
511 fieldDoubleVectorOnNodes.setMEDComponentUnit(1,"unit1")
512 fieldDoubleVectorOnNodes.setComponentName(2,"Vy")
513 fieldDoubleVectorOnNodes.setComponentDescription(2,"comp2")
514 fieldDoubleVectorOnNodes.setMEDComponentUnit(2,"unit2")
515 fieldDoubleVectorOnNodes.setComponentName(3,"Vz")
516 fieldDoubleVectorOnNodes.setComponentDescription(3,"comp3")
517 fieldDoubleVectorOnNodes.setMEDComponentUnit(3,"unit3")
518
519 fieldDoubleScalarOnCells = FIELDDOUBLE(supportOnCells,1)
520 fieldDoubleScalarOnCells.setName("fieldScalarDoubleCell")
521 fieldDoubleScalarOnCells.setIterationNumber(-1)
522 fieldDoubleScalarOnCells.setOrderNumber(-1)
523 fieldDoubleScalarOnCells.setTime(0.0)
524
525 fieldDoubleScalarOnCells.setComponentName(1,"Vx")
526 fieldDoubleScalarOnCells.setComponentDescription(1,"comp1")
527 fieldDoubleScalarOnCells.setMEDComponentUnit(1,"unit1")
528
529 fieldDoubleVectorOnCells = FIELDDOUBLE(supportOnCells,spaceDimension)
530 fieldDoubleVectorOnCells.setName("fieldVectorrDoubleCell")
531 fieldDoubleVectorOnCells.setIterationNumber(-1)
532 fieldDoubleVectorOnCells.setOrderNumber(-1)
533 fieldDoubleVectorOnCells.setTime(0.0)
534
535 fieldDoubleVectorOnCells.setComponentName(1,"Vx")
536 fieldDoubleVectorOnCells.setComponentDescription(1,"comp1")
537 fieldDoubleVectorOnCells.setMEDComponentUnit(1,"unit1")
538 fieldDoubleVectorOnCells.setComponentName(2,"Vy")
539 fieldDoubleVectorOnCells.setComponentDescription(2,"comp2")
540 fieldDoubleVectorOnCells.setMEDComponentUnit(2,"unit2")
541 fieldDoubleVectorOnCells.setComponentName(3,"Vz")
542 fieldDoubleVectorOnCells.setComponentDescription(3,"comp3")
543 fieldDoubleVectorOnCells.setMEDComponentUnit(3,"unit3")
544
545 fieldIntScalarOnNodes = FIELDINT(supportOnNodes,1)
546 fieldIntScalarOnNodes.setName("fieldScalarIntNode")
547 fieldIntScalarOnNodes.setIterationNumber(-1)
548 fieldIntScalarOnNodes.setOrderNumber(-1)
549 fieldIntScalarOnNodes.setTime(0.0)
550
551 fieldIntScalarOnNodes.setComponentName(1,"Vx")
552 fieldIntScalarOnNodes.setComponentDescription(1,"comp1")
553 fieldIntScalarOnNodes.setMEDComponentUnit(1,"unit1")
554
555 fieldIntVectorOnNodes = FIELDINT(supportOnNodes,spaceDimension)
556 fieldIntVectorOnNodes.setName("fieldVectorIntNode")
557 fieldIntVectorOnNodes.setIterationNumber(-1)
558 fieldIntVectorOnNodes.setOrderNumber(-1)
559 fieldIntVectorOnNodes.setTime(0.0)
560
561 fieldIntVectorOnNodes.setComponentName(1,"Vx")
562 fieldIntVectorOnNodes.setComponentDescription(1,"comp1")
563 fieldIntVectorOnNodes.setMEDComponentUnit(1,"unit1")
564 fieldIntVectorOnNodes.setComponentName(2,"Vy")
565 fieldIntVectorOnNodes.setComponentDescription(2,"comp2")
566 fieldIntVectorOnNodes.setMEDComponentUnit(2,"unit2")
567 fieldIntVectorOnNodes.setComponentName(3,"Vz")
568 fieldIntVectorOnNodes.setComponentDescription(3,"comp3")
569 fieldIntVectorOnNodes.setMEDComponentUnit(3,"unit3")
570
571 fieldIntScalarOnCells = FIELDINT(supportOnCells,1)
572 fieldIntScalarOnCells.setName("fieldScalarIntCell")
573 fieldIntScalarOnCells.setIterationNumber(-1)
574 fieldIntScalarOnCells.setOrderNumber(-1)
575 fieldIntScalarOnCells.setTime(0.0)
576
577 fieldIntScalarOnCells.setComponentName(1,"Vx")
578 fieldIntScalarOnCells.setComponentDescription(1,"comp1")
579 fieldIntScalarOnCells.setMEDComponentUnit(1,"unit1")
580
581 fieldIntVectorOnCells = FIELDINT(supportOnCells,spaceDimension)
582 fieldIntVectorOnCells.setName("fieldVectorrIntCell")
583 fieldIntVectorOnCells.setIterationNumber(-1)
584 fieldIntVectorOnCells.setOrderNumber(-1)
585 fieldIntVectorOnCells.setTime(0.0)
586
587 fieldIntVectorOnCells.setComponentName(1,"Vx")
588 fieldIntVectorOnCells.setComponentDescription(1,"comp1")
589 fieldIntVectorOnCells.setMEDComponentUnit(1,"unit1")
590 fieldIntVectorOnCells.setComponentName(2,"Vy")
591 fieldIntVectorOnCells.setComponentDescription(2,"comp2")
592 fieldIntVectorOnCells.setMEDComponentUnit(2,"unit2")
593 fieldIntVectorOnCells.setComponentName(3,"Vz")
594 fieldIntVectorOnCells.setComponentDescription(3,"comp3")
595 fieldIntVectorOnCells.setMEDComponentUnit(3,"unit3")
596
597 for i in range(numberOfNodes):
598     valueInt1 = i+1
599     valueInt2 = i+2
600     valueInt3 = i+3
601     valueDbl1 = valueInt1*0.1
602     valueDbl2 = valueInt2*0.1
603     valueDbl3 = valueInt3*0.1
604     fieldDoubleScalarOnNodes.setValueIJ(i+1,1,valueDbl1)
605
606     fieldIntScalarOnNodes.setValueIJ(i+1,1,valueInt1)
607
608     fieldDoubleVectorOnNodes.setValueIJ(i+1,1,valueDbl1)
609     fieldDoubleVectorOnNodes.setValueIJ(i+1,2,valueDbl2)
610     fieldDoubleVectorOnNodes.setValueIJ(i+1,3,valueDbl3)
611
612     fieldIntVectorOnNodes.setValueIJ(i+1,1,valueInt1)
613     fieldIntVectorOnNodes.setValueIJ(i+1,2,valueInt2)
614     fieldIntVectorOnNodes.setValueIJ(i+1,3,valueInt3)
615
616 for i in range(numberOfCells):
617     valueInt1 = i+1
618     valueInt2 = i+2
619     valueInt3 = i+3
620     valueDbl1 = valueInt1*0.1
621     valueDbl2 = valueInt2*0.1
622     valueDbl3 = valueInt3*0.1
623     fieldDoubleScalarOnCells.setValueIJ(i+1,1,valueDbl1)
624
625     fieldIntScalarOnCells.setValueIJ(i+1,1,valueInt1)
626
627     fieldDoubleVectorOnCells.setValueIJ(i+1,1,valueDbl1)
628     fieldDoubleVectorOnCells.setValueIJ(i+1,2,valueDbl2)
629     fieldDoubleVectorOnCells.setValueIJ(i+1,3,valueDbl3)
630
631     fieldIntVectorOnCells.setValueIJ(i+1,1,valueInt1)
632     fieldIntVectorOnCells.setValueIJ(i+1,2,valueInt2)
633     fieldIntVectorOnCells.setValueIJ(i+1,3,valueInt3)
634
635 medFileVersion = getMedFileVersionForWriting()
636 print "Med File Version For Writing ",medFileVersion
637
638 if (medFileVersion == V22):
639     setMedFileVersionForWriting(V21)
640
641 idMedV21 = fieldDoubleScalarOnNodes.addDriver(MED_DRIVER,med21FileName,fieldDoubleScalarOnNodes.getName())
642 fieldDoubleScalarOnNodes.write(idMedV21)
643
644 idMedV21 = fieldIntScalarOnNodes.addDriver(MED_DRIVER,med21FileName,fieldIntScalarOnNodes.getName())
645 fieldIntScalarOnNodes.write(idMedV21)
646
647 idMedV21 = fieldDoubleVectorOnNodes.addDriver(MED_DRIVER,med21FileName,fieldDoubleVectorOnNodes.getName())
648 fieldDoubleVectorOnNodes.write(idMedV21)
649
650 idMedV21 = fieldIntVectorOnNodes.addDriver(MED_DRIVER,med21FileName,fieldIntVectorOnNodes.getName())
651 fieldIntVectorOnNodes.write(idMedV21)
652
653 idMedV21 = fieldDoubleScalarOnCells.addDriver(MED_DRIVER,med21FileName,fieldDoubleScalarOnCells.getName())
654 fieldDoubleScalarOnCells.write(idMedV21)
655
656 idMedV21 = fieldIntScalarOnCells.addDriver(MED_DRIVER,med21FileName,fieldIntScalarOnCells.getName())
657 fieldIntScalarOnCells.write(idMedV21)
658
659 idMedV21 = fieldDoubleVectorOnCells.addDriver(MED_DRIVER,med21FileName,fieldDoubleVectorOnCells.getName())
660 fieldDoubleVectorOnCells.write(idMedV21)
661
662 idMedV21 = fieldIntVectorOnCells.addDriver(MED_DRIVER,med21FileName,fieldIntVectorOnCells.getName())
663 fieldIntVectorOnCells.write(idMedV21)
664
665 medFileVersion = getMedFileVersionForWriting()
666 if (medFileVersion == V21):
667     setMedFileVersionForWriting(V22)
668
669 idMedV22 = fieldDoubleScalarOnNodes.addDriver(MED_DRIVER,med22FileName,fieldDoubleScalarOnNodes.getName())
670 fieldDoubleScalarOnNodes.write(idMedV22)
671
672 idMedV22 = fieldIntScalarOnNodes.addDriver(MED_DRIVER,med22FileName,fieldIntScalarOnNodes.getName())
673 fieldIntScalarOnNodes.write(idMedV22)
674
675 idMedV22 = fieldDoubleVectorOnNodes.addDriver(MED_DRIVER,med22FileName,fieldDoubleVectorOnNodes.getName())
676 fieldDoubleVectorOnNodes.write(idMedV22)
677
678 idMedV22 = fieldIntVectorOnNodes.addDriver(MED_DRIVER,med22FileName,fieldIntVectorOnNodes.getName())
679 fieldIntVectorOnNodes.write(idMedV22)
680
681 idMedV22 = fieldDoubleScalarOnCells.addDriver(MED_DRIVER,med22FileName,fieldDoubleScalarOnCells.getName())
682 fieldDoubleScalarOnCells.write(idMedV22)
683
684 idMedV22 = fieldIntScalarOnCells.addDriver(MED_DRIVER,med22FileName,fieldIntScalarOnCells.getName())
685 fieldIntScalarOnCells.write(idMedV22)
686
687 idMedV22 = fieldDoubleVectorOnCells.addDriver(MED_DRIVER,med22FileName,fieldDoubleVectorOnCells.getName())
688 fieldDoubleVectorOnCells.write(idMedV22)
689
690 idMedV22 = fieldIntVectorOnCells.addDriver(MED_DRIVER,med22FileName,fieldIntVectorOnCells.getName())
691 fieldIntVectorOnCells.write(idMedV22)
692
693 idVtk = fieldDoubleScalarOnNodes.addDriver(VTK_DRIVER,vtkFileName,fieldDoubleScalarOnNodes.getName())
694 fieldDoubleScalarOnNodes.writeAppend(idVtk)
695
696 idVtk = fieldIntScalarOnNodes.addDriver(VTK_DRIVER,vtkFileName,fieldIntScalarOnNodes.getName())
697 fieldIntScalarOnNodes.writeAppend(idVtk)
698
699 idVtk = fieldDoubleVectorOnNodes.addDriver(VTK_DRIVER,vtkFileName,fieldDoubleVectorOnNodes.getName())
700 fieldDoubleVectorOnNodes.writeAppend(idVtk)
701
702 idVtk = fieldIntVectorOnNodes.addDriver(VTK_DRIVER,vtkFileName,fieldIntVectorOnNodes.getName())
703 fieldIntVectorOnNodes.writeAppend(idVtk)
704
705 idVtk = fieldDoubleScalarOnCells.addDriver(VTK_DRIVER,vtkFileName,fieldDoubleScalarOnCells.getName())
706 fieldDoubleScalarOnCells.writeAppend(idVtk)
707
708 idVtk = fieldIntScalarOnCells.addDriver(VTK_DRIVER,vtkFileName,fieldIntScalarOnCells.getName())
709 fieldIntScalarOnCells.writeAppend(idVtk)
710
711 idVtk = fieldDoubleVectorOnCells.addDriver(VTK_DRIVER,vtkFileName,fieldDoubleVectorOnCells.getName())
712 fieldDoubleVectorOnCells.writeAppend(idVtk)
713
714 idVtk = fieldIntVectorOnCells.addDriver(VTK_DRIVER,vtkFileName,fieldIntVectorOnCells.getName())
715 fieldIntVectorOnCells.writeAppend(idVtk)