首页/文章/ 详情

Python in Itasca software---UCS的参数化研究

1年前浏览1223

1 引言

使用Python进行数值分析最广泛的一个用途是参数化研究,例如【HYRCAN使用Python进行边坡稳定性的参数化分析】。而在Itasca软件中,通过FISH函数的传递可以更灵活地进行参数化研究,这样作的好处是能够最大程度地把Python代码与Itasca命令实现分离,便于修改和扩充代码的功能。下面讨论手册中一个例子《Uniaxial Compressive Strength of a Jointed Material Sample》。这个例子使用ubiquitous-joint模型计算带有节理面试件的单轴抗压强度,试件的单轴抗压强度是岩石材料和节理属性的函数,如下图所示。在此省略了所有的过程模拟过程,仅把注意力集中在参数化研究上。


2 参数化研究

在Python代码中,使用range改变节理的角度beta,把beta传递给UCS计算代码ucs_test,从而得到19组数据。








betas = range(0,91,5)for beta in betas:    it.command(f"""    model new    [global beta = {beta}]    program call 'ucs_test'    """)

使用的主要Python函数:

(1) gp.force_unbal_y

(2) it.gridpoint.list

(3) gp.in_group








ucs = []for beta in betas:    filesav = f"./ucs_{beta}.sav"    if os.path.exists(filesav):        it.command(f"model restore '{filesav}'")        sigmavs = [-gp.force_unbal_y() for gp in it.gridpoint.list() if gp.in_group("bottom")]        ucs.append(sum(sigmavs)/3.06*1e-3)

3 绘图

使用matplotlib绘制参数化研究得到的计算结果【FLAC3D与Python的集成 (2)---数据交换至Numpy】。


import matplotlib.pyplot as plt

对曲线形状的控制试验了如下四种可以使用的类型:





plt.plot(betas,ucs,"r*--")plt.plot(betas,ucs,"bD-.")plt.plot(betas,ucs,"go--")plt.plot(betas,ucs,"b*-")







plt.xlabel("Weak-plane angle [°]")plt.ylabel("Axial strength [kPa]")plt.xlim(0,90)plt.ylim(3,10)plt.grid()plt.title("UCS test using ubiquitous-joint model")plt.show()


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