论文部分内容阅读
大规模科学与工程计算已经成为科学发现和工程设计的重要技术手段,复杂流体运动的数值模拟一直是大规模科学与工程计算最重要且最具挑战性的研究领域之一。与连续介质力学的经典数值方法不同,格子Boltzmann方法(Lattice Boltzmann Method, LBM)是建立在分子动力学基础上的数值方法,LBM可以看成是Boltzmann方程的一种特殊离散格式。由于Boltzmann方程自身本质的运动学特性,以及可以根据经典的Chapman-Enskog展开从LBM得到Navier-Stokes方程,使得LBM比基于连续介质假设的Navier-Stokes方程包含了更多的物理内涵。同时LBM具有以下几个方面的优点:算法简单、压力可以直接求解、简易的复杂边界条件处理、特别适合并行计算等。基于LBM的以上优点,本文在详细介绍LBM的发展过程和常用的单松弛(SRT)和多松弛(MRT)碰撞模型,并通过分析模型中平衡态分布函数需要满足的条件和原有平衡态分布函数本身的适用范围之后,研究从连续的Maxwell平衡态分布函数推导在不同离散速度模型上的新平衡态分布函数。从进一步加快LBM的计算速度和流动复杂性的角度出发,将区域分解方法和多层网格技术应用到LBM中,给出对应的大规模可扩展并行算法。由于LBM与大涡模拟(Large Eddy Simulation)湍流模式相结合的方法能够有效的模拟高雷诺数的流动问题,所以本文还详细分析了LBM+LES的并行性,给出了面向十万计算核量级的超级计算机上的大规模并行计算模型、算法及具有高可扩展性的MPI程序实现。同时为了LBM+LES能够更好的适用目前高性能计算集群中的分布式共享存储体系结构,构造了基于MPI+OpenMP的混合编程模型的LBM+LES高可扩展并行算法。通过大量的数值实验,验证了本文所提的模型的正确性,并行算法的可行性和高可扩展性。本文的创新性工作主要有四个方面:1.深入研究了格子Boltzmann方法,分析了经典的DnQm离散速度模型的平衡态分布函数对速度的取值范围,同时为了提高流体流动速度的取值范围,提出了一种使用分配函数,将连续的Maxwell平衡态分布函数离散到对应的离散速度模型上的新平衡态分布函数,分别给出了二维D2Q9和三维D3Q19模型对应的平衡态分布函数,该平衡态分布函数能够适用于更大的流体流动速度范围,并通过方腔流、圆柱绕流和后台阶流验证了该平衡态分布函数的有效性;2.针对求解大规模复杂流动的格子Boltzmann方法与大涡模拟湍流模型相结合的方法,基于MPI和MPI+OpenMP的LBM+LES,分别提出了适用于大规模计算的高可扩展并行算法,并结合并行网格生成,分别给出了在二维、三维情况下的多维网格划分的MPI通信模式。通过在上海大学“自强4000”高性能集群和国家超级计算济南中心的国产“神威蓝光”超级计算机上进行了大规模计算问题的实验,验证了LBM+LES并行算法对大规模问题具有高可扩展性,同时在使用13万计算核时仍能够获得良好的加速比和效率:3.从具体的流动问题出发,考虑到不同计算区域的收敛速度不一致的情况,提出了一种基于分块迭代策略的LBM加速算法,对加速算法的并行性进行分析并给出对应的OpenMP并行算法及程序实现,通过相关数值实验验证了该方法能够有效的减少迭代次数,并加快求解的收敛速度,同时发现该加速算法能够适用于一些高雷诺数的流动问题;4.为了克服LBM使用规则网格无法精确模拟复杂流动的问题,本文提出了一种多层网格格子Boltzmann方法,并分析了该方法的OpenMP并行性。该方法主要是通过在粗细网格交界面上建立缓冲区,减少时间上的插值计算,简化了粗细网格间的耦合关系。与原有的多块网格方法相比,该方法编程实现更加方便,且数值实验的结果验证了该方法的正确性。