-
Notifications
You must be signed in to change notification settings - Fork 36
/
UMAT_linear_elastic_material.for
98 lines (74 loc) · 3.1 KB
/
UMAT_linear_elastic_material.for
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
C ABAQUS Subroutine for linear elastic material
C
C More Infos can be found at
C https://abaqus-docs.mit.edu/2017/English/SIMACAESUBRefMap/simasub-c-umat.htm
C---------------------------------------------------------------------------------------
C Start of Base code, DO NOT change
C---------------------------------------------------------------------------------------
SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,
1 RPL,DDSDDT,DRPLDE,DRPLDT,
2 STRAN,DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,CMNAME,
3 NDI,NSHR,NTENS,NSTATV,PROPS,NPROPS,COORDS,DROT,PNEWDT,
4 CELENT,DFGRD0,DFGRD1,NOEL,NPT,LAYER,KSPT,JSTEP,KINC)
C
INCLUDE 'ABA_PARAM.INC'
C
CHARACTER*80 CMNAME
DIMENSION STRESS(NTENS),STATEV(NSTATV),
1 DDSDDE(NTENS,NTENS),DDSDDT(NTENS),DRPLDE(NTENS),
2 STRAN(NTENS),DSTRAN(NTENS),TIME(2),PREDEF(1),DPRED(1),
3 PROPS(NPROPS),COORDS(3),DROT(3,3),DFGRD0(3,3),DFGRD1(3,3),
4 JSTEP(4)
C---------------------------------------------------------------------------------------
C End of Base code
C---------------------------------------------------------------------------------------
C---------------------------------------------------------------------------------------
C Start of USER code
C---------------------------------------------------------------------------------------
C PROPS(NPROPS)
C User-specified array of material constants associated with this user material.
C
C NPROPS
C User-defined number of material constants associated with this user material.
C
C PROPS(1) = Elasticity Modulus
C PROPS(2) = Poisson's Ratio
C G = Shear Modulus
E=PROPS(1)
v=PROPS(2)
G=E/(2.D0*(1.D0+v))
C DDSDDE(NTENS,NTENS)
C Jacobian matrix of the constitutive model
C NTENS
C Size of the stress or strain component array (NDI + NSHR).
C NDI
C Number of direct stress components at this point.
C NSHR
C Number of engineering shear stress components at this point.
DO i=1, NDI
DO j=1, NDI
DDSDDE(j, i)=(E*v)/((1.D0+v)*(1.D0-2.D0*v))
END DO
DDSDDE(i, i)=(E*(1.D0-v))/((1.D0+v)*(1.D0-2.D0*v))
END DO
DO i=NDI+1, NTENS
DDSDDE(i ,i)=G
END DO
C Calculation of STRESSES
C
C STRESS(NTENS)
C This array is passed in as the stress tensor at the beginning of the increment and must be updated
C in this routine to be the stress tensor at the end of the increment.
C
C DSTRAN(NTENS)
C Array of strain increments.
DO i=1, NTENS
DO j=1, NTENS
STRESS(j)=STRESS(j)+DDSDDE(j, i)*DSTRAN(i)
END DO
END DO
C---------------------------------------------------------------------------------------
C End of USER code
C---------------------------------------------------------------------------------------
RETURN
END