User Subroutine Interface
SUBROUTINE UXFEMCRACK( OFFSETOLD, OFFSETNEW, DELTA,
1 OPENMAX, NOEL, NPT, COORDS, KSTEP, KINC, TIME1, DTIME1, TEMP, DTEMP,
2 PREDEF, DPRED, NFIELD, STATEV, NSTATV, PROPS, NPROPS, JMAC, JMATYP,
3 MATLAYO, LACCFLA, SDEG, GAPINI, DV, STRESSOLD, STRESSNEW,
4 STIFFNESS, DIAMETERP, CV, JFLGOPT, NTENS, NDIR, NSHR, MCRD,
5 NIARRAY, I_ARRAY, NRARRAY, R_ARRAY, NCARRAY, C_ARRAY)
C
INCLUDE 'ABA_PARAM.INC'
C
DIMENSION COORDS(*), TIME1(*), TEMP(*), JMAC(*), JMATYP(*), STRESSOLD(MCRD),
1 STRESSNEW(MCRD), STIFFNESS(MCRD,MCRD), DELTA(*), PROPS(NPROPS),
2 STATEV(NSTATV), PREDEF(NFIELD), DPRED(NFIELD), I_ARRAY(NIARRAY),
3 R_ARRAY(NRARRAY), C_ARRAY(NCARRAY)
C
user coding to define JFLGOPT, OFFSETNEW, STIFFNESS, STRESSNEW,
and, if necessary, STATEV
RETURN
END
Variables to Be Defined
-
OFFSETNEW
-
The offset at the end of the increment,
. If this value is not defined, it is assumed to be zero.
-
JFLGOPT
-
An integer flag that must be set to either 1 or 2.
Set JFLGOPT=1 to update
OFFSETNEW and the penalty stiffness matrix,
STIFFNESS.
Set JFLGOPT=2 to update
OFFSETNEW; the penalty stiffness matrix,
STIFFNESS; and the stress at the end of the increment,
STRESSNEW.
Variables That Can Be Updated
-
STIFFNESS
-
Penalty stiffness of the cracked surfaces.
STIFFNESS is initialized to a penalty stiffness, based
on the bulk stiffness of the underlying elements and the element characteristic
length, before UXFEMCRACK is called. Abaqus uses these values for all subsequent calculations if
STIFFNESS is not updated in UXFEMCRACK.
-
STRESSNEW
-
Traction vector on the cracked surfaces.
This variable is initialized to the nominal traction vector at the beginning of the
increment and can be updated to the corresponding values at the end of the
increment.
If you set JFLGOPT=1, Abaqus computes STRESSNEW based on the offset and the
stiffness matrix, STIFFNESS. Any updates you make to
STRESSNEW in this case are ignored.
If you set JFLGOPT=2, you must update
STRESSNEW.
-
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. The size
of the array is defined as described in Allocating Space for Element Solution-Dependent Variables.
Variables Passed in for Information
-
OFFSETOLD
-
Offset at the end of the previous increment.
-
OPENMAX
-
, the maximum value of
at an interaction point between the crack surface and the element
edge over the deformation history.
-
NDIR
-
Number of direct components of the underlying enriched element at this contact
point.
-
NSHR
-
Number of shear components of the underlying enriched element at this contact
point.
-
NTENS
-
Number of total components (NDI +
NSHR) of the underlying enriched element at this
contact point.
-
MCRD
-
Number of coordinate directions at the contact point.
-
DELTA
- Current crack opening
-
NOEL
- Element number.
-
NPT
- Integration point number.
-
COORDS
- An array containing the current coordinates of this
point.
-
KSTEP
- Step number.
-
KINC
-
Increment number.
-
TIME1(1)
- Value of step time at the beginning of the current
increment.
-
TIME1(2)
- Value of total time at the beginning of the current
increment.
-
DTIME1
- Time increment.
-
TEMP
- Temperature at the start of the increment.
-
DTEMP
- Increment of temperature during the time
increment.
-
PREDEF
- An array containing the values of all of the user-specified predefined
variables at this point at the start of the increment .
-
DPRED
- An array containing the increments of all of the predefined variables
during the time increment.
-
NFIELD
- Number of user-specified predefined variables.
-
NSTATV
-
Number of solution-dependent state variables that are associated with this material
type (defined as described in Allocating Space for Element Solution-Dependent Variables).
-
PROPS(NPROPS)
- User-specified array of material constants associated with this
material.
-
NPROPS
- User-defined number of material constants associated with this
material.
-
JMAC
- Variable that must be passed into the
GETVRM utility routine to access an output
variable.
-
JMATYP
- Variable that must be passed into the
GETVRM utility routine to access an output
variable.
-
MATLAYO
- Variable that must be passed into the
GETVRM utility routine to access an output
variable.
-
LACCFLA
- Variable that must be passed into the
GETVRM utility routine to access an output
variable.
-
SDEG
- Damage variable at the end of the last
increment.
-
STRESSOLD
- Stresses at the end of previous increment.
-
DV
- Integration point volume.
-
DIAMETERP
- Diameter of slurry particles
-
CV
- Slurry concentration at the end of previous
increment.
-
GAPINI
- Initial crack opening.
-
NIARRAY
- Size of array
I_ARRAY.
-
I_ARRAY
- Not used.
-
NRARRAY
- Size of array
R_ARRAY.
-
R_ARRAY
-
Not used.
-
NCARRAY
-
Size of array C_ARRAY.
-
C_ARRAY
-
Not used.
Example: User-Defined Offset for Enriched Cracked Element Surfaces
The following is a simple example of how to specify the offset for cracked element surfaces
by using UXFEMCRACK:
SUBROUTINE UXFEMCRACK( OFFSETOLD, OFFSETNEW, DELTA,
1 OPENMAX, NOEL, NPT, COORDS, KSTEP, KINC, TIME1, DTIME1, TEMP, DTEMP,
2 PREDEF, DPRED, NFIELD, STATEV, NSTATV, PROPS, NPROPS, JMAC, JMATYP,
3 MATLAYO, LACCFLA, SDEG, GAPINI, DV, STRESSOLD, STRESSNEW,
4 STIFFNESS, DIAMETERP, CV, JFLGOPT, NTENS, NDIR, NSHR, MCRD,
5 NIARRAY, I_ARRAY, NRARRAY, R_ARRAY, NCARRAY, C_ARRAY )
INCLUDE 'ABA_PARAM.INC'
C
DIMENSION COORDS(*), TIME1(*), TEMP(*), JMAC(*), JMATYP(*), STRESSOLD(*),
1 STRESSNEW(MCRD), STIFFNESS(MCRD,MCRD), DELTA(*), PROPS(NPROPS),STATEV(NSTATV),
2 PREDEF(NFIELD),DPRED(NFIELD), I_ARRAY(NIARRAY), R_ARRAY(NRARRAY),
3 C_ARRAY(NCARRAY)
CC THIS EXAMPLE DEMONSTRATES HOW TO SPECIFY AN OFFSET IN STEP 3 TO KEEP THE
CC FRACTURE “PROPPED OPEN” WHEN EXTERNAL LOADING CONDITIONS WOULD
CC OTHERWISE HAVE LED TO CLOSURE OF THE FRACTURE
JFLGOPT = 1
IF( KSTEP .LE. 2 ) THEN
OFFSETNEW = 0.0
ELSE
OFFSETNEW = 0.15
IF( OPENMAX .gt. OFFSETNEW .and. DELTA(1) .gt. OFFSETNEW ) THEN
DO II = 1,MCRD
STIFFNESS(II,II) = 0.0
END DO
END IF
END IF
C
RETURN
END
|