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