首页/文章/ 详情

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

1年前浏览949

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 hynewmodel()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_array和fos_array的计算结果写入Excel文件,然后进行作图。



worksheet.write_column('A2', coh_array)worksheet.write_column('B2', fos_array)


来源:计算岩土力学
科普通用
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2022-11-27
最近编辑:1年前
计算岩土力学
传播岩土工程教育理念、工程分析...
获赞 147粉丝 1060文章 1782课程 0
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈