]> SALOME platform Git repositories - modules/med.git/blob - src/MEDMEM_SWIG/testWriteAndFam.py
Salome HOME
Join modifications from branch CEAFor_V3_2_0
[modules/med.git] / src / MEDMEM_SWIG / testWriteAndFam.py
1 ###################################################################################
2 #
3 # This Python script is testing the writing in Med format V2.1 V2.2
4 #
5 # You can check if the analysis of the families is OK.
6 #
7 ###################################################################################
8
9 from libMEDMEM_Swig import *
10 import string
11 import os
12 #
13 #befor running this script, please be sure about the path the files
14 #
15 filePath=os.environ["MED_ROOT_DIR"]
16 filePath=filePath+"/share/salome/resources/"
17
18 medFiles = []
19 medFiles.append("geomMesh21.med")
20 medFiles.append("geomMesh22.med")
21 nbOfFiles = len(medFiles)
22
23 for i in range(nbOfFiles):
24     medFile = medFiles[i]
25     medFile = filePath + medFile
26     medFiles[i] = medFile
27     pass
28
29 meshName = "GeomMesh"
30
31 for i in range(nbOfFiles):
32     medFile = medFiles[i]
33
34     rootFile = string.split(medFile,".")[0]
35     medFileOut21 = rootFile + "Out21.med"
36     medFileOut22 = rootFile + "Out22.med"
37
38     print "Mounting in memory of the mesh ",meshName," from the file ",medFile
39     mesh = MESH(MED_DRIVER,medFile,meshName)
40     
41     print ""
42     print "Families analysis of the mesh ",meshName," from the file ",medFile
43     print ""
44
45     for entity in [MED_NODE,MED_CELL,MED_FACE,MED_EDGE]:
46         nbFam = mesh.getNumberOfFamilies(entity)
47         if (entity == MED_NODE) & (nbFam > 0):
48             print "This mesh has",nbFam,"Node Family(ies)"
49             pass
50         elif (entity == MED_CELL) & (nbFam > 0):
51             print "This mesh has",nbFam,"Cell Family(ies)"
52             pass
53         elif (entity == MED_FACE) & (nbFam > 0):
54             print "This mesh has",nbFam,"Face Family(ies)"
55             pass
56         elif (entity == MED_EDGE) & (nbFam > 0):
57             print "This mesh has",nbFam,"Edge Family(ies)"
58             pass
59
60         if nbFam > 0:
61             for j in range(nbFam):
62                 print ""
63                 family = mesh.getFamily(entity,j+1)
64                 familyName = family.getName()
65                 familyBool = family.isOnAllElements()
66                 if (familyBool):
67                     print "  -this famyly named ",familyName," is on all entities"
68                     pass
69                 else:
70                     familyNumber = family.getNumber(MED_ALL_ELEMENTS)
71                     print "  -this famyly named ",familyName," has ",len(familyNumber)," entities"
72                     pass
73                 pass
74             pass
75         pass
76     
77     medFileVersion = getMedFileVersionForWriting()
78
79     if (medFileVersion == V22):
80         setMedFileVersionForWriting(V21)
81         pass
82
83     print ""
84     print "  adding a Med file V2.1 format driver to the mesh with the file ",medFileOut21
85     idMedV21 = mesh.addDriver(MED_DRIVER,medFileOut21,mesh.getName())
86
87     print ""
88     print "  writing the mesh in Med file V2.1 format"
89     mesh.write(idMedV21)
90
91     medFileVersion = getMedFileVersionForWriting()
92     if (medFileVersion == V21):
93         setMedFileVersionForWriting(V22)
94         pass
95
96     print ""
97     print "  adding a Med file V2.2 format driver to the mesh with the file ",medFileOut22
98     idMedV22 = mesh.addDriver(MED_DRIVER,medFileOut22,mesh.getName())
99
100     print ""
101     print "  writing the mesh in Med file V2.2 format"
102     mesh.write(idMedV22)
103     print ""
104     pass
105
106 medFiles2 = []
107
108 for i in range(nbOfFiles):
109     medFile = medFiles[i]
110     rootFile = string.split(medFile,".")[0]
111     medFileOut21 = rootFile + "Out21.med"
112     medFileOut22 = rootFile + "Out22.med"
113
114     medFiles2.append(medFileOut21)
115     medFiles2.append(medFileOut22)
116     pass
117
118 nbOfFiles = len(medFiles2)
119
120 for i in range(nbOfFiles):
121     medFile = medFiles2[i]
122     mesh = MESH(MED_DRIVER,medFile,meshName)
123
124     print "Families analysis of the mesh ",meshName," from the file ",medFile
125     print ""
126     for entity in [MED_NODE,MED_CELL,MED_FACE,MED_EDGE]:
127         nbFam = mesh.getNumberOfFamilies(entity)
128         if (entity == MED_NODE) & (nbFam > 0):
129             print "This mesh has",nbFam,"Node Family(ies)"
130             pass
131         elif (entity == MED_CELL) & (nbFam > 0):
132             print "This mesh has",nbFam,"Cell Family(ies)"
133             pass
134         elif (entity == MED_FACE) & (nbFam > 0):
135             print "This mesh has",nbFam,"Face Family(ies)"
136             pass
137         elif (entity == MED_EDGE) & (nbFam > 0):
138             print "This mesh has",nbFam,"Edge Family(ies)"
139             pass
140
141         if nbFam > 0:
142             for j in range(nbFam):
143                 print ""
144                 family = mesh.getFamily(entity,j+1)
145                 familyName = family.getName()
146                 familyBool = family.isOnAllElements()
147                 if (familyBool):
148                     print "  -this famyly named ",familyName," is on all entities"
149                     pass
150                 else:
151                     familyNumber = family.getNumber(MED_ALL_ELEMENTS)
152                     print "  -this famyly named ",familyName," has ",len(familyNumber)," entities"
153                     pass
154                 pass
155             pass
156         pass
157     pass
158
159 print ""
160 print "END of the Pyhton script ..... Ctrl D to exit"