Salome HOME
Building a version which will be tagged PreV2_0_0 working with KERNEL V1_4_0.
[modules/med.git] / src / MEDMEM / INTERPOLATION / UseCaseInterpolationts.cxx
1 #include "MEDMEM_Exception.hxx"
2 #include "MEDMEM_define.hxx"
3
4 #include "MEDMEM_Med.hxx"
5 #include "MEDMEM_Field.hxx"
6 #include "MEDMEM_Mesh.hxx"
7 #include "MEDMEM_Interpolation.hxx"
8
9 #include <deque>
10
11 #include "stdio.h"
12
13 main () {
14     
15   const char * fromFileName   = "ResultatSyrthes.med";
16   const char * toFileName     = "MaillageAster.med";
17   const char * resultFileName = "ResultatInterpolation.med";
18
19   const char * fromFieldName  = "THERDEP_TEMP____________________";
20
21   const char * fromMeshName   = "MA";
22   const char * toMeshName     = "MAILLAGE_IDEAS";
23   int handle;
24
25   try {
26     
27     
28     MED fromMED(MED_DRIVER,fromFileName); 
29
30     fromMED.updateSupport();
31
32     MESH toMesh(MED_DRIVER,toFileName,toMeshName); 
33     
34     deque<DT_IT_> pasDeTemps=fromMED.getFieldIteration (fromFieldName); 
35     
36     deque<DT_IT_>::const_iterator currentStep;
37     
38     INTERPOLATION<3>  * myInter ;
39     FIELD<double>   * toField   ;
40     int flagNewMapping = 1;
41
42     for (currentStep=pasDeTemps.begin();currentStep!=pasDeTemps.end();currentStep++)
43         {
44         FIELD_ * fromField_ = fromMED.getField(fromFieldName,(*currentStep).dt,(*currentStep).it) ; 
45
46         FIELD<double> * fromField = dynamic_cast<FIELD<double> *>(fromField_); 
47
48         fromField->getSupport()->getMesh()->read();
49         
50         fromField->read(); 
51         
52         if (currentStep==pasDeTemps.begin())
53                 {
54                 myInter = new INTERPOLATION<3>(*fromField,toMesh) ; 
55
56                 toField = myInter->interpolate(1,1); 
57                 }
58         else
59                 {
60                 toField = myInter->interpolateNextStep(*fromField,flagNewMapping); 
61                 }
62     
63         toField->addDriver(MED_DRIVER,resultFileName,toField->getName()); 
64     
65         toField->write(); 
66     
67         if (flagNewMapping==1)
68                 {
69                 handle = toMesh.addDriver(MED_DRIVER,resultFileName,toMesh.getName()) ; 
70     
71                 toMesh.write(handle); 
72                 }
73         }
74
75   } catch (MEDEXCEPTION& ex){
76     MESSAGE(ex.what()) ;
77   }
78 }