论文摘要
光滑粒子流体动力学(SPH)方法是一种无网格数值分析方法,在水动力学问题中具有重要应用。由于个人计算机上的CPU难以胜任SPH方法在模拟水动力学问题时因粒子数目规模较大所带来的大规模无逻辑关系的计算,而图形处理器(GPU)在无逻辑关系的并行计算上比同时期的CPU计算速度快、存储带宽宽,因此采用GPU通用计算平台对水动力学中的SPH方法进行研究,既能充分发挥SPH方法在模拟大变形流体时的优势,又能充分发挥GPU在并行计算方面的优势。虽然SPH方法在水动力学中具有广泛应用,但传统带人工黏性项的SPH方法在模拟静态问题、溃坝问题和孤立波爬坡等问题时仍然存在压力非物理振荡的不足。为此,本文针对水动力学问题中的SPH方法进行了研究,并基于GPU编程,在个人计算机上实现了较大规模粒子数的典型水动力学问题的SPH数值模拟。本文主要研究内容如下:第一,对水动力学中的SPH方法进行了研究。在水动力学问题的数值模拟中,传统带人工黏性项的SPH方法存在压力的非物理振荡、计算精度和稳定性较差的不足,虽然完全黎曼解的SPH方法能对压力的非物理振荡进行抑制,但却引入了较大数值黏性。为此,我们对水动力学问题数值模拟中的弱可压状态方程和流体控制方程组进行分析,在此基础上提出了不完全黎曼解的SPH方法。第二,采用CUDA C语言编写了HLLC一阶完全黎曼解和不完全黎曼解的SPH方法、HLLC二阶完全黎曼解和不完全黎曼解的SPH方法的程序模块,并将上述模块添加到现有的传统带人工黏性项的SPH方法的GPU程序中,得到了水动力学中含多种修正的SPH方法的GPU程序。第三,在个人电脑上搭建了GPU通用计算平台,采用水动力学中含多种修正的SPH方法的GPU程序,在基于GPU的通用计算平台上实现了二维溃坝问题、二维孤立波爬坡问题、三维静态问题、三维溃坝问题和三维孤立波爬坡问题的数值模拟,并对数值模拟结果进行了对比分析。研究表明:(1)HLLC一阶和二阶不完全黎曼解的SPH方法不仅能够有效抑制水动力学问题中压力的非物理振荡,而且数值黏性比HLLC一阶和二阶完全黎曼解的SPH方法小,从而能够逼真地模拟典型水动力学问题的流体运动特征。(2)基于GPU的通用计算平台和程序设计,能够在个人计算机上实现较大规模粒子数的水动力学问题的SPH数值模拟。
论文目录
摘要ABSTRACT第一章 绪论1.1 研究背景及意义1.1.1 研究背景1.1.2 研究意义1.2 国内外研究现状1.3 本文的主要内容第二章 水动力学中不完全黎曼解的SPH方法2.1 SPH基本原理2.1.1 函数的核函数近似法2.1.2 函数导数的核函数近似法2.1.3 粒子近似法2.1.4 常用的光滑函数2.2 Navier-Stokes方程组的SPH表达式2.2.1 Navier-Stokes方程组2.2.2 密度的粒子近似法2.2.3 动量守恒方程的粒子近似法2.2.4 能量守恒方程的粒子近似法2.3 SPH方法计算的实施2.3.1 状态方程2.3.2 边界条件2.3.3 近邻粒子搜索2.3.4 时间积分2.4 水动力学中传统带人工黏性项的SPH方法2.5 水动力学中完全黎曼解的SPH方法2.5.1 Godunov格式基本思想2.5.2 HLLC一阶黎曼求解器2.5.3 HLLC二阶黎曼求解器2.5.4 完全黎曼解的SPH方法2.6 水动力学中不完全黎曼解的SPH方法2.7 本章小结第三章 水动力学中的SPH方法在GPU上的实现3.1 从GPGPU到CUDA3.1.1 早期的GPGPU开发3.1.2 CUDA架构及其发展简介3.2 CUDA编程模型3.2.1 主机与设备3.2.2 CUDA线程模型3.2.3 CUDA存储器模型3.3 CUDA软件体系3.3.1 CUDA软件栈3.3.2 CUDA C语言简介3.4 水动力学中含不同修正的SPH方法的GPU程序流程3.5 本章小结第四章 水动力学中不同SPH方法数值试验及对比分析4.1 不完全黎曼解SPH方法的适用性验证4.1.1 模拟参数设置4.1.2 二维溃坝问题4.1.3 孤立波造波理论4.1.4 二维孤立波爬坡问题4.2 不完全黎曼解的SPH方法对压力和数值黏性的改善4.2.1 三维静态问题4.2.2 三维溃坝问题4.2.3 三维孤立波爬坡问题4.3 本章小结第五章 结束语5.1 全文总结5.2 对本课题未来工作的展望致谢参考文献作者在学期间取得的学术成果
相关论文文献
标签:光滑粒子流体动力学方法论文; 图形处理器论文; 水动力学论文; 黎曼解论文; 压力振荡论文; 数值黏性论文;
水动力学中不完全黎曼解的SPH方法及其在GPU上的实现
下载Doc文档