Salome HOME
Building a version which will be tagged PreV2_0_0 working with KERNEL V1_4_0.
[tools/medcoupling.git] / doc / MEDMEM / MESHconnectivities.py
1 from libMEDMEM_Swig import *
2
3 MedFile = "pointe.med"
4 #MedFile = "carre_quad4_3.med"
5 meshName = "maa1"
6 #meshName = "CARRE_EN_QUAD4"
7
8 myMesh = MESH(MED_DRIVER,MedFile,meshName)
9 myMesh.read()
10
11 nameMesh = myMesh.getName()
12
13 print "Mesh name : ",nameMesh
14
15 numberOfTypes = myMesh.getNumberOfTypes(MED_CELL)
16 print "Show Connectivity (Nodal) : "
17
18 # This example use access with a specified medGeometryElement through
19 # CELLMODEL class
20
21 for i in range(numberOfTypes):
22     cellType = myMesh.getCellType(MED_CELL,i)
23     nameType = cellType.getName()
24     type = cellType.getType()
25     numberOfElements = myMesh.getNumberOfElements(MED_CELL,type)
26     numberOfNodesPerCell = cellType.getNumberOfNodes()
27     connectivity = myMesh.getConnectivity(MED_FULL_INTERLACE,
28                                           MED_NODAL,MED_CELL,type)
29     print "For Type ",nameType," : "
30     for j in range(numberOfElements):
31         print "Element ",(j+1)," : ",connectivity[j*numberOfNodesPerCell:
32                                                   (j+1)*numberOfNodesPerCell]
33
34 print "Show Reverse Nodal Connectivity :"
35
36 # This example use global access with index array
37
38 numberOfNodes = myMesh.getNumberOfNodes()
39
40 reverseNodalConnectivity = myMesh.getReverseConnectivity(MED_NODAL)
41 reverseNodalConnectivityIndex = myMesh.getReverseConnectivityIndex(MED_NODAL)
42
43 for i in range(numberOfNodes):
44     indexBegin = reverseNodalConnectivityIndex[i]
45     indexEnd = reverseNodalConnectivityIndex[i+1]
46
47     # Index value begin at 1 so (index-1) is in fact used here
48
49     print "Node ",(i+1)," : ",reverseNodalConnectivity[(indexBegin-1):
50                                                        (indexEnd-1)]
51
52 print "Show Connectivity (Descending) :"
53
54 # This example use global access with index array
55
56 numberOfElements = myMesh.getNumberOfElements(MED_CELL,MED_ALL_ELEMENTS)
57 descendingConnectivity = myMesh.getConnectivity(MED_FULL_INTERLACE,
58                                                 MED_DESCENDING,MED_CELL,
59                                                 MED_ALL_ELEMENTS)
60 descendingConnectivityIndex = myMesh.getConnectivityIndex(MED_DESCENDING,
61                                                           MED_CELL)
62
63 for i in range(numberOfElements):
64     indexBegin = descendingConnectivityIndex[i]
65     indexEnd = descendingConnectivityIndex[i+1]
66
67     # Index value begin at 1 so (index-1) is in fact used here
68
69     print "Element ",(i+1)," : ",descendingConnectivity[(indexBegin-1):
70                                                         (indexEnd-1)]
71
72 print "Show Reverse Descending Connectivity :"
73
74 # This example use global access with index array
75
76 meshDimension = myMesh.getMeshDimension()
77
78 if (meshDimension == 1):
79     print "ERROR : Mesh Dimension = 1"
80     print "Then the Reverse Descending Connectivity could not be seen"
81 else:
82     if (meshDimension == 2):
83         constituent = "Edge"
84         constituentEntity = MED_EDGE
85
86     if (meshDimension == 3):
87         constituent = "Face"
88         constituentEntity = MED_FACE
89
90     numberOfConstituents = myMesh.getNumberOfElements(constituentEntity,
91                                                       MED_ALL_ELEMENTS)
92     reverseDescendingConnectivity = myMesh.getReverseConnectivity(
93         MED_DESCENDING)
94     reverseDescendingConnectivityIndex = myMesh.getReverseConnectivityIndex(
95         MED_DESCENDING)
96
97     for i in range(numberOfConstituents):
98         indexBegin = reverseDescendingConnectivityIndex[i]
99         indexEnd = reverseDescendingConnectivityIndex[i+1]
100
101         # Index value begin at 1 so (index-1) is in fact used here
102
103         print constituent," : ",(i+1)," : ",reverseDescendingConnectivity[
104             (indexBegin-1):(indexEnd-1)]
105
106     print "Show ",constituent," Connectivity (Nodal) :"
107
108     constituentConnectivity = myMesh.getConnectivity(MED_FULL_INTERLACE,
109                                                      MED_NODAL,
110                                                      constituentEntity,
111                                                      MED_ALL_ELEMENTS)
112     constituentConnectivityIndex = myMesh.getConnectivityIndex(MED_NODAL,
113                                                                constituentEntity)
114
115     for i in range(numberOfConstituents):
116         indexBegin = constituentConnectivityIndex[i]
117         indexEnd = constituentConnectivityIndex[i+1]
118
119         # Index value begin at 1 so (index-1) is in fact used here
120
121         print constituent," : ",(i+1)," : ",constituentConnectivity[
122             (indexBegin-1):(indexEnd-1)]