of如何给入口赋值?fixedProfile有没有对应的三维形式?
-
如题,二维情况下,给入口用文件赋值,可以通过fixedProfile,给定入口在某条线上的数据分布形式。
最近在做三维计算,有没有对应的工具可以实现? -
自问自答一下:
具体方法参考这个链接
先说一下整体背景:
我要做的是飞行器进气道+燃料掺混段的仿真,分开计算,先算的进气道,想把进气道出口的数据转换到掺混段入口计算。操作方法:
- 1. 使用如下代码,获取掺混段网格信息
#include "fvCFD.H" int main(int argc, char *argv[]) { #include "setRootCase.H" #include "createTime.H" // 在头文件createMesh.H中创建了一个名为mesh的fvMesh对象 #include "createMesh.H" Info << "当前时间文件:" << runTime.timeName() << nl << "网格数量:" << mesh.C().size() << nl << "网格面数量:" << mesh.Cf().size() << nl << nl; // 利用mesh.boundaryMesh()函数获取边界面信息 forAll(mesh.boundaryMesh(), patchI) { Info << "Patch[" << patchI << "]:" << mesh.boundary()[patchI].name() << "包括" << mesh.boundary()[patchI].Cf().size() << "个网格面" << nl << "起始面为:" << mesh.boundary()[patchI].start() << endl; } Info << endl; forAll(mesh.boundaryMesh(), patchI) { Info << "Patch[" << patchI << "]:" << mesh.boundary()[patchI].name() << nl; for (label faceI = 0; faceI < mesh.boundary()[patchI].Cf().size(); faceI++) { Info << mesh.boundary()[patchI].Cf()[faceI] << nl; } } return 0; }
代码的编译运行等流程参考上面的链接,运行时添加“| tee log”生成log文件,结果如下图:
会按照网格面的编号顺序返回网格面心坐标-
2.使用自己熟悉的语言,写一个脚本
使用tecplot,提取进气道出口数据(包含坐标值和数据值),然后只需要把这二者一一对应起来就行了 -
3.手动拷贝到of中0文件夹下各个变量
像这样:
boundaryField { INLET { type fixedValue; value nonuniform List<scalar> 493 ( 62304.3935999968 62304.3935999968 62304.3935999968 62304.3935999968 61340.9584462695 61340.9584462695 61340.9584462695 61340.9584462695 60768.5332074465 60768.5332074465 60768.5332074465 60768.5332074465 60032.5837566927 60032.5837566927 60032.5837566927 60032.5837566927 59027.6877524254 59027.6877524254 59027.6877524254 ...省略