板擦厂家
免费服务热线

Free service

hotline

010-00000000
板擦厂家
热门搜索:
行业资讯
当前位置:首页 > 行业资讯

做座有限元网格自动生成的并行区域划分算法

发布时间:2021-10-10 02:53:18 阅读: 来源:板擦厂家

有限元格自动生成的并行区域划分算法

摘 要:提出了一种基于格生成递归法的并行区域划分算法,该算法依据格生成代价的估算分析,采用迭代分解法对区域进行并行划分。在曙光1000A 系统上的运行结果表明,该格算法的效率和加速比均优于串行递归算法。

关键词:有限元格;并行区域划分算法;格生成代价;迭代分解法

基于络生成递归法[1~3],本文提出了一种并行区域划分算法,该算法满足以下四个基本原则:a. 任务平衡性原则。能生成平衡的子区域集,即在各子区域中生成格的时间大致相等。b. 边界最简原则。子区域的边界结构简单,边界处理所需时间短,处理器间消息传递的费用低。c. 格均匀原则。并行生成的最终格形状均匀,无奇异单元。d. 区域划分代价最小原则。区域划分算法本身的代价尽可能小。

1、基本思想及相关算法

在格生成递归法中,如果每个子区域都包含相同的单元数,就比较容易实现任务平衡。因此,避免厚薄不均致使的外观流痕问题首先按照单元数估算待处理区域的格生成代价,然后根据当前参与并行处理的处理器数N对区域进行分解,并对分解所得子区域进行边界处理,最终获得相互之间既平衡又独立的N个并行子任务。

1.1 格生成代价的估算算法

格生成代价与分布于待处理区域中的单元数目紧密相关,而单元数目是由该区域的总面积S和区域内单元分布密度决定的。估算公式如下:

G=S/Stri, (1)

Stri=[L2/(2M2)]sin60°,(2)

M=Σ2li/(di1+di2) (i=1, 2, …, n), (3)

式中,G表示三维平面区域 (含有n条边) 的格生成代价;S表示该区域的面积;Stri 是对区域内单个三角形单元平均面积的粗略估算值;L表示区域的周长;M表示区域边界上总的离散段数;li表示第i条边的长度;di1和di2 分别表示第i条边前端点和后端点处的单元边长。

据以上公式,格生成代价的估算算法步骤如下。

步骤 1 依次计算区域各边界的长度和离散段数,根据式(2)和(3)计算Stri;

步骤 2 应用三角累加算法计算S,根据式(1)求得G。三角累加算法步骤如下:a. 置变量S为0;b. 选取区域的任意一个顶点作为V1,按顺时针 (或逆时针) 方向取与V1 依次相邻的两个点为V2和V3;c. 计算由V1, V2 和 V3 组成的三角形的面积,累加入变量S;d. 以V3为新的V2,按顺时针 (或逆时针) 方向取与V2相邻的第一个点为新的V3,若V3=V1,则算法停止;否则转 c。

1.2 区域划分算法

估算出整个区域的格生成代价后,区域划分算法的任务就是:寻找N-1条分割线,将区域分割为N个子区域,使得各个子区域的格生成代价大致相7、具有多项专利技术(ZL.3;ZL.8)等。由于无法精确确定子区域中的单元数目,因此允许各子区域的格生成代价在G/N附近有一个δ误差,亦即所产生的子区域的格生成代价都属于[G/N-δ, G/N+δ]区间。

根据原则 b,任何一条分割线的两端点都定位在区域的边界上,而不落在区域中。在图 1 (a) 中,任何一个子域都只通过一条完整的分割线与其他子域相邻;而在图1(b) 中,子域3与子域1和2之间的相邻关系不便于边界处理。

(a) (b)

图 1 区域划分效果图

根据原则c,多条分割线不交于同一点,因为这种分割在N较大的情况下会导致极点现象——在多条分割线的交点处出现小内角的长薄单元,影响格形状。

本文采用迭代分解法划分区域,步骤如下。

步骤 1 记待分解的区域为 D;

步骤 2 循环执行以下步骤N-2次:a. 在D中找一条分割线将区域分为两个子域D1和D2,使D1的格生成代价约等于G/N;b. 将D1从D中去掉,以D2为新的D,转步骤 a;

步骤 3 在D中找一条分割线将区域分为两个子域D1和D2,使D1和D2的格生成代价均属于 [G/N-δ,G/N+δ]。

本算法中,寻找分割线的方法是:先在区域中找到一个合适的顶点作为分割线的前端点X,然后从这个顶点出发,沿顺时针(或逆时针)方向按对半查找法在区域的边界上寻找分割线的后端点Y。对半查找算法步骤如下:

步骤 1 从X点出发,按顺时针(或逆时针)方向取与X依次相邻的两个点为R和Y;

步骤 2 计算分割线XY左侧 (或右侧) 子域的格生成代价g;

步骤 3 若g∈[G/N-δ,G/N+δ],则算法停止;若g > G/N+δ,则令T=Y,以T与R的中点为新的Y,转步骤2;若g R,就变换X。

图 2 是对区域ABCDEF作6次划分的示意图。在图2(a)中,R取值为2,寻找第5条分割线时,因为∠CHI比∠HIE大,X原应定位在H点,但由于已有两条分割线经过H点,因此如果这次还选取H作为前端点, 那么共点率r增为3,超过预定义的R值,于是,改选I点为X;而在图2(b)中,因为R取值为3,所以,H仍可作为第5条分割线的前端点。

(a) R=2 (b) R=3

图 2 共点控制

该区域划分算法的特点是:并行任务的负载平衡程度由δ调节;所有分割点都定位在区域的边界上,因为每次分割剩下的子域只有一条边是在分割过程中新加入的分割线,无论选取这条边的哪个端点作为X,X和Y总是落在区域的边界上,有效地满足了边界最简原则,;通过R灵活控制分割线共点率,消除极点,保证格均匀度。

2、并行实现

本文研究的并行区域划分算法已在曙光1000A系统上实现。根据曙光1000A系统目前的条件和特点,选取PVM作为并行编程环境,分三个步骤实现有限元格的并行生成:首先,由node1上的master任务程序检测当前PVM中的结点数N,运用区域划分算法分解待处理的区域为N个子区域,将各子区域分配到各node上;然后,并行执行各处理器上的slave任务程序,在各子区域中生成均匀格;最后,由node1上的master任务程序收集、组装在各处理器上生成的子区域格。这里,采用了动态负载平衡策略——farm模式,但有一点与通常情况下不同:为了提高处理器利用率,node1在子区域分配过程中也分得一个子区域,所以,在数据分配之后,子区域格传回之前,主处理器也不空闲。

由于在并行划分阶段已经对边界进行了预处理,因此,一旦子区域分配给各个处理器,所有处理政策的支持是再生塑料造粒机发展的有利保障器将同时独立地在自己的数据子块上根据预定义的单元分布密度生成格。经过大致相等的时间段后,它们将完成各自的工作,并将生成的子区域格传送给master任务程序。整个并行算法的通信很小,仅包括从node1向其他各node广播子区域数据,以及各node向node1回送生成的子区域格单元。

3、实验结果

表 1 以实例说明上述并行算法在曙光1000A系统上的运行效果 (表中括号内外的数据分别对应例 1 和例 2)。在例 1 中,δ=G/(5N(N-1)),G=15 987 个,实际生成的单元总数为12 531个;例 2 中,δ=G/(5N(N-1)),G=33 452 个,实际生成的单元总数为28 769个。由于区域划分和组装数据所耗费的时间是μs级的,因此将并行算法的执行时间 (t) 分为两部分:子区域格生成时间 (t1) 和通信时间 (t2)。t1 指各node在其分配到的子区域中生成格的时间;t2包括node1向其他各node发送子区域数据的时间,以及各node向node1回送子区域格数据的时间。表 1 给出了使用2,而后加交变载荷进行实验3,4,5,6个node进行并行格生成的时间开销及加速比 (ν)。使用一个处理器时,既不需要做区域划分,也不用通信,因此,在区域中生成格的时间即为全部运行时间。表 1 并行算法执行时间及加速比

处理器个数t1/st2/st/sν11 297 (9 770) 1 297 (9 770)1.00 (1.00)2172 (1 138)5 (35)177 (1 173)7.33 (8.33)375 (570)5 (35)80 (605)16.21 (16.15)440 (200)5 (35)45 (235)28.82 (41.57)520 (152)5 (35)25 (187)51.88 (52.25)614 (100)5 (35)19 (135)68.26 (72.37)

表 2 给出了例1中并行算法在六个node上运行时各node上生成的格单元总数的估算值 (n) 和实际值 (n),以及在子区域中生成格的时间 (t3)。由表 2 可见,各子区域单元总数的估算值与实际值的比例分布一致,各node之间格生成时间差别小于5%,达到了很好的负载平衡。值得注意的是,格生成时间并不总是与格单元数目成正比,其原因在于格生成的时间开销不仅受子区域内格单元数目的影响,而且与格单元在子区域中的分布情况有关。表 2 负载分配表

处理器编号n/个n/个t3/st2/s12 7362 49512.310.7522 6321 93312.740.7532 6702 03112.180.7542 5922 08912.910.7552 7672 07312.290.7562 5332 04513.200.75

参考文献

1 Facello M A. Implementation of a Randomized Algorithm for Delaunery and Regular Triangulations in Three Dimensions. Computer Aided Geometric Design, 1995 (12): 349~370

2 Chan C T, Anastasion K. An Automatic Tetrahedral Mesh Generation Scheme by the Advancing Front Method. Communications in Numerical Methods in Engineering, 1997, 13: 33~46

3 Zeng Yong, Cheng Gengdong. Knowledge-Based Free Mesh Generation of Quadrilateral Elements in Two-Dimensional Domains. Microcomputers in Civil Engineering, 1993 (8): 259~270(end)

同仁堂国公酒的功效如何
同仁堂国公酒怎么样?
老寒腿怎么治疗比较好
老寒腿与风湿的区别有哪些