]> SALOME platform Git repositories - modules/med.git/blob - src/MEDMEM/test_MEDMEM_Meshing.cxx
Salome HOME
remove a reference to the $MED_ROOT_DIR in the Makefile.in wich is useless
[modules/med.git] / src / MEDMEM / test_MEDMEM_Meshing.cxx
1 #include "MEDMEM_Meshing.hxx"
2 #include "MEDMEM_Group.hxx"
3 #include "MEDMEM_Field.hxx"
4
5 #ifdef _DEBUG_
6 #include "LocalTraceCollector.hxx"
7 #endif /* ifdef _DEBUG_*/
8
9 using namespace std;
10 using namespace MEDMEM;
11 using namespace MED_EN;
12
13 int main (int argc, char ** argv) {
14
15   if (argc <2) {
16     cerr << "Usage : " << argv[0] 
17          << " filenameRoot" << endl;
18     cerr << "        where filenameRoot is a root filename, the program will produce" << endl;
19     cerr << "        2 files filenameRoot.med and filenameRoot.vtk" << endl << endl;
20     exit(-1);
21   }
22
23 #ifdef _DEBUG_
24   LocalTraceCollector::instance();
25 #endif /* ifdef _DEBUG_*/
26
27   // filename to save the generated MESH
28   string filenameRoot = argv[1] ;
29
30   string filenameMed = filenameRoot+".med";
31   string filenameVtk = filenameRoot+".vtk";
32
33   MESHING myMeshing ;
34   myMeshing.setName("meshing") ;
35
36   // define coordinates
37
38   int SpaceDimension = 3 ;
39   int NumberOfNodes = 19 ;
40   double Coordinates[57] = {
41     0.0, 0.0, 0.0, 
42     0.0, 0.0, 1.0, 
43     2.0, 0.0, 1.0, 
44     0.0, 2.0, 1.0, 
45     -2.0, 0.0, 1.0, 
46     0.0, -2.0, 1.0, 
47     1.0, 1.0, 2.0, 
48     -1.0, 1.0, 2.0, 
49     -1.0, -1.0, 2.0, 
50     1.0, -1.0, 2.0, 
51     1.0, 1.0, 3.0, 
52     -1.0, 1.0, 3.0, 
53     -1.0, -1.0, 3.0, 
54     1.0, -1.0, 3.0, 
55     1.0, 1.0, 4.0, 
56     -1.0, 1.0, 4.0, 
57     -1.0, -1.0, 4.0, 
58     1.0, -1.0, 4.0,
59     0.0, 0.0, 5.0
60   };
61
62   myMeshing.setCoordinates(SpaceDimension,NumberOfNodes,Coordinates,"CARTESIAN",MED_FULL_INTERLACE);
63
64   string Names[3] = { "X","Y","Z" } ;
65   myMeshing.setCoordinatesNames(Names);
66
67   string Units[3] = { "cm","cm","cm" } ;
68   myMeshing.setCoordinatesUnits(Units) ;
69
70   // define conectivities
71
72   // cell part
73   
74   const int NumberOfTypes = 3 ;
75   medGeometryElement Types[NumberOfTypes] = {MED_TETRA4,MED_PYRA5,MED_HEXA8} ;
76   const int NumberOfElements[NumberOfTypes] = {12,2,2} ;
77
78   myMeshing.setNumberOfTypes(NumberOfTypes,MED_CELL);
79   myMeshing.setTypes(Types,MED_CELL);
80   myMeshing.setNumberOfElements(NumberOfElements,MED_CELL);
81
82   const int sizeTetra = 12*4 ;
83   int ConnectivityTetra[sizeTetra]=
84   {
85     1,2,3,6,
86     1,2,4,3,
87     1,2,5,4,
88     1,2,6,5,
89     2,7,4,3,
90     2,8,5,4,
91     2,9,6,5,
92     2,10,3,6,
93     2,7,3,10,
94     2,8,4,7,
95     2,9,5,8,
96     2,10,6,9
97   };
98   
99   myMeshing.setConnectivity(ConnectivityTetra,MED_CELL,MED_TETRA4);
100
101   int ConnectivityPyra[2*5]=
102   {
103     7,8,9,10,2,
104     15,18,17,16,19
105   };
106
107   myMeshing.setConnectivity(ConnectivityPyra,MED_CELL,MED_PYRA5);
108
109   int ConnectivityHexa[2*8]=
110   {
111     11,12,13,14,7,8,9,10,
112     15,16,17,18,11,12,13,14
113   };
114
115   myMeshing.setConnectivity(ConnectivityHexa,MED_CELL,MED_HEXA8);
116
117   // face part
118
119   const int NumberOfFacesTypes = 2 ;
120   medGeometryElement FacesTypes[NumberOfFacesTypes] = {MED_TRIA3,MED_QUAD4} ;
121   const int NumberOfFacesElements[NumberOfFacesTypes] = {4,4} ;
122
123   myMeshing.setNumberOfTypes(NumberOfFacesTypes,MED_FACE);
124   myMeshing.setTypes(FacesTypes,MED_FACE);
125   myMeshing.setNumberOfElements(NumberOfFacesElements,MED_FACE);
126
127   const int sizeTria = 3*4 ;
128   int ConnectivityTria[sizeTria]=
129   {
130     1,4,3,
131     1,5,4,
132     1,6,5,
133     1,3,6
134   };
135   
136   myMeshing.setConnectivity(ConnectivityTria,MED_FACE,MED_TRIA3);
137
138   int ConnectivityQua[4*4]=
139   {
140     7,8,9,10,
141     11,12,13,14,
142     11,7,8,12,
143     12,8,9,13
144   };
145
146   myMeshing.setConnectivity(ConnectivityQua,MED_FACE,MED_QUAD4);
147
148   // edge part
149
150   // not yet implemented : if set, results are unpredictable.
151
152   // Some groups :
153
154   // Node :
155   {
156     GROUP myGroup ;
157     myGroup.setName("SomeNodes");
158     myGroup.setMesh(&myMeshing);
159     myGroup.setEntity(MED_NODE);
160     myGroup.setNumberOfGeometricType(1);
161     medGeometryElement myTypes[1] = {MED_NONE};
162     myGroup.setGeometricType(myTypes);
163     const int myNumberOfElements[1] = {4} ;
164     myGroup.setNumberOfElements(myNumberOfElements);
165     const int index[1+1] = {1,5} ;
166     const int value[4]= { 1,4,5,7} ;
167     myGroup.setNumber(index,value);
168     
169     myMeshing.addGroup(myGroup);
170   }
171   {
172     GROUP myGroup ;
173     myGroup.setName("OtherNodes");
174     myGroup.setMesh(&myMeshing);
175     myGroup.setEntity(MED_NODE);
176     myGroup.setNumberOfGeometricType(1);
177     medGeometryElement myTypes[1] = {MED_NONE};
178     myGroup.setGeometricType(myTypes);
179     const int myNumberOfElements[1] = {3} ;
180     myGroup.setNumberOfElements(myNumberOfElements);
181     const int index[1+1] = {1,4} ;
182     const int value[3]= { 2,3,6} ;
183     myGroup.setNumber(index,value);
184     
185     myMeshing.addGroup(myGroup);
186   }
187
188   // Cell :
189   {
190     GROUP myGroup ;
191     myGroup.setName("SomeCells");
192     myGroup.setMesh(&myMeshing);
193     myGroup.setEntity(MED_CELL);
194     myGroup.setNumberOfGeometricType(3);
195     medGeometryElement myTypes[3] = {MED_TETRA4,MED_PYRA5,MED_HEXA8};
196     myGroup.setGeometricType(myTypes);
197     const int myNumberOfElements[3] = {4,1,2} ;
198     myGroup.setNumberOfElements(myNumberOfElements);
199     const int index[3+1] = {1,5,6,8} ;
200     const int value[4+1+2]=
201     {
202       2,7,8,12,
203       13,
204       15,16
205     };
206     myGroup.setNumber(index,value);
207     
208     myMeshing.addGroup(myGroup);
209   }
210   {
211     GROUP myGroup ;
212     myGroup.setName("OtherCells");
213     myGroup.setMesh(&myMeshing);
214     myGroup.setEntity(MED_CELL);
215     myGroup.setNumberOfGeometricType(2);
216     medGeometryElement myTypes[] = {MED_TETRA4,MED_PYRA5};
217     myGroup.setGeometricType(myTypes);
218     const int myNumberOfElements[] = {4,1} ;
219     myGroup.setNumberOfElements(myNumberOfElements);
220     const int index[2+1] = {1,5,6} ;
221     const int value[4+1]=
222     {
223       3,4,5,9,
224       14
225     };
226     myGroup.setNumber(index,value);
227     
228     myMeshing.addGroup(myGroup);
229   }
230
231   // Face :
232   {
233     GROUP myGroup ;
234     myGroup.setName("SomeFaces");
235     myGroup.setMesh(&myMeshing);
236     myGroup.setEntity(MED_FACE);
237     myGroup.setNumberOfGeometricType(2);
238     medGeometryElement myTypes[2] = {MED_TRIA3,MED_QUAD4};
239     myGroup.setGeometricType(myTypes);
240     const int myNumberOfElements[2] = {2,3} ;
241     myGroup.setNumberOfElements(myNumberOfElements);
242     const int index[2+1] = {1,3,6} ;
243     const int value[2+3]=
244     {
245       2,4,
246       5,6,8
247     } ;
248     myGroup.setNumber(index,value);
249     
250     myMeshing.addGroup(myGroup);
251   }
252   {
253     GROUP myGroup ;
254     myGroup.setName("OtherFaces");
255     myGroup.setMesh(&myMeshing);
256     myGroup.setEntity(MED_FACE);
257     myGroup.setNumberOfGeometricType(1);
258     medGeometryElement myTypes[1] = {MED_TRIA3};
259     myGroup.setGeometricType(myTypes);
260     const int myNumberOfElements[1] = {2} ;
261     myGroup.setNumberOfElements(myNumberOfElements);
262     const int index[1+1] = {1,3} ;
263     const int value[2]=
264     {
265       1,3
266     } ;
267     myGroup.setNumber(index,value);
268     
269     myMeshing.addGroup(myGroup);
270   }
271
272   // all rigtht, we save it !
273
274   int idMed = myMeshing.addDriver(MED_DRIVER,filenameMed,myMeshing.getName());
275   myMeshing.write(idMed) ;
276
277   int idVtk = myMeshing.addDriver(VTK_DRIVER,filenameVtk,myMeshing.getName());
278   myMeshing.write(idVtk) ;
279
280   // we build now 8 fields : 4 fields double (integer) :
281   //                         2 fields on nodes (cells) :
282   //                         1 scalar (vector)
283
284   SUPPORT * supportOnNodes = new SUPPORT(&myMeshing,"On_All_Nodes",MED_NODE);
285   int numberOfNodes = supportOnNodes->getNumberOfElements(MED_ALL_ELEMENTS);
286
287   SUPPORT * supportOnCells = new SUPPORT(&myMeshing,"On_All_Cells",MED_CELL);
288   int numberOfCells = supportOnCells->getNumberOfElements(MED_ALL_ELEMENTS);
289
290   FIELD<double> * fieldDoubleScalarOnNodes = new FIELD<double>(supportOnNodes,1);
291   fieldDoubleScalarOnNodes->setName("fieldScalarDoubleNode");
292   fieldDoubleScalarOnNodes->setIterationNumber(-1);
293   fieldDoubleScalarOnNodes->setOrderNumber(-1);
294   fieldDoubleScalarOnNodes->setTime(0.0);
295
296   fieldDoubleScalarOnNodes->setComponentName(1,"Vx");
297   fieldDoubleScalarOnNodes->setComponentDescription(1,"comp1");
298   fieldDoubleScalarOnNodes->setMEDComponentUnit(1,"unit1");
299
300   fieldDoubleScalarOnNodes->setValueType(MED_REEL64);
301
302   FIELD<double> * fieldDoubleVectorOnNodes = new FIELD<double>(supportOnNodes,SpaceDimension);
303   fieldDoubleVectorOnNodes->setName("fieldVectorDoubleNode");
304   fieldDoubleVectorOnNodes->setIterationNumber(-1);
305   fieldDoubleVectorOnNodes->setOrderNumber(-1);
306   fieldDoubleVectorOnNodes->setTime(0.0);
307
308   fieldDoubleVectorOnNodes->setComponentName(1,"Vx");
309   fieldDoubleVectorOnNodes->setComponentDescription(1,"comp1");
310   fieldDoubleVectorOnNodes->setMEDComponentUnit(1,"unit1");
311   fieldDoubleVectorOnNodes->setComponentName(2,"Vy");
312   fieldDoubleVectorOnNodes->setComponentDescription(2,"comp2");
313   fieldDoubleVectorOnNodes->setMEDComponentUnit(2,"unit2");
314   fieldDoubleVectorOnNodes->setComponentName(3,"Vz");
315   fieldDoubleVectorOnNodes->setComponentDescription(3,"comp3");
316   fieldDoubleVectorOnNodes->setMEDComponentUnit(3,"unit3");
317
318   fieldDoubleVectorOnNodes->setValueType(MED_REEL64);
319
320   FIELD<double> * fieldDoubleScalarOnCells = new FIELD<double>(supportOnCells,1);
321   fieldDoubleScalarOnCells->setName("fieldScalarDoubleCell");
322   fieldDoubleScalarOnCells->setIterationNumber(-1);
323   fieldDoubleScalarOnCells->setOrderNumber(-1);
324   fieldDoubleScalarOnCells->setTime(0.0);
325
326   fieldDoubleScalarOnCells->setComponentName(1,"Vx");
327   fieldDoubleScalarOnCells->setComponentDescription(1,"comp1");
328   fieldDoubleScalarOnCells->setMEDComponentUnit(1,"unit1");
329
330   fieldDoubleScalarOnCells->setValueType(MED_REEL64);
331
332   FIELD<double> * fieldDoubleVectorOnCells = new FIELD<double>(supportOnCells,SpaceDimension);
333   fieldDoubleVectorOnCells->setName("fieldVectorrDoubleCell");
334   fieldDoubleVectorOnCells->setIterationNumber(-1);
335   fieldDoubleVectorOnCells->setOrderNumber(-1);
336   fieldDoubleVectorOnCells->setTime(0.0);
337
338   fieldDoubleVectorOnCells->setComponentName(1,"Vx");
339   fieldDoubleVectorOnCells->setComponentDescription(1,"comp1");
340   fieldDoubleVectorOnCells->setMEDComponentUnit(1,"unit1");
341   fieldDoubleVectorOnCells->setComponentName(2,"Vy");
342   fieldDoubleVectorOnCells->setComponentDescription(2,"comp2");
343   fieldDoubleVectorOnCells->setMEDComponentUnit(2,"unit2");
344   fieldDoubleVectorOnCells->setComponentName(3,"Vz");
345   fieldDoubleVectorOnCells->setComponentDescription(3,"comp3");
346   fieldDoubleVectorOnCells->setMEDComponentUnit(3,"unit3");
347
348   fieldDoubleVectorOnCells->setValueType(MED_REEL64);
349
350   FIELD<int> * fieldIntScalarOnNodes = new FIELD<int>(supportOnNodes,1);
351   fieldIntScalarOnNodes->setName("fieldScalarIntNode");
352   fieldIntScalarOnNodes->setIterationNumber(-1);
353   fieldIntScalarOnNodes->setOrderNumber(-1);
354   fieldIntScalarOnNodes->setTime(0.0);
355
356   fieldIntScalarOnNodes->setComponentName(1,"Vx");
357   fieldIntScalarOnNodes->setComponentDescription(1,"comp1");
358   fieldIntScalarOnNodes->setMEDComponentUnit(1,"unit1");
359
360   fieldIntScalarOnNodes->setValueType(MED_INT32);
361
362   FIELD<int> * fieldIntVectorOnNodes = new FIELD<int>(supportOnNodes,SpaceDimension);
363   fieldIntVectorOnNodes->setName("fieldVectorIntNode");
364   fieldIntVectorOnNodes->setIterationNumber(-1);
365   fieldIntVectorOnNodes->setOrderNumber(-1);
366   fieldIntVectorOnNodes->setTime(0.0);
367
368   fieldIntVectorOnNodes->setComponentName(1,"Vx");
369   fieldIntVectorOnNodes->setComponentDescription(1,"comp1");
370   fieldIntVectorOnNodes->setMEDComponentUnit(1,"unit1");
371   fieldIntVectorOnNodes->setComponentName(2,"Vy");
372   fieldIntVectorOnNodes->setComponentDescription(2,"comp2");
373   fieldIntVectorOnNodes->setMEDComponentUnit(2,"unit2");
374   fieldIntVectorOnNodes->setComponentName(3,"Vz");
375   fieldIntVectorOnNodes->setComponentDescription(3,"comp3");
376   fieldIntVectorOnNodes->setMEDComponentUnit(3,"unit3");
377
378   fieldIntVectorOnNodes->setValueType(MED_INT32);
379
380   FIELD<int> * fieldIntScalarOnCells = new FIELD<int>(supportOnCells,1);
381   fieldIntScalarOnCells->setName("fieldScalarIntCell");
382   fieldIntScalarOnCells->setIterationNumber(-1);
383   fieldIntScalarOnCells->setOrderNumber(-1);
384   fieldIntScalarOnCells->setTime(0.0);
385
386   fieldIntScalarOnCells->setComponentName(1,"Vx");
387   fieldIntScalarOnCells->setComponentDescription(1,"comp1");
388   fieldIntScalarOnCells->setMEDComponentUnit(1,"unit1");
389
390   fieldIntScalarOnCells->setValueType(MED_INT32);
391
392   FIELD<int> * fieldIntVectorOnCells = new FIELD<int>(supportOnCells,SpaceDimension);
393   fieldIntVectorOnCells->setName("fieldVectorrIntCell");
394   fieldIntVectorOnCells->setIterationNumber(-1);
395   fieldIntVectorOnCells->setOrderNumber(-1);
396   fieldIntVectorOnCells->setTime(0.0);
397
398   fieldIntVectorOnCells->setComponentName(1,"Vx");
399   fieldIntVectorOnCells->setComponentDescription(1,"comp1");
400   fieldIntVectorOnCells->setMEDComponentUnit(1,"unit1");
401   fieldIntVectorOnCells->setComponentName(2,"Vy");
402   fieldIntVectorOnCells->setComponentDescription(2,"comp2");
403   fieldIntVectorOnCells->setMEDComponentUnit(2,"unit2");
404   fieldIntVectorOnCells->setComponentName(3,"Vz");
405   fieldIntVectorOnCells->setComponentDescription(3,"comp3");
406   fieldIntVectorOnCells->setMEDComponentUnit(3,"unit3");
407
408   fieldIntVectorOnCells->setValueType(MED_INT32);
409
410   for (int i = 0; i<numberOfNodes; i++)
411     {
412       double valueDbl1, valueDbl2, valueDbl3;
413       int valueInt1, valueInt2, valueInt3;
414       valueInt1 = i+1;
415       valueInt2 = i+2;
416       valueInt3 = i+3;
417       valueDbl1 = valueInt1*0.1;
418       valueDbl2 = valueInt2*0.1;
419       valueDbl3 = valueInt3*0.1;
420       fieldDoubleScalarOnNodes->setValueIJ(i+1,1,valueDbl1);
421
422       fieldIntScalarOnNodes->setValueIJ(i+1,1,valueInt1);
423
424       fieldDoubleVectorOnNodes->setValueIJ(i+1,1,valueDbl1);
425       fieldDoubleVectorOnNodes->setValueIJ(i+1,2,valueDbl2);
426       fieldDoubleVectorOnNodes->setValueIJ(i+1,3,valueDbl3);
427
428       fieldIntVectorOnNodes->setValueIJ(i+1,1,valueInt1);
429       fieldIntVectorOnNodes->setValueIJ(i+1,2,valueInt2);
430       fieldIntVectorOnNodes->setValueIJ(i+1,3,valueInt3);
431     }
432
433   for (int i = 0; i<numberOfCells; i++)
434     {
435       double valueDbl1, valueDbl2, valueDbl3;
436       int valueInt1, valueInt2, valueInt3;
437       valueInt1 = i+1;
438       valueInt2 = i+2;
439       valueInt3 = i+3;
440       valueDbl1 = valueInt1*0.1;
441       valueDbl2 = valueInt2*0.1;
442       valueDbl3 = valueInt3*0.1;
443       fieldDoubleScalarOnCells->setValueIJ(i+1,1,valueDbl1);
444
445       fieldIntScalarOnCells->setValueIJ(i+1,1,valueInt1);
446
447       fieldDoubleVectorOnCells->setValueIJ(i+1,1,valueDbl1);
448       fieldDoubleVectorOnCells->setValueIJ(i+1,2,valueDbl2);
449       fieldDoubleVectorOnCells->setValueIJ(i+1,3,valueDbl3);
450
451       fieldIntVectorOnCells->setValueIJ(i+1,1,valueInt1);
452       fieldIntVectorOnCells->setValueIJ(i+1,2,valueInt2);
453       fieldIntVectorOnCells->setValueIJ(i+1,3,valueInt3);
454     }
455
456   idMed = fieldDoubleScalarOnNodes->addDriver(MED_DRIVER,filenameMed,fieldDoubleScalarOnNodes->getName());
457   fieldDoubleScalarOnNodes->write(idMed) ;
458
459   idMed = fieldIntScalarOnNodes->addDriver(MED_DRIVER,filenameMed,fieldIntScalarOnNodes->getName());
460   fieldIntScalarOnNodes->write(idMed) ;
461
462   idMed = fieldDoubleVectorOnNodes->addDriver(MED_DRIVER,filenameMed,fieldDoubleVectorOnNodes->getName());
463   fieldDoubleVectorOnNodes->write(idMed) ;
464
465   idMed = fieldIntVectorOnNodes->addDriver(MED_DRIVER,filenameMed,fieldIntVectorOnNodes->getName());
466   fieldIntVectorOnNodes->write(idMed) ;
467
468   idMed = fieldDoubleScalarOnCells->addDriver(MED_DRIVER,filenameMed,fieldDoubleScalarOnCells->getName());
469   fieldDoubleScalarOnCells->write(idMed) ;
470
471   idMed = fieldIntScalarOnCells->addDriver(MED_DRIVER,filenameMed,fieldIntScalarOnCells->getName());
472   fieldIntScalarOnCells->write(idMed) ;
473
474   idMed = fieldDoubleVectorOnCells->addDriver(MED_DRIVER,filenameMed,fieldDoubleVectorOnCells->getName());
475   fieldDoubleVectorOnCells->write(idMed) ;
476
477   idMed = fieldIntVectorOnCells->addDriver(MED_DRIVER,filenameMed,fieldIntVectorOnCells->getName());
478   fieldIntVectorOnCells->write(idMed) ;
479
480   idVtk = fieldDoubleScalarOnNodes->addDriver(VTK_DRIVER,filenameVtk,fieldDoubleScalarOnNodes->getName());
481   fieldDoubleScalarOnNodes->writeAppend(idVtk) ;
482
483   idVtk = fieldIntScalarOnNodes->addDriver(VTK_DRIVER,filenameVtk,fieldIntScalarOnNodes->getName());
484   fieldIntScalarOnNodes->writeAppend(idVtk) ;
485
486   idVtk = fieldDoubleVectorOnNodes->addDriver(VTK_DRIVER,filenameVtk,fieldDoubleVectorOnNodes->getName());
487   fieldDoubleVectorOnNodes->writeAppend(idVtk) ;
488
489   idVtk = fieldIntVectorOnNodes->addDriver(VTK_DRIVER,filenameVtk,fieldIntVectorOnNodes->getName());
490   fieldIntVectorOnNodes->writeAppend(idVtk) ;
491
492   idVtk = fieldDoubleScalarOnCells->addDriver(VTK_DRIVER,filenameVtk,fieldDoubleScalarOnCells->getName());
493   fieldDoubleScalarOnCells->writeAppend(idVtk) ;
494
495   idVtk = fieldIntScalarOnCells->addDriver(VTK_DRIVER,filenameVtk,fieldIntScalarOnCells->getName());
496   fieldIntScalarOnCells->writeAppend(idVtk) ;
497
498   idVtk = fieldDoubleVectorOnCells->addDriver(VTK_DRIVER,filenameVtk,fieldDoubleVectorOnCells->getName());
499   fieldDoubleVectorOnCells->writeAppend(idVtk) ;
500
501   idVtk = fieldIntVectorOnCells->addDriver(VTK_DRIVER,filenameVtk,fieldIntVectorOnCells->getName());
502   fieldIntVectorOnCells->writeAppend(idVtk) ;
503
504   delete fieldDoubleScalarOnNodes;
505   delete fieldIntScalarOnNodes;
506   delete fieldDoubleVectorOnNodes;
507   delete fieldIntVectorOnNodes;
508   delete fieldDoubleScalarOnCells;
509   delete fieldIntScalarOnCells;
510   delete fieldDoubleVectorOnCells;
511   delete fieldIntVectorOnCells;
512
513   delete supportOnNodes;
514   delete supportOnCells;
515 }