From 8b387961d958b9d4d25ecfbc2fcc2f24af599467 Mon Sep 17 00:00:00 2001 From: Andrew Heather <> Date: Fri, 17 Aug 2018 16:52:11 +0100 Subject: [PATCH] ENH: run-time control clean-up --- .../stateFunctionObject/stateFunctionObject.C | 4 +-- .../averageCondition/averageCondition.C | 9 +------ .../averageCondition/averageCondition.H | 2 +- .../equationInitialResidualCondition.C | 7 ----- .../equationInitialResidualCondition.H | 2 +- .../equationMaxIterCondition.C | 7 ----- .../equationMaxIterCondition.H | 2 +- .../minMaxCondition/minMaxCondition.C | 10 +------ .../minMaxCondition/minMaxCondition.H | 2 +- .../minTimeStepCondition.C | 7 ----- .../minTimeStepCondition.H | 2 +- .../runTimeCondition/runTimeCondition.C | 6 ----- .../runTimeCondition/runTimeCondition.H | 2 +- .../utilities/runTimeControl/runTimeControl.C | 27 +++++++++++-------- .../utilities/runTimeControl/runTimeControl.H | 15 ++++++----- 15 files changed, 35 insertions(+), 69 deletions(-) diff --git a/src/OpenFOAM/db/functionObjects/stateFunctionObject/stateFunctionObject.C b/src/OpenFOAM/db/functionObjects/stateFunctionObject/stateFunctionObject.C index 04768c89eb..9659fa2deb 100644 --- a/src/OpenFOAM/db/functionObjects/stateFunctionObject/stateFunctionObject.C +++ b/src/OpenFOAM/db/functionObjects/stateFunctionObject/stateFunctionObject.C @@ -205,8 +205,8 @@ Foam::functionObjects::stateFunctionObject::objectResultEntries() const } -Foam::List Foam::functionObjects::stateFunctionObject:: -objectResultEntries +Foam::List +Foam::functionObjects::stateFunctionObject::objectResultEntries ( const word& objectName ) const diff --git a/src/functionObjects/utilities/runTimeControl/runTimeCondition/averageCondition/averageCondition.C b/src/functionObjects/utilities/runTimeControl/runTimeCondition/averageCondition/averageCondition.C index a4dc98cf61..0b3951bf99 100644 --- a/src/functionObjects/utilities/runTimeControl/runTimeCondition/averageCondition/averageCondition.C +++ b/src/functionObjects/utilities/runTimeControl/runTimeCondition/averageCondition/averageCondition.C @@ -78,12 +78,6 @@ Foam::functionObjects::runTimeControls::averageCondition::averageCondition } -// * * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * // - -Foam::functionObjects::runTimeControls::averageCondition::~averageCondition() -{} - - // * * * * * * * * * * * * * * Public Member Functions * * * * * * * * * * * // bool Foam::functionObjects::runTimeControls::averageCondition::apply() @@ -145,9 +139,8 @@ bool Foam::functionObjects::runTimeControls::averageCondition::apply() << "From function object: " << functionObjectName_ << nl << "Unprocessed fields:" << nl; - forAll(unprocessedFields, i) + for (const label fieldi : unprocessedFields) { - label fieldi = unprocessedFields[i]; Info<< " " << fieldNames_[fieldi] << nl; } } diff --git a/src/functionObjects/utilities/runTimeControl/runTimeCondition/averageCondition/averageCondition.H b/src/functionObjects/utilities/runTimeControl/runTimeCondition/averageCondition/averageCondition.H index f76163edca..5c647b2981 100644 --- a/src/functionObjects/utilities/runTimeControl/runTimeCondition/averageCondition/averageCondition.H +++ b/src/functionObjects/utilities/runTimeControl/runTimeCondition/averageCondition/averageCondition.H @@ -110,7 +110,7 @@ public: ); //- Destructor - virtual ~averageCondition(); + virtual ~averageCondition() = default; // Public Member Functions diff --git a/src/functionObjects/utilities/runTimeControl/runTimeCondition/equationInitialResidualCondition/equationInitialResidualCondition.C b/src/functionObjects/utilities/runTimeControl/runTimeCondition/equationInitialResidualCondition/equationInitialResidualCondition.C index ac86c8313e..0ad3bf5879 100644 --- a/src/functionObjects/utilities/runTimeControl/runTimeCondition/equationInitialResidualCondition/equationInitialResidualCondition.C +++ b/src/functionObjects/utilities/runTimeControl/runTimeCondition/equationInitialResidualCondition/equationInitialResidualCondition.C @@ -95,13 +95,6 @@ equationInitialResidualCondition } -// * * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * // - -Foam::functionObjects::runTimeControls::equationInitialResidualCondition:: -~equationInitialResidualCondition() -{} - - // * * * * * * * * * * * * * * Public Member Functions * * * * * * * * * * * // bool Foam::functionObjects::runTimeControls::equationInitialResidualCondition:: diff --git a/src/functionObjects/utilities/runTimeControl/runTimeCondition/equationInitialResidualCondition/equationInitialResidualCondition.H b/src/functionObjects/utilities/runTimeControl/runTimeCondition/equationInitialResidualCondition/equationInitialResidualCondition.H index 849342ad55..fa0ca263b1 100644 --- a/src/functionObjects/utilities/runTimeControl/runTimeCondition/equationInitialResidualCondition/equationInitialResidualCondition.H +++ b/src/functionObjects/utilities/runTimeControl/runTimeCondition/equationInitialResidualCondition/equationInitialResidualCondition.H @@ -99,7 +99,7 @@ public: ); //- Destructor - virtual ~equationInitialResidualCondition(); + virtual ~equationInitialResidualCondition() = default; // Public Member Functions diff --git a/src/functionObjects/utilities/runTimeControl/runTimeCondition/equationMaxIterCondition/equationMaxIterCondition.C b/src/functionObjects/utilities/runTimeControl/runTimeCondition/equationMaxIterCondition/equationMaxIterCondition.C index 874c96a6ab..deed871bda 100644 --- a/src/functionObjects/utilities/runTimeControl/runTimeCondition/equationMaxIterCondition/equationMaxIterCondition.C +++ b/src/functionObjects/utilities/runTimeControl/runTimeCondition/equationMaxIterCondition/equationMaxIterCondition.C @@ -76,13 +76,6 @@ equationMaxIterCondition } -// * * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * // - -Foam::functionObjects::runTimeControls::equationMaxIterCondition:: -~equationMaxIterCondition() -{} - - // * * * * * * * * * * * * * * Public Member Functions * * * * * * * * * * * // bool Foam::functionObjects::runTimeControls::equationMaxIterCondition::apply() diff --git a/src/functionObjects/utilities/runTimeControl/runTimeCondition/equationMaxIterCondition/equationMaxIterCondition.H b/src/functionObjects/utilities/runTimeControl/runTimeCondition/equationMaxIterCondition/equationMaxIterCondition.H index d3538c22c7..f5595d8e82 100644 --- a/src/functionObjects/utilities/runTimeControl/runTimeCondition/equationMaxIterCondition/equationMaxIterCondition.H +++ b/src/functionObjects/utilities/runTimeControl/runTimeCondition/equationMaxIterCondition/equationMaxIterCondition.H @@ -84,7 +84,7 @@ public: ); //- Destructor - virtual ~equationMaxIterCondition(); + virtual ~equationMaxIterCondition() = default; // Public Member Functions diff --git a/src/functionObjects/utilities/runTimeControl/runTimeCondition/minMaxCondition/minMaxCondition.C b/src/functionObjects/utilities/runTimeControl/runTimeCondition/minMaxCondition/minMaxCondition.C index 9042fcc4d7..72a1fee939 100644 --- a/src/functionObjects/utilities/runTimeControl/runTimeCondition/minMaxCondition/minMaxCondition.C +++ b/src/functionObjects/utilities/runTimeControl/runTimeCondition/minMaxCondition/minMaxCondition.C @@ -90,12 +90,6 @@ Foam::functionObjects::runTimeControls::minMaxCondition::minMaxCondition {} -// * * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * // - -Foam::functionObjects::runTimeControls::minMaxCondition::~minMaxCondition() -{} - - // * * * * * * * * * * * * * * Public Member Functions * * * * * * * * * * * // bool Foam::functionObjects::runTimeControls::minMaxCondition::apply() @@ -107,10 +101,8 @@ bool Foam::functionObjects::runTimeControls::minMaxCondition::apply() return satisfied; } - forAll(fieldNames_, fieldi) + for (const word& fieldName :fieldNames_) { - const word& fieldName = fieldNames_[fieldi]; - const word valueType = state_.objectResultType(functionObjectName_, fieldName); diff --git a/src/functionObjects/utilities/runTimeControl/runTimeCondition/minMaxCondition/minMaxCondition.H b/src/functionObjects/utilities/runTimeControl/runTimeCondition/minMaxCondition/minMaxCondition.H index ef95f935cd..f6c177ba7f 100644 --- a/src/functionObjects/utilities/runTimeControl/runTimeCondition/minMaxCondition/minMaxCondition.H +++ b/src/functionObjects/utilities/runTimeControl/runTimeCondition/minMaxCondition/minMaxCondition.H @@ -112,7 +112,7 @@ public: ); //- Destructor - virtual ~minMaxCondition(); + virtual ~minMaxCondition() = default; // Public Member Functions diff --git a/src/functionObjects/utilities/runTimeControl/runTimeCondition/minTimeStepCondition/minTimeStepCondition.C b/src/functionObjects/utilities/runTimeControl/runTimeCondition/minTimeStepCondition/minTimeStepCondition.C index 50b05b611e..17f5facdd8 100644 --- a/src/functionObjects/utilities/runTimeControl/runTimeCondition/minTimeStepCondition/minTimeStepCondition.C +++ b/src/functionObjects/utilities/runTimeControl/runTimeCondition/minTimeStepCondition/minTimeStepCondition.C @@ -63,13 +63,6 @@ minTimeStepCondition {} -// * * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * // - -Foam::functionObjects::runTimeControls::minTimeStepCondition:: -~minTimeStepCondition() -{} - - // * * * * * * * * * * * * * * Public Member Functions * * * * * * * * * * * // bool Foam::functionObjects::runTimeControls::minTimeStepCondition::apply() diff --git a/src/functionObjects/utilities/runTimeControl/runTimeCondition/minTimeStepCondition/minTimeStepCondition.H b/src/functionObjects/utilities/runTimeControl/runTimeCondition/minTimeStepCondition/minTimeStepCondition.H index 7b406a9857..45fbdd90a8 100644 --- a/src/functionObjects/utilities/runTimeControl/runTimeCondition/minTimeStepCondition/minTimeStepCondition.H +++ b/src/functionObjects/utilities/runTimeControl/runTimeCondition/minTimeStepCondition/minTimeStepCondition.H @@ -78,7 +78,7 @@ public: ); //- Destructor - virtual ~minTimeStepCondition(); + virtual ~minTimeStepCondition() = default; // Public Member Functions diff --git a/src/functionObjects/utilities/runTimeControl/runTimeCondition/runTimeCondition/runTimeCondition.C b/src/functionObjects/utilities/runTimeControl/runTimeCondition/runTimeCondition/runTimeCondition.C index 1214378d0d..5573f54761 100644 --- a/src/functionObjects/utilities/runTimeControl/runTimeCondition/runTimeCondition/runTimeCondition.C +++ b/src/functionObjects/utilities/runTimeControl/runTimeCondition/runTimeCondition/runTimeCondition.C @@ -89,12 +89,6 @@ Foam::functionObjects::runTimeControls::runTimeCondition::runTimeCondition {} -// * * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * // - -Foam::functionObjects::runTimeControls::runTimeCondition::~runTimeCondition() -{} - - // * * * * * * * * * * * * * * Public Member Functions * * * * * * * * * * * // const Foam::word& diff --git a/src/functionObjects/utilities/runTimeControl/runTimeCondition/runTimeCondition/runTimeCondition.H b/src/functionObjects/utilities/runTimeControl/runTimeCondition/runTimeCondition/runTimeCondition.H index 53627de320..a9168b82cd 100644 --- a/src/functionObjects/utilities/runTimeControl/runTimeCondition/runTimeCondition/runTimeCondition.H +++ b/src/functionObjects/utilities/runTimeControl/runTimeCondition/runTimeCondition/runTimeCondition.H @@ -129,7 +129,7 @@ public: ); //- Destructor - virtual ~runTimeCondition(); + virtual ~runTimeCondition() = default; //- Selector static autoPtr New diff --git a/src/functionObjects/utilities/runTimeControl/runTimeControl.C b/src/functionObjects/utilities/runTimeControl/runTimeControl.C index 43e768e75f..06621c839f 100644 --- a/src/functionObjects/utilities/runTimeControl/runTimeControl.C +++ b/src/functionObjects/utilities/runTimeControl/runTimeControl.C @@ -60,18 +60,13 @@ Foam::functionObjects::runTimeControls::runTimeControl::runTimeControl nWriteStep_(0), writeStepI_(0), satisfiedAction_(satisfiedAction::end), - triggerIndex_(labelMin) + triggerIndex_(labelMin), + active_(getObjectProperty(name, "active", true)) { read(dict); } -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -Foam::functionObjects::runTimeControls::runTimeControl::~runTimeControl() -{} - - // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // bool Foam::functionObjects::runTimeControls::runTimeControl::read @@ -117,17 +112,17 @@ bool Foam::functionObjects::runTimeControls::runTimeControl::read else { // Check that at least one condition is active - bool active = false; + bool check = false; for (const auto& condition : conditions_) { if (condition.active()) { - active = true; + check = true; break; } } - if (!active) + if (!check) { Info<< type() << " " << name() << " output:" << nl << " All conditions are inactive" << nl @@ -156,6 +151,11 @@ bool Foam::functionObjects::runTimeControls::runTimeControl::read bool Foam::functionObjects::runTimeControls::runTimeControl::execute() { + if (!active_) + { + return true; + } + Info<< type() << " " << name() << " output:" << nl; // IDs of satisfied conditions @@ -242,12 +242,17 @@ bool Foam::functionObjects::runTimeControls::runTimeControl::execute() Info<< " Stopping calculation" << nl << " Writing fields - final step" << nl; time.writeAndEnd(); - break; } + break; } case satisfiedAction::setTrigger: { + Info<< " Setting trigger " << triggerIndex_ << nl; setTrigger(triggerIndex_); + + // Deactivate the model + active_ = false; + setProperty("active", active_); break; } } diff --git a/src/functionObjects/utilities/runTimeControl/runTimeControl.H b/src/functionObjects/utilities/runTimeControl/runTimeControl.H index 8cd0037095..91e3ce7763 100644 --- a/src/functionObjects/utilities/runTimeControl/runTimeControl.H +++ b/src/functionObjects/utilities/runTimeControl/runTimeControl.H @@ -3,7 +3,7 @@ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | \\ / A nd | Copyright (C) 2015-2016 OpenFOAM Foundation - \\/ M anipulation | Copyright (C) 2016- OpenCFD Ltd. + \\/ M anipulation | Copyright (C) 2016-2018 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -32,7 +32,7 @@ Description user-specified conditions. Optionally specify a number of write steps before the calculation is - terminated. Here, a write is performed each time that all conditons are + terminated. Here, a write is performed each time that all conditions are satisfied. SourceFiles @@ -96,12 +96,16 @@ private: //- Current number of steps written label writeStepI_; - //- Action to take when conditions are satified + //- Action to take when conditions are satisfied satisfiedAction satisfiedAction_; //- Trigger index if satisfiedAction is setTrigger label triggerIndex_; + //- Active flag + // Used in the trigger case to bypass any evaluations after the + // trigger has been set + bool active_; // Private Member Functions @@ -121,8 +125,7 @@ public: // Constructors - //- Construct for given objectRegistry and dictionary. - // Allow the possibility to load fields from files + //- Construct for given objectRegistry and dictionary runTimeControl ( const word& name, @@ -132,7 +135,7 @@ public: //- Destructor - virtual ~runTimeControl(); + virtual ~runTimeControl() = default; // Member Functions