首页/文章/ 详情

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

1年前浏览1137

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年前
            计算岩土力学
            传播岩土工程教育理念、工程分析...
            获赞 138粉丝 982文章 1776课程 0
            点赞
            收藏
            未登录
            还没有评论
            课程
            培训
            服务
            行家
            VIP会员 学习 福利任务 兑换礼品
            下载APP
            联系我们
            帮助与反馈