实例:最简单的杆件单轴拉伸,材料本构模型采用线弹性模型,
E=206000MPa,
ν
=0.3。左端约束,右端施加均布力 q=1。
Author: xueweek 希望这个小例子能帮助初学者减少一两天的摸索时间
1 材料本构模型:
σ
=E
ε
在 Property 中定义材料时,在 General 下选中 User Material,输入 206000,0.3。
以上两个数值代表 E、
ν
,在用户子程序中代表着 PROPS(1)、PROPS(2)。然 后 在 General
下选中 Depvar,由于该例子中没有使用状态变量,因此在第一项中输入大于 0 的数值即
可。
建模大家都会,故省略
2 ABAQUS 调用用户子程序
大家在论坛上也可以看到很多方法,我这里指介绍最简单的一种。
在
Job Manager
中点击
Edit
选项,在
General
选项的最后一项中选择自己建立好的用户
子程序文件。(注:用户子程序文件可以使用文本编辑器进行编辑,当然也可以用
Fortran
编译器,如果对自己的用户子程序文件的语法不放心,可以先用
Fortan
编译器进行编译,
不过编译前要先建立
Project
,关于
Fortran
编译,这里不再介绍)。
完成后,点击
submit
即可进行分析。
3 结果
以下两张图分布是用户子程序和 ABAQUS 自带的材料模型得到的应力
云图,可以看出两种图形完全相同。
4
UMAT
子程序
对于初学者来说,需要注意的是,
FORTRAN
对于程序语言格式上的要求。例如,对于
FORTRAN
语言,前六个字符必须空出来,等等。检查语法最好的方法就是在
FORTRAN
编
译器上进行编译。
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)
include 'aba_param.inc'
CHARACTER*8 CMNAME
DIMENSION STRESS(NTENS),STATEV(NSTATV),DDSDDE(NTENS,NTENS),
1 DDSDDT(NTENS),DRPLDE(NTENS),STRAN(NTENS),DSTRAN(NTENS),
2 TIME(2),PREDEF(1),DPRED(1),PROPS(NPROPS),COORDS(3),DROT(3,3),
3 DFGRD0(3,3),DFGRD1(3,3)
C UMAT FOR ISOTROPIC ELASTICITY
C CANNOT BE USED FOR PLANE STRESS
C ----------------------------------------------------------------
C PROPS(1) - E
C PROPS(2) - NU
C ----------------------------------------------------------------
C
IF (NDI.NE.3) THEN
WRITE (6,*) 'THIS UMAT MAY ONLY BE USED FOR ELEMENTS
1 WITH THREE DIRECT STRESS COMPONENTS'
CALL XIT
ENDIF
C
C ELASTIC PROPERTIES
EMOD=PROPS(1)
ENU=PROPS(2)
EBULK3=EMOD/(1-2*ENU)
EG2=EMOD/(1+ENU)
EG=EG2/2
EG3=3*EG
ELAM=(EBULK3-EG2)/3
C
C ELASTIC STIFFNESS
C
DO K1=1, NDI
DO K2=1, NDI
DDSDDE(K2, K1)=ELAM
END DO
DDSDDE(K1, K1)=EG2+ELAM
END DO
DO K1=NDI+1, NTENS
DDSDDE(K1 ,K1)=EG
END DO
C
C CALCULATE STRESS
C
DO K1=1, NTENS
DO K2=1, NTENS
STRESS(K2)=STRESS(K2)+DDSDDE(K2, K1)*DSTRAN(K1)
END DO
END DO
C
RETURN
END
5
INP
输入文件
*Heading
** Job name: Job-1 Model name: Model-1
** Generated by: Abaqus/CAE 6.10-1
*Preprint, echo=NO, model=NO, history=NO, contact=NO
**
** PARTS
**
*Part, name=Part-1
*End Part
**
**
** ASSEMBLY
**
*Assembly, name=Assembly
**
*Instance, name=Part-1-1, part=Part-1
*Node
1, 0.0399999991, 0.0399999991, 0.400000006
2, 0.0399999991, 0.0299999993, 0.400000006
3, 0.0399999991, 0.0199999996, 0.400000006
4, 0.0399999991, 0.00999999978, 0.400000006
5, 0.0399999991, 0., 0.400000006
6, 0.0399999991, 0.0399999991, 0.389999986
7, 0.0399999991, 0.0299999993, 0.389999986
8, 0.0399999991, 0.0199999996, 0.389999986
9, 0.0399999991, 0.00999999978, 0.389999986
10, 0.0399999991, 0., 0.389999986
11, 0.0399999991, 0.0399999991, 0.379999995
12, 0.0399999991, 0.0299999993, 0.379999995
13, 0.0399999991, 0.0199999996, 0.379999995
14, 0.0399999991, 0.00999999978, 0.379999995
15, 0.0399999991, 0., 0.379999995
16, 0.0399999991, 0.0399999991, 0.370000005
17, 0.0399999991, 0.0299999993, 0.370000005
18, 0.0399999991, 0.0199999996, 0.370000005
19, 0.0399999991, 0.00999999978, 0.370000005
20, 0.0399999991, 0., 0.370000005
21, 0.0399999991, 0.0399999991, 0.360000014
22, 0.0399999991, 0.0299999993, 0.360000014
23, 0.0399999991, 0.0199999996, 0.360000014
24, 0.0399999991, 0.00999999978, 0.360000014
25, 0.0399999991, 0., 0.360000014
26, 0.0399999991, 0.0399999991, 0.349999994
27, 0.0399999991, 0.0299999993, 0.349999994
28, 0.0399999991, 0.0199999996, 0.349999994
29, 0.0399999991, 0.00999999978, 0.349999994
30, 0.0399999991, 0., 0.349999994
31, 0.0399999991, 0.0399999991, 0.340000004
32, 0.0399999991, 0.0299999993, 0.340000004
33, 0.0399999991, 0.0199999996, 0.340000004
34, 0.0399999991, 0.00999999978, 0.340000004
35, 0.0399999991, 0., 0.340000004
36, 0.0399999991, 0.0399999991, 0.330000013
37, 0.0399999991, 0.0299999993, 0.330000013
38, 0.0399999991, 0.0199999996, 0.330000013
39, 0.0399999991, 0.00999999978, 0.330000013
40, 0.0399999991, 0., 0.330000013
41, 0.0399999991, 0.0399999991, 0.319999993
42, 0.0399999991, 0.0299999993, 0.319999993
43, 0.0399999991, 0.0199999996, 0.319999993
44, 0.0399999991, 0.00999999978, 0.319999993
45, 0.0399999991, 0., 0.319999993
46, 0.0399999991, 0.0399999991, 0.310000002
47, 0.0399999991, 0.0299999993, 0.310000002
48, 0.0399999991, 0.0199999996, 0.310000002
49, 0.0399999991, 0.00999999978, 0.310000002
50, 0.0399999991, 0., 0.310000002
51, 0.0399999991, 0.0399999991, 0.300000012
52, 0.0399999991, 0.0299999993, 0.300000012
53, 0.0399999991, 0.0199999996, 0.300000012
54, 0.0399999991, 0.00999999978, 0.300000012
55, 0.0399999991, 0., 0.300000012
56, 0.0399999991, 0.0399999991, 0.289999992
57, 0.0399999991, 0.0299999993, 0.289999992
58, 0.0399999991, 0.0199999996, 0.289999992
59, 0.0399999991, 0.00999999978, 0.289999992
60, 0.0399999991, 0., 0.289999992
61, 0.0399999991, 0.0399999991, 0.280000001
62, 0.0399999991, 0.0299999993, 0.280000001
63, 0.0399999991, 0.0199999996, 0.280000001
64, 0.0399999991, 0.00999999978, 0.280000001
65, 0.0399999991, 0., 0.280000001
66, 0.0399999991, 0.0399999991, 0.270000011
67, 0.0399999991, 0.0299999993, 0.270000011
68, 0.0399999991, 0.0199999996, 0.270000011
69, 0.0399999991, 0.00999999978, 0.270000011
70, 0.0399999991, 0., 0.270000011
71, 0.0399999991, 0.0399999991, 0.25999999
72, 0.0399999991, 0.0299999993, 0.25999999
73, 0.0399999991, 0.0199999996, 0.25999999