OpenFOAM 功能探索:stopAt

通过 stop 文件 或者 运行时间 终止 OpenFOAM 算例

本文介绍一下 OpenFOAM Foundation 新出的功能 stopAt

stopAtFile

描述

在算例目录创建一个文件,用于终止算例,此外还支持在停止之前输出结果。

用法

stop
{
type stopAtFile;
libs ("libutilityFunctionObjects.so");
file "$FOAM_CASE/stop";
action nextWrite; // nextWrite (default); writeNow; noWriteNow
}

当你的 controlDict 中存在这个 function object 时,如果在算例目录创建一个文件 stop,那么你的算例算例将会在下一次输出之后终止。
或者选择 writeNow,那么你的算例将立马输出,然后终止。
或者选择 noWriteNow,那么你的算例将立马终止。

用途举例

以前我想停掉一个算例时,我会把 controlDict 中的 endTime 改为 writeNow
现在有了 stopAtFile,我可以避免 writeNow 了。
因为它输出的最后时刻的时间文件夹,总是带了很多小数点。
现在我可以使用 action nextWrite,然后创建一个 stop 文件,可以更加优雅的停掉算例了。
以上只是我临时想出来的,相信大家可以创造出更有意思的用法。

stopAtClockTime

描述

限制你的算例运行时间,比如下面的用法,将会在算例开始 10 秒后终止,此外可以控制是否在终止前输出结果。

用法

stop
{
type stopAtClockTime;
libs ("libutilityFunctionObjects.so");
stopTime 10;
action nextWrite; // nextWrite (default); writeNow; noWriteNow
}

用途举例

当我们在超算上运行 OpenFOAM 算例时,经常会有任务最大时长限制,如果我们不想浪费任何机时。
可以使用 stopAtClockTimestopTime 设置为超算的任务最大时长限制减去一个数,action 设置为 writeNow
减去的这个数是为了预留时间进行输出。
或者预留更多时间,然后将 action 设置为 nextWrite
这样你就会避免 writeNow 的时候,输出的时间带很多小数点。

文章作者: Yan Zhang
文章链接: https://openfoam.top/stopAt/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 OpenFOAM 成长之路
您的肯定会给我更大动力~