1 // Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE
3 // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
6 // This library is free software; you can redistribute it and/or
7 // modify it under the terms of the GNU Lesser General Public
8 // License as published by the Free Software Foundation; either
9 // version 2.1 of the License.
11 // This library is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 // Lesser General Public License for more details.
16 // You should have received a copy of the GNU Lesser General Public
17 // License along with this library; if not, write to the Free Software
18 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
23 //#define protected public
24 //#define private public
26 #include "MEDMEM_Meshing.hxx"
27 #include "MEDMEM_Group.hxx"
28 #include "MEDMEM_Field.hxx"
31 #define access _access
36 using namespace MEDMEM;
37 using namespace MED_EN;
38 using namespace DRIVERFACTORY;
40 int main (int argc, char ** argv)
44 cerr << "Usage : " << argv[0]
45 << " filenameRoot" << endl;
46 cerr << " where filenameRoot is a root filename, the program will produce" << endl;
47 cerr << " 3 files filenameRoot21.med filenameRoot22.med and filenameRoot.vtk" << endl << endl;
54 // filename to save the generated MESH
55 if ( getenv("TMP") && access(getenv("TMP"),W_OK)==0 )
56 filenameRoot=getenv("TMP");
57 else if (getenv("TMPDIR") && access(getenv("TMPDIR"),W_OK)==0 )
58 filenameRoot=getenv("TMPDIR");
61 filenameRoot += "/test_MEDMEM_Meshing" ;
66 string filenameMed21 = filenameRoot+"_V21.med";
67 string filenameMed22 = filenameRoot+"_V22.med";
68 string filenameVtk = filenameRoot+".vtk";
70 MESHING *myMeshing=new MESHING;
71 myMeshing->setName("meshing") ;
75 int SpaceDimension = 3 ;
76 int NumberOfNodes = 19 ;
77 double Coordinates[57] =
100 myMeshing->setCoordinates(SpaceDimension,NumberOfNodes,Coordinates,"CARTESIAN",MED_FULL_INTERLACE);
106 myMeshing->setCoordinatesNames(Names);
112 myMeshing->setCoordinatesUnits(Units) ;
114 // define conectivities
118 const int NumberOfTypes = 3 ;
119 medGeometryElement Types[NumberOfTypes] =
121 MED_TETRA4,MED_PYRA5,MED_HEXA8
123 const int NumberOfElements[NumberOfTypes] =
128 myMeshing->setNumberOfTypes(NumberOfTypes,MED_CELL);
129 myMeshing->setTypes(Types,MED_CELL);
130 myMeshing->setNumberOfElements(NumberOfElements,MED_CELL);
132 const int sizeTetra = 12*4 ;
133 int ConnectivityTetra[sizeTetra]=
149 myMeshing->setConnectivity(MED_CELL,MED_TETRA4,ConnectivityTetra);
151 int ConnectivityPyra[2*5]=
157 myMeshing->setConnectivity(MED_CELL,MED_PYRA5,ConnectivityPyra);
159 int ConnectivityHexa[2*8]=
161 11,12,13,14,7,8,9,10,
162 15,16,17,18,11,12,13,14
165 myMeshing->setConnectivity(MED_CELL,MED_HEXA8,ConnectivityHexa);
169 const int NumberOfFacesTypes = 2 ;
170 medGeometryElement FacesTypes[NumberOfFacesTypes] =
174 const int NumberOfFacesElements[NumberOfFacesTypes] =
179 myMeshing->setNumberOfTypes(NumberOfFacesTypes,MED_FACE);
180 myMeshing->setTypes(FacesTypes,MED_FACE);
181 myMeshing->setNumberOfElements(NumberOfFacesElements,MED_FACE);
183 const int sizeTria = 3*4 ;
184 int ConnectivityTria[sizeTria]=
191 myMeshing->setConnectivity(MED_FACE,MED_TRIA3,ConnectivityTria);
193 int ConnectivityQua[4*4]=
201 myMeshing->setConnectivity(MED_FACE,MED_QUAD4,ConnectivityQua);
205 // not yet implemented : if set, results are unpredictable.
211 GROUP *partialGroupOnNodes=new GROUP;
213 partialGroupOnNodes->setName("SomeNodes");
214 partialGroupOnNodes->setMesh(myMeshing);
215 partialGroupOnNodes->setEntity(MED_NODE);
216 partialGroupOnNodes->setNumberOfGeometricType(1);
217 medGeometryElement myTypes[1] =
221 partialGroupOnNodes->setGeometricType(myTypes);
222 const int myNumberOfElements[1] =
226 partialGroupOnNodes->setNumberOfElements(myNumberOfElements);
227 const int index[1+1] =
235 partialGroupOnNodes->setNumber(index,value);
237 GROUP *partialGroupOnNodes2=new GROUP;
239 partialGroupOnNodes2->setName("OtherNodes");
240 partialGroupOnNodes2->setMesh(myMeshing);
241 partialGroupOnNodes2->setEntity(MED_NODE);
242 partialGroupOnNodes2->setNumberOfGeometricType(1);
243 medGeometryElement myTypes[1] =
247 partialGroupOnNodes2->setGeometricType(myTypes);
248 const int myNumberOfElements[1] =
252 partialGroupOnNodes2->setNumberOfElements(myNumberOfElements);
253 const int index[1+1] =
261 partialGroupOnNodes2->setNumber(index,value);
263 myMeshing->addGroup(*partialGroupOnNodes2);
268 GROUP *partialGroupOnCells=new GROUP;
270 partialGroupOnCells->setName("SomeCells");
271 partialGroupOnCells->setMesh(myMeshing);
272 partialGroupOnCells->setEntity(MED_CELL);
273 partialGroupOnCells->setNumberOfGeometricType(3);
274 medGeometryElement myTypes[3] =
276 MED_TETRA4,MED_PYRA5,MED_HEXA8
278 partialGroupOnCells->setGeometricType(myTypes);
279 const int myNumberOfElements[3] =
283 partialGroupOnCells->setNumberOfElements(myNumberOfElements);
284 const int index[3+1] =
288 const int value[4+1+2]=
294 partialGroupOnCells->setNumber(index,value);
296 myMeshing->addGroup(*partialGroupOnCells);
299 GROUP *partialGroupOnCells2=new GROUP;
301 partialGroupOnCells2->setName("OtherCells");
302 partialGroupOnCells2->setMesh(myMeshing);
303 partialGroupOnCells2->setEntity(MED_CELL);
304 partialGroupOnCells2->setNumberOfGeometricType(2);
305 medGeometryElement myTypes[] =
309 partialGroupOnCells2->setGeometricType(myTypes);
310 const int myNumberOfElements[] =
314 partialGroupOnCells2->setNumberOfElements(myNumberOfElements);
315 const int index[2+1] =
319 const int value[4+1]=
324 partialGroupOnCells2->setNumber(index,value);
326 myMeshing->addGroup(*partialGroupOnCells2);
330 GROUP *partialGroupOnFaces=new GROUP;
332 partialGroupOnFaces->setName("SomeFaces");
333 partialGroupOnFaces->setMesh(myMeshing);
334 partialGroupOnFaces->setEntity(MED_FACE);
335 partialGroupOnFaces->setNumberOfGeometricType(2);
336 medGeometryElement myTypes[2] =
340 partialGroupOnFaces->setGeometricType(myTypes);
341 const int myNumberOfElements[2] =
345 partialGroupOnFaces->setNumberOfElements(myNumberOfElements);
346 const int index[2+1] =
350 const int value[2+3]=
355 partialGroupOnFaces->setNumber(index,value);
357 myMeshing->addGroup(*partialGroupOnFaces);
360 GROUP *partialGroupOnFaces2=new GROUP;
362 partialGroupOnFaces2->setName("OtherFaces");
363 partialGroupOnFaces2->setMesh(myMeshing);
364 partialGroupOnFaces2->setEntity(MED_FACE);
365 medGeometryElement myTypes[1] =
369 int myNumberOfElements[1] =
377 // partialGroupOnFaces2->setNumber(index,value);
378 partialGroupOnFaces2->setpartial("description",1,2,myTypes,myNumberOfElements,value);
380 myMeshing->addGroup(*partialGroupOnFaces2);
382 // all right, we save it in Med 2.1 2.2 and vtk !
384 int idMed22 = myMeshing->addDriver(MED_DRIVER,filenameMed22,myMeshing->getName());
385 myMeshing->write(idMed22) ;
387 int idVtk = myMeshing->addDriver(VTK_DRIVER,filenameVtk,myMeshing->getName());
388 myMeshing->write(idVtk) ;
390 // we build now 8 fields : 4 fields double (integer) :
391 // 2 fields on nodes (cells) :
394 const SUPPORT * supportOnNodes = myMeshing->getSupportOnAll(MED_NODE);
395 int numberOfNodes = supportOnNodes->getNumberOfElements(MED_ALL_ELEMENTS);
397 const SUPPORT * supportOnCells = myMeshing->getSupportOnAll(MED_CELL);
398 myMeshing->removeReference();
399 int numberOfCells = supportOnCells->getNumberOfElements(MED_ALL_ELEMENTS);
401 FIELD<double> * fieldDoubleScalarOnNodes = new FIELD<double>(supportOnNodes,1);
402 fieldDoubleScalarOnNodes->setName("fieldScalarDoubleNode");
403 fieldDoubleScalarOnNodes->setIterationNumber(-1);
404 fieldDoubleScalarOnNodes->setOrderNumber(-1);
405 fieldDoubleScalarOnNodes->setTime(0.0);
407 fieldDoubleScalarOnNodes->setComponentName(1,"Vx");
408 fieldDoubleScalarOnNodes->setComponentDescription(1,"comp1");
409 fieldDoubleScalarOnNodes->setMEDComponentUnit(1,"unit1");
410 FIELD<double>* fieldDoubleScalarOnPartialNodes = new FIELD<double>(partialGroupOnNodes,1);
411 fieldDoubleScalarOnPartialNodes->setName("fieldScalarDoublePartialNodes");
412 fieldDoubleScalarOnPartialNodes->setIterationNumber(-1);
413 fieldDoubleScalarOnPartialNodes->setOrderNumber(-1);
414 fieldDoubleScalarOnPartialNodes->setTime(0.0);
415 fieldDoubleScalarOnPartialNodes->setComponentName(1,"Vx");
416 fieldDoubleScalarOnPartialNodes->setComponentDescription(1,"comp1");
417 fieldDoubleScalarOnPartialNodes->setMEDComponentUnit(1,"unit1");
420 FIELD<double> * fieldDoubleVectorOnNodes = new FIELD<double>(supportOnNodes,SpaceDimension);
421 fieldDoubleVectorOnNodes->setName("fieldVectorDoubleNode");
422 fieldDoubleVectorOnNodes->setIterationNumber(-1);
423 fieldDoubleVectorOnNodes->setOrderNumber(-1);
424 fieldDoubleVectorOnNodes->setTime(0.0);
426 fieldDoubleVectorOnNodes->setComponentName(1,"Vx");
427 fieldDoubleVectorOnNodes->setComponentDescription(1,"comp1");
428 fieldDoubleVectorOnNodes->setMEDComponentUnit(1,"unit1");
429 fieldDoubleVectorOnNodes->setComponentName(2,"Vy");
430 fieldDoubleVectorOnNodes->setComponentDescription(2,"comp2");
431 fieldDoubleVectorOnNodes->setMEDComponentUnit(2,"unit2");
432 fieldDoubleVectorOnNodes->setComponentName(3,"Vz");
433 fieldDoubleVectorOnNodes->setComponentDescription(3,"comp3");
434 fieldDoubleVectorOnNodes->setMEDComponentUnit(3,"unit3");
436 FIELD<double> * fieldDoubleScalarOnCells = new FIELD<double>(supportOnCells,1);
437 fieldDoubleScalarOnCells->setName("fieldScalarDoubleCell");
438 fieldDoubleScalarOnCells->setIterationNumber(-1);
439 fieldDoubleScalarOnCells->setOrderNumber(-1);
440 fieldDoubleScalarOnCells->setTime(0.0);
442 fieldDoubleScalarOnCells->setComponentName(1,"Vx");
443 fieldDoubleScalarOnCells->setComponentDescription(1,"comp1");
444 fieldDoubleScalarOnCells->setMEDComponentUnit(1,"unit1");
447 FIELD<double> * fieldDoubleScalarOnPartialCells = new FIELD<double>(partialGroupOnCells,1);
448 fieldDoubleScalarOnPartialCells->setName("fieldScalarDoublePartialCell");
449 fieldDoubleScalarOnPartialCells->setIterationNumber(-1);
450 fieldDoubleScalarOnPartialCells->setOrderNumber(-1);
451 fieldDoubleScalarOnPartialCells->setTime(0.0);
453 fieldDoubleScalarOnPartialCells->setComponentName(1,"Vx");
454 fieldDoubleScalarOnPartialCells->setComponentDescription(1,"comp1");
455 fieldDoubleScalarOnPartialCells->setMEDComponentUnit(1,"unit1");
457 FIELD<double> * fieldDoubleScalarOnPartialFaces = new FIELD<double>(partialGroupOnFaces,1);
458 fieldDoubleScalarOnPartialFaces->setName("fieldScalarDoublePartialFace");
459 fieldDoubleScalarOnPartialFaces->setIterationNumber(-1);
460 fieldDoubleScalarOnPartialFaces->setOrderNumber(-1);
461 fieldDoubleScalarOnPartialFaces->setTime(0.0);
462 fieldDoubleScalarOnPartialFaces->setComponentName(1,"Vx");
463 fieldDoubleScalarOnPartialFaces->setComponentDescription(1,"comp1");
464 fieldDoubleScalarOnPartialFaces->setMEDComponentUnit(1,"unit1");
466 FIELD<double> * fieldDoubleVectorOnPartialFaces = new FIELD<double>(partialGroupOnFaces2,2);
467 fieldDoubleVectorOnPartialFaces->setName("fieldVectorDoublePartialFace");
468 fieldDoubleVectorOnPartialFaces->setIterationNumber(-1);
469 fieldDoubleVectorOnPartialFaces->setOrderNumber(-1);
470 fieldDoubleVectorOnPartialFaces->setTime(0.0);
471 fieldDoubleVectorOnPartialFaces->setComponentName(1,"Vx");
472 fieldDoubleVectorOnPartialFaces->setComponentName(2,"Vy");
474 fieldDoubleVectorOnPartialFaces->setComponentDescription(1,"comp1");
475 fieldDoubleVectorOnPartialFaces->setComponentDescription(2,"comp2");
477 fieldDoubleVectorOnPartialFaces->setMEDComponentUnit(1,"unit1");
478 fieldDoubleVectorOnPartialFaces->setMEDComponentUnit(2,"unit2");
481 FIELD<double> * fieldDoubleVectorOnCells = new FIELD<double>(supportOnCells,SpaceDimension);
482 fieldDoubleVectorOnCells->setName("fieldVectorrDoubleCell");
483 fieldDoubleVectorOnCells->setIterationNumber(-1);
484 fieldDoubleVectorOnCells->setOrderNumber(-1);
485 fieldDoubleVectorOnCells->setTime(0.0);
487 fieldDoubleVectorOnCells->setComponentName(1,"Vx");
488 fieldDoubleVectorOnCells->setComponentDescription(1,"comp1");
489 fieldDoubleVectorOnCells->setMEDComponentUnit(1,"unit1");
490 fieldDoubleVectorOnCells->setComponentName(2,"Vy");
491 fieldDoubleVectorOnCells->setComponentDescription(2,"comp2");
492 fieldDoubleVectorOnCells->setMEDComponentUnit(2,"unit2");
493 fieldDoubleVectorOnCells->setComponentName(3,"Vz");
494 fieldDoubleVectorOnCells->setComponentDescription(3,"comp3");
495 fieldDoubleVectorOnCells->setMEDComponentUnit(3,"unit3");
497 FIELD<int> * fieldIntScalarOnNodes = new FIELD<int>(supportOnNodes,1);
498 fieldIntScalarOnNodes->setName("fieldScalarIntNode");
499 fieldIntScalarOnNodes->setIterationNumber(-1);
500 fieldIntScalarOnNodes->setOrderNumber(-1);
501 fieldIntScalarOnNodes->setTime(0.0);
503 fieldIntScalarOnNodes->setComponentName(1,"Vx");
504 fieldIntScalarOnNodes->setComponentDescription(1,"comp1");
505 fieldIntScalarOnNodes->setMEDComponentUnit(1,"unit1");
507 FIELD<int> * fieldIntVectorOnNodes = new FIELD<int>(supportOnNodes,SpaceDimension);
508 fieldIntVectorOnNodes->setName("fieldVectorIntNode");
509 fieldIntVectorOnNodes->setIterationNumber(-1);
510 fieldIntVectorOnNodes->setOrderNumber(-1);
511 fieldIntVectorOnNodes->setTime(0.0);
513 fieldIntVectorOnNodes->setComponentName(1,"Vx");
514 fieldIntVectorOnNodes->setComponentDescription(1,"comp1");
515 fieldIntVectorOnNodes->setMEDComponentUnit(1,"unit1");
516 fieldIntVectorOnNodes->setComponentName(2,"Vy");
517 fieldIntVectorOnNodes->setComponentDescription(2,"comp2");
518 fieldIntVectorOnNodes->setMEDComponentUnit(2,"unit2");
519 fieldIntVectorOnNodes->setComponentName(3,"Vz");
520 fieldIntVectorOnNodes->setComponentDescription(3,"comp3");
521 fieldIntVectorOnNodes->setMEDComponentUnit(3,"unit3");
523 FIELD<int> * fieldIntScalarOnCells = new FIELD<int>(supportOnCells,1);
524 fieldIntScalarOnCells->setName("fieldScalarIntCell");
525 fieldIntScalarOnCells->setIterationNumber(-1);
526 fieldIntScalarOnCells->setOrderNumber(-1);
527 fieldIntScalarOnCells->setTime(0.0);
529 fieldIntScalarOnCells->setComponentName(1,"Vx");
530 fieldIntScalarOnCells->setComponentDescription(1,"comp1");
531 fieldIntScalarOnCells->setMEDComponentUnit(1,"unit1");
533 FIELD<int> * fieldIntVectorOnCells = new FIELD<int>(supportOnCells,SpaceDimension);
534 fieldIntVectorOnCells->setName("fieldVectorrIntCell");
535 fieldIntVectorOnCells->setIterationNumber(-1);
536 fieldIntVectorOnCells->setOrderNumber(-1);
537 fieldIntVectorOnCells->setTime(0.0);
539 fieldIntVectorOnCells->setComponentName(1,"Vx");
540 fieldIntVectorOnCells->setComponentDescription(1,"comp1");
541 fieldIntVectorOnCells->setMEDComponentUnit(1,"unit1");
542 fieldIntVectorOnCells->setComponentName(2,"Vy");
543 fieldIntVectorOnCells->setComponentDescription(2,"comp2");
544 fieldIntVectorOnCells->setMEDComponentUnit(2,"unit2");
545 fieldIntVectorOnCells->setComponentName(3,"Vz");
546 fieldIntVectorOnCells->setComponentDescription(3,"comp3");
547 fieldIntVectorOnCells->setMEDComponentUnit(3,"unit3");
549 for (int i = 0; i<numberOfNodes; i++)
551 double valueDbl1, valueDbl2, valueDbl3;
552 int valueInt1, valueInt2, valueInt3;
556 valueDbl1 = valueInt1*0.1;
557 valueDbl2 = valueInt2*0.1;
558 valueDbl3 = valueInt3*0.1;
559 fieldDoubleScalarOnNodes->setValueIJ(i+1,1,valueDbl1);
561 fieldIntScalarOnNodes->setValueIJ(i+1,1,valueInt1);
563 fieldDoubleVectorOnNodes->setValueIJ(i+1,1,valueDbl1);
564 fieldDoubleVectorOnNodes->setValueIJ(i+1,2,valueDbl2);
565 fieldDoubleVectorOnNodes->setValueIJ(i+1,3,valueDbl3);
567 fieldIntVectorOnNodes->setValueIJ(i+1,1,valueInt1);
568 fieldIntVectorOnNodes->setValueIJ(i+1,2,valueInt2);
569 fieldIntVectorOnNodes->setValueIJ(i+1,3,valueInt3);
572 for (int i = 0; i<numberOfCells; i++)
574 double valueDbl1, valueDbl2, valueDbl3;
575 int valueInt1, valueInt2, valueInt3;
579 valueDbl1 = valueInt1*0.1;
580 valueDbl2 = valueInt2*0.1;
581 valueDbl3 = valueInt3*0.1;
582 fieldDoubleScalarOnCells->setValueIJ(i+1,1,valueDbl1);
584 fieldIntScalarOnCells->setValueIJ(i+1,1,valueInt1);
586 fieldDoubleVectorOnCells->setValueIJ(i+1,1,valueDbl1);
587 fieldDoubleVectorOnCells->setValueIJ(i+1,2,valueDbl2);
588 fieldDoubleVectorOnCells->setValueIJ(i+1,3,valueDbl3);
590 fieldIntVectorOnCells->setValueIJ(i+1,1,valueInt1);
591 fieldIntVectorOnCells->setValueIJ(i+1,2,valueInt2);
592 fieldIntVectorOnCells->setValueIJ(i+1,3,valueInt3);
595 for (int i=0; i<partialGroupOnNodes->getNumberOfElements(MED_ALL_ELEMENTS); i++)
597 const int* number=partialGroupOnNodes->getNumber(MED_ALL_ELEMENTS);
598 fieldDoubleScalarOnPartialNodes->setValueIJ(number[i],1,i+1);
601 for (int i=0; i<partialGroupOnCells->getNumberOfElements(MED_ALL_ELEMENTS); i++)
603 const int* number=partialGroupOnCells->getNumber(MED_ALL_ELEMENTS);
604 fieldDoubleScalarOnPartialCells->setValueIJ(number[i],1,i+1);
607 for (int i=0; i<partialGroupOnFaces->getNumberOfElements(MED_ALL_ELEMENTS); i++)
609 const int* number=partialGroupOnFaces->getNumber(MED_ALL_ELEMENTS);
610 fieldDoubleScalarOnPartialFaces->setValueIJ(number[i],1,i+1);
613 for (int i=0; i<partialGroupOnFaces2->getNumberOfElements(MED_ALL_ELEMENTS); i++)
615 const int* number=partialGroupOnFaces2->getNumber(MED_ALL_ELEMENTS);
616 fieldDoubleVectorOnPartialFaces->setValueIJ(number[i],1,i+1);
617 fieldDoubleVectorOnPartialFaces->setValueIJ(number[i],2,-i-1);
620 idMed22 = fieldDoubleScalarOnNodes->addDriver(MED_DRIVER,filenameMed22,fieldDoubleScalarOnNodes->getName());
621 fieldDoubleScalarOnNodes->write(idMed22) ;
623 idMed22 = fieldIntScalarOnNodes->addDriver(MED_DRIVER,filenameMed22,fieldIntScalarOnNodes->getName());
624 fieldIntScalarOnNodes->write(idMed22) ;
626 idMed22 = fieldDoubleVectorOnNodes->addDriver(MED_DRIVER,filenameMed22,fieldDoubleVectorOnNodes->getName());
627 fieldDoubleVectorOnNodes->write(idMed22) ;
629 idMed22 = fieldIntVectorOnNodes->addDriver(MED_DRIVER,filenameMed22,fieldIntVectorOnNodes->getName());
630 fieldIntVectorOnNodes->write(idMed22) ;
632 idMed22 = fieldDoubleScalarOnCells->addDriver(MED_DRIVER,filenameMed22,fieldDoubleScalarOnCells->getName());
633 fieldDoubleScalarOnCells->write(idMed22) ;
635 idMed22 = fieldIntScalarOnCells->addDriver(MED_DRIVER,filenameMed22,fieldIntScalarOnCells->getName());
636 fieldIntScalarOnCells->write(idMed22) ;
638 idMed22 = fieldDoubleVectorOnCells->addDriver(MED_DRIVER,filenameMed22,fieldDoubleVectorOnCells->getName());
639 fieldDoubleVectorOnCells->write(idMed22) ;
641 idMed22 = fieldIntVectorOnCells->addDriver(MED_DRIVER,filenameMed22,fieldIntVectorOnCells->getName());
642 fieldIntVectorOnCells->write(idMed22) ;
644 idMed22 = fieldDoubleScalarOnPartialNodes->addDriver(MED_DRIVER,filenameMed22,fieldDoubleScalarOnPartialNodes->getName());
645 fieldDoubleScalarOnPartialNodes->write(idMed22) ;
647 idMed22 = fieldDoubleScalarOnPartialCells->addDriver(MED_DRIVER,filenameMed22,fieldDoubleScalarOnPartialCells->getName());
648 fieldDoubleScalarOnPartialCells->write(idMed22) ;
650 idMed22 = fieldDoubleScalarOnPartialFaces->addDriver(MED_DRIVER,filenameMed22,fieldDoubleScalarOnPartialFaces->getName());
651 fieldDoubleScalarOnPartialFaces->write(idMed22) ;
653 idMed22 = fieldDoubleVectorOnPartialFaces->addDriver(MED_DRIVER,filenameMed22,fieldDoubleVectorOnPartialFaces->getName());
654 fieldDoubleVectorOnPartialFaces->write(idMed22) ;
657 idVtk = fieldDoubleScalarOnNodes->addDriver(VTK_DRIVER,filenameVtk,fieldDoubleScalarOnNodes->getName());
658 fieldDoubleScalarOnNodes->writeAppend(idVtk) ;
660 idVtk = fieldIntScalarOnNodes->addDriver(VTK_DRIVER,filenameVtk,fieldIntScalarOnNodes->getName());
661 fieldIntScalarOnNodes->writeAppend(idVtk) ;
663 idVtk = fieldDoubleVectorOnNodes->addDriver(VTK_DRIVER,filenameVtk,fieldDoubleVectorOnNodes->getName());
664 fieldDoubleVectorOnNodes->writeAppend(idVtk) ;
666 idVtk = fieldIntVectorOnNodes->addDriver(VTK_DRIVER,filenameVtk,fieldIntVectorOnNodes->getName());
667 fieldIntVectorOnNodes->writeAppend(idVtk) ;
669 idVtk = fieldDoubleScalarOnCells->addDriver(VTK_DRIVER,filenameVtk,fieldDoubleScalarOnCells->getName());
670 fieldDoubleScalarOnCells->writeAppend(idVtk) ;
672 idVtk = fieldIntScalarOnCells->addDriver(VTK_DRIVER,filenameVtk,fieldIntScalarOnCells->getName());
673 fieldIntScalarOnCells->writeAppend(idVtk) ;
675 idVtk = fieldDoubleVectorOnCells->addDriver(VTK_DRIVER,filenameVtk,fieldDoubleVectorOnCells->getName());
676 fieldDoubleVectorOnCells->writeAppend(idVtk) ;
678 idVtk = fieldIntVectorOnCells->addDriver(VTK_DRIVER,filenameVtk,fieldIntVectorOnCells->getName());
679 fieldIntVectorOnCells->writeAppend(idVtk) ;
683 cout << "Remove generated files" << endl;
684 remove(filenameMed21.c_str());
685 remove(filenameMed22.c_str());
686 remove(filenameVtk.c_str());
689 fieldDoubleScalarOnNodes->removeReference();
690 fieldIntScalarOnNodes->removeReference();
691 fieldDoubleVectorOnNodes->removeReference();
692 fieldIntVectorOnNodes->removeReference();
693 fieldDoubleScalarOnCells->removeReference();
694 fieldIntScalarOnCells->removeReference();
695 fieldDoubleVectorOnCells->removeReference();
696 fieldIntVectorOnCells->removeReference();
697 fieldDoubleScalarOnPartialCells->removeReference();
698 fieldDoubleScalarOnPartialNodes->removeReference();
699 fieldDoubleScalarOnPartialFaces->removeReference();
700 fieldDoubleVectorOnPartialFaces->removeReference();
702 partialGroupOnNodes->removeReference();
703 partialGroupOnNodes2->removeReference();
704 partialGroupOnCells->removeReference();
705 partialGroupOnCells2->removeReference();
706 partialGroupOnFaces->removeReference();
707 partialGroupOnFaces2->removeReference();