时间:2024-07-29
张向阳,秦忠国(河海大学工程力学系,江苏南京210098)*
大规模水闸非线性有限元并行计算研究
张向阳,秦忠国
(河海大学工程力学系,江苏南京210098)*
借助开源的PETSc并行数值算法包,使用C ++编写了一个基于消息传递模式的非线性弹性有限元的并行计算程序.程序通过多次调用PETSc中的求解器组件KSP完成了Duncan-Chang双曲线模型的并行有限元分析.最后通过一个实际工程水闸模型进行测试,结果表明多线程的计算效率比单线程的计算效率要高,四个进程的加速比达到了1.91.同时也表明,通过借助于成熟的数学工具箱进行非线性有限元并行程序开发是可行的,有效的.
非线性有限元;增量法;并行程序; PETSc
由于工程技术和工业制造领域的不断进步和发展,在预测模型的构造和模拟[1]、大型实际工程的计算与数值仿真、计算流体动力学、全球气象预报[2]、图像处理、非线性的动力学系统等领域中都对计算的精度和速度提出了极高的要求.对这些重大的科学计算问题进行非线性有限元数值仿真时,模型网格经常达到几百万甚至更多,计算量大且时间较长,再加上计算机内存容量的限制,工程分析人员不得不缩小计算规模,导致计算结果的可靠性降低.当前,采用并行有限单元法[3]可以很好的解决这些问题,即提高大型工程的求解规模和加快求解速度.
随着并行计算的发展,一些优秀的并行算法包引起了科研人员的关注.这些并行算法包提供并行的数据结构和成熟的算法及标准的调用接口.基于所编译得到的可移植可扩展科学计算工具箱PESTc( Portable Extensible Toolkits for Scientific Computing)[4],使用C ++语言编写了面向对象的非线性弹性有限元分级加载的并行求解程序.程序采用Duncan-Chuang双曲线本构模型,其求解方法为增量法中的初始刚度法,并用实际工程算例进行测试.
1.1科学计算工具箱PESTc的介绍
PETSc是由美国Argonne国家实验室Staish Balay等人开发的科学实验计算工具箱.PETSc的数据结构主要包括向量Vec、矩阵Mat、结构网格DA等[5].PETSc工具箱中的方程组求解器组件主要有三种:线性方程求解器( KSP)、非线性求解器( SNES)、时间步进求解器( TS).其中KSP是关键,SNES和TS都是以此为基础的.基于这三个求解器,用户可以开发自己的应用程序.
1.2有限元并行化的策略
并行计算要解决计算时存储空间的不足和问题求解时间长的两大难题[11].目前分布式环境的并行策略有基于系统方程组求解的并行有限元、并行EBE法、并行子结构法、结构非线性分析与动力分析的并行算法等.其中有限元并行子结构法的基本思想是:将大规模的问题分解为若干个小问题,由各个处理器负责一个或多个小问题的计算[6],计算过程中处理器之间进行必要的数据交换,最后由各个处理器协调工作得出整体解[7].
该并行程序设计的方法是:从读入数据后,到得到非线性问题的位移解的过程,都完成了并行化处理,使用并行子结构法的思想[12],但是不形成子结构,而是把结构的总体数据信息划分为大概相同的子块,分配到各个进程当中去,各个进程预先估算所需要的存储空间,并创建存储空间.组集总体刚度矩阵时,每个进程当中都分发一份单元结点总体信息,这样就消除了在形成总体刚度矩阵时,各个进程之间的通信压力.程序的并行处理主要针对初始应力场计算和分级加载计算过程,这两个过程有明显的界限,但是都被并行化处理,最后得到位移、应力解在进程中保存结果.
1.3并行程序的分析及设计
非线性弹性是由本构关系的非线性引起,即应力σ与应变ε矢量之间不再是线性关系.用增量形式写出其本构关系[8]:
物理方程
式中: DT表示为切线弹性矩阵.
图1 程序的总体流程图
再考虑到非线性弹性有限元的几何方程和平衡方程可得:
式中: KT( u)是切线刚度矩阵,它是节点位移u的函数; ce是选择矩阵.
程序采用Duncan-Chang双曲线本构模型,要考虑初始应力场的计算和荷载的分级加载求解,其程序计算流程如图1所示[9].程序从读入数据到得到位移解的过程中均实现并行化处理,特别是在初始应力场计算、分布加载求解步骤上予以高度并行化处理.因为这两个部分所耗时间占整个程序的耗时比重比较大,通常能占到整个程序运行时间的百分之八十[10],所以该程序的并行效率是比较高的.
2.1计算模型及运行环境
对某水闸系统进行三维非线性有限元的静力分析,工况为水闸系统的完建期,所受荷载为重力荷载.通过此算例主要测试该求解程序的并行加速效果,测试环境为一台普通的32位台式机,操作系统为Windows 7,处理器为四核Intel( R) Core( TM) i3 -2120CPU,主频3.3 GHz,可使用内存3.03 GB.
水闸系统由钢筋混凝土闸身和软土地基两部分组成.其中闸身的材料特性如下:弹性模量为2.7e10 Pa,泊松比为0.167,密度为2 500 kg/m3.地基材料参数采用Duncan-Chang双曲线模型来确定,其中K =3.5e3,表示初始弹性模量的基数; n取0.5,反应E随σ增长的关系;φ=30°; c = 0.3 kPa; Rf为破坏比,值为0.8; G为初始泊松比的基数,值为0.3; F为泊松比随围压增长降低的速率,值为0.01; D为泊松比随应变的增长关系,值为10.0; Ku为土体卸载的参数,值为4.2e3.将水闸系统模型离散为101 748个单元(八节点六面体单元),总节点数为112 670个.
2.2计算结果及分析
水闸系统的有限元模型如图2所示,对上述有限单元网格模型进行1~4个进程的非线性有限元静力计算.首先计算初始应力场,然后将荷载平均等分为10级来施加,其计算结果如表1所示,取得了明显的并行加速效果,其四个进程计算的加速比和效率达到1.91和0.48.
图2 水闸系统的有限元模型
表1 1-4进程并行计算结果
计算过程中,程序的两个主要并行部分初始应力场计算和分级加载计算过程的运行时间,加速比和效率如表2所示,并绘成折线图,如图3、4所示,其加速效果也较为明显.
表2 两个主要部分的并行计算时间及加速效果
图3 进程个数随时间变化的关系图
图4 初始应力场及分级加速计算的关系图
对于用有限单元法分析一个实际问题时,方程组的求解耗时通常会占到百分之八十的比重.在上述计算过程中,每次求解都包含了11次的线性方程组的求解,即初始应力场的计算和10次加载计算.得到求解方程的相关信息如表3所示,可见解方程的耗时能达到整个求解过程时间的86%以上,该程序采用PETSc工具箱中的并行求解器,取得了较好的效率和明显的加速效果.
表3 解方程占整个求解时间的信息
对该水闸系统有限元网格模型进行不同数目的分级加载计算,计算进程数都为4,得到的计算结果如表4所示.由每次计算得到的位移最大值可知,计算的结果是符合初始刚度法对于Duncan-Chang模型的结果规律,即分级数目越多,计算结果从上方趋于精确结果.但要得到比较精确的结果,还需要更大的计算量,也从侧面说明并行计算对于这样非线性问题的精确求解的重要性.
表4 不同荷载步时的计算总耗时和位移最大值
通过借助于PETSc提供的高层应用开发平台,使用面向对象语言C ++,编写了一个非线性弹性有限元的并行计算程序,并对该程序进行了测试.结果显示,该程序取得了明显的并行加速效果,其四个进程计算的加速比和效率分别达到了1.91和0.48.同时也表明借助于PETSc并行数值算法包来开发非线性有限元并行程序,可以不用考虑并行数据的分布存储结构和复杂的通信问题,降低了因程序并行化带来的编程困难,缩短了并行程序的开发周期,提高了程序的实用性.
[1]KARTAM N,FLOOD I.Construction simulation using parallel computing environments[J].Automation in Construction,2000,10( 1) : 69-78.
[2]XIE J,YANG C,ZHOU B,et al.High-performance computing for the simulation of dust storms[J].Computers,Environment and Urban Systems,2010,34 ( 4) : 278-290.
[3]BABUŠKA I,ELMAN H C.Some aspects of parallel implementation of the finite-element method on message passing architectures[J].Journal of Computational and Applied Mathematics,1989,27( 1-2) : 157-187.
[4]张健飞.采用PETSc的有限元并行计算实现与优化[J].计算机工程与应用,2010,46( 10) : 57-59.
[5]高怀玉,张峰,秦忠国.基于PETSc的有限元高性能求解方法[J].河海大学学报(自然科学版),2013,41 ( 4) : 365-370.
[6]张健飞,姜弘道.有限元子结构并行算法的性能分析[J].力学与实践,2002,24( 5) : 35-37.
[7]胡宁,张汝清.有限元子结构并行算法的效能分析[J].应用力学学报,1993,10( 1) : 124-128.
[8]任青文.非线性有限单元法[M].南京:河海大学出版社,2000: 7-30.
[9]姜弘道,张健飞,秦忠国,等.工程科学中的高性能计算[M].北京:科学出版社,2013.
[10]MICHAEL J Q.MPI与OpenMP并行程序设计[M].北京:清华大学出版社,2004: 34-40.
[11]姜弘道.水利高性能计算的进展[J].水利水电科技进展,2006,26( 2) : 70-76.
[12]谢旻.高可用MPI并行编程环境及并行程序开发方法的研究与实现[D].长沙:国防科学技术大学,2007.
Study of Nonlinear Finite Element Parallel Computing based on Large-Scale Lock
ZHANG Xiangyang,QIN Zhongguo
( Department of Engineering Mechanics,Hehai University,Nanjing 210098,China)
With the help of the open source PETSc parallel numerical algorithm package,C ++ is used to write a nonlinear elastic finite element parallel computing program based on the model of message passing.The procedure is completed in parallel finite element analysis of Duncan-Chang hyperbola model by the KSP solver component repeatedly calls in PETSc.Through a practical engineering of sluice model to test,the result show that the calculation efficiency of multi thread is higher than the calculation efficiency of single thread,and the accelerate ratio of the four processes reach 1.91.It also show that using the mature mathematical toolbox to development nonlinear finite element parallel program is feasible and effective.
nonlinear finite element; incremental method; parallel program; PETSc
A
1673-9590( 2016) 01-0040-04
2015-03-16
张向阳( 1991-),男,硕士研究生;
秦忠国( 1961-),男,教授,博士,主要从事计算力学及工程仿真、水工软件开发、高性能计算的研究
E-mail: 339681123@ qq.com.
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!