1 #include "MEDMEM_Meshing.hxx"
2 #include "MEDMEM_Group.hxx"
6 int main (int argc, char ** argv) {
8 // filename to save the generated MESH
9 string filename = "meshing.med" ;
12 myMeshing.setName("meshing") ;
16 int SpaceDimension = 3 ;
17 int NumberOfNodes = 19 ;
18 double Coordinates[57] = {
40 myMeshing.setCoordinates(SpaceDimension,NumberOfNodes,Coordinates,"CARTESIAN",MED_FULL_INTERLACE);
42 string Names[3] = { "X","Y","Z" } ;
43 myMeshing.setCoordinatesNames(Names);
45 string Units[3] = { "cm","cm","cm" } ;
46 myMeshing.setCoordinatesUnits(Units) ;
48 // define conectivities
52 const int NumberOfTypes = 3 ;
53 medGeometryElement Types[NumberOfTypes] = {MED_TETRA4,MED_PYRA5,MED_HEXA8} ;
54 const int NumberOfElements[NumberOfTypes] = {12,2,2} ;
56 myMeshing.setNumberOfTypes(NumberOfTypes,MED_CELL);
57 myMeshing.setTypes(Types,MED_CELL);
58 myMeshing.setNumberOfElements(NumberOfElements,MED_CELL);
60 const int sizeTetra = 12*4 ;
61 int ConnectivityTetra[sizeTetra]=
77 myMeshing.setConnectivity(ConnectivityTetra,MED_CELL,MED_TETRA4);
79 int ConnectivityPyra[2*5]=
85 myMeshing.setConnectivity(ConnectivityPyra,MED_CELL,MED_PYRA5);
87 int ConnectivityHexa[2*8]=
90 15,16,17,18,11,12,13,14
93 myMeshing.setConnectivity(ConnectivityHexa,MED_CELL,MED_HEXA8);
97 const int NumberOfFacesTypes = 2 ;
98 medGeometryElement FacesTypes[NumberOfFacesTypes] = {MED_TRIA3,MED_QUAD4} ;
99 const int NumberOfFacesElements[NumberOfFacesTypes] = {4,4} ;
101 myMeshing.setNumberOfTypes(NumberOfFacesTypes,MED_FACE);
102 myMeshing.setTypes(FacesTypes,MED_FACE);
103 myMeshing.setNumberOfElements(NumberOfFacesElements,MED_FACE);
105 const int sizeTria = 3*4 ;
106 int ConnectivityTria[sizeTria]=
114 myMeshing.setConnectivity(ConnectivityTria,MED_FACE,MED_TRIA3);
116 int ConnectivityQua[4*4]=
124 myMeshing.setConnectivity(ConnectivityQua,MED_FACE,MED_QUAD4);
128 // not yet implemented : if set, results are unpredictable.
135 myGroup.setName("SomeNodes");
136 myGroup.setMesh(&myMeshing);
137 myGroup.setEntity(MED_NODE);
138 myGroup.setNumberOfGeometricType(1);
139 medGeometryElement myTypes[1] = {MED_NONE};
140 myGroup.setGeometricType(myTypes);
141 const int myNumberOfElements[1] = {4} ;
142 myGroup.setNumberOfElements(myNumberOfElements);
143 const int index[1+1] = {1,5} ;
144 const int value[4]= { 1,4,5,7} ;
145 myGroup.setNumber(index,value);
147 myMeshing.addGroup(myGroup);
151 myGroup.setName("OtherNodes");
152 myGroup.setMesh(&myMeshing);
153 myGroup.setEntity(MED_NODE);
154 myGroup.setNumberOfGeometricType(1);
155 medGeometryElement myTypes[1] = {MED_NONE};
156 myGroup.setGeometricType(myTypes);
157 const int myNumberOfElements[1] = {3} ;
158 myGroup.setNumberOfElements(myNumberOfElements);
159 const int index[1+1] = {1,4} ;
160 const int value[3]= { 2,3,6} ;
161 myGroup.setNumber(index,value);
163 myMeshing.addGroup(myGroup);
169 myGroup.setName("SomeCells");
170 myGroup.setMesh(&myMeshing);
171 myGroup.setEntity(MED_CELL);
172 myGroup.setNumberOfGeometricType(3);
173 medGeometryElement myTypes[3] = {MED_TETRA4,MED_PYRA5,MED_HEXA8};
174 myGroup.setGeometricType(myTypes);
175 const int myNumberOfElements[3] = {4,1,2} ;
176 myGroup.setNumberOfElements(myNumberOfElements);
177 const int index[3+1] = {1,5,6,8} ;
178 const int value[4+1+2]=
184 myGroup.setNumber(index,value);
186 myMeshing.addGroup(myGroup);
190 myGroup.setName("OtherCells");
191 myGroup.setMesh(&myMeshing);
192 myGroup.setEntity(MED_CELL);
193 myGroup.setNumberOfGeometricType(2);
194 medGeometryElement myTypes[] = {MED_TETRA4,MED_PYRA5};
195 myGroup.setGeometricType(myTypes);
196 const int myNumberOfElements[] = {4,1} ;
197 myGroup.setNumberOfElements(myNumberOfElements);
198 const int index[3+1] = {1,5,6} ;
199 const int value[4+1]=
204 myGroup.setNumber(index,value);
206 myMeshing.addGroup(myGroup);
212 myGroup.setName("SomeFaces");
213 myGroup.setMesh(&myMeshing);
214 myGroup.setEntity(MED_FACE);
215 myGroup.setNumberOfGeometricType(2);
216 medGeometryElement myTypes[2] = {MED_TRIA3,MED_QUAD4};
217 myGroup.setGeometricType(myTypes);
218 const int myNumberOfElements[2] = {2,3} ;
219 myGroup.setNumberOfElements(myNumberOfElements);
220 const int index[2+1] = {1,3,6} ;
221 const int value[2+3]=
226 myGroup.setNumber(index,value);
228 myMeshing.addGroup(myGroup);
232 myGroup.setName("OtherFaces");
233 myGroup.setMesh(&myMeshing);
234 myGroup.setEntity(MED_FACE);
235 myGroup.setNumberOfGeometricType(1);
236 medGeometryElement myTypes[1] = {MED_TRIA3};
237 myGroup.setGeometricType(myTypes);
238 const int myNumberOfElements[1] = {2} ;
239 myGroup.setNumberOfElements(myNumberOfElements);
240 const int index[1+1] = {1,3} ;
245 myGroup.setNumber(index,value);
247 myMeshing.addGroup(myGroup);
250 // all rigtht, we save it !
252 int id = myMeshing.addDriver(MED_DRIVER,filename,myMeshing.getName());
253 myMeshing.write(id) ;