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

  • 33
  • 0
  • 约6.93千字
  • 约 4页
  • 2021-08-16 发布于安徽
  • 举报

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

有限元网格自动生成的并行区域划分算法 呙嘉妮 胡久乡 卢正鼎 摘自:华中理工大学学报 摘 要 提出了一种基于网格生成递归法的并行区域划分算法,该算法依据网格生成代价的 估算分析,采用迭代分解法对区域进行并行划分.在曙光1000A 系统上的运行结果表明,该网格 算法的效率和加速比均优于串行递归算法. 关键词 有限元网格;并行区域划分算法;网格生成代价;迭代分解法 基于网络生成递归法[1~3],本文提出了一种并行区域划分算法,该算法满足以下四个基本原 则:a. 任务平衡性原则.能生成平衡的子区域集,即在各子区域中生成网格的时间大致相等.b. 边界最简原则.子区域的边界结构简单,边界处理所需时间短,处理器间消息传递的费用低.c. 网 格均匀原则.并行生成的最终网格形状均匀,无奇异单元.d. 区域划分代价最小原则.区域划分算 法本身的代价尽可能小. 1、基本思想及相关算法 在网格生成递归法中,如果每个子区域都包含相同的单元数,就比较容易实现任务平衡.因 此,首先按照单元数估算待处理区域的网格生成代价,然后根据当前参与并行处理的处理器数N 对区域进行分解,并对分解所得子区域进行边界处理,最终获得相互之间既平衡又独立的N 个并 行子任务. 1.1 网格生成代价的估算算法 网格生成代价与分布于待处理区域中的单元数目紧密相关,而单元数目是由该区域的总面积 S 和区域内单元分布密度决定的.估算公式如下: G=S/S , (1) tri 2 2 S = [L /(2M )]sin60°, (2) tri M= Σ2l /(d +d ) (i=1, 2, …, n), (3) i i1 i2 式中,G 表示三维平面区域 (含有n 条边) 的网格生成代价;S 表示该区域的面积;Stri 是对区 域内单个三角形单元平均面积的粗略估算值;L 表示区域的周长;M 表示区域边界上总的离散段 数;l 表示第i 条边的长度;d 和d 分别表示第i 条边前端点和后端点处的单元边长. i i1 i2 据以上公式,网格生成代价的估算算法步骤如下. 步骤 1 依次计算区域各边界的长度和离散段数,根据式(2)和(3)计算Stri ; 步骤 2 应用三角累加算法计算S,根据式(1)求得G.三角累加算法步骤如下:a. 置变量S 为0;b. 选取区域的任意一个顶点作为V ,按顺时针 (或逆时针) 方向取与V 依次相邻的两个 1 1 点为V 和V ;c. 计算由V , V 和 V 组成的三角形的面积,累加入变量S;d. 以V 为新的V ,按 2 3 1 2 3 3 2 顺时针 (或逆时针) 方向取与V 相邻的第一个点为新的V ,若V =V ,则算法停止;否则转 c. 2 3 3 1 1.2 区域划分算法 估算出整个区域的网格生成代价后,区域划分算法的任务就是:寻找N-1 条分割线,将区域 分割为N 个子区域,使得各个子区域的网格生成代价大致相等.由于无法精确确定子区域中的单 元数目,因此允许各子区域的网格生成代价在G/N 附近有一个δ误差,亦即所产生的子区域的 网格生成代价都属于[G/N- δ, G/N+ δ]区间. 根据原则 b,任何一条分割线的两端点都定位在区域的边界上,而不落在区域中.在图 1 (a) 中,任何一

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档