Shufen
Student
- Oct 19, 2016
- 13
Hi all,
I am trying to model a phase transformation simulation in ABAQUS. I am trying to achieve this by using the subroutines USDFLD, UMAT, UMATH and UEXPAN. The phase fractions will be calculated by USFLD as a function of temperature and the phase fractions as SDVs will be passed on to the subsequent other subroutines. I tried a test run on USDFLD to see the accuracy of the SDV being returned. For this I wrote the following simple subroutine to return the nodal temperature as STATEV(1). However, the SDV1 is always coming out to be zero. Can you please suggest me where the problem is? Thank you.
Regards
Shufen
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)
INCLUDE 'ABA_PARAM.INC'
C
CHARACTER*80 CMNAME
DIMENSION FIELD(NFIELD),STATEV(NSTATV),DIRECT(3,3),T(3,3),TIME(2)
DIMENSION ARRAY(15),JARRAY(15),JMAC(*),JMATYP(*),COORD(*)
CALL GETVRM('TEMP',ARRAY,JARRAY,FLGRAY,JRCD,JMAC,JMATYP,MATLAYO,LACCFLA)
STATEV(1) = ARRAY(1)
RETURN
END
I am trying to model a phase transformation simulation in ABAQUS. I am trying to achieve this by using the subroutines USDFLD, UMAT, UMATH and UEXPAN. The phase fractions will be calculated by USFLD as a function of temperature and the phase fractions as SDVs will be passed on to the subsequent other subroutines. I tried a test run on USDFLD to see the accuracy of the SDV being returned. For this I wrote the following simple subroutine to return the nodal temperature as STATEV(1). However, the SDV1 is always coming out to be zero. Can you please suggest me where the problem is? Thank you.
Regards
Shufen
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)
INCLUDE 'ABA_PARAM.INC'
C
CHARACTER*80 CMNAME
DIMENSION FIELD(NFIELD),STATEV(NSTATV),DIRECT(3,3),T(3,3),TIME(2)
DIMENSION ARRAY(15),JARRAY(15),JMAC(*),JMATYP(*),COORD(*)
CALL GETVRM('TEMP',ARRAY,JARRAY,FLGRAY,JRCD,JMAC,JMATYP,MATLAYO,LACCFLA)
STATEV(1) = ARRAY(1)
RETURN
END