Search
Close this search box.
Notifications
Clear all

Job errors in ABAQUS

2 Posts
2 Users
0 Likes
1,790 Views
Posts: 2
Topic starter
(@Daniel Thomas)
New Member
Joined: 8 years ago

Hello,

I am K.Bhanu Savarni. I have written a VUMAT Code but got the following errors, Warnings in ABAQUS.Please help me in rectifying the errors and please check the code that I have written is right or wrong.

Errors and warnings in ABAQUS:

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/STANDARD 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

Topic Tags
1 Reply
Posts: 3998
(@jorgen)
Member
Joined: 4 years ago

The error message that you described suggest some clear errors in your code.
You should be able to detect those errors if you print out the stress, etc, as part of the code.

-Jorgen

Topic Tags
1 Reply
Share: