UMIXMODEFATIGUE

User subroutine to specify a user-defined mixed-mode form of the Paris law in a fatigue crack growth analysis.

User subroutine UMIXMODEFATIGUE:

  • can be used to specify a user-defined fatigue crack growth criterion;
  • will be called at the end of a completed loading cycle;
  • can be used for debonding in brittle material interfaces with surface-based contact definition;
  • can be used for crack growth in bulk brittle materials with enriched elements; and
  • can be used in stress intensity factor–based form, where the corresponding stress intensity factor component rather than the strain energy release rate component will be passed in for information.

This page discusses:

User Subroutine Interface

      SUBROUTINE UMIXMODEFATIGUE (DADN, GI_MAX, GII_MAX, GIII_MAX,
     1 GI_MIN, GII_MIN, GIII_MIN, TEMP, DTEMP, PREDEF, DPRED,
     2 NFIELD, NPROPS, PROPS(NPROPS), NSTATV, STATEV,
     3 NIARRAY, I_ARRAY, NRARRAY, R_ARRAY, NCARRAY, C_ARRAY, DA)

or 

       SUBROUTINE UMIXMODEFATIGUE (DADN, KI_MAX, KII_MAX, KIII_MAX,
     1 KI_MIN, KII_MIN, KIII_MIN, TEMP, DTEMP, PREDEF, DPRED,
     2 NFIELD, NPROPS, PROPS(NPROPS), NSTATV, STATEV,
     3 NIARRAY, I_ARRAY, NRARRAY, R_ARRAY, NCARRAY, C_ARRAY, DA)

      INCLUDE 'ABA_PARAM.INC'

C
      DIMENSION PROPS(NPROPS),STATEV(NSTATV),PREDEF(NFIELD),DPRED(NFIELD),
     1 I_ARRAY(NIARRAY), R_ARRAY(NRARRAY), C_ARRAY(NCARRAY)

      user coding to define DADN

      RETURN
      END

Variables to Be Defined

DADN
Crack growth rate

Variables That Can Be Updated

STATEV

An array containing the user-defined solution-dependent state variables at this point. This array will be passed in containing the values of these variables at the start of the increment unless the values are updated in user subroutine USDFLD. They can be updated in this subroutine to their values at the end of the increment. You define the size of this array by allocating space for it (see Allocating Space for Solution-Dependent State Variables for more information).

Variables Passed in for Information

GI_MAX
Maximum value of mode I energy release rate GI over the entire cycle. Only available when the default strain energy release rate–based form specified.
GII_MAX
Maximum value of mode II energy release rate GII over the entire cycle. Only available when the default strain energy release rate–based form specified.
GIII_MAX
Maximum value of mode III energy release rate GIII over the entire cycle. Only available when the default strain energy release rate–based form specified.
GI_MIN
Minimum value of mode I energy release rate GI over the entire cycle. Only available when the default strain energy release rate–based form specified.
GII_MIN
Minimum value of mode II energy release rate GII over the entire cycle. Only available when the default strain energy release rate–based form specified.
GIII_MIN
Minimum value of mode III energy release rate GIII over the entire cycle. Only available when the default strain energy release rate–based form specified.
KI_MAX
Maximum value of mode I stress intensity factor KI over the entire cycle. Only available when stress intensity factor–based form specified.
KII_MAX
Maximum value of mode II stress intensity factor KII over the entire cycle. Only available when stress intensity factor–based form specified.
KIII_MAX
Maximum value of mode III stress intensity factor KIII over the entire cycle. Only available when stress intensity factor–based form specified.
KI_MIN
Minimum value of mode I stress intensity factor KI over the entire cycle. Only available when stress intensity factor–based form specified.
KII_MIN
Minimum value of mode II stress intensity factor KII over the entire cycle. Only available when stress intensity factor–based form specified.
KIII_MIN
Minimum value of mode III stress intensity factor KIII over the entire cycle. Only available when stress intensity factor–based form specified.
TEMP
Temperature at the start of the increment.
DTEMP
Increment of temperature during the time increment.
PREDEF
An array containing the values of all user-specified predefined variables at this point at the start of the increment.
DPRED
An array containing the increments of all predefined variables during the time increment.
NFIELD
Number of user-specified predefined variables.
PROPS(NPROPS)
User-specified array of material constants associated with this user-defined crack growth criterion.
NPROPS
User-defined number of material constants associated with this user-defined crack growth criterion.
NSTATV
Number of solution-dependent state variables associated with this material (specified when space is allocated for the array; see Allocating Space for Solution-Dependent State Variables).
NIARRAY
Size of array I_ARRAY.
I_ARRAY
Integer array for future expansion.
NRARRAY
Size of array R_ARRAY.
R_ARRAY
Real array for future expansion.
NCARRAY
Size of array C_ARRAY.
C_ARRAY
Character array for future expansion.
DA
Length scale for calculating R-curve effects.

Example: User-Defined Fatigue Crack Growth Criterion

As a simple example of the coding of user subroutine UMIXMODEFATIGUE, you can calculate the fatigue crack growth rate based on the mode mix ratio, as illustrated below:

SUBROUTINE UMIXMODEFATIGUE (DADN, GI_MAX, GII_MAX, GIII_MAX,
     1 GI_MIN, GII_MIN, GIII_MIN, TEMP, DTEMP, PREDEF, DPRED,
     2 NFIELD, NPROPS, PROPS(NPROPS), NSTATV, STATEV,
     3 NIARRAY, I_ARRAY, NRARRAY, R_ARRAY, NCARRAY, C_ARRAY, DA)

      INCLUDE 'ABA_PARAM.INC'

C
      DIMENSION PROPS(NPROPS),STATEV(NSTATV),PREDEF(NFIELD),DPRED(NFIELD),
     1 I_ARRAY(NIARRAY), R_ARRAY(NRARRAY), C_ARRAY(NCARRAY)

      A=PROPS(1)
      B=PROPS(2)
      C=PROPS(3)
      D=PROPS(4)
      G_SHEAR=GII_MAX+GIII_MAX
      G_TOTAL=GI_MAX+GII_MAX+GIII_MAX
      RMODEMIX=G_SHEAR/G_TOTAL
      IF(RMODEMIX.LE.0.5)THEN
        	DADN=A*G_TOTAL**B
      ELSE
         DADN=C*G_TOTAl**D
      ENDIF
C
      RETURN
      END