首页/文章/ 详情

使用Python定义和操作材料参数

1年前浏览527

1 引言

在正确配置Python的服务器【使用Python自动化Plaxis的命令流】和远程代码编辑器【Plaxis使用Spyder替换默认编辑器SciTE的方法】后,便可以在Spyder中直接写代码来运行Plaxis程序。本文讨论了如何使用Python定义和操作材料参数,这是对Plaxis笔记的改进[1591]。

2 定义材料

定义材料有两种方法,第一种方法使用直接带参数的g_i.soilmat():










g_i.soilmat("Identification", "Sand", "SoilModel", "Hardening Soil", "gammaUnsat", 17, "gammaSat", 20, "E50Ref", 40000, "cRef", 0.1, "phi", 32)

第二种方法首先使用g_i.soilmat()实例化一个材料,然后使用setproperties方法定义参数:











material = g_i.soilmat()material.setproperties("Identification", "Sand", "SoilModel", "Hardening Soil", "gammaUnsat", 17, "gammaSat", 20, "E50Ref", 40000, "cRef", 0.1, "phi", 32)

材料模型、模型编号以及最小的输入参数如下:

(1) Linear elastic---1, ERef

(2) Mohr-Coulomb---2,ERef, cRef or phi or cInc

(3) Hardening Soil---3, E50Ref, EURRef, cRef or phi or cInc

(4) HS small---4, E50Ref, EURRef, cRef or phi or cInc, gamma07, G0Ref

(5) Soft Soil---5, lambdaModified, kappaModified, cRef or phi

(6) Soft Soil Creep---6, lambdaModified, kappaModified, cRef or phi

(7) Jointed Rock---7, ET, EN, GNT, c1 or phi1

(8) Modified Cam-Clay---8, lambda ( = lambdaModified * (1 + e) ),  kappa ( = kappaModified * (1 + e) ), M for interface: CInter or PhiInter

(9) NGI-ADP---9,  GURsUARation, sUARef, sUDSSsUARation

(10) Hoek-Brown---10, Erm, AbsSigmaCI, mi

(11) Sekiguchi-Ohta (Inviscid) (2D only)---11, lambdaModified, kappaModified for interface: CInter or PhiInter

(12) Sekiguchi-Ohta (Viscid) (2D only)---12, lambdaModified, kappaModified for interface: CInter or PhiInter

(13) Concrete---13, E28, phiMax

(14) UBC3D-PLM---14, kBeModified, kGeModified, kGpModified, phicv, sigT, N160

(15) UDCAM-S---15, GMaxtauCRatio, tauCRef, tauDSStauCRatio

(16) User defined soil model---100, UserDLLName, UserModel for interface: EoedInter, CInter or PhiInter


3 操作参数

无论使用哪一种定义方法,最终材料参数保存在Materials类中。使用类的属性即可提取出材料参数,例如:



get_parameters = g_i.Materials[-1]print(get_parameters.Identification)

材料模型返回的参数是模型编号,例如上面例子中的返回值是3。

如果有多个土层,使用下面的代码获取其名称:


Soil_list = [mat.Name for mat in g_i.Soils]

Soil_list = [mat.Name.value for mat in g_i.Materials[:] if mat.TypeName.value == 'SoilMat']


materialcommand方法

materialcommand()方法是V22中引入的一个功能,使用这个方法可以生成Plaxis命令,定义材料及其属性。


material_command = g_i.Materials[-1].materialcommand()


5 info方法

info方法可以列出对象的所有命令和属性:


print(g_i.info(g_i.Materials))

Materials

Commands: echo, commands, rename, multiply, info


print(g_i.info(g_i.Materials[-1]))

Sand

Commands: echo, commands, rename, multiply, info, setproperties, getmetadata, setmetadata, materialcommand, setcolour, save

Attributes: Name, TypeName, Comments, UserFeatures, Metadata, Colour, Identification

一个更详细的对象列表是使用g_i.tabulate方法:


g_i.tabulate(g_i.Materials[-1])

不过这个方法只能显示出材料属性,但不能对其进行操作,因为这个值的返回类型是"str", 如果设计成dict对象就好了[ex3.py]。


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