子程序报错,尤其是UMAT、VUMAT这种几百行的,光靠瞪眼看代码根本没用。这时候就得用单步调试。有什么好处?我挨个说。
追踪流程:你能看到代码到底走了哪条分支,有没有跳过了关键步骤。看变量值:每算完一行,变量的数值实时显示,对不对一目了然。比如塑性应变莫名其妙变成负的,当场就能抓出来。检查循环和条件:判断语句是否按预期执行、边界条件有没有漏,单步跑一遍全清楚。定位错误:哪一行崩溃,调试器直接停在那,不用从报错信息里瞎猜。
用好调试工具(比如VS + Intel Visual Fortran),你排查子程序问题的时间至少砍一半。下次报错别慌,单步跟一遍,大概率自己就能找到问题。
(1)首先在abaqus安装目录找到win86_64.env文件(这里提供我的目录作为参考F:\Abaqus2022\product\win_b64\SMA\site)
(2)在文件中下图所示的位置处,按照我标出的地方修改(实际上就是把默认注释掉的debug相关代码恢复,即取消注释)


(1)下图所示为待调试的umat子程序和对应的inp文件

在子程序中变量声明后位置,加入以下代码段(实际上就是为了让abaqus程序停下来,才能debug,注意要加一个断点,例如40行)
(2)复制下面的命令到cmd窗口中,回车(目录为当前子程序所在位置;注意改成自己的文件名,job=inp文件名,user=子程序文件名)
abaqus job=test user=test_umat int


(3)出现下图的程序后,进入vs中将该程序附加到进程中



免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删
武汉格发信息技术有限公司,格发许可优化管理系统可以帮你评估贵公司软件许可的真实需求,再低成本合规性管理软件许可,帮助贵司提高软件投资回报率,为软件采购、使用提供科学决策依据。支持的软件有: CAD,CAE,PDM,PLM,Catia,Ugnx, AutoCAD, Pro/E, Solidworks 等。