Adjoint design sensitivity analysis is used to compute derivatives of design
responses with respect to one or more design variables.
Adjoint design sensitivity
analysis:
is useful for nonparametric structural design and optimization workflows to produce
components that are lightweight, rigid, and durable;
is supported for the following approaches to structural sensitivity analysis: elemental
topology sensitivity, elemental sizing sensitivity for regular (non-composite) shells, layer
sizing and/or layer orientation sensitivity for composite shells, elemental sizing sensitivity
for circular beams, nodal shape sensitivities for continuum elements, and nodal bead
sensitivities for both regular (non-composite) and composite shell elements;
provides the sensitivities of selective design responses with respect to the appropriate
design variables for each of the above analysis types;
is available for static stress, transient dynamic, and frequency analysis using models that
have only stress/displacement elements;
accounts for contact, geometric, and some material nonlinearities;
is often carried out within a combined Abaqus-Tosca design optimization workflow but can also be used in a stand-alone Abaqus/Standard analysis to output design sensitivities; and
is available for sizing optimization for models without preloading or design-dependent loads
for direct steady-state dynamic analysis.
Adjoint design sensitivity analysis is typically used in sensitivity analysis having
many design parameters. Alternatively, you can use Direct Design Sensitivity Analysis in Abaqus/Standard for parametric design optimization having only a few design parameters and many design
responses.
Adjoint design sensitivity analysis is used to compute the derivatives of design responses
with respect to one or more design variables. These derivatives are commonly referred to as
sensitivities, because they provide a first-order measure of how sensitive the design response
is to a change in the design variables. The adjoint design sensitivity analysis capability is
useful when the design optimization methodology requires a relatively small set of design
responses, but a large number of design variables, typically one or more variables associated
with each element or node of the design domain. This is the case for topology, sizing, shape,
and bead sensitivities, where the adjoint method for computing design sensitivities is
significantly more cost effective computationally compared to the direct method. More details
on the different kinds of structural optimization methods can be found in About Structural Optimization. However, adjoint sensitivity analysis can also be used in a
stand-alone Abaqus/Standard analysis (that is, outside of an iterative design optimization workflow using Abaqus/Standard and Tosca) to obtain design sensitivities at any stage during the design process.
Adjoint Sensitivity Method for Transient Dynamics Using Abaqus/Standard
The adjoint sensitivity approach for transient dynamic problems is based on the implicit
dynamic procedure in Abaqus/Standard. Some classes of problems are better suited than others for such an approach. These
problems include low frequency–mode bending-dominated deformations and low-velocity crash
problems (such as side crashes and other bending-dominated crashes). Other problems in this
category include battery frame crashes, pedestrian head impacts, dynamics of machinery, and
compliant flexible dynamic mechanisms. Typically, such problems use 30–300 increments to
capture the correct physics and applying Abaqus/Standard is appropriate. Therefore, the adjoint sensitivity method for transient dynamics is
applicable for these situations.
However, for high frequency–mode crash problems (for example, axial deformation and
crushing), very small time increments are required to capture the correct physics. The run
time for many practical applications of this latter type are not feasible for Abaqus/Standard due to a very large number of time increments. Therefore, Abaqus/Explicit is better suited to solve this class of problems. Also, Abaqus/Standard might often fail to converge when the models have significant nonlinearities (many
contacts and many buckling modes). Such problems are also solved more effectively using Abaqus/Explicit.
Activating Adjoint Sensitivity Analysis
You activate an adjoint sensitivity analysis on a step-by-step basis.
Activating Adjoint Sensitivity Analysis in Multiple Steps
If you activate an adjoint sensitivity calculation in any general step during the
analysis, it is activated for all general steps in the analysis, including steps before
the activating step. Likewise, if you activate an adjoint sensitivity calculation in any
perturbation step during the analysis, it is activated for all perturbation steps in the
analysis, including steps before the activating step. In both of these situations, the
sensitivity calculations occur for any given step that includes responses. In a linear
perturbation step with multiple load cases, the design sensitivity calculations are
carried out for all the load cases. The adjoint sensitivity calculations cannot be
selectively deactivated for some of the load cases.
Specifying Design Variables
Unlike direct design sensitivity analysis (which is commonly used for parametric design
and optimization), adjoint design sensitivity analysis is commonly used for nonparametric
design and optimization. The design parameters are more commonly referred to as design
variables in this case. Unlike direct design sensitivity analysis (where the number of
design parameters is relatively small in number), an adjoint design sensitivity analysis
typically has one or more design variables associated with each element in the design
domain.
The specific choices for design variables depend on the type of design sensitivities that
you desire, as listed in the table below. For topology and sizing sensitivities, the design
variables and the corresponding design sensitivities are element-based, while for shape and
bead sensitivities these quantities are node-based.
Type of sensitivity
Design variables
Topology
Relative material density
Sizing for non-composite shells
Shell element thickness
Sizing for circular section beams
Beam element radius
Shape or bead
Nodal positions
Sizing for composite shells
Composite layer thickness and/or orientation
Topology Sensitivity
The design variables for topology optimization are the material relative densities for
the elements in the design domain. The material relative density is a nondimensional
quantity that can take a value that is greater than 0 but less than or equal to 1. A value
of 1 corresponds to the original material density, while a value that is close to 0
corresponds to removal of material to create a void. For computing design response and
sensitivities, Abaqus/Standard makes use of scaling factors and their derivatives for stiffness, mass, and stress
design response, respectively. The scaling factors and their derivatives are all functions
of the relative material density, and you can use a spatial distribution to specify them
directly. All elements in the design domain must explicitly specify a value for the
different scaling factors and their derivatives as part of the spatial distribution
definition. An element for which the scaling factors and its derivatives are not specified
is assumed not to be a part of the design domain.
Sizing Sensitivity with Non-Composite Shell Elements
The design variables for sizing with non-composite shell elements are the shell
thicknesses. All elements in the design domain must explicitly specify a value for the
shell thickness using a spatial distribution. An element for which the thickness is not
specified in the spatial distribution definition is assumed not to be a part of the design
domain.
Sizing Sensitivity with Composite Shell Elements
The design variables for sizing with composite shell elements are the composite layer
thicknesses and the orientation angles. All elements in the design domain must explicitly
specify a value for the layer thickness and/or orientation angle using spatial
distributions. If you do not specify the layer thickness or orientation angle in the
spatial distribution definition for an element, Abaqus/Standard assumes that element is not part of the design domain.
Sizing Sensitivity with Circular Section Beam Elements
The design variables for sizing with circular section beam elements are the beam radii.
All elements in the design domain must explicitly specify a value for the beam radius
using a spatial distribution. An element for which the radius is not specified in the
spatial distribution definition is assumed not to be a part of the design domain. Adjoint
design sensitivity calculations with circular section beams is supported only for elements
with section behaviors that are integrated during the analysis.
You must request output variable
BRADIUS, which contains the beam radius
for a circular cross-section beam, to render (visualize) the beam elements with varying
radii properly in the Visualization module of Abaqus/CAE. Otherwise, all beam radii are rendered with a value of 1.0.
Shape Sensitivity with Solid Elements
The design variables for shape sensitivity analysis with solid elements are the positions
(coordinates) for all nodes that are in the design domain. All nodes in the design domain
must explicitly specify, as part of a spatial distribution, a value of the displacement
components relative to their original locations. A node for which the displacement is not
specified through a spatial distribution definition is assumed to not be a part of the
design domain.
Bead Sensitivity with Shell Elements
The design variables for a bead sensitivity analysis with shell elements are the
positions (coordinates) of all nodes that are in the design domain. All nodes in the
design domain must explicitly specify, as part of a spatial distribution, a value of the
displacement components relative to their original locations. A node for which the
displacement is not specified through a spatial distribution definition is assumed to not
be a part of the design domain.
Specifying Design Responses in a Static or an Eigenfrequency Analysis
An adjoint design sensitivity analysis supports three kinds of design responses: element
responses, global responses, and node responses. The valid element responses are von Mises
stress, signed von Mises stress (the sign of this quantity is the same as the sign of the
trace of the stress tensor), maximum principal stress, minimum principal stress, plastic
strain magnitude, Neuber and Glinka plasticity correction quantities (Plasticity Corrections), a
user-defined response based on either the stress or the plastic strain, and internal forces.
A stress- or plastic strain–based design response represents a scalar measure calculated
using a specified operator (by default, the maximum) on the values in the specified element
set. Abaqus/Standard uses the stresses or the plastic strains at the element integration points to compute
stress- or plastic strain–based design responses and sensitivities. The internal forces
response represents a scalar measure calculated using a specified operator (by default, the
sum) on the internal nodal forces over a set of specified nodes from a specified set of
elements.
Only two types of global responses are available: stiffness and eigenfrequency. The global
stiffness response, available in a static procedure, provides a measure of the stiffness of
the structure that accounts for both external loading and prescribed displacements. It is
defined as
where , , , and refer to vectors representing external loads, displacements, reaction
forces, and prescribed displacements on the structure. For a structure that has only
external loading and no prescribed displacements, the second term is identically zero, and
only the first term produces a nonzero contribution. The global eigenfrequency response,
available in an eigenfrequency procedure, refers to one or more eigenfrequencies of the
structure.
The node responses refer to quantities such as displacements or reaction forces and moments
at one or more nodes in the structure.
You request design responses using a syntax analogous to that for specifying output
requests to the output database. There are no default responses. If no responses are
requested, no design responses and no sensitivities are output. Specifying a response
outputs both the design response value and the response sensitivities.
For internal forces and internal moments in element responses, both an element and a node
set must be specified to define the design response. Each node in the specified node set
receives contributions from all the elements in the specified element set that are attached
to it. For element responses and node responses, if the node set contains more than one
node, the design response contains the sum of the contributions from all the nodes in the
node set.
By default, the sensitivity for the stress and the plastic strain magnitude responses are
approximated with aggregation functions over the specified element set, where the default is
an aggregation function representing the maximum. Other aggregation functions approximating
the minimum and the difference between the maximum and minimum values are also available.
You apply these operator types for the design response. Additional operators for elemental
design responses are the sum and the average over the elemental integration points of a
given element set.
Defining the Design Response in User Subroutine
UELEMDRESP
For a user-defined element design response based on stress or plastic strain, you must
define the design response in user subroutine UELEMDRESP. You specify an element
response identifier label (such as TRESCA,
MISES_PE, or DRESP_1), the name of a table
collection that refers to a property or parameter table, and output variable
S or
PE. The specified table collection is
activated before the user subroutine is called. If no table collection is specified, Abaqus activates the table collection, if any, that is associated with the material definition
of the elements in the design domain.
Requesting Responses in Multiple Steps
Unless specified otherwise, response requests defined in a step propagate to subsequent
steps according to the following rules:
Requests in general steps propagate to subsequent general steps.
Requests in linear perturbation steps propagate to subsequent consecutive linear
perturbation steps.
Responses in a Linear Static Perturbation Step
For sensitivities in a static linear perturbation step following a general static step,
the design responses are computed based on the total values of the appropriate physical
quantities. Here, total refers to the sum of the physical quantities from the general and
the perturbation steps. This approach is particularly useful when the general step
represents the preloading and the assembly process of a structure while the perturbation
step, which is typically composed of a number of load cases, represents service and live
loads. The perturbation step may or may not apply the Linear Complementarity Problem
(LCP) solution technique (see Linear Complementarity Problem (LCP) Solution Technique for Solving Contact Problems).
Restrictions on Responses
The tables below describe the available design responses for various procedure types.
Procedure type
Physical quantity
Node response
Static
Displacement components
U1,
U2, U3
Displacement magnitude
UMAG
Rotation components
UR1,
UR2, UR3
Rotation magnitude
URMAG
Reaction force components
RF1,
RF2, RF3
Reaction force magnitude
RFMAG
Reaction moment components
RM1,
RM2, RM3
Reaction moment magnitude
RMMAG
Procedure type
Physical quantity
Element response
Static
Internal force components
INTF1,
INTF2, INTF3
Internal force magnitude
INTFMAG
Internal moment components
INTM1,
INTM2, INTM3
Internal moment magnitude
INTMMAG
Von Mises equivalent stress
MISES
Signed von Mises equivalent stress
S_MISES
Maximum principal stress
SP3
Minimum principal stress
SP1
Neuber equivalent stress
NBSEQ
Glinka equivalent stress
GKSEQ
Neuber equivalent strain
NBEEQ
Glinka equivalent strain
GKEEQ
Plastic strain magnitude
PEMAG
Neuber equivalent plastic strain
NBPEEQ
Glinka equivalent plastic strain
GKPEEQ
Procedure type
Physical quantity
Global response
Static
Global stiffness measure
STIFF
Frequency
Eigenfrequency
FREQ
Specifying Design Responses in a Transient Dynamic Analysis
A transient dynamic adjoint design sensitivity analysis supports two kinds of design
responses: node responses and element responses. The node responses refer to quantities such
as displacements or reaction forces and moments at one or more nodes in the structure. Most
of the available responses are node responses; the only valid element response is internal
rate of work (power flow) for a given element set.
You request design responses using a syntax analogous to that for specifying output
requests to the output database. There are no default responses. If no responses are
requested, no design responses and no sensitivities are output. Specifying a response
outputs both the design response value and its sensitivities. You must specify a node set or
an element set as part of a node or an element design response definition. If the set
contains more than one entity (node or element), the design response contains the sum of the
contributions from all of the entities in the set.
Optionally, you can specify one or more time points at which a physical quantity of
interest is to be treated as a design response. If no time point is specified, the time
point corresponding to the end of the step is used for the design response.
Restrictions on Responses
The tables below describe the available design responses for a transient dynamic
procedure.
Procedure type
Physical quantity
Node response
Transient dynamic
Displacement components
U1,
U2, U3
Displacement magnitude
UMAG
Rotation components
UR1,
UR2, UR3
Rotation magnitude
URMAG
Translational velocity components
V1,
V2, V3
Translational velocity magnitude
VMAG
Rotational velocity components
VR1,
VR2, VR3
Rotational velocity magnitude
VRMAG
Translational acceleration components
A1,
A2, A3
Translational acceleration magnitude
AMAG
Rotational acceleration components
AR1,
AR2, AR3
Rotational acceleration magnitude
ARMAG
Reaction force components
RF1,
RF2, RF3
Reaction moment components
RM1,
RM2, RM3
Procedure type
Physical quantity
Element response
Transient dynamic
Rate of internal work
ELPF
Specifying Design Responses in a Direct Steady-State Dynamic Analysis
A direct steady-state dynamic adjoint design sensitivity analysis supports only node
responses for sizing optimization with non-composite shell elements and circular-section
beam elements. The node responses refer to quantities such as displacements, velocities, or
accelerations at one or more nodes in the structure. For each design response, you specify a
range of frequencies over which the sensitivities are computed. The output values of a
design response and the corresponding sensitivities are aggregates (default is maximum)
computed over the range of frequencies specified for the design response.
There are no default responses. If no responses are requested, no design responses and no
sensitivities are output. Specifying a response outputs both the design response value and
its sensitivities. You must specify a node set for each node response requested. If the node
set has multiple nodes, the design response contains the aggregate (default is sum) of the
contributions from all of the nodes in the node set.
The frequency range, which you specify with a node response request, must include one or
more frequency values at which the primal steady-state dynamic response is computed. If this
is not the case, Abaqus/Standard outputs the design response and sensitivities as zeros. You may also obtain the primal
steady-state dynamic response at frequency values that are outside of the range specified
with the node response definition; these have no effect on the design response and
sensitivity output.
The node set you specify for any node response should not contain any node with a dependent
degree of freedom. There should be no preloading in an analysis with a direct steady-state
dynamic adjoint design sensitivity analysis step. Connector elements and design dependent
loads (such as gravity loading, GRAV) are not
supported in a direct steady-state dynamic adjoint design sensitivity analysis. You can run
a direct steady-state dynamic analysis on multiple domains; however, if you request an
adjoint sensitivity analysis for this procedure, you can run the analysis only on a single
domain. The permitted aggregation operators over the node set are sum
(SUM), maximum
(MAX), and average
(AVE).
Restrictions on Responses
The table below describes the available design responses for a direct steady-state
dynamic procedure.
Procedure type
Physical quantity
Node response
Direct steady-state dynamic
Displacement components
U1,
U2, U3
Displacement magnitude
UMAG
Rotation components
UR1,
UR2, UR3
Rotation magnitude
URMAG
Velocity components
V1,
V2, V3
Velocity magnitude
VMAG
Rotational velocity components
VR1,
VR2, VR3
Rotational velocity magnitude
VRMAG
Acceleration components
A1,
A2, A3
Acceleration magnitude
AMAG
Rotational acceleration components
AR1,
AR2, AR3
Rotational acceleration magnitude
ARMAG
Material Options
The adjoint sensitivity calculations are supported with elastic, hyperelastic, and
isotropic hardening Mises plasticity material models. With plasticity, the sensitivity
calculations use a total formulation that assumes that the loading is monotonic (that is, no
unloading) and proportional. The sensitivity results are not accurate if the above
assumptions are not valid. More generally, for material constitutive models with
path-dependent and irreversible response, the adjoint sensitivity calculations are supported
only for monotonic loading.
Output
The responses and response sensitivities are output only to the output database
(.odb) file; sensitivity output to the data (.dat)
file and results (.fil) file is not supported. The design responses are
labeled utilizing the following format:
The labels of the sensitivities are related to the labels of the design responses as
follows:
The depends on the type of sensitivity analysis. For topology sensitivity the
design variable name is prefixed by Abaqus/Standard to be _density. For example, if the design response is
U1, the corresponding sensitivity is
d_U1_{response_name}__density. For shape and bead
sensitivities, the design variable name is prefixed by Abaqus/Standard to be _position. In this case, the sensitivity output
represents a vector with three components in the X-,
Y-, and Z-directions. For example, if the design
response is U1, the corresponding shape or bead sensitivities are a vector
d_U1_{response_name}__position. For sizing sensitivity with
respect to either the total thickness for non-composite shells or an individual layer
thickness for composite shells, the design variable name is prefixed by Abaqus/Standard to be _thickness. For sizing sensitivity with respect to
the material orientation angle in a layer of a composite shell, the design variable name is
prefixed by Abaqus/Standard to be _angle. The in the label for the sensitivities helps distinguish among design
sensitivities that are of the same type.
Limitations
Adjoint design sensitivity analysis are subject to a number of limitations.
Sizing sensitivity with composite shells:
Cannot be used in an eigenfrequency analysis.
Cannot be used in a direct steady-state dynamic analysis.
Cannot be used with inertia relief loads.
Loads and Constraints:
Inertia relief loads are supported only for three-dimensional elements in linear
perturbation steps and load cases.
Nodes that are involved in a multi-point constraint definition, either as a main
node or a secondary node, cannot be part of the design domain for a shape or bead
sensitivity analysis.
Materials:
The isotropic Mises plasticity model is the only supported plasticity material
model. For this model, the sensitivity calculations are based on a total formulation
that assumes that all material points undergo proportional loading with no
unloading.
For adjoint sensitivity calculations, numerical damping contributions are taken
into account consistently for moderate dissipation or quasi-static applications of a
transient dynamic analysis. While consistent numerical damping contributions are
also included during the adjoint sensitivity calculations of transient fidelity
applications, such problems often experience numerical instabilities during adjoint
sensitivity calculations with thin-walled structures (for example, shells). In
transient dynamic simulations for which the transient fidelity application type is
the default choice, you should use a moderate dissipation application type for
accurate adjoint sensitivities.
Elements:
Continuum shell elements are not supported for sizing sensitivities.
The following element types are not supported for shape sensitivities: continuum
elements with incompatible modes; generalized plane strain elements; cylindrical
solid elements; axisymmetric solid elements with nonlinear, asymmetric deformation;
continuum solid shell elements; cylindrical membrane elements; and axisymmetric
membrane elements (with and without twist).
The following element types are not supported for bead sensitivities: continuum
shell elements; axisymmetric shell elements; axisymmetric shell elements with
nonlinear, asymmetric deformation; conventional three-dimensional shell elements
with five degrees of freedom per node; and triangular facet thin shell elements
(STRI3).
The internal force design response cannot be associated with elements that have
secondary nodes (for any feature that uses a main-secondary concept, such as a
multi-point constraint).
Eigenfrequency analysis:
Only the Lanczos eigensolver can be used during an eigenfrequency analysis.
Transient analysis:
In a transient dynamic procedure, shape or bead sensitivity analysis is supported
only for moderate dissipation and quasi-static applications.
A transient dynamic shape sensitivity analysis is not supported for hybrid,
modified, and incompatible-mode elements as design elements, but these elements can
be present in the model.
A transient dynamic bead or shape sensitivity analysis is not supported with
thermal loads.
A transient dynamic sensitivity analysis must contain only a single dynamic step.
For a transient sensitivity analysis, the specification of the time points can
contain only a single time point.
Material damping is not supported for transient sensitivity calculations.
For three-dimensional Timoshenko beam elements, a transient sensitivity analysis
supports only isotropic rotary inertia. As a result the rotary inertia associated
with the torsional mode is used for all rotational degrees of freedom.
Direct steady-state dynamic adjoint sensitivity analysis:
The use of multiple domains is not supported.
Design-dependent loads and connector elements in the model are not supported. The
node sets specified in the node responses cannot contain any nodes with dependent
degrees of freedom. The aggregation operators over the node sets of the node
responses are limited to sum (default), maximum, and average.
Preloading is not supported.
Use with restart analyses:
In a restart analysis, you cannot request adjoint design response and
sensitivities if the original analysis did not include such requests.
You cannot request adjoint design response and sensitivities that are based on the
combined responses of a perturbation step and a preceding general step if the
perturbation step appears in a restart analysis while the preceding general step
appears in the original analysis.
Input File Template
Input file template for sensitivity analysis in a static procedure:
HEADING
…
NODE, NSET=nsetData lines to define the nodesELEMENT, TYPE=element type, ELSET=elset_elasticData lines to define the elementsSOLID SECTION, ELSET=elset_elastic, MATERIAL=elasticMATERIAL, NAME=elasticELASTICData lines to define the elastic propertiesSTEP, SENSITIVITY=ADJOINTSTATIC
…
DESIGN RESPONSE, NAME=response nameELEMENT RESPONSE, ELSET=elset nameData line to specify the element response identifier keyDESIGN RESPONSE, NAME=response nameELEMENT RESPONSE, ELSET=elset name, NSET=nset nameData line to specify the element response identifier keyDESIGN RESPONSE, NAME=response nameNODE RESPONSE, NSET=nsetData line to specify the nodal response identifier keyDESIGN RESPONSE, NAME=response nameGLOBAL RESPONSEData lines to specify the global response identifier keysEND STEP
Input file template for sensitivity analysis in a transient dynamic procedure:
HEADING
…
NODE, NSET=nsetData lines to define the nodesELEMENT, TYPE=element type, ELSET=elset_elasticData lines to define the elementsSOLID SECTION, ELSET=elset_elastic, MATERIAL=elasticMATERIAL, NAME=elasticELASTICData lines to define the elastic propertiesDENSITYData lines to define density propertiesTIME POINTS, NAME=TimePoint_Name1Data lines to define a list of time pointsTIME POINTS, NAME=TimePoint_Name2Data lines to define a list of time pointsSTEP, SENSITIVITY=ADJOINTDYNAMIC
…
DESIGN RESPONSE, NAME=response name, TIME MARKS=YES, TIME POINTS=TimePoint_Name1ELEMENT RESPONSE, ELSET=elset nameData line to specify the element response identifier keyDESIGN RESPONSE, NAME=response name, TIME MARKS=YES, TIME POINTS=TimePoint_Name2NODE RESPONSE, NSET=nsetData line to specify the nodal response identifier keyEND STEP
Input file template for adjoint sensitivity analysis in a direct steady-state dynamic
procedure:
HEADING
…
NODE, NSET=nsetData lines to define the nodesELEMENT, TYPE=element type, ELSET=elset_elasticData lines to define the elementsSOLID SECTION, ELSET=elset_elastic, MATERIAL=elasticMATERIAL, NAME=elasticELASTICData lines to define the elastic propertiesDENSITYData lines to define density propertiesSTEP, SENSITIVITY=ADJOINTSTEADY STATE DYNAMICS, DIRECT
…
DESIGN RESPONSE, NAME=response nameNODE RESPONSE, NSET=nset, OPERATOR=operator label, RANGE OPERATOR=range operator labelData line to specify the nodal response identifier keyfrequency lower limit, frequency upper limitEND STEP