ABAQUS初学者用户子程序小例子
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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 ----------------------------------------------------------------
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)
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
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
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
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
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
67, 0.0399999991, 0.0299999993, 0.270000011
68, 0.0399999991, 0.0199999996, 0.270000011
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
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
*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 **
实例:最简单的杆件单轴拉伸,材料本构模型采用线弹性模型, 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 的数值即 可。
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
3 结果 以下两张图分布是用户子程序和 ABAQUS 自带的材料模型得到的应力
云图,可以看出两种图形完全相同。
4 UMAT 子程序 对于初学者来说,需要注意的是,FORTRAN 对于程序语言格式上的要求。例如,对于
FORTRAN 语言,前六个字符必须空出来,等等。检查语法最好的方法就是在 FORTRAN 编 译器上进行编译。
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
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
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
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
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
**
** 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
建模大家都会,故省略
2 ABAQUS 调用用户子程序
大家在论坛上也可以看到很多方法,我这里指介绍最简单的一种。 在 Job Manager 中点击 Edit 选项,在 General 选项的最后一项中选择自己建立好的用户 子程序文件。(注:用户子程序文件可以使用文本编辑器进行编辑,当然也可以用 Fortran 编译器,如果对自己的用户子程序文件的语法不放心,可以先用 Fortan 编译器进行编译, 不过编译前要先建立 Project,关于 Fortran 编译,这里不再介绍)。 完成后,点击 submit 即可进行分析。
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 输入文件
3, 0.0399999991, 0.0199999996, 0.400000006
4, 0.039999Hale Waihona Puke Baidu991, 0.00999999978, 0.400000006
5, 0.0399999991,
0., 0.400000006
6, 0.0399999991, 0.0399999991, 0.389999986
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)
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
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
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
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
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
67, 0.0399999991, 0.0299999993, 0.270000011
68, 0.0399999991, 0.0199999996, 0.270000011
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
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
*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 **
实例:最简单的杆件单轴拉伸,材料本构模型采用线弹性模型, 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 的数值即 可。
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
3 结果 以下两张图分布是用户子程序和 ABAQUS 自带的材料模型得到的应力
云图,可以看出两种图形完全相同。
4 UMAT 子程序 对于初学者来说,需要注意的是,FORTRAN 对于程序语言格式上的要求。例如,对于
FORTRAN 语言,前六个字符必须空出来,等等。检查语法最好的方法就是在 FORTRAN 编 译器上进行编译。
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
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
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
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
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
**
** 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
建模大家都会,故省略
2 ABAQUS 调用用户子程序
大家在论坛上也可以看到很多方法,我这里指介绍最简单的一种。 在 Job Manager 中点击 Edit 选项,在 General 选项的最后一项中选择自己建立好的用户 子程序文件。(注:用户子程序文件可以使用文本编辑器进行编辑,当然也可以用 Fortran 编译器,如果对自己的用户子程序文件的语法不放心,可以先用 Fortan 编译器进行编译, 不过编译前要先建立 Project,关于 Fortran 编译,这里不再介绍)。 完成后,点击 submit 即可进行分析。
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 输入文件
3, 0.0399999991, 0.0199999996, 0.400000006
4, 0.039999Hale Waihona Puke Baidu991, 0.00999999978, 0.400000006
5, 0.0399999991,
0., 0.400000006
6, 0.0399999991, 0.0399999991, 0.389999986