Structural optimization using
Abaqus
is an iterative process that helps you refine your designs. The result of a
well-designed structural optimization is a component that is lightweight,
rigid, and durable.
Abaqus
provides the following approaches to structural optimization: topology
optimization, shape optimization, sizing optimization, and bead optimization.
Topology optimization starts with an initial model and determines an optimum
design by modifying the properties of the material in selected elements,
effectively removing elements from the analysis. Shape and sizing optimization
further refine the model. Shape optimization modifies the surface of the
component by moving the surface nodes to reduce local stress concentrations.
Sizing optimization modifies the sheet thickness of sheet metal components;
typically, to increase the stiffness or reduce vibration. Bead optimization
creates stiffening beads in a shell model. Topology, shape, sizing, and bead
optimization are governed by a set of objectives and constraints.
Optimization is a tool for shortening the development process by adding
value to a designer's experience and intuition with an automated procedure. To
optimize your model, you need to know what to optimize. It is not sufficient to
say that you want to minimize stresses or maximize eigenvalues, your statements
must be more specific. For example, you might want to minimize the maximal
nodal stresses experienced during two load cases. Similarly, you might want to
maximize the sum of the first five eigenvalues. The goal of an optimization is
called the objective function. In addition, you can enforce certain values
during the optimization. For example, you can specify that the displacement of
a given node must not exceed a certain value. An enforced value is called a
constraint.
You use
Abaqus/CAE
to create the model to be optimized and to define, configure, and execute the
structural optimization. For more information, see
The Optimization module.
Terminology
Structural optimization introduces its own terminology. The following terms
are used throughout the
Abaqus
documentation and the
Abaqus/CAE
user interface:
Design area
The design area is the region of your model that the structural optimization
modifies. The design area can be the whole model, or it can be a subset of the
model containing only selected regions. Given the prescribed conditions (such
as boundary conditions, loads, and manufacturing constraints),
a topology optimization process removes and adds material from elements
in the design area while it attempts to reach an optimal design,
a shape optimization modifies the surface of the design area by moving
surface nodes,
a sizing optimization modifies the thickness of the design area by
changing the thickness of shell elements, and
a bead optimization moves nodes of shell elements in the design area in
the direction of the shell normal.
Design
variables
For an optimization problem, the design variables represent the parameters
to be changed during the optimization.
For a topology optimization, the densities of the elements in the design
area are the design variables. The
Optimization module
changes the density during each iteration of the optimization and couples the
stiffness of each element with the density. In effect, the optimization removes
elements from your model by giving them a mass and stiffness that is small
enough to ensure they no longer participate in the overall response of the
structure. The model with the revised material properties is then analyzed by
Abaqus.
For a shape optimization, the displacements of the surface nodes in the
design area are the design variables. During the optimization, the
Optimization module
either moves a node outward (growth) or inward (shrinkage) or leaves the
position unchanged (neutral). Restrictions influence the amount a surface node
can move and the direction in which it can move. The optimization directly
modifies only the position of the corner nodes of elements; the
Optimization module
interpolates the displacement of midside nodes from the movement of the corner
nodes.
For a sizing optimization, the thicknesses of the shell elements in the
design area are the design variables. The
Optimization module
can adjust the thickness of individual shell elements, or you can require
clustering—the simultaneous modification of shell thicknesses in specific
areas.
For a bead optimization, the displacements of the nodes of the shell
elements that form the stiffening beads in the design area are the design
variables. Restrictions limit the amount a node can move and the direction in
which it can move.
Design
cycle
Optimization is an iterative design process that updates the design
variables, executes an
Abaqus
analysis of the modified model, and reviews the results to determine if an
optimized solution has been reached. Each optimization iteration is called a
design cycle.
Optimization
task
An optimization task contains the definition of your optimization, such as
the design responses, objectives, constraints, and geometric restrictions. To
run an optimization, you execute an optimization process. An optimization
process refers to an optimization task.
Design
responses
The inputs to the optimization are called the design responses. Design
responses can be read directly from the
Abaqus
output database (.odb) file; for example, stiffness,
stress, eigenfrequencies, and displacements. Alternatively, the
Optimization module
can read data from the output database file and calculate the design responses
from your model; for example, its weight, center of mass, or relative
displacements.
A design response is associated with a region of your model; however, it
consists of a single scalar value, such as the maximum stress within a region
or the total volume of the model. In addition, a design response can be
associated with a particular step or load case.
Objective
functions
Objective functions define the objective of the optimization. An objective
function is a single scalar value extracted from a design response, such as the
maximum displacement or the maximum stress. An objective function can be
formulated from multiple design responses. If you specify that the objective
functions minimize or maximize the design responses, the
Optimization module
calculates the objective function by adding each of the values determined from
the design responses. In addition, if you have multiple objective functions,
you can use a weighting factor to scale their influence on the optimization.
Constraints
Constraints are also a single scalar value extracted from a design response;
however, a constraint cannot be derived from a combination of design responses.
Constraints restrict the value of a design response; for example, you can
specify that the volume must be reduced by 45% or the absolute displacement in
a region must not exceed 1 mm. You can also apply manufacturing and geometric
constraints that are independent of the optimization; for example, a structure
must be able to be cast or stamped or the diameter of a bearing surface cannot
be changed.
Stop
conditions
A global stop condition defines the maximum number of iterations an
optimization can perform. A local stop condition specifies that the
optimization should end when a local minimum (or maximum) has been reached.
Structural Optimization with Abaqus/CAE
The following steps are required to incorporate structural optimization into
your
Abaqus/CAE
model:
You create an
Abaqus
model that can be optimized. For example, the design area must include only
supported elements and materials. See
Creating Abaqus Optimization Models.
Based on the definition of the optimization task and the optimization
process, the
Optimization module
iteratively:
prepares the design variables (element densities or surface node
positions) and updates the
Abaqus
finite element model, and
executes an
Abaqus/Standard
analysis.
These iterations or design cycles continue until either:
the maximum number of design cycles is reached, or
the specified stop conditions are reached.
Figure 1
shows the interaction of
Abaqus
and the optimization process.
Topology Optimization
Topology optimization starts with an initial design (the original design
area), which also contains any prescribed conditions (such as boundary
conditions and loads). The optimization process determines a new material
distribution by changing the density and the stiffness of the elements in the
initial design while continuing to satisfy the optimization constraints, such
as the minimum volume or the maximum displacement of a region. In addition, you
can apply a number of manufacturing constraints that ensure the proposed design
can be created using standard production processes, such as casting and
stamping. You can also freeze selected regions and apply member size, symmetry,
and coupling constraints.
Figure 2
show the progression of a topology optimization of an automotive control arm
during 17 design cycles. The objective function in the optimization is trying
to minimize the maximum strain energy calculated from all the elements in the
arm, in effect maximizing the structural stiffness of the arm. The constraint
is forcing the optimization to reduce the volume by 57% from the initial value.
During the optimization the density and the stiffness of the elements in the
center of the arm are reduced so that the elements are, in effect,
removed from the analysis. However, the elements are still
present, and they could play a role in the analysis if their density and
stiffness increase as the optimization continues. A geometry restriction forces
the optimization to create a model that could be cast and removed from a
mold—the
Optimization module
cannot create voids and undercuts.
An example of using topology optimization is provided in
Topology optimization of an automotive control arm.
The example includes a Python script that you can run from
Abaqus/CAE
to create the model and configure the optimization.
General Versus Condition-Based Topology Optimization
Topology optimization supports two algorithms—the general algorithm, which
is more flexible and can be applied to most problems, and the condition-based
algorithm, which is more efficient but has limited capabilities. By default,
the
Optimization module
uses the general algorithm; however, you can choose which algorithm to use when
you create the optimization task. Each algorithm has a different approach for
determining the optimized solution.
Algorithms
General topology optimization uses an algorithm that adjusts the density and
stiffness of the design variables while trying to satisfy the objective
function and the constraints. The general algorithm is partly described in
Bendsøe and Sigmund (2003). In contrast, condition-based topology optimization
uses a more efficient algorithm that uses the strain energy and the stresses at
the nodes as input data and does not need to calculate the local stiffness of
the design variables. The condition-based algorithm was developed at the
University of Karlsruhe, Germany and is described in Bakhtiary (1996).
Elements with Intermediate Densities
The general algorithm generates intermediate elements in the final design
(their relative density is between zero and one). In contrast, the
condition-based optimization algorithm generates elements in the final design
that are either void (their relative density is very close to zero) or solid
(their relative density is equal to one).
Number of Optimization Design Cycles
The number of design cycles used by the general optimization algorithm is
unknown before the optimization starts, but normally the number of design
cycles is between 30 and 45. The condition-based optimization algorithm is more
efficient and searches for a solution until it reaches the maximum number of
optimization design cycles (15 by default).
Analysis Types
The general algorithm supports the responses of linear and nonlinear static
and linear eigenfrequency finite element analyses. Both algorithms support
geometrical nonlinearities and contact, and many nonlinear materials are also
supported.
Furthermore, prescribed displacements are allowed in the
Abaqus
model for static topology optimization. However, prescribed displacements are
not allowed for modal analysis. You can use topology optimization on a
structure that uses a composite material; however, the individual laminates of
a composite material cannot be modified using topology optimization. For
example, you cannot change the orientation of the fibers.
Objective Functions and Constraints
The general topology optimization algorithm can use one objective function
and several constraints, where the constraints are all inequality constraints.
A variety of design responses can be used to define the objective and the
constraints, such as strain energy, displacements and rotations, reaction and
internal forces, eigenfrequencies, and material volume and weight. The
condition-based topology optimization algorithm is more efficient; however, it
is less flexible and supports only strain energy (a measure of stiffness) as
the objective function and the material volume as an equality constraint.
Tables in
The Available Design Responses for Each Type of Optimization
list the available design responses for condition-based and general topology
optimization and describe which design responses can be used as objectives
and/or constraints.
Shape Optimization
Shape optimization uses an algorithm that is similar to the algorithm used
by condition-based topology optimization. You use shape optimization at the end
of the design process when the general layout of a component is fixed, and only
minor changes are allowed by repositioning surface nodes in selected regions. A
shape optimization starts with a finite element model that needs minor
improvement or with the finite element model generated by a topology
optimization.
Typically, the objective of a shape optimization is to minimize stress
concentrations using the results of a stress analysis to modify the surface
geometry of a component until the required stress level is reached. Shape
optimization tries to position the surface nodes of the selected region until
the stress across the region is constant (stress homogenization).
Figure 3
shows a region at the base of a connecting rod where the surface nodes have
been moved by shape optimization to reduce the effect of a stress
concentration.
A table in
The Available Design Responses for Each Type of Optimization
lists the available design responses for shape optimization and describes which
design responses can be used as objectives and/or constraints. In addition, you
can apply a number of manufacturing geometric restrictions that ensure the
proposed design can continue to be produced using casting or stamping
processes. You can also freeze selected regions and apply member size,
symmetry, and coupling restrictions.
An example of using shape optimization is provided in
Shape optimization of a connecting rod.
The example includes a Python script that you can run from
Abaqus/CAE
to create the model and configure the optimization.
Applying Mesh Smoothing to a Shape Optimization
During a shape optimization, the
Optimization module
modifies the surface of your model. If the
Optimization module
modifies only the surface nodes without adjusting the inner nodes, the layer of
surface elements becomes distorted. Therefore, the results of the
Abaqus
analysis are no longer reliable, and the quality of the optimization suffers.
To maintain the quality of the surface elements, the
Optimization module
can apply mesh smoothing to selected regions, which adjusts the position of the
inner nodes in relation to the movement of the surface nodes. You must have a
good quality finite element mesh before you start the shape optimization,
especially in areas where you expect the shape to change.
The
Optimization module
can apply mesh smoothing to the standard continuum elements, such as
triangular, quadrilateral, and tetrahedral elements. Other element types are
ignored during the mesh smoothing. You can specify the relative quality of the
smoothed mesh, and you can specify the range of angles (quadrilateral and
triangular elements) or the range of aspect ratios (tetrahedral elements) that
define an element that is considered good quality. Elements that are considered
poor are given a quality rating. The poorer an element is rated, the greater
the consideration it will be given in improving the element quality.
Mesh smoothing can be computationally expensive. The mesh smoothing
algorithm is element-based; and computing time increases in regions with many
elements with limited degrees of freedom, such as regions with small
tetrahedral elements. You should apply mesh smoothing only to regions where you
expect the surface nodes to move—regions that will benefit from mesh smoothing.
The nodes in the regions to which you apply mesh smoothing must be free to
move. For example, you should not apply mesh smoothing to fixed nodes or to
frozen regions.
You can apply limits to the result of mesh smoothing by applying minimum and
maximum growth restrictions to the selected region. See
Creating a growth restriction
for more information.
Mesh smoothing can be applied to regions that are included in the design
region and to regions that are outside the design region. In particular, you
can prevent element distortion by applying mesh smoothing to the region of
transition between the design region and the rest of your model. However, the
design region must be contained within the region to which you apply mesh
smoothing.
Free surface nodes are defined as the nodes that lie outside the design area
and are not included in a geometric restriction. By default, the
Optimization module
fixes all degrees of freedom of all of the free surface nodes, and they are not
modified during the mesh smoothing operation. Alternatively, you can choose to
allow the free surface nodes to move along with a specified number of layers of
nodes adjacent to the nodes in the design area. (A layer of
nodes is created from only corner nodes; midside nodes are not taken into
consideration.)
You should allow free surface nodes to move in regions that are adjacent to
the design area to create a smooth transition between optimized and
non-optimized regions. However, in some cases you will want free surface nodes
to remain fixed; for example, on a planar face that does not play a role in
your optimized model and must remain planar.
By default, a constrained Laplacian mesh smoothing algorithm is used.
Alternatively, if you have a relatively small model (less than 1000 nodes in
the mesh smooth area), you can select a local gradient mesh smoothing
algorithm. In each iteration the local gradient mesh smoothing algorithm
identifies the elements with the worst element quality and improves them by
displacing the nodes. Local gradient mesh smoothing usually generates elements
having the optimal shape, where the optimal is defined as the ratio of the
element volume (area for shell elements) to the corresponding power of its
diameter. For larger models the local gradient mesh smoothing algorithm tends
to stop before the optimal mesh quality is reached because the computation time
becomes excessive. When the mesh smoothing ends prematurely, only the elements
with the worst element quality will be smoothed.
Sizing Optimization
Similar to shape optimization, you use sizing optimization at the end of the
design process when the general layout of a component is fixed, and only minor
changes are allowed by changing the shell thickness in selected regions. A
sizing optimization starts with a finite element model that needs minor
improvement or with the finite element model generated by a topology
optimization. The
Optimization module
uses a general algorithm for solving sizing optimization problems based on the
method of moving asymptotes, which is described in Svanberg (1985).
Typically, the objective of a sizing optimization is to maximize the
stiffness of a component while satisfying a weight objective.
A table in
The Available Design Responses for Each Type of Optimization
lists the available design responses for sizing optimization and describes
which design responses can be used as objectives and/or constraints. In
addition, you can apply geometric restrictions that freeze selected areas and
apply member size and symmetry constraints. You can also provide upper and
lower bounds for the shell element thickness and group regions into
clusters of equal shell thickness. You can use
the Visualization module
to view the variation in shell thickness after a sizing optimization.
An example of using sizing optimization is provided in
Sizing optimization of a gear shift control holder.
The example includes a Python script that you can run from
Abaqus/CAE
to create the model and configure the optimization.
Applying Clustering to a Sizing Optimization
When you configure a sizing optimization, you can specify that selected
regions should contain clusters of shell elements of equal
thickness. You can use clustering to generate strengthening ribs or rings in
the sheet metal structure you are optimizing or to define borders between
regions of equal thickness. Clustered regions can be reproduced in
manufacturing using sheets of constant thickness; for example, a vehicle
body in white formed by welding and stamping individual sheet
metal structures. To allow for maximum design flexibility, you should first
optimize your structure without specifying clustering and use the initial
design to decide which regions to cluster in your final optimization.
Figure 4
shows a sheet metal arm that was optimized with free sizing
optimization that allows the thickness to be modified in the design area
regardless of the thickness of adjacent shell elements.
Figure 5
shows the same model with a clustered ring of shell elements of equal thickness
in the design area. The part generated by free optimization is stiffer than the
part generated by clustered optimization, but the part generated by free
optimization would be impractical to manufacture.
Bead Optimization
Bead optimization adds stiffening beads to a shell structure to increase the
moment of inertia, which leads to a greater stiffness or higher
eigenfrequencies. The resulting beads are easy to reproduce in a sheet metal
stamping process and add no mass and little cost to the finished product.
Figure 6
shows the von Mises stress in a plate that is fixed at the edges and has a
pressure load applied to the center. The image on the left shows the original
configuration. The image on the right shows how condition-based bead
optimization has introduced circular stiffening beads and significantly reduced
the stress at the center of the plate.
Typically, the objective of a bead optimization is to maximize the stiffness
of a component or to minimize the displacement of critical nodes. Bead
optimization does not always result in improved mechanical behavior. The
following conditions should be true for the design problem to be suited to bead
optimization:
the design area should be subjected to bending or a bending mode, and
the design area should not be in a predominately membrane stress state.
The addition of a bead in this case may make the structure softer.
An example of using bead optimization is provided in
Bead optimization of a plate.
The example includes a Python script that you can run from
Abaqus/CAE
to create the model and configure the optimization.
Applying Mesh Smoothing to a Condition-Based Bead Optimization
During a bead optimization, the
Optimization module
moves the nodes of the shell elements in the direction of the shell normal. To
maintain the quality of the shell elements during a condition-based bead
optimization, the
Optimization module
can apply mesh smoothing to the design area to limit the displacement of the
nodes. Two forms of mesh smoothing are provided—node smoothing and element
smoothing. Node smoothing prevents large displacements by limiting the
displacement of the nodes at the boundary between the design area and the rest
of the model or where active design variable constraints are restraining the
displacement of nodes. Element smoothing prevents nodes from overlapping in
regions of high curvature where the bead is being formed. You must have a good
quality finite element mesh before you start the bead optimization, especially
in areas where you expect beads to be formed.
General Versus Condition-Based Bead Optimization
Bead optimization supports two algorithms—the general algorithm, which is
more flexible and can be applied to most problems but does not generate a
distinct bead pattern, and the condition-based algorithm, which is more
efficient at creating beads but has limited capabilities. By default, the
Optimization module
uses the condition-based algorithm; however, you can choose which algorithm to
use when you create the optimization task. Each algorithm has a different
approach for determining the optimized solution.
Figure 7
shows the plate model optimized with general bead optimization. While the
stresses have been similarly reduced, the seemingly random bead structure that
is generated would be hard to manufacture, unlike the regular circular beads
generated by the condition-based bead optimization.
Algorithms
General, or sensitivity-based, bead optimization uses an algorithm that
makes it possible to define very complex optimization tasks. It has been shown
in industrial size examples that the method is very powerful and attractive,
especially for dynamic problems. The algorithm does not use a bead filter, and
the results of the optimization are not necessarily a distinct bead pattern. In
contrast, condition-based bead optimization uses a special bending hypothesis
developed at the Karlsruhe University, Institute of Product Engineering
(IPEK) and described in Emmrich (2004). The
algorithm determines the orientation of the maximum bending stress for each
point in the design and uses filters to generate beads along the bending
trajectories.
Controlling the Bead Height and Width
For a condition-based bead optimization, you directly limit the bead height
by creating a bead height design response that is referenced by a constraint.
You can enter a value for the bead width, or you can allow
Abaqus/CAE
to calculate the width from the following:
Typically, the bead height is small in comparison to the element size, in
which case the bead width is a function of the average element length.
Otherwise, if the bead height is large in comparison to the element size, the
bead width is a function of the bead height.
For a general bead optimization, you must limit the bead height by creating
geometric restrictions that limit the displacement in the growth and shrink
directions. The growth and shrink geometric restrictions are required because
they are the only restrictions on the displacement of the nodes. You cannot
control the bead width for a general bead optimization.
Number of Optimization Design Cycles
The number of design cycles used by the general algorithm is unknown before
the optimization starts, but the general algorithm normally requires about 20
design cycles to converge on a solution. The condition-based algorithm is more
efficient and always uses three design cycles.
Analysis Types
The general algorithm supports the responses of linear static, linear
eigenfrequency, and frequency response finite element analyses. The
condition-based algorithm is recommended only for static analyses; however, the
algorithm supports all the
Abaqus
analysis types that generate a stress tensor.
Objective Functions and Constraints
The general bead optimization algorithm can use one objective function and
several constraints, where the constraints are all inequality constraints. A
variety of design responses can be used to define the objective and the
constraints, such as strain energy, displacements and rotations, reaction and
internal forces, eigenfrequencies, and moment of inertia. The condition-based
bead optimization algorithm is more efficient; however, it is less flexible and
supports only strain energy (a measure of stiffness) or eigenfrequency as the
objective function and the bead height as an equality constraint.
Tables in
The Available Design Responses for Each Type of Optimization
list the available design responses for general and condition-based bead
optimization and describe which design responses can be used as objectives
and/or constraints. In addition, you can apply geometric restrictions that
freeze selected areas and apply bead size and symmetry constraints.