水工结构数值仿真中的有限元分析研究综述

所属栏目:水利施工论文 论文作者:/
摘要

  随着我国水利水电工程建设的向西推进,在建或拟建超大规模大坝数量不断增多,再加上西南山区复杂地质条件、高地应力的影响,复杂力学问题求解分析的深入,水工结构工程科学计算的“瓶颈”日趋严重,传统Von Neumann体系下计算机计算能力已不能满足需求。即使将模型及算法简化,一次计算仍然需要几小时、几天乃至数十天的时间,严重制约着水利学科的发展。

  因此急需采用已在其他诸如气象预报、分子动力学、新药研制等领域广泛应用的高性能并行计算,为水工结构工程的数值仿真研究提供新的技术支撑。虽然并行计算自20世纪70年代起就已有学者研究,但其应用于水工结构数值仿真中的时间较晚。水工问题主要以有限元为分析方法,因而目前研究主要针对有限元展开,并取得了一定成果。

  1水工有限元并行计算的3种策略

  在水工结构工程中,有限元分析已成为不可或缺的方法。针对有限元的计算步骤,常用的有限元并行计算方法可以分为方程组并行求解、区域分解方法和EBE(Element-by-element)方法[1].

  1.1方程组并行求解

  线性方程组是许多水工数值仿真问题的核心。理论上,有限元分析最终都归结到求解线性方程组Ax=b,A为整体刚度矩阵,x为待求结点位移向量,b为区域荷载向量。对于线性的结构力学分析,刚度矩阵A是对称正定的,而且往往是稀疏带状的。有限元计算过程中,方程组的求解占据了大部分计算时间。即使是对于最简单的静力分析,代数方程组的求解时间也占整个分析时间的70%以上,动力分析则要占到90%以上[2].

  因此,将上述方程组求解并行化成为提高计算效率的简单、有效方法。对于方程组Ax=b的并行求解,有两方面工作需要做:一是并行计算刚度矩阵A的分解;二是并行求解相应的三角形方程组,此部分较容易实现。对于矩阵A的分解,可以采用Cholesky分解。

  张健飞、姜弘道[3]研究了带状对称正定矩阵A在等带宽存储方式下的并行Cholesky分解算法,并采用提前发送(Send Ahead)的策略减少了通信时间。数值试验表明该算法具有较高的加速比和效率。但这种并行化的方法在计算过程中往往会引入大量的非零元素的填充,降低了矩阵的稀疏性,同时对内存需求也很大。当计算量大时,采用分布式并行计算的数据交换量也大,因而限制了数值仿真问题的规模。

  1.2区域分解

  由于在迭代过程中需要大量的数据交换,采用方程组并行求解会大大降低计算速度,导致并行效率的降低,尤其是在分布式内存并行系统中。因而对于分布式内存并行系统,采用区域分解算法有利于提升大型水工结构仿真计算速度。

  区域分解算法(Domain Decomposition Meth-od)作为一种偏微分方程数值解的新技术在20世纪80年代骤然兴起。它是为适应并行计算机工作原理而生成的一种算法。

  在并行计算中,区域分解算法又被称为“分而治之”策略,即将一个大型的计算问题依据某种方法将其分解成为许多个小问题,再利用对应多个并行机来求解这些小问题,最终将问题解决[4].在水工数值仿真问题中,通常将大坝、地基、水工闸门等规模较大的水工结构建模,将有限元网格分解为若干子结构,再在这些子结构上进行相应的有限元计算,最后汇总得到整个模型的解。水工有限元计算问题中,一个区域的系统方程为

  同时,相应的荷载向量也按同样原理进行分解。这样,式(1)的求解就可转化到子区域上进行,从而整个有限元计算就可并行求解。

  1.3 EBE方法

  进行有限元计算时,采用方程组并行求解实现比较容易,但当问题规模增大时,内存的需求也会相应增大,此外还可能涉及内外存交换技术,导致计算速度的降低;而区域分解方法往往只能在计算区域比较规则且剖分的子结构较好时才能获得很高的并行效率。对于三维问题,区域分解算法仍是一个没有得到很好解决的问题[5].

  有限元EBE(element-by-element)方法则能很好地解决上述方法所面临的问题。它不进行整体刚度矩阵和整体荷载向量的集成,所有计算均在单元一级上进行,因此可以实现有限元整个计算过程的并行化[5].

  对于一个水工有限元数值仿真问题,在将求解区域进行有限元网格离散化后,得到如下方程组:

    假设Ae与be为单元e对整个问题的贡献,因而它们具有和整体矩阵相同的维数,从而可将式(4)改写成:

  其中:

  Ae为仅在与单元e相关的位置元素才不为0的极度稀疏矩阵。在实际计算时,仅需存储Ae的压缩形式。同时,边界条件经过处理也很容易施加到单元一级上。这样,所有的计算均可在单元一级上相互独立地进行,这也就是EBE的基本思想。

  在求解过程中,需先对矩阵A进行预处理。适用于EBE方法的预处理技术可分为两类:一类是将对整体刚度矩阵的预处理技术应用到共轭梯度法(CG)中,包括Jacobi预处理和多项式预处理;一类是基于矩阵的分裂获取一个A的近似来作为预处理矩阵。EBE并行求解时,具体的计算过程可归纳如下:

  1)对每一个单元,计算单元刚度矩阵和相应的右端荷载向量,并施加边界条件。

  2)采用基于EBE策略的预处理共轭梯度法(EBE-PCG)求解方程组,得到单元节点位移。

  3)利用单元节点位移计算单元应变和应力。

  4)单元节点位移集成总体节点位移并输出。

  其中,在采用EBE-PCG方法求解方程组时,各个处理器之间需要交换与边界节点(各处理器间有关联的节点)有关的数据,实现时可采用压缩形式进行传输。

  当计算规模增大时,可以保证处理器间需交换的数据量不会随之增大。

  2并行实现的方法

  2.1 PC网络机群

  PC网络机群主要是利用高速通讯网络将一组高性能PC机按某种结构连接起来,进行统一调度、协调处理,从而实现高效并行计算。PC网络机群具有可扩展性、高性价比、用户编程方便等特点。机群系统采用通用网络连接,因而当计算需要时易于扩大机群规模。

  其次,PC机群采用廉价的PC机搭建而成,相对价格高昂的巨型机经济适用。

  此外,PC机群多采用WINDOWS操作系统,因而科研人员在熟悉的编程环境下易于开发调试并行计算程序,并进行相应问题的求解。

  基于上述特点,在土木水利工程方面,许多科研人员搭建了PC网络机群并进行了并行计算在该领域的应用研究。

  张友良等[6]利用100Mbps高速以太网络联结若干台个人计算机搭建了并行系统平台,在此平台上基于消息传递机制的MPI系统进行并行有限元程序开发,对水布娅地下厂房三维模型进行了模拟。

  茹忠亮等[7]搭建了PC机群,采用C++语言与MPI环境开发了并行有限元计算程序,利用6台计算机对247 871个单元的有限元模型进行了并行求解,并行加速比达到5.26,验证了程序的可靠性和高效性。

  2.2高性能计算集群

  高性能计算集群又称分布存储式并行计算系统,是由多个互相连接的独立计算机组成的系统。

  有别于PC网络机群,高性能计算集群主要是指由商业公司开发的大型系统,如曙光集群、HP集群等。它 主 要 采 用Linux操 作 系 统,常 见 的 有SuSeLinux、Redhat Enterprise Linux等。

  在并行计算技术的发展过程中,基于X86架构的服务器机群系统因其具备良好的可扩展性、更高的可管理性、更低的使用维护成本、更好的可使用性、更高的系统鲁棒性和更多的应用支持成为目前并行计算领域的主流技术。基于上述优点,高性能集群在数值仿真领域有着广泛的运用。

  刘耀儒等[5]利用清华大学研制的高性能集群系统,采用C/C++语言和MPI通信标准编制了有限元程序,成功对水布垭大型地下洞室进行了大规模数值计算。

'); })();