Salome HOME
merging the main trunk with the BrForComp branch to build a pre V3_0_1
[modules/med.git] / src / MEDMEM / test_MEDMEM_Meshing_poly.cxx
1 #include "MEDMEM_Meshing.hxx"
2
3 using namespace std;
4 using namespace MEDMEM;
5 using namespace MED_EN;
6
7 int main (int argc, char ** argv)
8 {
9     // Traitement arguments
10     if (argc != 2) 
11     {
12         cerr << "Usage : " << argv[0] 
13         << " medfilename" << endl << endl
14         << "-> cré un maillage et le sauve dans le fichier medfilename." << endl;
15         exit(-1);
16     }
17     string medfilename  = argv[1];
18
19     // Creation maillage
20     //***********************************************************************************
21
22       MESHING myMeshing;
23       myMeshing.setName("myMeshing");
24
25       //   define coordinates
26
27       int SpaceDimension = 2;
28       int MeshDimension = SpaceDimension ;
29       int NumberOfNodes = 11;
30       double Coordinates[2*11] = {
31         0.0, 0.0,
32         0.5, 0.0,
33         1.0, 0.0,
34         0.25, 0.5,
35         0.5, 0.5,
36         0.75, 0.5,
37         0.0, 1.0,
38         0.5, 1.0,
39         1.0, 1.0,
40         1.5, 0.0,
41         1.5, 1.0,
42       };
43
44       myMeshing.setMeshDimension(MeshDimension) ;
45
46       myMeshing.setCoordinates(SpaceDimension,NumberOfNodes,Coordinates,"CARTESIAN",MED_FULL_INTERLACE);
47
48       string Names[3] = { "X","Y","Z" };
49       myMeshing.setCoordinatesNames(Names);
50
51       string Units[3] = { "cm","cm","cm" };
52       myMeshing.setCoordinatesUnits(Units);
53
54       //   define conectivities
55
56       //      cell part
57
58       const int NumberOfTypes = 3;
59       medGeometryElement Types[NumberOfTypes] = {MED_TRIA3,MED_QUAD4,MED_POLYGON};
60       const int NumberOfElements[NumberOfTypes] = {1,4,1};
61
62       myMeshing.setNumberOfTypes(NumberOfTypes,MED_CELL);
63       myMeshing.setTypes(Types,MED_CELL);
64
65       int ConnectivityTria[1*3]=
66         {
67           7,4,1
68         };
69
70
71       int ConnectivityQuad[4*4]=
72         {
73           4,5,2,1,
74           5,6,3,2,
75           7,8,5,4,
76           8,9,6,5
77         };
78   
79       int ConnectivityPolygon[1*5]=
80         {
81           9,11,10,3,6
82         };
83       int ConnectivityPolygonIndex[2]=
84         {
85           1,6
86         };
87
88       myMeshing.setNumberOfElements(NumberOfElements,MED_CELL,ConnectivityPolygonIndex,1);
89       myMeshing.setConnectivity(ConnectivityTria,MED_CELL,MED_TRIA3);
90       myMeshing.setConnectivity(ConnectivityQuad,MED_CELL,MED_QUAD4);
91       myMeshing.setConnectivity(ConnectivityPolygon,MED_CELL,MED_POLYGON,ConnectivityPolygonIndex,1);
92
93       /*
94       //      face part
95
96       const int NumberOfFacesTypes = 2 ;
97       medGeometryElement FacesTypes[NumberOfFacesTypes] = {MED_TRIA3,MED_QUAD4} ;
98       const int NumberOfFacesElements[NumberOfFacesTypes] = {4,4} ;
99
100       myMeshing.setNumberOfTypes(NumberOfFacesTypes,MED_FACE);
101       myMeshing.setTypes(FacesTypes,MED_FACE);
102       myMeshing.setNumberOfElements(NumberOfFacesElements,MED_FACE);
103
104       const int sizeTria = 3*4 ;
105       int ConnectivityTria[sizeTria]=
106       {
107       1,4,3,
108       1,5,4,
109       1,6,5,
110       1,3,6
111       };
112  
113       myMeshing.setConnectivity(ConnectivityTria,MED_FACE,MED_TRIA3);
114
115       int ConnectivityQua[4*4]=
116       {
117       7,8,9,10,
118       11,12,13,14,
119       11,7,8,12,
120       12,8,9,13
121       };
122
123       myMeshing.setConnectivity(ConnectivityQua,MED_FACE,MED_QUAD4);
124       */
125
126       /*
127       //      edge part
128
129       // not yet implemented : if set, results are unpredictable.
130       */
131
132
133   // Ecriture fichier
134
135       int idMed = myMeshing.addDriver(MED_DRIVER,medfilename,myMeshing.getName());
136       myMeshing.write(idMed) ;
137
138       //      int idVtk = myMeshing.addDriver(VTK_DRIVER,"toto.vtk",myMeshing.getName());
139       //      myMeshing.write(idVtk) ;
140
141   //************************************************************************************
142
143   // impression de controle
144   cout << endl;
145   cout << "Impression de MESHING : " << endl;
146   cout << myMeshing;
147
148 }