Fem: Add preference entry to set Netgen number of threads
This commit is contained in:
@@ -79,6 +79,32 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="lbl_threads">
|
||||
<property name="text">
|
||||
<string>Number of threads</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="Gui::PrefSpinBox" name="sb_threads">
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignLeft|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Number of threads used for meshing</string>
|
||||
</property>
|
||||
<property name="minimum">
|
||||
<number>1</number>
|
||||
</property>
|
||||
<property name="prefEntry" stdset="0">
|
||||
<cstring>NumOfThreads</cstring>
|
||||
</property>
|
||||
<property name="prefPath" stdset="0">
|
||||
<cstring>Mod/Fem/Netgen</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
@@ -99,6 +125,11 @@
|
||||
<extends>QCheckBox</extends>
|
||||
<header>Gui/PrefWidgets.h</header>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>Gui::PrefSpinBox</class>
|
||||
<extends>QSpinBox</extends>
|
||||
<header>Gui/PrefWidgets.h</header>
|
||||
</customwidget>
|
||||
</customwidgets>
|
||||
<resources/>
|
||||
<connections/>
|
||||
|
||||
@@ -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,
|
||||
}
|
||||
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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 = {
|
||||
|
||||
Reference in New Issue
Block a user