]> SALOME platform Git repositories - plugins/ghs3dprlplugin.git/blobdiff - src/GHS3DPRLPlugin/GHS3DPRLPlugin_Hypothesis.hxx
Salome HOME
Copyright update 2021
[plugins/ghs3dprlplugin.git] / src / GHS3DPRLPlugin / GHS3DPRLPlugin_Hypothesis.hxx
old mode 100755 (executable)
new mode 100644 (file)
index 2640c71..0146065
@@ -1,66 +1,88 @@
-//  GHS3DPRLPlugin : C++ implementation
+// Copyright (C) 2007-2021  CEA/DEN, EDF R&D
 //
-//  Copyright (C) 2006  OPEN CASCADE, 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
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
 //
-//  This library is free software; you can redistribute it and/or
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
 //
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-//
-//
-// File      : GHS3DPRLPlugin_Hypothesis.hxx
-// Author    : Christian VAN WAMBEKE (CEA) (from Hexotic plugin Lioka RAZAFINDRAZAKA)
-// Date      : 2007/02/01
-// Project   : SALOME
-// $Header   :
-//=============================================================================
 
+// ---
+// File   : GHS3DPRLPlugin_Hypothesis.hxx
+// Author : Christian VAN WAMBEKE (CEA) (from Hexotic plugin Lioka RAZAFINDRAZAKA)
+// ---
+//
 #ifndef _GHS3DPRLPlugin_Hypothesis_HXX_
 #define _GHS3DPRLPlugin_Hypothesis_HXX_
 
+#include "GHS3DPRLPlugin_Defs.hxx"
+
 #include "SMESH_Hypothesis.hxx"
 #include "Utils_SALOME_Exception.hxx"
 
 //  Parameters for work of GHS3DPRL
 //
 
-class GHS3DPRLPlugin_Hypothesis: public SMESH_Hypothesis
+class GHS3DPRLPLUGIN_EXPORT GHS3DPRLPlugin_Hypothesis: public SMESH_Hypothesis
 {
 public:
 
-  GHS3DPRLPlugin_Hypothesis(int hypId, int studyId, SMESH_Gen * gen);
+  GHS3DPRLPlugin_Hypothesis(int hypId, SMESH_Gen* gen);
+
+  static const char* GetHypType() { return "MG-Tetra Parallel Parameters"; }
+
+  void                  SetMEDName(std::string theVal);
+  std::string           GetMEDName() const { return _MEDName; }
+
+  void                  SetNbPart(int theVal);
+  int                   GetNbPart() const { return _NbPart; }
 
-  void SetMEDName(string theVal);
-  string GetMEDName() const { return _MEDName; }
+  void                  SetKeepFiles(bool theVal);
+  bool                  GetKeepFiles() const { return _KeepFiles; }
 
-  void SetNbPart(int theVal);
-  int GetNbPart() const { return _NbPart; }
+  void                  SetBackground(bool theVal);
+  bool                  GetBackground() const { return _Background; }
 
-  void SetKeepFiles(bool theVal);
-  bool GetKeepFiles() const { return _KeepFiles; }
+  void                  SetMultithread(bool theVal);
+  bool                  GetMultithread() const { return _Multithread; }
+
+  //ToMergeSubdomains ToTagSubdomains ToOutputInterfaces ToDiscardSubdomains
+  void                  SetGradation(float theVal);
+  float                 GetGradation() const { return _Gradation; }
+
+  void                  SetMinSize(float theVal);
+  float                 GetMinSize() const { return _MinSize; }
+
+  void                  SetMaxSize(float theVal);
+  float                 GetMaxSize() const { return _MaxSize; }
+
+  void                  SetAdvancedOption(const char* theOptAndVals );
+  std::string           GetAdvancedOption() const { return _AdvOptions; }
 
   // the parameters default values
 
-  static string GetDefaultMEDName();
-  static int GetDefaultNbPart();
-  static bool GetDefaultKeepFiles();
+  static std::string    GetDefaultMEDName();
+  static int            GetDefaultNbPart();
+  static bool           GetDefaultKeepFiles();
+  static bool           GetDefaultBackground();
+  static bool           GetDefaultMultithread();
+  static float          GetDefaultGradation();
+  static float          GetDefaultMinSize();
+  static float          GetDefaultMaxSize();
 
   // Persistence
-  virtual ostream & SaveTo(ostream & save);
-  virtual istream & LoadFrom(istream & load);
-  friend ostream & operator <<(ostream & save, GHS3DPRLPlugin_Hypothesis & hyp);
-  friend istream & operator >>(istream & load, GHS3DPRLPlugin_Hypothesis & hyp);
+  virtual std::ostream& SaveTo(std::ostream& save);
+  virtual std::istream& LoadFrom(std::istream& load);
 
   /*!
    * \brief Does nothing
@@ -68,16 +90,27 @@ public:
    * \param theShape - the geometry of interest
    * \retval bool - always false
    */
-  virtual bool SetParametersByMesh(const SMESH_Mesh* theMesh, const TopoDS_Shape& theShape);
+  virtual bool          SetParametersByMesh(const SMESH_Mesh* theMesh, const TopoDS_Shape& theShape);
+  /*!
+   * \brief Initialize my parameter values by default parameters.
+   *  \retval bool - true if parameter values have been successfully defined
+   */
+  virtual bool          SetParametersByDefaults(const TDefaults& dflts, const SMESH_Mesh* theMesh=0);
 
 private:
-  int   _countSubMesh;
-  int   _countTotal;
-  int   _nodeRefNumber;
-
-  string  _MEDName;  //generic path/name of med files
-  int   _NbPart;     //number of partitions
-  bool  _KeepFiles;   //keep intermediates tepal files or not
-};
+  int         _countSubMesh;
+  int         _countTotal;
+  int         _nodeRefNumber;
+
+  std::string _MEDName;     // generic path/name of med files
+  int         _NbPart;      // number of partitions
+  bool        _KeepFiles;   // keep intermediates tepal files or not
+  bool        _Background;  // mg-tetra_hpc in background
+  bool        _Multithread; // launch mg-tetra_hpc multithread version, else mpi version
+  float       _Gradation;
+  float       _MinSize;
+  float       _MaxSize;
+  std::string _AdvOptions;
+  };
 
 #endif