M.Hassani
Civil/Environmental
- Feb 21, 2020
- 1
Hello
I want to model expansion in abaqus and i want to decrease modulus of elasticity and concrete damage plasticity. I have some data indicate that modulus of elasticity and compressive and tensile strength decrease in different free expansions.
for example when the free expansion is 0.001mm, modulus of elasticity and compressive and tensile strength reach at 80 and 75 and 70 percent.
I wrote USDFLD and UEXPAN subroutine and defined field variable in abaqus to decrease modulus of elasticity and compressive and tensile behavior. But when i check the results, i see there is no difference between when i define field for compressive and tensile behavior or not. Abaqus just used USDFLD for decreasing modulus of elasticity. I attached the input file.
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'
CHARACTER*80 CMNAME,ORNAME
CHARACTER*3 FLGRAY(15)
DIMENSION FIELD(NFIELD),STATEV(NSTATV),DIRECT(3,3),T(3,3),TIME(2)
DIMENSION ARRAY(700),JARRAY(700),JMAC(*),JMATYP(*),COORD(*)
!Reading instantaneous stress in direction 11,22,33(axial)
CALL GETVRM('S',ARRAY,JARRAY,FLGRAY,JRCD,JMAC,JMATYP,MATLAYO,
1 LACCFLA)
S11=ARRAY(1)
S22=ARRAY(2)
S33=ARRAY(3)
STATEV(1)=S11
STATEV(2)=S22
STATEV(3)=S33
if (TIME(2) .GE. 0)then
field(1)=0.001*Time(2)
field(1)=statev(4)
end if
OPEN(1,FILE='D:\UEXPAN\Console2\Console2\1\N1.TXT',
1 ACCESS='APPEND')
WRITE(1,*)"--------------------------------------------"
WRITE(1,*)field(1),S11
CLOSE(1)
RETURN
END SUBROUTINE
SUBROUTINE UEXPAN(EXPAN,DEXPANDT,TEMP,TIME,DTIME,PREDEF,DPRED,
1 STATEV,CMNAME,NSTATV,NOEL)
INCLUDE 'ABA_PARAM.INC'
CHARACTER*80 CMNAME
DIMENSION EXPAN(*),DEXPANDT(*),TEMP(2),TIME(2),PREDEF(*),DPRED(*),
1 STATEV(NSTATV),ARRAY(15)
S11=STATEV(1)
S22=STATEV(2)
S33=STATEV(3)
if ((CMNAME .EQ. "CONCRETE") .AND. (TIME(2) .GE. 0))then
IF (S11 .LT. 0)THEN
SX1=S11
ELSE
SX1=0
end if
IF (S22 .LT. 0)THEN
SX2=S22
ELSE
SX2=0
end if
IF (S33 .LT. 0)THEN
SX3=S33
ELSE
SX3=0
end if
IF (SX1 .GT. -5)THEN
EXPAN(1)=(1+(SX1/5))*statev(4)
else
EXPAN(1)=0
End if
IF (SX2 .GT. -5)THEN
EXPAN(2)=(1+(SX2/5))*statev(4)
else
EXPAN(2)=0
end if
IF (SX3 .GT. -5)THEN
EXPAN(3)=(1+(SX3/5))*statev(4)
else
EXPAN(3)=0
end if
END IF
OPEN(1,FILE='D:\UEXPAN\Console2\Console2\1\N2.TXT',
1 ACCESS='APPEND')
WRITE(1,*)"--------------------------------------------"
WRITE(1,*)s11,s22,sx1,sx2,EXPAN(1)
CLOSE(1)
RETURN
END SUBROUTINE
I want to model expansion in abaqus and i want to decrease modulus of elasticity and concrete damage plasticity. I have some data indicate that modulus of elasticity and compressive and tensile strength decrease in different free expansions.
for example when the free expansion is 0.001mm, modulus of elasticity and compressive and tensile strength reach at 80 and 75 and 70 percent.
I wrote USDFLD and UEXPAN subroutine and defined field variable in abaqus to decrease modulus of elasticity and compressive and tensile behavior. But when i check the results, i see there is no difference between when i define field for compressive and tensile behavior or not. Abaqus just used USDFLD for decreasing modulus of elasticity. I attached the input file.
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'
CHARACTER*80 CMNAME,ORNAME
CHARACTER*3 FLGRAY(15)
DIMENSION FIELD(NFIELD),STATEV(NSTATV),DIRECT(3,3),T(3,3),TIME(2)
DIMENSION ARRAY(700),JARRAY(700),JMAC(*),JMATYP(*),COORD(*)
!Reading instantaneous stress in direction 11,22,33(axial)
CALL GETVRM('S',ARRAY,JARRAY,FLGRAY,JRCD,JMAC,JMATYP,MATLAYO,
1 LACCFLA)
S11=ARRAY(1)
S22=ARRAY(2)
S33=ARRAY(3)
STATEV(1)=S11
STATEV(2)=S22
STATEV(3)=S33
if (TIME(2) .GE. 0)then
field(1)=0.001*Time(2)
field(1)=statev(4)
end if
OPEN(1,FILE='D:\UEXPAN\Console2\Console2\1\N1.TXT',
1 ACCESS='APPEND')
WRITE(1,*)"--------------------------------------------"
WRITE(1,*)field(1),S11
CLOSE(1)
RETURN
END SUBROUTINE
SUBROUTINE UEXPAN(EXPAN,DEXPANDT,TEMP,TIME,DTIME,PREDEF,DPRED,
1 STATEV,CMNAME,NSTATV,NOEL)
INCLUDE 'ABA_PARAM.INC'
CHARACTER*80 CMNAME
DIMENSION EXPAN(*),DEXPANDT(*),TEMP(2),TIME(2),PREDEF(*),DPRED(*),
1 STATEV(NSTATV),ARRAY(15)
S11=STATEV(1)
S22=STATEV(2)
S33=STATEV(3)
if ((CMNAME .EQ. "CONCRETE") .AND. (TIME(2) .GE. 0))then
IF (S11 .LT. 0)THEN
SX1=S11
ELSE
SX1=0
end if
IF (S22 .LT. 0)THEN
SX2=S22
ELSE
SX2=0
end if
IF (S33 .LT. 0)THEN
SX3=S33
ELSE
SX3=0
end if
IF (SX1 .GT. -5)THEN
EXPAN(1)=(1+(SX1/5))*statev(4)
else
EXPAN(1)=0
End if
IF (SX2 .GT. -5)THEN
EXPAN(2)=(1+(SX2/5))*statev(4)
else
EXPAN(2)=0
end if
IF (SX3 .GT. -5)THEN
EXPAN(3)=(1+(SX3/5))*statev(4)
else
EXPAN(3)=0
end if
END IF
OPEN(1,FILE='D:\UEXPAN\Console2\Console2\1\N2.TXT',
1 ACCESS='APPEND')
WRITE(1,*)"--------------------------------------------"
WRITE(1,*)s11,s22,sx1,sx2,EXPAN(1)
CLOSE(1)
RETURN
END SUBROUTINE