Abaqus材料用户子程序UMAT基础知识及手册例子全面解释

合集下载

ABAQUS_Standard用户材料子程序实例

ABAQUS_Standard用户材料子程序实例

ABAQUS/Standard 用户材料子程序实例-Johnson-Cook 金属本构模型卢剑锋 庄茁* 张帆清华大学工程力学系 北京 100084摘要:用户材料子程序是ABAQUS 提供给用户定义自己的材料属性的Fortran 程序接口,使用户能使用ABAQUS 材料库中没有定义的材料模型。

ABAQUS 中自有的Johnson-Cook 模型只能应用于显式ABAQUS/Explicit 程序中,而我们希望能在隐式ABAQUS/Standard 程序中更精确的实现本构积分,而且应用Johnson-Cook 模型的修正形式。

这就需要通过ABAQUS/Standard 的用户材料子程序UMAT 编程实现。

在UMAT 编程中使用了率相关塑性理论以及完全隐式的应力更新算法。

1 Johnson-Cook 强化模型简介Johnson-Cook (JC )模型用来模拟高应变率下的金属材料。

JC 强化模型表示为三项的乘积,分别反映了应变硬化,应变率硬化和温度软化。

这里使用JC 模型的修正形式:()()*01ln 11n m A B C T εσεε =+++−&& 并使参考应变率01ε=&,这样公式中的A 即为材料的静态屈服应力。

公式中包含,,,,A B n C m 五个参数,需要通过实验来确定。

2 ABAQUS 用户材料子程序用户材料子程序(User-defined Material Mechanical Behavior ,简称UMAT )通过与ABAQUS 主求解程序的接口实现与ABAQUS 的数据交流。

在输入文件中,使用关键字“*USER MATERIAL”表示定义用户材料属性。

子程序概况与接口UMAT 子程序具有强大的功能,使用UMAT 子程序:(1) 可以定义材料的本构关系,使用ABAQUS 材料库中没有包含的材料进行计算,扩充程序功能。

(2)几乎可以用于力学行为分析的任何分析过程,几乎可以把用户材料属性赋予ABAQUS中的任何单元;(3)必须在UMAT中提供材料本构模型的雅可比(Jacobian)矩阵,即应力增量对应变增量的变化率。

abaqus1用户材料子程序

abaqus1用户材料子程序

19 ABAQUS用户材料子程序(UMAT)虽然ABAQUS为用户提供了大量的单元库和求解模型,使用户能够利用这些模型处理绝大多数的问题;但是现实世界毕竟十分复杂,ABAQUS不可能把所有可能出现的问题都包含进去。

所以ABAQUS提供了大量的用户子程序(User Subroutine)。

用户子程序允许用户在找不到合适模型的情况下自行定义符合自己问题的模型。

这些用户子程序涵盖了建模从载荷到单元的几乎各个部分。

ABAQUS为用户提供的这个接口,允许用户通过自定义的子程序定制ABAQUS,以实现特定的功能。

用户子程序具有以下的功能和特点:(1)如果ABAQUS的一些固有选项模型功能有限;用户子程序可以提高ABAQUS中这些选项的功能;(2)通常用户子程序是用FORTRAN语言的代码写成;(3)它可以以几种不同的方式包含在模型中;(4)由于它们没有存储在restart文件中,如果需要的话,可以在重新开始运行时修改它;(5)在某些情况下它可以利用ABAQUS允许的已有程序。

要在模型中包含用户子程序,可以利用ABAQUS执行程序,在abaqus执行程序中应用user选项指明包含这些子程序的FORTRAN源程序或者目标程序的名字。

提示:ABAQUS的输入文件除了可以通过ABAQUS/CAE的作业模块中提交运行外,还可以在ABAQUS Command窗口中输入ABAQUS执行程序直接运行:ABAQUS job=输入文件名 user=用户子程序的Fortran文件名ABAQUS/Standard和ABAQUS/Explicit都支持用户子程序功能,但是他们所支持的用户子程序种类不尽相同,读者在需要使用时请注意查询手册。

在接下来的最后两章里,我们将讨论两种常用的用户子程序——用户材料子程序和用户单元子程序。

本章将通过在ABAQUS/Standard中创建Johnson-Cook的材料模型,对编写Standard 的用户材料子程序UMAT进行一个简单介绍。

ABAQUS子程序UMAT的应用

ABAQUS子程序UMAT的应用

A B A Q U S子程序U M A T的应用This model paper was revised by the Standardization Office on December 10, 2020目录摘要ABAQUS软件功能强大,特别是能够模拟复杂的非线性问题,它包括了多种材料本构关系及失效准则模型,并具有良好的开放性,提供了若干个用户子程序接口,允许用户以代码的形式来扩展主程序的功能。

本文主要研究了ABAQUS用户子程序UMAT的开发方法,采用FORTRAN语言编制了各向同性硬化材料模型的接口程序,研究该类材料的弹塑性本构关系极其实现方法。

本文紧紧围绕UMAT的二次开发技术,首先对其接口原理做了详细介绍,然后针对非线性有限元增量理论中的常刚度法和切线刚度法的算法理论做了深入的剖析,推导出了常刚度法和切线刚度法的算法理论的具体表达式,然后分别编制了两种算法的UMAT程序,最后建立了一个具体的验算模型,通过与ABAQUS自带弹塑性本构关系的计算结果相比较,验证两者的正确性。

本文还对常刚度法和切线刚度法得算法效率做了对比,得出了在非线性程度较高时切线刚度法效率高于常刚度法的结论。

关键字: ABAQUS、UMAT、有限元、材料非线性、FORTRAN、切线刚度ABSTRACTABAQUS software powerful, especially to simulate complex non-linear problem, which includes a wide range of material constitutive model and failure criteria, and has a good open, providing a number of user subroutine interface that allows users to code form to expand the functions of the main program.This paper studies the user subroutine UMAT of ABAQUS development methods, the use of FORTRAN language isotropic hardening material model of the interface program, studied the effects of such material is extremely elastic-plastic constitutive relation method.This article UMAT tightly around the secondary development of technology, the first principle of its interface detail, and then for the theory of nonlinear finite element incremental stiffness of the regular tangent stiffness method and the theory of algorithms to do an in-depth analysis of deduced a regular tangent stiffness and rigidity of the law of the specific expression of algorithm theory, and then the preparation of the two algorithms, respectively, of the UMAT program, and finally the establishment of a specific model checking, bringing with ABAQUS elasto-plastic constitutive relation of the calculated results compared to verify the correctness of the two.This article also often stiffness and tangent stiffness method was to do a comparison of algorithm efficiency is obtained when a higher degreein the non-linear tangent stiffness method more efficient than the conclusions of law often stiffness.KEY WORDS:ABAQUS、UMAT、Finite element、Material nonlinearity、FORTRAN、Tangent stiffness1.绪论1.1.课题的研究背景有限单元法基本思想的提出,可以追溯到克劳夫在1943年的工作[1],他第一次尝试应用定义在三角形区域上的分片连续函数和最小位能原理相结合,来求解St. Venant扭转问题。

ABAQUS子程序UMAT的应用 (2)

ABAQUS子程序UMAT的应用 (2)

目录摘要 .......................................................................................................................................... ABSTRACT ...............................................................................................................................1.绪论 .....................................................................................................................................1.1.课题的研究背景.......................................................................................................1.2.本文的研究内容和方法...........................................................................................2.基于ABAQUS软件的二次开发.......................................................................................2.1.ABAQUS介绍 .........................................................................................................2.2.ABAQUS各模块简介 .............................................................................................2.3.ABAQUS的二次开发平台......................................................................................2.4.ABAQUS的二次开发语言......................................................................................3.用户材料子程序UMAT.....................................................................................................3.1.UMAT开发环境设置 ..............................................................................................3.2.UMAT注意事项 ......................................................................................................3.3.UMAT接口的原理...................................................................................................3.4.UMAT的使用方法...................................................................................................4.材料非线性问题 (14)4.1.材料的弹塑性本构关系...........................................................................................4.2.非线性有限元算法理论...........................................................................................4.3.增量理论常刚度法公式推导............................................... 错误!未指定书签。

ABAQUS-二次开发资料-UMAT

ABAQUS-二次开发资料-UMAT

各个楼层及内容索引2-------------------------------------什么是UMAT3-------------------------------------UMAT功能简介4-------------------------------------UMAT开始的变量声明5-------------------------------------UMAT中各个变量的详细解释6-------------------------------------关于沙漏和横向剪切刚度7-------------------------------------UMAT流程和参数表格实例展示8-------------------------------------FORTRAN语言中的接口程序Interface9-------------------------------------关于UMAT是否可以用Fortran90编写的问题10-17--------------------------------Fortran77的一些有用的知识简介20-25\30-32-----------------------弹塑性力学相关知识简介34-37--------------------------------用户材料子程序实例JOhn-cook模型压缩包下载38-------------------------------------JOhn-cook模型本构简介图40-------------------------------------用户材料子程序实例JOhn-cook模型完整程序+david详细注解[欢迎大家来看看,并提供意见,完全是自己的diy的,不保证完全正确,希望共同探讨,以便更正,带""部分,还望各位大师\同仁指教]1什么是UMAT1.1UMAT功能简介!!![-摘自庄茁老师的书UMAT子程序具有强大的功能,使用UMAT子程序:(1)可以定义材料的本构关系,使用ABAQUS材料库中没有包含的材料进行计算,扩充程序功能。

ABAQUS材料用户子程序UMAT学习报告

ABAQUS材料用户子程序UMAT学习报告

具有友好的用户 界面和易用的操 作流程,方便用 户进行学习和使 用
UMAT子程序简介
UMAT子程序是 ABAQUS材料用户 自定义模块,允许 用户根据实际需求 编写材料本构模型。
UMAT子程序采用C 语言编写,用户需要 具备一定的编程基础。
UMAT子程序可以实 现多种材料本构模型 ,如弹性、塑性、蠕 变等。
UMAT子程序实现细节
编程语言和接口
A B A Q U S 材 料 用 户 子 程 序 U M AT 使 用Fortran语言编写
U M AT 子 程 序 中 可 以 定 义 材 料 属 性 、 本构关系等
添加标题
添加标题
添加标题
添加标题
U M AT 子 程 序 通 过 A B A Q U S 提 供 的 接口与主程序进行交互
不足:使用门槛较高,需要用户具备一定的编程基础
未来展望:期待更多的用户参与开发,不断完善子程序功能
总结:UMAT子程序为用户提供了强大的材料模型描述能力,但使用过程中需要注意其局 限性
在ABAQUS中的未来发展方向
开发更高效的材料模型 集成人工智能和机器学习技术 增强与CAD软件的集成 扩展对多物理场模拟的支持
适用于金属材料
适用于复合材料
适用于橡胶材料
适用于陶瓷材料
参数的合理选择
参数选择需符合实际物理模型 参数选择需考虑材料特性 参数选择需经过实验验证 参数选择需注意收敛性和稳定性
收敛性和稳定性问题
收 敛 性 : U M AT 子 程 序 在 迭 代 过 程 中应满足收敛条件,否则可能导致 计算失败或结果不准确。
边界条件和初始条件
边界条件:描述模型在边界上的行为,如位移、速度等 初始条件:描述模型在初始时刻的状态,如温度、压力等

abaqus 子程序 简单案例

abaqus 子程序 简单案例

abaqus 子程序简单案例1. 案例一:ABAQUS子程序在计算机辅助工程中的应用在计算机辅助工程中,ABAQUS子程序是一种被广泛应用的工具,用于求解各种复杂的物理问题。

它可以在ABAQUS有限元软件中调用,通过编写用户自定义的子程序来实现特定的功能。

下面将介绍一些常见的ABAQUS子程序案例。

2. 案例二:ABAQUS子程序在材料力学中的应用ABAQUS子程序在材料力学中的应用非常广泛。

例如,可以通过自定义的子程序来模拟材料的非线性行为、塑性变形、断裂行为等。

通过在子程序中编写相应的材料本构模型和损伤模型,可以准确地预测材料的力学性能。

3. 案例三:ABAQUS子程序在流体力学中的应用ABAQUS子程序在流体力学中也有重要的应用。

例如,可以通过自定义的子程序来模拟流体的非牛顿性、多相流动、湍流等现象。

通过在子程序中编写相应的流体本构模型和湍流模型,可以准确地模拟流体的流动行为。

4. 案例四:ABAQUS子程序在结构力学中的应用ABAQUS子程序在结构力学中也非常有用。

例如,可以通过自定义的子程序来模拟结构的非线性行为、接触和摩擦、动力响应等。

通过在子程序中编写相应的结构本构模型和接触模型,可以准确地预测结构的力学性能。

5. 案例五:ABAQUS子程序在热传导中的应用ABAQUS子程序在热传导中的应用也非常广泛。

例如,可以通过自定义的子程序来模拟材料的热传导行为、热辐射、相变等。

通过在子程序中编写相应的热传导模型和相变模型,可以准确地预测材料的热学性能。

6. 案例六:ABAQUS子程序在电磁场中的应用ABAQUS子程序在电磁场中的应用也有一定的研究价值。

例如,可以通过自定义的子程序来模拟电磁场的非线性行为、磁饱和、电磁感应等。

通过在子程序中编写相应的电磁场模型和电磁感应模型,可以准确地模拟电磁场的行为。

7. 案例七:ABAQUS子程序在声学中的应用ABAQUS子程序在声学领域中也有一定的应用。

Abaqus材料用户子程序UMAT基础知识及手册例子完整解释

Abaqus材料用户子程序UMAT基础知识及手册例子完整解释

1、为何需要使用用户材料子程序(User-Defined Material, UMAT )?很简单,当ABAQUS 没有提供我们需要的材料模型时。

所以,在决定自己定义一种新的材料模型之前,最好对ABAQUS 已经提供的模型心中有数,并且尽量使用现有的模型,因为这些模型已经经过详细的验证,并被广泛接受。

UMAT 子程序具有强大的功能,使用UMAT 子程序:(1)可以定义材料的本构关系,使用ABAQUS 材料库中没有包含的材料进行计算,扩充程序功能。

(2) 几乎可以用于力学行为分析的任何分析过程,几乎可以把用户材料属性赋予ABAQU S 中的任何单元。

(3) 必须在UMAT 中提供材料本构模型的雅可比(Jacobian )矩阵,即应力增量对应变增量的变化率。

(4) 可以和用户子程序“USDFLD ”联合使用,通过“USDFLD ”重新定义单元每一物质点上传递到UMAT 中场变量的数值。

2、需要哪些基础知识?先看一下ABAQUS 手册(ABAQUS Analysis User's Manual )里的一段话:Warning: The use of this option generally requires considerable expertise(一定的专业知识). The user is cautioned that the implementation (实现) of any realistic constitutive (基本) model requires extensive (广泛的) development and testing. Initial testing on a single eleme nt model with prescribed traction loading (指定拉伸载荷) is strongly recommended. 但这并不意味着非力学专业,或者力学基础知识不很丰富者就只能望洋兴叹,因为我们的任务不是开发一套完整的有限元软件,而只是提供一个描述材料力学性能的本构方程(Constitutive equation )而已。

用户子程序UMAT设置

用户子程序UMAT设置

ABAQUS用户子程序UMAT的设置在property模块进行。

Creat material→General→User Material,输入Mechanical Constants,即为子程序中需要输入的参数,如下图所示。

Creat material→General→Depvar,在这里面设置状态变量的个数,与子程序中变量STATEV(NSTATEV)有关,如下图所示。

而用户子程序的格式可以通过搜索ABAQUS Documentation,在该文档中可以找到子程序UMAT的书写方法以及相关变量的含义。

SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,1 RPL,DDSDDT,DRPLDE,DRPLDT,2 STRAN,DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,CMNAME,3 NDI,NSHR,NTENS,NSTATV,PROPS,NPROPS,COORDS,DROT,PNEWDT,4 CELENT,DFGRD0,DFGRD1,NOEL,NPT,LAYER,KSPT,JSTEP,KINC)CINCLUDE 'ABA_PARAM.INC'CCHARACTER*80 CMNAMEDIMENSION STRESS(NTENS),STATEV(NSTATV),1 DDSDDE(NTENS,NTENS),DDSDDT(NTENS),DRPLDE(NTENS),2 STRAN(NTENS),DSTRAN(NTENS),TIME(2),PREDEF(1),DPRED(1),3 PROPS(NPROPS),COORDS(3),DROT(3,3),DFGRD0(3,3),DFGRD1(3,3),4 JSTEP(4)user coding to define DDSDDE, STRESS, STATEV, SSE, SPD, SCDand, if necessary, RPL, DDSDDT, DRPLDE, DRPLDT, PNEWDTRETURNEND必须在子程序UMAT中提供材料本构的雅可比(Jacobian)矩阵(即变量DDSDDE),即应力增量对应变增量的变化率。

ABAQUS-UMAT-自学知识整理贴

ABAQUS-UMAT-自学知识整理贴

各个楼层及内容索引2-------------------------------------什么是UMAT3-------------------------------------UMAT功能简介4-------------------------------------UMAT开始的变量声明5-------------------------------------UMAT中各个变量的详细解释6-------------------------------------关于沙漏和横向剪切刚度7-------------------------------------UMAT流程和参数表格实例展示8-------------------------------------FORTRAN语言中的接口程序Interface 9-------------------------------------关于UMAT是否可以用Fortran90编写的问题10-17--------------------------------Fortran77的一些有用的知识简介20-25\30-32-----------------------弹塑性力学相关知识简介34-37--------------------------------用户材料子程序实例JOhn-cook模型压缩包下载38-------------------------------------JOhn-cook模型本构简介图40-------------------------------------用户材料子程序实例JOhn-cook模型完整程序+david详细注解[欢迎大家来看看,并提供意见,完全是自己的diy的,不保证完全正确,希望共同探讨,以便更正,带"?"部分,还望各位大师\同仁指教]什么是UMAT程序,真正的定义材料的力学行为即属性,是用户自己编译的FORTRAN 程序来实现的!UMAT通过与ABAQUS主求解程序的接口实现与ABAQUS的数据交流UMAT功能简介[-摘自庄茁老师的书]UMAT子程序具有强大的功能,使用UMAT子程序:(1)可以定义材料的本构关系,使用ABAQUS材料库中没有包含的材料进行计算,扩充程序功能。

一起学习户定义材料(User-definedmaterial,UMAT)解读

一起学习户定义材料(User-definedmaterial,UMAT)解读

一起学习UMATZHANG chunyu1、什么时候用用户定义材料(User-defined material, UMAT )?很简单,当ABAQUS 没有提供我们需要的材料模型时。

所以,在决定自己定义一种新的材料模型之前,最好对ABAQUS 已经提供的模型心中有数,并且尽量使用现有的模型,因为这些模型已经经过详细的验证,并被广泛接受。

2、好学吗?需要哪些基础知识?先看一下ABAQUS 手册(ABAQUS Analysis User's Manual )里的一段话: Warning: The use of this option generally requires considerable expertise. The user is cautioned that the implementation of any realistic constitutive model requires extensive development and testing. Initial testing on a single element model with prescribed traction loading is strongly recommended.但这并不意味着非力学专业,或者力学基础知识不很丰富者就只能望洋兴叹,因为我们的任务不是开发一套完整的有限元软件,而只是提供一个描述材料力学性能的本构方程(Constitutive equation )而已。

当然,最基本的一些概念和知识还是要具备的,比如应力(stress),应变(strain )及其分量; volumetric part 和deviatoric part ;模量(modulus )、泊松比(Poisson ’s ratio)、拉美常数(Lame constant);矩阵的加减乘除甚至求逆;还有一些高等数学知识如积分、微分等。

ABAQUS-二次开发资料-UMAT

ABAQUS-二次开发资料-UMAT

各个楼层及内容索引2-------------------------------------什么是UMAT3-------------------------------------UMAT功能简介4-------------------------------------UMAT开始的变量声明5-------------------------------------UMAT中各个变量的详细解释6-------------------------------------关于沙漏和横向剪切刚度7-------------------------------------UMAT流程和参数表格实例展示8-------------------------------------FORTRAN语言中的接口程序Interface9-------------------------------------关于UMAT是否可以用Fortran90编写的问题10-17--------------------------------Fortran77的一些有用的知识简介20-25\30-32-----------------------弹塑性力学相关知识简介34-37--------------------------------用户材料子程序实例JOhn-cook模型压缩包下载38-------------------------------------JOhn-cook模型本构简介图40-------------------------------------用户材料子程序实例JOhn-cook模型完整程序+david详细注解[欢迎大家来看看,并提供意见,完全是自己的diy的,不保证完全正确,希望共同探讨,以便更正,带"?"部分,还望各位大师\同仁指教]1 什么是UMAT???1.1 UMAT功能简介!!![-摘自庄茁老师的书UMAT子程序具有强大的功能,使用UMAT子程序:(1)可以定义材料的本构关系,使用ABAQUS材料库中没有包含的材料进行计算,扩充程序功能。

Abaqus材料用户子程序UMAT基础知识及手册例子完整解释

Abaqus材料用户子程序UMAT基础知识及手册例子完整解释

1、为何需要使用用户材料子程序(User-Defined Material, UMAT )?很简单,当ABAQUS 没有提供我们需要的材料模型时。

所以,在决定自己定义一种新的材料模型之前,最好对ABAQUS 已经提供的模型心中有数,并且尽量使用现有的模型,因为这些模型已经经过详细的验证,并被广泛接受。

UMAT 子程序具有强大的功能,使用UMAT 子程序:(1)可以定义材料的本构关系,使用ABAQUS 材料库中没有包含的材料进行计算,扩充程序功能。

(2) 几乎可以用于力学行为分析的任何分析过程,几乎可以把用户材料属性赋予ABAQU S 中的任何单元。

(3) 必须在UMAT 中提供材料本构模型的雅可比(Jacobian )矩阵,即应力增量对应变增量的变化率。

(4) 可以和用户子程序“USDFLD ”联合使用,通过“USDFLD ”重新定义单元每一物质点上传递到UMAT 中场变量的数值。

2、需要哪些基础知识?先看一下ABAQUS 手册(ABAQUS Analysis User's Manual )里的一段话:Warning: The use of this option generally requires considerable expertise(一定的专业知识). The user is cautioned that the implementation (实现) of any realistic constitutive (基本) model requires extensive (广泛的) development and testing. Initial testing on a single eleme nt model with prescribed traction loading (指定拉伸载荷) is strongly recommended. 但这并不意味着非力学专业,或者力学基础知识不很丰富者就只能望洋兴叹,因为我们的任务不是开发一套完整的有限元软件,而只是提供一个描述材料力学性能的本构方程(Constitutive equation )而已。

21ABAQUS用户材料子程序_1502407

21ABAQUS用户材料子程序_1502407

21 ABAQUS用户材料子程序(UMAT)虽然ABAQUS为用户提供了大量的单元库和求解模型,使用户能够利用这些模型处理绝大多数的问题;但是实际问题毕竟非常复杂,ABAQUS不可能直接求解所有可能出现的问题。

所以ABAQUS提供了大量的用户自定义子程序(User Subroutine),允许用户在找不到合适模型的情况下自行定义符合自己问题的模型。

这些用户子程序涵盖了建模、载荷到单元的几乎各个部分。

用户子程序具有以下的功能和特点:(1)如果ABAQUS的一些固有选项模型功能有限,用户子程序可以提高ABAQUS中这些选项的功能;(2)通常用户子程序是用FORTRAN语言的代码写成;(3)它可以以几种不同的方式包含在模型中;(4)由于它们没有存储在restart文件中,如果需要的话,可以在重新开始运行时修改它;(5)在某些情况下它可以利用ABAQUS允许的已有程序。

要在模型中包含用户子程序,可以利用ABAQUS执行程序,在执行程序中应用user 选项指明包含这些子程序的FORTRAN源程序或者目标程序的名字。

提示:ABAQUS的输入文件除了可以通过ABAQUS/CAE的作业模块中提交运行外,还可以在ABAQUS Command窗口中输入ABAQUS执行程序直接运行:ABAQUS job=输入文件名 user=用户子程序的Fortran文件名ABAQUS/Standard和ABAQUS/Explicit都支持用户子程序功能,但是他们所支持的用户子程序种类不尽相同,读者在需要使用时请注意查询手册。

在接下来的两章里,我们将讨论两种常用的用户子程序——用户材料子程序和用户单元子程序。

本章将通过在ABAQUS/Standard中创建Johnson-Cook的材料模型,介绍编写ABAQUS/Standard的用户材料子程序UMAT。

在ABAQUS/Explicit中编写用户材料子程序VUMAT与之相似,但是由于隐式和显式两种方法本身的差异,它们之间也有一些不同,请读者在具体使用前仔细查阅ABAQUS手册中的相关内容。

ABAQUS VUMAT初学者用户子程序小例子

ABAQUS VUMAT初学者用户子程序小例子

trace = strainInc(i,1) + strainInc(i,2) + strainInc(i,3)
sig1 = stressOld(i,1) + alamda*trace + twomu*strainInc(i,1)
sig2 = stressOld(i,2) + alamda*trace + twomu*strainInc(i,2)
4 tempOld, stretchOld, defgradOld, fieldOld,
3 stressOld, stateOld, enerInternOld, enerInelasOld,
6 tempNew, stretchNew, defgradNew, fieldNew,
C Write only -
alamda = twomu * ( e - twomu ) / ( sixmu - two * e )
term = one / ( twomu * ( one + hard/thremu ) )
con1 = sqrt( twoThirds )
C
do 100 i = 1,nblock
C
C Trial stress
用户子程序文件可以使用文本编辑器进行编辑当然也可以用fortran编译器如果对自己的用户子程序文件的语法不放心可以先用fortan编译器进行编译不过编译前要先建立project关于fortran编译这里不再介绍
上一次发过《ABAQUS 初学者用户子程序小例子》,給学习 UMAT 的初学者带来了一定的帮助。现在用到 VUMAT,发现网上 这种小例子很少,关于 VUMAT 的资料也不多。摸索了一天,做个 VUMAT 的小例子供大家分享。

ABAQUS材料用户子程序UMAT学习报告

ABAQUS材料用户子程序UMAT学习报告

NDI:某一点上直接应力组件数。 NSHR:某一点上剪切应力组件数。 NTENS:总应力分量个数,(=NDI+NSHR)。
NSTATV:存储与解有关的状态变量数组个数。 PROPS (NPROPS):材料常数数组。 COORDS:当前积分点坐标。DROT(3,3) :旋转增量矩阵。 CELENT:特征元素长度。
载入 输入文件umat.inp,得到如下图形。
按下图所示操作载入umat.for子程序文件 按下图所示创建作业(Job)
点一击段S时ub间m后it之,后结,果结如果下如图下所图示所。示。
最后查看可视化后处理,得到如下云图。
2、验证利用UMAT进行二次开发的实例
实例:最简单的杆件单轴拉伸,材料本构模型ARDMLO子A程D序;;特此殊外分,布读的取牵结
果引文力件的可U采T用RAUCRLODAFIDL ;子温程度序场。边界的 UTEMP 。
4、用户定义的单元
对于特殊类型的单元,可采用 UEL 子程序进行定义。
5、用户定义的材料特性和本构关系
几乎可以用于力学行为分析的任何分析过程,几乎可 以把用户材料属性赋予 ABAQUS 中的任何单元。
必须在 UMAT 中提供材料本构的雅可比( Jacobian) 矩阵,即应力增量对应变增量的变化率。
2、UMAT书写格式
定义了一些相关参数与变量的 精确度,从 ABAQUS 安装目 录下可找到
UMAT 中的应力矩阵、应变矩阵以及矩阵 DDSDDE、 DDSDDT、 DRPLDE 等,都是直接分量存储在前,剪切分 量存储在后。直接分量有 NDI 个,剪切分量有 NSHR 个。 各分量之间的顺序根据单元自由度的不同有一些差异,所以 编写 UMAT 时要考虑到所使用单元的类别。

ABAQUS-二次开发资料-UMAT

ABAQUS-二次开发资料-UMAT

ABAQUS-⼆次开发资料-UMAT各个楼层及内容索引2-------------------------------------什么是UMAT3-------------------------------------UMAT功能简介4-------------------------------------UMAT开始的变量声明5-------------------------------------UMAT中各个变量的详细解释6-------------------------------------关于沙漏和横向剪切刚度7-------------------------------------UMAT流程和参数表格实例展⽰8-------------------------------------FORTRAN语⾔中的接⼝程序Interface9-------------------------------------关于UMAT是否可以⽤Fortran90编写的问题10-17--------------------------------Fortran77的⼀些有⽤的知识简介20-25\30-32-----------------------弹塑性⼒学相关知识简介34-37--------------------------------⽤户材料⼦程序实例JOhn-cook模型压缩包下载38-------------------------------------JOhn-cook模型本构简介图40-------------------------------------⽤户材料⼦程序实例JOhn-cook模型完整程序+david详细注解[欢迎⼤家来看看,并提供意见,完全是⾃⼰的diy的,不保证完全正确,希望共同探讨,以便更正,带"?"部分,还望各位⼤师\同仁指教]1什么是UMAT1.1 UMAT功能简介[-摘⾃庄茁⽼师的书UMAT⼦程序具有强⼤的功能,使⽤UMAT⼦程序:(1)可以定义材料的本构关系,使⽤ABAQUS材料库中没有包含的材料进⾏计算,扩充程序功能。

一起学习UMAT 的一些公式注释

一起学习UMAT 的一些公式注释

一起学习UMAT的一些公式注释ZHANG chunyuherrliubs comments in formulas知识积累和储备在进行ABAQUS子程序UMAT的编写前,要弄清楚:ABAQUS调用UMAT子程序流程;要建立的材料模型的本构关系和屈服准则等;UMAT子程序中相关参数、以及矩阵的表达。

主要求解过程:每一个增量步开始,ABAQUS主程序在单元积分点上调用UMAT 子程序,并转入应变增量、时间步长及荷载增量,同时也传入当前已知的状态的应力、应变及其他求解过程相关的变量;UMAT子程序根据本构方程求解应力增量及其他相关的变量,提供Jacobian矩阵给ABAQUS主程序以形成整体刚度矩阵;主程序结合当前荷载增量求解位移增量,继而进行平衡校核;如果不满足指定的误差,ABAQUS将进行迭代直到收敛,然后进行下一增量步的求解。

弹性力学相关知识(基本)仿真论坛(/forum.php ... &highlight=UMAT)ABAQUS二次开发版块这个人帖子结合例子,列出了弹性力学的基本公式。

UMAT变量含义UMAT中可以得到的量增量步开始时刻的,应力(Stress),应变(Strain), 状态变量(Solution-dependent state variables (SDVs))增量步开始时刻的,应变增量(Strain increment),转角增量(Rotation increment),变形梯度(Deformation gradient)时间总值及增量(Total and incremental values of time),温度(Temperature),用户定义场变量材料常数,材料点的位置,特征单元长度当前分析步,增量步必须定义的变量应力,状态变量,材料Jacobian矩阵(本构关系)可以定义的变量应变能,塑性耗能,蠕变耗能新建议的时间增量变量分类UMAT中可以直接调用(Call ……)的子程序或子函数SINV(STRESS,SINV1,SINV2,NDI,NSHR)——用于计算应力不变量。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、为何需要使用用户材料子程序(User-Defined Material, UMAT )?很简单,当ABAQUS 没有提供我们需要的材料模型时。

所以,在决定自己定义一种新的材料模型之前,最好对ABAQUS 已经提供的模型心中有数,并且尽量使用现有的模型,因为这些模型已经经过详细的验证,并被广泛接受。

UMAT 子程序具有强大的功能,使用UMAT 子程序:(1)可以定义材料的本构关系,使用ABAQUS 材料库中没有包含的材料进行计算,扩充程序功能。

(2) 几乎可以用于力学行为分析的任何分析过程,几乎可以把用户材料属性赋予ABAQU S 中的任何单元。

(3) 必须在UMAT 中提供材料本构模型的雅可比(Jacobian )矩阵,即应力增量对应变增量的变化率。

(4) 可以和用户子程序“USDFLD ”联合使用,通过“USDFLD ”重新定义单元每一物质点上传递到UMAT 中场变量的数值。

2、需要哪些基础知识?先看一下ABAQUS 手册(ABAQUS Analysis User's Manual )里的一段话:Warning: The use of this option generally requires considerable expertise(一定的专业知识). The user is cautioned that the implementation (实现) of any realistic constitutive (基本) model requires extensive (广泛的) development and testing. Initial testing on a single eleme nt model with prescribed traction loading (指定拉伸载荷) is strongly recommended. 但这并不意味着非力学专业,或者力学基础知识不很丰富者就只能望洋兴叹,因为我们的任务不是开发一套完整的有限元软件,而只是提供一个描述材料力学性能的本构方程(Constitutive equation )而已。

当然,最基本的一些概念和知识还是要具备的,比如:应力(stress),应变(strain )及其分量; volumetric part 和deviatoric part ;模量(modul us )、泊松比(Poisson’s ratio)、拉梅常数(Lame constant);矩阵的加减乘除甚至求逆;还有一些高等数学知识如积分、微分等。

3、UMAT 的基本任务?我们知道,有限元计算(增量方法)的基本问题是: 已知第n 步的结果(应力,应变等)n σ,n ε,然后给出一个应变增量1+n d ε,计算新的应力1+n σ。

UMAT 要完成这一计算,并要计算Jacobian 矩阵DDSDDE(I,J) =εσΔ∂Δ∂/。

σΔ是应力增量矩阵(张量或许更合适),εΔ是应变增量矩阵。

DDSDDE(I,J) 定义了第J 个应变分量的微小变化对第I 个应力分量带来的变化。

该矩阵只影响收敛速度,不影响计算结果的准确性(当然,不收敛自然得不到结果)。

4、怎样建立自己的材料模型?本构方程就是描述材料应力应变(增量)关系的数学公式,不是凭空想象出来的,而是根据实验结果作出的合理归纳。

比如对弹性材料,实验发现应力和应变同步线性增长,所以用一个简单的数学公式描述。

为了解释弹塑性材料的实验现象,又提出了一些弹塑性模型,并用数学公式表示出来。

对各向同性材料(Isotropic material),经常采用的办法是先研究材料单向应力-应变规律(如单向拉伸、压缩试验),并用一数学公式加以描述,然后把该规律推广到各应力分量。

这叫做“泛化“(generalization)。

5、一个完整的例子及解释由于主程序与UMAT之间存在数据传递,甚至一些公共变量,因此必须遵循有关UMAT的书写格式,UMAT 中常用的变量在文件开头予以定义,通常格式为:SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,1 RPL, DDSDDT, DRPLDE, DRPLDT,2 STRAN, DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,CMNAME,3 NDI,NSHR,NTENS,NSTATV,PROPS,NPROPS,COORDS,DROT,PNEWDT,4 CELENT,DFGRD0,DFGRD1,NOEL,NPT,LAYER,KSPT,KSTEP,KINC)INCLUDE 'ABA_PARAM.INC'CHARACTER*80 CMNAMEDIMENSION STRESS(NTENS),STATEV(NSTATV),1 DDSDDE(NTENS,NTENS),DDSDDT(NTENS),DRPLDE(NTENS),2 STRAN(NTENS),DSTRAN(NTENS),TIME(2),PREDEF(1),DPRED(1),3 PROPS(NPROPS),COORDS(3),DROT(3,3),DFGRD0(3,3),DFGRD1(3,3)user coding to define DDSDDE, STRESS, STATEV, SSE, SPD, SCDand, if necessary, RPL, DDSDDT, DRPLDE, DRPLDT, PNEWDTRETURNENDCOORDS 当前积分点的坐标DDSDDE ( NTENS NTENS)大小为NTENS×NTENS的Jacobian矩阵(εσΔ∂∂/),DΔDSDDE(I,J) 定义了第J个应变分量的微小变化对第I 个应力分量带来的变化。

通常Jacobian矩阵是一个对称矩阵,除非在“*USER MATERIAL”语句中加入了“UNSYMM”参数;需要更新DROT对Finite strain问题,应变应该排除旋转部分,该矩阵提供了旋转矩阵,详见下面的解释;已知DSTRAN (NTENS)应变增量dε,已知n1+DTIME增量步的时间增量dt;已知KSTEP,KINC 传到用户子程序当前的STEP和INCREMENT值NDI直接应力、应变个数,对三维问题、轴对称问题自然是3(11,22,33),平面问题是2(11,22);已知NOEL,NPT 积分点所在单元的编号和积分点的编号NSHR剪切应力、应变个数,三维问题时3(12,13,23),轴对称问题是1(12);已知NTENS=NDI+ NSHR,总应力分量的个数;已知PNEWDT可用来控制时间步的变化。

如果设置为小于1的数,则程序放弃当前计算,并用新的时间增量DTIME X PNEWDT作为新的时间增量计算;这对时间相关的材料如聚合物等有用;如果设为大余1的数,则下一个增量步加大DTIME为DTIME X PNEWDT。

可以更新。

PROPS (NPROPS)材料常数数组,如模量啊,粘度系数等等;材料参数的个数,等于关键词“*USER MATERIAL”中“CONSTANTS”常数设定的值;矩阵中元素的数值对应于关键词“USER MATERIAL”下面的数据行。

作为已知量传入;已知SSE,SPD,SCD 分别定义每一增量步的弹性应变能,塑性耗散和蠕变耗散。

它们对计算结果没有影响,仅仅作为能量输出STATEV (NSTATEV)状态变量矩阵,用来保存用户自己定义的一些变量,如累计塑性应变,粘弹性应变等等。

增量步开始时作为已知量传入,增量步结束应该更新STRAN (NTENS)当前应变数组ε,已知nSTRESS (NTENS)应力张量数组,对应NDI个直接分量和NSHR个剪切分σ中的数值通过U量。

在增量步的开始,应力张量矩阵nMAT和主程序之间的接口传递到UMAT中,在增量步的σ。

对于包含刚结束UMAT将对应力张量矩阵更新为1+n体转动的有限应变问题,一个增量步调用UMAT之前就已经对应力张量进行了刚体转动,因此UMAT中只需处理应力张量的共旋部分。

UMAT中应力张量的度量为柯西(真实)应力。

下面这个UMAT取自ABAQUS手册,是一个用于大变形下的弹塑性材料模型,注意的是这里需要了解J2理论。

SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,RPL,DDSDDT,1 DRPLDE,DRPLDT,STRAN,DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,2 CMNAME,NDI,NSHR,NTENS,NSTATV,PROPS,NPROPS,COORDS,DROT,3 PNEWDT,CELENT,DFGRD0,DFGRD1,NOEL,NPT,LAYER,KSPT,KSTEP,KINC)CINCLUDE 'ABA_PARAM.INC'定义了一些相关参数与变量什么,从ABAQUS安装目录下的子文件夹“…\site”中可找到CCHARACTER*8 CMNAMECDIMENSION STRESS(NTENS),STATEV(NSTATV),DDSDDE(NTENS,NTENS),1 DDSDDT(NTENS)(应变矩阵),DRPLDE(NTENS),STRAN(NTENS),DSTRAN(NTENS)(应变增量矩阵),2 PREDEF(1),DPRED(1),PROPS(NPROPS)(材料常数矩),COORDS(3),DROT(3,3)(旋转矩阵),3 DFGRD0(3,3),DFGRD1(3,3)声明矩阵的尺寸CC LOCAL ARRAYSC ----------------------------------------------------------------C EELAS - ELASTIC STRAINSC EPLAS - PLASTIC STRAINSC FLOW - DIRECTION OF PLASTIC FLOWC ----------------------------------------------------------------C局部变量,用来暂时保存弹性应变、塑性应变分量以及流动方向DIMENSION EELAS(6),EPLAS(6),FLOW(6)CPARAMETER(ZERO=0.D0,ONE=1.D0,TWO=2.D0,THREE=3.D0,SIX=6.D0,1 ENUMAX=.4999D0,NEWTON=10,TOLER=1.0D-6)CC ----------------------------------------------------------------C UMAT FOR ISOTROPIC ELASTICITY AND ISOTROPIC MISES PLASTICITYC CANNOT BE USED FOR PLANE STRESSC ----------------------------------------------------------------C PROPS(1) - EC PROPS(2) - NUC PROPS(3..) - SYIELD AN HARDENING DATAC CALLS HARDSUB FOR CURVE OF YIELD STRESS VS. PLASTIC STRAINC ----------------------------------------------------------------CC ELASTIC PROPERTIESC获取杨氏模量,泊松比,作为已知量由PROPS 向量传入EMOD=PROPS(1) EENU=PROPS(2) νEBULK3=EMOD/(ONE-TWO*ENU) 3K )21(3ν−=EkEG2=EMOD/(ONE+ENU) 2G )1(2υ+=EG EG=EG2/TWO G )1(2υ+=EG EG3=THREE*EG 3GELAM=(EBULK3-EG2)/THREE λ 3)23(G k −=λ DO K1=1,NTENSDO K2=1,NTENSDDSDDE(K1,K2)=ZEROEND DOEND DO 弹性部分,Jacobian 矩阵很容易计算⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡+++=G G G J 2G 2G 2G λλλλλλλλλ 注意,在ABAQUS 中,剪切应变采用工程剪切应变的定义j,i i,j ij u u +=γ,所以剪切部分模量是G 而不是2GC Jacobian 矩阵的程序C ELASTIC STIFFNESSCDO K1=1,NDIDO K2=1,NDIDDSDDE(K2,K1)=ELAMEND DODDSDDE(K1,K1)=EG2+ELAMEND DODO K1=NDI+1,NTENSDDSDDE(K1,K1)=EGEND DOCC RECOVER ELASTIC AND PLASTIC STRAINS AND ROTATE FORWARDC ALSO RECOVER EQUIVALENT PLASTIC STRAINC读取弹性应变分量,塑性应变分量,并旋转(调用了ROTSIG ),分别保存在EELAS 和EPLAS 中;CALL ROTSIG(STATEV( 1),DROT,EELAS,2,NDI,NSHR)CALL ROTSIG(STATEV(NTENS+1),DROT,EPLAS,2,NDI,NSHR)读取等效塑性应变EQPLAS=STATEV(1+2*NTENS)先假设没有发生塑性流动,按完全弹性变形计算试算应力 .1σσσεJ σΔ+=Δ=Δ+n nCC CALCULATE PREDICTOR STRESS AND ELASTIC STRAINCDO K1=1,NTENSDO K2=1,NTENSSTRESS(K2)=STRESS(K2)+DDSDDE(K2,K1)*DSTRAN(K1)END DOEELAS(K1)=EELAS(K1)+DSTRAN(K1)弹性应变分量END DOC计算Mises应力C CALCULATE EQUIVALENT VON MISES STRESSCSMISES=(STRESS(1)-STRESS(2))**2+(STRESS(2)-STRESS(3))**21 +(STRESS(3)-STRESS(1))**2DO K1=NDI+1,NTENSSMISES=SMISES+SIX*STRESS(K1)**2END DOSMISES=SQRT(SMISES/TWO)C 根据当前等效塑性应变,调用HARDSUB得到对应的屈服应力C GET YIELD STRESS FROM THE SPECIFIED HARDENING CURVECNVALUE=NPROPS/2-1CALL HARDSUB(SYIEL0,HARD,EQPLAS,PROPS(3),NVALUE)CC DETERMINE IF ACTIVELY YIELDINGC 如果Mises应力大余屈服应力,屈服发生,计算流动方向IF (SMISES.GT.(ONE+TOLER)*SYIEL0) THENCC ACTIVELY YIELDINGC SEPARATE THE HYDROSTATIC FROM THE DEVIATORIC STRESS C CALCULATE THE FLOW DIRECTIONCSHYDRO=(STRESS(1)+STRESS(2)+STRESS(3))/THREEDO K1=1,NDIFLOW(K1)=(STRESS(K1)-SHYDRO)/SMISESEND DODO K1=NDI+1,NTENSFLOW(K1)=STRESS(K1)/SMISESEND DOC根据J2理论并应用Newton-Rampson方法求得等效塑性应变增量C SOLVE FOR EQUIVALENT VON MISES STRESSC AND EQUIVALENT PLASTIC STRAIN INCREMENT USING NEWTON ITERATIO NCSYIELD=SYIEL0DEQPL=ZERODO KEWTON=1,NEWTONRHS=SMISES-EG3*DEQPL-SYIELDDEQPL=DEQPL+RHS/(EG3+HARD)CALL HARDSUB(SYIELD,HARD,EQPLAS+DEQPL,PROPS(3),NVALUE)IF(ABS(RHS).LT.TOLER*SYIEL0) GOTO 10END DOCC WRITE WARNING MESSAGE TO THE .MSG FILECWRITE(7,2) NEWTON2 FORMAT(//,30X,'***WARNING - PLASTICITY ALGORITHM DID NOT ',1 'CONVERGE AFTER ',I3,' ITERATIONS')10 CONTINUEσ,应变分量C更新应力n1+C UPDATE STRESS, ELASTIC AND PLASTIC STRAINS ANDC EQUIVALENT PLASTIC STRAINCDO K1=1,NDISTRESS(K1)=FLOW(K1)*SYIELD+SHYDROEPLAS(K1)=EPLAS(K1)+THREE/TWO*FLOW(K1)*DEQPLEELAS(K1)=EELAS(K1)-THREE/TWO*FLOW(K1)*DEQPLEND DODO K1=NDI+1,NTENSSTRESS(K1)=FLOW(K1)*SYIELDEPLAS(K1)=EPLAS(K1)+THREE*FLOW(K1)*DEQPLEELAS(K1)=EELAS(K1)-THREE*FLOW(K1)*DEQPLEND DOEQPLAS=EQPLAS+DEQPLCC CALCULATE PLASTIC DISSIPATIONCSPD=DEQPL*(SYIEL0+SYIELD)/TWOCC 计算塑性变形下的Jacobian矩阵FORMULATE THE JACOBIAN (MATERIAL TANGENT)C FIRST CALCULATE EFFECTIVE MODULICEFFG=EG*SYIELD/SMISESEFFG2=TWO*EFFGEFFG3=THREE/TWO*EFFG2EFFLAM=(EBULK3-EFFG2)/THREEEFFHRD=EG3*HARD/(EG3+HARD)-EFFG3c...if (props(7).lt..001) go to 99c...DO K1=1,NDIDO K2=1,NDIDDSDDE(K2,K1)=EFFLAMEND DODDSDDE(K1,K1)=EFFG2+EFFLAMEND DODO K1=NDI+1,NTENSDDSDDE(K1,K1)=EFFGEND DODO K1=1,NTENSDO K2=1,NTENSDDSDDE(K2,K1)=DDSDDE(K2,K1)+EFFHRD*FLOW(K2)*FLOW(K1) END DOEND DOc...99 continuec...ENDIFC将弹性应变,塑性应变分量保存到状态变量中,并传到下一个增量步C STORE ELASTIC AND (EQUIVALENT) PLASTIC STRAINSC IN STATE VARIABLE ARRAYCDO K1=1,NTENSSTATEV(K1)=EELAS(K1)STATEV(K1+NTENS)=EPLAS(K1)END DOSTATEV(1+2*NTENS)=EQPLASCRETURNENDc...c...子程序,根据等效塑性应变,利用插值的方法得到对应的屈服应力SUBROUTINE HARDSUB(SYIELD,HARD,EQPLAS,TABLE,NVALUE)CINCLUDE 'ABA_PARAM.INC'CDIMENSION TABLE(2,NVALUE)CPARAMETER(ZERO=0.D0)CC SET YIELD STRESS TO LAST VALUE OF TABLE, HARDENING TO ZERO CSYIELD=TABLE(1,NVALUE)HARD=ZEROC IF MORE THAN ONE ENTRY, SEARCH TABLECIF(NVALUE.GT.1) THENDO K1=1,NVALUE-1EQPL1=TABLE(2,K1+1)IF(EQPLAS.LT.EQPL1) THENEQPL0=TABLE(2,K1)IF(EQPL1.LE.EQPL0) THENWRITE(7,1)1 FORMAT(//,30X,'***ERROR - PLASTIC STRAIN MUST BE `,1 `ENTERED IN ASCENDING ORDER')CALL XITENDIFCC CURRENT YIELD STRESS AND HARDENING CDEQPL=EQPL1-EQPL0SYIEL0=TABLE(1,K1)SYIEL1=TABLE(1,K1+1)DSYIEL=SYIEL1-SYIEL0HARD=DSYIEL/DEQPLSYIELD=SYIEL0+(EQPLAS-EQPL0)*HARDGOTO 10ENDIFEND DO10 CONTINUEENDIFRETURNEND。

相关文档
最新文档