商业CFD软件一般提供较好的交互界面窗口,方便用户在仿真计算前或者计算中对仿真结果进行处理,因此在用户友好度上评分较高。相比之下,OpenFOAM作为无GUI仿真软件,用户基本都需借助ParaFoam/ParaView平台进行可视化后处理,操作略显繁琐。其实,OpenFOAM具有内置的后处理命令行窗口(post-processing command line interface),以下分享几个后处理常用的工具/命令。
OpenFOAM
选用motorBike教程算例进行详细说明,文件位于:
下图为OpenFOAM中使用后处理函数得到的速度云图与流线图。
foamLog工具
postProcess工具
下面以probes后处理函数为例介绍其基本使用步骤:
使用 foamInfo probes 获取函数的描述
使用 foamGet probes 复 制配置文件到当下算例
编辑 system/probes 用户参数输入文件
执行指令postProcess -func probes,将自动创建postProcessing/probes文件夹并提取当下算例所有时间步结果中对应探针的物理量。
基于以上数据做进一步处理分析
必须等到运行结束才能进行后处理,计算过程与后处理是独立的。
后处理的数据提取依赖于用户保存的中间时间步结果。
Run-time实时后处理
为弥补postProcess工具带来的不足,可采用run-time实时后处理方法。该方法中调用的后处理函数与postProcess -list穷举出来的一致,只是形式上要将其放入controlDict的functions代码块中。
其对应的源码及说明位于:$FOAM_SRC/OpenFOAM/db/functionObjects/functionObject/functionObject.H
再次以motorBike算例为例,其 system/controlDict 内的functions包含:
展开cuttingPlane为例,其基本要素与上文提及的 functionObject.H 一致。
采用该run-time方法时,用户只需敲入对应求解器命令计算即可,在计算过程中,程序会自动输出用户定义好的后处理函数结果到postProcessing文件夹。
OpenFOAM内置了大量的后处理函数,用户可基于命令行形式使用postProcess工具调用,也可以将对应函数放入system/controlDict的functions模块中,从而实现run-time实时输出的功能。这里仅以比较简单的函数在此抛砖引玉,还需各位foamer一起发掘更强大的功能,希望对大家有所帮助。