functionObjects::stopAtTimeStep: New functionObject to stop the run if the time-step becomes too small

This is useful to write results before a case fails due to uncontrollable
automatic time-step reduction, usually caused by unstable pressure-velocity
coupling.

Class
    Foam::functionObjects::stopAtTimeStep

Description
    Stops the run if the time-step drops below the specified value in seconds
    and optionally write results before stopping.

    The following actions are supported:
    - noWriteNow
    - writeNow (default)
    - nextWrite

    Examples of function object specification:
    \verbatim
    stop
    {
        type            stopAtTimeStep;

        libs            ("libutilityFunctionObjects.so");

        minDeltaT       1e-8;
        action          writeNow;
    }
    \endverbatim
    will write the fields and stop if the time-step drops below 1e-8s.

Usage
    \table
        Property  | Description               | Required | Default value
        type      | type name: stopAtTimeStep | yes      |
        minDeltaT | Minimum time-step [s]     | yes      |
        action    | Action executed           | no       | writeNow
    \endtable
This commit is contained in:
Henry Weller
2023-04-13 13:01:42 +01:00
parent ea1e078463
commit 4974cc2e1d
4 changed files with 233 additions and 5 deletions

View File

@ -8,6 +8,7 @@ systemCall/systemCall.C
stopAt/stopAt.C
stopAt/stopAtFile/stopAtFile.C
stopAt/stopAtClockTime/stopAtClockTime.C
stopAt/stopAtTimeStep/stopAtTimeStep.C
removeRegisteredObject/removeRegisteredObject.C
writeDictionary/writeDictionary.C
writeObjects/writeObjects.C