当前位置:首页 > UMAT全过程-技术篇
ABAQUS不仅提供标准的有限元分析程序,而且具有良好的开放性,可利用它
提供的用户子程序接口生成非标准的分析程序来满足用户的需要,在实际工程中得
到广泛应用。ABAQUS允许用户通过子程序以代码的形式来扩展主程序的功能,并
给用户提供了强大而又灵活的用户子程序接口和应用程序接口(Utility Routine),
ABAQUS 6.4一共有42个用户子程序接口,15个应用程序接口,用户可以定义包括
边界条件、荷载条件、接触条件、材料特性以及利用用户子程序和其它应用软件进
行数值交换等等。这些用户子程序接口使得用户解决一些问题时有很大的灵活性,
同时大大的扩充了ABAQUS的功能。例如:
通过用户定义单元接口,用户自定义的任何类型的线性或非线性单元都可以被引入模型中,对于线性单元刚度矩阵和质量矩阵可以直接确定。同时,用户子程序也可被用来定义这些单元的线性和非线性特性。 通过用户材料子程序接口,用户可定义任何补充的材料模型,不但任意数量的
材料常数都可以作为资料被读取,而且ABAQUS对于任何数量的与解相
关的状态变
量在每一材料计数点都提供了存储功能,以便在这些子程序中应用。
3.用户子程序和主程序的结合
ABAQUS的用户子程序是根据ABAQUS提供的相应接口,按照Fortran语法,用户自己编写的代码。它是一个独立的程序单元,可以独立的被存储和编译,也能被其它程序单元引用,因此,利用它可带回大量数据供引用程序使用,也可以用它来完成各种特殊的功能。它的一般结构形式是:
SUBROUTINE S(x1,x2,??,xn)
INCLUDE‘ABA_PARAM.INC’(用于ABAQUS/Standard用户子程序中)
OR INCLUDE‘VABA_PARAM.INC’)(用于ABAQUS/Explicit用户子程序中) ?? RETURN END
x1,x2,??,xn是ABAQUS提供的用户子程序的接口参数,有些参数是ABAQUS传到用户子程序中的,例如SUBROUTINE DLOAD中的KSTEP、KINC、COORDS;有些是需要用户自己定义的,例如F。文件aba_param.inc和vaba_param.inc随着ABAQUS软件的安装而包含在操作系统中,它们含有重要的参数,帮助ABAQUS主求解程序对用户子程序进行编译和链
接。当控制遇到RETURN语句时便返回到引用程序单元中去,END语句是用户子程序结束的标志。
在一个算例中,用户可以用到多个用户子程序,但必须把它们放在一个以.for为
扩展名的文件中。运行带有用户子程序的算例同时有两种方法:一是在CAE中运行,
在EDIT JOB菜单中的GENERAL子菜单的USER SUBROUTINE FILE对话框中选择用户子程序所在的文件即可;另外是在ABAQUS.COMMAND中运行,语法如下:
abaqus job=job-name user={source-file|object-file} 编制用户子程序时应注意:
(1)用户子程序相互之间不能调用,但可以调用用户自己编写的Fortran子程序
和ABAQUS应用程序。ABAQUS应用程序必须由用户子程序调用。当用户编写
Fortran子程序时,建议子程序名以K开头,以免和ABAQUS内部程序冲突。
(2)当用户在用户子程序中利用OPEN打开外部文件时,要注意以下两点:一是
设备号的选择是有限制的,只能取15~18和大于100的设备号,其余的都已被
ABAQUS占用;二是用户需提供外部文件的绝对路径而不是相对路径。 (3)对于不同的用户子程序ABAQUS调用的时间是不同的,有的是在每个STEP
的开始,有的是STEP的结尾,有的是在每个INCREMENT的开始等等。当ABAQUS
调用用户子程序时,都会把当前的STEP和INCREMENT利用用户子程序的两个实
参KSTEP和KINC传给用户子程序,用户可把它们输出到外部文件中,这样就可清
楚的知道ABAQUS何时调用该用户子程序。
为保证用户子程序的正确执行,子程序的书写必须遵循ABAQUS的相关规定.
4.用户材料子程序UMAT接口的原理
用户材料子程序(User-defined Material Mechanical Behavior,简称UMAT)是
ABAQUS提供给用户定义自己的材料属性的Fortran程序接口,使用户能使用ABAQUS材料库中没有定义的材料模型。用户材料子程序UMAT通过与ABAQUS主求解程序的接口实现与ABAQUS的资料交流.在输入文件中,使用关键词“*USER MATERIAL”表示定义用户材料属性。[更详细相关知识,请看帖子ABAQUS-UMAT-自学知识整理贴[已经初步完成,不断完善更新,请跟帖讨论]
共分享92篇相关文档