首页 > 行业资讯 > Python in Itasca software(PFC, 3DEC, FLAC3D)---Part 1

Python in Itasca software(PFC, 3DEC, FLAC3D)---Part 1

时间:2022-06-21 来源: 浏览:

Python in Itasca software(PFC, 3DEC, FLAC3D)---Part 1

原创 GeotechWu 计算岩土力学
计算岩土力学

GeotechWu

计算岩土力学(Geomechanics)是一个综合的岩土工程(Geotechnical)信息源,旨在与岩土工程领域的学生,研究人员和岩土工程师分享先进的岩土工程教育理念,岩土工程分析和设计方法。

收录于合集

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 it it.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 it it.command ( "python-reset-state false" ) it.command( """ model new model large-strain off zone create brick size 10 10 10 zone cmodel assign elastic zone property density 2950 young 12e9 poisson 0.25 cycle 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.0 for 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)

GeotechWu

赞赏二维码 微信扫一扫赞赏作者 赞赏

已喜欢, 对作者说句悄悄话
最多40字,当前共

  人赞赏

1 / 3

长按二维码向我转账

赞赏二维码

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

版权:如无特殊注明,文章转载自网络,侵权请联系cnmhg168#163.com删除!文件均为网友上传,仅供研究和学习使用,务必24小时内删除。
相关推荐