非结构网格上并行求解二维Euler方程的研究
【摘要】:
论文研究了非结构网格上Euler方程的并行求解问题,并基于MPI实现了Delaunay重叠分区网格上的并行Godunov算法,并行过程包括了以下主要步骤:自动进行网格分区,将分区后的各个子区分配给不同的进程;各进程在相应子区上并发地执行非结构网格上的Godunov算法;基于MPI在进程之间的发送/接收消息,交换各子区的计算参数。
递归谱对分法是一种具有较好分区质量的分区算法,这一方法将网格中的结点分为所包含结点数基本相等的两个子集。为了将递归谱对分法与以单元为主的Godunov方法结合使用,本文将该方法用于Delaunay非结构网格的对偶图Voronoi图,然后再根据Voronoi图中的结点与Delaunay网格中的三角形单元之间的一一对应关系,得到Delaunay网格的分区。
文中给出了一种对图的Laplacian矩阵进行平移预处理的方法,以加速Lanczos过程中,次小特征值近似值的收敛。图的次小Laplacian特征值对应的特征向量是递归谱对分法进行分区的依据,论文采用了Lanczos方法计算这一特征值。Lanczos方法在执行了一定次数的迭代之后,有可能因为Lanczos向量之间失去正交性而出现算法过程的数值不稳定,重新正交化可以解决这一问题,但会增加计算量。本文基于最小Laplacian特征值对应的特征向量构造秩为1的修正矩阵,对Laplacian矩阵进行平移预处理,对预处理后的Laplacian矩阵应用Lanczos算法,通常能够在算法失去稳定性之前得到分区向量很好的近似。
文中发展了一种可用于非结构三角形网格单元的斜坡-限制器函数。为了提高Godunov算法的求解精度,本文将相邻两个三角形单元重心连线上的参数分布看作是分段线性函数,线性函数的坡度取决于网格单元内参数分布的梯度在插值方向的投影。为了抑制计算结果中非物理的振荡,文中根据每一单元的相邻单元中参数的分布情况,对坡度的取值加以限制。
将上述斜坡-限制器函数用于Godunov算法,为了使这一算法能够并行地执行,文中给出了一种构造重叠分区网格的方法。在每一次更新与单元相关的参数值时,这一Godunov算法需要用到与该单元有公共边的单元内的参数分布,以及与该单元有公共顶点的单元内的平均参数。本文将网格分区的重叠部分取为与其余子区中的单元有公共顶点的单元,这样Godunov算法在每步迭代之后,子区之间只需要交换重叠部分三角形单元的平均参数。