bscarpin
2013-07-30 19:16:10 UTC
Dear all,
I have made a subroutine to characterize a material under creep conditions and I am having some issues running it. I am using it in just one element under traction load to test if it works.
The equation is made of the strain rate (function of some constants and a state variable "H") and the state variable rate. The evolution of the state variable characterizes the first stage of creep, and it saturates in a given value, so the second stage starts.
The analisys starts but it is aborted due to an "system error code 144". I know this can be because a division by zero, but it is not the case.I've tried iniializing the STATEV(1) as a value diferent from zero and it doesn't work.
Looking at the log file, the STATE(1) stays with the value zero and the strain grows slowly...until the error occurs.
I don't know if i have to use another subroutine (like USDFLD) to increment the state variable and how I can do this.
I would be grateful if someone could help me..thank you!
Bruno
SUBROUTINE CREEP(DECRA,DESWA,STATEV,SERD,EC,ESW,P,QTILD,
1 TEMP,DTEMP,PREDEF,DPRED,TIME,DTIME,CMNAME,LEXIMP,LEND,
2 COORDS,NSTATV,NOEL,NPT,LAYER,KSPT,KSTEP,KINC)
C
INCLUDE 'ABA_PARAM.INC'
C
CHARACTER*80 CMNAME
C
DIMENSION DECRA(5),DESWA(5),STATEV(1),PREDEF(*),DPRED(*),
1 TIME(2),COORDS(*),EC(2),ESW(2)
C
C Defining material constants
A = 5E-010
B = 0.8
h = 926.
n = 0.9
H_SAT = 0.2
C
C State Variable (back stress)
C
H = STATEV(1)
C
C Strain increment for implicit and explicit integration
C
DECRA(1) = A*(sinh(B*QTILD*(1.-H)))*DTIME
IF(LEXIMP.EQ.1) THEN
DECRA(5) = A*B*(1.-H)*cosh(B*QTILD*(1.-H))*DTIME
ENDIF
C
C State variable increment
C
inc_H = (A*(sinh(B*QTILD*(1.-H))))*(h/(QTILD**n))*
1 (1.-(H/H_SAT))
C
C Updating state variable
C
H = H + inc_H*DTIME
STATEV(1) = H
C
WRITE(*,*)'STATEV1',STATEV(1)
WRITE(*,*)'DECRA1',DECRA(1)
C
RETURN
END
I have made a subroutine to characterize a material under creep conditions and I am having some issues running it. I am using it in just one element under traction load to test if it works.
The equation is made of the strain rate (function of some constants and a state variable "H") and the state variable rate. The evolution of the state variable characterizes the first stage of creep, and it saturates in a given value, so the second stage starts.
The analisys starts but it is aborted due to an "system error code 144". I know this can be because a division by zero, but it is not the case.I've tried iniializing the STATEV(1) as a value diferent from zero and it doesn't work.
Looking at the log file, the STATE(1) stays with the value zero and the strain grows slowly...until the error occurs.
I don't know if i have to use another subroutine (like USDFLD) to increment the state variable and how I can do this.
I would be grateful if someone could help me..thank you!
Bruno
SUBROUTINE CREEP(DECRA,DESWA,STATEV,SERD,EC,ESW,P,QTILD,
1 TEMP,DTEMP,PREDEF,DPRED,TIME,DTIME,CMNAME,LEXIMP,LEND,
2 COORDS,NSTATV,NOEL,NPT,LAYER,KSPT,KSTEP,KINC)
C
INCLUDE 'ABA_PARAM.INC'
C
CHARACTER*80 CMNAME
C
DIMENSION DECRA(5),DESWA(5),STATEV(1),PREDEF(*),DPRED(*),
1 TIME(2),COORDS(*),EC(2),ESW(2)
C
C Defining material constants
A = 5E-010
B = 0.8
h = 926.
n = 0.9
H_SAT = 0.2
C
C State Variable (back stress)
C
H = STATEV(1)
C
C Strain increment for implicit and explicit integration
C
DECRA(1) = A*(sinh(B*QTILD*(1.-H)))*DTIME
IF(LEXIMP.EQ.1) THEN
DECRA(5) = A*B*(1.-H)*cosh(B*QTILD*(1.-H))*DTIME
ENDIF
C
C State variable increment
C
inc_H = (A*(sinh(B*QTILD*(1.-H))))*(h/(QTILD**n))*
1 (1.-(H/H_SAT))
C
C Updating state variable
C
H = H + inc_H*DTIME
STATEV(1) = H
C
WRITE(*,*)'STATEV1',STATEV(1)
WRITE(*,*)'DECRA1',DECRA(1)
C
RETURN
END