]> SALOME platform Git repositories - plugins/hybridplugin.git/commitdiff
Salome HOME
#17846 [CEA] SHA 90dbc5f1 and MG-Hybrid advanced parameters
authoreap <eap@opencascade.com>
Thu, 10 Oct 2019 13:03:10 +0000 (16:03 +0300)
committereap <eap@opencascade.com>
Thu, 10 Oct 2019 13:03:10 +0000 (16:03 +0300)
src/HYBRIDPlugin/HYBRIDPlugin_HYBRID.cxx
src/HYBRIDPlugin/HYBRIDPlugin_Hypothesis.cxx
src/HYBRIDPlugin/HYBRIDPlugin_Hypothesis.hxx
src/HYBRIDPlugin/HYBRIDPlugin_Hypothesis_i.cxx

index 6cc4efbbf6636ffc41ab79d528ffb157ddc7cae7..5b3fda61f2e09b61683ebda7e14fa3e0aa2961fa 100644 (file)
@@ -1519,7 +1519,7 @@ bool HYBRIDPlugin_HYBRID::Compute(SMESH_Mesh&         theMesh,
   // run hybrid mesher
   // -----------------
 
-  std::string cmd = HYBRIDPlugin_Hypothesis::CommandToRun( _hyp, theMesh );
+  std::string cmd = HYBRIDPlugin_Hypothesis::CommandToRun( _hyp );
 
   if ( mgHybrid.IsExecutable() )
   {
@@ -1721,7 +1721,7 @@ bool HYBRIDPlugin_HYBRID::Compute(SMESH_Mesh&         theMesh,
   // run hybrid mesher
   // -----------------
 
-  std::string cmd = HYBRIDPlugin_Hypothesis::CommandToRun( _hyp, theMesh );
+  std::string cmd = HYBRIDPlugin_Hypothesis::CommandToRun( _hyp );
 
   if ( mgHybrid.IsExecutable() )
   {
index 4ef187351b18cf98af348d5ed90b58ec7891a2c1..e704b23a3a4bae1cabe4cbf27fdffa484ab3dfde 100644 (file)
@@ -1996,19 +1996,18 @@ bool HYBRIDPlugin_Hypothesis::SetParametersByDefaults(const TDefaults&  dflts,
  */
 //================================================================================
 
-std::string HYBRIDPlugin_Hypothesis::CommandToRun(const HYBRIDPlugin_Hypothesis* hyp,
-                                                  SMESH_Mesh&                    mesh)
+std::string HYBRIDPlugin_Hypothesis::CommandToRun(const HYBRIDPlugin_Hypothesis* hyp)
 {
   SMESH_Comment cmd = GetExeName();
   // check if any option is overridden by hyp->_option2value
   bool p_h     = ( hyp && hyp->HasOptionDefined("-h"));
   bool p_v     = ( hyp && hyp->HasOptionDefined("-v"));
-  bool p_blsd  = ( hyp && hyp->HasOptionDefined("--normal_direction "));
-  bool p_hotfl = ( hyp && hyp->HasOptionDefined("--boundary_layer_global_initial_height "));
-  bool p_nobl  = ( hyp && hyp->HasOptionDefined("--number_of_boundary_layers "));
-  bool p_blgp  = ( hyp && hyp->HasOptionDefined("--boundary_layer_geometric_progression "));
-  bool p_eg    = ( hyp && hyp->HasOptionDefined("--element_generation "));
-  bool p_cs    = ( hyp && hyp->HasOptionDefined("--global_physical_size "));
+  bool p_blsd  = ( hyp && hyp->HasOptionDefined("--normal_direction"));
+  bool p_hotfl = ( hyp && hyp->HasOptionDefined("--boundary_layer_global_initial_height"));
+  bool p_nobl  = ( hyp && hyp->HasOptionDefined("--number_of_boundary_layers"));
+  bool p_blgp  = ( hyp && hyp->HasOptionDefined("--boundary_layer_geometric_progression"));
+  bool p_eg    = ( hyp && hyp->HasOptionDefined("--element_generation"));
+  bool p_cs    = ( hyp && hyp->HasOptionDefined("--global_physical_size"));
 
   bool nolayers = false;
   bool layersOnAllWrap = hyp ? hyp->myLayersOnAllWrap : DefaultLayersOnAllWrap();
@@ -2193,7 +2192,7 @@ void HYBRIDPlugin_Hypothesis::SetOptionValue(const std::string& optionName,
   if (op_val == _option2value.end())
   {
     op_val = _customOption2value.find( optionName );
-    if ( op_val != _customOption2value.end() && op_val->second != optionValue )
+    if ( op_val == _customOption2value.end() || op_val->second != optionValue )
       NotifySubMeshesHypothesisModification();
     _customOption2value[ optionName ] = optionValue;
     return;
index 93832c63e98b6507c85f241fc5447cea33b6adbc..a7cf5695d3e8f5914593de92d1311519cb46f9b1 100644 (file)
@@ -325,7 +325,7 @@ public:
   /*!
    * \brief Return command to run hybrid mesher excluding file prefix (-f)
    */
-  static std::string CommandToRun(const HYBRIDPlugin_Hypothesis* hyp, SMESH_Mesh& mesh);
+  static std::string CommandToRun(const HYBRIDPlugin_Hypothesis* hyp);
   /*!
    * \brief Return a unique file name
    */
index c1755cd25a621f50567a24523925a021bc8e822b..851bb461c967b9058e9fa973c4865fa3c6c1a700 100644 (file)
@@ -544,6 +544,9 @@ void HYBRIDPlugin_Hypothesis_i::SetOptionValue(const char* optionName, const cha
     else if ( name == "boundary_layer_max_element_angle" )
       SetBoundaryLayersMaxElemAngle( GetImpl()->ToDbl( optionValue ));
 
+    else if ( name == "boundary_layer_height_relative_to_local_surface_size" )
+      SetHeightIsRelative( GetImpl()->ToBool( optionValue ));
+
     else if ( name == "gradation" )
       SetGradation( GetImpl()->ToDbl( optionValue ));
 
@@ -755,7 +758,7 @@ void HYBRIDPlugin_Hypothesis_i::SetAdvancedOption(const char* optionsAndValues)
 {
   if ( !optionsAndValues ) return;
 
-  SMESH::TPythonDump dump;
+  //SMESH::TPythonDump dump;
 
   std::istringstream strm( optionsAndValues );
   std::istream_iterator<std::string> sIt( strm ), sEnd;
@@ -775,19 +778,30 @@ void HYBRIDPlugin_Hypothesis_i::SetAdvancedOption(const char* optionsAndValues)
       AddOption( option.c_str(), "" );
     }
   }
-  dump << _this() << ".SetAdvancedOption( '" << optionsAndValues << "' )";
+  //dump << _this() << ".SetAdvancedOption( '" << optionsAndValues << "' )";
 }
 
 //=============================================================================
 
 void HYBRIDPlugin_Hypothesis_i::AddOption(const char* optionName, const char* optionValue)
 {
-  ASSERT(myBaseImpl);
+  if ( strncmp( "--", optionName, 2 ) == 0 )
+    optionName += 2;
+
   bool valueChanged = ( !this->GetImpl()->HasOptionDefined(optionName) ||
                         this->GetImpl()->GetOptionValue(optionName) != optionValue );
-  if (valueChanged) {
-    this->GetImpl()->SetOptionValue(optionName, optionValue);
-    SMESH::TPythonDump() << _this() << ".SetOptionValue( '" << optionName << "', '" << optionValue << "' )";
+  if ( valueChanged )
+  {
+    SetOptionValue(optionName, optionValue);
+
+    SMESH_Comment optVal("--");
+    optVal << optionName << " " << optionValue;
+    std::string cmd = ::HYBRIDPlugin_Hypothesis::CommandToRun( GetImpl() );
+    if ( cmd.find( optVal ) == std::string::npos )
+    {
+      this->GetImpl()->SetOptionValue(optionName, optionValue);
+      SMESH::TPythonDump() << _this() << ".AddOption( '" << optionName << "', '" << optionValue << "' )";
+    }
   }
 }