is performed with
Abaqus/Design,
an add-on option for
Abaqus/Standard;
provides the sensitivities of responses with respect to specified
design parameters;
is available for static stress and frequency analysis using models
that have only stress/displacement elements; and
can include design parameters affecting: material properties (elastic,
hyperelastic, and hyperfoam models); section properties; concentrated forces
and moments; and nodal coordinates (and beam and shell normals if applicable).
Abaqus/Standard
also computes design sensitivities for a class of design responses using the
adjoint method. See
Adjoint Design Sensitivity Analysis
for a detailed discussion of the adjoint method for computing design
sensitivities and the design responses and design variables that are supported.
The design sensitivity analysis (DSA)
capability provides the derivatives of certain output variables with respect to
specified design parameters. These derivatives are commonly referred to as
sensitivities, because they provide a first-order
measure of how sensitive the output variable is to a change in the design
parameter. The output variables for which sensitivities are computed are called
design responses or simply
responses. Design parameters are chosen from a set
of existing analysis parameters. As an example, you can choose to obtain the
derivatives of stresses with respect to Young's modulus; stress is the
response, and Young's modulus is the design parameter. The sensitivities are
computed based on the direct differentiation method used in conjunction with
the semi-analytical computational technique. In the semi-analytical technique
some derivatives are computed using numerical (finite) differencing, thus
requiring perturbations of the design parameters. For these derivatives by
default
Abaqus/Design
will use a central differencing scheme and automatically determine appropriate
perturbation sizes based on a heuristic algorithm. You can override these
defaults by specifying the numerical differencing method and the perturbation
sizes directly. A full discussion of DSA
theory is given in
About design sensitivity analysis.
Activating DSA
You activate DSA on a step-by-step basis.
Activating DSA in Multiple Steps
Once DSA is activated in a general step, it
remains active in all subsequent general steps until it is deactivated in a
subsequent general step. Once DSA is activated
in a perturbation step, it remains active in all subsequent consecutive
perturbation steps until it is deactivated in a subsequent consecutive
perturbation step. However, if DSA is
activated in a step whose procedure is not supported for
DSA, DSA will
be deactivated until it is activated again.
Specifying Design Parameters
You can define multiple parameters to be used in place of
Abaqus
input quantities for an analysis. You must indicate which of these parameters
are to be considered as design parameters.
Restrictions on Design Parameters
The following are restrictions on design parameters:
Design parameters can be associated only with floating point data. The
following analysis components can include design-dependent data:
Shape design parameters (i.e., design parameters that affect nodal
coordinates and beam and/or shell normals) can be used only in conjunction with
parametric shape variations (see
Parametric Shape Variation).
Response requests are specified using a syntax analogous to that for
specifying output requests to the output database. Except for eigenvalues and
eigenfrequencies, there are no default responses—if no responses are requested,
no response sensitivities will be output. If
DSA is active in a frequency step, eigenvalue
and eigenfrequency sensitivities will be output automatically. Specifying a
response will cause output of both the response and the response sensitivities.
Requesting Responses in Multiple Steps
Unless respecified, 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.
When a non-DSA step appears between
DSA steps, the responses must be respecified
in the DSA step following the
non-DSA step.
Restrictions on Responses
The available responses are a subset of the existing output variables. The
valid responses based on procedure type are described below.
For static steps the valid responses are:
Node responses: U and RF
Element responses: S, SF, SINV, SP, E, SE, EP, EE, EEP, LE, LEP, NE, NEP, ENER, ELEN, EVOL, and MASS
Contact responses: CSTRESS and CDISP
For frequency steps the valid responses are:
Node responses: None
Element responses: MASS
Contact responses: None
Eigenvalue (EIGVAL) and eigenfrequency (EIGFREQ) sensitivities are output automatically.
Specifying Design Gradients of Design-Dependent Input Data
The DSA calculations require the gradients
of the design-dependent input data with respect to the design parameters. For
example, if Poisson's ratio, ,
is made dependent on a design parameter, say h, the
gradient
is required. Design gradients with respect to shape design parameters are
specified differently than those with respect to other design parameters.
Specifying Design Gradients with Respect to Shape Design Parameters
Gradients with respect to shape design parameters must be specified using a
parametric shape variation definition (see
Parametric Shape Variation).
For the purposes of DSA if the parameter to
which the shape variation data refer is a design parameter, the shape variation
data are interpreted as the gradients of the nodal coordinates with respect to
the design parameter. If a nonzero value is given for the shape parameter,
Abaqus/Design
will also perturb the base coordinates.
Specifying Gradients for Non-Shape Design Parameters
For non-shape design parameters, by default
Abaqus/Design
will use numerical differentiation to calculate design gradients based on the
information you provide. However, you can override this default behavior by
specifying the gradients directly using Python expressions (see
Parametric Modeling).
You specify a design parameter as the independent parameter and a list of the
parameters that depend on that design parameter. Only one independent (design)
parameter can be given for each design gradient definition.
History Dependence and Formulation Type in a Multi-Increment Analysis
Both total and incremental formulations are implemented for
DSA. The choice of formulation depends on
whether or not an analysis is history dependent. Below is a brief description
of these formulation types. A more detailed discussion can be found in
About design sensitivity analysis.
By default, the incremental DSA formulation is
used. You can specify the DSA formulation only
for the entire model; this specification is ignored if given as part of a step
definition.
Incremental DSA Formulation
In the incremental formulation the problem is assumed to be history
dependent.
Abaqus/Design
solves for the incremental displacement sensitivities, and the total
displacement sensitivity is updated at the end of the increment. Due to the
history dependence, the incremental displacement sensitivities for the current
increment depend on the sensitivities of the state variables at the beginning
of the increment, in the same sense that incremental displacements depend on
the state variables at the beginning of the increment for equilibrium analyses.
Thus,
Abaqus/Design
must also compute and update state variable sensitivities in each increment.
Consequently, DSA must be activated for
all steps up to the last step in which
DSA is active, and the
DSA calculations will be done at
all increments in these steps, regardless of
whether or not a design response is requested for a given step. If a response
is requested for a step, the specified response frequency is ignored for the
purposes of the DSA calculations (the
frequency at which the output is written will still be governed by the
specified response frequency).
The disadvantage of the incremental DSA
formulation is its cost, due to the necessity of computing both state variable
and incremental displacement sensitivities at each increment prior to the last
DSA increment. This increased cost is
unavoidable if the problem is history dependent but is unnecessary if the
problem is history independent. Thus, the total
DSA formulation should be chosen for problems
that are not history dependent.
Total DSA Formulation
In the total displacement formulation the total displacement sensitivities
are calculated directly based on the assumption that the problem is not history
dependent. In other words, the displacement sensitivities do not depend on
sensitivity results calculated in previous increments. Thus, the advantage of
the total formulation is that the sensitivity calculations need only be done at
increments of interest. You can control when
DSA calculations are done by activating
DSA for only the desired steps and specifying
the desired frequency for each design response request.
You may choose to use the total DSA
formulation in problems that are known to be history dependent. However, in
this case the DSA solution is approximate,
with the degree of approximation increasing as the problem becomes more
strongly history dependent. To assess the validity of using the total
DSA formulation, it is recommended that you
run both an incremental and total sensitivity analysis for a typical problem
and compare the results.
DSA in Linear Perturbation Steps
The sensitivity of the perturbation response can be calculated in a linear
perturbation step (see
General and Perturbation Procedures).
The perturbation response will include the effects of stress and load
stiffening in the base state if geometric nonlinearity is considered. Since we
need to calculate the sensitivity of an incremental (perturbation) response,
the sensitivity of the stress and load stiffening effects must be known at the
end of the base step. Thus, if geometric nonlinearity is considered in the base
step, DSA must also be active in the base
step, irrespective of the type of formulation (total or incremental).
Determination of Design Parameter Perturbation Sizes
The basis of the semi-analytic technique is the use of numerical
differencing to obtain derivatives of certain element vectors and matrices (see
About design sensitivity analysis).
Abaqus/Design
will automatically determine appropriate perturbation sizes to be used in the
semi-analytic technique unless you specify them directly.
Abaqus/Design
determines the perturbation sizes using a heuristic perturbation sizing
algorithm based on the behavior of a scalar s associated
with an element. By default, the perturbation sizing algorithm is applied only
for the first increment (static procedure) or first mode (frequency procedure)
in each step for which DSA is active. The
perturbation sizes are then reused for the remaining increments or modes in the
step for which DSA calculations are done.
The goal of the algorithm is to find perturbation sizes that are optimal for
numerical differencing. Differencing formulas are based on Taylor series
expansions, and the order of approximation of the derivative to be computed is
reflected in the terms that are neglected in the series. The accuracy of the
approximated derivatives often depends strongly on the perturbation size used
in the differencing formula. Choosing a perturbation size that is too large
will cause a truncation error, which occurs when the order of approximation is
no longer valid (i.e., as a result of truncating higher-order terms in the
Taylor series). A perturbation size that is too small will lead to inaccuracies
in the differencing operations due to round-off, typically referred to as a
cancellation error.
The algorithm attempts to find perturbation sizes giving the best compromise
between cancellation and truncation errors by observing the behavior of
s. For each design parameter s is
computed for perturbation sizes spanning several orders of magnitude. The error
in s between consecutive perturbation sizes is calculated
as .
The perturbation size yielding an acceptable error, ,
is chosen as the best perturbation size.
This scalar s is selected as follows:
Static procedure. For static steps
s is chosen as the norm of the element pseudoload (the
partial derivative of the element residual with respect to the design
parameters).
Frequency procedure. For frequency steps
s is computed from the element contribution to a matrix
involving the derivatives of the mass and stiffness matrices (namely
,
where
is the stiffness,
is the mass, h is the design parameter, and
is an eigenvalue). The scalar s is taken as the projection
of this matrix onto an eigenvector .
If the perturbation sizing algorithm is applied to a mode with a distinct
eigenvalue,
is taken as the eigenvector associated with this mode. However, if a mode
happens to be associated with a repeated eigenvalue,
is taken as the sum of all the eigenvectors associated with the repeated
eigenvalue. Thus, the entire set of modes associated with a repeated eigenvalue
will be treated simultaneously by the perturbation sizing algorithm (the
eigenvalue sensitivities of a repeated eigenvalue are obtained simultaneously
from the same reduced eigenvalue system).
You can control various aspects of the numerical differencing operations.
These aspects are described in detail in the following sections. You can
specify DSA controls for the entire model
and/or for individual steps. Specifying these controls for the entire model has
the effect of creating new default values for the various settings. When you
specify these controls for individual steps, the following propagation rules
are enforced:
Once DSA controls are specified in a
non-perturbation step, they remain in effect for all subsequent
non-perturbation steps, unless they are respecified or reset.
Once DSA controls are specified in a
perturbation step, they remain in effect for all subsequent consecutive
perturbation steps, unless they are respecified or reset.
Resetting DSA Controls
You can reset DSA controls only for
individual steps. If DSA controls are
specified for the entire model, resetting them in a particular step will reset
the numerical differencing behavior to the behavior specified for the entire
model; otherwise, the behavior will be reset to the original default values.
Any additional changes specified will be applied after the behavior is reset.
Changing the Defaults for the Heuristic Perturbation Sizing Algorithm
The following two sections describe how certain parameters associated with
the perturbation sizing algorithm can be changed from their default values for
purposes of computational efficiency and accuracy.
Changing the Default Tolerance
By default, the tolerance
is set to 1.0 × 10−4. Warning messages are written to the message
file for elements for which this tolerance is not achieved. These elements are
collected in element sets and can be viewed in
the Visualization module
of
Abaqus/CAE.
It is important to understand that this tolerance controls the effort expended
in obtaining an optimum perturbation size; it is not a direct measure of the
accuracy of the numerical differentiation.
Changing the Frequency at Which the Perturbation Sizing Algorithm Is Used
Determining perturbation sizes using the heuristic algorithm is
computationally intensive. You can specify the frequency at which the
perturbation sizes are recalculated. For example, specifying a sizing frequency
of n will cause
Abaqus/Design
to determine new perturbation sizes at every n
increments or eigenmodes. The perturbation size will always be recalculated at
the first increment or eigenmode in each step for which
DSA is active, which is equivalent to
specifiying a sizing frequency of 0. Since the perturbation sizing algorithm is
computationally intensive, care should be exercised to ensure that the sizing
frequency is as large as possible (or zero).
As discussed above, the perturbation sizing algorithm is applied
simultaneously to all modes associated with a repeated eigenvalue. Thus, the
actual number of modes associated with a repeated eigenvalue that are “hit”
based on the sizing frequency is irrelevant, so long as it is at least one.
Overriding the Default Heuristic Perturbation Sizing Algorithm
If an appropriate perturbation size is already known for a particular design
parameter (from previous analyses of similar problems, for example), economy
can be gained by applying this perturbation size directly rather than having
Abaqus/Design
automatically find the perturbation size. You can specify either forward
differencing or central differencing directly together with an absolute
perturbation size for each design parameter. If you override the default
algorithm, it is up to you to choose perturbation sizes that will lead to
accurate sensitivities.
Accuracy of the DSA Solution
As can be seen in
About design sensitivity analysis,
the accuracy of the DSA solution is dictated
by both the accuracy of the numerically computed derivatives and, for nonlinear
static analysis, the accuracy of the tangent stiffness matrix. The accuracy of
the numerically computed derivatives is governed by the semi-analytic
DSA algorithm; you can control it by
specifying DSA controls. In nonlinear static
analysis DSA uses the tangent stiffness matrix
formed during the last equilibrium iteration. It is possible that the accuracy
of the tangent stiffness matrix needed to achieve an accurate equilibrium
solution may be insufficient to achieve an accurate
DSA solution. In such cases you can tighten
the convergence tolerances during the equilibrium analysis so that a more
accurate tangent stiffness matrix is obtained (see
Commonly Used Control Parameters).
Furthermore, an accurate equilibrium solution often can be obtained when
unsymmetric terms in the tangent stiffness are ignored (i.e., the unsymmetric
matrix storage and solution scheme is not used; see
Defining an Analysis).
However, even if mildly unsymmetric stiffness terms are neglected, the
DSA solution may be inaccurate. Therefore, it
is recommended that the unsymmetric solution scheme be used for
DSA when the tangent stiffness matrix is known
to be unsymmetric.
In some cases a response at a certain instant in time may be discontinuous
with respect to a design parameter. For example, at this point of discontinuity
a variation in the design parameter may cause a node to come into contact,
frictional behavior to change from sticking to sliding, or a material point to
transition from elastic to inelastic behavior. Since the
DSA calculations make use of numerical
differencing, it is possible that the perturbation of the design parameter used
in the differencing scheme may result in values of the response to be
differenced that lie on opposite sides of the discontinuity. If this occurs,
the accuracy of the computed derivative cannot be guaranteed. Mathematically
speaking, the derivative (sensitivity) of the response with respect to the
design parameter does not exist at the point of discontinuity. Practically
speaking, it is unlikely that the response at any given instant will lie
precisely on the discontinuity. In cases where the response is near a
discontinuity, if you choose to use the default perturbation sizing algorithm,
the algorithm will attempt to choose design parameter perturbation sizes such
that the values of the perturbed responses remain on the same side of the
discontinuity. In addition, for contact elements
DSA calculations are not performed in
increments in which the associated contact node is open. Typically, the global
results in any increment are not affected by a few discontinuous points in the
model.
Design Dependence and Supported Features
Responses depend on design parameters
explicitly and
implicitly. Implicit design dependence is the
dependence on the design parameter through the solution variables; therefore,
this type of dependence can be quantified only after the
DSA solution is obtained (recall that the
DSA solution is the total displacement
sensitivity for the total formulation and the incremental displacement
sensitivity for the incremental formulation). All other design dependencies are
explicit, meaning that they can be resolved without knowing the
DSA solution. The types of dependencies can be
identified by looking at the form of the sensitivity of a response, say
r, with respect to a design parameter, say
h. This sensitivity is expressed as
for the total formulation and
for the incremental formulation, where
is a displacement degree of freedom and
represents state variables at the beginning of the increment (see
About design sensitivity analysis
for further details). The state variables include the displacements at the
beginning of the increment. In both cases the last term on the right-hand side
represents the implicit design dependence through the solution variables.
It is observed from the incremental equation above that the explicit design
dependence consists of two terms. The first of these, ,
represents a direct design dependence, because
this term arises from the direct dependence of the response on the design
parameter. The second explicit term, ,
represents the dependence on the design parameter through the state variables
at the beginning of the increment. For the total formulation, it is seen that
the explicit term involves only direct design dependence.
Any feature for which direct design dependence calculations are implemented
in
Abaqus
will be referred to as supported for
DSA. Supported and unsupported features can be
mixed in an analysis, unless the supported features cause unsupported features
to become directly design dependent (an example of this would be making the
Young's modulus for a frame element design dependent, since frames are not
supported for DSA).
To make a clearer distinction between the types of design dependencies,
consider the more concrete example of a linear elastic truss element, fixed at
one end and pulled with a concentrated load at the other end. Let
represent the displacement at the free end, E represent
Young's modulus, and L represent the length of the truss.
Consider the axial stress
as the response. Although it is clear in this simple example that the stress
can be computed easily as the load divided by the cross-sectional area, the
finite element analysis computes the stress equivalently as
.
Choosing Young's modulus, E, as the design parameter, the
stress sensitivity is given by
for the total formulation and
for the incremental formulation. This example is a valid analysis since
elastic materials and truss elements are supported for
DSA. Suppose now that a frame element is
added, extending the length of the structure. If the frame element shares the
same Young's modulus, the analysis becomes invalid since the dependency on the
design parameter E causes the frame element, which is
unsupported, to become directly design dependent (i.e., the term
would need to be computed). On the other hand, if the frame uses a different
modulus, say
that is not a design parameter, the analysis again becomes valid, since the
frame no longer depends directly on the design parameter
E.
Contact Interactions
Surface-based contact between deformable and rigid surfaces with small- or
finite-sliding relative surface motion including friction is supported in a
design sensitivity analysis. In all the friction models only the friction
coefficients (no test data input) can be made design dependent. Shape design
parameters are not valid for rigid surfaces. Contact between deformable
surfaces is not supported.
Restarting a Design Sensitivity Analysis
A design sensitivity analysis can be restarted (see
Restarting an Analysis).
However, DSA must have been active in the base
analysis, and no design parameter or gradient data can be modified in the
restart run. The restarted analysis will follow all the
DSA propagation rules that are applicable to a
regular analysis. For total formulation DSA,
you may choose to activate or deactivate DSA
in any new step that is added to the restart run. However, for the incremental
formulation DSA must have been active in the
step at which restart is attempted for you to continue doing
DSA in the restarted analysis.
Procedures
DSA is available in the following analysis
procedures:
Frequency analysis
Static stress analysis (including nonlinear geometric effects and
contact)
The following analysis procedures and techniques are not supported:
Static stress analysis with the Riks method
Static perturbation analysis with LCP
contact
Substructuring
Mesh modification or replacement
Importing and transferring results
Symmetric model generation and results transfer
Contour integrals
Cyclic symmetry in frequency procedures
Submodeling Limitations
Design sensitivity analysis can be performed in both the global model and
submodel, with the limitation that the DSA
solution will not be interpolated from the global model to the submodel. This
means that DSA is valid in the submodel only
if the global solution that is interpolated onto the boundary of the submodel
can be considered independent of the design parameters chosen for the submodel
sensitivity analysis.
Material Options
The following material models are supported:
Isotropic, orthotropic, and anisotropic elasticity
Hyperelasticity
Hyperfoam
In these models only directly input material coefficients (not test data)
can be made design dependent. If test data are specified, that material
definition can be replaced by specifying the material coefficients calculated
by
Abaqus/Design
directly. Supported and unsupported material models can be mixed in the same
analysis.
Elements
Solid, truss, shell, beam, gasket, and membrane stress/displacement elements
are supported. Shell elements with five degrees of freedom per node cannot be
used in a total DSA formulation. Supported and
unsupported elements can be mixed in the same analysis.
Output
The responses and response sensitivities (see
Specifying Responses
above) are output only to the output database (sensitivity output to the data
file and results file is not supported). The names of the sensitivities are
related to the names of the responses as follows:
For example, if the name of the response is S and the name of the design
parameter is Young, the name of the sensitivity is
d_S_Young.
Input File Template
HEADING
…
PARAMETERPython expressions defining parameters.DESIGN PARAMETERList of independent parameters to be considered as design parameters.
…
NODE, NSET=nsetData lines to define the nodes.PARAMETER SHAPE VARIATION, PARAMETER=parameterData lines to define the gradients of coordinates with respect to the parameter.
…
ELEMENT, TYPE=solid element type, ELSET=elset_elasticData lines to define the elements.ELEMENT, TYPE=solid element type, ELSET=elset_hyperData lines to define the elements.SOLID SECTION, ELSET=elset_elastic, MATERIAL=elasticSOLID SECTION, ELSET=elset_hyper, MATERIAL=hyperMATERIAL, NAME=elasticELASTICData lines to define the elastic properties.MATERIAL, NAME=hyperHYPERELASTICData lines to define the hyperelastic properties.
…
STEP,DSASTATIC
…
DESIGN RESPONSE, FREQUENCY=intervalELEMENT RESPONSE, ELSET=elsetData lines to specify the element response identifier keys.NODE RESPONSE, NSET=nsetData lines to specify the nodal response identifier keys.END STEP