I Have got the following errors in ABAQUS after running with the following subroutine.Please help me by sorting out the errors and warnings. Please suggest if any improvements required in the subroutine
Errors and Warnings:
Bad Material definition in element number 7 instance TARGET-1: zero or negative initial dilatational modulus caused by bad material data. Please check your material input and any initial conditions if necessary.
The parameter hourglass on the *section controls option is relevant for solid, membrane, and shell elements with reduced integration wherever applicable. This warning can be ignored if the feature is applied to these element types only.
The parameter distortion control on the *section controls option is relevant for solid elements wherever applicable. This warning can be ignored if the feature is applied to solid elements only.
Output variable sdv has no components in this analysis for element type c3d8r
Output request dmicrt is not available for the material for element type c3d8r
Output request sdeg is not available for the material for element type c3d8r
4800 elements are distorted. Either the isoparametric angles are out of the suggested limits or the triangular or tetrahedral quality measure is bad. The elements have been identified in element set WarnElemDistorted.
There are 6 warning messages in the data (.dat) file. Please check the data file for possible errors in the input file.
A material defined in user subroutine VUMAT must be defined as purely elastic (using the initial elastic modulus) at the beginning of the analysis (stepTime=0). This is an informative message. It does not necessarily indicate that user subroutine VUMAT is incorrectly defined.
subroutine vumat(
1 nblock, ndir, nshr, nstatev, nfieldv, nprops, lanneal,
2 stepTime, totalTime, dt, cmname, coordMp, charLength,
3 props, density, strainInc, relSpinInc,
4 tempOld, stretchOld, defgradOld, fieldOld,
3 stressOld, stateOld, enerInternOld, enerInelasOld,
6 tempNew, stretchNew, defgradNew, fieldNew,
5 stressNew, stateNew, enerInternNew, enerInelasNew )
C
INCLUDE 'VABA_PARAM.INC'
C
C
C All arrays dimensioned by (*) are not used in this algorithm
dimension props(nprops), density(nblock),
1 coordMp(nblock,*),
2 charLength(*), strainInc(nblock,ndir+nshr),
3 relSpinInc(*), tempOld(*),
4 stretchOld(*), defgradOld(*),
5 fieldOld(*), stressOld(nblock,ndir+nshr),
6 stateOld(nblock,nstatev), enerInternOld(nblock),
7 enerInelasOld(nblock), tempNew(*),
8 stretchNew(*), defgradNew(*), fieldNew(*),
9 stressNew(nblock,ndir+nshr), stateNew(nblock,nstatev),
1 enerInternNew(nblock), enerInelasNew(nblock)
C
character*80 cmname
C
C
***********************************************************************************
** VUMAT,PROBABILISTIC DAMAGE MODEL FOR ABAQUS/EXPLICIT INCORPORATING **
** ELASTIC PROPERTIES AND WEIBULL PARAMETERS **
** **
***********************************************************************************
***********************************************************************************
**
**
**
*USER SUBROUTINE
PARAMETER (M=3,N=3,ZERO=0.D0,ONE=1.D0,TWO=2.D0,THREE=3.D0,
+ SIX=6.D0, NINE=9.D0,XALPHA=0.31,S=4.18)
C
DIMENSION XIDEN(M,N),XC(6,6),XS(6,6),
+ STR(M,N),XDAM(nblock,M),JAC(6,6),STRN(M,N),
+ XPRIN(nblock,M),XDEF(nblock,M),XPRINN(nblock,M),
+ XSTRESSK(nblock),XPRINR(nblock,M)
dimension eigVal(nblock,M), eigVec(nblock,M)
real V
integer seed
seed=7654321
C
C XDAM=DAMAGE VALUE CORRESPONDING TO EACH PRICIPAL DIRECTION,XPRIN=PRINCIPAL STRESS
C XDEF=MODIFIED GROWTH DEFECT DENSITY CORRESPONDING TO EACH PRINCIPAL STRESS
C XPRINN-PRINCIPALSTRESS NEW,XPRIN-PRICIPAL STRESS OLD
C XPRINR-PRINCIPAL STRESS RATE
C
C--------------------------------------------------------------------
C
C SPECIFY MATERIAL PROPERTIES
C ALL DIMENSIONS ARE IN meter
C
E=props(1)
XNUE=props(2)
XDENSITY=props(3)
XPOROSITY=props(4)
XM=props(5)
XMEANFS=props(6)
XEFFVOL=props(7)
ALAMBDA=E*XNUE/(ONE+XNUE)/(ONE-TWO*XNUE)
AMU=E/(ONE+XNUE)/2
V=SQRT(E/XDENSITY)
DO I=1,M
DO J=1,N
STR(I,J)=0.0
END DO
END DO
DO I=1,NTENS
DO J=1,NTENS
JAC(I,J)=0.0D0
ENDDO
ENDDO
C STATE VARIABLES:1 TO 3 ARE DAMAGE VALUE VARYING FROM 0 TO 1
C STATE VARIABLES:4-FAILURE STRESS
C STATE VARIABLES:5,6,7-PRINCIPAL STRESSES
C STATE VARIABLES:8,9,10-DEFECT DENSITY CORRESPONDING TO EACH PRINCIPAL STRESS
if (stepTime.eq.zero) then
do 101 i = 1,nblock
K=1/(XEFFVOL)/((XMEANFS)**XM)
PK=ran(seed)
XSTRESSK(i)=((K)**(ONE/XM))*((XEFFVOL)**(ONE/XM))
1 *((LOG(ONE/(ONE-PK)))**(ONE/XM))
JAC(1,1)= (ALAMBDA+TWO*AMU)
JAC(2,2)= (ALAMBDA+TWO*AMU)
JAC(3,3)= (ALAMBDA+TWO*AMU)
JAC(4,4)= AMU
JAC(5,5)= AMU
JAC(6,6)= AMU
JAC(1,2)= ALAMBDA
JAC(1,3)= ALAMBDA
JAC(2,1)= ALAMBDA
JAC(2,3)= ALAMBDA
JAC(3,1)= ALAMBDA
JAC(3,2)= ALAMBDA
DO R=1,NTENS
stressNew(i,R)=stressOld(i,R)+
2 (DOT_PRODUCT(JAC(R,:),strainInc(i,:)))
ENDDO
101 continue
return
endif
do 100 i = 1,nblock
C
C WRITE STRESSES IN MATRIX FORM
C
DO r = 1,3
STR(r,r) = stressOld(i,r)
END DO
STR(1,2) = stressOld(i,4)
STR(2,1) = stressOld(i,4)
STR(1,3) = stressOld(i,5)
STR(3,1) = stressOld(i,5)
STR(2,3) = stressOld(i,6)
STR(3,2) = stressOld(i,6)
c FIND THE EIGEN VALUES OF THE STRESSOLD MATRIX
CALL VSPRINC( NBLOCK, STR, eigVal, ndir, nshr )
C EVR IS THE PRICIPAL STRESSES
DO r=1,3
XPRIN(i,r)=eigVal(i,r)
ENDDO
C
C WRITE STRESSES IN MATRIX FORM
C
DO r = 1,3
STRN(r,r) = stressNew(i,r)
END DO
STRN(1,2) = stressNew(i,4)
STRN(2,1) = stressNew(i,4)
STRN(1,3) = stressNew(i,5)
STRN(3,1) = stressNew(i,5)
STRN(2,3) = stressNew(i,6)
STRN(3,2) = stressNew(i,6)
c FIND THE EIGEN VALUES OF THE STRESSNEW MATRIX
CALL VSPRINC( NBLOCK, STRN, eigVal, ndir, nshr )
C EVR IS THE PRICIPAL STRESSES
DO r=1,3
XPRINN(i,r)=eigVal(i,r)
ENDDO
C FINDING THE PRINCIPAL STRESS RATE
DO r=1,3
XPRINR(i,r)=(XPRINN(i,r)-XPRIN(i,r))/stepTime
ENDDO
C FINDING THE DEFECT DENSITY CORRESPONDING TO EACH PRICIPAL STRESS
C FINDING THE DAMAGE VALUE CORRESPONDING TO EACH PRINCIPAL STRESS
C REFER EQUATION 83
DO Q=1,3
IF (XPRINR(i,Q).LE.ZERO) THEN
stateNew(i,Q)=stateOld(i,Q)
ELSE
IF ((XPRIN(i,Q).GT.ZERO).AND.(XPRINR(i,Q).GT.ZERO))THEN
IF (XPRIN(i,Q).LE.XSTRESSK(i)) THEN
stateNew(i,Q+7)=0.0
stateNew(i,Q)=0.0
ELSE
stateNew(i,Q+7)=K*((XPRIN(i,Q))**XM)
C XBETA IS THE VALUE OF THE RIGHT HAND SIDE IN THE EQUATION 81
XBETA=6*S*((0.33*V)**3)*XDEF(i,Q)
RKO=((1-XDAM(i,Q))*(XBETA*(totalTime**2)))/2
RKT=((1-(XDAM(i,Q)+((dt*RKO)/2)))
1 *(XBETA*((totalTime+dt/2)**2))/2)
RKTH=(1-(XDAM(i,Q)+(dt*RKT)/2))
1 *(XBETA*((totalTime+dt/2)**2))/2
RKF=(1-(XDAM(i,Q)+(dt*RKTH)))
1 *(XBETA*((totalTime+dt)**2))/2
RK=RKO+2*RKT+2*RKTH+RKF
stateNew(i,Q)=stateOld(i,Q)+((dt/6)*RK)
ENDIF
ELSE
stateNew(i,Q+7)=0.0
stateNew(i,Q)=0.0
ENDIF
ENDIF
ENDDO
C STATE VARIABLES:1 TO 3 ARE DAMAGE VALUE VARYING FROM 0 TO 1
C STATE VARIABLES:4-FAILURE STRESS
stateNew(i,4)=XSTRESSK(i)
stateNew(i,5)=XPRIN(i,1)
stateNew(i,6)=XPRIN(i,2)
stateNew(i,7)=XPRIN(i,3)
C UPDATING THE STRESS MATRIX:TO DO THAT UPDATE THE COMPLIANCE TENSOR
C MATRIX AND INVERSE THE COMPLIANCE TENSOR TO OBTAIN THE CONSTITUTIVE TENSOR
C XC=COMPLIANCE TENSSOR,XS=INVERSE OF COMPLIANCE TENSOR
XC(1,1)=ONE/E/(1-stateNew(i,1))
XC(1,2)=(-XNUE)
XC(1,3)=(-XNUE)
XC(1,4)=0.0
XC(1,5)=0.0
XC(1,6)=0.0
XC(2,1)=(-XNUE)
XC(2,2)=ONE/E/(1-stateNew(i,2))
XC(2,3)=(-XNUE)
XC(2,4)=0.0
XC(2,5)=0.0
XC(2,6)=0.0
XC(3,1)=(-XNUE)
XC(3,2)=(-XNUE)
XC(3,3)=ONE/E/(1-stateNew(i,3))
XC(3,4)=0.0
XC(3,5)=0.0
XC(3,6)=0.0
XC(4,1)=0.0
XC(4,2)=0.0
XC(4,3)=0.0
XC(4,4)=(ONE+XNUE)/((ONE-stateNew(i,2))**(XALPHA))
3 /((ONE-stateNew(i,3))**(XALPHA))
XC(4,5)=0.0
XC(4,6)=0.0
XC(5,1)=0.0
XC(5,2)=0.0
XC(5,3)=0.0
XC(5,4)=0.0
XC(5,5)=(ONE+XNUE)/((ONE-stateNew(i,3))**(XALPHA))
4 /((ONE-stateNew(i,1))**(XALPHA))
XC(5,6)=0.0
XC(6,1)=0.0
XC(6,2)=0.0
XC(6,3)=0.0
XC(6,4)=0.0
XC(6,5)=0.0
XC(6,6)=(ONE+XNUE)/((ONE-stateNew(i,1))**XALPHA)
5 /((ONE-stateNew(i,2))**XALPHA)
C FINDING XS=INVERSE OF COMPLIANCE TENSOR BY GUASS JORDAN METHOD
CALL INVERSEA(XC,XS)
DO R=1,NTENS
stressNew(i,R)=stressOld(i,R)+DOT_PRODUCT(XS(R,:),strainInc(i,:))
ENDDO
100 continue
return
end
********************END OF VUMAT SUBROUTINE******************************
*************************************************************************
C ** INVERSE OF A 6X6 MATRIX BY GAUSS JORDAN METHOD
*************************************************************************
C ** INVERSE OF A 6X6 MATRIX BY GAUSS JORDAN METHOD
SUBROUTINE INVERSEA(A,C)
C
INCLUDE 'VABA_PARAM.INC'
C
PARAMETER (M=6,N=6)
DIMENSION A(M,N),B(6,12),C(M,N)
INTEGER I,J,N
C ** BUILDING AUGUMENTED MATRIX B
DO 40 J=1,N
DO 30 I=1,N
B(I,J)=A(I,J)
30 CONTINUE
40 CONTINUE
DO I=1,N
DO J=N+1,2*N
IF ((J-I).EQ.N) THEN
B(I,J)=1.0
ELSE
B(I,J)=0.0
ENDIF
ENDDO
ENDDO
DO 160 I=1,N
B(I,:)=B(I,:)/B(I,I)
DO 150 J=1,N
IF (I.NE.J) THEN
B(J,:)=B(J,:)-B(J,I)*B(I,:)
ENDIF
150 CONTINUE
160 CONTINUE
DO I=1,N
DO J=N+1,2*N
C(I,J-6)=B(I,J)
ENDDO
ENDDO
RETURN
END