CalculiX  2.13
A Free Software Three-Dimensional Structural Finite Element Program
umat.f File Reference

Go to the source code of this file.

Functions/Subroutines

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)
 

Function/Subroutine Documentation

◆ umat()

subroutine umat ( real*8, dimension(ntens)  stress,
real*8, dimension(nstatv)  statev,
real*8, dimension(ntens,ntens)  ddsdde,
real*8  sse,
real*8  spd,
real*8  scd,
real*8  rpl,
real*8, dimension(ntens)  ddsddt,
real*8, dimension(ntens)  drplde,
real*8  drpldt,
real*8, dimension(ntens)  stran,
real*8, dimension(ntens)  dstran,
real*8, dimension(2)  time,
real*8  dtime,
real*8  temp,
real*8  dtemp,
real*8  predef,
real*8  dpred,
character*80  cmname,
integer  ndi,
integer  nshr,
integer  ntens,
integer  nstatv,
real*8, dimension(nprops)  props,
integer  nprops,
real*8, dimension(3)  coords,
real*8, dimension(3,3)  drot,
real*8  pnewdt,
real*8  celent,
real*8, dimension(3,3)  dfgrd0,
real*8, dimension(3,3)  dfgrd1,
integer  noel,
integer  npt,
integer  layer,
integer  kspt,
integer  kstep,
integer  kinc 
)
24 !
25 ! here, an ABAQUS umat routine can be inserted
26 !
27 ! note that reals should be double precision (REAL*8)
28 !
29  implicit none
30 !
31  character*80 cmname
32 !
33  integer ndi,nshr,ntens,nstatv,nprops,noel,npt,layer,kspt,
34  & kstep,kinc
35 !
36  real*8 stress(ntens),statev(nstatv),
37  & ddsdde(ntens,ntens),ddsddt(ntens),drplde(ntens),
38  & stran(ntens),dstran(ntens),time(2),celent,
39  & props(nprops),coords(3),drot(3,3),dfgrd0(3,3),dfgrd1(3,3),
40  & sse,spd,scd,rpl,drpldt,dtime,temp,dtemp,predef,dpred,
41  & pnewdt
42 !
43 ! START EXAMPLE LINEAR ELASTIC MATERIAL
44 !
45  integer i,j
46  real*8 e,un,al,um,am1,am2
47 !
48 c write(*,*) 'noel,npt ',noel,npt
49 c write(*,*) 'stress ',(stress(i),i=1,6)
50 c write(*,*) 'stran ',(stran(i),i=1,6)
51 c write(*,*) 'dstran ',(dstran(i),i=1,6)
52 c write(*,*) 'drot ',((drot(i,j),i=1,3),j=1,3)
53  e=props(1)
54  un=props(2)
55  al=un*e/(1.d0+un)/(1.d0-2.d0*un)
56  um=e/2.d0/(1.d0+un)
57  am1=al+2.d0*um
58  am2=um
59 !
60 ! stress
61 !
62  stress(1)=stress(1)+am1*dstran(1)+al*(dstran(2)+dstran(3))
63  stress(2)=stress(2)+am1*dstran(2)+al*(dstran(1)+dstran(3))
64  stress(3)=stress(3)+am1*dstran(3)+al*(dstran(1)+dstran(2))
65  stress(4)=stress(4)+am2*dstran(4)
66  stress(5)=stress(5)+am2*dstran(5)
67  stress(6)=stress(6)+am2*dstran(6)
68 !
69 ! stiffness
70 !
71  do i=1,6
72  do j=1,6
73  ddsdde(i,j)=0.d0
74  enddo
75  enddo
76  ddsdde(1,1)=al+2.d0*um
77  ddsdde(1,2)=al
78  ddsdde(2,1)=al
79  ddsdde(2,2)=al+2.d0*um
80  ddsdde(1,3)=al
81  ddsdde(3,1)=al
82  ddsdde(2,3)=al
83  ddsdde(3,2)=al
84  ddsdde(3,3)=al+2.d0*um
85  ddsdde(4,4)=um
86  ddsdde(5,5)=um
87  ddsdde(6,6)=um
88 !
89 ! END EXAMPLE LINEAR ELASTIC MATERIAL
90 !
91  return
Hosted by OpenAircraft.com, (Michigan UAV, LLC)