许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  Abaqus入门加上子程序和python二次开发,交流帖汇总

Abaqus入门加上子程序和python二次开发,交流帖汇总

阅读数 2
点赞 0
article_banner

最近新上手abaqus子程序,没有人带,自己瞎琢磨,碰了不少壁;在闲鱼上淘到的umat和vumat子程序放在这里,供各位研究生er使用,也欢迎大家交流哇!

链接:https://pan.baidu.com/s/1dMQHzT35LSYSjsvYbgLwqg

提取码:297o

上述压缩包里面的子程序,我大概看懂了一部分,有新手可以在评论区交流。

坐标:bit力学系

Abaqus入门加上子程序和python二次开发

abaqus.bat -j jobname user=sub.f interactive,命令行敲完回车,等了三秒弹出一行“error during compilation”,连log都没生成。

环境配齐是第一步,Abaqus 2021对应VS2019加Intel oneAPI 2021,装完在cmd里跑abaqus verify -user_std,全pass才算通,VS版本错一个minor号链接器就找不到libifcoremd.lib,oneAPI装的时候勾选Fortran和C++两个组件,默认只勾C++,子程序编译永远过不了。Python这边Abaqus自带2.7解释器,路径在installation_dir\tools\SMApy\python2.7,别用系统装的3.x,import abaqus直接报No module named abaqus,想写新语法就用rpy脚本外部调用,或者干脆上pyabq这种第三方封装库,Ansys的ACT框架倒是原生支持Python3,Abaqus这边生态还卡在2.7尾巴上。

子程序入口UMAT、VUMAT、USDFLD、UELMAT这几个最常用,UMAT里STATEV数组维度必须在DEPVAR里声明,少写一个分量结果全乱,应力更新写在DDSDDE矩阵之后,雅可比不对称收敛会慢一半甚至发散,VUMAT没有DDSDDE,显式积分自己算应力增量,时间步长由稳定条件控制,写错了不会报错只会算出离谱的数。调试的时候把write(,*)塞进循环,输出重定向到msg文件,比开debugger快十倍,gfortran编译选项加-g -O0才能断点,oneAPI默认优化级别O2,变量被优化掉watch窗口全是

去年七月调一个蠕变子程序,办公室空调坏了三天,室温三十四度,风扇吹出来的全是热风,旁边同事在啃西瓜,汁水滴在键盘缝里,我盯着屏幕上的NaN看了整整一下午,STATEV(5)明明赋了值,下一增量步进来变成-1.#QNAN,把整个subroutine逐行加write输出,写到第两百多行才发现是数组越界,DIMENSION STATEV(4)声明了4个分量,代码里却访问了STATEV(5),编译器没报错因为Fortran默认不检查边界,加了/check:bounds重新编译才定位到那一行,改完跑通的那一刻汗已经把后背浸透了,西瓜味混着汗味飘了一整层楼。

Python二次开发分两块,前处理用mdb对象建模,后处理用odbAccess读结果,mdb.Model().Part()这条链子写顺了比CAE点点点快几十倍,参数化扫掠、批量提交、结果提取全靠它,odbAccess打开odb是只读的,想改结果得用fieldOutput.addData新建场,脚本里from abaqus import *这一句必须在第一行,否则后续所有对象都拿不到。rpy文件放在工作目录下,abaqus cae noGUI=script.py执行,日志输出到abaqus.rpy.log,报错信息比交互式窗口详细得多。

材料参数从Excel读进来用xlrd或者openpyxl,Abaqus Python2.7自带的xlrd版本太老不支持xlsx,只能读xls,想读新格式就把openpyxl的egg包扔到site-packages里,路径在installation_dir\tools\SMApy\python2.7\Lib\site-packages,别pip install,解释器认的是本地egg。后处理画曲线用xyPlot,数据导出csv用session.xyDataListFromOdb配合writeXYReport,批量处理几十个odb的时候写成函数套循环,比手动一个个打开效率高两个数量级。

子程序和Python混用的场景,比如USDFLD里根据温度切换材料属性,温度场又来自Python预处理生成的非均匀初始条件,这时候数据传递靠sdvini或者外部文件读写,子程序里open文件读txt,Python端提前把节点坐标和对应值写好,格式对齐,IO开销大就把数据压缩成二进制,read/write比文本解析快一个量级。


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空