论文部分内容阅读
本文发展了一种GPU加速的基于非结构四边形自适应加密网格的二维无黏可压缩流动解算器VA2DG,以及带计算凝结问题扩展的解算器VA2DGC。网格自适应加密技术是计算流体力学中一项非常重要的技术,以前的研究者虽然在GPU上实现过类似的解算器,但是他们并未将自适应加密过程置于GPU上执行,这会带来频繁的数据交换问题并降低性能。本文第一次完全的在GPU上实现了非结构网格自适应加密方法,极大的减少了因在CPU上实现网格自适应所带来的GPU和CPU之间的数据频繁交换问题。本文采用加密网格表的方式实现了在GPU上高效运行网格自适应过程,并使用原子操作来实现加密网格表的并行生成,同时回收废弃的网格以提高存储空间的利用效率。 本文分别在CPU(Intel E7300)和GPU(Geforce GT9800和Tesla C2050)上模拟了三个典型的二维流动问题,将其结果对比理论解或者试验结果来检验该解算器的模拟结果是否正确,然后将GPU和CPU运行的时间相互比较来分析GPU解算器的性能。通过比对模拟结果可以发现GPU模拟的结果与文献中的理论解或者试验结果吻合得非常好,证明了VA2DG能在GPU上正确的模拟流体问题。基础优化代码使用GT9800运算时,对比E7300的结果可以达到8x的加速比。同样的代码在C2050上运行则能达到28x的加速比。通过在C2050上使用共享存储器原子操作和配置更大的L1缓存,优化代码能达到40x以上的加速比。本文重点关注了网格自适应加密过程的并行,这一过程使用GT9800可以达到3x的加速比,若使用C2050则可以达到28x的加速比,这也证明了网格自适应加密过程的GPU并行是可以高效实现的。这一结果同样可以证明GPU架构的发展可以对计算流体力学带来明显的益处。 在验证VA2DG解算器可靠性的基础上,本文将VA2DGC用于计算可压缩流动中的凝结问题,首先模拟了含水蒸气凝结的激波管问题,并与CESE算法计算的结果进行对比,用以验证VA2DGC程序的可靠性。然后本文模拟了10m×10m和100m×100m区域内含凝结的Prandtl-Meyer流动,并考察了稳定状态时流场中波系以及成核区域分布的情况,发现凝结产生的激波呈现不连续的分层次串级分布,而成核区域分布则会出现不规则的突起,这种不规则的突起是由于凝结过程的二维效应引起的。通过拟合发现突起区域离拐点的距离约是以四次方的比率增长的。