【分享+搬运】自定义非均匀inlet U
-
有条件的可以自行油管:https://www.youtube.com/watch?v=K-nAF3qAPTc
感谢youtuber:Mark Kimber
侵删-
首先你要有一个自己的进口速度场的公式
或者自行拟合一个,根据实际情况来。
-
在Terminal中输入
writeCellCentres
获取网格每个cell的坐标,会生成ccx,ccy,ccz三个文件,内涵每个patch中的每个cell的坐标(x,y,z),找到inlet patch,我的是topWall。3个文件中的topwall(就是我的inlet)的2100代表的是这个patch上又2100个网格。同理对于ccy文件同样找到这个patch的所有cell坐标。分别复制这些数据,生成两个新的文本,叫inletX, inletY。根据实际网格情况,以及坐标轴自行选择用哪2个文件。
-
进入octave(一个类似matlab的程序,youtuber是这么说的)这一步主要是根据你的速度场的公式,xy坐标,计算出进口的vector。
x= load('inletX'); //读取inlet patch的x坐标 y=load('inletY'); //读取inlet patch的y坐标 Uz==1.1+0.18988/0.01415/sqrt(3.1415926/2)*exp(-2*(x.^2+y.^2)/0.1415.^2); //公式 fid= fopen('inletU','w')// inletU文件要提前新建好,不知道为什么视频中输出结果为5,我的结果一直为3,不过不影响使用 N=length(x) for i=1:N fprintf(fid,'(%8.4f %8.4f %8.4f) \n',0,0,Uz(i)); end fclose(fid)
其实第3步完全可以用excel做。。。。。。。
-
把得到的vector的值带入到0/U中
-
进入paraview中查看即可
-
-
感谢分享,楼主好人
-
想咨询下, 这个实现的功能跟setFields有什么区别?比如说这个方法设置的入口面速度值是一直固定的?而etFields是否只是个初始值,但会随时间改变?
-
@aiweimo setfields 应该是定义cell centers 的值吧(这个我不是太确定,如果错误希望各位大神指正),这个应该是定义的入口边界处的,还有那个writeCellCentres现在应该是在postProcessing中了,不能直接用。如果你想定义随时间改变的inlet,可以参考一下timeVaringMappedFixedValue(也许拼错了哈哈)。具体实现的例子,可以参考一个叫eddylicious的工具包,或者查看openfoam的代码,或者去cfdonline上查看对应的例子。