论文部分内容阅读
格子Boltzmann方法(Lattice Boltzmann Method,LBM)是一种有效的模拟复杂流体流动的数值计算方法,已经成功的应用到研究多相流,多孔介质流和湍流等工作中。与传统的数值求解宏观方程(Euler方程和Navier-Stokes方程)方法相比,LBM是从介观动理论的角度,将流体抽象成大量的介观粒子,这些粒子在简单的网格上进行迁移和碰撞,通过对反映粒子分布的统计函数进行时空演化获得流体的宏观变量。因此,LBM具有边界条件易于处理、代码短小、编程简单与适合并行计算等优点。随着近年来科研工作者们对LBM越来越多的关注以及对LBM不断的发展和应用,LBM已经逐渐发展成为计算流体动力学中的一个重要研究热点。为了求解高雷诺数不可压流场,本文将Smagorinsky涡粘性模型拓展到LBM中的二维9速度(D2Q9)和三维19速度(D3Q19)多松弛时间(Multiple Relaxation Time, MRT)格子Boltzmann模型中,针对LBM数值模拟高雷诺数三维流场计算效率低的问题和其非常适合并行的优点以及基于中央处理器(Central Processor Unit,CPU)并行计算的限制,采用基于图形处理器(Graphic Processor Unit,GPU)的计算统一设备架构(Computing Unified Device Architecture,CUDA)并行编程模型对已建立模型进行并行加速,并利用建立的并行模型对方腔流和风生流进行了数值模拟研究。本文的主要工作如下:第一,介绍了LBM的发展历史,基本原理和模型,边界条件,单位转换以及数值实现过程。为了模拟高雷诺数的不可压流场,本文利用传递矩阵把粒子分布函数的二阶矩从速度空间传递到矩空间计算涡粘性系数的方法,将Smagorinsky涡粘性模型拓展到D2Q9和D3Q19MRT格子Boltzmann模型中,建立了D2Q9和D3Q19MRT-SMAG模型。第二,针对LBM数值模拟高雷诺数三维流场计算效率低的问题和其非常适合并行的优点以及基于CPU并行计算的诸多限制,本文采用基于GPU的CUDA并行编程模型对拓展的MRT-SMAG模型实现了并行加速。该部分介绍了GPU-CUDA并行编程模型,提出了基于GPU-CUDA并行计算在MRT-SMAG模型中的具体实现过程。通过对基于GPU并行程序性能的具体分析,可以通过合理分配线程块内线程数量,减少内核函数内的if判断语句,尽可能多的运用片上高速的共享内存等,以提高GPU上并行程序的计算效率。为了验证已建立并行程序的准确性,本文完成了长宽高比为1:3:1,Re=10000的三维单边驱动方腔流的数值实验,在该算例中基于GPU并行程序的计算效率与只用单个CPU进行计算的串行程序相比提高达145倍,由于在GPU和CPU上都采用双精度计算,而两者的计算精度没有差别。第三,为了进一步验证基于GPU并行模型的准确性和评估该模型求解湍流的能力以及分析多边驱动方腔内的流场特性,本文针对方腔流研究中存在的问题应用已建立的基于GPU-CUDA的D2Q9和D3Q19MRT-SMAG模型对二维和三维单边驱动方腔流以及多边驱动方腔流进行了数值模拟研究。对于二维方腔流,分析了腔内流场由层流向湍流状态转变的转捩雷诺数,讨论了格子网格系统,Smagorinsky常数,初始发展阶段和时间平均阶段对高雷诺数二维方腔流(雷诺数从5×104到107)时间平均量的影响;对于三维单边驱动方腔流,计算了三维方腔层流初始阶段流场,分析了边墙摩擦对三维方腔内湍流场的影响,讨论了表征其湍流脉动强度的二阶统计量;对于三维四边驱动方腔流,分析了宽高比对腔内流场特性的影响,计算了多个稳定层流解(流体分岔),讨论了宽高比对多个层流稳定解的影响,另外还评估了基于GPU并行程序对各算例的计算效率。第四,采用建立的基于GPU并行模型对三维风生流进行初步的数值研究,分析了中心对称断面的不同位置处的时间平均水平速度曲线以及表面和底部近壁区内的速度分布,给出了中心对称断面的时间平均流线和速度矢量,并将数值结果与已知的实验结果进行对比验证,结果表明MRT-SMAG模型可以求解三维风生流,和利用CUDA并行编程模型在GPU上可以极大的提高该模型的计算效率,约为178倍。