Salome HOME
Porting to gcc6
[modules/homard.git] / src / HOMARD_I / HOMARD_Gen_i.cxx
index d1db6aa641682c4de4eb81900a3b40bcad7d7f1a..5b5dacc239749b5579ce41f3835b8464be2de4ba 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2011-2015  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2016  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
@@ -1316,6 +1316,7 @@ HOMARD::HOMARD_Cas_ptr HOMARD_Gen_i::CreateCaseFromIteration(const char* nomCas,
   // B. Lecture du fichier de configuration
   // ATTENTION : on doit veiller a la coherence entre HomardDriver et CreateCaseFromIteration
   int NumeIter ;
+  int TypeExt = 0 ;
   int TypeConf = 0 ;
   int Pyram = 0 ;
   char* MeshName ;
@@ -1405,6 +1406,7 @@ HOMARD::HOMARD_Cas_ptr HOMARD_Gen_i::CreateCaseFromIteration(const char* nomCas,
   // D. Parametrages lus dans le fichier de configuration
 
   myCase->SetConfType (TypeConf) ;
+  myCase->SetExtType (TypeExt) ;
   myCase->SetPyram (Pyram) ;
 
   // E. Copie du fichier de maillage homard
@@ -1705,7 +1707,7 @@ HOMARD::HOMARD_Cas_ptr HOMARD_Gen_i::CreateCase0(const char* nomCas, const char*
 //     MESSAGE ( "CreateCase0 : Les valeurs extremes des coordonnees" );
     std::vector<double> LesExtremes =GetBoundingBoxInMedFile(MeshFile) ;
     HOMARD::extrema_var aSeq = new HOMARD::extrema() ;
-    if (LesExtremes.size()!=10) { return false; }
+    if (LesExtremes.size()!=10) { return 0; }
     aSeq->length(10) ;
     for (int i =0 ; i< LesExtremes.size() ; i++)
         aSeq[i]=LesExtremes[i] ;
@@ -2696,13 +2698,17 @@ CORBA::Long HOMARD_Gen_i::ComputeAdap(HOMARD::HOMARD_Cas_var myCase, HOMARD::HOM
   int ConfType = myCase->GetConfType();
   MESSAGE ( ". ConfType = " << ConfType );
 
-  // D.2. Le maillage de depart
+  // D.1. Le type externe
+  int ExtType = myCase->GetExtType();
+  MESSAGE ( ". ExtType = " << ExtType );
+
+  // D.3. Le maillage de depart
   const char* NomMeshParent = myIterationParent->GetMeshName();
   MESSAGE ( ". NomMeshParent = " << NomMeshParent );
   const char* MeshFileParent = myIterationParent->GetMeshFile();
   MESSAGE ( ". MeshFileParent = " << MeshFileParent );
 
-  // D.3. Le maillage associe a l'iteration
+  // D.4. Le maillage associe a l'iteration
   const char* MeshFile = myIteration->GetMeshFile();
   MESSAGE ( ". MeshFile = " << MeshFile );
   FILE *file = fopen(MeshFile,"r");
@@ -2733,7 +2739,7 @@ CORBA::Long HOMARD_Gen_i::ComputeAdap(HOMARD::HOMARD_Cas_var myCase, HOMARD::HOM
     }
   }
 
-  // D.4. Les types de raffinement et de deraffinement
+  // D.5. Les types de raffinement et de deraffinement
   // Les appels corba sont lourds, il vaut mieux les grouper
   HOMARD::listeTypes* ListTypes = myHypo->GetAdapRefinUnRef();
   ASSERT(ListTypes->length() == 3);
@@ -2744,7 +2750,7 @@ CORBA::Long HOMARD_Gen_i::ComputeAdap(HOMARD::HOMARD_Cas_var myCase, HOMARD::HOM
 
   // E. Texte du fichier de configuration
   // E.1. Incontournables du texte
-  myDriver->TexteAdap();
+  myDriver->TexteAdap(ExtType);
   int iaux = 0 ;
   myDriver->TexteMaillageHOMARD( DirComputePa, siter, iaux ) ;
   myDriver->TexteMaillage(NomMeshParent, MeshFileParent, 0);
@@ -3077,8 +3083,11 @@ void HOMARD_Gen_i::DriverTexteField(HOMARD::HOMARD_Iteration_var myIteration, HO
   for (int NumeComp = 0; NumeComp< numberOfCompos; NumeComp++)
   {
     std::string nomCompo = std::string((*mescompo)[NumeComp]);
-    MESSAGE( "... nomCompo = " << nomCompo );
-    myDriver->TexteCompo(NumeComp, nomCompo);
+    if ((system(nomCompo.c_str())) != 0)
+    {
+      MESSAGE( "... nomCompo = " << nomCompo );
+      myDriver->TexteCompo(NumeComp, nomCompo);
+    }
   }
   return ;
 }
@@ -4748,7 +4757,7 @@ Engines::TMPFile* HOMARD_Gen_i::DumpPython(CORBA::Object_ptr theStudy,
 
    std::string aScript = "\"\"\"\n";
    aScript += "Python script for HOMARD\n";
-   aScript += "Copyright 1996, 2011, 1015 EDF\n";
+   aScript += "Copyright 1996, 2011, 2015 EDF\n";
    aScript += "\"\"\"\n";
    aScript += "__revision__ = \"V1.2\"\n";
    aScript += "import HOMARD\n";