首页> 中文学位 >基于PETSc的CFD并行JFNK求解器
【6h】

基于PETSc的CFD并行JFNK求解器

代理获取

目录

封面

声明

目录

中文摘要

英文摘要

第一章 绪论

1 .1 研究背景介绍

1.2 JFNK与PETSc在CFD中的研究与应用现状

1 .3 研究内容

1 .4 论文结构

第二章 CFD-JFNK非线性求解器数值模型

2.1 传统CFD线性求解器

2.2 JFNK方法的非线性函数

2.3 JFNK的两层迭代及预条件

2.4 CFD-JFNK求解器计算流程

2 .5 小结

第三章 PETSc框架对JFNK求解器的实现支持

3.1 PETSc软件体系结构

3.2 PETSc的数据结构及功能

3.3 PETSc的JFNK方法实现

3 .4 小结

第四章 基于传统显式剖分的JFNK并行求解器

4 .1 数据结构构造

4.2 基于PETSc的JFNK解法器流程设计

4 .3 非线性函数及预条件

4 .4 总体实现

4 .5 小结

第五章 基于隐式剖分的并行JFNK求解器

5 .1 进程资源与网格区块的映射

5.2 DMDA与进程资源的映射

5 .3 总体实现

5 .4 小结

第六章 测试与分析

6 .1 百万网格三维圆柱绕流算例

6 .2 亿级网格三维圆柱绕流算例

6 .3 十亿级网格三维圆柱绕流算例

6 .4 小结

结 束 语

致谢

参考文献

作者在学期间取得的学术成果

展开▼

摘要

并行负载平衡和迭代求解性能是影响结构多块网格CFD(Computational Fluid Dynamics)并行求解效率的两个重要因素。结构多块网格CFD并行求解通常以网格区块分组实现负载平衡,网格块数限制了进程并行规模,为了提高并行度,通常需要进行网格区块重剖分(或称二次剖分)。传统上对于结构多块网格多采用显式剖分方法,即先采用网格剖分程序(通常与CFD求解器软件相对独立)生成网格量近似相等的若干网格块组,再进行并行求解。但是在工程实际中,往往需要多次重剖分,使得 CFD前期数据处理耗时而繁琐。CFD隐式求解算法稳定性好,但 Jacob ia n矩阵难以计算,目前主要采用近似 Jacob ia n矩阵,这往往降低了迭代过程的收敛速度。Jacobian-Free Newton-Krylov(简称JFNK)算法是近年来逐渐发展起来的牛顿类非线性求解方法,仅需计算 Jacob ian矩阵与向量乘积(转化为非线性函数相减),可回避了直接求解 Jacob ian矩阵的困难。针对一个实际的三维结构网格CFD应用,如何采用JFNK非线性算法取代传统的LUSGS类线性解法,并能在并行计算中避免传统的网格重剖分问题,这是本文开展工作的出发点。对此,本文采用PETSc(The Portable Extensible Toolkit for Scientific Computation)数值并行软件框作为二次开发平台。
  PETS c作为目前主流的开源数值并行软件框架,向用户提供了并行向量、矩阵等自有的数据结构,屏蔽了通用数值并行算法、并行通信等诸多实现细节,很大程度上降低了并行程序开发的难度。P ETSc不仅提供了针对单块结构网格的分布数组(DMDA)并行数据结构,也为科学计算提供了丰富的非线性与线性方程组求解器,其中牛顿类方法非线性求解器包括了对JFNK算法的支持。针对CFD结构多块网格的大规模并行计算问题,基于网格显式剖分,采用PETSc提供的非线性解法器实现 JFNK求解功能替代原有CFD软件的线性隐式求解部分,实现JFNK并行求解器;并在此基础上,利用PETSc提供的分布式数组数据结构(DMDA),实现无需显式重剖分的并行JFNK求解器(本文称此为隐式剖分)。
  对于一个实际的三维结构网格CFD应用而言,采用PETSc的数据结构与解法器,实现 JFNK非线性求解器的大规模并行,是一个涉及数值方法、并行软件框架、网格剖分、软件集成与性能测试等覆盖 CFD求解器计算多个关键环节的问题。为此,本文开展了以下工作:
  (1)在分析传统CFD计算流程的基础上,建立了JFNK方法用于CFD计算的数值模型,梳理了CFD的定常流动非线性函数、非定常流动单时间步法非线性函数和双时间步法的非线性函数,给出 JFNK方法的多种预条件,为在实际三维CFD应用中实现JFNK方法奠定了数值模型基础。研究了PETSc基础数据结构、软件体系结构和数值计算功能支持,理清了PETSc框架中的通用JFNK方法及其实现思路,为基于PETSc框架的二次开发奠定了基础。
  (2)基于PETSc和原始三维结构网格CFD应用,设计实现了并行JFNK非线性求解器。通过分析三维结构网格CFD软件计算流程,理清CFD计算过程中各模块的作用以及原 CF D程序的数据传递关系,依据 PETSc的数据结构特点、JFNK非线性计算的功能要求,对原 CFD程序进行了数据结构和计算流程重新设计,重点对JFNK非线性函数对应三维CFD应用右手项模块进行了计算重组,并设计了JFNK预条件模块,完成了PETSc的JFNK方法与原始三维结构网格CFD软件的无缝集成。
  (3)在(2)的基础上,进一步实现无需显式重剖分的并行JFNK求解器。研究发现PETSc的新型数据结构-分布式数组数据结构(DMDA)具备实现自动负载平衡的潜力。针对多区结构网格CFD问题,对各原始网格区块分别建立相对独立的MPI通信子系统,在各个通信子系统内通过区块与进程间的自动资源映射来实现负载平衡。通过 PETSc框架,将网格重剖分与 JFNK并行求解器实现了紧耦合,从而避免了传统上CFD应用往往需要显式二次剖分所带来的问题。
  (4)在“天河二号”高性能计算机上,采用多个网格规模和并行规模验证了本文的两种并行 JFNK求解器的正确性,比较了计算性能。测试算例为三维圆柱绕流问题,网格最大规模达13.5亿,最大并行规模达5184 CPU核。数据表明,对于结构多块网格CFD数值模拟,本文的两种求解器均可行,其中隐式剖分版本相对显式剖分版本具有明显的性能优势,且隐式剖分版本具有良好的可扩展。

著录项

相似文献

  • 中文文献
  • 外文文献
  • 专利
代理获取

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号