UMAT-ABAQUS
A general framework to develop material models (UMAT) in ABAQUS
main.f90
Go to the documentation of this file.
2 use,intrinsic :: iso_fortran_env
3 include 'ABA_PARAM.INC'
4 include 'PARAM_UMAT.INC'
5 
6 !C ADD COMMON BLOCKS HERE IF NEEDED ()
7 !C COMMON /KBLOCK/KBLOCK
8 
9 parameter(ntens = 6, nstatev = nsdv, nprops = 6, ndi=3, nshr=3)
10 parameter(noel = 1, npt = 8)
11 !
12 CHARACTER*8 CMNAME
13 dimension stress(ntens),statev(nstatev),ddsdde(ntens,ntens),ddsddt(ntens), &
14 drplde(ntens),stran(ntens),dstran(ntens),time(2),predef(1),dpred(1), &
15 props(nprops),coords(3),drot(3,3),dfgrd0(3,3),dfgrd1(3,3)
16 !
17 i=1.0d0
18 j=1.0d0
19 DO i=1,ntens
20  DO j=1,ntens
21  ddsdde(i,j)=0.0d0
22  ENDDO
23  stress(i)=0.0d0
24 ENDDO
25 !
26 ! DEFORMATION GRADIENT
27 dfgrd1(1,1)= 1.1d0
28 dfgrd1(1,2)= 0.0d0
29 dfgrd1(1,3)= 0.0d0
30 dfgrd1(2,1)= 0.0d0
31 dfgrd1(2,2)= 1.0d0/dfgrd1(1,1)
32 dfgrd1(2,3)= 0.0d0
33 dfgrd1(3,1)= 0.0d0
34 dfgrd1(3,2)= 0.0d0
35 dfgrd1(3,3)= 1.0d0/dfgrd1(1,1)
36 !
37 time(1)=0.d0
38 time(2)=0.d0
39 call uexternaldb(0,0,time,0.d0,0,0)
40 !
41 ! MATERIAL PROPERTIES
42 !
43 ! k PENALTY PARAMETER
44 props(1)=2.d0/100000.d0
45 ! ISOTROPIC MATRIX
46 ! C10=
47 props(2)=1.00d0
48 ! C01
49 props(3)=1.00d0
50 !k1
51 props(4)=1.00d0
52 !k2
53 props(5)=0.1d0
54 !kappa
55 props(6)=0.1d0
56 !
57 ! !viscous parameters - maxwell
58 ! ! v - number of dashpots
59 ! PROPS(17)=0
60 ! !tau1 %
61 ! PROPS(18)=2.0d0
62 ! !teta1
63 ! PROPS(19)=0.835d0
64 ! !tau2 %
65 ! PROPS(20)=1.2d0
66 ! !teta2
67 ! PROPS(21)=7.0d0
68 ! !tau3 %
69 ! PROPS(22)=12.d0
70 ! !teta3
71 ! PROPS(23)=2.0d0
72 ! !
73 statev=0.d0
74 !
75 erf=0.d0
76 rho=0.d0
77 !
78 !
79  dfgrd1(1,1)= 1.0d0
80  dfgrd1(1,2)= 0.0d0
81  dfgrd1(1,3)= 0.0d0
82  dfgrd1(2,1)= 0.0d0
83  dfgrd1(2,2)= 1.0d0
84  dfgrd1(2,3)= 0.0d0
85  dfgrd1(3,1)= 0.0d0
86  dfgrd1(3,2)= 0.0d0
87  dfgrd1(3,3)= 1.0d0
88 !
89 !################################################################################################!
90 !! TENSILE MONOTONIC LOAD TEST
91  dfgrd1(1,1)= 1.2d0
92  dfgrd1(1,2)= 0.0d0
93  dfgrd1(1,3)= 0.0d0
94  dfgrd1(2,1)= 0.0d0
95  dfgrd1(2,2)= 1/sqrt(dfgrd1(1,1))
96  dfgrd1(2,3)= 0.0d0
97  dfgrd1(3,1)= 0.0d0
98  dfgrd1(3,2)= 0.0d0
99  dfgrd1(3,3)= 1/sqrt(dfgrd1(1,1))
100 !
101  CALL umat(stress,statev,ddsdde,sse,spd,scd,rpl,ddsddt, drplde,drpldt,stran, &
102 dstran,time,dtime,temp,dtemp,predef,dpred,cmname,ndi,nshr,ntens,nstatev,props, &
103 nprops,coords,drot,pnewdt,celent,dfgrd0,dfgrd1,noel,npt,layer,kspt,kstep,kinc)
104 
105  write(*,*) stress
106  write(*,*)
107  write(*,*) ddsdde
108 close(150)
109 !################################################################################################!
110 !
111 END PROGRAM
subroutine uexternaldb(LOP, LRESTART, TIME, DTIME, KSTEP, KINC)
Definition: uexternaldb.for:2
program test_general_umat
Definition: main.f90:1
subroutine umat(STRESS, STATEV, DDSDDE, SSE, SPD, SCD, RPL, DDSDDT, DRPLDE, DRPLDT, STRAN, DSTRAN, TIME, DTIME, TEMP, DTEMP, PREDEF, DPRED, CMNAME, NDI, NSHR, NTENS, NSTATEV, PROPS, NPROPS, COORDS, DROT, PNEWDT, CELENT, DFGRD0, DFGRD1, NOEL, NPT, LAYER, KSPT, KSTEP, KINC)
Record of revisions: | Date Programmer Description of change | ==== ========== =====================...
Definition: _umat.for:31