CN114494650A - 一种分布式非结构网格跨处理器面对接方法及系统 - Google Patents

一种分布式非结构网格跨处理器面对接方法及系统 Download PDF

Info

Publication number
CN114494650A
CN114494650A CN202210353629.9A CN202210353629A CN114494650A CN 114494650 A CN114494650 A CN 114494650A CN 202210353629 A CN202210353629 A CN 202210353629A CN 114494650 A CN114494650 A CN 114494650A
Authority
CN
China
Prior art keywords
grid
processor
sub
face
interface
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202210353629.9A
Other languages
English (en)
Other versions
CN114494650B (zh
Inventor
郭永恒
肖中云
刘杨
赵钟
何先耀
马率
牟斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Computational Aerodynamics Institute of China Aerodynamics Research and Development Center
Original Assignee
Computational Aerodynamics Institute of China Aerodynamics Research and Development Center
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Computational Aerodynamics Institute of China Aerodynamics Research and Development Center filed Critical Computational Aerodynamics Institute of China Aerodynamics Research and Development Center
Priority to CN202210353629.9A priority Critical patent/CN114494650B/zh
Publication of CN114494650A publication Critical patent/CN114494650A/zh
Application granted granted Critical
Publication of CN114494650B publication Critical patent/CN114494650B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9027Trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/005Tree description, e.g. octree, quadtree

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Geometry (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Algebra (AREA)
  • Image Generation (AREA)

Abstract

本发明涉及网格处理技术领域,公开了一种分布式非结构网格跨处理器面对接方法及系统,该对接方法,采用两级索引结构并行化识别网格分区边界两侧的面对接关系;对任意两个对接面元素,依次对它们的质心坐标和归一化的网格点序列执行等价性判断。包括以下步骤:S1,并行导入分布式非结构网格基本几何数据;S2,跨处理器构造子区域之间的对偶通信列表;S3,并行构造对接边界处的曲面网格离散结构;S4,在各处理器上构造查询集合族的叉树结构;S5,跨处理器查询对接面元素之间的配对关系;S6,并行导出分布式非结构网格的面对接信息。本发明解决了现有技术存在的大规模非结构网格处理时处理效率低、数据处理能力差等问题。

Description

一种分布式非结构网格跨处理器面对接方法及系统
技术领域
本发明涉及网格处理技术领域,具体是一种分布式非结构网格跨处理器面对接方法及系统。
背景技术
非结构网格技术是当今计算流体力学软件对复杂构型内外流场进行数值模拟的重要依托,它不仅能够在非规则区域上进行灵活的单元离散,大幅降低网格生成的时间成本,而且可以通过图切割算法实现快速的区域分解,达到高度的负载平衡以适应现代高性能计算的需求。目前广泛采用的METIS与PARAMETIS等计算几何工具库已成功实现图分解算法的封装,用户仅需调用标准的函数接口即可迅速确定任意计算单元所属的处理器编号。在此基础上,MGRIDGEN等计算软件能够进一步执行体单元聚合操作,构造出几何多重网格的空间数据结构,以满足求解器在物理场加速收敛方面的高级需求。
然而,仅依靠上述计算几何工具库并不能得到网格在分区边界两侧的面对接关系,开发人员仍需要编写大量的代码完成复杂的查询运算,以此建立大规模并行计算所需的通信映射。伴随着网格规模的提升,每个子区域及其相邻区域上的对接面元素总量均同步增长,从而使关联映射的总时间依非线性规律延长。同时,现有的关联映射算法几乎都是串行实现的,不能深度挖掘高性能集群的计算潜力。以国产CFD软件PHengLEI和FlowStar为例,当非结构网格规模达到十亿量级时,其处理相邻子区域面对接关系的内核算法执行时间高达数小时甚至数天。这些因素,成为大规模非结构网格在高性能计算方面的严重障碍。
现有技术存在如下问题:分布式非结构网格跨处理器通信关系难以并行化建立,从而使几何前处理过程产生大量的时间开销,网格处理能力难以适应大规模并行计算的需求。
发明内容
为克服现有技术的不足,本发明提供了一种分布式非结构网格跨处理器面对接方法及系统,解决现有技术存在的大规模非结构网格处理时处理效率低、数据处理能力差等问题。
本发明解决上述问题所采用的技术方案是:
一种分布式非结构网格跨处理器面对接方法,采用两级索引结构并行化识别网格分区边界两侧的面对接关系。
作为一种优选的技术方案,对任意两个对接面元素,依次对它们的质心坐标和归一化的网格点序列执行等价性判断。
作为一种优选的技术方案,包括以下步骤:
S1,并行导入分布式非结构网格基本几何数据;
S2,跨处理器构造子区域之间的对偶通信列表;
S3,并行构造对接边界处的曲面网格离散结构;
S4,在各处理器上构造查询集合族的叉树结构;
S5,跨处理器查询对接面元素之间的配对关系;
S6,并行导出分布式非结构网格的面对接信息。
作为一种优选的技术方案,步骤S1包括以下步骤:
S11,各处理器依次导入第0至M-1级关联子网格的空间点信息;
S12,各处理器依次导入第0至M-1级关联子网格的面元素信息;
S13,各处理器依次导入第0至M-1级关联子网格的体单元信息;
S14,各处理器依次导入第0至M-1级关联子网格上每个面元素两侧的体单元信息以及面元素的边界性质标识;当某个面元素位于子网格内部时,该面元素的两侧都有体单元存在;当某个面元素的边界性质标识显示该面元素是物理边界或区域分解边界时,且该面元素其中的一侧在当前处理器上不存在体单元,在该面元素的不存在体单元的一侧设置虚拟单元容器。
作为一种优选的技术方案,步骤S2包括以下步骤:
S21,计算全局一致的网格尺度公差epsilon:在各处理器上,对第0级子网格的面元素序列以及每个面元素的棱边进行二重遍历,设第i号面元素的第j号棱边的长度为length[i][j],则当前计算区域上子网格的最小分辨率resolution=min{length[i][j],i=0,1,2,…,j=0,1,2,…},通过MPI全局规约操作得到resolution,然后利用epsilon=resolution*beta得到epsilon,再用epsilon来实现空间点的重合判断;其中,0.01≤beta≤0.1;
S22,构造第0级子网格坐标序列的三阶协方差矩阵G并计算协方差矩阵G的特征向量,三阶协方差矩阵G的计算公式为:
G[i][j]=Covariance(g[i],g[j]);
其中,Covariance表示二元向量的协方差运算符,G[i][j]表示三阶协方差矩阵G的第i行第j列的元素;
在每个处理器上,设第0级子网格空间点坐标数据依次存储于三个K维向量容器中,
g[0]=(x[0],x[1],…x[s],…,x[K-1])T,
g[1]=(y[0],y[1],…x[s],…,y[K-1])T,
g[2]=(z[0],z[1],…x[s],…,z[K-1])T
其中,s表示第0级子网格空间点的网格点编号,x[s],y[s],z[s]为第s个网格点的三个空间坐标分量,K表示网格点序列的长度,T表示向量的转置运算;通过数值方法计算协方差矩阵G的全部单位特征向量e[0]、e[1]、e[2],并使单位特征向量e[0]、e[1]、e[2]满足右手系规则;
S23,在各处理器上构造第0级子网格的最小边界包围盒;
根据步骤S22的结果,在三维欧氏空间中选取一个长方体,此长方体同时满足以下条件:①三组平行的表面分别以单位特征向量e[0]、e[1]、e[2]为法向量;②第0级子网格完全包含在长方体区域内部;③子网格到长方体六个表面的最小距离皆等于全局一致的网格尺度公差epsilon;以此长方体作为当前处理器上第0级子网格的最小边界包围盒,结合MPI广播通信,使每个最小边界包围盒的几何参数在全部处理器上实现共享存储;
S24,在各处理器上并行判断最小边界包围盒之间的相交关系,建立子区域之间的对偶通信二维表。
作为一种优选的技术方案,步骤S3包括以下步骤:
S31,在各处理器上,根据边界性质标识依次提取第m级子网格上对接面元素的局部编号,分别存储在C++标准模板库的向量容器中并关联到相应子网格上;
S32,在各处理器上,依次提取第m级子网格上对接面元素包含的网格点总数,分别存储在C++标准模板库的向量容器中并关联到相应子网格上;
S33,在各处理器上,根据S11的空间点信息和S12的面元素信息建立面元素与网格点之间的关联关系,依次提取第m级子网格上对接面元素具备的网格点坐标数据,分别存储在C++标准模板库的向量容器中并关联到相应子网格上。
作为一种优选的技术方案,步骤S4包括以下步骤:
S41,在各处理器上,对第m级子网格的对接面容器,以S21计算出的全局一致的网格尺度公差epsilon作为对接面网格点序列的交替方向数字树latticeBinaryTree和对接面质心序列的交替方向数字树centroidBinaryTree的公差参数,完成latticeBinaryTree和centroidBinaryTree的根结点的初始化;
S42,在各处理器上,对第m级子网格的对接面容器,依次遍历每个对接面上的网格点序列,生成latticeBinaryTree的各个子结点,同时完成网格点的归一化;
S43,在各处理器上,对第m级子网格的对接面容器,依次遍历每个对接面上的质心序列,生成centroidBinaryTree的各个子结点,完成质心等价面元素的初筛分组。
作为一种优选的技术方案,步骤S43中,完成质心等价面元素的初筛分组的过程中,如果在centroidBinaryTree上不存在包含当前对接面元素的质心等价分组,则在相应位置上增加新的子结点,并与新建的等价对接面地址空集合链接起来,然后,把当前对接面元素的首地址插入该集合中;如果在centroidBinaryTree存在一个子结点,与之链接的对接面地址集合包含与当前对接面质心等价的元素,则无需增加新的子结点,直接将前对接面的地址插入到该集合中。
作为一种优选的技术方案,步骤S5包括以下步骤:
S51,在第n号处理器上,对第m级子网格的对接面元素序列,将每个对接面的编号、网格点总数以及空间坐标数据加以打包,发送到对偶处理器上进行信息共享;
S52,在每个对偶处理器上,依次解析打包数据中的对接面信息,计算对接面元素的质心坐标,并结合同级子网格对应的交替方向数字树centroidBinaryTree加以查询比较,在latticeBinaryTree上找到全部的关联网格点;
S53,在对偶处理器上,结合同级子网格相关的交替方向数字树latticeBinaryTree,对当前解析出的对接面元素网格点序列进行编号并排序,然后进入质心等价分组中执行精确查询与比较;如果质心等价分组中存在各网格点编号完全一致的元素,说明当前面对接元素配对成功,记录相应的对偶元素编号和当前对偶处理器的编号,否则说明配对失败,直接删除当前来自其它处理器的对接面元素的几何信息;
S54,在第n号处理器的一个或多个对偶处理器上,记录第m级子网格上配对成功的几何信息并打包,结合MPI通信函数接口,逆向返回到第n号处理器上加以解析,将面对接关系存储在S14构造的虚拟单元容器中。
一种分布式非结构网格跨处理器面对接系统,基于所述的一种分布式非结构网格跨处理器面对接方法,包括依次电相连的并行导入模块、对偶通信构建模块、离散结构构建模块、叉树结构构建模块、配对关系查询模块、并行导出模块,
并行导入模块,用以并行导入分布式非结构网格基本几何数据;
对偶通信构建模块,用以跨处理器构造子区域之间的对偶通信列表;
离散结构构建模块,用以并行构造对接边界处的曲面网格离散结构;
叉树结构构建模块,在各处理器上构造查询集合族的叉树结构;
配对关系查询模块,跨处理器查询对接面元素之间的配对关系;
并行导出模块,并行导出分布式非结构网格的面对接信息。
本发明相比于现有技术,具有以下有益效果:
(1)本发明在多处理器上构造出以嵌套叉树结构形成的集合族,通过二级查询方式深度挖掘高性能计算平台的数据处理能力,快速建立用于大型非结构网格跨处理器的面对接映射关系;
(2)本发明将大规模非结构网格的几何数据分布存储于多个处理器上(现有技术多为串行算法),有效缓解了几何前处理算法执行过程中面临的内存压力;
(3)本发明在以嵌套叉树结构形成的集合族上进行多级筛查,使目标对象的待检索范围迅速缩小(现有技术中面对接关系的判断依据单一),从而提升了不同子区域间面对接关系的识别效率。
附图说明
图1是本发明所述的一种分布式非结构网格跨处理器面对接方法的步骤示意图。
图2是本发明的分布式多重网格结构图。
图3是本发明的网格面对接关系示意图。
图4是本发明的子区域之间的对偶通信关系图。
图5是本发明项目在每个处理器上存储的离散对接面数据结构图。
图6是本发明第m级子网格对接面形成的集合族叉树结构。
图7是本发明对接面元素跨处理器配对数据流示意图。
图8为本发明实施中步骤S52、S53、S54的流程图。
具体实施方式
下面结合实施例及附图,对本发明作进一步的详细说明,但本发明的实施方式不限于此。
实施例
如图1至图8所示,针对上述问题,本发明提供一种分布式内存环境下的非结构网格面对接技术,构造并行化的分析模型快速识别网格分区边界两侧的面对接关系。该模型的核心部分由“初筛+确认”两级索引结构组成。对任意两个对接面元素,分析模型依次对它们的质心坐标和归一化的网格点序列执行等价性判断。传统查询算法可以归纳为单处理器上两个集合的求交运算,相比之下,本发明在多处理器上构造出以嵌套叉树结构形成的集合族,通过二级查询方式深度挖掘高性能计算平台的数据处理能力,快速建立用于大型非结构网格跨处理器的面对接映射关系。
为实现上述目的,根据附图1所示,本发明项目采用的技术解决方案为:一种分布式非结构网格跨处理器面对接技术。它的实施包含如下6个基本步骤(其中,S3至S5是一个循环过程,它们跨处理器识别出多重网格模型中各级子网格之间的面对接关系):
S1:并行导入分布式非结构网格基本几何数据。当MPI环境初始化后,根据物理场模拟器中多重网格计算模型的需要,各处理器同步导入关联子区域上各级子网格的拓扑结构,并使空间体单元的分组编号与所在的处理器编号保持一致。本发明项目中的最稠密级子网格指多重网格的第0级,使用体单元聚合算法递推得到第1至M-1级粗网格,其中M为多重网格分级数。附图2展示了本发明适用的分布式多重网格结构,在每个处理器上,箭头指向子网格逐级粗化的方向;虚线框内是全体处理器上同级子网格的分布式存储载体,本发明在每个虚线框内分别建立各级子网格跨处理器的面对接关系。
S2:跨处理器构造子区域之间的对偶通信列表。在整个求解区域上,每个子网格一般与多个邻居网格具有面对接关系。S1完成后,每个处理器上的独立子网格并不能自动感知各邻居子网格所在处理器的编号。因为每个处理器上的第0级子网格能够使子区域的边界形状保持不变,所以本发明项目为其构造最小边界包围盒,通过包围盒的相对位置识别各处理器之间的基本通信关系。
S3:并行构造对接边界处的曲面网格离散结构。结合附图2,本发明项目需在分区边界两侧处理同级子网格的面对接关系,一般情况下,在每个处理器上,对接面元素承载的几何数据并非分布在连续内存上。为了便于待搜索几何信息的跨处理器传输以及查询配对结果的返回,本发明项目使用独立的动态向量容器依次复制并存储对接面元素的几何信息。附图5是本发明项目在单个处理器上存储的离散对接面数据结构图,在每一级网格上,对接面元素从0开始编号,并且按照它在原始网格上的遍历顺序逐次增加。
S4:在各处理器上构造查询集合族的叉树结构。显然,空间两个直边面元素Face_A与Face_B重合的充要条件为:①Face_A与Face_B具备的网格点总数相等且关联网格点的空间位置相同。根据网格点序列的代数平均运算可得对接面元素的质心坐标,由此得出对接面元素Face_A与Face_B重合的一个必要条件:②Face_A与Face_B质心的空间位置相同。对于非结构网格面元素上的网格点而言,除三角形情形外,一般不能严格分布在同一平面内,而且当体单元聚合后,其表面多边形的扭曲更加明显,所以②是一个非充分条件。本发明项目以条件②为质心初筛判据对子网格上的对接面元素地址进行整体分组,并以叉树结构对各组地址进行排序存储。对每个面元素包含的空间网格点进行归一化后,结合C++标准模板库,使用基于整型数据的向量(vector)容器对其编号进行排序存储,然后在新的层次上使用集合(set)容器对这些质心等价的向量容器首地址进行排序存储。这样,第m级子网格对接面形成了附图6所示的集合族,它在计算机内部以嵌套形式的叉树结构加以存储,其中用实线圆圈表示的每个结点都对应于当前子网格上一个质心等价的对接面首地址集合。
S5:跨处理器查询对接面元素之间的配对关系。附图7是本发明对接面元素跨处理器配对过程中的数据流示意图,其中带双向箭头的虚线为查询操作前后信息的传输方向。在第n号处理器上,对第m级子网格,将对接面序列的几何信息加以顺序打包,通过MPI函数接口传输到对偶处理器上加以共享。在每个对偶处理器上,对上述打包的几何信息加以解析,复原它们的数据结构,并依托同级子网格对接面元素形成的嵌套叉树结构进行快速查询操作与配对判断。
S6:并行导出分布式非结构网格的面对接信息。
进一步地,S1的具体操作步骤可以分解为:
S11:各处理器依次导入第0至M-1级关联子网格的空间点信息,它们包含网格点序列的坐标数据以及该序列的长度。
S12:各处理器依次导入第0至M-1级关联子网格的面元素信息,它们包含每个面元素上网格点序列在当前处理器上的局部编号以及该序列的长度。
S13:各处理器依次导入第0至M-1级关联子网格的体单元信息,它们包含每个体单元上面元素序列在当前处理器上的局部编号以及该序列的长度。
S14:各处理器依次导入第0至M-1级关联子网格上每个面元素两侧的体单元信息以及面元素的边界性质标识。当面元素位于子网格内部时,它的两侧都有体单元存在;当面元素的边界性质标识显示它是物理边界或区域分解边界时,其中一侧在当前处理器上不存在体单元,本发明项目在此设置虚拟单元,在后续步骤中,它们用来存储跨处理器的面对接信息。
进一步地,S2的具体操作步骤可以分解为:
S21:计算全局一致的网格尺度公差epsilon。在各处理器上,对第0级子网格的面元素序列以及每个面元素的棱边进行二重遍历,设第i号面元素的第j号棱边的长度为length[i][j],那么当前计算区域上子网格的最小分辨率resolution=min{length[i][j],i=0,1,2,…, j=0,1,2,…},通过MPI全局规约操作即得到resolution的最小值,这里不妨仍以resolution代替,本发明项目规定全局一致的网格尺度公差epsilon=resolution*0.1,即比全局网格最小分辨率低一个数量级。epsilon为本发明项目关键的尺度参数,用来实现空间点的重合判断。
S22:构造第0级子网格坐标序列的协方差矩阵并计算其特征向量。在每个处理器上,设第0级子网格空间点坐标数据依次存储于三个K维向量容器中,即:
g[0]=(x[0],x[1],…x[s],…,x[K-1])T,
g[1]=(y[0],y[1],…x[s],…,y[K-1])T,
g[2]=(z[0],z[1],…x[s],…,z[K-1])T
其中,x[s],y[s],z[s]为第s个网格点的三个空间坐标分量,K是网格点序列的长度。三阶协方差矩阵G的第i行第j列分量G[i][j](i和j从0开始编号)的表达式为:
G[i][j]=Covariance(g[i],g[j]),
这里Covariance为二元向量的协方差运算符。通过数值方法计算协方差矩阵G的全部单位特征向量e[0],e[1],e[2],并使之满足右手系规则。
S23:在各处理器上构造第0级子网格的最小边界包围盒。根据S22的结果,在三维Euclid空间中选取一个长方体,它满足条件:①三组平行的表面分别以单位特征向量e[0],e[1],e[2]为法向量;②第0级子网格完全包含在长方体区域内部;③子网格到长方体六个表面的最小距离皆等于全局一致的网格尺度公差epsilon。这个长方体是存在且唯一的,以此作为当前处理器上第0级子网格的最小边界包围盒。第③个条件充分保证了任意子网格点是包围盒的内点,避免了点在边界处的复杂分析。结合MPI广播通信,使每个最小边界包围盒的几何参数在全部处理器上实现共享存储。附图3是本发明的网格面对接关系示意图,由于第0级子网格的最小边界包围盒是其外形的一个几何逼近,所以子网格之间的相邻关系可以通过最小边界包围盒的相交判断加以初步识别。
S24:在各处理器上并行判断最小边界包围盒之间的相交关系,建立子区域之间的对偶通信二维表。附图4是本发明的子区域之间的对偶通信关系图,其中虚线框内是对偶处理器的编号。以第1号处理器为例,结合附图3可知,当前子网格仅与第0、2、4、5、6号处理器上的子网格存在可能的对接关系。需要说明的是,本发明项目中,包围盒相交是子网格面对接的一个必要非充分条件。尽管如此,这个筛查条件有效避免了当前子网格与其它所有同级子网格之间不加区别的相邻判断,从而使跨处理器的通信成本得以显著降低。
进一步地,S3的具体操作步骤可以分解为:
S31:在各处理器上,根据边界性质标识依次提取第m级子网格上对接面元素的局部编号,分别存储在C++标准模板库的向量(vector)容器中并关联到相应子网格上。
S32:在各处理器上,依次提取第m级子网格上对接面元素包含的网格点总数,分别存储在C++标准模板库的向量(vector)容器中并关联到相应子网格上。
S33:在各处理器上,根据S11和S12建立的面元素与网格点之间的映射关系,依次提取第m级子网格上对接面元素具备的网格点坐标数据,分别存储在C++标准模板库的向量(vector)容器中并关联到相应子网格上。
进一步地,S4的具体操作步骤可以分解为:
S41:在各处理器上,对第m级子网格的对接面容器,以S21计算出的全局一致的网格尺度公差epsilon作为对接面网格点序列之交替方向数字树latticeBinaryTree和对接面质心序列之交替方向数字树centroidBinaryTree的公差参数,完成它们的根结点的初始化。
S42:在各处理器上,对第m级子网格的对接面容器,依次遍历每个对接面上的网格点序列,生成latticeBinaryTree的各个子结点,同时完成网格点的归一化,即空间坐标相同的网格点使用相同的几何对象加以记录。任意给定一个对接面元素,不妨设它的网格点总数为S,归一化之后的网格点编号序列为{p[0],p[1],…,p[S-1]},本发明项目首先使用C++标准模板库中的整型向量(vector)容器series记录这个编号序列,然后,结合泛型算法,按照编号值的大小对其排序,结果仍存储在series容器中。
S43:在各处理器上,对第m级子网格的对接面容器,依次遍历每个对接面上的质心序列,生成centroidBinaryTree的各个子结点,完成质心等价面元素的初筛分组。根据递归或非递归的查询结果将上述过程划分为两种情形:①如果在centroidBinaryTree上不存在包含当前对接面元素的质心等价分组,那么在相应位置上增加新的子结点,并与新建的等价对接面地址空集合链接起来,然后,把当前对接面元素的首地址插入该集合中。②如果在centroidBinaryTree存在一个子结点,与之链接的对接面地址集合包含与当前对接面质心等价的元素,那么无需增加新的子结点,直接将前对接面的地址插入到该集合中。需要说明的是,C++标准模板库中的集合(set)容器本质上也是一个红黑树排序结构,对S42定义的网格点编号序列,本发明项目使用C++标准模板库中的整型向量(vector)容器默认的排序规则构造函数对象,用于分组集合内部元素(即上述若干个vector对象)的排序运算。
进一步地,S5的具体操作步骤可以分解为:
S51:在第n号处理器上,对第m级子网格的对接面元素序列,将每个对接面的编号、网格点总数以及空间坐标数据加以打包,发送到对偶处理器上进行信息共享。
S52:在每个对偶处理器上,依次解析打包数据中的对接面信息,计算其质心坐标,并结合同级子网格对应的交替方向数字树centroidBinaryTree(图8中简写为CBT)加以查询与比较。对于来自于其它处理器上对接面元素,上述查询过程划分为以下情形(如图8所示):①判断GP是否存在:如果在centroidBinaryTree上不存在包含当前对接面元素的质心等价分组,那么在当前处理器上直接删除该对接面元素的几何信息(即图8中释放SF[s]的几何数据)。②然后,判断是否全部找到:如果在当前对接面元素上存在一点p,其坐标在遍历同级子网格对应的交替方向数字树latticeBinaryTree后仍无法查到重合点,那么在当前处理器上直接删除该对接面元素的几何信息(即图8中释放SF[s]的几何数据);如果在centroidBinaryTree上存在当前对接面元素的质心等价分组,那么执行S53(本步骤中完成所有对接面元素的查询配对操作,找到所有的关联网格点)。
S53:参照S42方法,在对偶处理器上,结合同级子网格相关的交替方向数字树latticeBinaryTree,对当前解析出的对接面元素网格点序列进行编号并排序,然后进入质心等价分组(即若干个整型向量(vector)复合而成的集合(set)容器)中执行精确查询与比较。上述过程由C++标准模板库中集合(set)内置的红黑树快速查询算法加以实现。如果质心等价分组中存在各网格点编号完全一致的元素,说明当前面对接元素配对成功,记录相应的对偶元素编号和当前对偶处理器的编号,否则说明配对失败,直接删除当前来自其它处理器的对接面元素的几何信息。
S54:在第n号处理器的一个或多个对偶处理器上,记录第m级子网格上配对成功的几何信息并打包,结合MPI通信函数接口,逆向返回到第n号处理器上加以解析,将面对接关系存储在S14构造的虚拟单元容器中。
如上所述,可较好地实现本发明。
本说明书中所有实施例公开的所有特征,或隐含公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合和/或扩展、替换。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,依据本发明的技术实质,在本发明的精神和原则之内,对以上实施例所作的任何简单的修改、等同替换与改进等,均仍属于本发明技术方案的保护范围之内。

Claims (10)

1.一种分布式非结构网格跨处理器面对接方法,其特征在于,采用两级索引结构并行化识别网格分区边界两侧的面对接关系。
2.根据权利要求1所述的一种分布式非结构网格跨处理器面对接方法,其特征在于,对任意两个对接面元素,依次对它们的质心坐标和归一化的网格点序列执行等价性判断。
3.根据权利要求1或2所述的一种分布式非结构网格跨处理器面对接方法,其特征在于,包括以下步骤:
S1,并行导入分布式非结构网格基本几何数据;
S2,跨处理器构造子区域之间的对偶通信列表;
S3,并行构造对接边界处的曲面网格离散结构;
S4,在各处理器上构造查询集合族的叉树结构;
S5,跨处理器查询对接面元素之间的配对关系;
S6,并行导出分布式非结构网格的面对接信息。
4.根据权利要求3所述的一种分布式非结构网格跨处理器面对接方法,其特征在于,步骤S1包括以下步骤:
S11,各处理器依次导入第0至M-1级关联子网格的空间点信息;
S12,各处理器依次导入第0至M-1级关联子网格的面元素信息;
S13,各处理器依次导入第0至M-1级关联子网格的体单元信息;
S14,各处理器依次导入第0至M-1级关联子网格上每个面元素两侧的体单元信息以及面元素的边界性质标识;当某个面元素位于子网格内部时,该面元素的两侧都有体单元存在;当某个面元素的边界性质标识显示该面元素是物理边界或区域分解边界时,且该面元素其中的一侧在当前处理器上不存在体单元,在该面元素的不存在体单元的一侧设置虚拟单元容器。
5.根据权利要求4所述的一种分布式非结构网格跨处理器面对接方法,其特征在于,步骤S2包括以下步骤:
S21,计算全局一致的网格尺度公差epsilon:在各处理器上,对第0级子网格的面元素序列以及每个面元素的棱边进行二重遍历,设第i号面元素的第j号棱边的长度为length[i][j],则当前计算区域上子网格的最小分辨率resolution=min{length[i][j],i=0,1,2,…,j=0,1,2,…},通过MPI全局规约操作得到resolution,然后利用epsilon=resolution*beta得到epsilon,再用epsilon来实现空间点的重合判断;其中,0.01≤beta≤0.1;
S22,构造第0级子网格坐标序列的三阶协方差矩阵G并计算协方差矩阵G的特征向量,三阶协方差矩阵G的计算公式为:
G[i][j]=Covariance(g[i],g[j]);
其中,Covariance表示二元向量的协方差运算符,G[i][j]表示三阶协方差矩阵G的第i行第j列的元素;
在每个处理器上,设第0级子网格空间点坐标数据依次存储于三个K维向量容器中,
g[0]=(x[0],x[1],…x[s],…,x[K-1])T,
g[1]=(y[0],y[1],…x[s],…,y[K-1])T,
g[2]=(z[0],z[1],…x[s],…,z[K-1])T
其中,s表示第0级子网格空间点的网格点编号,x[s],y[s],z[s]为第s个网格点的三个空间坐标分量,K表示网格点序列的长度,T表示向量的转置运算;通过数值方法计算协方差矩阵G的全部单位特征向量e[0]、e[1]、e[2],并使单位特征向量e[0]、e[1]、e[2]满足右手系规则;
S23,在各处理器上构造第0级子网格的最小边界包围盒;
根据步骤S22的结果,在三维欧氏空间中选取一个长方体,此长方体同时满足以下条件:①三组平行的表面分别以单位特征向量e[0]、e[1]、e[2]为法向量;②第0级子网格完全包含在长方体区域内部;③子网格到长方体六个表面的最小距离皆等于全局一致的网格尺度公差epsilon;以此长方体作为当前处理器上第0级子网格的最小边界包围盒,结合MPI广播通信,使每个最小边界包围盒的几何参数在全部处理器上实现共享存储;
S24,在各处理器上并行判断最小边界包围盒之间的相交关系,建立子区域之间的对偶通信二维表。
6.根据权利要求5所述的一种分布式非结构网格跨处理器面对接方法,其特征在于,步骤S3包括以下步骤:
S31,在各处理器上,根据边界性质标识依次提取第m级子网格上对接面元素的局部编号,分别存储在C++标准模板库的向量容器中并关联到相应子网格上;
S32,在各处理器上,依次提取第m级子网格上对接面元素包含的网格点总数,分别存储在C++标准模板库的向量容器中并关联到相应子网格上;
S33,在各处理器上,根据S11的空间点信息和S12的面元素信息建立面元素与网格点之间的关联关系,依次提取第m级子网格上对接面元素具备的网格点坐标数据,分别存储在C++标准模板库的向量容器中并关联到相应子网格上。
7.根据权利要求6所述的一种分布式非结构网格跨处理器面对接方法,其特征在于,步骤S4包括以下步骤:
S41,在各处理器上,对第m级子网格的对接面容器,以S21计算出的全局一致的网格尺度公差epsilon作为对接面网格点序列的交替方向数字树latticeBinaryTree和对接面质心序列的交替方向数字树centroidBinaryTree的公差参数,完成latticeBinaryTree和centroidBinaryTree的根结点的初始化;
S42,在各处理器上,对第m级子网格的对接面容器,依次遍历每个对接面上的网格点序列,生成latticeBinaryTree的各个子结点,同时完成网格点的归一化;
S43,在各处理器上,对第m级子网格的对接面容器,依次遍历每个对接面上的质心序列,生成centroidBinaryTree的各个子结点,完成质心等价面元素的初筛分组。
8.根据权利要求7所述的一种分布式非结构网格跨处理器面对接方法,其特征在于,步骤S43中,完成质心等价面元素的初筛分组的过程中,如果在centroidBinaryTree上不存在包含当前对接面元素的质心等价分组,则在相应位置上增加新的子结点,并与新建的等价对接面地址空集合链接起来,然后,把当前对接面元素的首地址插入该集合中;如果在centroidBinaryTree存在一个子结点,与之链接的对接面地址集合包含与当前对接面质心等价的元素,则无需增加新的子结点,直接将前对接面的地址插入到该集合中。
9.根据权利要求8所述的一种分布式非结构网格跨处理器面对接方法,其特征在于,步骤S5包括以下步骤:
S51,在第n号处理器上,对第m级子网格的对接面元素序列,将每个对接面的编号、网格点总数以及空间坐标数据加以打包,发送到对偶处理器上进行信息共享;
S52,在每个对偶处理器上,依次解析打包数据中的对接面信息,计算对接面元素的质心坐标,并结合同级子网格对应的交替方向数字树centroidBinaryTree加以查询比较,在latticeBinaryTree上找到全部的关联网格点;
S53,在对偶处理器上,结合同级子网格相关的交替方向数字树latticeBinaryTree,对当前解析出的对接面元素网格点序列进行编号并排序,然后进入质心等价分组中执行精确查询与比较;如果质心等价分组中存在各网格点编号完全一致的元素,说明当前面对接元素配对成功,记录相应的对偶元素编号和当前对偶处理器的编号,否则说明配对失败,直接删除当前来自其它处理器的对接面元素的几何信息;
S54,在第n号处理器的一个或多个对偶处理器上,记录第m级子网格上配对成功的几何信息并打包,结合MPI通信函数接口,逆向返回到第n号处理器上加以解析,将面对接关系存储在S14构造的虚拟单元容器中。
10.一种分布式非结构网格跨处理器面对接系统,其特征在于,基于权利要求1至9任一项所述的一种分布式非结构网格跨处理器面对接方法,包括依次电相连的并行导入模块、对偶通信构建模块、离散结构构建模块、叉树结构构建模块、配对关系查询模块、并行导出模块,
并行导入模块,用以并行导入分布式非结构网格基本几何数据;
对偶通信构建模块,用以跨处理器构造子区域之间的对偶通信列表;
离散结构构建模块,用以并行构造对接边界处的曲面网格离散结构;
叉树结构构建模块,在各处理器上构造查询集合族的叉树结构;
配对关系查询模块,跨处理器查询对接面元素之间的配对关系;
并行导出模块,并行导出分布式非结构网格的面对接信息。
CN202210353629.9A 2022-04-06 2022-04-06 一种分布式非结构网格跨处理器面对接方法及系统 Active CN114494650B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210353629.9A CN114494650B (zh) 2022-04-06 2022-04-06 一种分布式非结构网格跨处理器面对接方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210353629.9A CN114494650B (zh) 2022-04-06 2022-04-06 一种分布式非结构网格跨处理器面对接方法及系统

Publications (2)

Publication Number Publication Date
CN114494650A true CN114494650A (zh) 2022-05-13
CN114494650B CN114494650B (zh) 2022-06-24

Family

ID=81489062

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210353629.9A Active CN114494650B (zh) 2022-04-06 2022-04-06 一种分布式非结构网格跨处理器面对接方法及系统

Country Status (1)

Country Link
CN (1) CN114494650B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114820989A (zh) * 2022-06-24 2022-07-29 中国空气动力研究与发展中心计算空气动力研究所 基于倒排索引的非结构网格共面关系快速建立方法
CN114996198A (zh) * 2022-08-03 2022-09-02 中国空气动力研究与发展中心计算空气动力研究所 跨处理器数据传输方法、装置、设备及介质
CN116484702A (zh) * 2023-06-26 2023-07-25 北京凌云智擎软件有限公司 一种适用于任意单元类型的非结构嵌套网格计算方法
CN116562066A (zh) * 2023-07-12 2023-08-08 北京凌云智擎软件有限公司 一种针对多面体网格的多层区域分解并行计算方法和装置
CN116894282A (zh) * 2023-09-07 2023-10-17 中国空气动力研究与发展中心计算空气动力研究所 空间点集与多连通网格区域拓扑关系的识别方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101344892A (zh) * 2007-07-12 2009-01-14 株式会社理光 信息处理设备、信息处理方法及计算机可读信息记录介质
CN103714210A (zh) * 2013-12-24 2014-04-09 西安电子科技大学 基于最优适应启发式序列与多目标组织进化的集成电路布图方法
WO2016196690A1 (en) * 2015-06-01 2016-12-08 Miller Benjamin Aaron Rights management and syndication of content
CN113158527A (zh) * 2021-05-14 2021-07-23 中国空气动力研究与发展中心计算空气动力研究所 一种基于隐式fvfd计算频域电磁场的方法
CN113689556A (zh) * 2021-10-25 2021-11-23 中国空气动力研究与发展中心计算空气动力研究所 一种块自适应型笛卡尔网格快速图映射方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101344892A (zh) * 2007-07-12 2009-01-14 株式会社理光 信息处理设备、信息处理方法及计算机可读信息记录介质
CN103714210A (zh) * 2013-12-24 2014-04-09 西安电子科技大学 基于最优适应启发式序列与多目标组织进化的集成电路布图方法
WO2016196690A1 (en) * 2015-06-01 2016-12-08 Miller Benjamin Aaron Rights management and syndication of content
CN113158527A (zh) * 2021-05-14 2021-07-23 中国空气动力研究与发展中心计算空气动力研究所 一种基于隐式fvfd计算频域电磁场的方法
CN113689556A (zh) * 2021-10-25 2021-11-23 中国空气动力研究与发展中心计算空气动力研究所 一种块自适应型笛卡尔网格快速图映射方法及系统

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
FAN LIU等: "Development of a Modularized Virtual Flight Simulator based on Multiple Discipline Coupled Method", 《JOURNAL OF PHYSICS: CONFERENCE SERIES》 *
WEIPENG LI等: "On the mechanism of acoustic resonances from a leading-edge slat", 《AEROSPACE SCIENCE AND TECHNOLOGY》 *
肖军等: "离心叶轮气动阻尼的数值分析", 《航空动力学报》 *
赵钟等: "风雷(PHengLEI)通用CFD软件设计", 《计算机工程与科学》 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114820989A (zh) * 2022-06-24 2022-07-29 中国空气动力研究与发展中心计算空气动力研究所 基于倒排索引的非结构网格共面关系快速建立方法
CN114996198A (zh) * 2022-08-03 2022-09-02 中国空气动力研究与发展中心计算空气动力研究所 跨处理器数据传输方法、装置、设备及介质
CN114996198B (zh) * 2022-08-03 2022-10-21 中国空气动力研究与发展中心计算空气动力研究所 跨处理器数据传输方法、装置、设备及介质
CN116484702A (zh) * 2023-06-26 2023-07-25 北京凌云智擎软件有限公司 一种适用于任意单元类型的非结构嵌套网格计算方法
CN116484702B (zh) * 2023-06-26 2023-09-12 北京凌云智擎软件有限公司 一种适用于任意单元类型的非结构嵌套网格计算方法
CN116562066A (zh) * 2023-07-12 2023-08-08 北京凌云智擎软件有限公司 一种针对多面体网格的多层区域分解并行计算方法和装置
CN116562066B (zh) * 2023-07-12 2023-09-26 北京凌云智擎软件有限公司 一种针对多面体网格的多层区域分解并行计算方法和装置
CN116894282A (zh) * 2023-09-07 2023-10-17 中国空气动力研究与发展中心计算空气动力研究所 空间点集与多连通网格区域拓扑关系的识别方法及系统
CN116894282B (zh) * 2023-09-07 2023-11-24 中国空气动力研究与发展中心计算空气动力研究所 空间点集与多连通网格区域拓扑关系的识别方法及系统

Also Published As

Publication number Publication date
CN114494650B (zh) 2022-06-24

Similar Documents

Publication Publication Date Title
CN114494650B (zh) 一种分布式非结构网格跨处理器面对接方法及系统
CN108537876B (zh) 三维重建方法、装置、设备及存储介质
Carr et al. Computing contour trees in all dimensions
Agarwal et al. Indexing moving points
CN112847343B (zh) 动态目标跟踪定位方法、装置、设备和存储介质
Doraiswamy et al. Efficient algorithms for computing Reeb graphs
Ou et al. Fast and parallel mapping algorithms for irregular problems
Zhang et al. DECAL: Decomposition-based coevolutionary algorithm for many-objective optimization
CN105787126B (zh) k-d树生成方法和k-d树生成装置
CN110969517B (zh) 一种招投标生命周期关联方法、系统、存储介质及计算机设备
Rigoustos et al. Massively parallel model matching: geometric hashing on the connection machine
CN105550332A (zh) 一种基于双层索引结构的起源图查询方法
CN108628965B (zh) 基于空间连接骨架描述符的装配体检索方法
Magalhães et al. Fast exact parallel 3D mesh intersection algorithm using only orientation predicates
Bannister et al. Windows into geometric events: Data structures for time-windowed querying of temporal point sets
Lanzagorta et al. Quantum algorithmic methods for computational geometry
US7987250B2 (en) Maximum clique in a graph
Atallah Parallel techniques for computational geometry
Yang et al. An efficient accelerator for point-based and voxel-based point cloud neural networks
Khamayseh et al. Use of the spatial kD-tree in computational physics applications
Palubeckis A branch-and-bound approach using polyhedral results for a clustering problem
Ren et al. Joint graph layouts for visualizing collections of segmented meshes
Poleksic On complexity of protein structure alignment problem under distance constraint
CN111666689A (zh) 特征线追踪方法、堆芯中子物理计算方法和装置
CN113792184B (zh) 广告召回方法及装置、系统、计算机存储介质、电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant