投稿问答最小化  关闭

万维书刊APP下载

HYRCAN使用Python进行边坡稳定性的参数化分析

2022/10/14 16:02:59  阅读:293 发布者:

1 引言

Python语言运用在数值模拟中的一个非常重要的功能是进行参数化分析,本质上是利用Python语言的循环函数自动化多个计算。HYRCAN是一个免费的LEM边坡稳定性分析软件【HYRCAN---一个免费的边坡稳定性分析框架(极限平衡法LEM)】,它能够使用JS语言进行自动化分析【HYRCAN脚本描述以及与SLIDE计算结果比较】。在最新的V2.0版本中,HYRCAN增加了使用Python调用JS命令的功能。下面简要描述如何在HYRCAN中使用Python进行参数化分析。

2 hyrcan模块

HYRCAN模仿了Itasca软件中itasca模块的编程方法,因此在Itasca软件中发展的编程技巧完全可以用于HYRCAN

import hyrcan as hy

newmodel()

set('failureDir','r2l')

extboundary(0,0,130,0,130,50,80,50,50,30,0,30,0,0)

matboundary(0,20,130,35)

matboundary(56,34,130,42)

definemat('ground','matID',1,'matName','Sand','uw',18,'cohesion',5,'friction',38)

definemat('ground','matID',2,'matName','Clay','uw',17,'cohesion',57,'friction',0)

assignsoilmat('matid',2,'atpoint',85,30)

definelimits('limit',20,65,'limit2',80,100)

set('Method','BishopSim','on')

""")

hyrcan模块有如下函数:

(1) hy.command---执行JS命令

(2) hy.min_fos---取出安全系数。分析方法可以是 "Bishop Simplified", "Janbu Simplified", "Spencer", "GLE/Morgenstern-Price" ;或者使用短语 "BishopSim", "JanbuSim", "Spencer", "GLE/M-P"

(3) hy.surf_id_list---基于设定的类型返回全部或有效的滑动面

(4) hy.surf_fos---返回特定滑动面id和计算方法的安全系数

(5) hy.surf_center---返回特定滑动面id的圆中心

(6) hy.surf_radius---返回特定滑动面id的半径

3 参数化分析

下面对粘土层的粘结力进行参数化分析,变化范围使用数组coh_array = [60,70,80,90]定义,对每个粘结力值循环进行安全系数计算。下面所示的代码并不是最佳的写法,可以使用Python强大的循环函数写出更职业化的代码。

fos_array = [-1,-1,-1,-1]

coh_array = [60,70,80,90]

cmd = "definemat('ground','matID',2,'matName','Clay','uw',17,'cohesion',{coh},'friction'

,0)"

for i in range(0, 4):

    hy.command(cmd.format(coh=coh_array[i]))

    hy.command("compute('silence')")

    fos_array[i] = hy.min_fos('BishopSim')

使用XlsxWriter模块把数组coh_arrayfos_array的计算结果写入Excel文件,然后进行作图。

worksheet.write_column('A2', coh_array)

worksheet.write_column('B2', fos_array)

转自:Ai尚研修科研技术动态”微信公众号

如有侵权,请联系本站删除!


  • 万维QQ投稿交流群    招募志愿者

    版权所有 Copyright@2009-2015豫ICP证合字09037080号

     纯自助论文投稿平台    E-mail:eshukan@163.com