]> SALOME platform Git repositories - modules/med.git/blob - src/MEDMEM/test_grid.cxx
Salome HOME
update after merging trhe branches CEA_V3_0_x, OCC_V3_1_0_a1_x, and the main
[modules/med.git] / src / MEDMEM / test_grid.cxx
1 #include "MEDMEM_Grid.hxx"
2
3 using namespace MEDMEM;
4 using namespace MED_EN;
5
6 static void usage(const char * test)
7 {
8     cerr << "Usage : " << test
9         << " SpaceDimension  nbMaille" << endl << endl
10         << "-> Crée une grille cartesienne en dimension SpaceDimension avec nbMaille suivant chaque direction" << endl;
11     exit(-1);
12 }
13
14 int main (int argc, char ** argv) {
15
16     /* process the arguments */
17     if (argc != 3)
18         usage(argv[0]);
19
20     const int SpaceDimension=atoi(argv[1]);
21     const int nbMaille=atoi(argv[2]);
22     if(SpaceDimension>3 || SpaceDimension<1 || nbMaille<1)
23         usage(argv[0]);
24
25     // Creation des tableaux necessaires à la construction de GRID
26     std::vector<int> nMaille(SpaceDimension,nbMaille);
27     std::vector<double> Origine(SpaceDimension,0.0);
28     std::vector<double> pas(SpaceDimension,10.0);
29     std::vector<std::vector<double> > XYZ_Array(SpaceDimension);
30     for(int i=0;i!=SpaceDimension;++i)
31     {
32         XYZ_Array[i].resize(nMaille[i]+1); // nbre de noeuds = nbre de mailles +1
33         XYZ_Array[i][0]=Origine[i];
34         for(int j=1;j!=XYZ_Array[i].size();++j)
35             XYZ_Array[i][j]=XYZ_Array[i][j-1] + pas[j-1];
36     }
37     
38     std::vector<std::string> coord_name(SpaceDimension,"X");
39     if(SpaceDimension>=2)
40         coord_name[1]="Y";
41     if(SpaceDimension>=3)
42         coord_name[2]="Z";
43     std::vector<std::string> coord_unit(SpaceDimension,"cm");
44
45     // creation du pointeur MESH à partir d'un GRID, test affichage
46     std::auto_ptr<MEDMEM::MESH> Mesh (new MEDMEM::GRID( XYZ_Array, coord_name, coord_unit, MED_CARTESIAN) );
47     const MEDMEM::CONNECTIVITY* conn = Mesh->getConnectivityptr();
48     std::cout << "Affichage du maillage : " << endl << *Mesh << endl;
49 }