首页/文章/ 详情

Python in Itasca software---Part 1

1年前浏览1971

1 引言

自从5.0版本开始,Itasca的旗舰软件PFC、FLAC3D和3DEC逐渐嵌入了Python语言,之所以想起写这个题目,是由于在最近的文章【答复同学提问---如何在离散断裂网络DFN中计算RQD指标 】遇到了一点儿问题,因此不得不对Itasca软件中的Python模块作了重新回顾。在目前发展的版本中,Python模块主要用于Itasca的3个三维软件PFC3D、3DEC和FLAC3D。


2 Itasca模块

Itasca软件目前使用的Python版本是V3.6.1,IPython使用的版本是V6.2.1,尽管使用的都不是最新的版本,但不影响计算,因为我们只用到Python语言中非常小的一部分功能。当安装Itasca软件时,同时也安装了matplotlib, numpy, scipy, pyside四个Python模块。Python比Itasca软件内置的FISH语言操作灵活,功能多,例如在数值模拟时经常用到的方案优化和插值和数据可视化,使用Python比使用FISH的效率高,甚至可以使用pyside自定义用户界面。此外,Python的执行速度比FISH快,当然执行速度最快的是NumPy【Numpy与PFC的数据交换---ballarray; FLAC3D与Python的集成 (2)---数据交换至Numpy】,

Itasca模块建立了Python语言与Itasca软件之间的联系,包含了Itasca软件不同的类,例如zones, blocks, gridpoints, structural elements, balls, contacts, DFNs等,同时也包含了一些静态函数,例如计算单元数目,查找某一变量的类型等。使用Itasca模块的通用代码如下:



import itasca as itit.command ("python-reset-state false")

在导入Itasca模块之后,便可以:

(1) 在Python中执行Itasca命令;

(2) 在Python中获取或设置FISH变量;

(3) 在执行循环的过程中调用Python函数;


3 模型状态

Itasca软件的model new命令可以清除当前运行数据的所有状态,而model save和model restore可以保存和恢复模型的所有数据,但Python状态与模型状态是分离的,这意味着当使用model new 或model restore命令时,不能重新设置Python的变量值,它们驻留在内存中,同时,Python变量值也不能保存到sav文件中,Python的执行函数独立于模型状态。  


4 FLAC3D示例

下面演示了一个简单的示例。

(1) 调用itasca命令












import itasca as itit.command ("python-reset-state false")it.command("""model newmodel large-strain offzone create brick size 10 10 10zone cmodel assign elasticzone property density 2950 young 12e9 poisson 0.25cycle 1""")

(2) 单元性质操作






z_count = it.zone.count()z = it.zone.find(1)z_pos = z.pos()z_id = z.id()print("zone", z.id(), "with model", z.model(), "at", z.pos())





volume_sum = 0.0for z in it.zone.list():    volume_sum += z.vol()assert volume_sum == z.vol() * it.zone.count()







z = it.zone.near((5,5,5))z.pos()z.props()z.props()['bulk']z.prop('shear')z.set_prop('bulk', 8.5e9)

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