您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > Fluent动网格----layering个一个简单实例(作者Snow).
Fluent动网格----layering个一个简单实例我这几天看了点动网格技术方面的东西,在学习过程中发现这方面的例子很少,自己也走了一些弯路。现在还好,弄明白了一些,能够应付现在我的工作。为了让更多学习者快速了解动网格,我打算尽量把我学习心得在这里和大家分享,这里给出一个layering的一个简单例子。1.Gambit画网格本例很简单,在Gambit里画一个10*10的矩形,网格间隔为1,也就是有100个网格,具体见下图。都学动网格的人了,不至于这个不会做!这里需要注意一个问题:设置边界条件的时候,一定要把要移动的边单独设定,本例中一右边界作为移动的边,设成wall就可以,这里再后面需要制定。2.编写UDF#includeudf.h#includeunsteady.h#includestdio.h#includestdlib.h/************************************************************/realcurrent_time=0.0;Domain*domain;Thread*thread;realNV_VEC(origin),NV_VEC(force),NV_VEC(moment);/************************************************************/DEFINE_CG_MOTION(throttle,dt,vel,omega,time,dtime){current_time=CURRENT_TIME;vel[0]=30;Message(time=%fomega=%f\n,current_time);}上面这段代码就是设置x轴方向的速度为30米每秒(UDF默认是SI单位制)。vel[0]表示x、vel[1]表示y、vel[2]表示z。细心读者肯定会有疑问,这里并没有指定是哪条边界移动,别急,这需要到后面,在Fluent里设置。2.Fluent设置(1)导入mesh文件;(2)Grid--Check;(3)Define--solver,勾选unsteady,因为是动网格吗,既然动了肯定不是定常的了。(4)Define--User-defined--Function--CompiledAdd添加UDF文件,点击Build,如果不出错的话,等编译完后点击Load,UDF就OK了。(5)动网格设置Define--Dynamicmesh--Parameters,勾选Dynamicmesh,就会弹出点击Remeshing如图中设置,接着点击Layering(6)Define--Dynamicmesh--Zones,弹出ZoneNames中选择你要移动的边界,就是你在Gambit里单独指定的Wall边界条件,当然你也可以更改。Type里选择刚体,及平移运动,MotionUDF/Profile里选择刚刚编译好的udf,编译成功了肯定是有的。然后点击MeshingOptions,如下图设置CellHeight在layering方法下是指理想高度,一般就是网格的边长,还记得我们在Gambit里做的是10*10的正方形,间隔为1画的网格,所以网格边长就是1,因此这里设置成1。然后依次点击Creat、Draw、Update、Close。我做的时候就把这一步忘了,结果是边界动了,但是没有画出新的网格(见下图),弄了很久,上网上搜也没结果,希望大家不要出错了。到这里,就设置结束了,就可以看网格运动了,迫不及待吧,别急,呵呵。(7)Solve--Meshmotion,弹出如图中设置。解释一下:TimeStepSize时间步长,就是你Fluent每执行迭代一次的时间,NumberofTimeSteps设为100,就是迭代100次,那么总共就是1秒,联想到UDF里面,x轴方向速度设置的是30米每秒,那么执行完右边界将是移动30米,整个网格变为40*10的矩形。点击Preview就能看到结果了,到这一步很有成就感吧,是不是对UDF有个感性认识,甚者感觉恍然大悟,呵呵。执行完得图可惜不会做动画,什么时候做个动画弄上来。到此就结束了,欢迎各位博友互相交流学习!
本文标题:Fluent动网格----layering个一个简单实例(作者Snow).
链接地址:https://www.777doc.com/doc-5204629 .html