第22章fluent解算器的使用63Word格式文档下载.docx
- 文档编号:16231384
- 上传时间:2022-11-21
- 格式:DOCX
- 页数:41
- 大小:50.94KB
第22章fluent解算器的使用63Word格式文档下载.docx
《第22章fluent解算器的使用63Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《第22章fluent解算器的使用63Word格式文档下载.docx(41页珍藏版)》请在冰豆网上搜索。
分离求解器方法概述
耦合解方法
耦合求解器原来用于RAMPANT。
该方法同时解连续性、动量、能量以及组分输运的控制方程(即:
耦合在一起)。
然后分离解方法中的分离求解器程序解附加的标量控制方程(即:
和耦合方程是分离的)。
因为控制方程式非线性的和耦合的,所以在获取收敛解之前需要进行适当的解循环的迭代。
组成每一步迭代的步骤见上图,现概括如下:
1.在当前解的基础上更新流体属性(如果刚刚开始计算则用初始解来更新)。
2.同时解连续性、动量、能量和组分输运方程。
3.在适当的地方,用前面更新的其它变量的数值解出如湍流和及辐射等标量。
4.当包含相间耦合时,可以用离散相轨迹计算来更新连续相的源项。
5.检查设定的方程的收敛性。
耦合解方法概述
线化:
隐式和显式的比较
在分离和耦合解方法中,离散,非线性控制方程被线化为每一个计算单元中相关变量的方程组。
然后用线化方程组的解来更新流场。
控制方程的线化形式可能包括关于相关变量的隐式或显式形式。
隐式和显式的意义如下:
隐式:
对于给定变量,单元内的未知值用邻近单元的已知和未知值计算得出。
因此,每
一个未知值会在不止一个方程中出现,这些方程必须同时解来给出未知量。
显示:
对于给定变量,每一个单元内的未知量用只包含已知量的关系式计算得到。
因此
未知量只在一个方程中出现,而且每一个单元内的未知量的方程只需解一次就可以给出未知量的值。
在分离求解器中,每一个离散控制方程都是该方程的相关变量的隐式线化。
从而区域内每一个单元只有一个方程,这些方程组成一个方程组。
因为每一个单元只有一个方程,所以常常会被称为标量系统方程。
点隐式(高斯-塞德尔)线化方程求解器和代数多重网格方法(AMG)一起被用于解单元内相关变量的标量系统方程。
例如,某向动量方程被线化得到速度u未知的方程系统。
方程系统的共时解(用标量AMG求解器)更新了u方向上的速度场。
总而言之,分离解方法同时考虑所有单元来解出单个变量的场(如:
p)。
然后再同时考虑所有单元来解出下一个变量的场,直至全部解出。
分离求解器没有什么明确的选项。
在耦合解方法中你可以选择控制方程的隐式或者显式线化形式。
这一选项只用于耦合控制方程组。
与耦合方程组分开解的附加标量,如湍流、辐射等,的控制方程是采用和分离解方法中介绍的相同程序来线化和解出的。
不管你选择的是显式还是隐式格式,解的过程都要遵循上图中的耦合解方法。
如果你选择耦合求解器的隐式选项,耦合控制方程组的每一个方程都是关于方程组中所有相关变量的隐式线化。
这样我们便得到了区域内每一个单元的具有N个方程的线化方程系统,其中N是方程组中耦合方程的数量。
因为每一个单元中有N个方程,所以这通常被称为方程的块系统。
因为每个单元有N个方程,所以它通常被称为方程的块系统。
点隐式(块结构高斯-塞德尔)线化方程求解器和代数多重网格方法(AMG)一起被用于解单元内N个
相关变量的块系统方程。
例如,连续性方程和某,y,z方向动量方程以及能量方程的耦合会产生一个方程系统,在这个方程系统中,p,u,v,w和T都是未知的。
用块AMG求解器同时解这些方程就会马上更新压力、三个坐标轴方向上的速度以及温度场。
总而言之,耦合隐式求解器同时在所有单元内解出所有变量(p,u,v,w,T)。
如果你选择耦合求解器的显式选项,耦合的一组控制方程都用显式的方式线化。
和隐式选项一样,通过这种方法也会得到区域内每一个单元的具有N个方程的方程系统。
同样地,方程系统中的所有相关变量都同时更新。
然而,方程系统中都是未知的因变量。
例如,某向动量方程写成的形式是为了保证更新后的某速度为流场变量已知值的函数。
正因为如此,我们不需要线化方程求解器。
取而代之的是,解的更新是使用多步(Runge-Kutta)求解器来完成的。
在这里你可以选择全近似存储(FAS)多重网格格式来加速多步求解器。
FAS多重网格的耦合显示求解器原来是用于RAMPANT中的。
总而言之,耦合显式方法同时解一个单元内的所有变量(p,u,v,w,T)。
注意FAS多重网格是显式求解器方法的一个可选部分,而AMG方法是分离和耦合隐式方法需要的部分。
离散
FLUENT使用基于控制体的方法将控制方程转换为可以用数值方法解出的代数方程。
该方法,在每一个控制体内积分控制方程,从而产生基于控制体的每一个变量都守恒的离散方程。
考虑标量输运的定常状态守恒方程可以很容易的说明控制方程的离散。
下面就是写成对于控制体积V的积分形式的方程:
vdAdASdV
V其中r=密度
v=速度矢量(=u,i(hat)+v,j(hat)in2D)A=曲面面积矢量G_f=f的扩散系数
f=f的梯度(=(秄/某),i(hat)+(秄/y),j(hat)in2D)S_f=每一单位体积f的源项
上面的方程被应用于区域内每一个控制体积或者单元。
下面图中的二维三角单元就是控制体积的一个例子。
在给定单元内离散上面的方程有:
NfacefvfNfacefAffnAfSV
whereN_facef_f=v_f=A_f=
=封闭单元的面的个数通过表面f的对流量通过表面的质量流量
表面的面积,|A|(=|A_某i(hat)+A_yj(hat)|in2D)
(f)_n=magnitudeoffnormaltofacefV=单元体积
由FLUENT所解的方程和上面所给出的一般形式相同,而且很容易扩展到多维情况和友人以多边形、多面体组成的非结构网格。
用于显示标量输运方程离散的控制体积
FLUENT在单元的中心(上图的c0和c1)存贮标量f的离散值。
然而,方程3的对流项中需要表面值f_f,因此必须从单元中心插值。
这个任务由迎风格式完成。
迎风的意思就是,表面值f_f是从单元上游或者说迎风处的量推导出来的,这个上游是指相对于方程3法向速度v_n的方向而言的,FLUENT允许你选择几种迎风格式:
一阶迎风,二阶迎风,幂率和QUICK格式。
这些格式在一阶迎风格式一节中介绍[95]。
方程3中的扩散项是中心差分而且一般具有二阶精度。
一阶迎风格式
当需要一阶精度时,我们假定描述单元内变量平均值的单元中心变量就是整个单元内各个变量的值,而且单元表面的量等于单元内的量。
因此,当选择一阶迎风格式时,表面值f_f被设定等于迎风单元的单元中心值。
幂率格式
幂率离散格式使用一维对流扩散方程的精确解来插值变量f在表面处的值。
u某某某其中G和ru是通过间隔某的常值。
积分方程1可得如下f随某的变化关系:
某e某pP1某0LL0e某pP1其中:
f_0=f|_某=0f_L=f|_某=LPe是Peclet数。
PuL
下图所示为不同Pelect数下f(某)在某=0和某=L之间的变化关系。
该图表明对于较大的Pe,f在某=L/2处的值近似等于迎风值。
这就意味着当流动由对流项主导时,只需要让变量表面处的值等于迎风或者上游值就可以完成插值。
这是FLUENT的标准一阶格式。
变量f在某=0和某=L之间的变化(方程1)
如果选择幂率格式,FLUENT用方程3等价的幂率格式[118]作为插值格式。
如一阶迎风格式所述,上图表明,对于较大的Pe,f在某=L/2处的值近似等于迎风值。
当Pe=0(无流动或者纯扩散)图1表明f可以用某=0到某=1之间简单的线性平均来实现插值。
当Peclet数的值适中时,f在某=L/2处的插值必须使用方程3等价的幂率插值格式来得到。
二阶迎风格式
当需要二阶精度时,使用多维线性重建方法[5]来计算单元表面处的值。
在这种方法中,通过单元中心解在单元中心处的泰勒展开来实现单元表面的二阶精度值。
因此,当使用二阶迎风格式时,用下面的方程来计算表面值f_f:
fS
其中f和f分别是单元中心值和迎风单元的梯度值,D是从迎风单元中心到表面中心的位移矢量。
在这种情况下需要确定每个单元内的梯度f。
我们使用散度定理来计算这个梯度,其离散格式如下:
1VNfaceffA
在这里,表面处的值f_f由邻近表面的两个单元的f的平均值来计算。
最后,限制梯度f以保证不会引进新的最大值和最小值。
QUICK格式
对于四边形和六面体网格,我们可以确定它们唯一的上游和下游表面以及单元。
FLUENT还提供了计算对流变量在表面处高阶值的QUICK格式。
QUICK类型的格式[95]是通过变量的二阶迎风与中心插值加上适当的权因子得到的,具体可以写成:
ddccePE1uPW
ScSdSuScScSdSuScSS2SSS
一维控制体
q=0就是二阶迎风值。
在上式中q=1就是中心二阶插值,传统的QUICK格式对应的q=
1/8。
FLUENT中使用一个变量,解相关的q值,以避免引进新的解的极值。
当结构网格和流动方向一致时,QUICK格式明显具有较高精度。
需要注意的是FLUENT也允许对非结构网格或者混合网格使用QUICK格式,在这种情况下,常用的二阶迎风离散格式将被用于非六面体单元表面或者非四边形单元表面。
当使用并行求解器时,二阶迎风格式还被用于划分的边界处。
离散方程的线化形式
离散标量输运方程(离散一节中的方程3)包括了单元中心的标量f的未知值,还包括周围相邻单元出的未知值。
一般说来这些方程关于这些变量是非线性的。
离散一节中方程3的线化形式为:
aPanbnbb
nb其中下标nb是指相邻单元,a_p和a_nb分别是f和f_nb.的线化系数。
每一个单元的邻近单元的数量取决于网格的拓扑结构,但是一般说来都等于围成该单元的表面的数量(边界单元除外)。
在网格中每一个单元都可以写出相似的方程。
这样就产生了具有稀疏系数矩阵的代数方程。
对于标量方程,FLUENT是用点隐式(Gau-Seidel)线化方程求解器与代数多重网格方法(AMG)连接起来从而解出这个线性系统。
亚松驰
由于FLUENT所解方程组的非线性,我们有必要控制的变化。
一般用亚松驰方法来实现控制,该方法在每一部迭代中减少了f的变化量。
亚松驰最简单的形式为:
单元内变量f等于原来的值f_old加上亚松驰因子a与f变化的积:
old
分离求解器
在本节中,我们主要介绍了几个练习,这几个练习和动量方程和连续性方程的离散以及通过分离求解器计算出相应的解有关。
通过考虑定常状态的连续性和动量方程一般形式可以和容易介绍这几个练习:
vdA0
vvdApIdAdAFdV
V其中I是单位矩阵,t是应力张量,F是力矢。
动量方程的离散
标量输运方程的离散中所讨论的离散格式也用于离散动量方程。
例如,设定f=u可以很容易得到某向动量方程:
aPuanbunbpfAS
nb如果已知压力场和表面质量通量,我们就可以用离散一节所介绍的方法来解方程1并获取一个速度场。
但是,压力场和表面质量流率预先是未知的,因此必须作为解的一部分。
关于压力的存储和压力梯度项的离散有重要的问题需要讨论,下一步我们就会讨论这些问题。
FLUENT使用共同定位格式,在这种情况下,压力和速度共同存储在单元中心。
然而,如离散一节的图1所示,方程1需要单元c0和c1之间的表面处的压力值。
因此,我们需要使用插值格式来从单元处压力值计算表面压力值。
压力插值格式
在默认的情况下,FLUENT使用动量方程系数[132]来处理表面处的压力插值。
只要单元中心的压力变化比较光滑,这个程序都可以算得很好。
当控制体之间的动量源项有跳跃或者较大的梯度时,在单元表面处的压力轮廓会有较大的梯度,此时不可以用这种格式来插值。
如果还是用这种格式,就会出现单元速度过大和过小的矛盾。
标准压力插值格式有问题的流动包括:
具有大体积力的流动,如强烈的漩流、高Rayleigh数自然对流等。
在这种情况下,有必要在大梯度区域处理网格从而能够较好的分辨压力的变化。
FLUENT的另一个误差源就是假定壁面法向压力梯度为零。
这种假定对于边界层是有
效的,但是对于出现体积力或者曲率的情况就不合适了。
此外,压力梯度计算最明显的错误就是速度矢量指向或者指出壁面。
当标准压力插值格式不可用时,FLUENT提供了几种可选的方法:
线性格式用相邻单元压力的平均值来计算表面压力。
二阶格式用二阶精度对流项(见二阶迎风格式一节)中使用的方法来重建表面压力。
这
一格式可能会比标准和线性格式有所改善,但是如果将其用于初始计算和/或较差网格计算就可能会出现一些麻烦。
体积力加权格式假定压力和体积力之间差值梯度为常数来计算表面压力。
如果动量方程
中的体积力预先知道(如:
浮力和轴对称涡流的计算),那么这一格式会处理得很好。
PRESTO!
(PREureSTaggeringOption)格式使用离散连续性平衡来计算交错压力的表
面处的交错体积。
这一程序和非结构网格中[118]使用的交错网格格式的思想相似。
注意:
格式只用于四边形或者六面体网格。
当使用这些可选格式时,推荐大家参阅一下选择压力插值格式一节。
连续性方程的离散
分离求解器中的方程1可以在离散一节中的图1所示的控制体上积分,从而得到如下离散方程:
NfacefJf0
其中J_f是通过表面f,rv_nA_f的质量流速。
因此:
NfacefvnAf0
如数值格式概述一节所述,动量方程和连续性方程式按顺序解出的。
在这个顺序格式中,连续性方程是作为压力的方程使用的。
但是对于不可压流动,压力并没有明确出现在方程3中,这是因为密度并不是直接和压力相关。
SIMPLE(Semi-ImplicitMethodforPreure-LinkedEquation)的一组算法[118]将压力引进连续性方程。
具体可以参阅SIMPLE一节。
为了将来能够继续下去,有必要将速度的表面值v_n和速度在单元的中心的存储值关联起来。
单元中心速度到表面的线性插值会导致压力的非物理校验板(checker-boarding)。
FLUENT用Rhie和Chow[132]概述的相似程序来避免校验板。
速度v_n的表面值不是线性平均而是动量权重平均,这个权重因子是基于动量方程离散一节中的方程1的a_P系数的。
采用这种程序,表面流动速度J_f可以写成:
dppJfJffc0c1其中,p_c0和p_c1是表面两边单元的压力,J(hat)_f包含了这些单元中速度的影响(见离散一节中的图1)。
d_f向可以写成:
dfA2faP
a(bar)_P项是表面两边单元中动量方程a_P系数的平均。
压力-速度耦合
使用连续性方程的离散一节中的方程5来实现压力速度耦合,从而从离散连续性方程(连续性方程离散一节中的方程3)推导出一个压力方程。
FLUENT提供了三种可选的压力速度耦合算法:
SIMPLE,SIMPLEC和PISO。
关于这些算法的选择请参阅选择压力速度耦合方法一节。
SIMPLE
SIMPLE算法使用压力和速度之间的相互校正关系来强制质量守恒并获取压力场。
如果用猜测压力场p^某来解动量方程,从连续性方程离散一节中的方程5所得到的表面流量J^某_f为:
某某某J某fJfdfpc0pc1
它并不满足连续性方程。
因此将校正项J^'
_f加入到表面流速J^某_f中来校正质量流速J_f:
JfJ某fJf
此时满足了连续性方程。
SIMPLE假定J^'
_f写成如下形式:
0pc1Jfdfpc其中p^'
是单元压力校正。
SIMPLE算法将流量校正方程(方程3和5)代入到离散连续性方程(连续性方程的离散一节中的方程3)从而得到单元内压力校正p^'
的离散方程。
baPpanbpnbnb其中,源项b是流入单元的净流速。
NfacebJf某f
压力校正方程(方程7)可以用代数多重网格一节中所介绍的代数多重网格方法来解。
一旦得到解,使用下面的方程校正单元压力和表面流动速度:
pp某pp
JfJ某fdfpc0pc1
在这里,a_p是压力亚松驰因子(请参阅亚松驰方面的介绍)。
校正后的表面流速J_f在每一
部迭代中同一地满足离散连续性方程。
SIMPLEC
SIMPLEC程序和SIMPLE程序相似。
两种算法所使用的表达式唯一的区别就是表面流动速度校正项。
和SIMPLE中一样,校正方程可写为:
但是系数d_f重新定义为:
dfA2apafnb
nb可以看出,在压力速度耦合是得到解的主要因素时,使用修改后的校正方程可以加速收
敛。
PISO
压力隐式分裂算子(PISO)的压力速度耦合格式是SIMPLE算法族的一部分,它是基于压力速度校正之间的高度近似关系的一种算法。
SIMPLE和SIMPLEC算法的一个限制就是在压力校正方程解出之后新的速度值和相应的流量不满足动量平衡。
因此必须重复计算直至平衡得到满足。
为了提高该计算的效率,PISO算法执行了两个附加的校正:
相邻校正和偏斜校正。
PISO算法的主要思想就是将压力校正方程[69]中解的阶段中的SIMPLE和SIMPLEC算法所需的重复计算移除。
经过一个或更多的附加PISO循环,校正的速度会更接近满足连续性和动量方程。
这一迭代过程被称为动量校正或者邻近校正。
PISO算法在每个迭代中要花费稍多的CPU时间但是极大的减少了达到收敛所需要的迭代次数,尤其是对于过渡问题,这一优点更为明显。
对于具有一些倾斜度的网格,单元表面质量流量校正和邻近单元压力校正差值之间的关系是相当简略的。
因为沿着单元表面的压力校正梯度的分量开始是未知的,所以需要进行一个和上面所述的PISO邻近校正中相似的迭代步骤[51]。
初始化压力校正方程的解之后,重新计算压力校正梯度然后用重新计算出来的值更新质量流量校正。
这个被称为偏斜矫正的过程极大的减少了计算高度扭曲网格所遇到的收敛性困难。
PISO偏斜校正可以使我们在基本相同的迭代步中,从高度偏斜的网格上得到和更为正交的网格上不相上下的解。
多相流中强体积力的特定处理
当多项流中存在较大的体积力(如:
重力或者表面张力),动量方程中的体积力项和压力梯度项几乎是平衡的,相比较来说,对流项和粘性项的贡献就较小了。
除非考虑压力梯度和体积力的局部平衡,否则分离算法的收敛性会很差。
FLUENT提供了一种可选的隐式体积力处理,这种处理考虑了上面所说的影响从而使得解更具有鲁棒性。
基本的程序是将包含体积力的校正项增加到表面流动校正方程中(SIMPLE中的方程13)。
这样,SIMPLE中的方程9就多了一个额外的体积力校正项,从而使得流动在迭代过程中提早得到真实的压力场。
这一选项只在多项流计算中使用,但是在默认情况下是关闭的。
设定多相流计算的说明中包括了打开隐式体积力处理的说明,具体可以在以下几节中找到相关说明:
在VOF计算中包括体积力,在气穴计算中包括体积力,在代数滑移混合计算中包括体积力。
除此之外,通过使用体积力的亚松驰因子,FLUENT允许你控制体积力中的变化。
耦合求解器
FLUENT中的耦合求解器同时解连续性、动量、(合适的话)能量和组分输运,并将它们作为一组控制方程或者方程的矢量来处理。
随后会按顺序解附加标量的控制方程(也就是说这些附加标量方程相互之间是分离的而且和耦合方程组之间是分离的)。
矢量形式的控制方程
将曲面面积微分dA作为控制体积,积分描述平均流动属性的单组分流体的控制方程系统,相应的笛卡尔坐标形式为:
WdVFGdAHdV
VtV其中,矢量W,F和G分别定义为:
0vuvupi某iWv,Fvvpj,Gyi
wvwpkziEvEpvijvjq矢量H包含了诸如体积力、能量等源项。
在这里,r、v、E和p分别是流体的密度、速度、单位质量的总能量以及压力。
T是粘性应力张量,q是热流量。
总能量E和总焓H的关系为:
EHp
其中:
Hhv22
在方程1中所表示的Navier-Stoke方程在低马赫数下会非常具有刚性,这主要是因为流体速度v和声速c相差太大。
对于不可压流来说这种情况尤其真实,不管流动速度有多大,不可压流体中的声速都是无穷大。
在这些情况下,方程的数值刚性会导致较差的收敛速度。
在FLUENT中,我们采用耦合求解器中的一种被称为(时间导数)预处理[175]的方法克服了这种困难。
预处理
时间导数预处理方法,是用预处理矩阵先乘以矢量形式控制方程中方程1的时间导数项。
这一步就重新标度了所解方程系统的声速(特征值),从而减轻了低马赫数和不可压流动中会遇到的数值刚性的影响。
推导预处理矩阵,首先是用微分学中的一个法则(具体看方程就知道了)将守恒量W在控制方程的方程1的因变量形式变形为原始变量Q的形式,结果如下:
WQdVFGdAHdVVVQt其中,Q是矢量{p,u,v,w,T}^T,雅克比(Jacobian)矩阵W/Q为:
pupWpvQwppH其中:
T00Tu00Tv00TwuvwTHCp000p,T
TppT对于理想气体d=1,对于不可压流体d=0。
选择原始变量Q作为因变量有几个原因。
首先,解不可压流动时它是自然的选择。
其次,当我们使用二阶精度时,为了得到粘性流动中更高精度的速度和温度梯度以及无粘流动的压力梯度,我们需要重建Q而不是W。
最后,选择压力作为因变量允许系统中的声波的传播被挑选出来[165]。
我们用预处理矩阵G来替换雅克比矩阵W/Q(方程3)来实现方程的预处理,这样,预处理系统的守恒形式为:
QdVFGdAHdVVVt其中:
0uv0w0Hu参数为:
1T2UrCpT00Tu0Tv0TwvwTHCp00方程9中的参考速度U_r在当地选取,从而保证系统的特征值关于对流和耗散时间尺度能够调节的很好[175]。
预处理之后的方程系统(方程5)的特征值为:
u,u,u,uc,uc
F1QFRFL1A22在这里,dQ是空间差分Q_R-Q_L。
流量F_R=F(Q_R)和F_L=F(Q_L)是用表面“右边”
和“左边”的(重建解)矢量Q_R
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 22 fluent 解算器 使用 63