From fba8aad95dc59f2c612a9b31e36fe75e020de17e Mon Sep 17 00:00:00 2001 From: marioalexis Date: Mon, 9 Dec 2024 17:19:27 -0300 Subject: [PATCH] Fem: Make it possible to run CalculiX with one core - fixes #18339 --- src/Mod/Fem/Gui/DlgSettingsFemCcx.ui | 8 ++++---- src/Mod/Fem/femtaskpanels/task_solver_ccxtools.py | 8 +++----- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/src/Mod/Fem/Gui/DlgSettingsFemCcx.ui b/src/Mod/Fem/Gui/DlgSettingsFemCcx.ui index 66084fab86..9289ba959a 100644 --- a/src/Mod/Fem/Gui/DlgSettingsFemCcx.ui +++ b/src/Mod/Fem/Gui/DlgSettingsFemCcx.ui @@ -300,11 +300,11 @@ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - 1 + + Set to zero to automatically use maximum number of available cores - - 40 + + 0 AnalysisNumCPUs diff --git a/src/Mod/Fem/femtaskpanels/task_solver_ccxtools.py b/src/Mod/Fem/femtaskpanels/task_solver_ccxtools.py index 114289aad1..55162bdb05 100644 --- a/src/Mod/Fem/femtaskpanels/task_solver_ccxtools.py +++ b/src/Mod/Fem/femtaskpanels/task_solver_ccxtools.py @@ -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()