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 system
singleGraph
文件的内容如下,
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/