UELEMDRESP

User subroutine to define an element design response and its derivatives.

User subroutine UELEMDRESP:

  • can be used to define an element design response that depends on either the stress or the plastic strain tensor;
  • is called at all material calculation points of elements that are members of the specified element set over which the design response is computed; and
  • must provide the value of the design response function as well as its derivatives.

This page discusses:

User-Defined Element Design Response

The adjoint design sensitivity capabilities in Abaqus/Standard support the element design responses Mises stress and plastic strain magnitude, which are well-known invariants of the primal Abaqus variables stress (S) and plastic strain (PE), respectively. If you want to use a different invariant or failure criterion of the stress or the plastic strain tensor, you can use user subroutine UELEMDRESP to define this function and its derivatives.

The user subroutine interface for the user-defined design response subroutine UELEMDRESP follows. The user subroutine is called at all material points for all the elements of the element set over which the element response is calculated.

User Subroutine Interface

      Subroutine uelemdresp (nDi, nShr, nTens, lFlag,  nOutput, index_output, primal_var, 
      1 dresp_id, output_id, dresp_derivatives, temp, field, statev, direct, 
      2 t, cElent, time, coord, cMName, orName, nField, nStatv, noel, nPt, layer, kSpt, 
      3 kStep, kInc, i_array, niarray, r_array, nrarray, c_array, ncarray)
C
      include ‘aba_param.inc’
C           
      dimension primal_var (*) , dresp_derivatives (*), index_output(nOutput,2) 
      dimension field(nField), statev(nStatv), direct(3,3), t(3,3), time(2), coord(*)
      dimension i_array(niarray), r_array(nrarray), c_array(ncarray)
      character*80 dresp_id, output_id(noutput)

      User code to define dresp_value and dresp_derivatives (*)

      return
      end

Variables to Be Defined

dresp_value
Value of the design response.
dresp_derivatives (*)
An array containing the derivatives of the design response with respect to the individual components of the tensor output variable S or PE.

Variables Passed in for Information

nDi
Number of direct tensor components.
nShr
Number of shear tensor components.
nTens
Total number of tensor components.
lFlag
When lFlag=1, define the design response only. When lFlag=2, define the design response derivatives only.
nOutput
Number of primal output variables on which the design response depends. This is the number of output variables specified in the data line under ELEMENT RESPONSE. nOutput can be set only to 1.
index_output (nOutput, 2)
An integer array with nOutput rows. nOutput can be set only to 1. The first column is an index into the primal_var array for the first component of the output variable, and the second column contains the size (number of components) of the output variable. For example, if you specify S as the primal output variable, index_output will be (1,6).
primal_var (*)
Components of the basic output variable specified in the data line following ELEMENT RESPONSE (that is, components of the output variable S or PE). For example, if you specified S as the basic output variable, the entries in primal_var are (S11, S22, S33, S12, S13, S23).
dresp_id
Design response identifier label.
output_id(*)
Output variable identifier (either S or PE).
temp
Current temperature.
field (nField)
Current values of all field variables.
statv (nStatv)
Current value of all solution-dependent state variables.
direct (3,3)
An array containing the direction cosines of the material directions in terms of the global basis directions. For example, direct(1,1), direct(2,1), direct(3,1) give the (1, 2, 3) components of the first material direction and direct(1,2), direct(2,2), direct(3,2) give the second material direction. For shell and membrane elements, the first two directions are in the plane of the element and the third direction is the normal. This information is not available for beam elements.
t (3,3)
An array containing the direction cosines of the material orientation components relative to the element basis directions. This is the orientation that defines the material directions (direct) in terms of the element basis directions. For continuum elements, t and DIRECT are identical. For shell and membrane elements, t(1,1)= , t(1,2)= , t(2,1)= , t(2,2)= , t(3,3)= , and all other components are zero, where the counterclockwise rotation around the normal vector defines the orientation. If no orientation is used, t is an identity matrix. The orientation is not available for beam elements.
cElent
Characteristic element length. This is a typical length of a line across an element for a first-order element; it is half of the same typical length for a second-order element. For beams and trusses, it is a characteristic length along the element axis. For membranes and shells, it is a characteristic length in the reference surface. For axisymmetric elements, it is a characteristic length in the (r, z) plane only.
time (1)
Value of step time.
time (2)
Value of total time.
coord
Coordinates at this material point.
cMName
Encoded user-specified material name that can be passed to the getMaterialName utility to decode it.
orName
Encoded user-specified local orientation name that can be passed to the getOrientationName utility to decode it.
nField
Number of field variables defined at this material point.
nStatv
User-defined number of solution-dependent state variables.
noel
Element number.
nPt
Integration point number.
layer
Layer number (for composite shells and layered solids).
kSpt
Section point number within the current layer.
kStep
Step number.
kInc
Increment number.
i_array(niarray)
Array of integers. i_array(1)=klc, the current load case number, while i_array(2)=nlc, the total number of load cases.
niarray
Size of i_array, currently equal to 2.
r_array(nrarray)
Array of reals (double precision) for future expansion.
nrarray
Size of r_array.
c_array(ncarray)
Array of character strings (character*80) for future expansion.
ncarray
Size of c_array.