diff --git a/src/Mod/Fem/Gui/Resources/ui/DlgSettingsNetgen.ui b/src/Mod/Fem/Gui/Resources/ui/DlgSettingsNetgen.ui index 8e0699b552..95d00eb5dc 100644 --- a/src/Mod/Fem/Gui/Resources/ui/DlgSettingsNetgen.ui +++ b/src/Mod/Fem/Gui/Resources/ui/DlgSettingsNetgen.ui @@ -79,6 +79,32 @@ + + + + Number of threads + + + + + + + Qt::AlignLeft|Qt::AlignTrailing|Qt::AlignVCenter + + + Number of threads used for meshing + + + 1 + + + NumOfThreads + + + Mod/Fem/Netgen + + + @@ -99,6 +125,11 @@ QCheckBox
Gui/PrefWidgets.h
+ + Gui::PrefSpinBox + QSpinBox +
Gui/PrefWidgets.h
+
diff --git a/src/Mod/Fem/femmesh/netgentools.py b/src/Mod/Fem/femmesh/netgentools.py index 1ed55efdfe..488f996771 100644 --- a/src/Mod/Fem/femmesh/netgentools.py +++ b/src/Mod/Fem/femmesh/netgentools.py @@ -29,7 +29,7 @@ import numpy as np import shutil import sys import tempfile -from PySide.QtCore import QProcess +from PySide.QtCore import QProcess, QThread import FreeCAD import Fem @@ -84,6 +84,7 @@ class NetgenTools: self.tmpdir = "" self.process = QProcess() self.mesh_params = {} + self.param_grp = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Fem/Netgen") def write_geom(self): if not self.tmpdir: @@ -101,17 +102,16 @@ class NetgenTools: def prepare(self): self.write_geom() - grp = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Fem/Netgen") self.mesh_params = { "brep_file": self.brep_file, - "threads": self.obj.Threads, + "threads": self.param_grp.GetInt("NumOfThreads", QThread.idealThreadCount()), "heal": self.obj.HealShape, "params": self.get_meshing_parameters(), "second_order": self.obj.SecondOrder, "second_order_linear": self.obj.SecondOrderLinear, "result_file": self.result_file, "mesh_region": self.get_mesh_region(), - "verbosity": grp.GetInt("LogVerbosity", 2), + "verbosity": self.param_grp.GetInt("LogVerbosity", 2), } with open(self.script_file, "w") as file: @@ -319,7 +319,7 @@ run_netgen(**{kwds}) "inverttrigs": self.obj.InvertTrigs, "autozrefine": self.obj.AutoZRefine, "parallel_meshing": self.obj.ParallelMeshing, - "nthreads": self.obj.Threads, + "nthreads": self.param_grp.GetInt("NumOfThreads", QThread.idealThreadCount()), "closeedgefac": self.obj.CloseEdgeFactor, } diff --git a/src/Mod/Fem/femobjects/mesh_netgen.py b/src/Mod/Fem/femobjects/mesh_netgen.py index a437cdaedd..9d7048a4d9 100644 --- a/src/Mod/Fem/femobjects/mesh_netgen.py +++ b/src/Mod/Fem/femobjects/mesh_netgen.py @@ -485,15 +485,6 @@ class MeshNetgen(base_fempythonobject.BaseFemPythonObject): value=True, ) ) - prop.append( - _PropHelper( - type="App::PropertyInteger", - name="Threads", - group="Mesh Parameters", - doc="Number of threads for parallel meshing", - value=4, - ) - ) prop.append( _PropHelper( type="App::PropertyBool", diff --git a/src/Mod/Fem/fempreferencepages/dlg_settings_netgen.py b/src/Mod/Fem/fempreferencepages/dlg_settings_netgen.py index a5186dd105..695f7252c2 100644 --- a/src/Mod/Fem/fempreferencepages/dlg_settings_netgen.py +++ b/src/Mod/Fem/fempreferencepages/dlg_settings_netgen.py @@ -25,6 +25,8 @@ __title__ = "Netgen preference page class" __author__ = "Mario Passaglia" __url__ = "https://www.freecad.org" +from PySide.QtCore import QThread + import FreeCAD import FreeCADGui @@ -37,11 +39,13 @@ class DlgSettingsNetgen: def loadSettings(self): self.form.ckb_legacy.setChecked(self.grp.GetBool("UseLegacyNetgen", True)) + self.form.sb_threads.setValue(self.grp.GetInt("NumOfThreads", QThread.idealThreadCount())) self.populate_log_verbosity() def saveSettings(self): self.grp.SetBool("UseLegacyNetgen", self.form.ckb_legacy.isChecked()) self.grp.SetInt("LogVerbosity", self.form.cb_log_verbosity.currentData()) + self.grp.SetInt("NumOfThreads", self.form.sb_threads.value()) def populate_log_verbosity(self): values = {