FLUENT操作过程及参数选择.docx
《FLUENT操作过程及参数选择.docx》由会员分享,可在线阅读,更多相关《FLUENT操作过程及参数选择.docx(24页珍藏版)》请在冰豆网上搜索。
FLUENT操作过程及参数选择操作过程及参数选择振动流化床仿真操作过程及参数选择1创建流化床模型。
创建流化床模型。
根据靳海波论文提供的试验机参数,创建流化床模型。
流化床直148mm,高1m,开孔率9%,孔径2mm。
在筛板上铺两层帆布保证气流均布。
因为实验机为一个圆形的流化床,所以可简化为仅二维模型。
而实际实验中流化高度远小于1m,甚至500mm,所以为提高计算时间,可将模型高度缩为500mm。
由于筛板上铺设两层帆布以达到气流均分的目的,所以认为沿整个筛板的进口风速为均匀的。
最终简化模型如下图所示:
上图为流化后的流化床模型,可以看出流化床下端的网格相对上端较密,因为流化行为主要发生的流化床下端,为了加快计算时间,所以采用这种下密上疏的划分方式。
其中进口设置为velocityinlet;出口设置为outflow;左右两边分为设置为wall。
在GAMBIT中设置完毕后,输出二维模型vfb.msh。
outflow边界条件不需要给定任何入口的物理条件,但是应用也会有限制,大致为以下四点:
1.只能用于不可压缩流动2.出口处流动充分发展3.不能与任何压力边界条件搭配使用(压力入口、压力出口)4.不能用于计算流量分配问题(比如有多个出口的问题)2打开打开FLUENT6.3.26,导入模型,导入模型vfb.msh点击GRIDCHECK,检查网格信息及模型中设置的信息,核对是否正确,尤其查看是否出现负体积和负面积,如出现马上修改。
核对完毕后,点击GRID-SCALE弹出SCALEGRID窗口,设置单位为mm,并点击changelengthunit按钮。
具体设置如下:
3设置求解器设置求解器保持其他设置为默认,更改TIME为unsteady,因为实际流化的过程是随时间变化的。
(1)pressurebased求解方法在求解不可压流体时,如果我们联立求解从动量方程和连续性方程离散得到的代数方程组,可以直接得到各速度分量及相应的压力值,但是要占用大量的计算内存,这一方法已可以在Fluent6.3中实现,所需内存为分离算法的1.5-2倍。
densitybased求解方法是针对可压流体设计的,因而更适合于可压流场的计算,以速度分量、密度(密度基)作为基本变量,压力则由状态方程求解。
Pressure-BasedSolver它是基于压力法的求解器,使用的是压力修正算法,求解的控制方程是标量形式的,擅长求解不可压缩流动,对于可压流动也可以求解;Fluent6.3以前的版本求解器,只有SegregatedSolver和CoupledSolver,其实也就是Pressure-BasedSolver的两种处理方法;Density-BasedSolver是Fluent6.3新发展出来的,它是基于密度法的求解器,求解的控制方程是矢量形式的,主要离散格式有Roe,AUSM+,该方法的初衷是让Fluent具有比较好的求解可压缩流动能力,但目前格式没有添加任何限制器,因此还不太完善;它只有Coupled的算法;对于低速问题,他们是使用Preconditioning方法来处理,使之也能够计算低速问题。
Density-BasedSolver下肯定是没有SIMPLEC,PISO这些选项的,因为这些都是压力修正算法,不会在这种类型的求解器中出现的;一般还是使用Pressure-BasedSolver解决问题。
(2)再GRADIENTOPTION选项组中,指定通过哪种压力梯度来计算控制方程中的导数项。
CELL-BASED(按单元中的压力梯度计算)和NODE-BASED(按节点的案例梯度计算)。
Porousformulation选项组用于制定多孔介质速度的方法。
(3)当选择UNSTEADY时,会出现UNSTEASDYFORMULATION选项组,让用户据顶时间相关项的计算公式及方法。
对于巨大多数问题选一阶隐式就足够了。
只有对精度有特别要求时才选二阶隐式。
4设置多相流模型。
设置多相流模型。
设置为欧拉模型,相数设置为2即为两相流,具体设置如下:
在Fluent中,共有三种欧拉-欧拉多相流模型,即VOF(VolumeOfFluid)模型、混合物(Mixture)模型和欧拉(Eulerian)模型。
(1)VOF模型。
VOF模型是一种在固定的欧拉网格下的表面跟踪方法。
当需要得到一种或多种互不相融流体间的交界面时,可以采用这种模型。
在VOF模型中,不同的流体组分共用着一套动量方程,计算时在整个流场的每个计算单元内,都记录下各流体组分所占有的体积率。
VOF模型的应用例子包括分层流、自由面流动、灌注、晃动、液体中大气泡的流动、水坝决堤时的水流以及求得任意液-气分界面的稳态或瞬时分界面。
(2)混合物模型。
混合物模型可用于两相流或多相流(流体或颗粒)。
因为在欧拉模型中,各相被处理为互相贯通的连续体,混合物模型求解的是混合物的动量方程,并通过相对速度来描述离散相。
混合物模型的应用包括低负载的粒子负载流、气泡流、沉降和旋风分离器。
混合物模型也可用于没有离散相相对速度的均匀多相流。
(3)Eulerian模型。
Fluent中最复杂的多相流模型。
它建立了一套包含有n个的动量方程和连续方程来求解每一相,压力项和各界面交换系数是耦合在一起的。
耦合的方式则依赖于所含相的情况,颗粒流(流-固)的处理与非颗粒流(流-流)是不同的。
欧拉模型的应用包括气泡柱、上浮、颗粒悬浮和流化床。
根据振动流化床的实际情况,本论文采用欧拉模型进行模拟。
5设置粘性模型。
设置粘性模型。
第一步,DEFINE-MODELS-VISCOUS,弹出VISCOUSMODEL对话框,选择K-EPSILO模型,点击确定。
第二步,在操作窗口内键入下面的命令:
define/models/viscous/turbulence-expert/low-re-k屏幕显示:
/define/models/viscous/turbulence-expertlow-re-kEnablethelow-Rek-epsilonturbulencemodel?
no输入y,在模型选择面板中我们就可以看见低雷模型low-re-kemodel了。
默认使用第0种低雷诺数模型。
第三步,Fluent中提供6种低雷诺数模型,使用low-re-ke-index命令设定一种。
low-re-ke-indexIndexModel0Abid1Lam-Bremhorst2Launder-Sharma3Yang-Shih4Abe-Kondoh-Nagano5Chang-Hsieh-Chen本仿真中默认使用第0种低雷诺数模型。
标准k-epsilo模型使用与湍流发展非常充分的湍流流动建立的,它是一种针对高雷诺数的湍流计算模型,它比零方程模型和一方程模型有了很大的改进,但是在用于强旋流、弯曲壁面流动或弯曲流线流动时会产生失真。
而相较标准模型,RNGk-模型修正了湍动粘度,考虑了平均流动的旋转及旋流流动情况,可以更好地处理高应变率及流线弯曲成都较大的流动,它还是针对充分发展的湍流,即还是高雷诺数模型。
Realizablek-模型一般被应用在包含有射流和混合流的自由流动、管道内流动、边界层流动等。
由于实际计算出的雷诺数较小,和上述三种湍流模型都不是很匹配。
而在FLUENT提供了数种专家模型,他们针对标准K-进行部分修正,使其能够适合低雷诺数使用,即为低雷诺数k-epsilo模型。
6定义材料属性。
定义材料属性。
DEFINE-MATERIALS,弹出材料对话框,点CREAT按钮,首先选择空气作为气相。
然后点击FLUENTDATABASEMATERIALS按钮,在材料库中任意选择一种流体,点击COPY按钮。
再将该材料的密度及名称改为所需材料的材料属性,设置如下,最后点击CHANGE。
7定义相。
定义相。
DEFINE-PHASE。
首先定义空气为主相,操作如下:
接着设置次相为固相MILLET。
点millet后点击SET按钮,弹出secondaryphase对话框,进下如下设置。
首先定义材料为GRANULAR,即为颗粒,定义颗粒粒径。
Packedbed为填充床,与实际不符合,故不选择。
颗粒温度模型选择PHASEPROPERTY相属性。
particaldifferentialequation为偏微分方程。
固体剪切粘度包括碰撞和动力部分,摩擦部分。
其中动力部分提供两种表达,默认的是SYAMLALETAL表达,和GIDASPOWETAL表达,通过实验一对比后选择SYAMLALETAL表达式。
固体体积粘度解释为颗粒压缩和扩张的抵抗力,对该项一般不存在争议,目前学术界普遍采用Lunetal的表达式。
本论文的仿真忽略摩擦粘度。
填充限制设置为0.6,即初始固相的体积分数最大为0.6。
设置气固封闭关系:
再PHASE对话框点击INTERACTION,设置气固相相互作用的曳力函数一般为WEN-YU,GIDASPOW,SYAMLAL-OBRIEN三种,实验一得出结论SYAMLAL-OBRIEN更符合实际。
所以选择Syamlal-Obrien曳力函数模型。
(1)Syamlal-OBrien模型234(20.4.31)这里曳力函数采用由DallaValle47给出的形式:
(20.4.32)这个模型是基于流化床或沉淀床颗粒的末端速度的测量,并使用了体积分数和相对雷诺数的函数关系式193:
(20.4.33)这里下标是第液体相,是第固体相,是第固体相颗粒的直径。
液体-固体交换系数有如下形式(20.4.34)这里是与固体相相关的末端速度73:
(20.4.35)其中(20.4.36)对,(20.4.37)对,(20.4.38)当固体相的剪切应力根据Syamlaletal定义时235(方程20.4.52),这个模型是合适的。
(2)对WenandYu模型262,液体-固体交换系数有如下形式:
(20.4.39)这里,(20.4.40)数由方程20.4.33定义。
这个模型适合于稀释系统。
(3)Gidaspow模型76是WenandYu模型262和Ergun方程62的联合。
当时,液体-固体交换系数有如下形式:
(20.4.41)这里(20.4.42)当时,(20.4.43)对密集的流化床,建议使用这个模型。
由于本流化床内的粒子直径远大于粒子间的距离,这样对接近充满的颗粒包含升力是不合适,所以忽略升力的影响,在LIFT选项选择NONE。
在恢复系数选项下保持默认的设置值0.9。
由于第二相密度远大于第一相,所以可以忽略虚拟质量力。
具体设置如下。
8编译编译UDF程序。
程序。
Define-user-defined-function-compiled,导入程序。
1)voidDEFINE_CG_MOTION(UDFname,Dynamic_Thread*dt,realvel,realomega,realtime,realdtime)。
此函数接口用于控制刚体的运动,用户把刚体质心运动速度和角速度分别赋值给vel和omega,FLUENT根据它们的值来自动计算出边界下一步的位置,从而实现动边界的控制;刚体质心的位置可以在函数接口界面对话框中定义。
DynamicZones中的dwall就是要控制的动边界,MotionUDF/Profile中的stc1sta010a0ph0就是UDFname,从中可看出它已被制定成用于控制dwall,理论上FLUENT可以通过这种方式实现无穷多个动边界的控制;C.G.Location用于设定初始位置的质心,C.G.Orientation用于设定刚体的初始角度。
一般适用于刚体本身不变形的运动。
2)voidDEFINE_GEOM(charname,Domain*d,Dynamic_Thread*dt,real*position)。
此函数接口用于控制变形体的边界运动,position就是运动边界上某网格节点的位置值,用户可以通过对其赋值达到控制效果,position0对应边界节点的x坐标,position1对应y坐标,position2对应z坐标;FLUENT自动遍历所有的边界节点,因此适用于有规律的可以用函数描述的运动边界。
3)voidDEFINE_GRID_MOTION(name,d,dt,time,dtime)。
此函数接口也用于控制形体的边界运动。
主要用于更加复杂的控制,用户需要自己利用FLUENT提供的其他函数来遍历运动边界上的节点,并对其位置进行控制,因此UDF编程比前面两种复杂得多。
它甚至可以事先生成好边界数据,在计算中把数据读入,完成复杂形体控制。
将振动处理为做正弦运动,即编写UDF程序使进口做正弦运动。
而通过上述三种动边界控制实现方法的比较,可以看出第一种voidDEFINE_CG_MOTION方法更适合振动流化床的模拟,改变进口边界的运动速度,从而完成正弦运动。
9定义动网格。
定义动网格。
在FLUENT中,动网格模型可以用来模拟由于流域边界运动引起流域形状随时间变化的流动情况。
这种流动情况即可以使一种指定的运动(随时间变化)也可以使未确定的运动(随某变化的参数变化),即边界的运动要由前一步的计算结果决定。
各个时间不的体网格的更新基于边界条件新的位置,有FLUENT自动完成。
动网格计算中网格的动态变化过程可以用三种模型进行计算,即弹簧近似光滑模型(spring-basedsmoothing)、动态分层模型(dynamiclayering)和局部重划模型(localremeshing)。
弹簧近似光滑模型在弹簧近似光滑模型中,网格的边被理想化为节点间相互连接的弹簧。
移动前的网格间距相当于边界移动前由弹簧组成的系统处于平衡状态。
在网格边界节点发生位移后,会产生与位移成比例的力,力量的大小根据胡克定律计算。
边界节点位移形成的力虽然破坏了弹簧系统原有的平衡,但是在外力作用下,弹簧系统经过调整将达到新的平衡,也就是说由弹簧连接在一起的节点,将在新的位置上重新获得力的平衡。
从网格划分的角度说,从边界节点的位移出发,采用虎克定律,经过迭代计算,最终可以得到使各节点上的合力等于零的、新的网格节点位置,这就是弹簧光顺法的核心思想。
原则上弹簧光顺模型可以用于任何一种网格体系,但是在非四面体网格区域(二维非三角形),最好在满足下列条件时使用弹簧光顺方法:
(1)移动为单方向。
(2)移动方向垂直于边界。
如果两个条件不满足,可能使网格畸变率增大。
另外,在系统缺省设置中,只有四面体网格(三维)和三角形网格(二维)可以使用弹簧光顺法,如果想在其他网格类型中激活该模型,需要在dynamic-mesh-menu下使用文字命令spring-on-all-shapes?
,然后激活该选项即可。
动态层模型对于棱柱型网格区域(六面体和或者楔形),可以应用动态层模型。
动态层模型的中心思想是根据紧邻运动边界网格层高度的变化,添加或者减少动态层,即在边界发生运动时,如果紧邻边界的网格层高度增大到一定程度,就将其划分为两个网格层;如果网格层高度降低到一定程度,就将紧邻边界的两个网格层合并为一个层:
如果网格层j扩大,单元高度的变化有一临界值:
H_min(1+alpha_s)*h_0式中h_min为单元的最小高度,h_0为理想单元高度,alpha_s为层的分割因子。
在满足上述条件的情况下,就可以对网格单元进行分割,分割网格层可以用常值高度法或常值比例法。
在使用常值高度法时,单元分割的结果是产生相同高度的网格。
在采用常值比例法时,网格单元分割的结果是产生是比例为alpha_s的网格。
若对第j层进行压缩,压缩极限为:
H_minDynamicMesh-Parameters.
(2)指定移动网格区域的运动参数,菜单操作如下:
Define-DynamicMesh-Zones.(3)保存算例文件和数据文件。
(4)预览动网格设置,菜单操作为:
Solve-MeshMotion.Remeshing中的参数Minimumlengthscale和MaximumLengthScale,这两个参数你可以参考meshscaleinfo中的值,仅是参考,因为meshscaleinfo中的值是整个网格的评价值,设置的时候看一下动网格附近的网格和整个网格区域的大小比较,然后确定这两个参数,一般来讲,动网格附近的网格较密,这些值都比整体的小,所以在设置时通常设置为比meshscaleinfo中的Minimumlengthscale大一点,比MaximumLengthScale小一点。
10.设置边界条件设置边界条件自然界流体按流体形态分为两种形式层流和湍流,在气固流化中,雷诺数为k-湍流模型,湍动能k和湍动耗散率值的初定。
湍流强度I(turbulenceintensity)按下式计算:
其中,和分别为湍流脉动速度和平均速度,为按水里直径计算得到的雷诺数,对于圆管,水力直径等于圆管直径,对于其他的几何形状,按等效水力直径确定。
湍流程度尺度l(turbulenceviscosity)按下式计算:
l=0.07L这里,L为关联尺寸。
对于充分发展的湍流,可取L等于水力直径。
湍流粘度比正比于湍动雷诺数,一般可取1到10之间。
修正的湍流粘度按下式计算:
湍动能k(turbulencekineticenergy)按下式计算如果一直湍流长度尺度l,则湍动耗散率(turbulencedissipationrate)按下式计算:
式中,取0.09。
如果已知湍动粘度比,则湍动耗散率按下式计算:
11.设置设置SOLUTIONCONTROLSIMPLESIMPLE算法使用压力和速度之间的相互校正关系来强制质量守恒并获取压力场。
如果用猜测压力场p*来解动量方程,从连续性方程离散一节中的方程5所得到的表面流量J*_f为:
它并不满足连续性方程。
因此将校正项J_f加入到表面流速J*_f中来校正质量流速J_f:
此时满足了连续性方程。
SIMPLE假定J_f写成如下形式:
其中p是单元压力校正。
SIMPLE算法将流量校正方程(方程3和5)代入到离散连续性方程(连续性方程的离散一节中的方程3)从而得到单元内压力校正p的离散方程。
其中,源项b是流入单元的净流速。
压力校正方程(方程7)可以用代数多重网格一节中所介绍的代数多重网格方法来解。
一旦得到解,使用下面的方程校正单元压力和表面流动速度:
在这里,a_p是压力亚松驰因子(请参阅亚松驰方面的介绍)。
校正后的表面流速J_f在每一部迭代中同一地满足离散连续性方程。
欠松弛因子由于流体力学中要求解非线性的方程,在求解过程中,控制变量的变化是很必要的,这就通过松弛因子来实现的.它控制变量在每次迭代中的变化.也就是说,变量的新值为原值加上变化量乘以松弛因子.如:
A1=A0+B*DETAA1新值A0原值B松弛因子DETA变化量松弛因子可控制收敛的速度和改善收敛的状况!
为1,相当于不用松弛因子大于1,为超松弛因子,加快收敛速度小于1,欠松弛因子,改善收敛的条件一般来讲,大家都是在收敛不好的时候,采用一个较小的欠松弛因子。
Fluent里面用的是欠松弛,主要防止两次迭代值相差太大引起发散。
松弛因子的值在01之间,越小表示两次迭代值之间变化越小,也就越稳定,但收敛也就越慢。
在FLUENT中,所有变量的默认亚松驰因子都是对大多数问题的最优值。
这个值适合于很多问题,但是对于一些特殊的非线性问题(如:
某些湍流或者高Rayleigh数自然对流问题),在计算开始时要慎重减小亚松驰因子。
使用默认的亚松驰因子开始计算是很好的习惯。
如果经过4到5步的迭代残差仍然增长,你就需要减小亚松驰因子。
有时候,如果发现残差开始增加,你可以改变亚松驰因子重新计算。
在亚松驰因子过大时通常会出现这种情况。
最为安全的方法就是在对亚松驰因子做任何修改之前先保存数据文件,并对解的算法做几步迭代以调节到新的参数。
最典型的情况是,亚松驰因子的增加会使残差有少量的增加,但是随着解的进行残差的增加又消失了。
如果残差变化有几个量级你就需要考虑停止计算并回到最后保存的较好的数据文件。
三种判断收敛的方法:
1.残差达到一个可以接受的程度:
默认出了能量是10-6以外,其余的全是10-3。
2.求解值不再随迭代发生改变:
有时候,残差还在下降,但是某些监视的流动变量不再发生明显变化即可停止迭代。
3.系统的质量、动量、能量达到平衡:
利用fluxreport实现,要求净不平衡量小于0.2%。
一阶迎风格式当需要一阶精度时,我们假定描述单元内变量平均值的单元中心变量就是整个单元内各个变量的值,而且单元表面的量等于单元内的量。
因此,当选择一阶迎风格式时,表面值f_f被设定等于迎风单元的单元中心值。
二阶迎风格式当需要二阶精度时,使用多维线性重建方法5来计算单元表面处的值。
在这种方法中,通过单元中心解在单元中心处的泰勒展开来实现单元表面的二阶精度值。
因此,当使用二阶迎风格式时,用下面的方程来计算表面值f_f;QUICK格式对于四边形和六面体网格,我们可以确定它们唯一的上游和下游表面以及单元。
FLUENT还提供了计算对流变量在表面处高阶值的QUICK格式。
QUICK类型的格式95是通过变量的二阶迎风与中心插值加上适当的权因子得到的;12.初始化初始化1、为什么需要进行初始化我们知道,在数值计算中,初始化通常发生在需要迭代计算的情况下。
CFD求解大致分为以下几步:
(1)建立物理现象的数学模型。
通常是N-S方程,包括瞬态项、对流项、扩散项和源项。
(2)对方程进行离散。
通常是建立微元控制体,利用有限体积法进行离散,在每一个控制体上应用N-S方程,最终可获得一系列代数方程。
(3)对代数方程的求解。
迭代计算主要发生在
(2)和(3)上。
由于对流项的非线性,无法直接建立代数方程,需要采用压力-速度耦合方程进行迭代计算。
而对代数方程组进行迭代计算则有助于降低内存开销。
2、初始值对计算结果的影响对于稳态问题,由于不求解瞬态项,因此初始值不会对计算结果产生影响。
当然一个好的初始值能加快迭代求解收敛速度。
而对于非稳态问题,我们可以将每一个时间步的求解当做是一个稳态计算过程,因此,一个收敛的时间步对于初始值是不敏感的。
但是非稳态计算存在这样的一个问题:
下一个时间步是以上一个时间步的计算结果作为初始值进行计算的,因此,如果一个时间步内计算未达到收敛,则该时间点上的计算结果是不可信或无效的,且会影响到下一时间步计算收敛速度。
此时可以考虑加大内循环次数。
3、数学上的解释所有的非稳态流动及波动现象、非稳态传热均属于步进问题,这类问题的控制方程为双曲型或抛物型,他们的最大特点在于:
计算域中的物理量依赖于边界上的初始值。
4、FLUENT中的初始化有以下方式:
(1)从边界条件计算
(2)使用all-zone计算平均值(3)直接输入初始值。
13.设置监视器设置监视器首先设置残差监视器。
设置残差收敛标准为0.001,即为在每一个时间步内迭代,当残差达到这个标准时,便进入下一时间步继续迭代。
残差是cell各个face的通量之和,当收敛后,理论上当单元内没有源项使各个面流入的通量也就是对物理量的输运之和应该为零。
最大残差或者RSM残差反映流场与所要模拟流场(只收敛后应该得到的流场,当然收敛后得到的流场与真实流场之间还是存在一定的差距)的残差,残差越小越好,由于存在数值精度问题,不可能得到0残差,对于单精度计算一般应该低于初始残差1e-03以下才好,当注意具体情况,看各个项的收敛