首页 百科知识 用户子程序的用法

用户子程序的用法

时间:2022-11-06 百科知识 版权反馈
【摘要】:运行带有用户子程序UMAT的模型作业有两种方法:ABAQUS/CAE用法:在Job模块中,点击左侧工具栏上按钮,弹出Job manager对话框,点击右侧按钮,ABAQUS将调用ABAQUS/Standard或ABAQUS/Explicit求解器进行求解,直至分析完成或出错异常退出。因此,在一般的情况下,建议用户在ABAQUS Command环境中进行模型的分析。

4.3.5 UMAT用户子程序的用法

应用UMAT用户子程序分析具体问题时,一般的步骤如下:

1)在ABAQUS/CAE的Property模块中输入用户材料参数值和状态变量个数

用户材料参数值,即UMAT用户子程序中PROPS数组的值,如在修正Burgers模型中的用户参数分别为PROPS(1):温度T,PROPS(2):虎克弹簧的杨氏模量E1,PROPS(3):虎克弹簧的泊松比μ1,PROPS(4):开尔文单元中弹簧的杨氏模量E1,PROPS(5):开尔文单元中粘壶的黏滞系数η2,PROPS(6):外置粘壶的参数A,PROPS(7):外置粘壶的参数B。请注意,这7个数值只是1个温度下的参数,如果有多个温度下的材料参数,需要在ABAQUS/CAE的Property模块中按照上述顺序再依次输入相应的参数值。

提示:对于上述修正Burgers模型的用户子程序(burgers.for),如果用户只输入一组参数,那么意味着蠕变分析针对的是恒温分析情况,即整个模型各个积分点的温度值相同,此时瞬态温度场蠕变UMAT退化为恒温蠕变UMAT子程序,用户输入的参数必须是此恒温温度值及对应的参数。

状态变量个数即UMAT子程序中与解答有关的状态变量个数(Depvar),如在修正Burgers模型中与解答有关的状态变量个数为15个(3+2*NTENS=3+2*6=15)。

在ABAQUS/CAE窗口顶部的环境栏img397中选择特性(Property)模块。

点击左侧工具栏img398(Create Material)按钮,弹出Edit Material对话框,在Name后的输入框内输入材料的名字,如SMA;点击General,在弹出的下拉菜单中选择User Material(图4.14a),在Mechanical constants下的输入框中依次输入用户材料参数值(图4.14b)。至此,即完成了用户材料参数的输入。

点击General,在弹出的下拉菜单中选择Depvar,在Number of solution-dependent state variables后输入状态变量的个数,如在修正Burgers模型中为15(图4.14c)。至此,完成了Depvar参数的设置。点击img399按钮。

提示:设置Depvar的数值,也可直接在*.inp文件中进行。其用法如下:

*Material,name=SMA

*Depvar

15,

*User Material,constants=28

...

请注意,*Depvar参数必须位于*Material数据块中。

img400

图4.14 定义用户材料参数值

2)在ABAQUS/CAE的Job模块中指定相应的UMAT子程序

在ABAQUS/CAE窗口顶部的环境栏img401中选择作业(Job)模块。

img402

图4.15 Edit Job对话框中用户子程序的选取

点击左侧工具栏img403(Create Job)按钮,弹出Create Job对话框,点击img404按钮,弹出Edit Job对话框;点击General选项卡,点击User subroutine file后的img405按钮,弹出Select User Subroutine File对话框,选择用户编写的用户子程序,如burgers.for(图4.15),点击img406按钮,再次点击img407按钮。

提示:如预在ABAQUS Command环境中运行带有UMAT的模型,本步骤可以省略。

3)运行带有用户子程序UMAT的模型作业

运行带有用户子程序UMAT的模型作业有两种方法:ABAQUS/CAE用法:在Job模块中,点击左侧工具栏上img408(Job Manager)按钮,弹出Job manager对话框,点击右侧img409按钮,ABAQUS将调用ABAQUS/Standard或ABAQUS/Explicit求解器进行求解,直至分析完成或出错异常退出。

ABAQUS Command用法:依次点击[开始]→[所有程序]→[ABAQUS 6.5-1]→[ABAQUS Command],打开ABAQUS Command环境;输入以下命令:abaqus job=****(*.inp文件名,不需要inp后缀)user=****(用户材料子程序名,不需要for后缀)int,按Enter键。这时ABAQUS也将调用ABAQUS/Standard或ABAQUS/Explicit求解器进行求解,直至分析完成或出错异常退出。

提示:在ABAQUS Command中运行模型的执行效率一般高于在ABAQUS/CAE中运行模型的效率,主要的原因在于ABAQUS/CAE本身将额外占用较大的内存空间。因此,在一般的情况下,建议用户在ABAQUS Command环境中进行模型的分析。

另外,在ABAQUS中如需调用多个用户子程序(不一定是UMAT子程序),这时需要将多个用户子程序放入一个子程序文件中,然后按照上述方法进行调用。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈