kuangyu
Materials
- Aug 21, 2012
- 1
Hi,all.
Recently I have to define nonlinear behaviours of thermoplastic by USDFLD in ABAQUS. However i am quite new in coding. Could you please help me checking my code? Thanks a lot for your help. Some details about my model are listed below.
The nonlinear behaviors of thermoplastic is demonstrated by the equation
E= E0*[1-exp(-k*e)]/(k*e)
In the equation, k=46.1, E0=802, e is the strain from the analysis. The Young's modulus E depends on the strain e.
Before the USDFLD code, I add a SDVINI code to define the initia young's modulus which equals to E0. Unfortunately I am not sure about the SDVINI code also.
Codes
If you can do some corrections to my coding, it will be really appreciable. Thanks.
Best Regards,
Kuang Yu
Recently I have to define nonlinear behaviours of thermoplastic by USDFLD in ABAQUS. However i am quite new in coding. Could you please help me checking my code? Thanks a lot for your help. Some details about my model are listed below.
The nonlinear behaviors of thermoplastic is demonstrated by the equation
E= E0*[1-exp(-k*e)]/(k*e)
In the equation, k=46.1, E0=802, e is the strain from the analysis. The Young's modulus E depends on the strain e.
Before the USDFLD code, I add a SDVINI code to define the initia young's modulus which equals to E0. Unfortunately I am not sure about the SDVINI code also.
Codes
Code:
SUBROUTINE SDVINI(STATEV,COORDS,NSTATV,NCRDS,NOEL,NPT,LAYER,KSPT)
C
INCLUDE 'ABA_PARAM.INC'
C
DIMENSION STATEV(NSTATV),COORDS(NCRDS)
C
STATEV(1)=802
C
RETURN
END
SUBROUTINE USDFLD(FIELD,STATEV,PNEWDT,DIRECT,T,CELENT,
1 TIME,DTIME,CMNAME,ORNAME,NFIELD,NSTATV,NOEL,NPT,LAYER,
2 KSPT,KSTEPKINC,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 USER CODE START
c DO IT ONLY FOR SPECIFIC MATERIAL
IF (cmname .EQ. 'THERMOPLASTIC HDPE') THEN
C
C DEFINE CONSTANTS
C
K = 46.1
E0 = 802
C GET CURRENT STRAIN (VALUE EE) AND SAVE IT INTO 'ARRAY'
CALL GETVRM('E',ARRAY,JARRAY,FLGRAY,JRCD,JMAC,JMATYP,
MATLAYO,LACCFLA)
C E1 OUTPUT = ARRAY(1) AND GET ABSOLUTE VALUE
EPS = ABS(ARRAY(1))
C CALCULATE THE Em
Em = E0*(1-EXP(-K*EPS))/(K*EPS)
C USE Em AS A FIELD VARIABLE
FIELD(1) = Em
c STORE Em AS A SOLUTION DEPENDENT STATE VARIABLE
STATEV(1) = FIELD(1)
C
RETURN
END
If you can do some corrections to my coding, it will be really appreciable. Thanks.
Best Regards,
Kuang Yu