首页 理论教育UMAT的调用方法及分析

UMAT的调用方法及分析

【摘要】:用户子程序UMAT具有如下特点:可以根据需求自定义材料本构关系,结合ABAQUS强大的非线性求解器,使用材料库中没有的材料进行计算,以扩充程序功能。在ABAQUS/Standard软件中调用UMAT的流程图已在4.4.2节中给出。从前述介绍可以看出,应用ABAQUS提供给的Fortran程序接口UMAT,可以自行定义ABAQUS材料库中没有的材料本构方程和算法,实现材料损伤特性的引入。

用户材料子程序UMAT(User-defined Material's Mechanical Behavior)是ABAQUS提供给用户进行材料本构模型二次开发的一个用户子程序接口,可以定义用户所需要的各类材料本构模型,这大大增强了ABAQUS的应用范围和灵活性。

用户子程序UMAT具有如下特点:

(1)可以根据需求自定义材料本构关系,结合ABAQUS强大的非线性求解器,使用材料库中没有的材料进行计算,以扩充程序功能。

(2)可以在所有的材料积分点处调用该子程序,以实现用户自定义的材料行为的应用。

(3)几乎可以用于力学行为分析的任何过程,也几乎能把用户材料属性赋予任何单元

(4)可以定义状态变量作为用户子程序的中间变量,以实现程序功能。可以输出计算过程中需要的自定义变量值。

(5)必须提供材料本构方程的雅可比矩阵,即应力增量对应变增量的变化率矩阵。

(6)可以在将数据传入主程序前,联合子程序USDFLD重新定义单元物质点上传递到UMAT中的场变量数值,实现按照自己的需求将相应的变量或数据传入主程序中。

(7)可以和用户子程序UVARM联合使用,将本构关系中自定义的变量输出到结果文件中,从而可以利用ABAQUS自带的后处理功能将自定义的变量进行显示。

UMAT子程序采用Fortran语言编写,从主程序获取数据,计算单元的材料积分点的雅可比矩阵,并更新应力张量和状态变量;UMAT子程序的核心内容就是给出定义材料本构模型的雅可比矩阵(Jaccobian矩阵,即应力增量对应变增量的变化率,Δσ为应力增量,Δε为应变增量),并更新应力提供给ABAQUS主程序。

在ABAQUS/Standard软件中调用UMAT的流程图(图4.17)已在4.4.2节中给出。按照ABAQUS非线性增量加载技术和平衡迭代求解算法,若软件在运行过程中发现子程序模块存在,将在每个载荷增量步和迭代步中调用这个模块。每个增量步初次迭代中,用户子程序会被调用两次。第一次调用中,应用增量步初始时的模型构造,生成初始刚度矩阵;第二次调用中,基于改进后的模型构造,生成新的刚度阵。在增量步随后的迭代过程中,利用上一次迭代得到的刚度修正模型构造,初次迭代完成后,每次迭代中所有用户子程序只被调用一次。

ABAQUS调用UMAT子程序的求解过程可表述如下:每一个增量步初始时,主程序路径将在单元积分点上调用UMAT,通过UMAT接口进入子程序,单元当前积分点处的必要变量的初始值以及应变增量、时间步长及载荷增量等变化值将随之传入;UMAT子程序在该增量步中根据本构方程求解应力增量并对应力及其他相关变量(例如塑性应变等状态变量)进行更新,变量的更新值将通过接口返回主程序,材料的雅可比矩阵(应力增量对应变增量的变化率矩阵)也一并提供给ABAQUS主程序以形成下次迭代时的单元切线刚度矩阵和结构整体刚度矩阵;主程序结合当前载荷增量求解位移增量,继而进行平衡校核;若不满足制定的误差条件,ABAQUS将进行迭代直到认为收敛,然后进行下一增量步的求解。

从前述介绍可以看出,应用ABAQUS提供给的Fortran程序接口UMAT,可以自行定义ABAQUS材料库中没有的材料本构方程和算法,实现材料损伤特性的引入。