后处理:计算 Qdot
后处理计算 Qdot
前言
上一期我们介绍了通过自定义求解器,计算并输出 Qdot,但对于你之前用BYRFoam
跑完的算例,如何以后处理的方式计算Qdot
,这就要用到今天介绍的内容:求解器后处理,let it run but not completely run!
需要做的修改
下面直接在rdeFoam/source/solver/BYRFoam/
路径下修改即可,因为这部分修改的代码只在运行求解器后处理时才生效,所以并不影响BYRFoam
的正常使用。
打开
createFields.H
文件,对照原程序,在下面位置修改代码:1
2
3
4
5
6
7
8
9
10if (functionObject::postProcess)
{
Info<< "Correcting reaction" << endl;
reaction->correct();
// new add to output Qdot
volScalarField Qdot("Qdot", reaction->Qdot());
Info <<"Writing heat release rate Qdot to " << Qdot.objectPath() << endl;
Qdot.write();
}运行
wmake
重新编译BYRFoam
即可。
运行后处理
在算例目录下运行求解器后处理,其实就是加上了一个
-postProcess
选项:1
BYRFoam -postProcess
运行完成后,你就会发现在每个时间步的文件夹里,多出来一个
Qdot
的文件,大功告成!
并行后处理
如果你觉得跑的太慢了,你甚至可以并行!
首先修改
system/decomposeParDict
里的分块数,视自己本地电脑的核数而定,比如设为8:1
numberOfSubdomains 8;
运行
decomposePar
进行分块,需要注意,在对多个时间步的算例进行分块时,记得加上-time
选项,示例如下:1
decomposePar -time 0:0.0006
接下来并行运行后处理:
1
mpirun -np 8 BYRFoam -parallel -postProcess
然后运行
reconstructPar
合并分块数据,就完事了!
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 橙喵の小窝!