diff --git a/src/Mod/Fem/Gui/DlgSettingsFemElmer.ui b/src/Mod/Fem/Gui/DlgSettingsFemElmer.ui
index de8da1844e..598048f7d0 100644
--- a/src/Mod/Fem/Gui/DlgSettingsFemElmer.ui
+++ b/src/Mod/Fem/Gui/DlgSettingsFemElmer.ui
@@ -6,15 +6,15 @@
0
0
- 400
- 203
+ 350
+ 259
Elmer
-
- -
+
+
-
@@ -39,6 +39,46 @@
+ -
+
+
+ false
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 0
+
+
+
+ <html><head/><body><p>Leave blank to use default Elmer elmer binary file</p><p><span style=" font-weight:600;">Note:</span> To use multithreading you must specify here<br> the executable variant with the suffix "_mpi".</p></body></html>
+
+
+ elmerBinaryPath
+
+
+ Mod/Fem/Elmer
+
+
+
-
@@ -55,22 +95,6 @@
- -
-
-
- false
-
-
-
- 100
- 0
-
-
-
- ElmerGrid binary path
-
-
-
-
@@ -134,6 +158,22 @@
+ -
+
+
+ false
+
+
+
+ 100
+ 0
+
+
+
+ ElmerGrid binary path
+
+
+
-
@@ -150,54 +190,23 @@
- -
-
-
- false
-
-
-
- 0
- 0
-
-
-
-
- 0
- 0
-
-
-
-
- 0
- 0
-
-
-
-
- 0
- 0
-
-
-
- <html><head/><body><p>Leave blank to use default Elmer elmer binary file</p><p><span style=" font-weight:600;">Note:</span> To use multithreading you must specify here<br> the executable variant with the suffix "_mpi".</p></body></html>
-
-
- elmerBinaryPath
-
-
- Mod/Fem/Elmer
-
-
-
- -
-
+
+
+
+ -
+
+
+ Options
+
+
+
-
+
Multithreading:
- -
+
-
-
@@ -246,10 +255,37 @@
+ -
+
+
+ Multi-CPU core support:
+
+
+
+ -
+
+
+ The mesh volume regions processed by each CPU core
+will be merged to make the volume boundaries invisible.
+
+
+ Filter results
+
+
+ true
+
+
+ FilterMultiCPUResults
+
+
+ Mod/Fem/Elmer
+
+
+
- -
+
-
Qt::Vertical
diff --git a/src/Mod/Fem/Gui/DlgSettingsFemElmerImp.cpp b/src/Mod/Fem/Gui/DlgSettingsFemElmerImp.cpp
index 40110f59d7..201bbe3f24 100644
--- a/src/Mod/Fem/Gui/DlgSettingsFemElmerImp.cpp
+++ b/src/Mod/Fem/Gui/DlgSettingsFemElmerImp.cpp
@@ -70,6 +70,7 @@ void DlgSettingsFemElmerImp::saveSettings()
ui->fc_grid_binary_path->onSave();
ui->sb_elmer_num_cores->onSave();
+ ui->cb_elmer_filtering->onSave();
}
void DlgSettingsFemElmerImp::loadSettings()
@@ -81,6 +82,7 @@ void DlgSettingsFemElmerImp::loadSettings()
ui->fc_grid_binary_path->onRestore();
ui->sb_elmer_num_cores->onRestore();
+ ui->cb_elmer_filtering->onRestore();
}
/**
diff --git a/src/Mod/Fem/Gui/ViewProviderFemPostObject.cpp b/src/Mod/Fem/Gui/ViewProviderFemPostObject.cpp
index 7f664962ff..7e0ac35dde 100644
--- a/src/Mod/Fem/Gui/ViewProviderFemPostObject.cpp
+++ b/src/Mod/Fem/Gui/ViewProviderFemPostObject.cpp
@@ -706,9 +706,14 @@ void ViewProviderFemPostObject::filterArtifacts(vtkDataObject* data)
m_wireframe->SetInputData(data);
m_points->SetInputData(data);
- // filter artifacts
- // only necessary for the surface filter
- filterArtifacts(data);
+ // filtering artifacts is only necessary for the surface filter
+ auto hGrp = App::GetApplication().GetParameterGroupByPath(
+ "User parameter:BaseApp/Preferences/Mod/Fem/Elmer");
+ bool FilterMultiCPUResults = hGrp->GetBool("FilterMultiCPUResults", 1);
+ if (FilterMultiCPUResults)
+ filterArtifacts(data);
+ else
+ m_surface->SetInputData(data);
return true;
}