基于逐点插入的Delaunay四面体剖分并行算法研究_第1页
基于逐点插入的Delaunay四面体剖分并行算法研究_第2页
基于逐点插入的Delaunay四面体剖分并行算法研究_第3页
基于逐点插入的Delaunay四面体剖分并行算法研究_第4页
基于逐点插入的Delaunay四面体剖分并行算法研究_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、    基于逐点插入的delaunay四面体剖分并行算法研究    霍吉东delaunay四面体剖分凭借生成网格的高质量性和良好逼近性,其并行网格生成技术备受业界关注。以逐点插入思想的delaunay四面体网格剖分串行算法为基础,采用“网格生成串行算法+新并行策略”的方式,提出一种基于数据并行的delaunay四面体剖分并行算法。同时在linux+mpi平台上实现上述并行算法,取得了良好的计算效率。【关键词】delaunay三角剖分 网格生成 并行算法 并行策略1 引言随着大型并行计算机软硬件技术的快速发展,网格剖分并行技术已成为科学工程计算领域研究的热

2、点之一。delaunay三角剖分是三维空间数值模拟阶段最基本的逼近单元和3d复杂对象可视化处理中最佳离散形式,剖分得到delaunay三角网格具有良好的数学特性与优化特性。基于逐点插入思想的delaunay三角剖分,构成的网格唯一性、网格质量都较好,并且满足delaunay三角剖分的空圆准则,具有较高的执行效率。而基于逐点插入的delaunay四面体剖分内部的并行,耦合性是制约其并行效率的主要瓶颈,例如bw并行算法中插入点的冲突问题导致处理器之间较高的通信耗时,这是决定bw并行算法高低的主要因素。yagawa等提出的自由网格法(free mesh method.fmm),有效的规避了耦合性的限

3、制,充分利用网格的局部特性,适合大规模并行计算、负载均衡,不过局部网格生成的质量是决定剖分优劣的关键因素。地球物理勘探中,野外地层块实体断层之间耦合性很小(如图1所示地震层块体显示),并且可以通过野外放炮、检波一系列手段获取各个层面的数据点坐标,针对于此本文结合逐点插入算法和自由网格方法,提出了一种基于数据并行的delaunay四面体剖分并行算法,此算法有效缩短了数据点同时插入时通信耗时,提高了网格剖分效率。2 逐点插入delaunay四面体剖分串行算法设计本文提出的并行算法基于逐点插入算法,在此首先给出基于逐点插入的四面体剖分串行算法的具体实现过程。2.1 数据结构定义三种数据结构"

4、;point"结构、"tetrahedral"结构、"circumscribed sphere"结构,数据结构具体定义如下:2.1.1 点point三维情况下的数据点用二维数组nodei存储:记录第i个点的横坐标、纵坐标、竖坐标。2.1.2 四面体tetrahedral四面体信息存储在四面体信息矩阵中:tera_infoi,分别存储第i个四面体四个顶点编号和第i个四面体四个外邻四面体编号。2.1.3 外接球circumscribed sphere三维delaunay逐点插入算法在执行的过程中要不断搜索四面体外接球的信息,需要记录下外接球的圆心坐

5、标与半径,用二维数组存储:tetra_circum,存放第i个四面体外接球的球心横坐标、纵坐标、竖坐标、四面体外接球半径。2.2 算法流程图三维逐点插入delaunay四面体剖分串行算法在本文中用于子块体网格剖分,具体实现过程如图2所示。3 逐点插入delaunay四面体剖分并行算法设计3.1 并行算法基本思想首先对三维数据点限定在一个规则的长方体,然后将大块体分割为多个子块体,每一个子块体含有上下两层数据点(相邻两个子块共享一层数据),对每一子块体针对上下两层数据点采用三维逐点插入delaunay剖分串行算法进行四面体网格生成。然后合并子块剖分之后得到的局部四面体网格,得到整体delauna

6、y四面体网格,如图3所示。3.2 并行算法采用的并行策略将大块体按层分解为多个子块体,同时每一层数据点存储在一个数据文件中,以下给出相关实现。mpi_comm_rank(mpi_comm_world,&rank);mpi_comm_size(mpi_comm_world,&size);/为实现负载均衡,采用交叉数据分解方法for(int i=rank;i< p>/layer是大块体被分成子块之后包含的总层数,procesize启动的进程的总数量。 delaunay_3d:read_data(filenamei,node);/filename中存储的是多个数据文件名称

7、,一个数据文件储存一层三维点坐标信息。delaunay_3d:read_data(filenamei+1,node)/读取第i与第i+1两相邻层数据,将数据点信息存储于二维数组node中delaunay_3d:delaunay(node,node_num_new,i+1);/包含i与i+1层数据的子块体采用前面给出的三维delaunay四面体剖分串行算法进行网格剖分。mpi_finalize();/結束并行进程。3.3 并行算法效率分析实验数据:如表所示,在野外采集七个层的4486个三维点坐标信息,并按层将其存放在格式为dig的7个文件中,同时启动6个进程执行。可以看出来并行算法,比串行算法执

8、行时间上明显的进步,有较高执行效率。4 结论delaunay四面体网格剖分并行算法,通信耗时是限制效率的主要原因。本文基于数据并行结合逐点插入算法和自由网格法局部网格合成整体网格策略提出一种并行算法,此算法有效缩了通信耗时,并通过实验验证了并行算法的可行性与高效性。本课题只是采用了基于mpi编程编程模式的并行策略,可考虑向多混合编程模型的方向发展,可以选择gpu作为切入点,采用mpi+openmp+cuda的三级混合编程模型,充分发挥各个并行模式的优势。 参考文献1marc vigo,nuria pla,computing directional constrained delaunay tr

9、iangulationsj.computers&graphics,2000(24):181-190.2brassel k.e and reif.procedure to generate thiessen polygonsj. geographical analysis,1979(11):289-303.3dwyer r.a faster divide and conquer algorithm for constructing delaunay triangulationsj.algorithmica, 1987,2(1/4):137-151.4bowyer a.computing

10、dirichlet tessellationsj.the computer journal, 1981,24(02):162-166.5watson d f.computing the n-dimensional delaunay tessellation with application to voronoi polytopesj. the computer journal,1981,24(02):167-172.6chrisochoides n.parallel mesh generationm.bruaset am,tveito a. numerical solution of partial differential equations on parallel computers.heidelberg: springer,2006:237-264.7yagawa g,yamada t.free mesh method:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论