Converting USDFLD to VUSDFLD

 

Hi,

I wrote an very simple USDFLD subroutine to remove elements (reduction of E and Nu) with respect to principal stress. It works fine with Abaqus Standard.

Now I've realized I need to run my model with Abaqus Explicit and have a complete dynamic simulation.

The problem is I cannot convert it to a VUSDFLD which does the same thing. I've read couple of VUSDFLD examples but it's just too complicated to learn how to write VUSDFLDs with available learning resources on the Internet. I'd really appreciate any help because I'm really stuck.

sincerely,

Ashkan

Here's the code:

 

C INITIALIZE FAILURE FLAGS FROM STATEV.

DAMAGE = STATEV(1)

CC GET STRESSES FROM PREVIOUS INCREMENT

CALL GETVRM('S',ARRAY,JARRAY,FLGRAY,JRCD,JMAC,JMATYP, 1 MATLAYO,LACCFLA)

S11 = ARRAY(1)

S22 = ARRAY(2)

S12 = ARRAY(4)

CC CALCULATING PRINCIPAL STRESS

PRINCIPAL = (S11 + S22)/2.D0 - SQRT( ((S11-S22)/2.D0)**2.D0 + S12**2.D0 )

CC DAMAGE CRITRION: LOWER THAN ** ** MPa, ACTIVATE

IF (DAMAGE .LT. 1.D0) THEN

            IF (PRINCIPAL .LT. -84.D6) THEN

                 DAMAGE = 1.D0

             ENDIF

ENDIF

CC

FIELD(1) = DAMAGE

STATEV(1) = FIELD(1)

C

RETURN

END