Error-pretreatment method for numerical simulation of indoor air flow |
|
摘要:为加快室内空气流动数值模拟计算收敛速度,基于对多重网格法关于高频和低频误差的思想,采用误差预处理法对室内气流动的离散代数方程组进行由粗到细网格上的迭代求解。用该方法和传统迭代法对室内空气等温和非等温流动分别进行模拟,其对比结果表明,误差预处理算法显著提高室内空气流动数值模拟的收敛速度,可将收敛时间减小到原来的1/3~1/2。
关键词:室内空气流动;误差预处理法;数值模拟;误差
Abstract: Since the multi-grid method is not proper for numerical procedures based on SIMPLE, a simpler and more effective algorithm to solve the algebraic equations, the error-pretreatment method, is proposed to accelerate convergence for indoor air flow simulation. The algorithm is abased on the theory that iteration errors can be pided into high frequency and low frequency ones. Two isothermal and non-isothermal indoor airflow examples were simulated with this method and the conventional iteration method. The error-pretreatment method improves the convergence speed for numerical simulation of indoor airflow by reducing convergence time by 1/2~1/3.
Key words: indoor airflow; error-pretreatment method; numerical simulation; error |
|
如何快速、准确地模拟和预测工程中需要优化或进行比较的大量工况,一直是CFD(computational fluid dynamics)技术应用于空调通风房间内空气流动的数值模拟仿真存在的问题。作为室内空气流动数值模拟主要组成部分的代数方程求解算法,对计算速度有着很大影响。多重网格法对加快控制室内空气流动的非线性N-S方程的迭代计算收敛速度比较有效[1],但是对于室内空气流动数值模拟常用的SIMPLE (semi-implement method of pressure linked equation)算法而言,多重网格法的收敛加速效果并不显著[1]。基于多重网格法的思想,提出了适于SIMPLE算法的误差预处理方法,以加快迭代计算的收敛速度,更好地适应工程需要。 1 高频和低频误差理论 首先简要介绍多重网格法关于高频和低频误差的理论。因为对任意形状计算域中的任意形状的网格,总可以使用保角变换把它们变到矩形计算域上的矩形网格。所以以下讨论均基于矩形计算域和矩形网格。 任给定一个划分好网格的计算域,总可以把它划分为A×B×C个区域,使得每个区域上的网格分别在3个方向上是均匀的。设f(x, y, z)为差分后的初始误差,第(u, v, ω)区域的尺寸为2au × 2bv × 2cω,网格数为M u × N v× Kω。在每个区域内,3个方向上分别只有周期等于或低于2M u ,2N v,2Kω的分量能够被表示出来。因此: [Ai,j,k,u,,v,w sin +B I,j,k,v,w cos ]·[Ci,j,k,u,,v,w sin +Di j,k,v,w cos ]·[Ei,j,k,u,,v,w sin +F i,j,k,v,w cos ], Ai,j,k,u,,v,w ,Bi,j,k,u,,v,w ,Ci,j,k,u,,v,w ,Di,j,k,u,,v,w ,Ei,j,k,u,,v,w ,Fi,j,k,u,,v,w ∈(u , v , w) Ai,j,k,u,,v,w ,Bi,j,k,u,,v,w ,Ci,j,k,u,,v,w ,Di,j,k,u,,v,w ,Ei,j,k,u,,v,w ,Fi,j,k,u,,v,w = 常数 Ai,j,k,u,,v,w ,Bi,j,k,u,,v,w ,Ci,j,k,u,,v,w ,Di,j,k,u,,v,w ,Ei,j,k,u,,v,w ,Fi,j,k,u,,v,w (u , v , w) Ai,j,k,u,,v,w ,Bi,j,k,u,,v,w ,Ci,j,k,u,,v,w ,Di,j,k,u,,v,w ,Ei,j,k,u,,v,w ,Fi,j,k,u,,v,w = 0 (1)
其中:t x,u,v,w =0,1,…,M u ;t y,u,v,w =0,1,…,N v ;t z,u,v,w =0,1,…,Kw ; 根据多重网格理论,I / M u ,j / N v,k/K ω 小的项(称为"低频误差"),收敛速度很慢,是妨碍迭代法快速收敛的主要因素。而如果减小M u , N v, K ω,即把网格粗化,就可以使误码差频率变高,并使一部分细网格上的低频误差转达化为粗网格上的高频误差。如果交替运用粗细网格进行迭代,利用粗网格快速消除低频误差,在细网格上提高精度,就可以加快收敛速度。 2 误差预处理的基本思想和算法 2.1 误差预处理法 传统迭代法是在整个计算区域的所有网格上同时进行迭代计算至收敛。但如果能先求出一些点的值,然后再根据它们来预测所有点的值,只要预测方法得当,从误差削减的角度而言,就可以获得比迭代法高得多的效率。可先在粗网格上迭代计算至问题收敛,然后借助该预测方法把粗网格上的值映射到细网格上作为迭代初值,再进行迭代计算直至收敛。该方法的基本思想在于通过在粗网格上用比较少的时间(相对于在细网格上迭代)来获得问题的大致描述,以便通过线性插值大量削减误差,称其为"误差预处理法"。假设已知如图1计算域中点A,B,C,D,E,F,G,H的真实值。各点坐标分别为: A(x - d a , y + d y , z + d z) B(x + d x , y + d y , z + d z) C(x - d a , y + d y , z - d c) D(x + d x , y + d y , z - d c) E(x - d a , y - d b , z + d z) F(x + d x , y -d b , z + d z) G(x - d a , y - d b , z - d c) H(x + d x , y - d b , z - d c) 图1 计算示意图
由流体流动的输运控制方程可知,点I上的值只受其相邻点上的值的影响,即只受A,B,C,D,E,F,G,H点的影响。因此,可以用这些点上的值来预测一个误差比较小的I的估计值。 很自然,用这8个点的加权平均值作为I的值:
P (I)= MA f (A) + M B f (B) + MC f (C) + MD f (D) + ME f (E) + MF f (F) + MG f (G) + MH f (H), (2)
其中,P(I)表示预测值,f( * ) 表示相应点的真实值,M x表示加权系数: 由守恒律,有:
MA + M B + MC + MD + ME + MF + MG + MH = 1 (3)
离I比较近的点对I的影响应该比较大,即较近的点加权系数应较大。 结合式(3),可以根据面积律导出加权系数[1]:
MA =(d x × d b × d c )/[(d x + d a )(d y + d b )(d z + d c )] MB =(d a × d b × d c )/[(d x + d a )(d y + d b )(d z + d c )] MC =(d x × d b × d z )/[(d x + d a )(d y + d b )(d z + d c )] MD =(d a × d b × d z )/[(d x + d a )(d y + d b )(d z + d c )] ME =(d x × d y × d c )/[(d x + d a )(d y + d b )(d z + d c )] (4) MF =(d a × d y × d c )/[(d x + d a )(d y + d b )(d z + d c )] MG =(d x × d y × d z )/[(d x + d a )(d y + d b )(d z + d c )] MH =(d a × d y × d z )/[(d x + d a )(d y + d b )(d z + d c )]
将式(4)代入式(2),得
P( x , y , z )= [(d a × d b × d c )f (x + d x,y +d y,z + d z)+(d a × d b × d z )f (x + d x,y +d y,z - d c)+(d a × d y × d c )f (x + d x,y -d b,z + d z)+(d a × d y × d z )f (x + d x,y -d b,z - d c)+(d x × d b × d c )f (x - d a,y +d y,z + d z)+(d x × d b × d z )f (x - d a,y +d y,z - d c)+(d x × d y × d c )f (x - d a,y -d b,z + d z)+(d x × d y × d z )f (x - d a,y -d b, z - d c) ]/[(d x + d a )(d y + d b )(d z + d c )] (5)
显然,实际物理问题的解都是简单函数。故由Taylor公式,有f ( x+d x,y + d y,z + d z) = f (x, y, z)+ fx (x, y, z)dx + fy (x, y, z)dy+ f z (x, y, z)dz + O (d x2 + d y2 + d z2) (6)
类似写出其它项,把它们代入式(5),并考虑到
O (d x2 ) = O (d a2 ),O (d y2 ) = O (d b2 ),O (d z2 ) = O (d c2 ) (7)
可以得出: P(x, y, z)-f(x, y, z)= O (d x2 + d y2 + d z2) (8)
上式表明上述插值方法具有二阶精度,而且它是显式方法,效率远远高于迭代方法。综上所述,误差预处理的算法如图2所示。 图2 误差预处理法的计算流程
图2中当运算进行到限制和插值时即采用上述的预测方法。由此可见,误差预处理法本身不仅是数学方法,而且也蕴涵了一定的物理意义。 2.2 误差预处理法计算速度分析 如前所述,对一个数值模拟过程,先把细网格合并成粗网格进行计算,得到问题的一个粗略描述,通过它们预测出细网格上的估计值,以其为初值再进行迭代。由于在粗网格上的每一步计算量大大低于在细网格上的计算量,而且预测过程的误差消除效率高于迭代法,故只要将由粗网格迭代和网格值映射所带来的迭代步数的增加控制在一定范围以内,就可以加快迭代收敛速度。 对一维问题,由细网格生成的粗网格的数目大约是细网格数止的1/2,对于三维问题,大约为1/8。SIMPLE算法每次迭代的计算量大约正比于网格数,故对实际三维工程问题,细网格上每项次迭代的计算量是粗网格上的8倍。设普通迭代法需要M步收敛,耗时T(M);误差预处理法在粗网格上迭代Na步,在细网格上迭代N步后收敛,各耗时Ta (Na),T(N)。
如果误差预处理法有效,即 T(M)&> Ta (Na)+T(N), (9)
而 Ta (Na)+T(N)≈T (Na/8) +T(N)= T (Na/8+N) (10)
应满足 Na/8+N&< M (11)
在实践中我们发现,一般的工程问题都是符合这一条件的。另外,由于每次粗网格上的迭代计算量仅约为细网格上的1/8,因此粗网格上的迭代时间约为细网格迭代时间的1/8。所以,采用三层或三层以上的网格所能节省的时间是非常有限的,最多不超过由细网格直接生成的第一层粗网格上的迭代时间,即细网格迭代时间的1/8。故我们认为,在误差预处理法中,采用粗细两重网格已经足够了。 误差预处理法比多重网格法更简单,且易实现,它适用于SIMPLE算法,从而避免了多重网格法对基于SIMPLE算法的迭代计算收敛不快的缺点。实际上,任何基于差分议程格式的迭代法都可以运用误差预处理法。根据误差预处理法的算法过程,只要原方法有效准确,误差预处理法就有效准确。
|
3 算例验证和对比
为检验误差预处理法的有效性,这里用两个较为典型的算例进行验证。
例1 房间等温通风
文[2]对室内等温通风进行了测试,测试条件见文[3] 。 房间结构示意图见文[3]中图6,模拟结果和实验数据的对比参见文[3]中图7。
由文[3]中图7可以看出,采用误差预处理法的计算结果和实验结果吻合得很好,而对于同样的计算网格而言,采用误差预处理法计算达到收敛结果的时间比不采用该法在单层网格上计算达到收敛的时间为短。表1列出采用误差预处理法和传统的数值计算方法对同样计算网格计算所用收敛时间的比较。误差预处理法所用的时间只是传统迭代法的57.7%。
表1 误差预处理法和传统迭代法计算时间比较
计算方法 |
网格划分 |
计算至收敛时间/min |
例1 |
例2 |
例1 |
例2 |
误差预处理法传统迭代法 |
32×32×32 |
32×32×32 |
180 |
314 |
36×36×32 |
36×36×32 |
312 |
501 |
例2 室内非等温流动
文[4]对室内非等温流动进行了测试,测试条件见文[3]。房间结构如文[3]中图8所示。
测试结果如文[3]中的图9所示。表1列出了本算例采用误差预处理法和传统的数值计算方法对同样计算网格计算所达收敛时间的比较。在这个算例中,误差预处理法所用时间是传统迭代法的62.7%。
此外,笔者进行的其它一些和传统迭代方法比较的算例均表明,误差预处理法要比传统迭代法快1/2~1/3。这说明误差预处理法可以在保证精度的同时,显著而有效地加快室内空气流动数值模拟的速度。
4 结论
误差预处理法基于多重网格法的思想,但比多重网格法易于实现,且避免多重网格法配合基于SIMPLE算法计算收敛速度不理想的缺点。本文列举的等温和非等温室内空气流动算例表明,误差预处理结合SIMPLE算法进行通风空调房间内空气流动数值模拟可有效加快迭代计算的收敛速度约1/2~1/3。
参考文献(References)
[1] 刘超群,多重网格法及其在计算流体力学中的应用[M]。 北京:清华大学出版社,1995
LIU Chaoqun. Multigrid Method and Application in Computational Fluid Dynamics [M]. Beijing; Tsinghua University Press, 1995. (in Chinese)
[2] Said M N A. Jouini D B. Plett E G. Influence of turbulence parameters at supply inlet on room air diffusion [A]. ASME, Proceedings of ASME Winter Annual Meeting [C]. New Orleans, Louisiana, 1993. 1-5
[3] 赵彬,李先庭,彦启森,用零方程湍流模型模拟通风空调室内的空气流动[J]。 清华大学学报,2001,4](10):109-113。
ZHAO Bin, Li Xianting, YAN Qisen, Simulation of indoor air flow in ventilated room by zero-equation turbulence model [J]. J Tsinghua University, 2001, 41 (10): 109-113(in Chinese)
[4] Awbi H B. Application of computational fluid dynamics in room ventilation [J]. Building and Environment . 1989. 24 (1):73-83