aravinda_UOM
Materials
- Jan 28, 2020
- 3
Dear All,
I have written both USDFLD subroutine and hetval subroutine to define Tire curing simulation. however I noticed that I am not getting the STATE variable as temperature to hetval subroutine from subroutine USDFLD. WHen I see STATEV(1) from abaqus post processor i do not see anything and marked as zero. Any body could you please help me to spot the error. I attached my single elemtn input file as well. I have mentioned both codes below.Please help me to solve this.
Thanks a lot.
Aravinda
SUBROUTINE USDFLD(FIELD,STATEV,PNEWDT,DIRECT,T,CELENT,
1 TIME,DTIME,CMNAME,ORNAME,NFIELD,NSTATV,NOEL,NPT,LAYER,
2 KSPT,KSTEP,KINC,NDI,NSHR,COORD,JMAC,JMATYP,MATLAYO,
3 LACCFLA)
C
INCLUDE 'ABA_PARAM.INC'
C
CHARACTER*80 CMNAME,ORNAME
CHARACTER*3 FLGRAY(15)
DIMENSION FIELD(NFIELD),STATEV(NSTATV),DIRECT(3,3),
1 T(3,3),TIME(2)
DIMENSION ARRAY(15),JARRAY(15),JMAC(*),JMATYP(*),
1 COORD(*)
C
C Absolute value of current strain:
CALL GETVRM('TEMP',ARRAY,JARRAY,FLGRAY,JRCD,JMAC,JMATYP,
1 MATLAYO,LACCFLA)
TEMP= ARRAY(1)
FIELD(1) = TEMP
STATEV(1) = FIELD(1)
C If error, write comment to .DAT file:
IF(JRCD.NE.0)THEN
WRITE(6,*) 'REQUEST ERROR IN USDFLD FOR ELEMENT NUMBER ',
1 NOEL,'INTEGRATION POINT NUMBER ',NPT
ENDIF
C
RETURN
END
c------------------------------------------------------------------------------------
SUBROUTINE HETVAL(CMNAME,TEMP,TIME,DTIME,SVAR,FLUX,PREDEF,
1 DPRED)
INCLUDE 'ABA_PARAM.INC'
C
CHARACTER*80 CMNAME
DIMENSION TEMP(2),SVAR(1),PREDEF(1),TIME(2),FLUX(2),DPRED(*),
1 STATEV(10)
Real*8 RATE,B1,C,D,F,X1,X,G,X2,alpha
Real*8 FLUX,STATEV
C
k0 = 1.0e0
T0 = 1.3971e4
E = -9.20e2
R = 8.314e0
N=1.5e0
C
C Calculation of Rate Constant
C = -E/(R*STATEV(1))
B1=EXP(C)
RATE=k0*B1
C Calculation of Induction Time
D=T0/STATEV(1)
F=EXP(D)
G=k0*F
C Calculation of state of cure (alpha)
X=(TIME(1)-G)
c end do
c X1(1)=X(1)**N
c X2(1)=RATE(1)*X1(1)
c alpha(1) = X2(1)/(1+X2(1))
FLUX(1)=0.5
STATEV(2) = X
RETURN
END
I have written both USDFLD subroutine and hetval subroutine to define Tire curing simulation. however I noticed that I am not getting the STATE variable as temperature to hetval subroutine from subroutine USDFLD. WHen I see STATEV(1) from abaqus post processor i do not see anything and marked as zero. Any body could you please help me to spot the error. I attached my single elemtn input file as well. I have mentioned both codes below.Please help me to solve this.
Thanks a lot.
Aravinda
SUBROUTINE USDFLD(FIELD,STATEV,PNEWDT,DIRECT,T,CELENT,
1 TIME,DTIME,CMNAME,ORNAME,NFIELD,NSTATV,NOEL,NPT,LAYER,
2 KSPT,KSTEP,KINC,NDI,NSHR,COORD,JMAC,JMATYP,MATLAYO,
3 LACCFLA)
C
INCLUDE 'ABA_PARAM.INC'
C
CHARACTER*80 CMNAME,ORNAME
CHARACTER*3 FLGRAY(15)
DIMENSION FIELD(NFIELD),STATEV(NSTATV),DIRECT(3,3),
1 T(3,3),TIME(2)
DIMENSION ARRAY(15),JARRAY(15),JMAC(*),JMATYP(*),
1 COORD(*)
C
C Absolute value of current strain:
CALL GETVRM('TEMP',ARRAY,JARRAY,FLGRAY,JRCD,JMAC,JMATYP,
1 MATLAYO,LACCFLA)
TEMP= ARRAY(1)
FIELD(1) = TEMP
STATEV(1) = FIELD(1)
C If error, write comment to .DAT file:
IF(JRCD.NE.0)THEN
WRITE(6,*) 'REQUEST ERROR IN USDFLD FOR ELEMENT NUMBER ',
1 NOEL,'INTEGRATION POINT NUMBER ',NPT
ENDIF
C
RETURN
END
c------------------------------------------------------------------------------------
SUBROUTINE HETVAL(CMNAME,TEMP,TIME,DTIME,SVAR,FLUX,PREDEF,
1 DPRED)
INCLUDE 'ABA_PARAM.INC'
C
CHARACTER*80 CMNAME
DIMENSION TEMP(2),SVAR(1),PREDEF(1),TIME(2),FLUX(2),DPRED(*),
1 STATEV(10)
Real*8 RATE,B1,C,D,F,X1,X,G,X2,alpha
Real*8 FLUX,STATEV
C
k0 = 1.0e0
T0 = 1.3971e4
E = -9.20e2
R = 8.314e0
N=1.5e0
C
C Calculation of Rate Constant
C = -E/(R*STATEV(1))
B1=EXP(C)
RATE=k0*B1
C Calculation of Induction Time
D=T0/STATEV(1)
F=EXP(D)
G=k0*F
C Calculation of state of cure (alpha)
X=(TIME(1)-G)
c end do
c X1(1)=X(1)**N
c X2(1)=RATE(1)*X1(1)
c alpha(1) = X2(1)/(1+X2(1))
FLUX(1)=0.5
STATEV(2) = X
RETURN
END