OpenFOAM 5.0 控制字典文件 controlDict 详解
OpenFOAM 5.0 的控制字典文件controlDict位于当前算例文件夹的system目录下,其主要作用包括设置计算时间以及数据输出格式等,通过该文件的设置可实现自动调整计算时间步以及加载动态库文件等功能。

下面围绕设置controlDict文件参数可实现的各种功能展开详细介绍:
通过设置startTime等参数可实现计算时间的控制,包括计算开始时间、结束时间以及计算时间步长。

II. 数据输出控制( Data writing )
通过设置writeControl等参数可实现计算数据输出的控制,包括输出间隔、输出数据格式和精度等。

通过设置adjustTimeStep等参数可实现自动调节时间步的功能。runTimeModifiable参数设置为yes时,可在计算过程中修改controlDict文件,并在下一个时间步开始时读入修改后的信息。

IV. 运行时加载库和函数( Run-time loadable functionality )
通过设置libs和functions参数可调用动态库文件和附加函数。在使用第三方函数库如groovyBC时,需事先将libs参数设置为调用的动态库文件(libgroovyBC.so)。fuctions参数可调用的附加函数列表可参见CFD Direct网站上的说明 [1]。
下面介绍最常用的 probes 和singleGraph 函数的使用方法。

probes函数
该函数功能为程序运行时监测指定坐标点场数据随时间的变化。首先在 controlDict文件内添加以下语句,调用probes功能的相关函数。
functions
{
#includeFunc probes // 在functions列表中添加 probes 函数
}
接着运行以下命令,复制probes文件至system文件夹下,cp -r $FOAM_ETC/caseDicts/postProcessing/probes/probes system
probes文件的内容如下,
12
13 #includeEtc ”caseDicts/postProcessing/probes/probes.cfg”
14
15 fields (p U); // 监测场的名称
16 probeLocations
17 (
18 (0 0 0) // 监测点的坐标值
19 );
20
通过修改fields参数中可添加需监测的场,修改probeLocations的坐标值可添加监测点的坐标值。运行求解器后,指定坐标点的监测场随时间变化的数据输出至postProcessing/probes/0文件夹。
singleGraph函数
该函数功能为对计算结果数据取样并可视化。首先在 controlDict 文件内的functions 列表中添加 singleGraph 函数,接着运行以下命令,复制 singleGraph 文件至system 文件夹,cp -r $FOAM_ETC/caseDicts/postProcessing/graphs/singleGraph systemsingleGraph 文件的内容如下,
13
14 start (0.01 0.025 0); // 取样的起始点坐标
15 end (0.01 -0.025 0); // 取样的终点坐标
16 fields (U p); // 取样场的名称
17
18 // Sampling and I/O settings
19 #includeEtc ”caseDicts/postProcessing/graphs/sampleDict.cfg”
20
21 // Override settings here, e.g.
22 // setConfig { type midPoint; }
23
24 // Must be last entry
25 #includeEtc ”caseDicts/postProcessing/graphs/graph.cfg”
26
修改fields参数中可添加需采样的场,修改start 和end参数可设置取样点的坐标范围。计算完成后,在算例文件夹下输入命令 postProcess -func singleGraph,可对数据取样并输出至postProcessing/singleGraph文件夹。输出数据文件可直接通过gnuplot软件(需预先安装)处理实现可视化。
参考文献:
[1] CFD Direct Ltd. https://cfd.direct/openfoam/user-guide/v3-function-objects/