FLUENT操作过程及全参数选择
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
FLUENT操作过程及全参数选择
振动流化床仿真操作过程及参数选择
1创建流化床模型。
根据靳海波论⽂提供的试验机参数,创建流化床模型。
流化床直148mm,⾼1m,开孔率9%,孔径2mm。
在筛板上铺两层帆布保证⽓流均布。
因为实验机为⼀个圆形的流化床,所以可简化为仅⼆维模型。
⽽实际实验中流化⾼度远⼩于1m,甚⾄500mm,所以为提⾼计算时间,可将模型⾼度缩为500mm。
由于筛板上铺设两层帆布以达到⽓流均分的⽬的,所以认为沿整个筛板的进⼝风速为均匀的。
最终简化模型如下图所⽰:
上图为流化后的流化床模型,可以看出流化床下端的⽹格相对上端较密,因为流化⾏为主要发⽣的流化床下端,为了加快计算时间,所以采⽤这种下密上疏的划分⽅式。
其中进⼝设置为velocity inlet;出⼝设置为outflow;
左右两边分为设置为wall。
在GAMBIT中设置完毕后,输出⼆维模型vfb.msh。
outflow边界条件不需要给定任何⼊⼝的物理条件,但是应⽤也会有限制,⼤致为以下四点:
1.只能⽤于不可压缩流动
2.出⼝处流动充分发展
3.不能与任何压⼒边界条件搭配使⽤(压⼒⼊⼝、压⼒出⼝)
4.不能⽤于计算流量分配问题(⽐如有多个出⼝的问题)
2打开FLUENT 6.3.26,导⼊模型vfb.msh
点击GRID—CHECK,检查⽹格信息及模型中设置的信息,核对是否正确,尤其查看是否出现负体积和负⾯积,如出现马上修改。
核对完毕后,点击GRID-SCALE弹出SCALE GRID窗⼝,设置单位为mm,并点击change length unit 按钮。
具体设置如下:
3设置求解器
保持其他设置为默认,更改TIME为unsteady,因为实际流化的过程是随时间变化的。
(1)pressure based 求解⽅法在求解不可压流体时,如果我们联⽴求解
从动量⽅程和连续性⽅程离散得到的代数⽅程组,可以直接得到各速
度分量及相应的压⼒值,但是要占⽤⼤量的计算内存,这⼀⽅法已可
以在Fluent6.3中实现,所需内存为分离算法的1.5-2倍。
density
based求解⽅法是针对可压流体设计的,因⽽更适合于可压流场的计
算,以速度分量、密度(密度基)作为基本变量,压⼒则由状态⽅程
求解。
Pressure-Based Solver它是基于压⼒法的求解器,使⽤的是
压⼒修正算法,求解的控制⽅程是标量形式的,擅长求解不可压缩流
动,对于可压流动也可以求解;Fluent 6.3以前的版本求解器,只
有Segregated Solver和Coupled Solver,其实也就是
Pressure-Based Solver的两种处理⽅法;Density-Based Solver
是Fluent 6.3新发展出来的,它是基于密度法的求解器,求解的控
制⽅程是⽮量形式的,主要离散格式有Roe,AUSM+,该⽅法的初衷
是让Fluent具有⽐较好的求解可压缩流动能⼒,但⽬前格式没有添
加任何限制器,因此还不太完善;它只有Coupled的算法;对于低速
问题,他们是使⽤Preconditioning⽅法来处理,使之也能够计算低
速问题。
Density-Based Solver下肯定是没有SIMPLEC,PISO这些
选项的,因为这些都是压⼒修正算法,不会在这种类型的求解器中出
现的;⼀般还是使⽤Pressure-Based Solver解决问题。
(2)再GRADIENT OPTION选项组中,指定通过哪种压⼒梯度来计算控制⽅程中的导数项。
CELL-BASED(按单元中的压⼒梯度计算)和
NODE-BASED(按节点的案例梯度计算)。
Porous formulation选项组
⽤于制定多孔介质速度的⽅法。
(3)当选择UNSTEADY时,会出现UNSTEASDY FORMULATION选项组,让⽤户据顶时间相关项的计算公式及⽅法。
对于巨⼤多数问题选⼀阶隐式
就⾜够了。
只有对精度有特别要求时才选⼆阶隐式。
4设置多相流模型。
设置为欧拉模型,相数设置为2即为两相流,具体设置如下:
在Fluent中,共有三种欧拉-欧拉多相流模型,即VOF(Volume Of Fluid)模型、混合物(Mixture)模型和欧拉(Eulerian)模型。
(1) VOF模型。
VOF模型是⼀种在固定的欧拉⽹格下的表⾯跟踪⽅法。
当需要得到⼀种或多种互不相融流体间的交界⾯时,可以采⽤这种模型。
在VOF模型中,不同的流体组分共⽤着⼀套动量⽅程,计算时在整个流场的每个计算单元内,都记录下各流
体组分所占有的体积率。
VOF模型的应⽤例⼦包括分层流、⾃由⾯流动、灌注、晃动、液体中⼤⽓泡的流动、⽔坝决堤时的⽔流以及求得任意液-⽓分界⾯的稳态或瞬时分界⾯。
(2) 混合物模型。
混合物模型可⽤于两相流或多相流(流体或颗粒)。
因为在欧拉模型中,各相被处理为互相贯通的连续体,混合物模型求解的是混合物的动量⽅程,并通过相对速度来描述离散相。
混合物模型的应⽤包括低负载的粒⼦负载流、⽓泡流、沉降和旋风分离器。
混合物模型也可⽤于没有离散相相对速度的均匀多相流。
(3) Eulerian模型。
Fluent中最复杂的多相流模型。
它建⽴了⼀套包含有n个的动量⽅程和连续⽅程来求解每⼀相,压⼒项和各界⾯交换系数是耦合在⼀起的。
耦合的⽅式则依赖于所含相的情况,颗粒流(流-固)的处理与⾮颗粒流(流-流)是不同的。
欧拉模型的应⽤包括⽓泡柱、上浮、颗粒悬浮和流化床。
根据振动流化床的实际情况,本论⽂采⽤欧拉模型进⾏模拟。
5设置粘性模型。
第⼀步,DEFINE-MODELS-VISCOUS,弹出VISCOUS MODEL对话框,选择K-EPSILO模型,点击确定。
第⼆步,在操作窗⼝内键⼊下⾯的命令:
define/models/viscous/turbulence-expert/low-re-k
屏幕显⽰:
/define/models/viscous/turbulence-expert> low-re-k
Enable the low-Re k-epsilon turbulence model? [no]
输⼊y,在模型选择⾯板中我们就可以看见低雷模型low-re-ke model了。
默认使⽤第0种低雷诺数模型。
第三步,Fluent中提供6种低雷诺数模型,使⽤low-re-ke-index 命令设定⼀种。
low-re-ke-index
标准k-epsilo模型使⽤与湍流发展⾮常充分的湍流流动建⽴的,它是⼀种针对⾼雷诺数的湍流计算模型,它⽐零⽅程模型和⼀⽅程模型有了很⼤的改进,但是在⽤于强旋流、弯曲壁⾯流动或弯曲流线流动时会产⽣失真。
⽽相较标准模型,RNG k-ε模型修正了湍动粘度,考虑了平均流动的旋转及旋流流动情况,可以更好地处理⾼应变率及流线弯曲成都较⼤的流动,它还是针对充分发展的湍流,即还是⾼雷诺数模型。
Realizable k-ε模型⼀般被应⽤在包含有射流和混合流的⾃由流动、管道内流动、边界层流动等。
由于实际计算出的雷诺数较⼩,和上述三种湍流模型都不是很匹配。
⽽在FLUENT提供了数种专家模型,他们针对标
准K-ε进⾏部分修正,使其能够适合低雷诺数使⽤,即为低雷诺数k-epsilo模型。
6定义材料属性。
DEFINE-MATERIALS,弹出材料对话框,点CREAT按钮,⾸先选择空⽓作为⽓相。
然后点击FLUENT DATABASE MATERIALS按钮,在材料库中任意选择⼀种流体,点击COPY按钮。
再将该材料的密度及名称改为所需材料的材料属性,设置如下,最后点击CHANGE。
7定义相。
DEFINE-PHASE。
⾸先定义空⽓为主相,操作如下:
接着设置次相为固相MILLET。
点millet后点击SET按钮,弹出secondary phase对话框,进下如下设置。
⾸先定义材料为GRANULAR,即为颗粒,定义颗粒粒径。
Packed bed为填充床,与实际不符合,故不选择。
颗粒温度模型选择PHASE PROPERTY相属性。
partical differential equation为偏微分⽅程。
固体剪切粘度包括碰撞和动⼒部分,摩擦部分。
其中动⼒部分提供两种表达,默认的是SYAMLAL ET AL表达,和GIDASPOW ET AL表达,通过实验⼀对⽐后选择SYAMLAL ET AL表达式。
固体体积粘度解释为颗粒压缩和扩张的抵抗⼒,对该项⼀般不存在争议,⽬前学术界普遍采⽤Lun et al的表达式。
本论⽂的仿真忽略摩擦粘度。
填充限制设置为0.6,即初始固相的体积分数最⼤为0.6。
设置⽓固封闭关系:再PHASE对话框点击INTERACTION,设置⽓固相相互作⽤的曳⼒函数⼀般为WEN-
YU,GIDASPOW,SYAMLAL-OBRIEN三种,实验⼀得出结论SYAMLAL-OBRIEN更符合实际。
所以选择Syamlal-Obrien曳⼒函数模型。
(1)Syamlal-O’Brien 模型[234]
(20.4.31)
这⾥曳⼒函数采⽤由Dalla Valle[47]给出的形式:
(20.4.32)
这个模型是基于流化床或沉淀床颗粒的末端速度的测量,并使⽤了体积分数和相对雷诺数的函数关系式[193]:
(20.4.33)
d是第s固体相颗粒的直径。
这⾥下标l是第l液体相,s是第s固体相,
s
液体-固体交换系数有如下形式
(20.4.34)
这⾥s r v ,是与固体相相关的末端速度[73]:
(20.4.35)其中
(20.4.36)
对85.0≤l α,
(20.4.37)对85.0>α,(20.4.38)当固体相的剪切应⼒根据Syamlal et al 定义时[235](⽅程20.4.52),这个模型是合适的。
(2)对Wen and Yu 模型[262],液体-固体交换系数有如下形式:
(20.4.39)
这⾥,
(20.4.40)
Re 数由⽅程20.4.33定义。
这个模型适合于稀释系统。
(3)Gidaspow 模型[76]是Wen and Yu 模型[262]和Ergun ⽅程[62]的联合。
当8.0>l α时,液体-固体交换系数sl K 有如下形式:
(20.4.41)这⾥
(20.4.42)
当8.0≤l α时,
(20.4.43)
对密集的流化床,建议使⽤这个模型。
由于本流化床内的粒⼦直径远⼤于粒⼦间的距离,这样对接近充满的颗粒包含升⼒是不合适,所以忽略升⼒的影响,在LIFT选项选择NONE。
在恢复系数选项下保持默认的设置值0.9。
由于第⼆相密度远⼤于第⼀相,所以可以忽略虚拟质量⼒。
具体设置如下。
8编译UDF程序。
Define-user-defined-function-compiled,导⼊程序。
1) void DEFINE_CG_MOTION (UDFname,Dynamic_Thread * dt,real vel[ ], real omega[ ], real time,real dtime)。
此函数接⼝⽤于控制刚体的运动,⽤户把刚体质⼼运动速度和⾓速度分别赋值给vel和omega, FLUENT根据它们的值来⾃动计算出边界下⼀步的位置,从⽽实现
动边界的控制; 刚体质⼼的位置可以在函数接⼝界⾯对话框中定义。
Dynamic Zones中的dwall就是要控制的动边界,Motion UDF/Profile中的
stc1sta010a0ph0就是UDFname,从中可看出它已被制定成⽤于控制dwall,理论上FLUEN T可以通过这种⽅式实现⽆穷多个动边界的控制; C.G.Location⽤于设定初始位置的质⼼,C.G.Orientation⽤于设定刚体的初始⾓度。
⼀般适⽤于刚体本⾝不变形的运动。
2) void DEFINE_GEOM(char name,Domain * d,Dynamic_Thread * dt,real * position)。
此函数接⼝⽤于控制变形体的边界运动, position就是运动边界上某⽹格节点的位置值,⽤户可以通过对其赋值达到控制效果, position [0]对应边界节点的x坐标, position [1]对应y 坐标, position [2]对应z坐标; FLUENT⾃动遍历所有的边界节点,因此适⽤于有规律的可以⽤函数描述的运动边界。
3) void DEFINE_ GRID_MOTION(name,d,dt,time,dtime)。
此函数接⼝也⽤于控制形体的边界运动。
主要⽤于更加复杂的控制,⽤户需要⾃⼰利⽤FLUENT提供的其他函数来遍历运动边界上的节点,并对其位置进⾏控制,因此UDF编程⽐前⾯两种复杂得多。
它甚⾄可以事先⽣成好边界数据,在计算中把数据读⼊,完成复杂形体控制。
将振动处理为做正弦运动,即编写UDF程序使进⼝做正弦运动。
⽽通过上述三种动边界控制实现⽅法的⽐较,可以看出第⼀种void DEFINE_CG_MOTION⽅法更适合振动流化床的模拟,改变进⼝边界的运动速度,从⽽完成正弦运动。
9定义动⽹格。
在FLUENT中,动⽹格模型可以⽤来模拟由于流域边界运动引起流域形状随时间变化的流动情况。
这种流动情况即可以使⼀种指定的运动(随时间变化)也可以使未确定的运动(随某变化的参数变化),即边界的运动要由前⼀步的计算结果决定。
各个时间不的体⽹格的更新基于边界条件新的位置,有FLUENT⾃动完成。
动⽹格计算中⽹格的动态变化过程可以⽤三种模型进⾏计算,即弹簧近似光滑模型(spring-based smoothing)、动态分层模型(dynamic layering)和局部重划模型(local remeshing)。
弹簧近似光滑模型
在弹簧近似光滑模型中,⽹格的边被理想化为节点间相互连接的弹簧。
移动前的⽹格间距相当于边界移动前由弹簧组成的系统处于平衡状态。
在⽹格边界节点发⽣位移后,会产⽣与位移成⽐例的⼒,⼒量的⼤⼩根据胡克定律计算。
边界节点位移形成的⼒虽然破坏了弹簧系统原有的平衡,但是在外⼒作⽤下,弹簧系统经过调整将达到新的平衡,也就是说由弹簧连接在⼀起的节点,将在新的位置上重新获得⼒的平衡。
从⽹格划分的⾓度说,从边界节点的位移出发,采⽤虎克定律,经过迭代计算,最终可以得到使各节点上的合⼒等于零的、新的⽹格节点位置,这就是弹簧光顺法的核⼼思想。
原则上弹簧光顺模型可以⽤于任何⼀种⽹格体系,但是在⾮四⾯体⽹格区域(⼆维⾮三⾓形),最好在满⾜下列条件时使⽤弹簧光顺⽅法:
(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_min
式中alpha_c为合并因⼦。
在紧邻动边界的⽹格层⾼度满⾜这个条件时,则将这⼀层⽹格与外⾯⼀层⽹格相合并。
动⽹格模型的应⽤有如下限制:
(1)与运动边界相邻的⽹格必须为楔形或者六⾯体(⼆维四边形)⽹格。
(2)在滑动⽹格交界⾯以外的区域,⽹格必须被单⾯⽹格区域包围。
(3)如果⽹格周围区域中有双侧壁⾯区域,则必须⾸先将壁⾯和阴影区分割开,再⽤
滑动交界⾯将⼆者耦合起来。
(4)如果动态⽹格附近包含周期性区域,则只能⽤FLUENT 的串⾏版求解,但是如果周期性区域被设置为周期性⾮正则交界⾯,则可以⽤FLUENT 的并⾏版求解。
如果移动边界为内部边界,则边界两侧的⽹格都将作为动态层参与计算。
如果在壁⾯上只有⼀部分是运动边界,其他部分保持静⽌,则只需在运动边界上应⽤动⽹格技术,但是动⽹格区与静⽌⽹格区之间应该⽤滑动⽹格交界⾯进⾏连接。
局部重划模型
在使⽤⾮结构⽹格的区域上⼀般采⽤弹簧光顺模型进⾏动⽹格划分,但是如果运动边界的位移远远⼤于⽹格尺⼨,则采⽤弹簧光顺模型可能导致⽹格质量下降,甚⾄出现体积为负值的⽹格,或因⽹格畸变过⼤导致计算不收敛。
为了解决这个问
题,FLUENT 在计算过程中将畸变率过⼤,或尺⼨变化过于剧烈的⽹格集中在⼀起进⾏局部⽹格的重新划分,如果重新划分后的⽹格可以满⾜畸变率要求和尺⼨要求,则⽤新的⽹格代替原来的⽹格,如果新的⽹格仍然⽆法满⾜要求,则放弃重新划分的结果。
在重新划分局部⽹格之前,⾸先要将需要重新划分的⽹格识别出来。
FLUENT 中识别不合乎要求⽹格的判据有⼆个,⼀个是⽹格畸变率,⼀个是⽹格尺⼨,其中⽹格尺⼨⼜分最⼤尺⼨和最⼩尺⼨。
在计算过程中,如果⼀个⽹格的尺⼨⼤于最⼤尺⼨,或者⼩于最⼩尺⼨,或者⽹格畸变率⼤于系统畸变率标准,则这个⽹格就被标志为需要重新划分的⽹格。
在遍历所有动⽹格之后,再开始重新划分的过程。
局部重划模型不仅可以调整体⽹格,也可以调整动边界上的表⾯⽹格。
需要注意的是,局部重划模型仅能⽤于四⾯体⽹格和三⾓形⽹格。
在定义了动边界⾯以后,如果在动边界⾯附近同时定义了局部重划模型,则动边界上的表⾯⽹格必须满⾜下列条件:
(1)需要进⾏局部调整的表⾯⽹格是三⾓形(三维)或直线(⼆维)。
(2)将被重新划分的⾯⽹格单元必须紧邻动⽹格节点。
(3)表⾯⽹格单元必须处于同⼀个⾯上并构成⼀个循环。
(4)被调整单元不能是对称⾯(线)或正则周期性边界的⼀部分。
动⽹格的实现在FLUENT 中是由系统⾃动完成的。
如果在计算中设置了动边界,则FLUENT 会根据动边界附近的⽹格类型,⾃动选择动⽹格计算模型。
如果动边界附近采⽤的是四⾯体⽹格(三维)或三⾓形⽹格(⼆维),则FLUENT 会⾃动选择弹簧光顺模型和局部重划模型对⽹格进⾏调整。
如果是棱柱型⽹格,则会⾃动选择动态层模型进⾏⽹格调整。
在静⽌⽹格区域则不进⾏⽹格调整。
动⽹格问题中对于固体运动的描述,是以固体相对于重⼼的线速度和⾓速度为基本参数加以定义的。
既可以⽤型函数定义固体
的线速度和⾓速度,也可以⽤UDF 来定义这两个参数。
同时需要定义的是固体在初始时刻的位置。
使⽤弹簧近似光滑法⽹格拓扑始终不变,⽆需插值,保证了计算精度。
但弹簧近似光滑法不适⽤于⼤变形情况,当计算区域变形较⼤时,变形后的⽹格会产⽣较⼤的倾斜变形,从⽽使⽹格质量变差,严重影响计算精度。
动态分层法在⽣成⽹格⽅⾯具有快速的优势,同时它的应⽤也受到了⼀些限制。
它要求运动边界附近的⽹格为六⾯体或楔形,这对于复杂外形的流场区域是不适合的。
使⽤局部⽹格重划法要求⽹格为三⾓形(⼆维)或四⾯体(三维),这对于适应复杂外形是有好处的,局部⽹格重划法只会对运动边界附近区域的⽹格起作⽤。
设置动⽹格问题的步骤如下:
(1)激活动⽹格模型,并设定相应参数,菜单操作如下:Define -> Dynamic Mesh -> Parameters...
(2)指定移动⽹格区域的运动参数,菜单操作如下:Define -> Dynamic Mesh -> Zones...
(3)保存算例⽂件和数据⽂件。
(4)预览动⽹格设置,菜单操作为:
Solve -> Mesh Motion...
Remeshing中的参数Minimum length scale和Maximum Length Scale,这两个参数你可以参考mesh scale info中的值,仅是参考,因为mesh scale info 中的值是整个⽹格的评价值,设置的时候看⼀下动⽹格附近的⽹格和整个⽹格区域的⼤⼩⽐较,然后确定这两个参数,⼀般来讲,动⽹格附近的⽹格较密,这些值都⽐整体的⼩,所以在设置时通常设置为⽐mesh scale info中的Minimum length scale⼤⼀点,⽐Maximum Length Scale⼩⼀点。
10.设置边界条件
k-ε湍流模型,湍动能k 和湍动耗散率值ε的初定。
湍流强度I (turbulence intensity )按下式计算:
81')(Re 16.0-==H D u u I
其中,和分别为湍流脉动速度和平均速度,为按⽔⾥直径计算得到
的雷诺数,对于圆管,⽔⼒直径等于圆管直径,对于其他的⼏何形状,按等效⽔⼒直径确定。
湍流程度尺度l (turbulence viscosity )按下式计算: l=0.07L
这⾥,L 为关联尺⼨。
对于充分发展的湍流,可取L 等于⽔⼒直径。
湍流粘度⽐正⽐于湍动雷诺数,⼀般可取1到10之间。
修正的湍流粘度按下式计算: Il u v 23~=
turbulence kinetic energy )按下式计算如果⼀直湍流长度尺度l
,则湍动耗散率ε(turbulence dissipation rate )
式中,取0.09。
如果已知湍动粘度⽐,则湍动耗散率按下式计算: 12-???? ??=µ
µ
µρεµt k C
'u u H D Re H D H D µµt
11.设置SOLUTION CONTROL
SIMPLE
SIMPLE 算法使⽤压⼒和速度之间的相互校正关系来强制质量守恒并获取压⼒场。
如果⽤猜测压⼒场p^*来解动量⽅程,从连续性⽅程离散⼀节中的⽅程5所得到的表⾯流量J^*_f 为:
()
*1*0**
c c f f f p p
d J J -+= 它并不满⾜连续性⽅程。
因此将校正项J^'_f 加⼊到表⾯流速J^*_f 中来校正质
量流速J_f :f f f J J J '+=*
此时满⾜了连续性⽅程。
SIMPLE 假定J^'_f 写成如下形式:
()10c c
f f p p d J '-'=' 其中p^'是单元压⼒校正。
SIMPLE 算法将流量校正⽅程(⽅程3和5)代⼊到离散连续性⽅程(连续性⽅程的离散⼀节中的⽅程3)从⽽得到单元内压⼒校正p^'的离散⽅程。
∑+'='nb
nb
nb P b p a p a 其中,源项b 是流⼊单元的净流速。
∑=faces
N f
f J b *
压⼒校正⽅程(⽅程7)可以⽤代数多重⽹格⼀节中所介绍的代数多重⽹格⽅法来解。
⼀旦得到解,使⽤下⾯的⽅程校正单元压⼒和表⾯流动速度:
p p p p '+=α*
()10*
c c f f f p p
d J J '-'+=
在这⾥,a_p 是压⼒亚松驰因⼦(请参阅亚松驰⽅⾯的介绍)。
校正后的表⾯流速J_f 在每⼀部迭代中同⼀地满⾜离散连续性⽅程。
⽋松弛因⼦
由于流体⼒学中要求解⾮线性的⽅程,在求解过程中,控制变量的变化是很必要的,这就通过松弛因⼦来实现的.它控制变量在每次迭代中的变化.也就是说,变量的新值为原值加上变化量乘以松弛因⼦.
如:A1=A0+B*DETA
A1 新值A0 原值B 松弛因⼦DETA 变化量
松弛因⼦可控制收敛的速度和改善收敛的状况!
为1,相当于不⽤松弛因⼦
⼤于1,为超松弛因⼦,加快收敛速度
⼩于1,⽋松弛因⼦,改善收敛的条件
⼀般来讲,⼤家都是在收敛不好的时候,采⽤⼀个较⼩的⽋松弛因⼦。
Fluent ⾥⾯⽤的是⽋松弛,主要防⽌两次迭代值相差太⼤引起发散。
松弛因⼦的值在0~1之间,越⼩表⽰两次迭代值之间变化越⼩,也就越稳定,但收敛也就越慢。
在FLUENT 中,所有变量的默认亚松驰因⼦都是对⼤多数问题的最优值。
这个值适合于很多问题,但是对于⼀些特殊的⾮线性问题(如:某些湍流或者⾼Rayleigh 数⾃然对流问题),在计算开始时要慎重减⼩亚松驰因⼦。
使⽤默认的亚松驰因⼦开始计算是很好的习惯。
如果经过4到5步的迭代残差仍然增长,你就需要减⼩亚松驰因⼦。
有时候,如果发现残差开始增加,你可以改变亚松驰因⼦重新计算。
在亚松驰因⼦过⼤时通常会出现这种情况。
最为安全的⽅法就是在对亚松驰因⼦做任何修改之前先保存数据⽂件,并对解的算法做⼏步迭代以调节到新的参数。
最典型的情况是,亚松驰因⼦的增加会使残差有少量的增加,但是随着解的进⾏残差的增加⼜消失了。
如果残差变化有⼏个量级你就需要考虑停⽌计算并回到最后保存的较好的数据⽂件。
三种判断收敛的⽅法:
1.残差达到⼀个可以接受的程度:默认出了能量是10^-6以外,其余的全是10^-3。
2.求解值不再随迭代发⽣改变:有时候,残差还在下降,但是某些监视的流动变量不再发⽣明显变化即可停⽌迭代。
3.系统的质量、动量、能量达到平衡:利⽤flux report 实现,要求净不平衡量⼩于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以下才好,当注意具体情况,看各个项的收敛情况(⽐⽅说连续项不易收敛⽽能量项容易)。
⼀般在FLUENT
中可以进⾏进出⼝流量监控,当残差收敛到⼀定程度后,还要看进出⼝流量是否稳定平衡,才可确定收敛与否(翼型计算时要监控升阻⼒的平衡)。
残差在较⾼位震荡,需要检查边界条件是否合理,其次检查初始条件是否合理,必如激波的流场,初始条件的不合适会造成流场的振荡。
有时流场可能有分离或者回流,这。