Salome HOME
Improve interface
authorjfa <jfa@opencascade.com>
Fri, 24 Dec 2021 17:39:47 +0000 (20:39 +0300)
committerjfa <jfa@opencascade.com>
Fri, 24 Dec 2021 17:39:47 +0000 (20:39 +0300)
doc/salome/examples/test_homard_adapt.py
idl/SMESH_Homard.idl
src/SMESH/SMESH_Homard.cxx
src/SMESH/SMESH_Homard.hxx
src/SMESHGUI/SMESHGUI_HomardAdaptDlg.cxx
src/SMESH_I/SMESH_Homard_i.cxx
src/SMESH_I/SMESH_Homard_i.hxx

index 5c445659ec4cb2e513aa2fc4dde2137aaf71b841..cedbdd4607be5431292dd004b0bb65b8d9bb783b 100644 (file)
@@ -30,8 +30,8 @@ if os.path.isfile(log_file_1):
   os.remove(log_file_1)
 
 smeshhomard = smesh.Adaptation("Uniform")
-Case_1 = smeshhomard.CreateCase("MAILL", input_med, working_dir)
-Case_1.SetConfType(0)
+smeshhomard.CreateCase("MAILL", input_med, working_dir)
+smeshhomard.SetConfType(0)
 smeshhomard.SetKeepMedOUT(True)
 smeshhomard.SetPublishMeshOUT(True)
 smeshhomard.SetMeshNameOUT("MAILL_Uniform_R_01")
@@ -67,10 +67,10 @@ if os.path.isfile(log_file_2):
 
 #smeshhomard = smesh.Adaptation("Uniform")
 Boun_1 = smeshhomard.CreateBoundaryCylinder("Boun_1", 0.5, 0.5, 0.5, 0, 0, 1, 0.25)
-Case_1 = smeshhomard.CreateCaseOnMesh("MAILL", MAILL.GetMesh(), working_dir)
-Case_1.SetConfType(0)
-Case_1.AddBoundaryGroup("Boun_1", "BORD_EXT")
-Case_1.AddBoundaryGroup("Boun_1", "MOITIE1")
+smeshhomard.CreateCaseOnMesh("MAILL", MAILL.GetMesh(), working_dir)
+smeshhomard.SetConfType(0)
+smeshhomard.AddBoundaryGroup("Boun_1", "BORD_EXT")
+smeshhomard.AddBoundaryGroup("Boun_1", "MOITIE1")
 smeshhomard.SetKeepMedOUT(False)
 smeshhomard.SetPublishMeshOUT(True)
 smeshhomard.SetMeshNameOUT("MAILL_Uniform_R_02")
index 2c4de9c7859d36c1c7f3bfd4de95d0e97042cf24..2783ffbcab9bce6e0a8e946c75b3c233673c9e0e 100644 (file)
@@ -132,9 +132,6 @@ module SMESHHOMARD
     void     SetDirName(in string NomDir) raises (SALOME::SALOME_Exception);
     string   GetDirName()                 raises (SALOME::SALOME_Exception);
 
-    void     SetConfType(in long ConfType) raises (SALOME::SALOME_Exception);
-    long     GetConfType()                 raises (SALOME::SALOME_Exception);
-
     void     SetBoundingBox(in extrema LesExtremes)        raises (SALOME::SALOME_Exception);
     extrema  GetBoundingBox()                              raises (SALOME::SALOME_Exception);
 
@@ -207,6 +204,9 @@ module SMESHHOMARD
     long DeleteCase() raises (SALOME::SALOME_Exception);
     void CleanCase() raises (SALOME::SALOME_Exception);
 
+    void AddBoundaryGroup(in string BoundaryName,
+                          in string Group) raises (SALOME::SALOME_Exception);
+
     long Compute() raises (SALOME::SALOME_Exception);
 
     string CreateDirNameIter (in string NomDir, in long num)
@@ -216,6 +216,7 @@ module SMESHHOMARD
       raises (SALOME::SALOME_Exception);
 
     //  Preferences
+    void SetConfType(in long ConfType) raises (SALOME::SALOME_Exception);
     void SetKeepMedOUT (in boolean theKeepMedOUT);
     void SetPublishMeshOUT (in boolean thePublishMeshOUT);
     void SetMeshNameOUT (in string theMeshName) raises (SALOME::SALOME_Exception);
index 8a1527c6f56780152eda6e6e8be413f446a981d6..0d5d998f4524e59b6022601b835db75a1b10d8d5 100644 (file)
@@ -332,7 +332,7 @@ std::string HOMARD_Boundary::GetCaseCreation() const
  */
 //=============================================================================
 HOMARD_Cas::HOMARD_Cas():
-  _Name(""), _NomDir("/tmp"), _ConfType(0)
+  _Name(""), _NomDir("/tmp")
 {
   MESSAGE("HOMARD_Cas");
 }
@@ -360,12 +360,10 @@ std::string HOMARD_Cas::GetName() const
 std::string HOMARD_Cas::GetDumpPython() const
 {
   std::ostringstream aScript;
-  //aScript << _Name << ".SetDirName(\"" << _NomDir << "\")\n";
-  aScript << _Name << ".SetConfType(" << _ConfType << ")\n";
   // Suivi de frontieres
   std::list<std::string>::const_iterator it = _ListBoundaryGroup.begin();
   while (it != _ListBoundaryGroup.end()) {
-    aScript << _Name << ".AddBoundaryGroup(\"" << *it << "\", \"";
+    aScript << "smeshhomard.AddBoundaryGroup(\"" << *it << "\", \"";
     it++;
     aScript << *it << "\")\n";
     it++;
@@ -407,19 +405,6 @@ std::string HOMARD_Cas::GetDirName() const
   return _NomDir;
 }
 //
-// Le type de conformite ou non conformite
-//
-//=============================================================================
-void HOMARD_Cas::SetConfType( int Conftype )
-{
-  _ConfType = Conftype;
-}
-//=============================================================================
-const int HOMARD_Cas::GetConfType() const
-{
-  return _ConfType;
-}
-//
 // La boite englobante
 //
 //=============================================================================
index 2df21fd7e82074b2b2e07c8fc330aa0c53218f1c..06fc0c9453aa129993ab8a7ea58255f2b161ab55 100644 (file)
@@ -119,9 +119,6 @@ public:
   int                           SetDirName( const char* NomDir );
   std::string                   GetDirName() const;
 
-  void                          SetConfType( int ConfType );
-  const int                     GetConfType() const;
-
   void                          SetBoundingBox( const std::vector<double>& extremas );
   const std::vector<double>&    GetBoundingBox() const;
 
@@ -140,7 +137,6 @@ public:
 private:
   std::string                   _Name;
   std::string                   _NomDir;
-  int                           _ConfType;
   int                           _Etat;
 
   std::vector<double>           _Boite;         // cf HomardQTCommun pour structure du vecteur
index d99c89d01e9dcecb422b34008f67f7d3655b1816..fdc543062b004b35d2b4111795178f06e17eca19 100644 (file)
@@ -360,9 +360,6 @@ bool SMESHGUI_HomardAdaptDlg::CheckCase(bool fixCase)
     InitBoundarys();
   }
 
-  // Repertoire et type
-  myCase->SetConfType(myArgs->RBConforme->isChecked() ? 0 : 1);
-
   // Menage des eventuelles frontieres deja enregistrees
   myCase->SupprBoundaryGroup();
 
@@ -443,6 +440,9 @@ bool SMESHGUI_HomardAdaptDlg::PushOnApply()
   }
   myHomardGen->SetMeshFileOUT(aMeshFileOUT.c_str());
 
+  // Conformity type
+  myHomardGen->SetConfType(myArgs->RBConforme->isChecked() ? 0 : 1);
+
   // Advanced options
   myHomardGen->SetVerboseLevel(myAdvOpt->verboseLevelSpin->value());
   myHomardGen->SetKeepWorkingFiles(myAdvOpt->keepWorkingFilesCheck->isChecked());
index ea88f7d044f5275e04f5ed774fe77976ee7b1bd4..d4f2e6d5538e1889dee1aad8ee55a62f6821acd8 100644 (file)
@@ -440,19 +440,6 @@ char* HOMARD_Cas_i::GetDirName()
   return CORBA::string_dup(myHomardCas->GetDirName().c_str());
 }
 //=============================================================================
-void HOMARD_Cas_i::SetConfType(CORBA::Long ConfType)
-{
-  ASSERT(myHomardCas);
-  //VERIFICATION((ConfType>=-2) && (ConfType<=3));
-  myHomardCas->SetConfType(ConfType);
-}
-//=============================================================================
-CORBA::Long HOMARD_Cas_i::GetConfType()
-{
-  ASSERT(myHomardCas);
-  return myHomardCas->GetConfType();
-}
-//=============================================================================
 void HOMARD_Cas_i::SetBoundingBox(const SMESHHOMARD::extrema& LesExtrema)
 {
   ASSERT(myHomardCas);
@@ -823,6 +810,7 @@ CORBA::Long HOMARD_Iteration_i::GetInfoCompute()
  */
 //=============================================================================
 HOMARD_Gen_i::HOMARD_Gen_i() : SALOME::GenericObj_i(SMESH_Gen_i::GetPOA()),
+                               _ConfType(0),
                                _KeepMedOUT(true),
                                _PublishMeshOUT(false),
                                _KeepWorkingFiles(false),
@@ -900,15 +888,6 @@ CORBA::Long HOMARD_Gen_i::DeleteIteration(int numIter)
   }
   else {
     if (!CORBA::is_nil(myIteration1)) {
-      /*
-      if (CORBA::is_nil(myIteration0)) {
-        SALOME::ExceptionStruct es;
-        es.type = SALOME::BAD_PARAM;
-        es.text = "Invalid iteration 0";
-        throw SALOME::SALOME_Exception(es);
-      }
-      */
-
       // Invalide Iteration
       if (myIteration1->GetState() > 0) {
         myIteration1->SetState(1);
@@ -1776,8 +1755,7 @@ CORBA::Long HOMARD_Gen_i::ComputeAdap(SMESHHOMARDImpl::HomardDriver* myDriver)
 
   // D. Les donnĂ©es de l'adaptation HOMARD
   // D.1. Le type de conformite
-  int ConfType = myCase->GetConfType();
-  MESSAGE (". ConfType = " << ConfType);
+  MESSAGE (". ConfType = " << _ConfType);
 
   // D.3. Le maillage de depart
   const char* NomMeshParent = myIteration0->GetMeshName();
@@ -1819,7 +1797,7 @@ CORBA::Long HOMARD_Gen_i::ComputeAdap(SMESHHOMARDImpl::HomardDriver* myDriver)
   int iaux = 0;
   myDriver->TexteMaillageHOMARD(DirComputePa, siter, iaux);
   myDriver->TexteMaillage(NomMeshParent, MeshFileParent, 0);
-  myDriver->TexteConfRaffDera(ConfType);
+  myDriver->TexteConfRaffDera(_ConfType);
 
   // E.6. Ajout des options avancees
   //myDriver->TexteAdvanced(NivMax, DiamMin, AdapInit, ExtraOutput);
@@ -2530,12 +2508,12 @@ void HOMARD_Gen_i::PythonDump()
   MESSAGE (". Creation of the case");
 
   if (_CaseOnMedFile) {
-    pd << "Case_1 = smeshhomard.CreateCase(\"" << myIteration0->GetMeshName();
+    pd << "smeshhomard.CreateCase(\"" << myIteration0->GetMeshName();
     pd << "\", \"" << myIteration0->GetMeshFile();
     pd << "\", \"" << myCase->GetDirName() << "\")\n";
   }
   else {
-    pd << "Case_1 = smeshhomard.CreateCaseOnMesh(\"" << myIteration0->GetMeshName();
+    pd << "smeshhomard.CreateCaseOnMesh(\"" << myIteration0->GetMeshName();
     pd << "\", " << _SmeshMesh;
     pd << ".GetMesh(), \"" << myCase->GetDirName() << "\")\n";
   }
@@ -2543,6 +2521,7 @@ void HOMARD_Gen_i::PythonDump()
   pd << myCase->GetDumpPython();
 
   // Preferences
+  pd << "smeshhomard.SetConfType(" << _ConfType << ")\n";
   pd << "smeshhomard.SetKeepMedOUT(" << (_KeepMedOUT ? "True" : "False") << ")\n";
   pd << "smeshhomard.SetPublishMeshOUT(" << (_PublishMeshOUT ? "True" : "False") << ")\n";
   pd << "smeshhomard.SetMeshNameOUT(\"" << _MeshNameOUT << "\")\n";
@@ -2559,9 +2538,27 @@ void HOMARD_Gen_i::PythonDump()
   MESSAGE ("End PythonDump");
 }
 
+void HOMARD_Gen_i::AddBoundaryGroup(const char* BoundaryName, const char* Group)
+{
+  MESSAGE("HOMARD_Gen_i::AddBoundaryGroup : BoundaryName = " <<
+          BoundaryName << ", Group = " << Group);
+  if (myCase->_is_nil()) {
+    SALOME::ExceptionStruct es;
+    es.type = SALOME::BAD_PARAM;
+    std::string text = "The input mesh must be defined before boundary group addition";
+    es.text = CORBA::string_dup(text.c_str());
+    throw SALOME::SALOME_Exception(es);
+  }
+  myCase->AddBoundaryGroup(BoundaryName, Group);
+}
+
 //===============================================================================
 // Preferences
 //===============================================================================
+void HOMARD_Gen_i::SetConfType(CORBA::Long theConfType)
+{
+  _ConfType = theConfType;
+}
 void HOMARD_Gen_i::SetKeepMedOUT(bool theKeepMedOUT)
 {
   _KeepMedOUT = theKeepMedOUT;
index 45c08d9f1fae00079e7c7a592691d5a0166eb934..ad0ea90b27f6b50cc96ae006bd241e3fd747eecb 100644 (file)
@@ -116,9 +116,6 @@ public:
   void  SetDirName(const char* NomDir);
   char* GetDirName();
 
-  void        SetConfType(CORBA::Long ConfType);
-  CORBA::Long GetConfType();
-
   void                  SetBoundingBox(const SMESHHOMARD::extrema& LesExtremes);
   SMESHHOMARD::extrema* GetBoundingBox();
 
@@ -254,6 +251,8 @@ public:
   CORBA::Long DeleteCase();
   CORBA::Long DeleteIteration(int numIter);
 
+  void AddBoundaryGroup(const char* Boundary, const char* Group);
+
   void AssociateCaseIter(int numIter, const char* labelIter);
   char* CreateDirNameIter(const char* nomrep, CORBA::Long num);
 
@@ -271,8 +270,9 @@ public:
   void PythonDump();
 
   // Preferences
-  void SetKeepMedOUT(bool theKeepMedOUT);
-  void SetPublishMeshOUT(bool thePublishMeshOUT);
+  void SetConfType (CORBA::Long theConfType);
+  void SetKeepMedOUT (bool theKeepMedOUT);
+  void SetPublishMeshOUT (bool thePublishMeshOUT);
   void SetMeshNameOUT (const char* theMeshNameOUT);
   void SetMeshFileOUT (const char* theMeshFileOUT);
 
@@ -296,6 +296,7 @@ private:
   SMESHHOMARD::HOMARD_Cas_var        myCase;
 
   // Preferences
+  int  _ConfType; // Le type de conformite ou non conformite
   bool _KeepMedOUT;
   bool _PublishMeshOUT;
   bool _KeepWorkingFiles;