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