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

2022年7月9日 400点热度 0人点赞 0条评论

图片

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()

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

root

这个人很懒,什么都没留下

文章评论