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::PrefSpinBox
+ QSpinBox
+
+
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 = {