Dear all,
I am trying to use a UMAT subroutine. However, not even the simplest possible subroutine (which does nothing but print the variables passed into it)
SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,
1 RPL,DDSDDT,DRPLDE,DRPLDT,
2 STRAN,DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,CM NAME,
3 NDI,NSHR,NTENS,NSTATV,PROPS,NPROPS,COORDS,DROT,PNE WDT,
4 CELENT,DFGRD0,DFGRD1,NOEL,NPT,LAYER,KSPT,KSTEP,KIN C)
INCLUDE 'ABA_PARAM.INC'
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),DFGR D1(3,3)
! print *, 'stress', stress
print *, 'statev', statev
! print *, 'ddsdde', ddsdde
! print *, 'ddsddt', ddsddt
print *, 'drplde', drplde
print *, 'stran', stran
print *, 'dstran', dstran
print *, 'time', time
print *, 'predef', predef
print *, 'dpred', dpred
! print *, 'props', props
print *, 'coords', coords
print *, 'drot', drot
print *, 'dfgrd0', dfgrd0
print *, 'dfgrd1', dfgrd1
print *, 'dtime', dtime
print *, 'sse', sse
print *, 'spd', spd
print *, 'scd', scd
print *, 'drpldt', drpldt
print *, 'temp', temp
print *, 'dtemp', dtemp
print *, 'rpl', rpl
print *, 'pnewdt', pnewdt
print *, 'celent', celent
print *, 'material model name: ', cmname
print *, 'element number: ', noel
print *, 'step number: ', kstep
print *, 'ndi: ', ndi
print *, 'nshr: ', nshr
print *, 'ntens: ', ntens
print *, 'nstatv: ', nstatv
print *, 'nprops: ', nprops
print *, 'npt: ', npt
print *, 'layer: ', layer
print *, 'kspt: ', kspt
print *, 'increment number: ', kinc
end subroutine UMAT
works for me. NTENS takes the value of NSTATV and all the variables are more or less erroneous. I use the following lines in my *.inp-file
*MATERIAL,NAME=MAT
*USER MATERIAL,CONSTANTS=12,UNSYMM
1.0d-1, 1.0d-3, 300.0d0, 9.5d-1, 50.0d0, 1.0d0, 1.0d-4, 1.0d9
0, 0, 1.0d-1, 1.0d-3
*DEPVAR
700
so NPROPS, for example, should be 12, but the program prints
element number: 1
step number: 1
ndi: 3
nshr: 6
ntens: 700 this should be 3+6 = 9 (ndi+nshr)
nstatv: -1717986918 this should be 700 (*DEPVAR)
nprops: 392340719 this should be 12
npt: 0
layer: 0
kspt: 1
and whenever I touch KINC, the program crashes with error code 5.
I really do not know what to do here, but it is obvious to me that I am doing some really basic mistake. Any guidance in this matter would be highly appreciated.
Many thanks in advance.
muk


Reply With Quote

Bookmarks