找回密码
 注册
Simdroid-非首页
查看: 266|回复: 7

[二次开发] Abaqus UMAT二次开发踩坑系列(更新ing)

[复制链接]
发表于 2020-3-4 14:30:26 | 显示全部楼层 |阅读模式 来自 江苏苏州
本人在尝试编写abaqus umat二次子程序开发,在使用过程中也是不断踩坑,在这里也是做个记录,欢迎大家一起补充交流!

欢迎大家关注我的微信公众号:引垂思汀
也欢迎访问我的技术邻主页:引垂思汀
 楼主| 发表于 2020-3-4 14:39:27 | 显示全部楼层 来自 江苏苏州
Simdroid开发平台
问题描述
采用VS2015+IVF2017(Update 4)进行程序调试,部分变量出现undefined address

配置信息如下:

  1. /nologo /debug:full /Od /warn:interfaces /module:"Debug\" /object:"Debug\" /Fd"Debug\vc140.pdb" /traceback /check:bounds /check:stack /libs:dll /threads /dbglibs /c
复制代码

解决办法:

Google了几个帖子,应该是编译器版本的问题,需要升级编译器版本,具体的解释可以看下面几个链接
https://stackoverflow.com/questions/17308745/fortran-array-undefined-address

https://software.intel.com/en-us/forums/intel-fortran-compiler/topic/515943
回复 不支持

使用道具 举报

 楼主| 发表于 2020-3-4 14:58:05 | 显示全部楼层 来自 江苏苏州
问题描述
做一个简单的三轴排水试验,模型原先采用的材料为X,现在想要修改模型的材料为Y,尝试在模型界面新建材料Y,然后将其赋给模型(应该是已经赋上了,因为模型的颜色从原先的蓝绿色变为黄色),在利用job(原先的,并未新建一个)进行debug,发现模型参数PROPS数组仍未更新,还是原来材料X的参数!?

产生原因
其实具体为什么会这样,真的不清楚,按理说当我们更新了模型的材料以后,即使用原来的job应该也是可以,因为inp文件会作出修改,但不清楚为什么提交原来的job以后,debug仍然会和之前一样这说明inp文件实际上没有被修改,具体原因我也不太清楚



解决方法
很简单,就是在abaqus中重新建立一个job,然后再对新的job debug就可以解决模型参数更新失败的问题

回复 不支持

使用道具 举报

 楼主| 发表于 2020-3-4 15:28:03 | 显示全部楼层 来自 江苏苏州
问题描述:
在调试的过程中,到达状体变量赋值语句的时候出现了异常错误,见下图

看了一下局部变量的值,发现
   
   也就是说STATEV(1) 并没有被赋值,仿佛是形同虚设一般,其数组维度NSTATV=0!!!
  
  

原因分析:

后来和师兄交流,才意识到应该在abaqus建模的材料属性界面指定状态变量的数量,即指定NSTATV,见下图
   

解决办法:
按照上述操作,之后重新建立一个job,即可解决这一问题



回复 不支持

使用道具 举报

 楼主| 发表于 2020-3-4 15:51:30 | 显示全部楼层 来自 江苏苏州
问题描述:
为了更好的使用Google搜索来查找程序中出现的问题,于是想要把VS2015的默认语言设置为英文,按照最简单的方法操作,进入工具->选项->区域设置->获取其他语言,结果发现坑爹微软放大招了,无法找到语言安装包!!晕死!

   


原因分析:

除了坑爹以外,我其他实在不想说什么

解决方法:
问题的关键就是找到语言安装包,Google了一下便找到了可以下载VS2015英语语言安装包的网页https://www.microsoft.com/en-us/download/confirmation.aspx?id=48157安装过程非常简单Before you install a Language Pack, install the corresponding version of the product.
  • On this page, choose the Download button.
  • Select the .exe options and then choose the Next button.
    • To install the software now, choose the Run button.
    • To install the software later, choose the Save button.
记得安装的过程需要关闭VS2015!安装完成后,即可使用英文版的VS2015了。



回复 不支持

使用道具 举报

 楼主| 发表于 2020-3-4 16:03:03 | 显示全部楼层 来自 江苏苏州
问题描述:
使用visual studio2015调试的时候,出现无效指针错误,一开始因为是umat的问题,但后来尝试了其他的几个程序,但在调试的过程中都遇到了这个问题,即使是编写的最为简单的hello world程序都会提示无效指针。

———————————————————————————————————————————

原因分析:
确认了是visual studio软件本身的问题以后,就开始Google关于这个问题的解决办法,发现这个问题还挺普遍的,不少人都曾经遇见过,关于这个问题,在stackoverflow上有讨论也有人提供了解决办法,大家可以去看看,方法各不相同,建议大家都试一下,链接如下
https://stackoverflow.com/questions/14252927/the-operation-could-not-be-completed-invalid-pointer

————————————————————————————————————————————

解决方案:
我最终的解决办法,说起来有点简单,但确实这种方法解决了我的问题——那就是安装一下visual studio2015的更新即可解决,大家可以把我的方法作为一种参考。
回复 不支持

使用道具 举报

 楼主| 发表于 2020-3-5 13:04:35 | 显示全部楼层 来自 江苏苏州
问题描述:
算一个粘弹塑性的UMAT,在进入塑性之后,计算一定增量步后,DSTRAN显示为NaN,之后应力应变计算结果均为NaN.

解决办法:
这个问题我一开始也很蒙,原先想的是DSTRAN是abaqus给的,怎么会是NaN呢?
后来看了一些资料,自己也思考了一下,认为DSTRAN并不是abaqus给的这么简单,我们这里去想一下DSTRAN是怎么样算出来的?

DSTRAN实际上是求解红框中的方程算出来的,那么这样的话,DSTRAN之所以会变成NaN,就要去两个地方找原因,要么是DDSDDE雅克比矩阵出了问题,要么是单元应力F出了问题,有了方向之后,去相应出现问题的迭代步去一步步调试看计算输出,便可以比较方便找到问题。
另外,有很多奇形怪状的问题都是由于计算步长过大引起的,建议减小步长试试。





回复 不支持

使用道具 举报

发表于 2020-3-6 10:02:53 | 显示全部楼层 来自 天津
开发平台 还是VS+VF?
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-10-2 06:28 , Processed in 0.044233 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表