当前位置: 首页 > 专利查询>河海大学专利>正文

一种有限元区域分解改进SSORPCG求解渗流场的并行方法技术

技术编号:20390126 阅读:28 留言:0更新日期:2019-02-20 02:57
本发明专利技术公开了一种有限元区域分解改进SSORPCG求解渗流场的并行方法,其特征在于,包括如下步骤:建立求解模型,对该模型进行有限元离散,得到模型的结构信息;利用区域分解法对模型进行划分,得到P个子区域和每个子区域相对应的数据文件;消息传递接口MPI初始化,通过变分原理形成有限元支配方程;根据达西定律进而得到每个分区的渗流场;步骤5,合并P个子区域的结果,得到整体模型的计算结果。优点:所有的处理器在独立进行各自分区的计算,每个进程是平等的,从而可以有效避免了主进程的限制,可以最大限度地发挥计算节点的能力,进行更大规模的并行计算;在有限元计算中有效提高了求解大型稀疏系数矩阵方程组的计算效率。

【技术实现步骤摘要】
一种有限元区域分解改进SSORPCG求解渗流场的并行方法
本专利技术涉及一种有限元区域分解改进SSORPCG求解渗流场的并行方法,属于水利工程有限元工程数值模拟计算和大规模并行计算

技术介绍
近年来,计算机正在以惊人的速度不断发展进步,在计算性能方面取得了长足的进步和卓越的成果。但是随着计算规模的提升和计算精度的提高,尤其是在数据密集和计算密集的数值分析应用领域,利用有限元分析的方式越频繁,普通计算机在性能上已经不能满足这些领域的需求,寻找效率高的并行算法成为当前计算不可缺少的方式之一。在实际水利工程中,经常要求解地基及土坝的渗流问题。由于工程结构外形不规则,边界条件有比较复杂,渗流场问题使用古典方法是很难求解的,但是有限单元法可以得到良好的计算结果。目前对于有限元并行技术一般采用物理区域分割并行方法,计算网格和计算区域分解是实现粗粒度并行的最有效直接的任务分配方式。区域分解方法最大特点是适用于构造并行算法,逐步推广到各个计算领域,已经成为并行计算中常见的方法之一,在有限元分析领域发挥着重要作用。对于有限元需要求解的大规模稀疏系数矩阵方程组问题,目前大多数采用对称逐步超松弛预处理共轭梯度(SSORPCG)求解有限元方程组,可以有效提高计算效率。现有技术中的求解方法并不适合并行求解。
技术实现思路
本专利技术所要解决的技术问题是克服现有技术的缺陷,提供一种有限元区域分解改进SSORPCG求解渗流场的并行方法,提高求解大规模稀疏系数矩阵方程组问题的能力。为解决上述技术问题,本专利技术提供一种有限元区域分解改进SSORPCG求解渗流场的并行方法,其特征在于,包括如下步骤:步骤1,建立求解模型,对该模型进行有限元离散,得到有限元模型,对单元和结点全部从1开始编号,得到整体编号,统计模型的结构信息,包括单元总数、单元信息和结点信息;步骤2,模型区域分解,根据进程数目或者需要用于计算的进程数P及处理器的拓扑结构,利用区域分解法对模型进行划分,得到P个分区和每个分区相对应的数据文件;步骤3,消息传递接口MPI初始化,确定进程的总数目,使得子区域与进程号一一对应,分别分配到P个进程中,在各个进程中形成分区内单元渗流传导矩阵和单元结点荷载列阵,将分区内所有单元集合组装两个矩阵,通过变分原理形成有限元支配方程;步骤4,调用改进的SSORPCG求解器并行求解各个未知结点的水头值,根据达西定律进而得到每个分区的渗流场;步骤5,合并P个分区的结果,得到整体模型的计算结果。进一步的,所述单元总数、单元信息和结点信息具体如下:式中,φe(x,y,z)和φ(ξ,η,ζ)分别为整体笛卡尔坐标系(x,y,z)和局部笛卡尔坐标系(ξ,η,ζ)下的单元内任一点的水头,m为单元的结点个数,Ni为形函数,i=1,2,…,m,N为形函数矩阵,N=[N1N2…Nm],{φ}e为单元结点水头列阵,{φ}e=[φ1φ2…φm]T,T表示矩阵的转置。进一步的,所述步骤2,区域分解法在串行下完成对有限元网格进行分区,依据所需进程数P的需求完成分区,具体包括步骤:21)对步骤1中有限元离散后的模型进行单元分区和结点分区:整体有限元模型调用Metis函数库将单元分成P个区域,根据单元的分区确定其结点所属分区,将结点属于多个分区的点指定只属于一个分区;22)确定交界面单元和in/out点:如果其中一个单元的全部结点属于某个分区,则该单元才属于该分区,属于多个分区的单元就是交界面单元,交界面单元的内边界点为out点,外边界点为in点,对于两个相邻分区,交界面公共点互为in点和out点,对于in点来说,是没有自由度的,后期并行计算时需要进行in点和out点传值;23)对单元和结点重新编号:将上述每个分区内的单元和结点在该分区内进行重新编号,将每个分区的结点和单元编号映射到从1开始的正整数集上,得到在该分区内的局部编号,使得局部编号与整体编号具有相应的映射关系;24)分配边界和荷载信息。进一步的,所述单元内渗流水头传导矩阵是根据各分区内单元形状以及插值函数形成;所述结点荷载列阵是根据分区内单元结点的体积力和边界表面力作用形成;所述有限元支配方程是通过组装上述分区内的单元渗流水头传导矩阵和单元结点荷载列阵通过变分原理形成。进一步的,所述改进的SSORPCG求解器是将SSORPCG求解过程并行化,修改其串行下的方程组求解方式。进一步的,所述交界面单元的形成主要用于数据传递交换的求解,在初始迭代计算时各个分区在交界面单元处通过相互传递计算值,多次迭代后计算出各个分区的结点温度,针对大型稀疏系数方程组Ax=b,其中A为方程组的系数矩阵、x为求解的量和b为常数项,具体实现的并行方式为:D为A的对角阵,L为A的严格下三角,即A=L+D+LT,L=L′+Lc,Lc为耦合部分,L'为各分区矩阵的严格下三角,上标T表示为矩阵的转置,当不分区时,L'=L,Lc=0,W=D/ω+L′,V=(2-ω)D/ω,则ω为松弛因子,0<ω<2,W、V为分解系数矩阵A过程中引进的两个算子;初值:x0,g0=Ax0-b,y0=W-1g0,其中x0为迭代求解初值,大多数情况下为0;g0表示初始剩余向量;y0初始处理x0用于后期迭代计算的向量算子;第k次迭代,从k=0开始,k表示迭代次数:δk=(yk,Vyk),如果δk<ε停止,否则继续如下循环:对δk规约求和,并广播给每一个处理器βk=δk/δk-1,如果k=0则βk=0zk=-Vyk+βkzk-1dk=W-Tzkuk=zk-Vdk如果myid>id,传递out点d值给其他分区,从其他分区接收d值给in点如果myid<id,从其他分区接收d值给in点,传递out点d值给其他分区,如果myid=id,不通讯,其中myid表示为当前进程号,id表示为除当前进程之外的其他进程号,sk=W-1uktk=(dk,zk+uk)对tk规约求和,并广播给每一个处理器τk=δk/tkxk+1=xk+τkdkyk+1=yk+τk(dk+sk)k=k+1表示k+1赋于k;上述迭代中,δk为第k次迭代计算的y与V·y的内积,用于判断是否达到给定精度ε要求;在共轭梯度法(PCG)中,βk为方向共轭系数,初始迭代时为0;dk为选取的接近精确值的搜寻方向;yk为处理每步x值的向量算子,τk为y的修正系数,zk、uk、sk和tk为迭代过程中第k次迭代引进的各项简化计算的向量算子,计算过程中,除了传递,每个分区都有计算出的δk和τk,这是整体的误差算子,无法传递,将每次迭代的δk和τk进行规约求和,并广播到各个处理器中,保证整体迭代精度,计算出的x即为每个结点水头值,进而根据达西定律求解流速得到区域内的渗流场。本专利技术所达到的有益效果:所有的处理器在独立进行各自分区的计算,计算过程中每次迭代到给定精度,通讯一次,采用对等式方式并行,每个进程是平等的,从而可以有效避免了主进程的限制,可以最大限度地发挥计算节点的能力,进行更大规模的并行计算;在有限元计算中有效提高了求解大型稀疏系数矩阵方程组的计算效率。附图说明图1本专利技术实施例中总体计算流程图;图2本专利技术实施例中区域分解4个分区图;图3本专利技术实施例中交界面单元信息传递简化示意图;图4本专利技术实施例中SSORPCG并行求解流程图。具体实施方本文档来自技高网...

【技术保护点】
1.一种有限元区域分解改进SSORPCG求解渗流场的并行方法,其特征在于,包括如下步骤:步骤1,建立求解模型,对该模型进行有限元离散,得到有限元模型,对单元和结点全部从1开始编号,得到整体编号,统计模型的结构信息,包括单元总数、单元信息和结点信息;步骤2,模型区域分解,根据进程数目或者需要用于计算的进程数P及处理器的拓扑结构,利用区域分解法对模型进行划分,得到P个分区和每个分区相对应的数据文件;步骤3,消息传递接口MPI初始化,确定进程的总数目,使得子区域与进程号一一对应,分别分配到P个进程中,在各个进程中形成分区内单元渗流传导矩阵和单元结点荷载列阵,将分区内所有单元集合组装两个矩阵,通过变分原理形成有限元支配方程;步骤4,调用改进的SSORPCG求解器并行求解各个未知结点的水头值,根据达西定律进而得到每个分区的渗流场;步骤5,合并P个分区的结果,得到整体模型的计算结果。

【技术特征摘要】
1.一种有限元区域分解改进SSORPCG求解渗流场的并行方法,其特征在于,包括如下步骤:步骤1,建立求解模型,对该模型进行有限元离散,得到有限元模型,对单元和结点全部从1开始编号,得到整体编号,统计模型的结构信息,包括单元总数、单元信息和结点信息;步骤2,模型区域分解,根据进程数目或者需要用于计算的进程数P及处理器的拓扑结构,利用区域分解法对模型进行划分,得到P个分区和每个分区相对应的数据文件;步骤3,消息传递接口MPI初始化,确定进程的总数目,使得子区域与进程号一一对应,分别分配到P个进程中,在各个进程中形成分区内单元渗流传导矩阵和单元结点荷载列阵,将分区内所有单元集合组装两个矩阵,通过变分原理形成有限元支配方程;步骤4,调用改进的SSORPCG求解器并行求解各个未知结点的水头值,根据达西定律进而得到每个分区的渗流场;步骤5,合并P个分区的结果,得到整体模型的计算结果。2.根据权利要求1所述的有限元区域分解改进SSORPCG求解渗流场的并行方法,其特征在于,所述单元总数、单元信息和结点信息具体如下:式中,φe(x,y,z)和φ(ξ,η,ζ)分别为整体笛卡尔坐标系(x,y,z)和局部笛卡尔坐标系(ξ,η,ζ)下的单元内任一点的水头,m为单元的结点个数,Ni为形函数,i=1,2,…,m,N为形函数矩阵,N=[N1N2…Nm],{φ}e为单元结点水头列阵,{φ}e=[φ1φ2…φm]T,T表示矩阵的转置。3.根据权利要求1所述的有限元区域分解改进SSORPCG求解渗流场的并行方法,其特征在于,所述步骤2,区域分解法在串行下完成对有限元网格进行分区,依据所需进程数P的需求完成分区,具体包括步骤:21)对步骤1中有限元离散后的模型进行单元分区和结点分区:整体有限元模型调用Metis函数库将单元分成P个区域,根据单元的分区确定其结点所属分区,将结点属于多个分区的点指定只属于一个分区;22)确定交界面单元和in/out点:如果其中一个单元的全部结点属于某个分区,则该单元才属于该分区,属于多个分区的单元就是交界面单元,交界面单元的内边界点为out点,外边界点为in点,对于两个相邻分区,交界面公共点互为in点和out点,对于in点来说,是没有自由度的,后期并行计算时需要进行in点和out点传值;23)对单元和结点重新编号:将上述每个分区内的单元和结点在该分区内进行重新编号,将每个分区的结点和单元编号映射到从1开始的正整数集上,得到在该分区内的局部编号,使得局部编号与整体编号具有相应的映射关系;24)分配边界和荷载信息。4.根据权利要求1所述的有限元区域分解改进SSORPCG求解渗流场的并行方法,其特征在于,所述单元内渗流水头传导矩阵是根据各分区内单元...

【专利技术属性】
技术研发人员:赵兰浩彭大伟齐慧君毛佳李同春邵琳玉
申请(专利权)人:河海大学
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1