初识Abaqus UMAT 二次开发

初识Abaqus UMAT 二次开发的图1

初识Abaqus UMAT 二次开发

初识Abaqus UMAT 二次开发的图2

Abaqus是一款功能强大的商业有限元分析软件,它具有卓越的线性、非线性分析能力,提供了大量的二次开发接口(用户子程序),使它能够适应特定的分析需求。UMAT就是其中一个较为常用的用户子程序。不可否认,通常情况下使用UMAT都是为了实现一些超出Abaqus自带本构模型适用范围的功能。编写一个成熟UMAT子程序绝非易事,一般都需要编者具备足够的力学基础,这就使得很多初学者望而却步。为此,小编写了这篇文章,通过一个最简单示例分析,让读者对UMAT二次开发有一个初步的认识。

1

UMAT简介

      UMAT子程序具有强大的功能,使用UMAT子程序可以定义材料的本构关系,使用Abaqus材料库中没有包含的材料进行计算,扩充程序功能;几乎可以用于力学行为分析的任何分析过程;几乎可以把用户材料属性赋予Abaqus中的任何单元;可以和用于子程序“USDFLD”联合使用,通过“USDFLD”重新定义单元每一物质点上传递到UMAT中场变量的数值。

       使用UMAT必须在子程序中定义材料本构模型的雅克比矩阵,即应力增量对应变增量的变化率。

      在Abaqus软件中UMAT需要使用Fortran语言(一般都采用Fortran77语法、格式)进行编写。在WIN10操作系统下需要配置好Abaqus、intel Fortran、Visual Studio的连接,在B站、技术邻上有很多免费的教程,在此不再累述。

2

UMAT接口解析

      编写UMAT程序必须符合特定的格式,其基本框架如下:

1      SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,
2     1 RPL,DDSDDT,DRPLDE,DRPLDT,
3     2 STRAN,DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,CMNAME,
4     3 NDI,NSHR,NTENS,NSTATV,PROPS,NPROPS,COORDS,DROT,PNEWDT,
5     4 CELENT,DFGRD0,DFGRD1,NOEL,NPT,LAYER,KSPT,JSTEP,KINC)
6C
7      INCLUDE 'ABA_PARAM.INC'
8C
9      CHARACTER*80 CMNAME
10      DIMENSION STRESS(NTENS),STATEV(NSTATV),
11     1 DDSDDE(NTENS,NTENS),DDSDDT(NTENS),DRPLDE(NTENS),
12     2 STRAN(NTENS),DSTRAN(NTENS),TIME(2),PREDEF(1),DPRED(1),
13     3 PROPS(NPROPS),COORDS(3),DROT(3,3),DFGRD0(3,3),DFGRD1(3,3),
14     4 JSTEP(4)
15
16      user coding to define DDSDDE, STRESS, STATEV, SSE, SPD, SCD
17      andif necessary, RPL, DDSDDT, DRPLDE, DRPLDT, PNEWDT
18
19      RETURN
20      END

①熟悉Fortran语言的很容易发现这段代码整体上是一个“子例行子程序”。其Fortran77定义“子例行子程序”的一般形式为:

SUBROUTINE  子例行子程序名[(虚参数表)]

子例行子程序体

END  [SUBROUTINE[子例行子程序名]]

注意:在Fortran语言中“[]”内的可省略,但此处的虚参列表显然不能省略。

②行首的字母“C”是注释标志符号,程序运行的时候该行语句不执行。

③关键字“INCLUDE”的作用是引入后跟文件中的内容,类似于C语言中的“include”。文件 “ABA_PARAM.INC”随着Abaqus软件的安装而包含在操作系统中,它们含有重要的参数,帮助Abaqus主求解程序对用户子程序进行编译和链接。

④“CHARACTER*80 CMNAME”定义了一个字符串,用于存储材料名称。

⑤第10~14行用于定义各个参数变量的类型。关键字“DIMENSION”代表数组。

⑥第16~17行用于用户编写材料的本构关系模型。

⑦第19~20行为子程序结束标志。

⑧其它的一些编写Fortran77代码的注意事项。.f文件的FORTRAN77固定格式,不区分大小写,每行前6位为预留位置,正常语句从第7为开始编写。每行第5位代码代表这一行和上一行的连续关系。

由上述框架可知UMAT子程序共有37个虚参数,各虚参数的物理含义可以在Abaqus软件帮助文档中查到。遵循由简到难的学习规律,小编这里只介绍本文需要用到的几个虚参。

NTENS:应力矩阵或应变矩阵的维度,Truss单元为1,平面单元一般为3,三维单位一般为6。

DDSDDE(NTENS,NTENS):本构模型的雅克比矩阵,初识Abaqus UMAT 二次开发的图3。在线弹性条件下这个矩阵是常数矩阵。

STRESS(NTENS):应力矩阵(或向量)。包括NDI个直接分量,NSHR个剪切分量。

PROPS(NPROPS):用于输入的材料参数数组,NPROPS为输入参数的个数。

DSTRAN(NTENS):应变增量数组。

3

示例

      小编在前两次推文中已经介绍过两次桁架单元(第二章 平面杆件结构有限元法、第三章 平面杆件结构有限元法(二)),想必大家对桁架单元已经不陌生了。这里我们就使用UMAT完成一个最简单的桁架结构有限元分析计算。结构形式、边界条件如下图所示:

初识Abaqus UMAT 二次开发的图4

图1  模型边界条件示意图

结构一共有三根桁架组成,每根杆件截面面积均设置为10,左侧支座设置x向、y向位移约束,右侧支座设置y向位移约束,顶点处施加竖向集中力,大小为10。每根杆件划分成一个Truss单元。建立两个JOB,JOB-1使用Abaqus自带的线弹性本构模型,设置E为2.06e5,v为0.3。JOB-2使用Abaqus使用UMAT子程序实现线弹性本构模型,在User Material中添加参数2.06e5,在JOB General中选中UMAT子程序文件。设置方法如下图所示:

初识Abaqus UMAT 二次开发的图5

图2  材料参数设置

初识Abaqus UMAT 二次开发的图6

图3  UMAT用户子程序设置

其它参数设置与常规Truss单元线弹性计算相同,这里不再介绍。JOB-1、JOB-2的计算结果如下:

初识Abaqus UMAT 二次开发的图7

图4  使用Abaqus自带线弹性材料库的计算结果

初识Abaqus UMAT 二次开发的图8

图5  使用UMAT用户子程序的计算结果

对比图4、图5可知两个JOB的计算结果完全一致。

(本示例UMAT源码、CAE模型均可在公众号QQ群文件中免费获得)

4

结语

       Abaqus UMAT用户子程序接口功能非常强大,编写一个漂亮的UMAT子程序需要一定的力学基础(尤其是有限元、连续介质力学)。本文旨在让大家对UMAT有一个初步的了解,以及使用UMAT需要用到哪些基本知识,好在今后的学习中有侧重点。后续的推文中,小编还会进一步结合我们有限元理论模块的进度,进一步讲解Abaqus UMAT的使用。

最后欢迎批评指正,小编水平有限,希望大家跟我一起完善这部教材,造福更多的人,谢谢!

初识Abaqus UMAT 二次开发的图9

陪伴是最长情的告白

学而不思则罔

思而不学则殆

欢迎大家跟我一起学习CAE知识!

QQ群号:517718332

初识Abaqus UMAT 二次开发的图10

注:相关资料可在QQ群文件中下载

ABAQUSUMAT子程序

初识Abaqus UMAT 二次开发的评论15条

  • 灯语
    0
    二次开发现在真的好好好学
  • 长江学渣
    0
    有兴趣学习umat二次开发的可以看看我发布的教程

初识Abaqus UMAT 二次开发的相关案例教程

在ABAUQS中引用多个不同子程序的方法非常简单,这里不再赘述,但是如何多次引用同一子程序,却很少能找到有用的信息,在翻阅ABAQUS的帮助文档时,突然看到UMAT的帮助中提到可以同时调用不同材料模型,类似的,我们也可以用同样的方法去调用别的子程序。下图来自官方帮助文件: 思路就是用cmname做判断使用哪个子程序,整个子程序中,UMAT主子程序只起到分流的作用,真正的子程序是UMAT_MAT1和
各向同性硬化von Mises率无关弹塑性本构理论以及umat源代码 1 本构理论 1.1 率形式 对于各向同性线弹性材料,其本构方程为: 式中假设了应变张量可以分解为弹性应变和塑性应变两部分: 因此塑性本构的关键在于计算塑性应变的演化。对于率无关弹塑性的本构理论,需要确定以下三个部分: (1):屈服条件 (2):流动法则 (3):硬化法则 在此采用的是 von Mises 屈服条件: 式中后继屈
1 本构理论 1.1 率形式 本构方程为: 单轴拉伸的应力应变的硬化曲线如下: 根据单轴试验得到硬化部分的曲线: 当仅考虑随动硬化时,屈服面的中心在移动,而屈服面的大小不发生改变,即为常数。 屈服条件为: 增加了背应力来表示屈服面中心移动即随动硬化的效果。式中相对应力的表达式为: 流动法则为: 背应力的演化法则为: 式中: 上标k代表随动部分(kinematic),表示以下随动硬化曲线的梯度: 1
ABAQUS/Standard 用户材料子程序实例 -Johnson-Cook 金属本构模型卢剑锋 庄茁* 张帆 清华大学工程力学系 北京 100084 摘要:用户材料子程序是 ABAQUS 提供给用户定义自己的材料属性的 Fortran 程序接口,使用户能使用 ABAQUS 材料库中没有定义的材料模型。 ABAQUS 中自有的 Johnson-Cook 模型只能应用于显式 ABAQUS/Expl
C 瞬态温度场下修正Burgers模型UMAT子程序源代码 C C 给状态变量数组赋初值为零,调用ABAQUS子程序SDVINI C GIVE STATEV THE INITIAL VALUE OF ZERO C SUBROUTINE SDVINI(STATEV,COORDS,NSTATV,NCRDS,NOEL,NPT,LAYER,KSPT) C INCLUDE 'ABA_PARAM.INC' C
博士/研究员
影响力
粉丝
内容
获赞
收藏
    项目客服
    培训客服
    15 31