5 from libMEDClient import *
7 filePath=os.environ["MED_ROOT_DIR"]
8 filePath=filePath+"/share/salome/resources/med/"
11 medFiles.append("extendedtransport53_triangles.med")
12 medFiles.append("maillage_5_5_5.med")
13 medFiles.append("maillage_chemvalIV_cas1_40elts.med")
14 medFiles.append("Old_maillage_chemvalIV_cas1_40elts.med")
17 meshNames.append("TestA3_2094_0.1_rsurf_tri")
18 meshNames.append("maillage_5_5_5")
19 meshNames.append("maillage_chemvalIV_cas1_40elts")
20 meshNames.append("maillage_chemvalIV_cas1_40elts")
22 nbOfFiles = len(medFiles)
24 med=salome.lcc.FindOrLoadComponent("FactoryServer", "MED")
26 for i in range(nbOfFiles):
27 medFile = filePath + medFiles[i]
28 meshName = meshNames[i]
32 meshCorba = med.readMeshInFile(medFile, salome.myStudyName,meshName)
33 except SALOME.SALOME_Exception, ex:
37 print ex.details.sourceFile
38 print ex.details.lineNumber
42 print "meshName = ",meshCorba.getName()
43 print "mesh number of nodes", meshCorba.getNumberOfNodes()
50 meshLocalCopy = MESHClient(meshCorba)
51 print " getting information from the local copy of the distant mesh"
52 name = meshLocalCopy.getName()
53 spaceDimension = meshLocalCopy.getSpaceDimension()
54 meshDimension = meshLocalCopy.getMeshDimension()
55 numberOfNodes = meshLocalCopy.getNumberOfNodes()
56 print " Name = ", name, " space Dim = ", spaceDimension, " mesh Dim = ", meshDimension, " Nb of Nodes = ", numberOfNodes
57 coordSyst = meshLocalCopy.getCoordinatesSystem()
58 print " The coordinates system is",coordSyst
59 print " The Coordinates :"
62 for isd in range(spaceDimension):
63 coordNames.append(meshLocalCopy.getCoordinateName(isd))
64 coordUnits.append(meshLocalCopy.getCoordinateUnit(isd))
66 print " names:", coordNames
67 print " units", coordUnits
69 coordinates = meshLocalCopy.getCoordinates(MED_FULL_INTERLACE)
70 for k in range(numberOfNodes):
72 print " ---- ", coordinates[k*spaceDimension:(kp1*spaceDimension)]
74 print " The Cell Nodal Connectivity of the Cells:"
75 nbTypesCell = meshLocalCopy.getNumberOfTypes(MED_CELL)
78 print " The Mesh has",nbTypesCell,"Type(s) of Cell"
79 types = meshLocalCopy.getTypes(MED_CELL)
80 for k in range(nbTypesCell):
82 nbElemType = meshLocalCopy.getNumberOfElements(MED_CELL,type)
83 print " For the type:",type,"there is(are)",nbElemType,"elemnt(s)"
84 connectivity = meshLocalCopy.getConnectivity(MED_FULL_INTERLACE,MED_NODAL,MED_CELL,type)
85 nbNodesPerCell = type%100
86 for j in range(nbElemType):
87 print " Element",(j+1)," ",connectivity[j*nbNodesPerCell:(j+1)*nbNodesPerCell]
93 ## TEST METHODS ABOUT POLY ELEMENTS ##
95 nbTypesCellWithPoly = meshLocalCopy.getNumberOfTypesWithPoly(MED_CELL)
96 if (nbTypesCell == nbTypesCellWithPoly):
98 print " No Poly Cells in the mesh"
103 print " The Cell Nodal Connectivity of the Poly Cells:"
105 print " The Mesh has",nbTypesCellWithPoly-nbTypesCell,"Type(s) of Poly Cell"
106 types = meshLocalCopy.getTypesWithPoly(MED_CELL)
107 for k in range(nbTypesCellWithPoly):
109 if type == MED_POLYGON:
110 nbElemType = meshLocalCopy.getNumberOfPolygons()
111 elif type == MED_POLYHEDRA:
112 nbElemType = meshLocalCopy.getNumberOfPolyhedron()
116 print " For the type:",type,"there is(are)",nbElemType,"elemnt(s)"
117 if type == MED_POLYGON:
118 connectivity = meshLocalCopy.getPolygonsConnectivity(MED_NODAL,MED_CELL)
119 index = meshLocalCopy.getPolygonsConnectivityIndex(MED_NODAL,MED_CELL)
120 for j in range(nbElemType):
121 print " Polygon",(j+1)," ",connectivity[ index[j]-1 : index[j+1]-1 ]
125 connectivity = meshLocalCopy.getPolyhedronConnectivity(MED_NODAL)
126 fIndex = meshLocalCopy.getPolyhedronFacesIndex()
127 index = meshLocalCopy.getPolyhedronIndex(MED_NODAL)
128 for j in range(nbElemType):
129 print " Polyhedra",(j+1)
130 iF1, iF2 = index[ j ]-1, index[ j+1 ]-1
131 for f in range( iF2 - iF1 ):
132 iN1, iN2 = fIndex[ iF1+f ]-1, fIndex[ iF1+f+1 ]-1
133 print " Face",f+1," ",connectivity[ iN1 : iN2 ]
141 print "END of the Pyhton script ..... Ctrl D to exit"