diff --git a/src/Mod/Fem/Gui/DlgSettingsFemCcx.ui b/src/Mod/Fem/Gui/DlgSettingsFemCcx.ui
index 9289ba959a..bde7af6c61 100644
--- a/src/Mod/Fem/Gui/DlgSettingsFemCcx.ui
+++ b/src/Mod/Fem/Gui/DlgSettingsFemCcx.ui
@@ -301,10 +301,10 @@
Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
- Set to zero to automatically use maximum number of available cores
+ Number of threads used for analysis
- 0
+ 1
AnalysisNumCPUs
diff --git a/src/Mod/Fem/Gui/DlgSettingsFemCcxImp.cpp b/src/Mod/Fem/Gui/DlgSettingsFemCcxImp.cpp
index bea9df709f..e70b285702 100644
--- a/src/Mod/Fem/Gui/DlgSettingsFemCcxImp.cpp
+++ b/src/Mod/Fem/Gui/DlgSettingsFemCcxImp.cpp
@@ -45,9 +45,6 @@ DlgSettingsFemCcxImp::DlgSettingsFemCcxImp(QWidget* parent)
// set ranges
ui->dsb_ccx_analysis_time->setMaximum(FLOAT_MAX);
ui->dsb_ccx_initial_time_step->setMaximum(FLOAT_MAX);
- // determine number of CPU cores
- int processor_count = QThread::idealThreadCount();
- ui->sb_ccx_numcpu->setMaximum(processor_count);
connect(ui->fc_ccx_binary_path,
&Gui::PrefFileChooser::fileNameChanged,
@@ -117,6 +114,11 @@ void DlgSettingsFemCcxImp::loadSettings()
ParameterGrp::handle hGrp = App::GetApplication().GetParameterGroupByPath(
"User parameter:BaseApp/Preferences/Mod/Fem/Ccx");
+
+ // determine number of CPU threads
+ int processor_count = hGrp->GetInt("AnalysisNumCPUs", QThread::idealThreadCount());
+ ui->sb_ccx_numcpu->setValue(processor_count);
+
int index = hGrp->GetInt("Solver", 0);
if (index > -1) {
ui->cmb_solver->setCurrentIndex(index);
diff --git a/src/Mod/Fem/femtaskpanels/task_solver_ccxtools.py b/src/Mod/Fem/femtaskpanels/task_solver_ccxtools.py
index 55162bdb05..a55c7c9790 100644
--- a/src/Mod/Fem/femtaskpanels/task_solver_ccxtools.py
+++ b/src/Mod/Fem/femtaskpanels/task_solver_ccxtools.py
@@ -381,11 +381,8 @@ 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", 0)
- if num_cpu_pref >= 1:
- env.insert("OMP_NUM_THREADS", str(num_cpu_pref))
- else:
- env.insert("OMP_NUM_THREADS", str(QtCore.QThread.idealThreadCount()))
+ num_cpu_pref = ccx_prefs.GetInt("AnalysisNumCPUs", QtCore.QThread.idealThreadCount())
+ env.insert("OMP_NUM_THREADS", str(num_cpu_pref))
self.Calculix.setProcessEnvironment(env)
self.cwd = QtCore.QDir.currentPath()