首页> 中国专利> 一种基于有限质点法的建筑群灾变模拟分布式计算方法

一种基于有限质点法的建筑群灾变模拟分布式计算方法

摘要

本发明涉及分布式数据处理领域,公开了一种基于有限质点法的建筑群灾变模拟分布式计算方法,所述方法包括以下步骤:S1、建筑群结构相关数据传输至主控制节点以进行分布式计算的准备和启动;S2、主控制节点将建筑群结构相关数据通过高速网络分发给集群中从节点上的执行进程;S3、从节点上的执行进程对建筑群结构相关数据执行质点位移和单元内力的计算;S4、从节点上的执行进程将计算结果提交回主控制节点,主控制节点对建筑群结构中每个质点的合力、合力矩进行更新。本发明以有限质点法作为计算基础,通过计算机集群分布式计算,有效实现大规模以及高效率的城市建筑群地震灾变模拟计算。

著录项

  • 公开/公告号CN113268807A

    专利类型发明专利

  • 公开/公告日2021-08-17

    原文格式PDF

  • 申请/专利权人 汕头大学;

    申请/专利号CN202110815719.0

  • 发明设计人 郑伟发;闫敬文;喻莹;彭鸿;

    申请日2021-07-19

  • 分类号G06F30/13(20200101);G06F17/11(20060101);G06Q10/06(20120101);G06Q50/08(20120101);G06F119/14(20200101);

  • 代理机构44102 广州粤高专利商标代理有限公司;

  • 代理人林丽明

  • 地址 515063 广东省汕头市大学路汕头大学

  • 入库时间 2023-06-19 12:14:58

说明书

技术领域

本发明涉及分布式数据处理领域,更具体地,涉及一种基于有限质点法的建筑群灾变模拟分布式计算方法。

背景技术

近年来,世界各地区地震频发,给生命和财产安全造成了极大的威胁。因此,科学预测城市建筑群地震破坏,发现抗震薄弱环节,减少地震损失,具有重要的科学意义和工程价值。为了解决城市建筑群结构地震灾变模拟问题,很多学者对城市建筑群大规模计算进行研究。现有技术的研究中多以GPU作为计算平台,以非线性多自由度剪切模型和多自由度弯剪耦合模型对建筑进行建模,采用非线性动力时程计算作为分析手段,进行城市区域震害分析的方法,取得良好的模拟效果,但此类方法受制于单台计算机计算能力的限制,当城市区域建筑群达到一定规模时,震害模拟无法高效率开展。

此外,目前在大规模结构模拟中大多数使用有限单元法作为计算理论,这种计算理论是以连续介质力学为基础,由单元刚度矩阵集成整体刚度矩阵,通过求解偏微分方程组得到结构的非线性效应,但是面对城市建筑群海量计算单元,刚度矩阵求解则变得非常困难,因此此类方法应对大规模计算效率比较低,而且存在“生死单元”、“网格划分”等缺陷影响计算的准确度。

发明内容

本发明旨在克服上述现有技术的至少一种缺陷(不足),提供一种基于有限质点法的建筑群灾变模拟分布式计算方法,用于实现大规模以及高效率的城市建筑群地震灾变模拟计算。

本发明采取的技术方案是,一种基于有限质点法的建筑群灾变模拟分布式计算方法,包括以下步骤:

S1、建筑群结构相关数据传输至主控制节点以进行分布式计算的准备和启动;

S2、主控制节点将建筑群结构相关数据通过高速网络分发给集群中从节点上的执行进程;

S3、从节点上的执行进程对建筑群结构相关数据执行质点位移和单元内力的计算;

S4、从节点上的执行进程将计算结果提交回主控制节点,主控制节点根据计算结果对建筑群结构中每个质点的合力、合力矩进行更新。

本发明中,通过计算机集群对建筑群结构数据进行分布式协同计算,计算机集群技术通过高速网络将多个计算机节点连接在一起形成一个高可用性、高性能、高扩展性的计算机集群系统,它通过将单个任务划分成多个子任务,利用多个处理器进行并行计算,从而能处理更大规模的数量,更快地获得计算结果。同时,本发明基于有限质点法作为计算理论,有限质点法以牛顿运动方程作为控制方程,不需要集成整体刚度矩阵,单元纯变形和内力计算彼此独立,具有良好的可并行性,因此本发明中可以通过多台计算机分布式协同计算实现有限质点法计算加速,从而提高计算规模和计算效率,实现有限质点法进行城市建筑群结构地震灾变大规模计算模拟。本发明中,针对分布式计算的求解系统主要可以包括有集群资源管理器、每个应用程序的主控制节点、运行作业任务的从节点和每个从节点上负责具体任务的执行进程,可以通过上述求解系统将计算机节点组织起来,根据城市建筑群结构的规模进行统一分配和调度,之后再根据分布式计算框架的计算逻辑,将数据和任务分发到各个计算机节点上进行计算,从而实现大规模高效率的城市建筑群地震灾变模拟计算。

进一步的,在步骤S1之前还包括步骤:

S01、对建筑群结构相关数据进行初始化,根据建筑群结构将建筑群离散为个

S02、根据建筑群规模计算需启动从节点的执行进程数量,将连通子图分布到集群,确定各质点的质量、初始外力、初始内力,初速度和初位移,确定质点分布与单元的连接关系,确定单元类型和单元的弹性模量、截面积参数。

进一步的,步骤S02中计算需启动从节点的执行进程数量公式如下:

其中

本发明中,在将建筑群相关数据传输至主控制节点进行分布式计算前,需要将建筑群相关数据进行初始化,也就是根据建筑群相关结构参数(楼层、高度、宽度、长度等)对建筑群进行质点及单元的离散,在进行城市建筑群结构构件模拟时,因为城市建筑群结构由各种建筑结构组成,主要以框架结构为主,构件之间可能存在弯矩、轴力和扭矩共同作用的情况,为从宏观上研究城市动力灾变,可以选用梁单元模型模拟城市建筑群结构构件。例如某城市建筑群有

由于不同城市建筑群结构规模变化比较大,从几万到上百万栋建筑的计算规模,因此本发明中的计算方法必须能满足大规模计算,同时还必须具有良好的可伸缩性,所以在进行建筑群数据初始化的时候之后,需要根据建筑群具体结构单元数量计算启动多少个从节点的执行进程进行分布式计算,以合理的维持整个系统的计算性能及计算资源的合理分配。

进一步的,步骤S3具体包括:

S31、令

S32、令时间步t=t

S33、完成单元内力计算,进行弹塑性分析,判断各单元是否达到断裂标准,如果达到断裂标准,则增加质点,更新连接关系,更新质点质量和质点惯性矩;

S34、确定各单元在

S35、处理结构约束处质点的内力;

S36、更新质点的等效外力;

S37、通过

S38、判断i是否等于n,如果

进一步的,所述步骤S31中采用以下公式计算质点

其中,

进一步的,所述步骤S31中先通过以下公式消去

计算得出质点

其中,

本发明中,对于建筑群结构分析时间内,任一质点

在上述公式中,

其中

在上述公式中,质点的内力来源于与质点相连的杆单元。杆单元仅发生轴向变形产生轴力,并将轴力反作用到与其相连的两个质点上。所以

质点的外力包括作用在结构节点上的集中外力,以及作用在结构构件上的集中外力和均布外力的等效外力。质点的外力可表示为:

上述公式中的

其中

可以采用显式积分法求解上述的运动方程,具体为:

在步骤S31分析运动过程的初始步

再将已知初始步的质点位移

其中,

由于S31计算得出质点

在上述步骤持续的进行质点位移计算以及坐标更新过程中,还需要持续判断各单元是否达到断裂标准,如果达到断裂标准,则增加质点,更新连接关系,更新质点质量和质点惯性矩。在本发明中,假定城市建筑群结构构件均为理想构件,构件断裂时,直接断开,断裂仅发生在单元两端并且为非自由端的质点上。因此,当单元满足下列任一条件时,构件发生断裂:

其中,

进一步的,在步骤S1以及S2之间还包括步骤:

S11、在主控制节点的存储器中分配一块用于全局计算的缓冲区,所述缓冲区用于存储建筑群结构的单元数据数组,所述单元数据数组用于存储每个单元当前时间步和上一时间步的初始位置、位移、合力和合力矩。

进一步的,所述步骤S11具体包括:在主控制节点内定义一种单元数据结构对象ElementInfo,ElementInfo中保留与质点相连的单元信息,以及单元两个质点的迭代开始时刻和迭代结束时刻的坐标、合力、合力矩和质量,所有的单元组成一个ElementInfo列表eList。

本发明中,建筑群结构的单元数据数组是在整个计算过程中处理和迭代的主要数据流,在计算执行过程中,单元的纯变形和内力计算是可以分布并行执行的,但质点的合力、合力矩的计算需要汇总质点关联的所有单元的内力,质点关联的不同单元可能会分布到不同的计算从节点上,因此质点的合力需要在主控制节点上进行计算,为了能在主控制节点上快速更新合力、合力矩,本发明在主控制节点的存储器中分配一块用于全局计算的缓冲区,用于存储建筑群结构的单元数据数组,具体为定义一种单元数据结构对象ElementInfo,ElementInfo中包括单元两个质点的迭代开始时刻和迭代结束时刻的坐标、合力、合力矩和质量等数据,建筑群结构数据经过初始化后,每一个单元的初始化数据均保存在ElementInfo对象中,所有的单元组成一个ElementInfo列表eList。在进行更新ElementInfo数据对象中的合力、合力矩的数值时,由于在初始化的时候保留了单元在列表中的位置,所以无需循环查找,从而提高了计算速度。

进一步的,所述计算方法还包括步骤S5:在主控制节点进行建筑群结构损伤评估,遍历eList列表读取被标识为断裂的单元,根据单元编号,计算断裂所在建筑结构和楼层。

与现有技术相比,本发明的有益效果为:

1、本发明使用有限质点法作为计算理论,以牛顿运动方程作为控制方程,其中单元纯变形和内力计算彼此独立,不需要进行整体刚度矩阵计算,具有良好的可并行性;

2、本发明通过计算机集群分布式协同计算实现有限质点法计算加速,根据建筑群结构规模以及集群中具体节点执行进程的处理能力进行合理计算资源分配和调度,从而大大提高计算规模和计算效率;

3、本发明在主控制节点设置存储建筑群结构单元数据数组的缓冲区,存储每个单元各时间步的初始化数据,有利于快速查找更新质点数据,提高计算速度。

附图说明

图1为本发明方法流程图;

图2为本发明实施例1中分布式求解系统结构示意图;

图3为本发明实施例2中分布式求解系统结构及管理流程图;

图4为本发明实施例2中分布式计算程序输入方式示意图;

图5为本发明实施例2中地震灾变模拟图一;

图6为本发明实施例2中地震灾变模拟图二;

图7为本发明实施例2中单机和分布式计算时间对比图。

具体实施方式

本发明附图仅用于示例性说明,不能理解为对本发明的限制。为了更好说明以下实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。

实施例1

如图1所示,本实施例提供一种基于有限质点法的建筑群灾变模拟分布式计算方法,包括以下步骤:

S1、建筑群结构相关数据传输至主控制节点以进行分布式计算的准备和启动;

S2、主控制节点将建筑群结构相关数据通过高速网络分发给集群中从节点上的执行进程;

S3、从节点上的执行进程对建筑群结构相关数据执行质点位移和单元内力的计算;

S4、从节点上的执行进程将计算结果提交回主控制节点,主控制节点对建筑群结构中每个质点的合力、合力矩进行更新。

如图2所示,本实施例中,针对分布式计算的求解系统主要可以包括有集群资源管理器(Cluster Manager)、每个应用程序(Application)的主控制节点(Driver)、运行作业任务的从节点(Worker Node)和每个从节点上负责具体任务的执行进程(Executor),每个执行进程里有若干任务(Worker Node)。其中主控制节点(Driver)可以完成包括预处理、后处理以及求解过程的初始化、质点合力、合力矩更新,工作节点(Worker)上的执行进程(Executor)完成包括单元的纯变形、单元内力、运动方程求解等计算。

进一步的,在步骤S1之前还包括步骤:

S01、对建筑群结构相关数据进行初始化,根据建筑群结构将建筑群离散为个

S02、根据建筑群规模计算需启动从节点的执行进程数量,将连通子图分布到集群,确定各质点的质量、初始外力、初始内力,初速度和初位移,确定质点分布与单元的连接关系,确定单元类型和单元的弹性模量、截面积参数。

进一步的,步骤S02中计算需启动从节点的执行进程数量公式如下:

其中

进一步的,步骤S3具体包括:

S31、令

S32、令时间步t=t

S33、完成单元内力计算,进行弹塑性分析,判断各单元是否达到断裂标准,如果达到断裂标准,则增加质点,更新连接关系,更新质点质量和质点惯性矩;

S34、确定各单元在

S35、处理结构约束处质点的内力;

S36、更新质点的等效外力;

S37、通过

S38、判断i否等于n,如果

具体的,所述步骤S31中采用以下公式计算质点

其中,

进一步的,所述步骤S31中先通过以下公式消去

计算得出质点

其中,

本实施例中,对于建筑群结构分析时间内 ,任一质点

在上述公式中,

其中

在上述公式中,质点的内力来源于与质点相连的杆单元。杆单元仅发生轴向变形产生轴力,并将轴力反作用到与其相连的两个质点上。

质点的外力包括作用在结构节点上的集中外力,以及作用在结构构件上的集中外力和均布外力的等效外力。质点的外力可表示为:

上述公式中的

其中

采用显式积分法求解上述的运动方程,

由于S31计算得出质点

在上述步骤持续的进行质点位移计算以及坐标更新过程中,还需要持续判断各单元是否达到断裂标准,如果达到断裂标准,则增加质点,更新连接关系,更新质点质量和质点惯性矩。在本发明中,假定城市建筑群结构构件均为理想构件,构件断裂时,直接断开,断裂仅发生在单元两端并且为非自由端的质点上。因此,当单元满足下列任一条件时,构件发生断裂:

其中,

进一步的,本实施例在步骤S1以及S2之间还包括步骤:

S11、在主控制节点的存储器中分配一块用于全局计算的缓冲区,所述缓冲区用于存储建筑群结构的单元数据数组,所述单元数据数组用于存储每个单元当前时间步和上一时间步的初始位置、位移、合力和合力矩。

进一步的,所述步骤S11具体包括:在主控制节点内定义一种单元数据结构对象ElementInfo,ElementInfo中保留与质点相连的单元信息,以及单元两个质点的迭代开始时刻和迭代结束时刻的坐标、合力、合力矩和质量,所有的单元组成一个ElementInfo列表eList。

进一步的,所述计算方法还包括步骤S5:在主控制节点进行建筑群结构损伤评估,遍历eList列表读取被标识为断裂的单元,根据单元编号,计算断裂所在建筑结构和楼层。

实施例2

本实施例的具体计算方法步骤与实施例1相同,区别在于,本实施例中使用具体的Spark作为分布式并行计算框架进行计算,采用YARN作为集群资源管理器,具体分布式计算系统结构及管理流程图如图3所示,用户首先通过Spark Yarn Client提交城市建筑群计算任务,Resource Manager接收到任务后在集群中选择一个Node Manager分配Container,并在Container中启动Application Master进程,在Application Master中初始化SparkContext, 然后Application Master向Resource Manager申请Container,申请到Container后通知Node Manager在获得的Container中启动Executor进程。SparkContext分配Task给Executor,Executor发送运行状态给Driver。Spark系统结构分别由Application、Executor、Task、Job和Stage构成。Application是用户编写的Spark应用程序;Executor是运行在工作节点(Worker Node)上的一个进程,负责运行任务;任务(Task)是运行在Executor上的工作单元;Job是一个作业,包含多个弹性分布式数据集(ResilientDistributed DataSet,RDD)及作用于相应RDD上的各种操作;阶段(Stage)是作业的基本调度单位,一个作业(Job)由多个阶段(Stage)构成,一个阶段由多个任务(Task)组成。

在本实施例中,首先需要根据建筑群结构单元数量计算启动多少个Executor进行分布式计算。Executor的计算能力受计算机的CPU频率,分配给Executor的计算机核和内存有关。因此向Resource Manager申请资源时,可根据以下公式计算城市建筑群结构计算时所需节点数

其中

本实施例中,根据反复实验结果,按每个Executor按 6G内存和8个CPU核进行配置,每10000个单元最佳需要启用一个Executor,可以维持建筑群结构整体计算性能。

在Spark 中的RDD 就是一个不可变的分布式对象集合,每个RDD 都被分为多个分区,这些分区运行在集群中的不同节点上。RDD 可以包含Python、Java、Scala中任意类型的对象,甚至可以包含用户自定义的数据对象。在计算程序执行过程中,单元的纯变形和内力计算是可以分布并行执行的,但质点的合力、合力矩的计算需要汇总质点关联的所有单元的内力,质点关联的不同单元可能会分布到不同的计算节点上,应此质点的合力需要在主控制节点上进行计算。为了能在主控制节点上快速更新合力、合力矩,本实施例定义一种单元数据结构ElementInfo,ElementInfo包括单元两个质点的迭代开始时刻和迭代结束时刻的坐标、合力、合力矩和质量等数据。

本实施例中,建筑群结构的建筑特性,例如弹性模量、密度等作为全局变量存放在Driver主控制节点中。建筑群结构经过初始化后,每一个单元的初始化数据均保存在ElementInfo对象中,所有的单元组成一个ElementInfo列表eList。ElementInfo列表是分布式数据集RDD的数据来源。

本实施例中,进行的多种计算,具体包括:

1、单元内力计算。单元的内力与单元的纯变形相关,单元的内力求解需要处理运动过程中不断改变的局部坐标系和局部坐标系的空间转动。单元的内力求解相互独立,本文在求解过程中,单元的内力求解分布在各个不同的Executor上,每个Executor计算完成后将数据传回Driver。求解过程中具体程序代码如下:

2、主节点数据更新。建筑群结构中的分区数据在Executor上执行完后,通过Collect()操作,将分散在所有从节点上的RDD数据返回Driver,Driver根据单元所在的索引更新数据。具体程序代码如下:

3、内力集成。程序开始初始化时在eList列表中的ElementInfo数据对象中,生成与质点相连的单元信息,保留了质点A、B关联的质点所对应单元的在列表中的位置。对每个质点,依次提取与该质点相连单元

4质点运动方程求解

质点运动方程求解在Executor完成,遍历每个单元,根据实施例1中通用运动方程公式,计算t时刻质点的在全局坐标系下的位置和位移,然后根据断裂标准判断单元是否满足断裂情况,如果满足断裂条件,删除该质点关联的单元,并将数据更新到eList,具体程序代码如下:

5建筑群结构损伤评估

建筑群结构损伤评估在Driver完成,程序遍历eList列表读取被标识为断裂的单元,根据单元编号,计算断裂所在建筑结构和楼层,具体程序代码如下:

在本实施例中,利用上述系统及方法进行具体城市地震灾变模拟实例,随机生成建筑数量为100栋的城市建筑群结构,每栋均采用钢框架结构进行模拟,每栋楼5~10层,层高3~5m,长度3~5m,宽度3~5m。所有构件均采用材料性质相同的薄壁圆管,外径D=0.194m,内径d=0.176m,截面惯性矩I=2.24308E-05,材 料 密 度

在本实施例中,还进行了Spark分布式平台和单机平台计算性能对比分析,分析过程如下:

(1)随机生成不同楼层、长度、宽度和高度的框架结构建筑,建筑数量为100~1000栋,采用梁单元进行模拟,单元长度为1米;

(2)采用广泛使用的EI Centro地震动时程记录进行对比分析;

Spark分布式平台和单机平台分析过程中具体配重参数如下表:

具体的,迭代100步时,单机和Spark分布式计算所需的时间如图7所示。从图7中可以发现,Spark分布式平台和单机平台,CPU的计算时间与建筑的数量基本上是线性关系。Spark分布式计算计算速度明显高于单机的计算速度,速度约为单机计算速度的4倍,因为分布式计算5个节点中1个作为主节点,4个作为从节点,主节点用于任务调度,不参与计算任务。当建筑物数量大于1500栋时,单机平台由于计算资源不足,出现内存溢出,无法继续计算,而Spark分布式平台仍然可以计算,因此显然Spark分布式平台具有更好的计算扩展能力。

显然,本发明的上述实施例仅仅是为清楚地说明本发明技术方案所作的举例,而并非是对本发明的具体实施方式的限定。凡在本发明权利要求书的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号