From d24bc269f2f81cfbc8d2569f22bfc6be9c65c0b2 Mon Sep 17 00:00:00 2001 From: andy Date: Fri, 29 Nov 2013 09:24:11 +0000 Subject: [PATCH] ENH: output function objects - added evaluateControl --- .../OutputFilterFunctionObject.C | 8 ++++-- .../OutputFilterFunctionObject.H | 3 +++ .../outputFilterOutputControl.C | 27 +++++++++++++------ .../outputFilterOutputControl.H | 15 ++++++++--- 4 files changed, 40 insertions(+), 13 deletions(-) diff --git a/src/OpenFOAM/db/functionObjects/OutputFilterFunctionObject/OutputFilterFunctionObject.C b/src/OpenFOAM/db/functionObjects/OutputFilterFunctionObject/OutputFilterFunctionObject.C index a9049b07bc..df1e480b87 100644 --- a/src/OpenFOAM/db/functionObjects/OutputFilterFunctionObject/OutputFilterFunctionObject.C +++ b/src/OpenFOAM/db/functionObjects/OutputFilterFunctionObject/OutputFilterFunctionObject.C @@ -110,7 +110,8 @@ Foam::OutputFilterFunctionObject::OutputFilterFunctionObject storeFilter_(true), timeStart_(-VGREAT), timeEnd_(VGREAT), - outputControl_(t, dict) + outputControl_(t, dict, "output"), + evaluateControl_(t, dict, "evaluate") { readDict(); } @@ -159,7 +160,10 @@ bool Foam::OutputFilterFunctionObject::execute allocateFilter(); } - ptr_->execute(); + if (evaluateControl_.output()) + { + ptr_->execute(); + } if (forceWrite || outputControl_.output()) { diff --git a/src/OpenFOAM/db/functionObjects/OutputFilterFunctionObject/OutputFilterFunctionObject.H b/src/OpenFOAM/db/functionObjects/OutputFilterFunctionObject/OutputFilterFunctionObject.H index c9cc34c8ce..6e874dc52a 100644 --- a/src/OpenFOAM/db/functionObjects/OutputFilterFunctionObject/OutputFilterFunctionObject.H +++ b/src/OpenFOAM/db/functionObjects/OutputFilterFunctionObject/OutputFilterFunctionObject.H @@ -98,6 +98,9 @@ class OutputFilterFunctionObject //- Output controls outputFilterOutputControl outputControl_; + //- Evaluate controls + outputFilterOutputControl evaluateControl_; + //- Pointer to the output filter autoPtr ptr_; diff --git a/src/OpenFOAM/db/functionObjects/outputFilterOutputControl/outputFilterOutputControl.C b/src/OpenFOAM/db/functionObjects/outputFilterOutputControl/outputFilterOutputControl.C index 6865b31fb9..5ddb9d564b 100644 --- a/src/OpenFOAM/db/functionObjects/outputFilterOutputControl/outputFilterOutputControl.C +++ b/src/OpenFOAM/db/functionObjects/outputFilterOutputControl/outputFilterOutputControl.C @@ -31,7 +31,7 @@ License namespace Foam { template<> - const char* NamedEnum:: + const char* NamedEnum:: names[] = { "timeStep", @@ -39,11 +39,12 @@ namespace Foam "adjustableTime", "runTime", "clockTime", - "cpuTime" + "cpuTime", + "none" }; } -const Foam::NamedEnum +const Foam::NamedEnum Foam::outputFilterOutputControl::outputControlNames_; @@ -52,10 +53,12 @@ const Foam::NamedEnum Foam::outputFilterOutputControl::outputFilterOutputControl ( const Time& t, - const dictionary& dict + const dictionary& dict, + const word& prefix ) : time_(t), + prefix_(prefix), outputControl_(ocTimeStep), outputInterval_(0), outputTimeLastDump_(0), @@ -75,9 +78,12 @@ Foam::outputFilterOutputControl::~outputFilterOutputControl() void Foam::outputFilterOutputControl::read(const dictionary& dict) { - if (dict.found("outputControl")) + const word controlName(prefix_ + "Control"); + const word intervalName(prefix_ + "Interval"); + + if (dict.found(controlName)) { - outputControl_ = outputControlNames_.read(dict.lookup("outputControl")); + outputControl_ = outputControlNames_.read(dict.lookup(controlName)); } else { @@ -88,13 +94,13 @@ void Foam::outputFilterOutputControl::read(const dictionary& dict) { case ocTimeStep: { - outputInterval_ = dict.lookupOrDefault