From 797c4a7457d632e6899b09b88087cfd6b3b35797 Mon Sep 17 00:00:00 2001 From: mattijs <mattijs> Date: Tue, 26 Oct 2010 16:23:36 +0100 Subject: [PATCH] ENH: functionObjects: force writing when used through execFlowFunctionObjects --- .../execFlowFunctionObjects/execFlowFunctionObjects.C | 4 ++-- .../OutputFilterFunctionObject.C | 7 +++++-- .../OutputFilterFunctionObject.H | 2 +- .../db/functionObjects/functionObject/functionObject.C | 2 +- .../db/functionObjects/functionObject/functionObject.H | 5 +++-- .../functionObjectList/functionObjectList.C | 4 ++-- .../functionObjectList/functionObjectList.H | 6 ++++-- 7 files changed, 18 insertions(+), 12 deletions(-) diff --git a/applications/utilities/postProcessing/miscellaneous/execFlowFunctionObjects/execFlowFunctionObjects.C b/applications/utilities/postProcessing/miscellaneous/execFlowFunctionObjects/execFlowFunctionObjects.C index ccc1ec29484..4f3f4deebe6 100644 --- a/applications/utilities/postProcessing/miscellaneous/execFlowFunctionObjects/execFlowFunctionObjects.C +++ b/applications/utilities/postProcessing/miscellaneous/execFlowFunctionObjects/execFlowFunctionObjects.C @@ -68,13 +68,13 @@ namespace Foam functionObjectList fol(runTime, dict); fol.start(); - fol.execute(); + fol.execute(true); // override outputControl - force writing } else { functionObjectList fol(runTime); fol.start(); - fol.execute(); + fol.execute(true); // override outputControl - force writing } } } diff --git a/src/OpenFOAM/db/functionObjects/OutputFilterFunctionObject/OutputFilterFunctionObject.C b/src/OpenFOAM/db/functionObjects/OutputFilterFunctionObject/OutputFilterFunctionObject.C index cb07c911c47..d7d78f15913 100644 --- a/src/OpenFOAM/db/functionObjects/OutputFilterFunctionObject/OutputFilterFunctionObject.C +++ b/src/OpenFOAM/db/functionObjects/OutputFilterFunctionObject/OutputFilterFunctionObject.C @@ -128,7 +128,10 @@ bool Foam::OutputFilterFunctionObject<OutputFilter>::start() template<class OutputFilter> -bool Foam::OutputFilterFunctionObject<OutputFilter>::execute() +bool Foam::OutputFilterFunctionObject<OutputFilter>::execute +( + const bool forceWrite +) { if (enabled_) { @@ -139,7 +142,7 @@ bool Foam::OutputFilterFunctionObject<OutputFilter>::execute() ptr_->execute(); - if (outputControl_.output()) + if (forceWrite || outputControl_.output()) { ptr_->write(); } diff --git a/src/OpenFOAM/db/functionObjects/OutputFilterFunctionObject/OutputFilterFunctionObject.H b/src/OpenFOAM/db/functionObjects/OutputFilterFunctionObject/OutputFilterFunctionObject.H index 0e894a38b70..88facb0e6f8 100644 --- a/src/OpenFOAM/db/functionObjects/OutputFilterFunctionObject/OutputFilterFunctionObject.H +++ b/src/OpenFOAM/db/functionObjects/OutputFilterFunctionObject/OutputFilterFunctionObject.H @@ -183,7 +183,7 @@ public: virtual bool start(); //- Called at each ++ or += of the time-loop - virtual bool execute(); + virtual bool execute(const bool forceWrite); //- Called when Time::run() determines that the time-loop exits virtual bool end(); diff --git a/src/OpenFOAM/db/functionObjects/functionObject/functionObject.C b/src/OpenFOAM/db/functionObjects/functionObject/functionObject.C index 14904c7f43e..37c80eee838 100644 --- a/src/OpenFOAM/db/functionObjects/functionObject/functionObject.C +++ b/src/OpenFOAM/db/functionObjects/functionObject/functionObject.C @@ -112,7 +112,7 @@ const Foam::word& Foam::functionObject::name() const bool Foam::functionObject::end() { - return execute(); + return execute(false); } diff --git a/src/OpenFOAM/db/functionObjects/functionObject/functionObject.H b/src/OpenFOAM/db/functionObjects/functionObject/functionObject.H index f965c6353b9..a5a44c7218a 100644 --- a/src/OpenFOAM/db/functionObjects/functionObject/functionObject.H +++ b/src/OpenFOAM/db/functionObjects/functionObject/functionObject.H @@ -147,8 +147,9 @@ public: //- Called at the start of the time-loop virtual bool start() = 0; - //- Called at each ++ or += of the time-loop - virtual bool execute() = 0; + //- Called at each ++ or += of the time-loop. forceWrite overrides the + // outputControl behaviour. + virtual bool execute(const bool forceWrite) = 0; //- Called when Time::run() determines that the time-loop exits. // By default it simply calls execute(). diff --git a/src/OpenFOAM/db/functionObjects/functionObjectList/functionObjectList.C b/src/OpenFOAM/db/functionObjects/functionObjectList/functionObjectList.C index 10d293cb936..2515b0b161e 100644 --- a/src/OpenFOAM/db/functionObjects/functionObjectList/functionObjectList.C +++ b/src/OpenFOAM/db/functionObjects/functionObjectList/functionObjectList.C @@ -144,7 +144,7 @@ bool Foam::functionObjectList::start() } -bool Foam::functionObjectList::execute() +bool Foam::functionObjectList::execute(const bool forceWrite) { bool ok = true; @@ -157,7 +157,7 @@ bool Foam::functionObjectList::execute() forAll(*this, objectI) { - ok = operator[](objectI).execute() && ok; + ok = operator[](objectI).execute(forceWrite) && ok; } } diff --git a/src/OpenFOAM/db/functionObjects/functionObjectList/functionObjectList.H b/src/OpenFOAM/db/functionObjects/functionObjectList/functionObjectList.H index 9b20bf25084..e583b2fbea3 100644 --- a/src/OpenFOAM/db/functionObjects/functionObjectList/functionObjectList.H +++ b/src/OpenFOAM/db/functionObjects/functionObjectList/functionObjectList.H @@ -153,8 +153,10 @@ public: //- Called at the start of the time-loop virtual bool start(); - //- Called at each ++ or += of the time-loop - virtual bool execute(); + //- Called at each ++ or += of the time-loop. forceWrite overrides + // the usual outputControl behaviour and forces writing always + // (used in postprocessing mode) + virtual bool execute(const bool forceWrite = false); //- Called when Time::run() determines that the time-loop exits virtual bool end(); -- GitLab