Pyansys-PyMAPDL基本语法01-APDL原生命令流改写格式

前面我们给大家介绍了下Pyansys的环境配置,今日这篇文章我们具体讲讲其中的PyMAPDL模块基本语法,供大家参考。

前面的文章链接:

https://blog.csdn.net/weixin_42305372/article/details/159459927?spm=1011.2124.3001.6209https://blog.csdn.net/weixin_42305372/article/details/159459927?spm=1011.2124.3001.6209

所谓PyMAPDL基本语法,无非就是一个改装的过程,也即是将原有的APDL写法改造成为可供PyMAPDL识别的这样一个过程。

在PyMAPDL的官方文档里面有一定的演示,但个人觉得不是特别系统,同学们可自行去查看一二。

接下来我们就从基本的改装开始说起。

1、基本转换格式

APDL命令转为函数调用形式,方便参数从Python主程序传入。

例如APDL命令-K,100,25,26,27:这个命令定义了编号为100的关键点,三个方向的坐标分别为25,26,27

PyMAPDL实现有三种形式:

1)-mapdl.k(100,25,26,27):这是最基础的形式,基本上所有的APDL命令都遵循这种改造模型,也即首先实例化一个PyMAPDL,然后后面跟具体的APDL命令,括号里面输入具体的参数。参数的位置顺序和原生APDL命令的完全一致。

2)-mapdl.run("K,100,25,26,27"): 采用run命令直接运行原生APDL命令,针对于无需参数输入的情况。

3)-mapdl.k(npt=100, x=25,y=26,z=27): 除了必须按位置顺序输入外,还可通过指定参数名称以及值得方法进行,参数名称和APDL命令帮助里面得参数名称保持一致,这种形式适用于APDL命令参数较多,而只需输入特定位置的参数。

2、批量命令流运行方法

我们使用PyMAPDL的一个主要原则便是参数化的部位我们需要按上述基本转换格式进行转换方便参数输入,而针对大部分无任何参数传入的运行操作,我们不需要改造,直接采用批量命令流运行方法。

例如如下所示为一个网格划分的基本操作,操作过程我们不需要参数化,因而对于这段命令流,我们可采用批量运行的方法,速度更快:

原生APDL命令:

复制代码
allsel,all
meshape,0,3d
meshkey,1,3d
esize,BB/2
vmesh,all

改装后的:

复制代码
cmds="""
allsel,all
meshape,0,3d
meshkey,1,3d
esize,BB/2
vmesh,all
"""
mapdl.input_strings(cmds)

上面可见,基本思路无非就是将原生APDL的一大串命令存为一个字符串,然后用input_strings命令运行这段字符串即可。

3、带特殊符号的命令使用

在部分原生APDL命令中,部分命令带有一定的特殊符号,例如/Solu前面就带了一个斜杠,针对这部分命令,如果完全忽略原来的符号,可能会和既定的一些API名称冲突,故而官方进行了一些转换。

/=Slash

*=star

/solu正确的PyMAPDL语法应该为mapdl.slashsolu()而不是mpadl.solu()

水哥建议同学们无需去刻意掌握这些写法,直接run即可,方便快捷。

也即/solu直接改写为mapdl.run("/solu")。

本期的基本语法我们先说到这里,下期我们说下关于逻辑和宏文件的基本转换。

若有同学需要系统性的学习PyANSYS-PyMAPDL,可参考下面这篇文章:

https://fscae.com/8099/https://fscae.com/8099/

相关推荐
用户9562562542912 小时前
跟做:Firecrawl 单页转 Markdown 再丢进沙箱总结
python·api
威哥爱编程13 小时前
模拟面试智能体开发实战 02:回答等半分钟,谁还愿意练?把服务端和流式输出搭起来
python·agent·harmonyos
威哥爱编程13 小时前
模拟面试智能体开发实战 01:面试挂了都不知道挂在哪?用 Python 给自己造一个随叫随到的 AI 面试官
python·agent·harmonyos
2601_9679801113 小时前
Python行情API量化 02:顺序拉 20 要 2 秒?并发批量把时间压到 0.5 秒
python·api·限流·并发·量化
伞伞悦读13 小时前
【第81期】特征缩放怎么选:标准化、MinMax 与 Robust 的原理、泄漏对照和完整实验
人工智能·python·深度学习·机器学习
新*14 小时前
从一段 WebSocket 代码聊开:bytes 不是 zlib、binaryType 决定一切,15MB 大消息的零拷贝优化
javascript·python·websocket·性能优化·blob·zlib·arraybuffer
卷无止境16 小时前
mathmodel-figure-templates 以及两个上手案例
后端·python
锋行天下16 小时前
服务器 Python 2.7 装不了 langgraph-cli?用本地生成 Dockerfile 曲线救国
人工智能·后端·python
一条大祥脚16 小时前
深入理解 PyTorch FlexAttention:从 Score Mod 到 Mask Mod 的稀疏加速之道
人工智能·pytorch·python·注意力机制·flex attention·可编程注意力
2601_9679801117 小时前
Python自动化办公:模块、库与样式调整教程
python·excel·自动化办公·openpyxl·样式调整