System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于OpenMP的三维流场LUSGS迭代矩阵并行求解方法技术_技高网

一种基于OpenMP的三维流场LUSGS迭代矩阵并行求解方法技术

技术编号:40939645 阅读:2 留言:0更新日期:2024-04-18 14:57
本发明专利技术涉及本发明专利技术公开了一种基于OpenMP的三维流场LUSGS迭代矩阵并行求解方法。首先根据结构网格三个方向上最大单元数I<subgt;max</subgt;、J<subgt;max</subgt;和K<subgt;max</subgt;大小关系选取分层策略,再根据分层策略以及RHS和L值分层推进并行求解进一步根据和D值,依次并行求解最后根据分层策略以及和U值分层推进并行求解LUSGS矩阵求解完成。本发明专利技术能够实现大规模LUSGS矩阵的并行求解、节省计算时间,对计算空气动力学技术领域研究和工程计算具有重要意义。

【技术实现步骤摘要】

本专利技术涉及计算空气动力学,更具体地,涉及一种基于openmp的三维流场lusgs迭代矩阵并行求解方法。


技术介绍

1、定常流场隐式求解方程组的标准形式为:

2、aδq=rhs

3、其中,δq为守恒量增量,rhs为界面通量与体积源项之和,a称为系数矩阵,是一大小正比于(nd×nd)的大型稀疏矩阵,n和d分别为区块包含单元总数和维度。

4、众所周知,常规方法求解线性方程组首先需要求取a的逆矩阵,逆矩阵求解算法复杂度为o(n3)。目前工程中复杂外形飞行器三温流场计算所需单元总数往往超过千万,单一区块包含的单元总数在十万至百万不等,相应的矩阵a的规模在1015~1018,显然,a的逆矩阵求解计算开销是目前计算机无法承受的,对此,计算流体力学领域广泛采用lusgs方法(算法复杂度为o(n2))迭代求解上述方程组。

5、lusgs的主要思想是将a矩阵分解为下三角矩阵l、对角阵d、上三角矩阵u相乘的形式,再分三步进行gauss-seidel迭代求解。即:

6、

7、

8、

9、

10、其中:

11、

12、

13、

14、对单元(i,j,k)有:

15、

16、

17、

18、aξ、aη和aζ为计算坐标系下三个方向的系数矩阵,rξ、rη和rζ分别为aξ、aη和aξ的谱半径,a+、a-分别为分裂后的正系数矩阵和负系数矩阵,a+=s(λ+ri)s-1,a-=s(λ-ri)s-1,λ、s为分别a的特征值和特征向量,i为单位阵,为源项系数矩阵对角线上的元素。

19、整理得到迭代式:

20、

21、

22、

23、使用lusgs方法迭代求解需遵循一定的求解顺序:求解依赖和的值;求解依赖和的值。设计并行算法时需要满足上述依赖关系要求。

24、openmp是用于共享内存多处理器并行系统程序设计的一套指导性编译处理方案。openmp提供了对并行算法的高层抽象描述,通过在源代码中加入专用的#pragma来指明自己的意图,并在必要之处加入同步互斥以及通信。openmp提供的宗旨对于并行描述的高层抽象降低了并行编程的难度和复杂度,这样更多精力可以投入到并行算法本身,而非具体实现细节。


技术实现思路

1、本专利技术解决的技术问题是:克服现有技术的不足,针对lusgs迭代矩阵求解特点,基于openmp并行语言,设计一种lusgs矩阵的并行求解办法方法,提升cfd程序对多物理复杂流场的求解效率。

2、本专利技术解决技术的方案是:一种基于openmp的三维流场lusgs迭代矩阵并行求解方法,该方法包括如下步骤:

3、步骤s1、根据三维流场计算网格三个方向上的最大单元数imax、jmax和kmax大小关系选取分层策略;

4、步骤s2、根据分层策略,分层推进并行求解第一辅助变量所述第一辅助变量满足:l为lusgs迭代分解中的下三角矩阵,rhs为三维流场计算网格界面通量与体积源项之和;

5、步骤s3、根据第一辅助变量求解第二辅助变量所述第二辅助变量满足:d为lusgs迭代分解中的对角矩阵;

6、步骤s4、分层推进并行求解三维流场守恒量增量

7、优选地,步骤s1的分层策略:

8、若imax≥jmax且imax≥kmax,则选取ij平面沿k方向推进策略;

9、若jmax≥kmax且jmax≥imax,则选取jk平面沿i方向推进策略;

10、若kmax≥imax且kmax≥jmax,则选取ki平面沿j方向推进策略。

11、优选地,ij平面沿k方向推进策略下,第一辅助变量的求解步骤如下:

12、s2-1a、令i=j=k=1,计线程编号为nt,分别为0,1,…nk-1,i为行编号、j为列编号,k为层编号;

13、s2-2a、对于每个线程nt,执行如下步骤:

14、s2-2.1a、初始化第一单元编号i=i-nt,第二单元编号j=nt+1;

15、s2-2.2a、若i<1或j>jmax执行s2-3a,否则,求解将i减去nk更新i,将j增加nk更新j,重复s2-2.2a;

16、s2-3a、调用#pragma barrier同步所有线程,将i加1更新i,若i≤imax执行s2-2a,否则执行s2-4a;

17、s2-4a、对于每个线程nt,执行如下步骤:

18、s2-4.1a、初始化第一单元编号i=imax-nt和第二单元编号j=j+nt;

19、s2-4.2a、若i<1且j>jmax执行s2-5a,否则求解将i减去nk更新i,将j增加去nk更新j,重复s2-4a;

20、s2-5a、调用#pragma barrier同步所有线程,将j加1更新j,若j≤jmax执行s2-4a,否则执行s2-6a;

21、s2-6a、调用#pragma barrier同步所有线程,令i=1,j=1,将k加1更新k,若k≤kmax执行s2-2a,否则,结束。

22、优选地,jk平面沿i方向推进策略下,第一辅助变量的求解步骤:

23、s2-1b、令i=j=k=1,计线程编号为nt,分别为0,1,…nk-1,i为行编号、j为列编号,k为层编号;

24、s2-2b、对于每个线程nt,执行如下步骤:

25、s2-2.1b、初始化第二单元编号j=j-nt和第三单元编号k=nt+1;

26、s2-2.2b、若j<1或k>kmax执行s2-3b,否则,求解将j减去nk更新j,将k增加nk更新k,重复s2-2.2b;

27、s2-3b、调用#pragma barrier同步所有线程,将j加1更新j,若j≤jmax执行s2-2b,否则执行s2-4b;

28、s2-4b、对于每个线程nt,执行如下步骤:

29、s2-4.1b、初始化第二单元编号j=jmax-nt,第三单元编号k=k+nt;

30、s2-4.2b、若j<1且k>kmax执行s2-5b,否则求解将j减去nk更新j,将k增加nk更新k,重复s2-4b;

31、s2-5b、调用#pragma barrier同步所有线程,令将k加1更新k,若k≤kxma执行s2-4b,否则执行s2-6b;

32、s2-6b、调用#pragma barrier同步所有线程,令j=1,k=1,将i加1更新i,若i≤imax执行s2-2b,否则,结束。

33、优选地,ki平面沿j方向推进策略下,第一辅助变量的求解步骤如下:

34、s2-1c、令i=j=k=1,计线程编号为nt,分别为0,1,…nk-1,i为行编号、j为列编号,本文档来自技高网...

【技术保护点】

1.一种基于OpenMP的三维流场LUSGS迭代矩阵并行求解方法,其特征在于,包括如下步骤:

2.根据权利要求1所述的一种基于OpenMP的三维流场LUSGS迭代矩阵并行求解方法,步骤S1的分层策略:

3.根据权利要求1所述的一种基于OpenMP的三维结构网格LUSGS矩阵分层推进并行求解方法,其特征在于IJ平面沿K方向推进策略下,第一辅助变量的求解步骤如下:

4.根据权利要求1所述的一种基于OpenMP的三维流场LUSGS迭代矩阵并行求解方法,其特征在于JK平面沿I方向推进策略下,第一辅助变量的求解步骤:

5.根据权利要求1所述的一种基于OpenMP的三维流场LUSGS迭代矩阵并行求解方法,其特征在于:KI平面沿J方向推进策略下,第一辅助变量的求解步骤如下:

6.根据权利要求1所述的一种基于OpenMP的三维结构网格LUSGS矩阵分层推进并行求解方法,其特征在于IJ平面沿K方向推进策略下,三维流场守恒量增量的求解步骤如下:

7.根据权利要求1所述的一种基于OpenMP的三维结构网格LUSGS矩阵分层推进并行求解方法,其特征在于JK平面沿I方向推进策略下,三维流场守恒量增量的求解步骤如下:

8.根据权利要求1所述的一种基于OpenMP的三维结构网格LUSGS矩阵分层推进并行求解方法,其特征在于KI平面沿J方向推进策略下,三维流场守恒量增量的求解步骤如下:

...

【技术特征摘要】

1.一种基于openmp的三维流场lusgs迭代矩阵并行求解方法,其特征在于,包括如下步骤:

2.根据权利要求1所述的一种基于openmp的三维流场lusgs迭代矩阵并行求解方法,步骤s1的分层策略:

3.根据权利要求1所述的一种基于openmp的三维结构网格lusgs矩阵分层推进并行求解方法,其特征在于ij平面沿k方向推进策略下,第一辅助变量的求解步骤如下:

4.根据权利要求1所述的一种基于openmp的三维流场lusgs迭代矩阵并行求解方法,其特征在于jk平面沿i方向推进策略下,第一辅助变量的求解步骤:

5.根据权利要求1所述的一种基于openmp的三维流场lusgs迭...

【专利技术属性】
技术研发人员:周靖云苗文博靳旭红姚雨竹刘奕豪程晓丽艾邦成
申请(专利权)人:中国航天空气动力技术研究院
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1