abaqus运行python脚本怎样提高速度? 1000

浏览:2388 回答:17
  1. 针对本模型划分了55万个网格,通过python脚本遍历模型数据库所有的节点信息,包括节点编号和节点坐标,分类存储在对应字典中。

  2. 电脑CPU是4.68GHz,查看任务处理器发现CPU占用只有10%左右,内存占用了16GB的50%左右。

  3. 查看调试器,发现程序在遍历模型数据库的节点信息段重复循环。

  4. 运行abaqus自带的Abaqus PDE编译器,本机没有安装除了pycharm之外的编译软件,执行速度比较慢,请问有没有程序段可以调用电脑更多运算能力的语句或者其他方法提高运算速度呢?

    PS:脚本已经在简单模型中运算成功。


邀请回答 我来回答

全部回答

(8)
默认 最新
better2
你通过pde编写并且运行回特别慢的,建议使用编译器编写保存为. py文件,然后通过文件—运行python脚本来运行,可大大提高脚本运行速度。
2021年4月8日
已采纳 评论 2 点赞 2
zhw00747

python 还有个bulkDataBlocks方法 比逐个单元循环操作应该会快一些 此外py文件打包成exe或者pyc应该也会快 再此外 python多线程应该也可以针对多个循环段代码进行效率提升 最后 C++才是最快的 但学习成本比较高

2022年7月14日
已采纳 评论 点赞 1
素钗_XFEM
虽然我怀疑你这1000金币是在钓鱼执法,但还是回答一下。结果数据中的很多信息可能并不是你需要的,所以你可以通过一些参数对单元和节点进行识别和筛选,找到真正对你有用的信息生成一个集合。再对这个集合进行遍历和计算,还有就是语法结构上尽量简单点,我之前有一个例子多级循环嵌套改成多个单一循环,也能节约计算量。
2021年2月27日
已采纳 评论 2 点赞 1
降维打击
如果没有必要最好不要用字典,用数组就能解决问题,因为结点编号一般是连续的,而且和比对应索引号大1
2021年2月27日
已采纳 评论 1 点赞 1
降维打击
速度慢可能是脚本过多使用abaqus自带查询函数引起的,其实abaqus的结点信息是用数组存放的,查询的话,就和访问一个数组一样快捷,疑惑你用的什么命令?
2021年2月27日
已采纳 评论 1 点赞 1
参数化设计-Zn

如果输出.inp文件,然后通过Python读取.inp文件提取节点信息可能会快一点。

在Python里可以采用多线程和多处理器的方法来提取。

2022年1月3日
评论 点赞
dwg_2931
abaqus Python访问模型节点是按照一个路径顺序的,N=mdb.models.parts.elements.nodes,如果循环里是这样写的,那你会每循环一次就访问一遍所有的结构,改成中间变量,P=mdb.models.parts , E=P.elements , N=E.nodes,把能放到循环外的中间变量尽量放到循环外,这样就能减少访问的路径,会直接从中间变量提取数据,比从头mdb开始查找要快。
2021年12月17日
已采纳 评论 1 点赞
sakura_3944
如果可以只在某一区域遍历,可以将其设为集合来遍历,
2021年8月10日
已采纳 评论 2 点赞

没解决?试试专家一对一服务

换一批