snowden
2004-08-23, 10:17
dear Jorgen:
I meet a problem. can you help me?
my question:
1. in abaqus, ABAQUS passs zero initial strain increment into subroutine umat and start the first increment of steps. but, in my model, there is a term which is devided by volumetric strain increment (dstran(1)+dstran(2)+dstran(3)). so, it can be implemented.
so can you give me some addvice to solve this problem?
2. this is my umat. in debeging, there is always a error:
code 1073741819.
can you help me with this problem?
many thanks!
SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,
1 RPL,DDSDDT,DRPLDE,DRPLDT,STRAN,DSTRAN,TIME,DTIME,
2 TEMP,DTEMP,PREDEF,DPREF,DPRED,MATERL,NDI,NSHR,NTEN S,
3 NSTATV,PROPS,NPROPS,COORDS,DROT,PNEWDT,CELENT,DFGR D0,
4 DFGRD1,NOEL,NPT,LAYER,KSPT,KSTEP,KINC)
C
INCLUDE 'ABA_PARAM.INC'
C
CHARACTER*80 CMNAME
DIMENSION STRESS(NTENS),STATEV(NSTATV),DDSDDE(NTENS,NTENS),
1 DDSDDT(NTENS),DRPLDE(NTENS),STRAN(NTENS),DSTRAN(NT ENS),
2 TIME(2),PREDEF(1),DPRED(1),PROPS(NPROPS),COORDS(3) ,DROT(3,3),
3 DFGRDO(3,3),DFGRD1(3,3)
DIMENSION CNE(6,6),GES(6),CALG11(6),CALG1(6,6),A(6),CALG(6,6 ),
1 SIGM(6),CN(6,6),TEMP(6),DSIGM(6),F(6)
DATA NEWTON,TOLER/10,1.0D-6/
C
c ELASTIC PROPERTIES
c
C IF(NPROPS.EQ.2) THEN
C
KAPAV=PROPS(1)
ENU=PROPS(2)
P0=PROPS(3)
c
C FORM THE UNIT STIFFNESS CNE, THE STIFFNESS EQUALS TO
C
IF(ENU.GT.0.4999.AND.ENU.LT.0.5001) ENU=0.499
EMOD=3.0*0.5*(1.0-2.0*ENU)/(1.0+ENU)
EG=1.0+4.0*EMOD/3.0
EG2=1.0-2.0*EMOD/3.0
ELAM=(EG-EG2)*0.5
C
C
C DEFINITE THE VOLUMETRIC STRAIN
C
DEV=0.0
DO K1=1,3
DEV=DEV+DSTRAN(K1)
ENDDO
C FORM THE CONSTANT ELASTIC STIFFNESS,CNE
C
DO 20 K1=1,6
DO 10 K2=1,6
CNE(K2,K1)=0.0
10 CONTINUE
20 CONTINUE
C
DO 40 K1=1,3
DO 30 K2=1,3
CNE(K2,K1)=EG2
30 CONTINUE
CNE(K1,K1)=EG
40 CONTINUE
CNE(4,4)=ELAM
C
SIGM=0.0
TEMP=0.0
PN=P0
DO 25 KNEWTON=1,NEWTON
K=PN/DEV*(EXP(DEV/KAPAV)-1.0)
DO I=1,NTENS
DO J=1,NTENS
C SIGM(J)=SIGM(J)+K*CNE(J,I)*DSTRAN(I)
DSIGM(I)=K*CNE(I,J)*DSTRAN(J)
SIGM(I)=SIGM(I)+K*CNE(I,J)*DSTRAN(J)
ENDDO
ENDDO
C
DO I=1,6
F(I)=SIGM(I)-TEMP(I)
ENDDO
C
DO I=1,6
IF(ABS(F(I)).LT.TOLER*SIGM(I)) GOTO 3
ENDDO
C
P=(SIGM(1)+SIGM(2)+SIGM(3))/3.0
C
PN=P
TEMP=SIGM
C
25 CONTINUE
WRITE(6,2) NEWTON
2 FORMAT(//,30X,'***WARNING-NOT CONVERGENCE',I3,'ITERATIONS')
3 CONTINUE
C
C UPDATE THE STRESS WHEN THE CONVERGENCE IS ACHIEVED
C
DO 60 K1=1,NTENS
STRESS(K1)=SIGM(K1)
60 CONTINUE
C FORM JACOBIAN MATRIX
C THE CONSISTENT TANGENT MODULI CALG: KN*CNE+(CNE:DE)*(PN+1/KAPAV-KN)/DEV
C
C
DO 500 K1=1,6
GES(K1)=1.0
500 CONTINUE
C
KN=(PN/(DEV))*(EXP(DEV/KAPAV)-1.0)
C
AA=(PN/DEV)*(EXP(DEV/KAPAV))/DEV-KN/DEV
A=AA*GES
C
DO I=1,6
DO J=1,6
CALG1(J,I)=(CNE(J,I)*DSTRAN(I))*A(I)
C
CALG(J,I)=KN*CNE(J,I)+CALG1(J,I)
ENDDO
ENDDO
C
DO I=1,NTENS
DO J=1,NTENS
DDSDDE(J,I)=0.0
ENDDO
ENDDO
C
DO I=1,NTENS
DO J=1,NTENS
DDSDDE(I,J)=DDSDDE(I,J)+CALG(I,J)
ENDDO
ENDDO
C
RETURN
END
many thanks
I meet a problem. can you help me?
my question:
1. in abaqus, ABAQUS passs zero initial strain increment into subroutine umat and start the first increment of steps. but, in my model, there is a term which is devided by volumetric strain increment (dstran(1)+dstran(2)+dstran(3)). so, it can be implemented.
so can you give me some addvice to solve this problem?
2. this is my umat. in debeging, there is always a error:
code 1073741819.
can you help me with this problem?
many thanks!
SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,
1 RPL,DDSDDT,DRPLDE,DRPLDT,STRAN,DSTRAN,TIME,DTIME,
2 TEMP,DTEMP,PREDEF,DPREF,DPRED,MATERL,NDI,NSHR,NTEN S,
3 NSTATV,PROPS,NPROPS,COORDS,DROT,PNEWDT,CELENT,DFGR D0,
4 DFGRD1,NOEL,NPT,LAYER,KSPT,KSTEP,KINC)
C
INCLUDE 'ABA_PARAM.INC'
C
CHARACTER*80 CMNAME
DIMENSION STRESS(NTENS),STATEV(NSTATV),DDSDDE(NTENS,NTENS),
1 DDSDDT(NTENS),DRPLDE(NTENS),STRAN(NTENS),DSTRAN(NT ENS),
2 TIME(2),PREDEF(1),DPRED(1),PROPS(NPROPS),COORDS(3) ,DROT(3,3),
3 DFGRDO(3,3),DFGRD1(3,3)
DIMENSION CNE(6,6),GES(6),CALG11(6),CALG1(6,6),A(6),CALG(6,6 ),
1 SIGM(6),CN(6,6),TEMP(6),DSIGM(6),F(6)
DATA NEWTON,TOLER/10,1.0D-6/
C
c ELASTIC PROPERTIES
c
C IF(NPROPS.EQ.2) THEN
C
KAPAV=PROPS(1)
ENU=PROPS(2)
P0=PROPS(3)
c
C FORM THE UNIT STIFFNESS CNE, THE STIFFNESS EQUALS TO
C
IF(ENU.GT.0.4999.AND.ENU.LT.0.5001) ENU=0.499
EMOD=3.0*0.5*(1.0-2.0*ENU)/(1.0+ENU)
EG=1.0+4.0*EMOD/3.0
EG2=1.0-2.0*EMOD/3.0
ELAM=(EG-EG2)*0.5
C
C
C DEFINITE THE VOLUMETRIC STRAIN
C
DEV=0.0
DO K1=1,3
DEV=DEV+DSTRAN(K1)
ENDDO
C FORM THE CONSTANT ELASTIC STIFFNESS,CNE
C
DO 20 K1=1,6
DO 10 K2=1,6
CNE(K2,K1)=0.0
10 CONTINUE
20 CONTINUE
C
DO 40 K1=1,3
DO 30 K2=1,3
CNE(K2,K1)=EG2
30 CONTINUE
CNE(K1,K1)=EG
40 CONTINUE
CNE(4,4)=ELAM
C
SIGM=0.0
TEMP=0.0
PN=P0
DO 25 KNEWTON=1,NEWTON
K=PN/DEV*(EXP(DEV/KAPAV)-1.0)
DO I=1,NTENS
DO J=1,NTENS
C SIGM(J)=SIGM(J)+K*CNE(J,I)*DSTRAN(I)
DSIGM(I)=K*CNE(I,J)*DSTRAN(J)
SIGM(I)=SIGM(I)+K*CNE(I,J)*DSTRAN(J)
ENDDO
ENDDO
C
DO I=1,6
F(I)=SIGM(I)-TEMP(I)
ENDDO
C
DO I=1,6
IF(ABS(F(I)).LT.TOLER*SIGM(I)) GOTO 3
ENDDO
C
P=(SIGM(1)+SIGM(2)+SIGM(3))/3.0
C
PN=P
TEMP=SIGM
C
25 CONTINUE
WRITE(6,2) NEWTON
2 FORMAT(//,30X,'***WARNING-NOT CONVERGENCE',I3,'ITERATIONS')
3 CONTINUE
C
C UPDATE THE STRESS WHEN THE CONVERGENCE IS ACHIEVED
C
DO 60 K1=1,NTENS
STRESS(K1)=SIGM(K1)
60 CONTINUE
C FORM JACOBIAN MATRIX
C THE CONSISTENT TANGENT MODULI CALG: KN*CNE+(CNE:DE)*(PN+1/KAPAV-KN)/DEV
C
C
DO 500 K1=1,6
GES(K1)=1.0
500 CONTINUE
C
KN=(PN/(DEV))*(EXP(DEV/KAPAV)-1.0)
C
AA=(PN/DEV)*(EXP(DEV/KAPAV))/DEV-KN/DEV
A=AA*GES
C
DO I=1,6
DO J=1,6
CALG1(J,I)=(CNE(J,I)*DSTRAN(I))*A(I)
C
CALG(J,I)=KN*CNE(J,I)+CALG1(J,I)
ENDDO
ENDDO
C
DO I=1,NTENS
DO J=1,NTENS
DDSDDE(J,I)=0.0
ENDDO
ENDDO
C
DO I=1,NTENS
DO J=1,NTENS
DDSDDE(I,J)=DDSDDE(I,J)+CALG(I,J)
ENDDO
ENDDO
C
RETURN
END
many thanks