Fem: Make it possible to run CalculiX with one core - fixes #18339

This commit is contained in:
marioalexis
2024-12-09 17:19:27 -03:00
committed by Chris Hennes
parent 51c0faff62
commit fba8aad95d
2 changed files with 7 additions and 9 deletions

View File

@@ -300,11 +300,11 @@
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="minimum">
<number>1</number>
<property name="toolTip">
<string>Set to zero to automatically use maximum number of available cores</string>
</property>
<property name="maximum">
<number>40</number>
<property name="minimum">
<number>0</number>
</property>
<property name="prefEntry" stdset="0">
<cstring>AnalysisNumCPUs</cstring>

View File

@@ -381,13 +381,11 @@ class _TaskPanel:
# Set up for multi-threading. Note: same functionality as ccx_tools.py/start_ccx()
ccx_prefs = FreeCAD.ParamGet(self.PREFS_PATH)
env = QtCore.QProcessEnvironment.systemEnvironment()
num_cpu_pref = ccx_prefs.GetInt("AnalysisNumCPUs", 1)
if num_cpu_pref > 1:
num_cpu_pref = ccx_prefs.GetInt("AnalysisNumCPUs", 0)
if num_cpu_pref >= 1:
env.insert("OMP_NUM_THREADS", str(num_cpu_pref))
else:
cpu_count = os.cpu_count()
if cpu_count is not None and cpu_count > 1:
env.insert("OMP_NUM_THREADS", str(cpu_count))
env.insert("OMP_NUM_THREADS", str(QtCore.QThread.idealThreadCount()))
self.Calculix.setProcessEnvironment(env)
self.cwd = QtCore.QDir.currentPath()