diff --git a/src/Mod/Fem/App/FemPostPipeline.cpp b/src/Mod/Fem/App/FemPostPipeline.cpp
index c2b935e57b..a075e40576 100644
--- a/src/Mod/Fem/App/FemPostPipeline.cpp
+++ b/src/Mod/Fem/App/FemPostPipeline.cpp
@@ -226,6 +226,12 @@ void FemPostPipeline::onChanged(const Property* prop)
}
+void FemPostPipeline::recomputeChildren()
+{
+ for (const auto &obj : Filter.getValues())
+ obj->touch();
+}
+
FemPostObject* FemPostPipeline::getLastPostObject() {
if (Filter.getValues().empty())
diff --git a/src/Mod/Fem/App/FemPostPipeline.h b/src/Mod/Fem/App/FemPostPipeline.h
index 01415cd2cf..aff5b1c780 100644
--- a/src/Mod/Fem/App/FemPostPipeline.h
+++ b/src/Mod/Fem/App/FemPostPipeline.h
@@ -64,11 +64,12 @@ public:
void load(FemResultObject* res);
//Pipeline handling
- FemPostObject* getLastPostObject();
- bool holdsPostObject(FemPostObject* obj);
+ void recomputeChildren();
+ FemPostObject *getLastPostObject();
+ bool holdsPostObject(FemPostObject *obj);
protected:
- virtual void onChanged(const App::Property* prop);
+ virtual void onChanged(const App::Property *prop);
private:
static const char* ModeEnums[];
diff --git a/src/Mod/Fem/App/FemPostPipelinePy.xml b/src/Mod/Fem/App/FemPostPipelinePy.xml
index fef97a33c9..70aa69a4cc 100644
--- a/src/Mod/Fem/App/FemPostPipelinePy.xml
+++ b/src/Mod/Fem/App/FemPostPipelinePy.xml
@@ -28,6 +28,11 @@
Load a result object
+
+
+ Recomputes all children of the pipeline
+
+
Get the last post-processing object
diff --git a/src/Mod/Fem/App/FemPostPipelinePyImp.cpp b/src/Mod/Fem/App/FemPostPipelinePyImp.cpp
index e21955258a..1ddc80126e 100644
--- a/src/Mod/Fem/App/FemPostPipelinePyImp.cpp
+++ b/src/Mod/Fem/App/FemPostPipelinePyImp.cpp
@@ -77,6 +77,15 @@ PyObject* FemPostPipelinePy::load(PyObject *args)
Py_Return;
}
+PyObject *FemPostPipelinePy::recomputeChildren(PyObject *args)
+{
+ if (!PyArg_ParseTuple(args, ""))
+ return nullptr;
+
+ getFemPostPipelinePtr()->recomputeChildren();
+ Py_Return;
+}
+
PyObject* FemPostPipelinePy::getLastPostObject(PyObject *args)
{
if (!PyArg_ParseTuple(args, ""))
diff --git a/src/Mod/Fem/femsolver/elmer/tasks.py b/src/Mod/Fem/femsolver/elmer/tasks.py
index 788b0cd788..ed15da21eb 100644
--- a/src/Mod/Fem/femsolver/elmer/tasks.py
+++ b/src/Mod/Fem/femsolver/elmer/tasks.py
@@ -256,6 +256,7 @@ class Results(run.Results):
# this might be changed in future, therefore leave this
#self.solver.ElmerResult.scale(1000)
self.solver.ElmerResult.getLastPostObject().touch()
+ self.solver.ElmerResult.recomputeChildren()
self.solver.Document.recompute()
def _createResults(self):