本文主要讲解两种方法用来显示OpenFOAM的计算残差,一种是采用OpenFOAM自带的foamMonitor来输出残差,另一种就是大家经常看见的采用pyFoam来输出残差。不管采用哪一种方法都必须安装gnuplot。
安装gnuplot的方法为:在Linux(以乌班图为例)的终端中输入
sudo apt-get install gnuplot
方 法一:采用自带的foamMonitor来输出残差我们首先需要将OpenFOAM中输出残差的文件拷贝到算例的system目录下,我们可以采用以下命 令在OpenFOAM的安装目录下查找该文件
find /opt/openfoam4/ -name residuals
然后我们使用cp命令将查找到的residuals文件拷贝到算例system文件夹下
cp “/opt/openfoam4/etc/caseDicts/postProcessing/numerical/residuals” “/home/dell/new/system”
接着我们在算例的system/controlDict文件中添加后处理函数
functions
{
#includeFunc residuals
}
文件为:
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
application simpleFoam;
startFrom latestTime;
startTime 0;
stopAt endTime;
endTime 20000;
deltaT 1;
writeControl timeStep;
writeInterval 50;
purgeWrite 0;
writeFormat ascii;
writePrecision 6;
writeCompression off;
timeFormat general;
timePrecision 6;
runTimeModifiable true;
functions
{
#includeFunc residuals
}
我们运行算例
simpleFoam &
我们在该窗口输入以下命令:
cd postProcessing
cd residuals
cd 0
foamMonitor -l residuals.dat
上面那么繁琐的命令可以用用一句命令表示:
foamMonitor -l postProcessing/residuals/0/residuals.dat
接着见证奇迹的时刻到来了!残差出现了
未尽事宜,请参考视频操作
原版视频下载地址:https://yunpan.cn/ckffDej3CXzQJ(提取码:1e27)
方法二:应用Python的pyFoam来输出残差
可参看博文:
http://blog.sina.com.cn/s/blog_5fdfa7e60100g4zw.html
http://blog.sina.com.cn/s/blog_4a0a8b5d0100s832.html
两篇博文均采用svn的方式安装pyFoam,但是不只是时间太长还是其他什么原因,本人无法通过svn的方式下载PyFoam,但我们可以下载已经编译为二进制的PyFoam包,采用以下命令安装pyFoam:
sudo pip install ./PyFoam-0.6.6-py2.py3-none-any.whl
pyFoam二进制包的下载地址为:
https://pypi.python.org/pypi/PyFoam
需要特别指出的一点是两篇博文在利用log日志文件进行残差显示时都采用的
pyFoamPlotWatch.py cavity.log,而正确的命令应该为:
pyFoamPlotWatcher.py cavity.log
未尽事宜,请参考视频操作
原版视频下载地址:https://yunpan.cn/ckff4DQRC5CiK(提取码:8e55)