diff --git a/src/functionObjects/utilities/runTimeControl/runTimeControl.C b/src/functionObjects/utilities/runTimeControl/runTimeControl.C index 840ed4d968..e300301664 100644 --- a/src/functionObjects/utilities/runTimeControl/runTimeControl.C +++ b/src/functionObjects/utilities/runTimeControl/runTimeControl.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2015 OpenFOAM Foundation - Copyright (C) 2015-2020 OpenCFD Ltd. + Copyright (C) 2015-2021 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -53,6 +53,7 @@ Foam::Enum > Foam::functionObjects::runTimeControls::runTimeControl::satisfiedActionNames { + { satisfiedAction::ABORT, "abort"}, { satisfiedAction::END, "end"}, { satisfiedAction::SET_TRIGGER, "setTrigger"}, }; @@ -251,6 +252,7 @@ bool Foam::functionObjects::runTimeControls::runTimeControl::execute() switch (satisfiedAction_) { + case satisfiedAction::ABORT: case satisfiedAction::END: { // Set to write a data dump or finalise the calculation @@ -284,6 +286,13 @@ bool Foam::functionObjects::runTimeControls::runTimeControl::execute() // Trigger any function objects time.run(); + + if (satisfiedAction_ == satisfiedAction::ABORT) + { + FatalErrorInFunction + << "Abort triggered" + << exit(FatalError); + } } break; } diff --git a/src/functionObjects/utilities/runTimeControl/runTimeControl.H b/src/functionObjects/utilities/runTimeControl/runTimeControl.H index 3b014bf7c1..66d09222ed 100644 --- a/src/functionObjects/utilities/runTimeControl/runTimeControl.H +++ b/src/functionObjects/utilities/runTimeControl/runTimeControl.H @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2015-2016 OpenFOAM Foundation - Copyright (C) 2016-2018 OpenCFD Ltd. + Copyright (C) 2016-2021 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -76,8 +76,9 @@ public: enum class satisfiedAction { - END, - SET_TRIGGER + ABORT, //!< "abort" - write and emit a FatalError + END, //!< "end" - write and exit cleanly + SET_TRIGGER //!< "setTrigger" - trigger another condition }; static Enum satisfiedActionNames;