[FEM] Elmer: fix pipeline update issue

- the existing result pipeline can have several children. They must all be updated.
This commit is contained in:
Uwe
2022-08-07 06:24:16 +02:00
parent da88c7a6d3
commit 8913921f5b
5 changed files with 25 additions and 3 deletions
+6
View File
@@ -225,6 +225,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())
+4 -3
View File
@@ -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[];
+5
View File
@@ -28,6 +28,11 @@
<UserDocu>Load a result object</UserDocu>
</Documentation>
</Methode>
<Methode Name="recomputeChildren">
<Documentation>
<UserDocu>Recomputes all children of the pipeline</UserDocu>
</Documentation>
</Methode>
<Methode Name="getLastPostObject">
<Documentation>
<UserDocu>Get the last post-processing object</UserDocu>
+9
View File
@@ -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, ""))
+1
View File
@@ -236,6 +236,7 @@ class Results(run.Results):
self.solver.ElmerResult.read(postPath)
self.solver.ElmerResult.scale(1000)
self.solver.ElmerResult.getLastPostObject().touch()
self.solver.ElmerResult.recomputeChildren()
self.solver.Document.recompute()
def _createResults(self):