Salome HOME
Merging with the MAN_SALOME2 branch
[modules/med.git] / src / MEDMEM / test_affect_medarray.cxx
1 using namespace std;
2 /* Programme de test du constructeur de copies de la classe MEDARRAY de MEDMEM
3    jroy - 16/12/2002 */
4
5 #include <string>
6
7 #include <math.h>
8 #include <stdlib.h>
9
10 #include "MEDMEM_Exception.hxx"
11 #include "MEDMEM_Mesh.hxx"
12 #include "MEDMEM_Family.hxx"
13 #include "MEDMEM_Group.hxx"
14
15 #include "MEDMEM_MedMeshDriver.hxx"
16 #include "MEDMEM_MedFieldDriver.hxx"
17 #include "MEDMEM_Support.hxx"
18 #include "MEDMEM_Field.hxx"
19 #include "MEDMEM_define.hxx"
20 using namespace MEDMEM;
21
22
23 void affiche_medarray(MEDARRAY<double> & myMedArray)
24 {
25   int numberof ;
26   MESSAGE("Show all 1 :");
27   numberof = myMedArray.getLeadingValue() ;
28   for (int i=1; i<=myMedArray.getLengthValue() ; i++) {
29     const double * node = myMedArray.getRow(i) ;
30     cout << " - " ;
31     for (int j=0;j<numberof;j++)
32       cout << node[j] << " " ;
33     cout << endl ;
34   }
35   MESSAGE("Show all 2 :");
36   numberof = myMedArray.getLengthValue() ;
37   for (int i=1; i<=myMedArray.getLeadingValue() ; i++) {
38     const double * node = myMedArray.getColumn(i) ;
39     cout << " - " ;
40     for (int j=0;j<numberof;j++)
41       cout << node[j] << " " ;
42     cout << endl ;
43   }
44   MESSAGE("Show all 3 :");
45   numberof = myMedArray.getLeadingValue() ;
46   for (int i=1; i<=myMedArray.getLengthValue() ; i++) {
47     cout << " - " ;
48     for (int j=1;j<numberof+1;j++)
49       cout << myMedArray.getIJ(i,j) << " " ;
50     cout << endl ;
51   }
52
53   MESSAGE("Show all 0 :");
54   numberof = myMedArray.getLeadingValue() ;
55   int length = myMedArray.getLengthValue() ;
56   const double * NoInterlaceArray = myMedArray.get(MED_NO_INTERLACE) ;
57   for (int i=0; i<length ; i++) {
58     cout << " - " ;
59     for (int j=0;j<numberof;j++)
60       cout << NoInterlaceArray[j*length+i] << " " ;
61     cout << endl ;
62   }
63
64
65   /*
66   cout << "Nombre de lignes : " << myMedArray.getLengthValue() << endl;
67   cout << "Nombre de colonnes : " << myMedArray.getLeadingValue() << endl;
68   cout << "Mode d'écriture en mémoire : " << myMedArray.getMode() << endl;
69   cout << "Valeurs (_valuesDefault) :" << endl;
70
71   for (med_int i=1; i<=myMedArray.getLengthValue(); i++) {
72     for (med_int j=1; j<=myMedArray.getLeadingValue(); j++)
73       cout << i << "  " << j << "    " << myMedArray.getIJ(i,j) << " " << endl;
74   }
75   */
76 }
77
78
79 int main (int argc, char ** argv) {
80
81   /*
82   if ((argc !=3) && (argc != 4)) {
83     cerr << "Usage : " << argv[0] 
84          << " filename meshname fieldname" << endl << endl;
85     exit(-1);
86   }
87   */
88   const med_int nb_noeuds = 8;
89   const med_int dimension = 3;
90   const medModeSwitch mode = MED_NO_INTERLACE;
91
92
93   MEDARRAY<double> * myMedArray = new MEDARRAY<double>(dimension,nb_noeuds,mode);
94   for (med_int i=1; i<=myMedArray->getLengthValue(); i++) {
95     for (med_int j=1; j<=myMedArray->getLeadingValue(); j++)
96       myMedArray->setIJ(i,j,(double) random());
97   };
98
99   affiche_medarray(* myMedArray);
100   MEDARRAY<double> * myMedArray2 = new MEDARRAY<double>();
101   * myMedArray2 = * myMedArray;
102   //  delete myMedArray;  // si on recopie les tableaux
103   affiche_medarray(* myMedArray2);
104   delete myMedArray;      // si on ne recopie pas les tableaux
105   delete myMedArray2;
106
107   return 0;
108 }