0. 编译环境搭建:
要运行UMAT子程序,需要安装FORTRAN编译器。网上给出的abaqus+vs+ivf的组合版本大多数很老旧,提供个较为新的搭配。
参考:
VS2013+IVF2013+ABAQUS2016 https://www.bilibili.com/video/av48975699
VS2015+Intel Parallel Studio XE 2018 + ABAQUS 2018 https://www.bilibili.com/video/av49917712
我的配置:VS2015+Intel Parallel Studio XE 2018 + ABAQUS 2017 success, 且我是先装的abaqus
方法:先装VS才能装IVF,abaqus的先后没关系,最后更改abaqus启动文件配置vs和ivf的路径就好。
tips:
errors I meet:
at beginning i used abaqus2017+vs2015+Intel Parallel Studio XE 2018, and the same error present in the log file.
then i try abaqus 2018 in the same environment, it worked.
因此,确保abaqus版本适配,可采用网上别人验证过的组合。我用2017的时候子程序也可以编译,运行的时候才出错。
1. UMAT是.for文件,编写应遵守Fix Fortran格式规范(而非Free Frotran)
2. UMAT基本任务
UMAT 的基本任务? 我们知道,有限元计算(增量方法)的基本问题是:已知第 n 步的结果(应力,应变等)σ[n],ε[n],然后给出一个应变增量 dε[n+1],计算新的应力σ[n+1]。 UMAT 要完成这一 计算, 并要计算 Jacobian 矩阵 DDSDDE(I,J) =Δσ/Δε 。 Δσ 是应力增量矩阵(张量或许更合适), Δε 是应变增量矩阵。 DDSDDE(I,J) 定义了第 J 个应变分量的微小变化对第 I 个应力分量带来的变化。 该矩阵只影响收敛速度,不影响计算结果的准确性(当然,不收敛自然得不到结果)。
参考: Abaqus用户子程序umat的学习 https://www.cnblogs.com/baowee/p/9556837.html
3. 行动 - 在你的电脑上如何编写and编译
新建一个.for文件即可编写程序;
子程序在abaqus中运行方法:材料属性选择User Master, 设置材料参数数组(即 PROPS(NPROPS));
选择Deper,中设置状态变量STATEV的数组长度NSTATV;
Field Output 设置勾选SDV,会结果中显示状态变量云图
参考:http://blog.sina.com.cn/s/blog_6465f2ed0102x3ab.html;
运行后,error会写在abaqus工作目录下对应job的log里。
子程序用VS编译调试方法:https://blog.csdn.net/auguster110/article/details/83042045 程序中设置等待(如读取键盘输入), 用VS中的Debug - Attach to Process
4.
error: 800 elements have been defined with zero hour glass stiffness.
单元类型默认是缩减积分单元,暂时还不懂,但是按照网上说的设置成完全积分单元或者incompatibles modes. 可惜我没找到完全缩减积分单元怎么设置,只找到了incompatible modes,暂时能用。
------***************************************************
以下仅对个人工作需要的一些设置备忘,可忽略
materials - 设置状态变量说。 但是状态变量的初值如何设置? 网上只说在input里面可添加一行初值,cae里还不清楚。
step - step2, 迭代次数100, increment size 1-1