fluent总结.docx
《fluent总结.docx》由会员分享,可在线阅读,更多相关《fluent总结.docx(25页珍藏版)》请在冰豆网上搜索。
fluent总结
解决问题的步骤
确定所解决问题的特征之后,你需要以下几个基本的步骤来解决问题:
1.创建网格.
2.运行合适的解算器:
2D、3D、2DDP、3DDP。
3.输入网格
4.检查网格
5.选择解的格式
6.选择需要解的基本方程:
层流还是湍流(无粘)、化学组分还是化学反应、热传导模型等
7.确定所需要的附加模型:
风扇,热交换,多孔介质等。
8..指定材料物理性质
8.指定边界条件
9.调节解的控制参数
10.初始化流场
11.计算解
12.检查结果
13.保存结果
14.必要的话,细化网格,改变数值和物理模型。
在所有计算机操作系统上FLUENT都包含这两个解算器。
大多数情况下,单精度解算器高效准确,但是对于某些问题使用双精度解算器更合适。
下面举几个例子:
如果几何图形长度尺度相差太多(比如细长管道),描述节点坐标时单精度网格计算就不合适了;如果几何图形是由很多层小直径管道包围而成(比如:
汽车的集管)平均压力不大,但是局部区域压力却可能相当大(因为你只能设定一个全局参考压力位置),此时采用双精度解算器来计算压差就很有必要了。
对于包括很大热传导比率和(或)高比率网格的成对问题,如果使用单精度解算器便无法有效实现边界信息的传递,从而导致收敛性和(或)精度下降
coupled是耦合的意思,指同能量方程一起求解,而segrated是动量方程、压力方程和能量方程分开单独求解,迭代求解。
一般能用耦合的时候尽量用,精度高。
而分段并行求解一般精度低。
GAMBIT 专用的CFD前置处理器(几何/网格生成)
Fluent4.5 基于结构化网格的通用CFD求解器
Fluent6.0 基于非结构化网格的通用CFD求解器
Fidap 基于有限元方法的通用CFD求解器
Polyflow 针对粘弹性流动的专用CFD求解器
Mixsim 针对搅拌混合问题的专用CFD软件
Icepak 专用的热控分析CFD软件捕捉坐标网格线相交点功能。
Snap:
FLUENT求解器设置主要包括:
1、压力-速度耦合方程格式选择2、对流插值3、梯度插值4、压力插值
下面对这几种设置做详细说明。
一、压力-速度耦合方程求解算法
FLUENT中主要有四种算法:
SIMPLE,SIMPLEC,PISO,FSM
(1)SIMPLE(semi-implicitmethodforpressure-linkedequations)半隐式连接压力方程方法,是FLUENT的默认格式。
(2)SIMPLEC(SIMPLE-consistent)。
对于简单的问题收敛非常快速,不对压力进行修正,所以压力松弛因子可以设置为1
(3)Pressure-ImplicitwithSplittingofOperators(PISO)。
对非定常流动问题或者包含比平均网格倾斜度更高的网格适用
(4)FractionalStepMethod(FSM)对非定常流的分步方法。
用于NITA格式,与PISO具有相同的特性。
二、对流插值(动量方程)
FLUENT有五种方法:
一阶迎风格式、幂率格式、二阶迎风格式、MUSL三阶格式、QUICK格式
(1)FLUENT默认采用一阶格式。
容易收敛,但精度较差,主要用于初值计算。
(2)PowerLar.幂率格式,当雷诺数低于5时,计算精度比一阶格式要高。
(3)二阶迎风格式。
二阶迎风格式相对于一阶格式来说,使用更小的截断误差,适用于三角形、四面体网格或流动与网格不在同一直线上;二阶格式收敛可能比较慢。
(4)MUSL(monotoneupstream-centeredschemesforconservationlaws).当地3阶离散格式。
主要用于非结构网格,在预测二次流,漩涡,力等时更精确。
(5)QUICK(Quadraticupwindinterpolation)格式。
此格式用于四边形/六面体时具有三阶精度,用于杂交网格或三角形/四面体时只具有二阶精度。
三、梯度插值梯度插值主要是针对扩散项。
FLUENT有三种梯度插值方案:
green-gausscell-based,Green-gaussnode-based,least-quarescellbased.
(1)格林-高斯基于单元体。
求解方法可能会出现伪扩散。
(2)格林-高斯基于节点。
求解更精确,最小化伪扩散,推荐用于三角形网格上
(3)基于单元体的最小二乘法插值。
推荐用于多面体网格,与基于节点的格林-高斯格式具有相同的精度和格式。
四、压力插值压力基分离求解器主要有五种压力插值算法。
(1)标准格式(Standard)。
为FLUENT缺省格式,对大表妹边界层附近的曲线发现压力梯度流动求解精度会降低(但不能用于流动中压力急剧变化的地方——此时应该使用PRESTO!
格式代替)
(2)PRESTO!
主要用于高旋流,压力急剧变化流(如多孔介质、风扇模型等),或剧烈弯曲的区域。
(3)Linear(线性格式)。
当其他选项导致收敛困难或出现非物理解时使用此格式。
(4)secondorder(二阶格式)。
用于可压缩流动,不能用于多孔介质、阶跃、风扇、VOF/MIXTURE多相流。
(5)BodyForceWeighted体积力。
当体积力很大时,如高雷诺数自然对流或高回旋流动中采用此格式。
学习Fluent的经验汇总(转摘的,个人有空看看用)
1 现在用FLUENT的UDF来加入模块,但是用compiledudf时,共享库老是连不上?
解决办法:
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里可以添加进出口流量监控(printorplot),当残差收敛到一定程度后,
还要看进出口流量是否达到稳定平衡,才可以确认收敛与否。
残差在较高位震荡,需要检查边界条件是否合理,其次检查初始条件是否合适,比如在有激波的
流场,初始条件不合适,会带来流场的震荡。
有时流场可能有分离或者回流,这本身是非定常现象,
计算时残差会在一定程度上发生震荡,这时如果进出口流量是否达到稳定平衡,也可以认为流场收敛了
(前提是要消除其他不合理因数)。
另外Fluent缺损地采用多重网格,在计算后期,将多重网格设置
为零可以避免一些波长的残差在细网格上发生震荡。
7模型比较复杂,是在pro/E中建的模,然后用igs导入gambit,不过这样就产生了很多碎线和碎面并且
在一些面交界的地方还存在尖角。
我曾经做成功过把它们统统merge成一个虚面,中间设置了一个可以
容忍尖角的参数,也可以划分网格,但把生成的msh文件导入fluent就会出错,这是virtualgeometry
的原因还是因为尖角的原因?
还有,virtualgeometry和普通的真实的几何体到底有什么区别?
好像最大
的区别是virtualgeometry不能进行布尔操作,布尔操作(booleanoperation)又是什么?
使用virtualgeometry需要注意哪些问题?
virtualgeometry是很头疼的问题。
你把它们统统merge成一个虚面
按理说全是虚的也是可以算的。
可能是因为尖角的原因,虚实最大差别:
是virtualgeometry不能
进行布尔操作,booleanoperation即是并
对于复杂外形的网格生成,不可避免的会用到virtualgeometry,virtualface,和virtualedge等,
1。
作网格的时候,把所有的面全部合成一个虚面的做法不好,特别是对于复杂外形的网格生成,
你最好在模型变化剧烈的地方多分几个面,这样会更有效的控制网格能够在模型表面曲率比较大的
地方能够生成规则的结构或者非结构网格。
2对于你输入gambit的时候产生很多碎片的问题,你可以适当的把proe里面的模型精度和它的公差降低
,因为gambit的建模工具精度本事就不高。
3。
布尔运算就是对于面与面,体与体的联合,相减等运算。
这个在所有的cad建模过程中是经常见
到的问题。
4。
对于虚体生成的计算网格,和实体生成的计算网格,在计算的时候没有区别,关键是看你网格
生成的质量如何,与实体虚体无关。
我在作复杂模型计算的时候,大部分都是用的虚体,特别是从其他的建模软件里面导进来的复杂
模型,基本上不能够生成实体。
至于计算的效果如何,那是你对于fluent的设置问题和网格的质量问题,与模型无关。
可以用gambit里面的check功能检查一下你的网格质量,看看质量怎么样
实体、实面与虚体、虚面的区别
在建模中,经常会遇到实...与虚...,而且虚体的计算域好像也可以进行计算并得到所需的结果,
对二者的根本区别及在功能上的不同
对于求解是没有任何区别的,只要你能在虚体或者实体上划分你需要的网格
--------------------------------------------------------------------------------
gambit的实体和虚体在生成网格和计算的时候对于结果没有任何影响,实体和虚体的主要区别有以下几点:
1。
实体可以进行布尔运算但是虚体不能,虽然不能进行布尔运算,但是虚体存在merge,split等功能。
2,实体运算在很多cad软件里面都有,但是虚体是gambit的一大特色,有了虚体以后,
gambit的建模和网格生成的灵活性增加了很多。
3。
在网格生成的过程中,如果有几个相对比较评弹的面,你可以把它们通过merge合成一个
,这样,作网格的时候,可以节省步骤,对于曲率比较大的面,可能生成的网格质量不好,
这时候,你可以采取用split的方式把它划分成几个小面以提高网格质量
8 问题一:
在画体网格时总出现initializationfailedperturbboundarynodesandtryagain.
但是还在继续画。
我想一定是有问题的。
但不知道问题出现在哪里?
谨请各位大虾赐教!
问题二:
在画面网格时已经定义了spacing,那么在画体网格时再定义,会不会有冲突?
还有,
究竟怎样定义才是合理的?
第一个问题:
在做网格时,所有的错误提示都表明部分网格生成要么有问题没有生成,
要么生成的质量很差,要重新检查一下几何体和网格类型.
第二个问题:
如果能够生成网格的话,重复定义没有问题,但是可能会出现生成面网格的
spacing和体网格的spacing不一致而产生冲突,这种情况下gambit会自动处理,
但生成的网格质量未必好.
9 在用gambit生成体网格的时候,出现了问题,提示是
Initializationfailedtomesh23nodes.
ERROR:
TG_mesh_domainfailedwitherrorcode1.
ERROR:
Tegrahedralmeshinghasfailedforvolumev_volume.1.
thisisusuallycausedbyproblemsinthefacemeshs.
checkhteskewnessesofyourfacemeshesandmakesuretheface
meshsizearenottoolargeinareasofsmallgaps.
我明白这是因为模型中的狭长面太多,但是在修改了大量的狭长面以后,
还是存在这个问题,每一个面我都挨着做了一下网格,看看生成的质量怎么样,
检查应该没有问题了,但是在生成体网格的时候,又出现这个问题,不知道该怎么办
解决办法
1.减小体网格size,当有多个体的时候,体网格从小到大过渡要合理,跨度不要太大
2.合并小面(小面与小面合并,小面并入大面),变成虚体
我觉得合并小面是个很有效的方法,网格质量也可以得到提升
关键是两个小面之间的夹角很大,合并之后会出现一个像角铁一样的拐角面,
做网格的时候效果更差了,老兄说的合并成虚面的情况应该是两个面的夹角不是
太大的情况,减小size我也试验了,但是减小了以后,我的网格数量就太多了,
算东东的时候机子跑不动
那就把夹角很大的那两个小面部分单独切为一个体算了,对这个体给个很小的size
再试试吧,不行就把它忽略掉
Gambit生成的网格质量向来让人很头疼的,用ICEM几乎不出现负体积,这可能跟
Gambit的算法有关系,对于曲率比较大的区域,只能增加该处的网格密度,只能这样了。
**********10 1FLUENT的初始化面板中有一项是设置从哪个地方开始计算(compute from),
选择从不同的边界开始计算有很大的区别吗?
该怎样根据具体问题选择从哪里计算呢?
比如有两个速度入口A和B,还有压力出口等等,是选速度入口还是压力出口?
如果选速度
入口,有两个,该选哪个呀?
有没有什么原则标准之类的东西?
一般是选取ALLZONE,即所有区域的平均处理,通常也可选择有代表性的进口
(如多个进口时)进行初始化。
对于一般流动问题,初始值的设定并不重要,
因为计算容易收敛。
但当几何条件复杂,而且流动速度高变化快(如音速流动),
初始条件要仔细选择。
如果不收敛,还应试验不同的初始条件,甚至逐次改变边界
条件最后达到所要求的条件。
2 要判断自己模拟的结果是否是正确的,似乎解的收敛性要比那些初始条件和
边界条件更重要,可以这样理解吗?
也就是说,对于一个具体的问题,初始条件
和边界条件的设定并不是唯一的,为了使解收敛,需要不断调整初始条件和
边界条件直到解收敛为止,是吗?
如果解收敛了,是不是就可以基本确定模拟
的结果是正确的呢?
对于一个具体的问题,边界条件的设定当然是唯一的,只不过初始化时可以选择
不同的初始条件(指定常流),为了使解的收敛比较好,我一般是逐渐的调节边界
条件到额定值("额定值"是指你题目中要求的入口或出口条件,例如计算一个管
内流动,要求入口压力和温度为10MPa和3000K,那么我开始叠代时选择入口压力和
温度为1MPa和500K(假设,这看你自己问题了),等流场计算的初具规模、收敛的
较好了,再逐渐调高压力和温度,经过好几次调节后最终到达额定值10MPa和3000K,
这样比一开始就设为10MPa和3000K收敛的要好些)这样每次叠代可以比较容易收敛,
每次调节后不用再初始化即自动调用上次的解为这次的初始解,然后继续叠代。
即使解收敛了,这并不意味着就可以基本确定模拟的结果是正确的,还需要和实验
的结果以及理论分析结果进行对比分析。
*********11 这个shadow从何而来?
其边界层应当如何设定?
你定义了属性不同的两个计算域(例如A和B区域),两个区域形成共同的交界面。
其中A计算域的面取以前的名称,而B计算域的面则取该名称.shadow的名字。
在边界条件中将该表面定义为interior,则可以将该两区域结合成相连的计算域。
请问shadow 是自动生成的还是要自己去定义?
自动生成的
******shadow面通常在两种情况下出现:
1.当一个wall两面都是流体域时,那么wall的一面被定义为wall.1,wall的
另一面就会被软件自动定义为wall.1_shadow,它的特性和wall是一样的,
有关它的处理和wall面没有什么区别;
2.另外一种情况就是当你在fluent软件中,把周期性面的周期特性除去时,
也会出现一个shadow面,这种情况比较好理解,shadow面和原来的面分别构
成周期性的两个面.
shadow也出现在wall的一面是流体,而另一面是固体的情况。
此时可以
进行流体-固体的耦合计算。
******静温和总温度
总温即驻点温度,速度完全滞止时的温度
静温即当地的热力学温度
两者有计算关系式的,和总压、静压差不多
也有区别呀……
比如说总温可以看作流体能量的一个度量,总压就不可以……
绝热流总温沿流线不变,总压是下降的(不等熵)……
速度嘛就是流体宏观运动的速度呀,由能量守衡知道,机械能和热能的总和是守衡的,
当机械能全部转化为热能,准确点说这里应该指动能全部转化的时候,即速度为0的时候,
那一点的温度就是驻点温度,也就是总温,这样的点在实际流场中可能存在,如前驻点,
也可能不存在,只是一种换算而已,用来描述流体总能量的参量。
静温就是一般意义上的温度,就是你在那一点能测量出来的温度,比如你说的火场,
那么实际温度,比如说1000度,这个就是静温:
)静温是区别总温的
****怎样判断计算结果是否收敛!
1、观察点处的值不再随计算步骤的增加而变化;
2、各个参数的残差随计算步数的增加而降低,最后趋于平缓;
3、要满足质量守恒(计算中不牵涉到能量)或者是质量与能量守恒(计算中牵涉到能量)。
特别要指出的是,即使前两个判据都已经满足了,也并不表示已经得到合理的收敛解了,
因为,如果松弛因子设置得太紧,各参数在每步计算的变化都不是太大,也会使前两个
判据得到满足。
此时就要再看第三个判据了。
还需要说明的就是,一般我们都希望在收敛的情况下,残差越小越好,但是残差曲线是
全场求平均的结果,有时其大小并不一定代表计算结果的好坏,有时即使计算的残差
很大,但结果也许是好的,关键是要看计算结果是否符合物理事实,即残差的大小与
模拟的物理现象本身的复杂性有关,必须从实际物理现象上看计算结果。
比如说本斑
最近在算的一个全机模型,在大攻角情况下,解震荡得非常厉害,而且残差的量级也总
下不去,但这仍然是正确的,为什么呢,因为大攻角下实际流动情形就是这样的,不断有
涡的周期性脱落,流场本身就是非定常的,所以解也是波动的,处理的时候取平均就可以呢:
)
1 1.什么是结构化网格和非结构化网格
1.1结构化网格
从严格意义上讲,结构化网格是指网格区域内所有的内部点都具有相同的毗邻单元。
它可以很容易地实现区域的边界拟合,适于流体和表面应力集中等方面的计算。
它的主要优点是:
网格生成的速度快。
网格生成的质量好。
数据结构简单。
对曲面或空间的拟合大多数采用参数化或样条插值的方法得到,区域光滑,
与实际的模型更容易接近。
它的最典型的缺点是适用的范围比较窄,只适用于形状规则的图形。
尤其随着近几年的计算机和数值方法的快速发展,人们对求解区域的几何
形状的复杂性的要求越来越高,在这种情况下,结构化网格生成技术就显得力不从心了。
1.2非结构化网格
同结构化网格的定义相对应,非结构化网格是指网格区域内的内部点不具有相同的毗邻单元。
即与网格剖分区域内的不同内点相连的网格数目不同。
从定义上可以看出,结构化网格和
非结构化网格有相互重叠的部分,即非结构化网格中可能会包含结构化网格的部分。
2.如果一个几何造型中既有结构化网格,也有非结构化网格,分块完成的,分别生成网格后,
也可以直接就调入fluent中计算。
3.在fluent中,对同一个几何造型,如果既可以生成结构化网格,也可生成非结构化网格,
当然前者要比后者的生成复杂的多,那么应该选择哪种网格,两者计算结果是否相同,哪个
的计算结果更好些呢?
一般来说,结构网格的计算结果比非结构网格更容易收敛,也更准确。
但后者容易做。