diff --git a/applications/utilities/postProcessing/miscellaneous/execFlowFunctionObjects/execFlowFunctionObjects.C b/applications/utilities/postProcessing/miscellaneous/execFlowFunctionObjects/execFlowFunctionObjects.C index ccc1ec294843ff4417c88cebae9ecbbed7695779..4f3f4deebe61e7d084ab67c542d97fb5cdab5e60 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 cb07c911c47afcc20b3de4081c183ac272f3accf..d7d78f159135bb7720948cdbb659dec74ac5098e 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 0e894a38b70c26561926ef2f2bb47092317de9a2..88facb0e6f814348a629da6510f6cf901235a28a 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 14904c7f43e5a72a76eb8abdf3e1d83925c2c199..37c80eee838d3be4ba31933c382bc8d776d12937 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 f965c6353b90b1100949e2d613042e6e56ddfcb3..a5a44c7218a01a88b6353e7a3d5fca814f821b18 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 10d293cb93686ae97750ca76ae9a626473aaf324..2515b0b161e918bd4dbc44de91aced0bcc915b84 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 9b20bf25084aeece4914b0d16e278ccac2f0f436..e583b2fbea384d7419152099049cbaa3e9dac27c 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();