学习Fluent的经验汇总
1 现在用FLUENT的UDF来加入模块,但是用compiled udf时,共享库老是连不上?
解决办法:
1〉你的计算机必须安装C语言编译器。
2〉请你按照以下结构构建文件夹和存放文件:
libudf/src/*.c (*.c为你的源程序);
libudf/ntx86/2d(二维为2d,三维为3d)/makefile(由makefile_nt.udf改过来的)
libudf/ntx86/2d(二维为2d,三维为3d)/user_nt.udf(对文件中的SOURCE,VERSION,P
ARALLEL_NODE进行相应地编辑)
3〉通过命令提示符进入文件夹libudf/ntx86/2d/中,运行C语言命令 nmake,如果C预言
编译器按装正确和你的源程序无错误,那么此时会编译出Fluent需要的库文件(*.lib)
这时再启动Fluent就不会出错了。
2 在使用UDF中用编译连接,按照帮助文件中给出的步骤去做了,结果在连接中报错
“系统找不到指定文件”。
udf 文件可能不在工作目录中,应该把它拷到工作目录下,或者输入它的全部路径.
3 这个1e-3或者1e-4的收敛标准是相对而言的。在FLUENT中残差是以开始5步的平均值为基准进行
比较的。如果你的初值取得好,你的迭代会很快收敛,但是你的残差却依然很高;但是当你改变初
场到比较不同的值时,你的残差开始会很大,但随后却可以很快降低到很低的水平,让你看起来心
情很好。其实两种情况下流场是基本相同的。
由此来看,判断是否收敛并不是严格根据残差的走向而定的。可以选定流场中具有特征意义的点,
监测其速度,压力,温度等的变化情况。如果变化很小,符合你的要求,即可认为是收敛了。
一般来说,压力的收敛相对比较慢一些的。
是否收敛不能简单看残差图,还有许多其他的重要标准,比如进出口流量差、压力系数波动等等
尽管残差仍然维持在较高数值,但凭其他监测也可判断是否收敛。最重要的就是是否符合物理事实
或试验结论。
残差曲线是否满足只是一个表面的现象,还要看进口和出口总量差不得大于1%,而且即使这样子,
收敛解也不一定准确,它和网格划分/离散化误差,以及屋里模型的准确性都有关系.所以得有试验数
据做对比活着理论分析了
当然最终是否正确是要看是否与实验数据相符合!但既然有残差图的话,总应该可以大概的看出
是否收敛吧?是否要残差要小到一定的程度,或者是残差不在增长,就可以一定程度上认为是收敛
的
残差的大小不能决定是否收敛,我在用FLUENT计算时,多采用监测一个面的速度(或者是压力、
紊动能等参数)基本上不随着计算时间的推移而变化,就认为基本达到收敛
4 据质量守恒,收敛时进、出口的流量数值应大致相等(一般认为进出口质量差值比上入口质量的
相对值小于0.5%时收敛,但是对特殊情况可能不同 ),但符号相反,一般出口流量是负值。
5 在进行稳态计算时候,开始残差线是一直下降的,可是到后来各种残差线都显示为波形波动,
是不是不收敛阿?
答:
有些复杂或流动环境恶劣情形下确实很难收敛。计算的精度(2阶),网格太疏,网格质量太差,
等都会使残差波动。
经常遇到,一开始下降,然后出现波动,可以降低松弛系数,我的问题就能收敛,但如果网格质
量不好,是很难的。通常,计算非结构网格,如果问题比较复杂,会出现这种情况,
建议作网格时多下些功夫 。
理论上说,残差的震荡是数值迭代在计算域内传递遭遇障碍物反射形成周期震荡导致的结果,
与网格亚尺度雷诺数有关。例如,通常压力边界是主要的反射源,换成OUTFLOW边界会好些。
这主要根据经验判断。所以我说网格和边界条件是主要因素。
6 残差——是cell各个Face的通量之和,当收敛后,理论上当单元体内没有源相时各个面流入的通
量也就是对物理量的输运之和应该为0。最大残差或者RSM残差反映流场与所要模拟流场(指收敛后
应该得到的流场,当然收敛后得到的流场与真实流场之间还是存在一定的差距)的差距,残差越小
越好,由于存在数值精度问题,不可能得到0残差,对于单精度计算一般应该低于初始残差1e-03
以下为好,但还要看具体问题。
一般在Fluent里可以添加进出口流量监控(print or plot),当残差收敛到一定程度后,
还要看进出口流量是否达到稳定平衡,才可以确认收敛与否。
残差在较高位震荡,需要检查边界条件是否合理,其次检查初始条件是否合适,比如在有激波的
流场,初始条件不合适,会带来流场的震荡。有时流场可能有分离或者回流,这本身是非定常现象,
计算时残差会在一定程度上发生震荡,这时如果进出口流量是否达到稳定平衡,也可以认为流场收敛了
(前提是要消除其他不合理因数)。另外Fluent缺损地采用多重网格,在计算后期,将多重网格设置
为零可以避免一些波长的残差在细网格上发生震荡。
7 模型比较复杂,是在pro/E中建的模,然后用igs导入gambit,不过这样就产生了很多碎线和碎面并且
在一些面交界的地方还存在尖角。我曾经做成功过把它们统统merge成一个虚面,中间设置了一个可以
容忍尖角的参数,也可以划分网格,但把生成的msh文件导入fluent就会出错,这是virtual geometry
的原因还是因为尖角的原因?还有,virtual geometry和普通的真实的几何体到底有什么区别?好像最大
的区别是virtual geometry不能进行布尔操作,布尔操作(boolean operation)又是什么?
使用virtual geometry需要注意哪些问题?
virtual geometry是很头疼的问题。你把它们统统merge成一个虚面
按理说全是虚的也是可以算的。可能是因为尖角的原因,虚实最大差别:是virtual geometry不能
进行布尔操作,boolean operation即是并
对于复杂外形的网格生成,不可避免的会用到virtual geometry,virtual face ,和virtual edge等,
1。作网格的时候,把所有的面全部合成一个虚面的做法不好,特别是对于复杂外形的网格生成,
你最好在模型变化剧烈的地方多分几个面,这样会更有效的控制网格能够在模型表面曲率比较大的
地方能够生成规则的结构或者非结构网格。
2对于你输入gambit的时候产生很多碎片的问题,你可以适当的把proe里面的模型精度和它的公差降低
,因为gambit的建模工具精度本事就不高。
3。布尔运算就是对于面与面,体与体的联合,相减等运算。这个在所有的cad建模过程中是经常见
到的问题。
4。对于虚体生成的计算网格,和实体生成的计算网格,在计算的时候没有区别,关键是看你网格
生成的质量如何,与实体虚体无关。
我在作复杂模型计算的时候,大部分都是用的虚体,特别是从其他的建模软件里面导进来的复杂
模型,基本上不能够生成实体。
至于计算的效果如何,那是你对于fluent的设置问题和网格的质量问题,与模型无关。
可以用gambit里面的check功能检查一下你的网格质量,看看质量怎么样
查看更多评论 >