Product: Abaqus/Explicit
User subroutine VUHARD:
is called at all material points of elements for which the material definition includes user-defined isotropic hardening or cyclic hardening for metal plasticity;
can be used to define a material's isotropic yield behavior;
can be used to define the size of the yield surface in a combined hardening model;
can include material behavior dependent on field variables or state variables; and
requires that the derivatives of the yield stress (or yield surface size in combined hardening models) be defined with respect to the appropriate independent variables, such as strain, strain rate, and temperature.
subroutine vuhard( C Read only - * nblock, * jElem, kIntPt, kLayer, kSecPt, * lAnneal, stepTime, totalTime, dt, cmname, * nstatev, nfieldv, nprops, * props, tempOld, tempNew, fieldOld, fieldNew, * stateOld, * eqps, eqpsRate, C Write only - * yield, dyieldDtemp, dyieldDeqps, * stateNew ) C include 'vaba_param.inc' C dimension props(nprops), tempOld(nblock), tempNew(nblock), 1 fieldOld(nblock,nfieldv), fieldNew(nblock,nfieldv), 2 stateOld(nblock,nstatev), eqps(nblock), eqpsRate(nblock), 3 yield(nblock), dyieldDtemp(nblock), dyieldDeqps(nblock,2), 4 stateNew(nblock,nstatev), jElem(nblock) C character*80 cmname C do 100 km = 1,nblock user coding 100 continue C return end
yield(nblock)
Array containing the yield stress (for isotropic plasticity) or yield surface size (for combined hardening) at the material points.
dyieldDeqps(nblock,1)
Array containing the derivative of the yield stress or yield surface size with respect to the equivalent plastic strain at the material points.
dyieldDeqps(nblock,2)
Array containing the derivative of the yield stress with respect to the equivalent plastic strain rate at the material points.
dyieldDtemp(nblock)
Array containing the derivative of the yield stress or yield surface size with respect to temperature at the material points. This quantity is required only in adiabatic and fully coupled temperature-displacement analyses.
stateNew(nblock,nstatev)
Array containing the state variables at the material points at the end of the increment. The allocation of this array is described in “Solution-dependent state variables” in “User subroutines: overview,” Section 18.1.1 of the Abaqus Analysis User's Guide.
nblock
Number of material points to be processed in this call to VUHARD.
jElem(nblock)
Array of element numbers.
kIntPt
Integration point number.
kLayer
Layer number (for composite shells).
kSecPt
Section point number within the current layer.
lanneal
Flag indicating whether the routine is being called during an annealing process. lanneal=0 indicates that the routine is being called during a normal mechanics increment. lanneal=1 indicates that this is an annealing process and the internal state variables, stateNew, should be reinitialized if necessary. Abaqus/Explicit will automatically set the stresses, stretches, and state to a value of zero during the annealing process.
stepTime
Value of time since the step began.
totalTime
Value of total time. The time at the beginning of the step is given by totalTime-stepTime.
dt
Time increment size.
cmname
Material name, left justified. It is passed in as an uppercase character string. Some internal material models are given names starting with the “ABQ_” character string. To avoid conflict, “ABQ_” should not be used as the leading string for cmname.
nstatev
Number of user-defined state variables that are associated with this material type (see “Allocating space” in “User subroutines: overview,” Section 18.1.1 of the Abaqus Analysis User's Guide).
nfieldv
Number of user-defined external field variables.
nprops
User-specified number of user-defined material properties.
tempOld(nblock)
Temperatures at the material points at the beginning of the increment.
tempNew(nblock)
Temperatures at the material points at the end of the increment.
fieldOld(nblock,nfieldv)
Values of the user-defined field variables at the material points at the beginning of the increment.
fieldNew(nblock,nfieldv)
Values of the user-defined field variables at the material points at the end of the increment.
stateOld(nblock,nstatev)
State variables at the material points at the beginning of the increment.
eqps(nblock)
Equivalent plastic strain at the material points.
eqpsRate(nblock)
Equivalent plastic strain rate at the material points.