Salome HOME
Préférences pour le type de test de convergence des schémas YACS
authornicolas <nicolas>
Wed, 22 Jan 2014 09:22:55 +0000 (09:22 +0000)
committernicolas <nicolas>
Wed, 22 Jan 2014 09:22:55 +0000 (09:22 +0000)
12 files changed:
idl/HOMARD_Gen.idl
idl/HOMARD_YACS.idl
src/HOMARD/HOMARD_YACS.cxx
src/HOMARD/HOMARD_YACS.hxx
src/HOMARDGUI/HOMARDGUI.cxx
src/HOMARDGUI/HOMARDGUI.h
src/HOMARDGUI/HOMARD_msg_en.ts
src/HOMARDGUI/HOMARD_msg_fr.ts
src/HOMARD_I/HOMARD_Gen_i.cxx
src/HOMARD_I/HOMARD_Gen_i.hxx
src/HOMARD_I/HOMARD_YACS_i.cxx
src/HOMARD_I/HOMARD_YACS_i.hxx

index f929875da91b3a002bd78437905bd7fb9beaef80..305ada9c5c1996400ff1331eec1b490137d38d2b 100644 (file)
@@ -221,6 +221,8 @@ module HOMARD
     long GetYACSMaxIter()                                  raises (SALOME::SALOME_Exception);
     long GetYACSMaxNode()                                  raises (SALOME::SALOME_Exception);
     long GetYACSMaxElem()                                  raises (SALOME::SALOME_Exception);
+    void SetYACSConvergenceType(in long TypeTest)          raises (SALOME::SALOME_Exception);
+    long GetYACSConvergenceType()                          raises (SALOME::SALOME_Exception);
   };
 };
 
index e98f6ac6fd127422eab9b9262ee77488588176ef..363b7674c0c08651e719882cd878d0a4af67d917 100644 (file)
@@ -56,6 +56,11 @@ module HOMARD
     void     SetMaxElem (in long MaxElem)                  raises (SALOME::SALOME_Exception);
     long     GetMaxElem()                                  raises (SALOME::SALOME_Exception);
 
+    void     SetTestConvergence (in long TypeTest, in double VRef)
+                                                           raises (SALOME::SALOME_Exception);
+    long     GetTestConvergenceType()                      raises (SALOME::SALOME_Exception);
+    double   GetTestConvergenceVRef()                      raises (SALOME::SALOME_Exception);
+
     void     SetDirName(in string NomDir)                  raises (SALOME::SALOME_Exception);
     string   GetDirName()                                  raises (SALOME::SALOME_Exception);
 
index aeb2b20918822a82c3b1321767581ad3bf33bb75..4870853fd6bd8ff5572d5879a7151ea7aee80215 100644 (file)
@@ -95,7 +95,7 @@ std::string HOMARD_YACS::GetDumpPython() const
 }
 //=============================================================================
 //=============================================================================
-// Caracteristiques
+// Caracteristiques de la convergence
 //=============================================================================
 //=============================================================================
 void HOMARD_YACS::SetType( int Type )
@@ -138,6 +138,27 @@ int HOMARD_YACS::GetMaxElem() const
   return _MaxElem;
 }
 //=============================================================================
+void HOMARD_YACS::SetTestConvergence( int TypeTest, double VRef )
+{
+  _TypeTest = TypeTest;
+  _VRef = VRef;
+}
+//=============================================================================
+int HOMARD_YACS::GetTestConvergenceType() const
+{
+  return _TypeTest;
+}
+//=============================================================================
+double HOMARD_YACS::GetTestConvergenceVRef() const
+{
+  return _VRef;
+}
+//=============================================================================
+//=============================================================================
+// Repertoire et fichiers
+//=============================================================================
+//=============================================================================
+//=============================================================================
 void HOMARD_YACS::SetDirName( const char* NomDir )
 {
   _NomDir = std::string( NomDir );
index a513c23a5b6b4702042425de6fd0196f564d0c1c..65733282255af439e020885b7fb36349e10e98d7 100644 (file)
@@ -62,6 +62,10 @@ public:
   void                          SetMaxElem( int MaxElem );
   int                           GetMaxElem() const;
 
+  void                          SetTestConvergence( int TypeTest, double VRef );
+  int                           GetTestConvergenceType() const;
+  double                        GetTestConvergenceVRef() const;
+
   void                          SetDirName( const char* NomDir );
   std::string                   GetDirName() const;
 
@@ -91,6 +95,8 @@ private:
   int                           _MaxIter;
   int                           _MaxNode;
   int                           _MaxElem;
+  int                           _TypeTest;
+  double                        _VRef;
   std::string                   _XMLFile;
 };
 
index f5f5004cb0577575a33d35ad485ee86debdf689b..1a3b34f3893e213c76e0aa4310409f6a84038c9c 100644 (file)
@@ -213,6 +213,16 @@ void HOMARDGUI::createPreferences()
   setPreferenceProperty( Pref, "min",  0 );
   setPreferenceProperty( Pref, "max",  100000000 );
   setPreferenceProperty( Pref, "step", 1000 );
+
+  Bloc = addPreference( tr( "PREF_YACS_CONVERGENCE" ), Onglet );
+  setPreferenceProperty( Bloc, "columns", 1 );
+
+  Pref = addPreference( tr( "PREF_YACS_TYPE_TEST" ), Bloc, LightApp_Preferences::Selector, "HOMARD", "yacs_type_test" );
+  QStringList aListOfTypeTest;
+  aListOfTypeTest << "None";
+  aListOfTypeTest << "VTest > VRef";
+  aListOfTypeTest << "VTest < VRef";
+  setPreferenceProperty( Pref, "strings", aListOfTypeTest );
 }
 
 
@@ -266,13 +276,14 @@ void HOMARDGUI::recupPreferences()
   HOMARD::HOMARD_Gen_var homardGen = HOMARDGUI::InitHOMARDGen(app);
   int defaut_i ;
   std::string defaut_s ;
+  QString QString_v ;
 //
 // B. Les valeurs
 // B.1. La langue
 //
   defaut_s = homardGen->GetLanguageShort();
   SUIT_ResourceMgr* resMgr = getApp()->resourceMgr();
-  _LanguageShort = resMgr->stringValue("language", "language", QString(defaut_s.c_str()));
+  _LanguageShort = resMgr->stringValue("language", "language", QString(defaut_s.c_str()) );
 //
 // B.2. Les publications
   bool publish_mesh ;
@@ -302,15 +313,29 @@ void HOMARDGUI::recupPreferences()
   defaut_i = homardGen->GetYACSMaxElem();
   _YACSMaxElem = resMgr->integerValue("HOMARD", "yacs_max_elem", defaut_i );
 //
+// B.4. La convergence pour YACS
+//
+  defaut_i = homardGen->GetYACSConvergenceType();
+  if ( defaut_i == 1 )      { QString_v = tr("VTest > VRef") ; }
+  else if ( defaut_i == 2 ) { QString_v = tr("VTest < VRef") ; }
+  else                      { QString_v = tr("None") ; }
+  QString_v = resMgr->stringValue ( "HOMARD", "yacs_type_test", QString_v );
+  if ( ( QString_v == "VTest > VRef" ) || ( QString_v == "VTest &gt; VRef" ) )      { _YACSTypeTest = 1 ; }
+  else if ( ( QString_v == "VTest < VRef" ) || ( QString_v == "VTest &lt; VRef" ) ) { _YACSTypeTest = 2 ; }
+  else                                                                              { _YACSTypeTest = 0 ; }
+//
 // C. Enregistrement dans l'objet general
 //
   MESSAGE ("Enregistrement de LanguageShort = " << _LanguageShort.toStdString().c_str() );
   MESSAGE ("Enregistrement de PublisMeshIN = " << _PublisMeshIN<<", PublisMeshOUT = "<< _PublisMeshOUT);
   MESSAGE ("Enregistrement de YACSMaxIter = " << _YACSMaxIter<<", YACSMaxNode = "<< _YACSMaxNode<<", YACSMaxElem = "<< _YACSMaxElem);
+  MESSAGE ("Enregistrement de YACSTypeTest = " << _YACSTypeTest);
 //
   homardGen->SetLanguageShort(_LanguageShort.toStdString().c_str());
   homardGen->SetPublisMesh(_PublisMeshIN, _PublisMeshOUT);
   homardGen->SetYACSMaximum(_YACSMaxIter, _YACSMaxNode, _YACSMaxElem);
+//
+  homardGen->SetYACSConvergenceType(_YACSTypeTest);
 }
 
 //================================================
index 8689ac6d8cab817ae019237ec8f1f420cede0a0c..49a1802761df5ed02bcbc14b4e78294b06b409a2 100644 (file)
@@ -100,6 +100,7 @@ private:
    int _YACSMaxIter ;
    int _YACSMaxNode ;
    int _YACSMaxElem ;
+   int _YACSTypeTest ;
 };
 
 #endif
index cb8bde0d27c45ac475d7038aceb69867b7e339c7..b95385fd69f96a40d2c9c7b3d95522224ba38ac3 100644 (file)
         <source>PREF_YACS_MAX_ELEM</source>
         <translation>Elements</translation>
     </message>
+    <message>
+        <source>PREF_YACS_CONVERGENCE</source>
+        <translation>Convergence</translation>
+    </message>
+    <message>
+        <source>PREF_YACS_TYPE_TEST</source>
+        <translation>Test type</translation>
+    </message>
 </context>
 </TS>
index 28b90c823b56b4577a2efdbf3b297997fe1b11de..b248bc59e837cbabcbb73e2687ff97c3221a265d 100644 (file)
         <source>PREF_YACS_MAX_ELEM</source>
         <translation>Eléments</translation>
     </message>
+    <message>
+        <source>PREF_YACS_CONVERGENCE</source>
+        <translation>Convergence</translation>
+    </message>
+    <message>
+        <source>PREF_YACS_TYPE_TEST</source>
+        <translation>Type de test</translation>
+    </message>
 </context>
 </TS>
index 1d44d67389c6e97371957b2b5f32fed62783fd4b..e7f1679afb3a638f9edd9e08ffa1eb4edde202f7 100755 (executable)
@@ -5060,6 +5060,7 @@ void HOMARD_Gen_i::SetPreferences( )
   int YACSMaxIter = 0 ;
   int YACSMaxNode = 0 ;
   int YACSMaxElem = 0 ;
+  std::string YACSTypeTestchaine = "None" ;
 
   // B. La version de salome
   // Cela se presente sous la forme :
@@ -5127,15 +5128,17 @@ void HOMARD_Gen_i::SetPreferences( )
         // 3. Parametres
         // 3.1. La langue
         else if ( section_langue || section_homard )
-        { /*MESSAGE ( "a decoder : "<< ligne);*/
-          ligne_bis >> mot_cle ;
-          chaine = GetStringInTexte ( mot_cle, "\"", 1 ) ;
+        { MESSAGE ( "a decoder : "<< ligne);
+//        La valeur : entre les deux premieres quotes
+          chaine = GetStringInTexte ( ligne, "\"", 1 ) ;
+//           MESSAGE("chaine 1 = |"<<chaine<<"|");
           chaine = GetStringInTexte ( chaine,  "\"", 0 ) ;
-//           MESSAGE("chaine = "<<chaine<<"|");
-          ligne_bis >> mot_cle ;
-          std::string chaine2 = GetStringInTexte ( mot_cle, "\"", 1 ) ;
-          chaine2 = GetStringInTexte ( chaine2,  "\"", 0 ) ;
-          MESSAGE("chaine2 = "<<chaine2<<"|");
+//           MESSAGE("chaine = |"<<chaine<<"|");
+//        Le mot_cle : entre les deux dernieres quotes
+          std::string chaine2 = GetStringInTexte ( ligne, "\"", 2 ) ;
+//           MESSAGE("chaine2 1 = |"<<chaine2<<"|");
+          chaine2 = GetStringInTexte ( chaine2,  "\"", 3 ) ;
+//           MESSAGE("chaine2 = |"<<chaine2<<"|");
           // 3.1. La langue
           if ( section_langue )
           { if ( chaine2 == "language" ) { LanguageShort = chaine ; } }
@@ -5150,20 +5153,31 @@ void HOMARD_Gen_i::SetPreferences( )
             if ( chaine2 == "yacs_max_iter" ) { chainebis >> YACSMaxIter ; }
             if ( chaine2 == "yacs_max_node" ) { chainebis >> YACSMaxNode ; }
             if ( chaine2 == "yacs_max_elem" ) { chainebis >> YACSMaxElem ; }
+            if ( chaine2 == "yacs_type_test" ) { YACSTypeTestchaine = chaine ; }
           }
         }
       }
     }
   }
 
-  // C. Enregistrement
+  // C. Enregistrements
   MESSAGE ("Enregistrement de LanguageShort = " << LanguageShort );
-  MESSAGE ("Enregistrement de PublisMeshIN = " << PublisMeshIN<<", PublisMeshOUT = "<< PublisMeshOUT);
-  MESSAGE ("Enregistrement de YACSMaxIter = " << YACSMaxIter<<", YACSMaxNode = "<< YACSMaxNode<<", YACSMaxElem = "<< YACSMaxElem);
   SetLanguageShort( LanguageShort.c_str() ) ;
+
+  MESSAGE ("Enregistrement de PublisMeshIN = " << PublisMeshIN<<", PublisMeshOUT = "<< PublisMeshOUT);
   SetPublisMesh(PublisMeshIN, PublisMeshOUT) ;
+
+  MESSAGE ("Enregistrement de YACSMaxIter = " << YACSMaxIter<<", YACSMaxNode = "<< YACSMaxNode<<", YACSMaxElem = "<< YACSMaxElem);
   SetYACSMaximum(YACSMaxIter, YACSMaxNode, YACSMaxElem) ;
 
+  MESSAGE ("Enregistrement de TypeTest = " << YACSTypeTestchaine.c_str() );
+  int YACSTypeTest ;
+  if ( ( YACSTypeTestchaine == "VTest > VRef" ) || ( YACSTypeTestchaine == "VTest &gt; VRef" ) )      { YACSTypeTest = 1 ; }
+  else if ( ( YACSTypeTestchaine == "VTest < VRef" ) || ( YACSTypeTestchaine == "VTest &lt; VRef" ) ) { YACSTypeTest = 2 ; }
+  else                                                                                                { YACSTypeTest = 0 ; }
+  MESSAGE ("==> TypeTest = " << YACSTypeTest );
+  SetYACSConvergenceType( YACSTypeTest ) ;
+
   return ;
 }
 //===============================================================================
@@ -5200,7 +5214,7 @@ CORBA::Long HOMARD_Gen_i::GetPublisMeshOUT()
   return _PublisMeshOUT ;
 }
 //===============================================================================
-// YACS - maximum
+// YACS - test de convergence
 //===============================================================================
 void HOMARD_Gen_i::SetYACSMaximum(CORBA::Long YACSMaxIter, CORBA::Long YACSMaxNode, CORBA::Long YACSMaxElem)
 {
@@ -5221,6 +5235,15 @@ CORBA::Long HOMARD_Gen_i::GetYACSMaxElem()
 {
   return _YACSMaxElem ;
 }
+void HOMARD_Gen_i::SetYACSConvergenceType(CORBA::Long YACSTypeTest)
+{
+  _YACSTypeTest = YACSTypeTest ;
+  return ;
+}
+CORBA::Long HOMARD_Gen_i::GetYACSConvergenceType()
+{
+  return _YACSTypeTest ;
+}
 
 //=============================================================================
 extern "C"
index 84af738e40afa742a8a9f2e451ec6ad542f0ff33..d1fed9c26ab00d66bb7edebe902f35375c73cfc3 100644 (file)
@@ -212,6 +212,8 @@ public:
   CORBA::Long                     GetYACSMaxIter();
   CORBA::Long                     GetYACSMaxNode();
   CORBA::Long                     GetYACSMaxElem();
+  void                            SetYACSConvergenceType(CORBA::Long YACSTypeTest);
+  CORBA::Long                     GetYACSConvergenceType();
 
 
   // ---------------------------------------------------------------
@@ -339,6 +341,7 @@ private:
   int _YACSMaxIter ;
   int _YACSMaxNode ;
   int _YACSMaxElem ;
+  int _YACSTypeTest ;
  ;
 
 };
index b5dcb425ecf5e4399fb0f706efe71b87d7079648..cd5bb13f783aa29e227799a908c6c0161b109a2a 100644 (file)
@@ -124,6 +124,10 @@ CORBA::Long HOMARD_YACS_i::GetType()
   return  CORBA::Long( myHomardYACS->GetType() );
 }
 //=============================================================================
+//=============================================================================
+// Caracteristiques de la convergence
+//=============================================================================
+//=============================================================================
 void HOMARD_YACS_i::SetMaxIter( CORBA::Long MaxIter )
 {
   ASSERT( myHomardYACS );
@@ -160,6 +164,28 @@ CORBA::Long HOMARD_YACS_i::GetMaxElem()
   return  CORBA::Long( myHomardYACS->GetMaxElem() );
 }
 //=============================================================================
+void HOMARD_YACS_i::SetTestConvergence( CORBA::Long TypeTest, CORBA::Double VRef)
+{
+  ASSERT( myHomardYACS );
+  myHomardYACS->SetTestConvergence( TypeTest, VRef );
+}
+//=============================================================================
+CORBA::Long HOMARD_YACS_i::GetTestConvergenceType()
+{
+  ASSERT( myHomardYACS );
+  return  CORBA::Long( myHomardYACS->GetTestConvergenceType() );
+}
+//=============================================================================
+CORBA::Double HOMARD_YACS_i::GetTestConvergenceVRef()
+{
+  ASSERT( myHomardYACS );
+  return  CORBA::Long( myHomardYACS->GetTestConvergenceVRef() );
+}
+//=============================================================================
+//=============================================================================
+// Repertoire et fichiers
+//=============================================================================
+//=============================================================================
 void HOMARD_YACS_i::SetDirName( const char* NomDir )
 {
   ASSERT( myHomardYACS );
index f429e94b013d367348117781b141576e7ad3a350..5ddf4845e1dd37ae21b1d5e092a98ee8257067fb 100644 (file)
@@ -76,6 +76,10 @@ public:
   void                   SetMaxElem( CORBA::Long MaxElem );
   CORBA::Long            GetMaxElem();
 
+  void                   SetTestConvergence( CORBA::Long TypeTest, CORBA::Double VRef );
+  CORBA::Long            GetTestConvergenceType();
+  CORBA::Double          GetTestConvergenceVRef();
+
   void                   SetDirName( const char* NomDir );
   char*                  GetDirName();