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