论文部分内容阅读
有限单元法(Finite Element Method,FEM)是当今最成熟、应用最广泛的一种数值分析方法。随着问题求解规模的增加及并行计算机硬件环境的快速发展,有限元并行计算及其网格生成技术受到了前所未有的重视。然而在传统的并行有限元方法中,只有在网格生成完全结束之后才能进行有限元后处理过程,这种串行特征无疑是有限元方法并行实现的一大瓶颈。 借鉴无网格方法中在节点的局部区域内独立地生成总刚度矩阵一行的思路,进行全新的基于节点的有限元“无缝连接”并行求解体系研究得到学者们的关注。然而不同于有限元方法,无网格方法在节点局部区域内构造形函数时不依赖于网格,这样要将无网格方法中局部的思想引入有限元计算中,首先要解决的问题就是在节点的局部区域内独立地生成计算网格单元片,从而实现在节点局部区域内独立地构造插值函数及生成其对应的总刚度矩阵的一行。鉴于此本文重点研究了基于泡泡布点的局部网格生成技术及其应用,主要内容与研究结果如下: 1.简要介绍了泡泡布点方法的实施过程及其加速策略。加速策略包括选用时间复杂度较小的数值迭代算法、令粘性系数随时间和泡泡位置改变和自适应终止策略等;通过不同的加速策略的组合,泡泡布点效率提高50%以上,显著改进布点算法的性能。 2.由于泡泡间相互作用力是短程力,两个距离较远的泡泡可以同时独立地动态模拟,受这一优良特性的启示,提出了泡泡布点方法并行实施框架。在该框架下重点解决如下两个问题:(1)如何进行区域分解,保证分配给每个处理器的任务量尽量均衡;(2)如何确定相邻子域间相互通信的节点信息,保证通信量和通信等待时间尽可能的小。对于第一个问题,这里借助METIS区域分解软件包,将计算区域分解成任意个数的子域,且保证每个子域节点个数尽量均衡。对于第二个问题,将区域分解后每个子域上的节点分为三类:本地节点、边界节点和外部节点,然后在每个子域上分别进行动态模拟,且每隔一定的迭代步后每个子域将边界节点信息发送给相邻子域。数值结果表明,本文提出的泡泡并行布点方法不仅可以得到高的并行效率,而且布点结束后子域交界面附近的节点分布优良,不需要额外的光顺处理操作。 3.泡泡布点结束后,每个节点附带一个存储周围节点信息的邻接链表,利用该链表信息,构建出基于节点的局部网格生成方法 BLMG。它只需删除每个邻接链表中极少数的非卫星点,便可得到每个节点对应的单元片,实施过程简单、快速。然后将椭圆泡泡代替圆泡泡进行动态模拟,提出了各向异性的BLMG方法,它可以生成满足黎曼度量要求的各向异性网格。最后基于映射法将各向异性的BLMG方法应用到参数曲面的网格化问题中,数值算例验证了方法的有效性。 4.借鉴已有的残差型后验误差估计子,建立了基于BLMG方法的自适应有限元求解算法。这里以常规有限元方法为例,通过后验误差估计、网格尺寸函数修正和网格自动调整来不断提高有限元求解精度。其中,如何根据后验误差估计来修正网格尺寸函数是研究的重要内容。本文通过在修正的网格尺寸函数中引入网格加密和粗化因子阈值,实现了自适应求解过程中不同程度的网格加密或粗化。本文方法的优势在于能在同一框架下实现网格的细化和粗化,避免了额外粗化过程;每一细化层生成的网格均保持优良的结构。最后通过一系列的数值实验验证了基于BLMG的自适应方法的有效性,能以尽量少的自由度达到所要求的逼近精度。