Salome HOME
merging the main trunk with the BrForComp branch to build a pre V3_0_1
[modules/med.git] / src / MEDMEM / test_affect_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 #ifdef _DEBUG_
21 #include "LocalTraceCollector.hxx"
22 #endif /* ifdef _DEBUG_*/
23
24 using namespace std;
25 using namespace MEDMEM;
26 using namespace MED_EN;
27
28 void affiche_medarray(MEDARRAY<double> & myMedArray)
29 {
30   int numberof ;
31   MESSAGE("Show all 1 :");
32   numberof = myMedArray.getLeadingValue() ;
33   for (int i=1; i<=myMedArray.getLengthValue() ; i++) {
34     const double * node = myMedArray.getRow(i) ;
35     cout << " - " ;
36     for (int j=0;j<numberof;j++)
37       cout << node[j] << " " ;
38     cout << endl ;
39   }
40   MESSAGE("Show all 2 :");
41   numberof = myMedArray.getLengthValue() ;
42   for (int i=1; i<=myMedArray.getLeadingValue() ; i++) {
43     const double * node = myMedArray.getColumn(i) ;
44     cout << " - " ;
45     for (int j=0;j<numberof;j++)
46       cout << node[j] << " " ;
47     cout << endl ;
48   }
49   MESSAGE("Show all 3 :");
50   numberof = myMedArray.getLeadingValue() ;
51   for (int i=1; i<=myMedArray.getLengthValue() ; i++) {
52     cout << " - " ;
53     for (int j=1;j<numberof+1;j++)
54       cout << myMedArray.getIJ(i,j) << " " ;
55     cout << endl ;
56   }
57
58   MESSAGE("Show all 0 :");
59   numberof = myMedArray.getLeadingValue() ;
60   int length = myMedArray.getLengthValue() ;
61   const double * NoInterlaceArray = myMedArray.get(MED_NO_INTERLACE) ;
62   for (int i=0; i<length ; i++) {
63     cout << " - " ;
64     for (int j=0;j<numberof;j++)
65       cout << NoInterlaceArray[j*length+i] << " " ;
66     cout << endl ;
67   }
68
69
70   /*
71   cout << "Nombre de lignes : " << myMedArray.getLengthValue() << endl;
72   cout << "Nombre de colonnes : " << myMedArray.getLeadingValue() << endl;
73   cout << "Mode d'écriture en mémoire : " << myMedArray.getMode() << endl;
74   cout << "Valeurs (_valuesDefault) :" << endl;
75
76   for (med_int i=1; i<=myMedArray.getLengthValue(); i++) {
77     for (med_int j=1; j<=myMedArray.getLeadingValue(); j++)
78       cout << i << "  " << j << "    " << myMedArray.getIJ(i,j) << " " << endl;
79   }
80   */
81 }
82
83
84 int main (int argc, char ** argv) {
85 #ifdef _DEBUG_
86   LocalTraceCollector::instance();
87 #endif /* ifdef _DEBUG_*/
88
89   /*
90   if ((argc !=3) && (argc != 4)) {
91     cerr << "Usage : " << argv[0] 
92          << " filename meshname fieldname" << endl << endl;
93     exit(-1);
94   }
95   */
96   const med_int nb_noeuds = 8;
97   const med_int dimension = 3;
98   const medModeSwitch mode = MED_NO_INTERLACE;
99
100
101   MEDARRAY<double> * myMedArray = new MEDARRAY<double>(dimension,nb_noeuds,mode);
102   for (med_int i=1; i<=myMedArray->getLengthValue(); i++) {
103     for (med_int j=1; j<=myMedArray->getLeadingValue(); j++)
104       myMedArray->setIJ(i,j,(double) random());
105   };
106
107   affiche_medarray(* myMedArray);
108   MEDARRAY<double> * myMedArray2 = new MEDARRAY<double>();
109   * myMedArray2 = * myMedArray;
110   //  delete myMedArray;  // si on recopie les tableaux
111   affiche_medarray(* myMedArray2);
112   delete myMedArray;      // si on ne recopie pas les tableaux
113   delete myMedArray2;
114
115   return 0;
116 }