User Subroutine Interface
SUBROUTINE UCOHESIVEOFFSET( OFFSETOLD, OFFSETNEW, DELTA, OPENMAX,
1 NOEL, NPT, COORDS, KSTEP, KINC, STIME, DTIME, TEMP, DTEMP, PREDEF, DPRED, NFIELD,
2 JMAC, JMATYP, MATLAYO, LACCFLA, SDEGOLD, GAPINI, THICKINI, STRESSOLD, STRESSNEW,
3 DDSDDE, NTENS, NDI, NSHR, DP, CV, JFLGOPT, STATEV, NSTATEV, NIARRAY, I_ARRAY,
4 NRARRAY, R_ARRAY, NCARRAY, C_ARRAY)
C
INCLUDE 'ABA_PARAM.INC'
C
CHARACTER*80 CMNAME
DIMENSION DELTA(*), COORDS(*), PREDEF(*), DPRED(*), JMAC(*), JMATYP(*),
1 STRESSOLD(NTENS), STRESSNEW(NTENS), DDSDDE(NTENS,NTENS), STATEV( NSTATEV),
2 I_ARRAY(NIARRAY), R_ARRAY(NRARRAY), C_ARRAY(NCARRAY)
user coding to define JFLGOPT, OFFSETNEW, DDSDDE,
STRESSNEW, and, if necessary, STATEV
RETURN
END
Variables to Be Defined
-
OFFSETNEW
-
Cohesive 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 Jacobian matrix,
DDSDDE.
Set JFLGOPT=2 to update
OFFSETNEW; the Jacobian matrix,
DDSDDE; and the stress at the end of the increment,
STRESSNEW.
Variables That Can Be Updated
-
DDSDDE
-
Jacobian matrix for the traction-separation response,
, where
are the nominal traction stress vector increments, and
are the nominal strain increments.
DDSDDE(I,J) defines the change in the
Ith stress component at the end of the time increment caused by
an infinitesimal perturbation in the Jth component of the strain
increment array.
DDSDDE is initialized to the Jacobian matrix
(stiffness matrix) of the underlying traction-separation response before UCOHESIVEOFFSET is called, and
Abaqus uses these values for all subsequent calculations if
DDSDDE is not updated in UCOHESIVEOFFSET.
-
STRESSNEW
-
This variable is initialized to the nominal traction stress vector at the end of the
previous increment and can be updated to the corresponding values at the end of the
increment.
If you set JFLGOPT=1, Abaqus will compute STRESSNEW based on the offset and the
Jacobian matrix (stiffness matrix), DDSDDE. Any updates
you make to STRESSNEW in this case will be ignored.
If you set JFLGOPT=2, you must update
STRESSNEW.
-
STATEV
-
An array containing the solution-dependent state variables. The size of the array is
defined as described in Allocating Space for Element Solution-Dependent Variables.
Variables Passed in for Information
-
OPENMAX
-
, the maximum value of
at a material point over the deformation history.
-
NSTATEV
-
Number of solution-dependent state variables that are associated with this material
type (defined as described in Allocating Space for Element Solution-Dependent Variables).
-
OFFSETOLD
-
, the cohesive separation offset at the beginning of the
increment.
-
STRESSOLD
-
Nominal traction stress vector at the beginning of the increment.
-
DELTA(NTENS)
-
Cohesive separations including one normal and one (2D) or two (3D) shear
components.
-
NOEL
-
Element number.
-
NPT
-
Integration point number.
-
COORDS
-
Current coordinates of this point.
-
KSTEP
-
Step number.
-
KINC
-
Increment number.
-
STIME
-
Step time.
-
DTIME
-
Time increment.
-
TEMP
-
Temperature at the start of the increment.
-
DTEMP
-
Temperature increment.
-
PREDEF
-
Array of predefined field variables.
-
DPRED
-
Array of increments of predefined field variables.
-
NFIELD
-
Number of predefined field variables.
-
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.
-
SDEGOLD
-
Damage variable at the beginning of the increment.
-
GAPINI
-
Initial gap.
-
THICKINI
-
Initial thickness of the cohesive element.
-
NDI
-
Number of direct stress components at this point.
-
NSHR
-
Number of shear stress components at this point.
-
NTENS
-
Size of the stress or strain component array (NDI +
NSHR).
-
DP
-
Diameter of the proppant particle.
-
CV
-
Slurry concentration.
-
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: Keeping Fracture Prop Open
SUBROUTINE UCOHESIVEOFFSET( OFFSETCUR, OFFSETNEW, DELTA, OPENMAX,
1 NOEL, NPT, COORDS, KSTEP, KINC, TIME, DTIME, TEMP, DTEMP, PREDEF,
2 DPRED, NFIELD, JMAC, JMATYP, MATLAYO, LACCFLA, SDEG, GAPINI,
3 THICKINI, STRESSOLD, STRESSNEW, STIFFNESS, NTENS, NDI, NSHR,
4 DIAMETERP, CV, JFLGOPT, STATEV, NSTATEV, NIARRAY, I_ARRAY, NRARRAY,
5 R_ARRAY, NCARRAY, C_ARRAY)
C
INCLUDE 'ABA_PARAM.INC'
C
DIMENSION COORDS(*), TIME(*), TEMP(*), DTEMP(*), PREDEF(NFIELD),
$ DPRED(*), JMAC(*), JMATYP(*), STRESSOLD(*), STRESSNEW(*),
$ STIFFNESS( NTENS, NTENS), DELTA(*), STATEV(*)
DIMENSION I_ARRAY(*), R_ARRAY(*)
CHARACTER*80 C_ARRAY(*)
C
CC THIS EXAMPLE DEMONSTRATES HOW TO SPECIFY AN OFFSET IN STEP 2 TO KEEP THE
CC FRACTURE “PROPPED OPEN” WHEN EXTERNAL LOADING CONDITIONS WOULD
CC OTHERWISE HAVE LED TO CLOSURE OF THE FRACTURE
JFLGOPT = 1
IF(SDEG.LT.0.99999 .OR. KSTEP.EQ.1) THEN
OFFSETNEW = 0.0
ELSE
OFFSETNEW = 0.005
END IF
RETURN
END
|