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.
|