【技术实现步骤摘要】
一种并行分块提取的大规模网格生成算法
[0001]本专利技术属于大规模网格生成
,特别涉及一种并行分块提取的大规模网格生成算法。
技术介绍
[0002]有限元分析在结构力学分析、流体力学分析等等领域中广泛应用,针对大规模场景、复杂物体进行分析时,模型往往拥有海文数字甚至天文数字的数据量,对庞大数据量的模型进行网格刨分,单机串行的算法往往耗时长、精度低,甚至无法生成。随着超级计算机的发展,并行的算法应运而生,运用在网格生成的并行算法让刨分大规模网格成为可能,并且效率极高,针对大规模场景以及复杂模型的分析模拟的精确,也能促进工业等领域的发展。
[0003]目前并行的网格生成技术大多采用MPI的多级并行方式,通过网格刨分算法将粗粒度的体网格划分成若干小规模的体网格,然后交给不同的计算单元去细化,然而,传统的并行网格算法中,为进程分配子网格的过程中存在一些问题,简单的、规模小的模型在为进程分配子网格的过程不会占用很大的运算时间,合并网格中也不存在耗时长的问题;而对于大规模的网格模型,在进程分配子网格的过程中会占用极大的 ...
【技术保护点】
【技术特征摘要】
1.一种并行分块提取的大规模网格生成算法,其特征在于,包括以下步骤:步骤1,利用MPI创建P个进程同时对CAD模型进行读取;步骤2,对步骤1获取的CAD模型进行网格划分,生成点元素和体网格元素形成的粗粒度网格;步骤3,利用Metis将步骤2生成的粗粒度网格划分为P个子区域,并为每个点元素标记其所在子区域的秩,将粗粒度体网格集合按进程秩划分成P个子集合,每个进程按照进程秩获取对应的子集合,并进行遍历;通过遍历子集合中的体网格获取粗粒度边界面网格以及网格信息,每个进程遍历完毕后利用MPI通信和同步功能对每个子集合中获取的信息进行合并;步骤4,每个进程通过进程秩在合并的粗粒度网格信息中提取子区域中的网格信息,并通过网格信息进行边界判断,生成与邻接区域相交的面网格以实现子区域封闭;步骤5,利用MPI使得P个子区域进行面网格插点迭代,并生成细粒度体网格;步骤6,所述细粒度体网格基于MPI通信获取邻接子区域的交界面上的点元素以及体网格进行相互投影,并为细粒度体网格的边界重构细粒度体网格;步骤7,依次合并步骤6中P个进程所生成的细粒度体网格,删除网格区域间的重叠部分所生成的多余面网格以及顶点,将最终的细粒度网格作为输出结果。2.根据权利要求1所述一种并行分块提取的大规模网格生成算法,其特征在于,所述步骤3包括:步骤3.1,将所述步骤2生成的粗粒度网格进行标注划分,利用Metis为每个顶点元素标注所属分区权值;步骤3.2,获取粗粒度体网格总数量;步骤3.3,将总体网格集合进行均匀分块,每个进程获取分块头与分块尾;步骤3.4,每个进程从分块头遍历提取粗粒度面网格信息到分块尾;步骤3.5,将每个进程所获取的网格信息进行合并。3.根据权利要求2所述一种并行分块提取的大规模网格生成算法,其特征在于,步骤3.4中,所述粗粒度面网格信息包括P个子区域中的粗粒度面网格的顶点元素标记信息、粗粒度面网格的面单元标记信息和粗粒度面网格的交接面顶点元素信息。4.根据权利要求3所述一种并行分块提取的大规模网格生成算法,其特征在于,所述步骤3中,将需要遍历的粗粒度网格进行分块处理,按照步骤1中所创建的进程数量进行均匀划分,每个进程利用各自在MPI全局环境中的秩,求得各自的子集合范围,并行处理各自进程范围内的体网格单元;在子集合范围内,通过粗粒度体网格元素获取体网格元素上的面网格元素,将面网格元素的顶点元素信息以及是否为边界的信息记录在面网格信息集合中,每个进程处理完子集合范围内的粗粒度体网格元素,将生成的面网格信息集合利用MPI通信接口进行合并,使得每个进程拥有相同的面网格信息集合;合并完成后再...
【专利技术属性】
技术研发人员:赵万青,李春楠,彭进业,李佳明,杨文静,彭盛霖,王珺,
申请(专利权)人:西北大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。