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()