v0.16.0
Loading...
Searching...
No Matches
umat_small_strain.for
Go to the documentation of this file.
1!**********************************************************************
2! Small strain isotropic elasticity UMAT
3!
4! props(1) - Young's modulus
5! props(2) - Poisson ratio
6!**********************************************************************
7
8 subroutine umat(stress,statev,ddsdde,sse,spd,scd,
9 + rpl,ddsddt,drplde,drpldt,
10 + stran,dstran,time,dtime,temp,dtemp,predef,dpred,cmname,
11 + ndi,nshr,ntens,nstatv,props,nprops,coords,drot,pnewdt,
12 + celent,dfgrd0,dfgrd1,noel,npt,layer,kspt,kstep,kinc)
13
14 implicit real*8(a-h,o-z)
15
16 dimension stress(ntens),statev(nstatv),
17 + ddsdde(ntens,ntens),ddsddt(ntens),drplde(ntens),
18 + stran(ntens),dstran(ntens),time(2),predef(1),dpred(1),
19 + props(nprops),coords(3),drot(3,3),dfgrd0(3,3),dfgrd1(3,3)
20
21 character*80 cmname
22
23 integer i,j
24
25 real*8 eye(3,3),eps(3,3),sigma(3,3)
26 real*8 young,nu,mu,kappa,lambda,treps
27
28
29 real*8 zero,one,two,half,three,third
30 parameter(zero=0.d0,one=1.d0,two=2.d0,half=0.5d0,three=3.d0,
31 + third=1.d0/3.d0)
32
33 eye = zero
34 do i=1,3
35 eye(i,i) = one
36 enddo
37
38 young = props(1)
39 nu = props(2)
40 mu = young/(two*(one+nu))
41 kappa = young/(three*(one-two*nu))
42 lambda = kappa - two*third*mu
43
44 eps = half*(dfgrd1 + transpose(dfgrd1)) - eye
45 treps = eps(1,1) + eps(2,2) + eps(3,3)
46 sigma = two*mu*eps + lambda*treps*eye
47
48 stress(1) = sigma(1,1)
49 stress(2) = sigma(2,2)
50 stress(3) = sigma(3,3)
51 stress(4) = sigma(1,2)
52 if(ntens.eq.6) then
53 stress(5) = sigma(1,3)
54 stress(6) = sigma(2,3)
55 endif
56
57 ddsdde = zero
58
59 do i=1,3
60 ddsdde(i,i) = lambda + two*mu
61 enddo
62 do i=1,3
63 do j=1,3
64 if(i.ne.j) ddsdde(i,j) = lambda
65 enddo
66 enddo
67 do i=4,ntens
68 ddsdde(i,i) = mu
69 enddo
70
71 return
72 end subroutine umat
73
74***********************************************************************
subroutine umat(stress, statev, ddsdde, sse, spd, scd, rpl, ddsddt, drplde, drpldt, stran, dstran, time, dtime, temp, dtemp, predef, dpred, cmname, ndi, nshr, ntens, nstatv, props, nprops, coords, drot, pnewdt, celent, dfgrd0, dfgrd1, noel, npt, layer, kspt, kstep, kinc)