Product: Abaqus/Explicit
User subroutine VUTRS:
can be used to define a temperature-time shift for a time domain viscoelastic analysis;
will be called for all material points of elements for which a user-defined shift function is specified to define the time-temperature correspondence as part of the viscoelastic material definition;
can use and update solution-dependent state variables; and
can have incoming field variables redefined by user subroutine VUSDFLD.
subroutine vutrs( c Read only variables - 1 nblock, nstatev, nfieldv, nprops, 2 stepTime, totalTime, dt, 3 cmname, props, density, coordMp, 4 tempOld, fieldOld, stateOld, 5 tempNew, fieldNew, c Write only variables - 6 shift, stateNew ) c include 'vaba_param.inc' c dimension props(nprops), density(nblock), coordMp(nblock,*), 1 tempOld(nblock),tempNew(nblock), 2 fieldOld(nblock,nfieldv), fieldNew(nblock,nfieldv), 3 stateOld(nblock,nstatev), stateNew(nblock,nstatev), 4 shift(nblock,2) c character*80 cmname c do 100 k=1, nblock user coding to define shift(k,1) and shift(k,2) 100 continue c return end
shift(nblock,2)
Array that defines the shift function, A (), at the material points. For material point k, shift(k,1) defines the shift function at the beginning of the increment, and shift(k,2) defines the shift function at the end of the increment. Abaqus/Explicit will apply an averaging scheme to these values that assumes that the natural logarithm of the shift function can be approximated by a linear function over the increment.
If either shift(k,1) or shift(k,2) is less than or equal to zero, no time shift will be applied.
stateNew(nblock,nstatev)
Array containing the solution-dependent state variables at the material points. This array will be passed in containing the values of these variables at the start of the increment unless they are updated in user subroutine VUSDFLD, in which case the updated values are passed in. If any of the solution-dependent state variables are being used in conjunction with the viscoelastic behavior, they must be updated in this subroutine to their values at the end of the increment.
nblock
Number of material points to be processed in this call to VUTRS.
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.
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.
props(nprops)
User-supplied material properties.
density(nblock)
Current density at the material points in the midstep configuration. This value may be inaccurate in problems where the volumetric strain increment is very small. If an accurate value of the density is required in such cases, the analysis should be run in double precision. This value of the density is not affected by mass scaling.
coordMp(nblock,*)
Material point coordinates. It is the midplane material point for shell elements and the centroid for beam elements.
tempOld(nblock)
Temperatures at each material point at the beginning of the increment.
fieldOld(nblock,nfieldv)
Values of the user-defined field variables at each material point at the beginning of the increment.
stateOld(nblock,nstatev)
State variables at each material point at the beginning of the increment.
tempNew(nblock)
Temperatures at each material point at the end of the increment.
fieldNew(nblock,nfieldv)
Values of the user-defined field variables at each material point at the end of the increment.