首页/文章/ 详情

使用Python自动化Plaxis的命令流

2年前浏览2042

1 引言

数值模拟软件越来越多地使用Python脚本自动化任务处理【个人观点---为什么数值模拟优先使用Python而不是MATLAB】, 主要用于处理重复性的动作、结构化的标准报告以及需要超越程序对数据访问的限制,其工作机理是每一条Python脚本被"翻译"成等效的操作命令执行程序任务。典型的软件有Plaxis2D, Plaxis3D, FLAC3D, 3DEC, PFC2D, PFC3D, DIANA【DIANA---梁受力分析流程[Beam Element] (Part 1)】和Abaqus。


本文是对以前三篇文章的更新:《Python 与 PLAXIS 的集成方法》;《使用Python自动化执行Plaxis的命令流》;《测试PLAXIS与Python通讯方式的新变化》。由于这三篇文章是两年前写的,两年过去了,一些命令发生了改变,致使原来的代码不能运行,而运行环境也发生了变化,因此重新写了这个题目,更新到目前的最新状态。


2 连接方法

与Itasca软件的连接方法稍有不同,Plaxis和Python之间的通讯是通过配置服务器来实现的,也就是下图菜单中所示的"Configure remote scripting server"对话框,通过端口port和密码password连接到localhost服务器。Python用的是3.7.4, Notebook用的是5.7.4, IPython用的是7.2.0, 这些程序的默认版本都不是最新的,不过可以定制使用其它版本。

当连接到服务器后,会产生两个对象:s_i---应用服务器对象(application server); g_i---全局环境对象(the global environment),所有的输入(Input)操作都是基于这两个对象展开的,例如:




s_i.new()g_i.borehole(0) # for 3D: g_i.borehole(0, 0)g_i.soillayer(2)

下面以Plaxis 2D为例简要描述其使用方法,Plaxis 3D的操作命令与2D基本相同。


3 计算流程

如果令borehole_g = g_i.borehole(0),可以检查borehole的属性。使用print(type(borehole_g))发现这是一个类。可以使用print(dir(borehole_g))和print(borehole_g.info())检查borehole的所有属性。下面所示的是一个简单的计算流程。




















from plxscripting.easy import *s_i, g_i = new_server('localhost', 21403, password = 'password')s_i.new()g_i.SoilContour.initializerectangular (0,0,10,10)g_i.borehole(0)g_i.soillayer(10)material = g_i.soilmat()material.setproperties("SoilModel", 1, "gammaUnsat",16,"gammaSat",20,"Gref", 10000)g_i .Soils[0].Material = materialg_i.gotostructures()g_i.lineload((3,0),(7,0))g_i.gotomesh()g_i.mesh(0.2)g_i.gotostages()phase0_s = g_i.InitialPhasephase1_s = g_i.phase(phase0_s)g_i.LineLoads[-1].Active[phase1_s] = Trueg_i.calculate()


4 Python命令流

Plaxis 2D共包含252个Python命令,现在已经把这些命令合并到一个数据库中,从而能够快速查询和产生出新的命令流。此外,Plaxis 2D的知识库逐渐集成在这个数据库中。下一步,将增加Plaxis 3D的Python命令流,最终成为一个学习宝典。

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