Professional Documents
Culture Documents
In addition, the following countries have resellers for Altair Engineering: Colombia, Czech Republic, Ecuador, Israel, Russia,
Netherlands, Turkey, Poland, Singapore, Vietnam, Indonesia
Official offices with resellers: Canada, China, France, Germany, India, Malaysia, Italy, Japan, Korea, Spain, Taiwan, United
Kingdom, USA
In addition to HyperWorks trademarks noted above, Display Manager, Simulation Manager, Compute Manager, PBS,
PBSWorks, PBS GridWorks, PBS Professional, PBS Analytics, PBS Desktop, PBS Portal, PBS Application Services,
e-BioChem, e-Compute and e-Render are trademarks of ALTAIR ENGINEERING INC.
Altair trademarks are protected under U.S. and international laws and treaties. Copyright 1994-2014. Additionally, Altair software
is protected under patent #6,859,792 and other patents pending. All other marks are the property of their respective owners.
ALTAIR ENGINEERING INC. Proprietary and Confidential. Contains Trade Secret Information. Not for use or disclosure outside of
ALTAIR and its licensed clients. Information contained inHyperWorks shall not be decompiled, disassembled, or unlocked,
reverse translated, reverse engineered, or publicly displayed or publicly performed in any manner. Usage of the software is only as
explicitly permitted in the end user software license agreement.
Table of Contents.................................................................................................................... 3
Exercise 5f - Shape Optimization of a 3-D Bracket using the Free-shape Method ...... 185
Exercise A2: Topology Optimization Using Multiple Load Cases in Inspire.................. 213
Chapter 1
Introduction
1- HyperWorks Overview
HyperWorks, A Platform for Innovation, is an enterprise simulation solution for rapid
design exploration and decision-making. As one of the most comprehensive CAE solutions in
the industry, HyperWorks provides a tightly integrated suite of best-in-class tools for:
o Modeling
o Analysis
o Optimization
o Visualization
o Reporting
o Performance data management
Based on a revolutionary pay-for-use token-based business model, HyperWorks
delivers increased value and flexibility over other software licensing models.
Below we list the applications that are part of HyperWorks. For extra information about
them go to www.altairhyperworks.com web page or see HyperWorks online documentation.
Solvers
OptiStruct Linear and implicit nonlinear solver that includes design
optimization software for multiple solution types
RADIOSS Finite element solver for non-linear problems
MotionSolve Multi-body dynamics solver
Solver Overview
The pre-processing for OptiStruct is done using HyperMesh and the post-processing is
done using HyperView and HyperGraph.
During the remainder of the introduction, the HyperWorks integration with OptiStruct
and RADIOSS will be shown in detail. This course will focus on the basic optimization types
found in For more information about it, the user should go to our online documentation.
2 OptiStruct Overview
OptiStruct is a finite element and multi-body dynamics software which can be used to design
and optimize structures and mechanical systems. OptiStruct uses the analysis capabilities of
RADIOSS and MotionSolve to compute responses for optimization.
The graphical interface for OptiStruct within HyperWorks allows you to perform complete
modeling, optimization problem setup, job submission, and post-processing quickly and easily.
Free Size:: is a mathematical technique that produces an optimized thickness distribution per
p
element for a 2D structure.
Shape:: is an automated way to modify the structure shape based on predefined shape
variables to find the optimal shape.
Gauge:: is a particular case of size, where the DV are 2D props (Pshell or Pcomp)
Free Shape:: is an automated way to modify the structure shape based on set of nodes that can
move totally free on the boundary
undary to find the optimal shape.
Free-shape
shape optimization result for a cantilever beam
Composite shuffle:: is an automated way to determine the optimum laminate stack sequence.
DVs are the plies sequence
uence of stacking. It is used for composite material only defined using
PCOMP(G) or PCOMPP.
3 RADIOSS Overview
The optimization solutions within OptiStruct may now take advantage of various
elements within the explicit RADIOSS code as well
well.. This allows for a broader depth of
optimization problem setup and solution. The format and solution types of RADIOSS differ from
those of OptiStructss linear domain and are summarized below. For an in-depth
depth topical review,
consult the HyperWorks Solver documentation on RADIOSS and for more process-based
process
explanation,
ation, consult your local HyperWorks representative about our RADIOSS for Impact and
RADIOSS for Defense training courses.
Altair RADIOSS is a next
next-generation implicit and explicit finite-element
element solver for linear
statics and dynamics, as well as complex nonlinear transient dynamics and multi-body
multi
dynamics. This robust,
bust, multidisciplinary solution allows manufacturers to maximize durability,
NVH, crash, safety, manufacturability and fluid
fluid-structure
structure interaction performance in order to
bring
ing innovative products to market faster.
RADIOSS comprehensive analysis capabilities for linear and non
non-linear
linear finite element
analysis, sheet metal stamping, and multi
multi-body
body dynamics are accessible via two input formats.
Finite element solutions via Nas
Nastran-type Bulk Data Format include:
o Linear static analysis
o Non-linear
linear implicit quasi
quasi-static contact analysis
o Linear buckling analysis
o Normal modes analysis
o Frequency response analysis
o Random response analysis
o Linear transient response analysis
o Linear fluid-structure
structure coupled (acoustic) analysis
o Linear steady-state
state heat transfer analysis coupled with static analysis
o Inertia relief analysis with static, non
non-linear
linear contact, modal frequency response,
and modal transient response analyses
o Component Mode Synthesis (CMS) for the generation of flexible bodies for
multi-body dynamics analysis
o Reduced matrix generation
o One-step (inverse) sheet metal stamping analysis
A typical set of finite elements including shell, solid, bar, scalar, and rigid elements as
well as loads and materials is available for modeling complex events.
Finite element solutions via RADIOSS Block format include:
A typical set of finite elements including shell, solid, bar, and spring elements, rigid
bodies as well as loads, a number of materials, and contact interfaces are available for
modeling complex events.
Multi-body dynamics solution integrated via Nastran-type Bulk Data format for rigid and
flexible bodies includes:
o Kinematics analysis
o Dynamics analysis
o Linearization
All typical types of constraints like joints, gears, couplers, user defined constraints, and high-pair
joints can be defined. High pair joints include point-to-curve, point-to-surface, curve-to-curve,
curve-to-surface, and surface-to-surface constraints. They can connect rigid bodies, flexible
bodies, or rigid and flexible bodies. For this multi-body dynamics solution, the power of Altair
MotionSolve has been integrated with OptiStruct.
Chapter 2
Theoretical Background
1 Optimization
Optimization can be defined as the automatic process to make a system or
component as good as possible based on an objective function and subject to certain design
constraints. There are many different methods or algorithms that can be used to optimize a
structure, in OptiStruct is implemented some algorithms based on Gradient Method, this
method will be discussed in detail later on this book.
Models used in optimization are classified in various ways, such as linear versus
nonlinear, static versus dynamic, deterministic versus stochastic, or permanent versus
transient. Then it is very important that the user include a-priori all of the important aspects
of the problem, so that they will be taken into account during the solution.
Mathematically an optimization problem can be stated as:
Objective Function: 0(p) min(max) (target)
Subject to constraint Functions: i(p) 0
Design Space: pl pj pu where l is the lower bound and u is
the upper bound on the design
variables
where:
0(p) and i(p) represent the system responses or a target value for system
identification study, and pj represents the vector of design variables
(p1,p2,,pn).
1.2 Response
Response for OptiStruct is any value or function that is dependent of the Design
Variable and is evaluated during the solution.
OptiStruct allows the use of numerous structural responses, calculated in a finite
element analysis, or combinations of these responses to be used as objective and constraint
functions in a structural optimization.
Responses are defined using DRESP1 bulk data entries. Combinations of
responses are defined using either DRESP2 entries, which reference an equation defined
by a DEQATN bulk data entry, or DRESP3 entries, which make use of user-defined external
routines identified by the LOADLIB I/O option. Responses are either global or subcase
(loadstep, load case) related. The character of a response determines whether or not a
constraint or objective referencing that particular response needs to be referenced within a
subcase.
Vi D
Vf = D
V0
where:
Vf : Volume fraction
Vi D : Designable volume at current iteration;
V0D : Initial Designable volume;
Mi
Mf =
M0
where:
Mf : Mass fraction
Mi : Total mass at current iteration;
M0 : Total Initial mass;
with [K i M ]ui = 0
wi
fw =
i
This is done so that increasing the frequencies of the lower modes will have
a larger effect on the objective function than increasing the frequencies of
the higher modes. If the frequencies of all modes were simply added
together, OptiStruct would put more effort into increasing the higher modes
than the lower modes. This is a global response that is defined for the
whole structure.
o Combined compliance index [ compliance index ]
The combined compliance index is a method to consider multiple
frequencies and static subcases (loadsteps, load cases) combined in a
classical topology optimization. The index is defined as follows:
wj
S = wiCi + NORM j
w j
m
avg Average of all arguments. Scalar = yi / m
i =1
m
ssq Sum of square of the arguments. Scalar = y
i =1
2
i
m
rss Square root of sum of squares of the arguments. Scalar = y
i =1
2
i
= yi / m
m
avgabs Average of absolute value of arguments. Scalar
i =1
maxabs Maximum of absolute value of arguments. Scalar = max ( yi )
o Fatigue [ fatigue ]
It is the life or damage evaluated in a fatigue sequence for a group of
elements or properties.
o Function [ function ]
It is a generic equation defined using the dequations panel [DEQATN].
In the first instance, where a single response is defined as the objective, a DESOBJ
card must be included in the Subcase Information section of the input file. The DESOBJ
card references a response, (DRESP1 or DRESP2), which is defined in the Bulk Data
section of the input file. If the response, to which the DESOBJ card refers, is associated
with a single subcase, the DESOBJ card must be placed within that subcase definition. If
the response is associated with more than one subcase, the DESOBJ card must appear
before the first SUBCASE statement.
Example: Objective is to minimize the maximum of all DOBJREF's with DOID 1 and
DOID 2.
MINMAX = 1
MINMAX = 2
Example: Design objective for MINMAX (MAXMIN) problems - DOID 1 - references design
response 10 in subcase 2 - negative reference value = -1.0, positive reference value = 1.0.
$--(1)--$--(2)--$--(3)--$--(4)--$--(5)--$--(6)--$--(7)--
DOBJREF 1 10 2 1.0 1.0
BEAM
100.0
=70 =15 < 15
90.0
FEASIBLE
80.0 DOMAIN <70
70.0
>70
h (mm)
60.0 OPTIMUM
50.0 W = 11
40.0 > 15 W=9
30.0 W=7
UNFEASIBLE
20.0 W=5
DOMAIN
10.0
0.0
0.00 10.00 20.00 30.00 40.00 50.00
b (mm)
2 Gradient-based Optimization
OptiStruct uses an iterative procedure known as the local approximation method to
solve the optimization problem. This approach is based on the assumption that only small
changes occur in the design with each optimization step. The result is a local minimum.
The biggest changes occur in the first few optimization steps and, as a result, not many
system analyses are necessary in practical applications.
The design sensitivity analysis of the structural responses (with respect to the design
variables) is one of the most important ingredients to take the step from a simple design
variation to a computational optimization.
The design update is computed using the solution of an approximate optimization
problem, which is established using the sensitivity information. OptiStruct has three different
methods implemented: the optimality criteria method, a dual method, and a primal feasible
directions method. The latter are both based on a convex linearization of the design space.
Advanced approximation methods are used.
The optimality criteria method is used for classical topology optimization formulations
using minimum compliance (reciprocal frequency, weighted compliance, weighted reciprocal
frequency, compliance index) with a mass (volume) or mass (volume) fraction constraint.
The dual or primal methods are used depending upon the number of constraints and
design variables. The dual method is of advantage if the number of design variables
exceeds the number of constraints (common in topology and topography optimization). The
primal method is used in the opposite case, which is more common in size and shape
optimizations. However, the choice is made automatically by OptiStruct.
X0
X1
X2
X3
This is a very simplified overview of this method, if the user needs more information it can be
found on any Optimization text book
For example, using first order finite difference method, you can calculate the gradient
of i(p) as:
In finite element based structural optimization, you can state the linear static
equation
tion as KU = F, where K is the stiffness matrix and U is the displacement vector to be
determined, and F is the applied force vector. Differentiating this with respect to the design
variable X yields the following:
You can obtain gradients of stresses and strains, etc, by chain rule differentiation.
Two approaches to sensitivity analysis, the Direct and Adjoint variable method are
possible. Given the equation of motion:
Using this equation, the largest cost in the calculation of the response gradient is the
forward-backward substitution required for the calculation of the derivative of the
displacement vector
tor with respect to the design variable. This is called the direct method.
method
One forward-backward
backward substitution is required for each design variable.
If constraints are active in more than one load case, and the load is a function of the
design variable (say body force or pressure loads for shape optimization), then the set of
forward-backward
backward substitutions must be performed for each active load case. If the loads
are not a function of the design variables, but there are active load cases with multiple
boundary conditions, then the set of forward
forward-backward
backward substitutions must be performed for
each active boundary condition.
For the Adjoint variable method of sensitivity analysis, the vector (adjoint variable) a
is introduced, which is calculated as:
When the adjoint variable method for sensitivity analysis is used, a single forward-
forward
backward substitution is needed for each retained constraint. This forward-backward
backward
substitution is needed to
o calculate the vector a.
There are typically a small number of design variables in shape and size optimization
(say 5 to 50) and a large number of constraints. The large number of constraints comes
from stress constraints. If there are 20,000 elements
elements,, each with a single stress constraint,
and 10 load cases, there are a total of 200,000 possible stress constraints.
There are typically a large number of design variables in topology optimization
(between 1 and 3 per element) and a small number of const
constraints. Because stress
constraints are not usually considered in topology optimization, it makes sense that the
Adjoint variable method of sensitivity analysis be used for topology optimization (in order to
reduce computational costs).
For shape and sizinging optimization, it is often beneficial to use the Direct
irect method for
sensitivity analysis. However, in some cases, when there are a large number of design
variables and a small number of constraints, the adjoint variable method should be used.
For example,le, in a topography optimization, the number of constraints that gradients need to
be calculated for can be reduced using constraint screening. With constraint screening,
constraints that are not close to being violated are ignored. Only constraints that are
violated, or nearly violated, are retained. Also, if there are many stress constraints that are
retained in a small region of the structure, say at a stress concentration, only a few of the
most critical need to be retained.
The sensitivities of responses
ponses with respect to design variables can be exported to an
Excel spreadsheet (see OUTPUT, MSSENS) or plotted in HyperGraph (See OUTPUT,
HGSENS). For contouring in HyperView, the sensitivities of topology and gauge design
variables can be exported to H3D D format. (See OUTPUT, H3DTOPOL and OUTPUT,
H3DGAUGE, respectively).
The Excel spreadsheet allows the modification of design variables and then
computes approximated responses. This can be used to make design studies without
running OptiStruct again. See the image below.
Example spreadsheet output showing that modification of field C10 yields approximate results in
the lower right of the spreadsheet, identified by a border surround here.
File Creation
This file is only created when size or shape optimization is performed. Output of this
file is controlled by the SENSITIVITY and SENSOUT I/O options.
File Format
The only values that can be changed in this file are those listed in the "New" column.
All other values are either fixed or their calculation is fixed. When the .slk file is created,
the values in the "New" column match those in the "Reference" column. These values may
be adjusted, but should always remain within the design variable's bounds.
Each size and shape design variable in the model is listed in the left-hand column of
the sensitivity table. Information concerning a particular design variable is given in the row
where its label is listed. The current value and the upper and lower bounds of the design
variables are given in the columns, "Reference," "Lower," and "Upper" respectively.
Each referenced response in the model has its own column. These response
columns are on the right-hand side of the sensitivity table. The calculated sensitivity of a
response to changes in a design variable at the current iteration is given in the row
corresponding to that design variable and the column corresponding to that response.
Beneath the list of design variables, in the left-hand column, are the headings
"Response lower bound," "Response reference," and "Response upper bound". If a
response is constrained, the constraint value will be given in either the "Response lower
bound" or the "Response upper bound" row of the column corresponding to that response.
The value given in the "Response reference" row is the calculated value of the response
using the design variable reference values.
At the bottom of the left-hand column are the headings: "Response linear," "Response
reciprocal," and "Response conservative". The response values in these rows are the
predicted values of the responses for three different approximations. Initially, these values
will match one another and the "Response reference" value for each response. This is
because these are the predicted values of the response at the given variable settings, which
initially are the same settings used to calculate the "Response reference" value. Once the
design variable values in the "New" column are altered, these values will change.
The "Response linear" row predicts the response value using linear approximation. This is
calculated as:
where:
The "Response reciprocal" row predicts the response value using reciprocal
approximation. This is calculated as:
where:
The "Response
Response conservative
conservative" row predicts the response value using a combination
of the above approximations where linear approximation is used, when the sensitivity is
positive, and reciprocal approximation is used when the sensitivity is negative. Therefore, if
all sensitivities are positive, the cconservative
onservative prediction will match the linear prediction. If all
sensitivities are negative, it will match the reciprocal prediction, but if there is a mixture of
positive and negative sensitivities for a given response then the conservative prediction will wil
match neither the linear nor the reciprocal prediction.
The normalized values simply show the predicted response as a fraction of the response
reference value.
Small move limits lead to smoother convergence. Many iterations may be required
due to the small design changes at each iteration. Large move limits may lead to
oscillations
ions between infeasible designs as critical constraints are calculated inaccurately. If
the approximations themselves are accurate, large move limits can be used. Typical move
limits in the approximate optimization problem are 20% of the current design variable
v value.
If advanced approximation concepts are used, move limits up to 50% are possible.
Even with advanced approximation concepts, it is possible to have poor
approximations of the actual response behavior with respect to the design variables. It is
best to use larger move limits for accurate approximations and smaller move limits for those
that are not so accurate.
Note that the same set of design variable move limits must be used for all of the
response approximations. It is important to loolook
k at the approximations of the responses that
are driving the design. These are the objective function and most critical constraints. If the
objective function moves in the wrong direction, or critical constraints become even more
violated, it is a sign that the approximations are not accurate. In this case, all of the design
variable move limits are reduced. However, if the move limits become too small,
convergence may be slowed, as design variables that are a long way from the optimum
design are forced d to change slowly. Therefore, the move limits on the individual design
variables that keep hitting the same upper or lower move limit bound are increased. Move
limits are automatically adjusted by OptiStruct.
In order to reduce the burden on the user, it is possible to allow the screening criteria
to be automatically and adaptively adjusted in an effort to retain the least number of
responses necessary for stable convergence. Setting RTYPE=AUTO on the DSCREEN
bulk data entry will enable this feature. Region definition is also automated with this setting.
This setting is useful for less experienced users and can be particularly useful when there
are many local constraints. However, there are some drawbacks; experienced users may
be able to achieve better performance through manual definition of screening criteria, more
memory may be required to run with RTYPE=AUTO, and manual under-retention of
constraints will require less memory and may, therefore, be desirable for very large
problems (even with compromised convergence stability and optimality).
2 3
DRESP1 with ID 1 defines stress responses for all the elements that reference the
PSHELL definitions with PID 1, 2, or 3. As no region identifier is defined, the stress
responses for each PSHELL form their own regions. So, all of the stress responses for
elements referencing PSHELL with PID1 are in a different region than all of the stress
responses for elements referencing PSHELL with PID2, which in turn are in a different
region than all of the stress responses for elements referencing PSHELL with PID3. If this
response definition is constrained in an optimization problem, and the default settings for
constraint screening are assumed, then 20 elemental stresses are considered for each of
the three PSHELL definitions, i.e. 20 for each region, giving a total of 60 retained responses.
Example 2
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10)
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10)
All of the stress responses defined in the DRESP1 entries above form a single region
- notice the non-zero entries in field 6 (0 is equivalent to leaving it blank). Now if these
response definitions (which are of the same type (STRESS), with the same non-zero entry in
field 6) are constrained in an optimization problem (assuming the default settings for
constraint screening), then 20 elemental stresses are considered in total for the three
PSHELL definitions because they form a single region.
Chapter 3
2 Optimization Setup
The optimization cards can be divided in two groups according to the section on the
input deck that the cards are localized.
The complete descriptions of these cards are available in the online help.
Optimization Menu
Model Browser
The procedure to create a design variable will be described later on each chapter as
it defines the type of optimization that will be performed and has a different setup for each
type.
Min ( f1 )
Mass 5.0 E 04 ton
5 b 15
5 h 15
Optimization model description (2 D)
Geometry:
o (L = 1000, h0 = 10, b0 = 10 mm)
One load case: Normal Modes
o First mode
Material: STEEL
o = 7.8e-9 t/mm
/mm3 [RHO] Density
o E = 210000 M
MPa [E] Youngs modulus
o = 0.3 - [nu] Poissons ratio
Create a Design variable as shown above for b and c. Associate them with the
Dimension 1 and Dimension 2 of the beam property as shown below:
FINAL SETUP
DESGLB 2
SUBCASE 1
SPC = 1
METHOD(STRUCTURE) = 2
DESOBJ(MAX)=1
BEGIN BULK
DESVAR 1 b10.0 5.0 15.0
DESVAR 2 c10.0 5.0 15.0
DVPREL1 1 PBARL 1DIM1 0.0
+ 1 1.0
DVPREL1 2 PBARL 1DIM2 0.0
+ 2 1.0
DRESP1 1 f1 FREQ 1
DRESP1 2 Mass MASS
DCONSTR 1 2 5.00E-04
DCONADD 2 1
GRID 1 0.0 0.0 0.0
GRID 2 1000.0 0.0 0.0
CBAR 1 1 1 20.0 1.0 0.0
PBARL 1 1 BAR
+
+ 10.0 10.0
MAT1 1210000.0 0.3 7.80E-09
EIGRL 2 1
MASS
SPC 1 1 1234560.0
SPC 1 2 3 0.0
ENDDATA
Chapter 4
Concept Design
1 Topology Optimization
Topology Optimization is a mathematical technique that produces an optimized
shape and material distribution for a structure within a given package space. By
discretizing the domain into a finite element mesh, OptiStruct calculates material
properties for each element. The OptiStruct algorithm alters the material distribution to
optimize the user-defined objective under given constraints.
FEA model
The structural model is loaded into HyperMesh Desktop. The constraints, loads,
subcases and material properties are already defined in the model. The topology design
variables and the optimization problem set up will be defined using HyperMesh and OptiStruct
will be used to determine the optimal material layout. The results will then be reviewed in
HyperView.
Problem setup
You should copy the file: hook.fem
This sets the optimization to optimize the shell elements in the Design and Base components to
create structural members between 6 and 21 units in width with thicknesses that vary between
zero and the thickness of the shell. The optimization will use 120 as the maximum stress for
any element within the design region when validating the design.
6. Change the value by typing in the Current value: field (in the Iso panel) or by using the
slider to move between zero and one.
The isosurface post-processing feature (shown for this model at 0.03) is an excellent tool to use for
viewing the density results from OptiStruct.
You will see the isosurface in the graphics window interactively update when you change
the current value to a new number. Use this tool to get a better look at the material layout
and the load paths from OptiStruct.
1. Click the Next Page toolbar button to move to the third page.
The third page which has results loaded from the analysis of the last iteration is displayed;
this contains the linear static results for the subcase in the original file.
Notice that there are some local regions where the stresses are still higher than the target;
this is because topology stress constraints should be interpreted as global stress control.
The functionality has some ways to filter out the artificial or local stresses caused by point
loading or boundary conditions, but those artificial stresses will not be completely removed
unless the geometry is changed by shape optimization.
Note: There might still be high local stress regions which can be improved more
effectively with local shape and size optimization.
Node 3
Node 7
Node 2699
Node 4
Problem Setup
You should copy the file: carm.fem
Entity Editor tree showing the design property in the Entity Editor
Step 4: Define three different loadsteps: Corner (1), Brake (2) and Pothole (2).
As was described on the beginning of this exercise, this part needs to perform well on
three different load cases and as we can see below that each has different directions of loading.
It is necessary to define independent load cases for each one.
1. Create the following constraints in a Load Collector named SPC:
NODE(3) constrained in X,Y and Z translation. (Bolted)
NODE(4) constrained in Y and Z translation. (Cylindrical joint)
NODE(7) constrained in Z translation. (Damp link)
2. Create the load collector corner (1) and create a force F = (0,1000,0) N applied on
Node(2699)
3. Create a load collector brake (2) and create a force F = (1000,0,0) N applied on
Node(2699)
4. Create a load collector pothole (3) and create a force F = (0,0,1000) N applied on
Node(2699)
5. Define linear static load steps for each of these load cases using the SPC load collector as
the SPC entry and each respective load collector as the LOAD entry.
2. In the pattern grouping subpanel, set the pattern type to 1-pln sym, setting anchor
node to Node 1and first node to Node 2.
3. Similarly in the draw subpanel, define the draw type as single using Node 5 as the
anchor node and Node 6 as the first node. Set the obstacle to the property non-
design. Setting the obstacle ensures that the resulting design, if manufactured with a
draw process, will be optimized in a way that allows all obstacles to clear the tooling etc for
the selected draw vector.
Step 8: Define a static displacement response on the ball join node (2699), select
total displacement, and name it disp.
Step 10: Create the objective function as type min and response volume.
Step 11: Submit the optimization run from the OptiStruct panel as carm_opt.fem.
Problem Setup
You should copy the file: no_repeat.fem
Step1: Launch HyperMesh Desktop, Set the User Profile, and Import
the File
Import no_repeat.fem into HyperMesh Desktop in a new session.
11. Delete the two new pages that have HyperView clients to return to the HyperMesh
window.
36. Click the update button on the right side to create the slave DTPL card.
The above modification identifies the first DTPL card with ID 1 (on the first component) as
the master. The DTPLs of ID 2 (second component) and ID 3 (third component) are slaves
and dependent on DTPL of ID1. The second component is scaled 0.6 in both the x and y
axis, while the third component is scaled 0.3 in both the x and y axis with respect to the first
component.
37. Click return twice.
9. Check the boxes for Features and Transparent under Clipped geometry:.
An iso surface plot is displayed in the graphics window. Those parts of the model with a
density greater than the value of 0.38 are shown in color, and the rest are transparent.
10. Click File on the menu bar and choose Exit to quit HyperView.
OSSmooth requires a parameter file (generally has the file extension .oss) to run. This
parameter file may be generated by the OSSmooth panel in HyperMesh or it may be generated
manually through a text editor. At the completion of an optimization run, OptiStruct
automatically exports an OSSmooth parameter file <prefix>.oss with certain default settings
depending on the type of optimization run.
In addition to the parameter file, OSSmooth also requires the input file
(<prefix>.fem), the shape file (<prefix>.sh), and/or the grid file (<prefix>.grid)
from an OptiStruct run. The grid file <prefix>.grid contains the grid point locations after a
topography or shape optimization and is output at the end of a topography or shape optimization
run. The shape file, <prefix>.sh, contains the element density information of a topology
optimization and is output at the end of an optimization run.
Note: OSSmooth currently does not recognize OptiStruct long-format input data. A possible
work-around for this problem is to import the long-format input file into HyperMesh and
export it using the regular OptiStruct template before running OSSmooth.
The interpreted design from OSSmooth can be exported as a finite element mesh in the bulk
data format, as IGES surfaces, as a stereolithography file, or as a Hyper3D file.
Statement Description
One example of post-processing of topography optimization is shown below with the following
parameter setting in the OSSmooth parameter file:
#general parameters
input_file decklid
output_file decklid.fem
output_code 1
#specific parameters
autobead 1 0.300 1
remesh 1
Some topography performances are relying on the half translation part. OSSmooth can
interpolate topography optimization results to 2-layer autobead (autobead third argument 2).
Here is one example of creating 2-layer autobead with the following parameter settings in the
OSSmooth parameter file:
#general parameters
input_file decklid
output_file decklid.nas
output_code 1
#specific parameters
autobead 1 0.300 2
#specific parameters
pure_surf_smoothing 2 10 30.000
pure_surf_reduction 1 10.000
Problem Setup
You should copy the following files: CONTROL_ARM.fem, CONTROL_ARM.oss, and
CONTROL_ARM.sh.
Step 1: Launch HyperMesh Desktop and Set the User Profile to OptiStruct
3 Topography Optimization
Topography optimization is an advanced form of shape optimization in which a design
region for a given part is defined and a pattern of shape variable-based reinforcements within
that region is generated using OptiStruct.
Element normal
This method is the easiest one to use. When norm is entered for the draw
direction, the normal vectors of the elements are used to define the draw vector
for the shape variables. This method is especially effective for curved surfaces
and enclosed volumes where the beads are intended to be drawn normal to the
surface.
Draw vector
This method allows you to define the draw vector that is used for generating the
shape variables. The X, Y, and Z components of the draw vector in the nodal
coordinate system are entered. This method is useful when all beads must be
drawn in the same direction. Note that the draw angle may not be maintained
while using this method.
User-defined
This method allows you to set up the vectors and heights for the topography
optimization. A DESVAR card is referenced in place of a PSHELL or PCOMP card. All of the
grids with DVGRID cards associated with that DESVAR card are considered part of the design
domain. The DESVAR and DVGRID entries are redefined to reflect the minimum bead width
and draw angle parameters that have been set by the user. The vectors and magnitudes of the
displacement vectors on each DVGRID card for each grid are retained, so these entries must be
left blank on the DTPG card. This allows you to create a design domain in which each node can
have its own draw vector and draw height. For more information about it, see the example
Using Topography Optimization to Forge a Design Concept Out of a Solid Block.
L-bracket layout.
Step 1: Launch HyperMesh Desktop, Set the User Profile, and Retrieve
the File
1. Launch HyperMesh Desktop.
A User Profiles dialog will appear.
2. Choose OptiStruct as the user profile.
3. Click OK.
This loads the user profile. It includes the appropriate template, macro menu, and import
reader, paring down the functionality of HyperMesh to what is relevant for generating
models in Bulk Data Format for OptiStruct.
4. From the File menu on the toolbar, select Open and browse to open the Lbkttopog.hm
file from the class model directory.
This parameter controls the angle of the sides of the beads. The recommended value is
between 60 and 75 degrees.
12. Click draw height= and enter 5.
This parameter sets the maximum height of the beads to be drawn.
13. Check the box next to buffer zone.
This parameter establishes a buffer zone between elements in the design domain and
elements outside the design domain.
14. Set boundary skip: to load & spc.
This tells OptiStruct to leave nodes at which loads or constraints are applied out of the
design space.
15. Set the draw direction: toggle to normal to elements.
This parameter defines the direction in which the shape variables are created.
16. Click update.
A bead definition has been created for the design space topo. Based on this information,
OptiStruct will automatically generate circular bead variable definitions throughout the
design variable domain as shown on the DTPG card in the Reference Guide.
17. Select the pattern grouping subpanel using the radio buttons on the left-hand side of the
panel.
18. By default, the field next to desvar = should contain the name of the newly created design
space; if not, click on desvar = and select topo from the list of topographical design spaces.
19. Click the pattern type: switch and select 1-pln sym from the pop-up menu.
20. Click anchor node and enter 337.
21. Click first node and enter 613.
22. Click update.
23. Select the bounds subpanel using the radio buttons on the left side of the panel.
24. By default the field next to desvar = should contain the name of the newly created design
space; if not, click on desvar = and select topo from the list of topographical design spaces.
25. Click upper bound and enter 1.0 (default).
26. Click lower bound and enter 0.0 (default).
27. Click update.
The upper bound sets the upper bound on grid movement equal to UB*HGT and the lower
bound sets the lower bound on grid movement equal to LB*HGT.
28. Click return to go to the optimization panel.
7. Click on the Delete Page icon to close the HyperView client and return to HyperMesh.
2. For file:, select the OptiStruct base input file from which to extract the final geometry.
3. For output:, select the IGES output format of the final geometry.
The default output format is STL. Other format options are: Mview, Nastran, IGES, and
H3D.
If you select IGES as the output format, select the output unit type. The default is mm
(millimeters).
4. Select load geom to load the new geometry into the current HyperMesh session.
5. Check the box next to autobead and enter a value of 0.3 for the bead threshold:.
6. Leave the rest of the options at their default settings.
7. Click OSSmooth.
8. Click Yes to overwrite.
The new geometry will be automatically loaded into the existing HyperMesh file, turn off the
display of all the elements to view the new concept geometry.
9. OSSmooth can automatically create geometry based on the new mesh. Click FE->Surf to
generate new geometry from the optimization results. Click Save&Exit to continue.
9. Using the Mask tab, click on Isolate for Geometry and on Hide for Load Collectors.
10. Use the Model Browser to uncheck geometry display for the original components design
and fixed.
The new geometry for the optimized part displayed in the HyperMesh Desktop graphics window
4 Free-size Optimization
Free size optimization was developed in order to take advantage of the flexibility of the
thickness parameter when performing topological optimization on shell elements. The element
density method used for topology optimization is best managed when optimizing solid elements
but does not work as precisely when modifying the density of shells. Shell property cards,
however, offer a easy and straightforward fix by use of altering the thickness, and free-size
optimization is able to alter the thickness of elements in the design space per-element to obtain
a topology-like optimization result. For isotropic materials, this is a very straightforward process
which will be presented in the next exercise in this chapter. Prior to this, however, there is
another application of free-size optimization that bears reviewing.
Free size optimization is particularly valuable when optimizing composite structures.
The purpose of composite free-sizing optimization is to create design concepts that utilize all the
potentials of a composite structure where both structure and material can be designed
simultaneously. By varying the thickness of each ply with a particular fiber orientation for every
element, the total laminate thickness can change continuously throughout the structure, and at
the same time, the optimal composition of the composite laminate at every point (element) is
achieved simultaneously. At this stage, a super-ply concept should be adopted, in which each
available fiber orientation is assigned a super-ply whose thickness is free-sized.
For a shell cross-section (shown below), free-size optimization allows thickness to vary
freely between T and T0 for each element; this is in contrast to topology optimization which
targets a discrete thickness of either T or T0.
In addition, in order to neutralize the effect of stacking sequence, the SMEAR option is
usually a good choice for this design phase unless the user intended to follow through with the
stacking preference of the super-ply laminate model.
To determine the optimum laminate OptiStruct uses the SMEAR technology that
captures the stacking sequence effects:
o A = Stacking Sequence independent
o B = 0 (Symmetric)
o D = At2/12 - Stacking Sequence Independent
effects emerging during this curing process. For example, one typical such constraint for
carbon fiber reinforced composite is that plies of a given orientation cannot be stacked
successively for more than 3 or 4 plies. This implies that a design concept that contains areas
of predominantly a single fiber orientation would never satisfy this requirement. Therefore, to
achieve a manufacturable design concept, manufacturing requirements for the final product
need to be reflected during the concept design stage. For the particular constraint mentioned
above, for instance, the design concept would offer enough alternative ply orientations to break
the succession of plies of the same orientation if the percentage of each fiber orientation is
controlled (e.g. no ply orientation should drop below 15%). In addition, balancing of a pair of ply
orientations could be useful for practical reasons. For example, balancing 45 and -45 plies
would eliminate twisting of a plate bended along the 0 axis. In order to address these needs,
the following manufacturing constraints are made available for composite free-sizing:
Lower and upper bounds on the total thickness of the laminate.
Cantilever Plate
The next figure shows the final results of topology and free-size optimization as
performed on this plate, side by side. As expected, the topology result created a design with
70% cavity, while the free-size optimization arrived at a result with a zone of variable thickness
panel.
It is not surprising to see that the free-size design outperforms the topology design in
terms of compliance since continuous variation of thickness offers more design freedom.
It should be emphasized that free-size offers a concept design tool alternative to
topology optimization for structures modeled with 2-D elements. It does not replace a detailed
size optimization that would fine tune the size parameters of an FEA model of the final product.
To illustrate the close relationship between free-size and topology formulation consider a
3-D model of the same cantilever plate, shown previously. The thickness of the plate is
modeled in 10 layers of 3-D elements.
The topology design of the 3-D model, shown above, looks similar to the free-size
results shown previously. This should not be surprising because when the plate is modeled in
3-D, a variable thickness distribution becomes possible under the topology formulation that
seeks a discrete density value of either 0 or 1 for each element. If infinitely fine 3-D elements
are used, a continuous variable thickness of the plate can be achieved via topology
optimization. The motivation for the introduction of free-size is based on the conviction that
limitations due to 2-D modeling should not become a barrier for optimization formulation. In
regards to the 3-D modeling of shell, topology optimization is equivalent to the application of
extrusion constraint(s) in the thickness direction of a 3-D modeled shell.
It is important to point out that while free-size often creates variable thickness shells
without extensive cavity, it does not prevent cavity if the optimizer demands it. For the example
already shown, we can see cavity in the free-size result in the 45 degree region, adjacent to the
support, and in the upper and lower corners of the free end.
Free-size optimization is defined through the DSIZE bulk data entry that is supported in
the HyperMesh optimization panel. Features available for free-size include: minimum member
size control, symmetry, pattern grouping and pattern repetition, and stress constraints applied to
von Mises stresses of the entire structure.
Involving both topology and free-size in the same optimization problem is not
recommended since penalization on topology components creates a bias that could lead to sub-
optimal solutions.
Model Information
The left side of the model is constrained in all 6 degrees of freedom along the entire
edge. The right side of the model is free and loads are placed at the midpoint of the free edge.
Geometry:
o (L = 457.2 mm, b = 152.4 mm, Thk = 2 mm, hole diam. = 12.7 mm)
Two load cases:
o Force = -10 N, Z-direction.
o Moment = -250 N mm, X-direction
Material:
Steel. (Standard steel properties)
Problem Setup
You should copy the file: Iso_Plate_with_hole.hm
Step 2: Define the FREE SIZE design variable for the design region
using the PLATE property as the designable props.
It is a good procedure to save the HM database now with the optimization suffix. With it
the user can always recover the analysis model for further studies.
Step 9: Open the results in HyperView and view the element thickness
for the final iteration of the optimization.
Step 10: Return to HyperMesh and use the *.HM.comp.cmf file to sort
the elements into collectors based on their optimized thickness.
1. Click the Delete Page button until the main graphics display returns to the
HyperMesh client.
2. Once back within HyperMesh, click on the menu option File > Run > Command File.
Detail view of the edges of the optimized model prior to analysis with 3d thickness representation turned
on
Chapter 5
Function
p = C 0 + DVi C i
where p is the property to be optimized, and Ci are linear factors associated to the design
variable DVi.
Using the equation utility DEQATN, more complicated functional dependencies using even
trigonometric functions can be established. Such design-variable-to-property relations are
then defined using the DVPREL2 statement.
For a simple gage optimization of a shell structure, the design-variable-to-property
relationship turns into
t = DVi
where the gage thickness t is identical to the design variable.
If a discrete design variable is desired, a DDVAL bulk data entry needs to be referenced on
the DESVAR bulk data entry for the design variable values.
The structural model, shown above, is loaded into HyperMesh. The constraints, loads,
material properties, and subcases (loadsteps) are already defined in the model. Size design
variables and optimization parameters are defined, and OptiStruct is used to determine the
optimal gauges for the components. The results are then reviewed in HyperView.
The optimization problem for this tutorial is stated as:
Objective: Minimize volume.
Constraints: A given maximum nodal displacement at the loading grid point for two loading
conditions.
Design variables: Gauges of the two parts.
Problem Setup
You should copy this file: joint_size.hm
Step 1: Launch HyperMesh, set the User Profile and Retrieve the File
1. Launch HyperMesh.
2. Choose the OptiStruct user profile dialog and click OK.
This loads the user profile. It includes the appropriate template, macro menu, and
import reader, paring down the functionality of HyperMesh to what is relevant for
generating models in Bulk Data Format for OptiStruct. The User Profiles GUI can
also be accessed from the Preferences menu on the toolbar. Select the Optimization
panel from the Analysis page.
4. Make sure the first pull-down list below Result type: is Element Thicknesses (s).
5. Make sure the second pull-down list is on Thickness.
6. Make sure the field below Averaging method is None.
7. The left side of the HyperView GUI is the results browser, and at the top of the browser
are the Load Case and Simulation selection drop-down boxes.
8. In the iteration list, scroll down to the last iteration and choose the last for e.g.: Iteration
[3] and click OK.
9. Click Apply.
A contoured image representing shell thickness should be visible. Each element in the
model is assigned a legend color, indicating the thickness value for that element for the
current iteration.
1. Click the Next Page toolbar button to move to the second page.
The second page, which has results loaded from the file joint_size_OPT_s1.h3d, is
displayed. Note that the name of the page is displayed as Subcase 1 FORCE_X to
indicate that the results correspond to subcase 1.
2. Set the animation mode to Linear Static.
6. Click on Apply.
The resulting contours represent the x component displacement field resulting from the
applied loads and boundary conditions.
Displacement on X-direction for the X-Force load case at the last iteration
14. Click the Next Page button again to move to the third page.
The third page shows results loaded from the joint_size_OPT_s2.h3d file. Note
that the name of the page is displayed as Subcase 2 Force_Z to indicate that the
results correspond to subcase 2.
The structural model, as shown in the figure, is loaded into HyperMesh. The constraints,
loads, material properties, and subcases (loadsteps) are already defined in the model. Size
design variables and optimization parameters are defined, and OptiStruct is used to
determine the optimal gauges. The results are then reviewed in HyperView.
The optimization problem is stated as:
Objective: Minimize volume.
Constraints: Maximum von Mises stress of the brackets < 120 MPa.
Design variables: Gauges of the brackets.
Problem Setup
You should copy this file: bracket_size.hm
Step 1: Launch HyperMesh, set the User Profile, and Retrieve the Database
File
1. Launch HyperMesh.
2. Choose OptiStruct in the User Profile dialog and click OK.
User Profiles can also be accessed from the Preferences menu on the toolbar.
3. From the toolbar, select Open Model.
4. Browse for and select bracket_size.hm file.
5. Click Open.
The bracket_size.hm database is loaded into the current HyperMesh session,
replacing any existing data.
17. Select the generic property subpanel using the radio buttons on the left-hand side of
the panel.
18. Click dvprel = and enter part1_th.
19. Click the entity selection switch and choose prop.
20. Click prop and select part1 from the list of component collectors.
21. A property selection switch now appears below the prop button.
22. Click the property selection switch and select Thickness T from the pop-up menu.
23. Click on designvars.
The list of design variables appears.
24. Check the box next to part1.
25. Note that the linear factor (value in box beside part1) automatically gets set to 1.000.
26. Click return.
27. Click create.
A design variable to property relationship, part1_th, has been created, relating the
design variable part1 to the thickness entry on the PSHELL card for the component
part1.
28. Repeat steps 19 through 26 to create the design variable to property relationship
part2_th, relating the design variable part2 to the thickness entry on the PSHELL card
for the component part2.
29. Click return to go to the Optimization Setup panel.
11. Click the selector switch below the stress selector and choose the both surfaces option.
12. Click create.
A response, stress1, is defined for the von Mises stress of the elements in the
component part1.
13. Click response = and enter stress2.
14. Click props.
15. Click one of the pink shell elements in the graphics window to select the component
part2.
16. Click select.
17. Click create.
A response, stress2, is defined for the von Mises stress of the elements in the
component part2.
18. Click return to go to the Optimization Setup panel.
3. Click the Next Page toolbar button to move to the second page.
The second page has the results loaded from the discrete_bracket_size_s1.h3d
file. Note that the name of the page is displayed as Subcase 1 STEP to indicate that
the results correspond to subcase 1.
A contoured image representing von Mises stresses should be visible. Each element in
the model is assigned a legend color, indicating the von Mises stress value for that
element resulting from the applied loads and boundary conditions. If you did not change
the Iteration step, you should be contouring the stress of the initial step. To contour the
final step, set the last iteration of that loadcase using the status bar.
The Load Case and Simulation Selection area is located to the top of the Results
browser on the left hand side of the GUI.
9. Click the last Iteration # in the Simulation: list.
Notice only two iterations are displayed; the First and Last (FL) is the default setting for
optimization runs. To change this setting, add an OUTPUT control card with a frequency
setting of ALL.
10. Click OK.
This will now contour your final iteration of that loadcase. Review the stress to see that it
is under the proper constraints.
Review
The .out file contains a summary of the optimization process. From the information in the
.out file, you can see how the objective, constraints, and design variables are changing
from one iteration to the next.
Has the volume been minimized for the given constraints?
Have the stress constraints been met?
What are the resulting gauges for the two parts?
Hints
Go to the des.h3d page, clear the contour if one was applied, set to the last simulation step
and apply the Element Thickness contour.
Append discrete_bracket_size.mvw to review objective, constraints, and other
information.
2 Shape Optimization
OptiStruct has the capability of performing shape optimization. In shape optimization, the
outer boundary of the structure is modified to solve the optimization problem. Using finite
element models, the shape is defined by the grid point locations. Hence, shape
modifications change those locations.
Shape variables are defined in OptiStruct in a way very similar to that of other shape
optimization codes. Each shape variable is defined by using a DESVAR bulk data entry. If
a discrete design variable is desired, a DDVAL bulk data entry needs to be referenced for
the design variable values. DVGRID bulk data entries define how much a particular grid
point location is changed by the design variable. Any number of DVGRID bulk data entries
can be added to the model. Each DVGRID bulk data entry must reference an existing
DESVAR bulk data entry if it is to be a part of the optimization. The DVGRID data in
OptiStruct contains grid location perturbations, not basis shapes.
DESVAR Card Image
ID LABEL XINIT XLB XUB DELXV
DESVAR 1 DV001 0.0 -1.0 1.0
The generation of the design variables and of the DVGRID bulk data entries is facilitated by
the HyperMorph utility, which is part of the Altair HyperMesh software.
The following responses are currently available as the objective or as constraint functions:
Function
Original location: X ( 0 ) = {x ( 0 ) , x ( 0 ) x ( 0 ) , , x ( 0 ) }
1 2 3 n
Perturbations (DVGRID): X = { x1 , x2 , x3 ,, xn }
Magnitude of perturbations (DESVAR): = {1 , 2 , 3 ,, n }
n
Mesh nodal movement: X = X (0) + X
j j j =1
where X is the vector of nodal coordinates, X(0) is the vector of nodal coordinates of the
initial design, Xj is the perturbation vector associated to the design variable .
The initial nodal coordinates are those defined with the GRID entity. The perturbation
vectors are defined on the DVGRID statement, which is referenced by the design variable
entity DESVAR.
If a discrete design variable is desired, a DDVAL bulk data entry needs to be referenced on
the DESVAR bulk data entry for the design variable values.
Note:
In OptiStruct, only the perturbation vector approach is available. The DVGRID cards must
contain perturbation vectors.
2.2 HyperMorph
HyperMorph is a tool in HyperMesh to morph the shape of a finite element model in ways
that are useful, logical and intuitive. It enables rapid shape changes on the FE mesh without
severely sacrificing the mesh quality. This is a very powerful tool to automatic generate the
shape design variable described above.
Problem Setup
You should copy this file: Lbeamshape.hm
20. Click Yes to the message regarding the perturbations, as shown above.
We have now saved this shape as shape1, later we can associate it to a design variable.
21. Click undo all.
The model returns to its original shape.
22. Repeat steps 9 through 21 for the local handles 3, 4 and 5. Referring to the figure above
translate handles 3 and 4 by x=-10 and handle 5 by y=-10. Save the shapes after
morphing each handle as shape2, shape3 and shape4, respectively.
IMPORTANT: Remember to undo all after every saved shape. Otherwise the nodal
changes for preexisting shapes will be saved in the current shape along with the most
recent changes.
23. Click return twice to go to the optimization panel.
A potential variation in shape of the vertical flange of the L-beam that could be achieved using the
set up described.
7. Select the response node by clicking on the node shown in the above figure.
TIP: In order to see the selected node more clearly, you may want to hide the domains
and handles first by right-clicking on them in the Model Browser and selecting Hide
from the context-sensitive menu.
8. Select dof 2.
Dofs 1, 2, and 3 refer to translation in the X, Y, and Z directions.
Dofs 4, 5, and 6 refer to rotation about the X, Y, and Z axes.
9. Click create.
A response, disp, is defined for the y-displacement of the node selected.
10. Click return to go to the optimization panel.
mode to Transient .
Rail joint
Problem Setup
You should copy the file: rail_joint_original.hm
Step 1: Launch HyperMesh, Set the User Profile and Retrieve the File
1. Launch HyperMesh Desktop.
2. Choose OptiStruct in the User Profile dialog and click OK.
This loads the user profile. It includes the appropriate template, macro menu, and
import reader, paring down the functionality of HyperMesh to what is relevant for
generating models in Bulk Data Format for OptiStruct.
The User Profiles GUI can also be accessed from the Preferences menu on the
toolbar.
3. From the toolbar, select Open Model.
4. Select the rail_joint_original.hm file.
4. Select the first pull-down menu below Result type: and select Element Stresses [2D &
3D] (t).
5. Select the second pull-down and select von Mises.
6. Click Apply.
7. Take note of the Maximum von Mises Stress of the joint and close the HyperView panel
Rail domains
Step 6: Split the Circular Edge Domains Around the Opening of the Rail
The following steps show the procedure to split each of the two circular domains (as shown
in the previous figure) into four curved edge domains.
1. Toggle the radio button to edit edges subpanel.
2. Verify the top selector is split.
3. Click domain and select the circular edge-domain passing through nodes 1300, 1305,
1311, 1316.
4. Click node and select node 1311 from the display. Refer to the previous figure.
5. Click split.
The circular domain is split at Node 1311 and a new handle is created at node1311.
6. Select the circular edge between node 1311 and the other handle.
The edge is highlighted.
7. Click node 1316 to split the domain.
8. Similarly (as in steps 6-7), split the curved edge at nodes 1305 and 1300, respectively.
Refer to the previous figure.
A similar process is followed to split the circular domain using the four nodes on the
other side of the rail.
9. Click domain and select the circular domain passing through nodes 931, 926, 937 and
942.
10. Click node and select node 931 on screen.
11. Click split.
12. Select the circular edge between node 931 and the other handle.
The edge is highlighted.
13. Click node 926 to split the domain.
14. Similarly (as in steps 11-14), split the curved edge at nodes 937 and 942, respectively.
The following figure shows the image after the circular edge domains are split.
5. Click merge.
Notice the pre-existing handle is removed.
6. Repeat steps 1 through 5 to merge two edge domains between node 1316 and node
1300 on the other side of the rail.
The third shape variable, sh3, converts the tube to a square cross-section
An additional shape variable is created using the shape created in the previous step.
38. In the Model Browser window, right-click on the component PSHELL and select Hide.
These components are turned off for ease of visualization.
39. Toggle the radio button to alter dimensions.
Once nodes a and b are selected, the distance between node a and node b is measured
automatically and appears in distance = field.
The distance between node a and node b is about 43.
45. Click handles under node a, and select the 8 handles shown by the downward pointing
arrows in the previous figure.
To select, click the handles on the screen until they are highlighted.
46. Click handles under node b and similarly as in the previous step, select the 8 handles
near the opposite face of the tube.
47. Toggle the bottom selector and select hold middle.
48. In the Model Browser window, right-click on the component PSHELL and click on
Show.
These components are turned on for ease of visualization.
49. Click distance = and enter 20.
50. Click morph.
A rectangular shape appears to the joint as shown in the next figure.
51. Toggle the button to save shape.
52. Click shape = and enter sh4.
53. Make sure that the toggle is set to node perturbations.
54. Click save.
55. Click undo all to restore the mesh to the baseline configuration.
56. Click the Model Browser tab, right-click on Shape and select Hide.
57. Click return three times to return to the main menu.
Step 10: Define the Shape Design Variables and Review by Animation
1. From the Analysis page, select the optimization panel.
2. Click on the shape panel.
3. Make sure the radio button is set to desvar and create.
4. Toggle the switch to select multiple desvars.
5. Click shape = and select sh1, sh2, sh3 and sh4.
6. Click select.
7. Click initial value = and enter 0.0.
8. Click lower bound = and enter -1.0.
9. Click upper bound = and enter 1.0.
10. Click create.
This creates four design variables with the same initial value, lower bound, and upper
bound. HyperMesh automatically links the design variables to each shape respectively
and assigns names to each design variable the same as its associated shapes.
11. Click animate.
12. Click on simulation = SHAPE sh1 (1).
13. Make sure that data type = is set to Perturbation vector.
Step 17: View a Contour Plot of the Stress on Top of the Shape Optimized
Model
1. Click the Next Page arrow in the toolbar to move to the next page.
2. Click the Contour toolbar button.
Note the Result type: is Element Stresses [2D & 3D] [t].
The second pull-down menu shows von Mises.
3. At the bottom of the GUI, click on the name Subcase 1 (STEP) <> Model Step to
activate the Load Case and Simulation Selection dialog.
4. Select the last iteration by double-clicking on the last Iteration listed.
5. Click Apply.
The stress contour shows on top of the shape changes applied to the model. Verify that
this value is around the constraint value specified.
Von Mises Stress for the last iteration (Max < 200 MPa)
3 Free-shape Optimization
Free-shape optimization uses a proprietary optimization technique developed by Altair
Engineering Inc., wherein the outer boundary of a structure is altered to meet with pre-
defined objectives and constraints. The essential idea of free-shape optimization, and
where it differs from other shape optimization techniques, is that the allowable movement of
the outer boundary is automatically determined, thus relieving users of the burden of
defining shape perturbations.
Free-shape design regions are defined through the DSHAPE bulk data entry. Design
regions are identified by the grids on the outer boundary of the structure (the edge of a shell
structure or the surface of a solid structure). These grids are listed on the DSHAPE entry.
Free-shape optimization allows these design grids to move in one of two ways:
1. For shell structures; grids move normal to the surface edge in the tangential plane.
2. For solid structures; grids move normal to the surface.
During free-shape optimization, the normal directions change with the change in shape of
the structure, thus for each iteration the design grids move along the updated normals.
GID8 GID9
2D - A free-shape design region is defined on the curved edge of the plate by selecting the edge
grids; the grids are free to move in the normal direction on the tangential plane.
3D - A free-shape design region is defined on a surface of the solid structure by selecting the face
surface grids; the grids are free to move normal to the surface.
Deformed
The default value of MVFACTOR is 0.5. A smaller MVFACTOR will make free-shape
optimization run slower but with more stability. Conversely, a larger MVFACTOR will make
free-shape optimization run faster but with less stability.
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10)
The default value of NSMOOTH is 10. A larger NSMOOTH will give a larger smoothing
buffer, and consequently will work better in avoiding mesh distortion; however, it will result in
a slower optimization.
NSMOOTH=1, only 1 layer of grids move along with the design boundary.
The design region is offset to form two barriers; MXSHRK is the offset in the shrinkage
direction and MXGROWTH is the offset in the growth direction. The design region is then
constrained to deform between these two barriers.
The curved edge is the free-shape design region. Without any constraints on the free-shape
design region, the grids at the ends of the curved edge do not move exactly along the line of
the straight edge, but move slightly outward, as shown here:
In order to prevent this phenomenon, the grids at the ends of the curved edge (shown in
yellow below) are both constrained to move along the vector indicated by the red arrows.
Using these constraints - corner grids moving along the constrained direction - the grids at
the ends of the curved edge now move as desired, along the line of the straight edge, as
shown here:
Problem Statement
Step 1: Launch HyperMesh, Set the User Profile, and Retrieve the Model
1. Launch HyperMesh Desktop.
2. Choose OptiStruct in the User Profile dialog and click OK.
This loads the user profile. It includes the appropriate template, macro menu, and
import reader, paring down the functionality of HyperMesh to what is relevant for
generating models in Bulk Data Format for OptiStruct.
User Profiles can also be accessed from the Preferences pull-down menu on the
toolbar.
3. Select the Open Model panel toolbar button.
4. Select the freeshape3d_mfg.hm file.
5. Click Open.
The freeshape3D_mfg.hm database is loaded into the current HyperMesh session,
replacing any existing data. Note the location of freeshape3D_mfg.hm now displays
in the file: field.
5. Click create.
6. Click on the parameters subpanel and check the box for options and select the
direction as grow, mvfactor at 0.5 and nsmooth as 10 and click update.
Step 3: Convert the existing shell elements to create the Barrier Mesh Face
(BMFACE)
1. Go to the 2D page.
2. Enter the elem types panel.
3. Click on elems to get the extended entity list.
4. Select by collector.
5. Check the box next to barrier.
6. On 2D& 3D subpanel, click on CTRIA3 in the field next to tria3.
7. Select BMFACE from the list of options.
8. Click on CQUAD4 in the field next to quad4.
9. Select BMFACE from the list of options.
10. Click update.
6. Click create.
7. Click return.
Step 12: View a Contour Plot of the Stress on Top of the Shape Optimized
Model
1. Go to the Contour panel and select Element Stresses (2D & 3D) (t) as the Result
type:.
2. Select von Mises as the stress type.
3. Click on Elements and click By set and pick the set stress click on Add and close.
4. Click Apply.
1. Is your design objective of minimizing the mass obtained? If not, can you explain
why?
2. Are your design constraints satisfied?
Problem Setup
You should copy this file: free_shape3D.hm
5. Click create.
6. Click return to go to the main menu.
Step 9: View a Contour Plot of the Stress on Top of the Shape Optimized
Model
1. Go to the Contour panel and select Element Stresses [2D & 3D] as the Result
type:.
2. Select von Mises as the stress type.
3. Click Apply.
The stress contour shows on top of the shape changes applied to the model.
In practice, however, there will be some sort of constraints imposed upon the movement of
grids due to manufacturability. For this tutorial model, thickness must be unchanged to
avoid any interference with other parts.
The next step will describe how to define constraints on DSHAPE grids such that the
thickness of design space will remain unchanged.
The constraints on the curved part will be created using a local rectangular coordinate
system (the other constraints on the flat part do not need a local coordinate system).
Therefore, a local rectangular coordinate system (z-axis will point to normal to DSHAPE
surface) needs to be created first.
1. Back in HyperMesh, click return and go to 1D page.
2. Click systems.
3. Choose the create by axis direction subpanel.
4. Click nodes and select node ID 20999 (See the following figure).
5. Click origin and select the same node (ID 20999) as nodes.
6. Click x-axis and select node ID 15989.
7. Click xy-plane and select node ID 19462.
8. Click create.
9. Click return.
10. From the Analysis page, click on optimization.
11. Select the free shape panel.
12. Select the gridcon subpanel.
The constraints on the flat part will be created first without any coordinate system.
13. Click desvar= and select shape.
14. Select constraint type as planar.
15. Select nodes shown in the following figure.
25. Click the direction definition switch below vector, and select z-axis from the pop-up
menu.
26. Click add.
27. Click return twice to get back to the main menu.
APPENDIX A
Exercise A1:
1: Getting Started using Inspire
In this exercise, the Inspire software is used to import and manipulate a double bracket
model. The model is imported with CAD information organized into several functional
groups, all of which may be manipulated, oriented, shown or hidden, and edited through the
Inspire interface. The model is manipulated and modified, and lloads oads are applied to
geometric entities within the model to prepare it for optimization.
This exercise will familiarize you with the Inspire interface for geometric manipulation.
Objectives for this exercise include reviewing tthe user interface, importing
mporting files into Inspire,
using the view
iew controls, showing and hiding parts, and creating and editing forces and draw
directions.
Problem setup
1. Start Inspire.
2. The toolbar across the top of the application displays all of the tools available in Inspire.
Inspire As the
cursor moves over the various icons in the group, they glow with a yellow border.
3. Click the folder in the Files icon group on the ffar left of the toolbar.
5. Select the dual bracket.stmod file from the class model directory.
6. Click Open.. If not already visible, press F2 to open the Project Browser.
1. Rotate the model by holding down the right mouse button while dragging the mouse. This
rotation method is called turn table rotation and is useful if your model's vertical direction is aligned
2. Now hold down the middle mouse button while dragging the mouse. This is called track ball
rotation and is useful for tumbling your model in any direction. Press the n key to rotate the model to
3. Zoom the model inward and outward by rolling the scroll wheel forward and back. The model will
always zoom about the mouse cursor. A smooth zoom about the center of the modeling window
can be performed by pressing the Alt key and the middle mouse button while sliding the mouse up
and down.
4. Fit the model by clicking the Fit All icon in the lower left corner of the application, or by pressing
the F key. If parts are selected, clicking the Fit Selected icon or pressing the F key will zoom
into the selected parts. Pressing the F key again will zoom out to show the entire model. Try
5. Pan the model by holding both the Shift key and the right mouse button while moving the mouse.
Press the c key to center the model.
odel.
1. Move the mouse over the Show/Hide icon group. New icons appear to the left and right of the main
2. Left-click on the Show/Hide tool, the red cube to the left of the main icon.
3. The icon will glow and the mouse cursor will change to , indicating that you are in show/hide
show/hid
mode.
4. Left-click
click one or more parts in the modeling window. The parts turn transparent as you select them,
5. Right-click
click to exit the show/hide mode. The selected objects are hidden in the modeling window.
win
6. To show parts that are hidden, select the Show/Hide tool again to enter show/hide mode.
7. Click on a transparent part while holding down the Shift key. Note that while the Shift key is
9. To isolate a part, click on it in the modeling window, and then click the Isolate eyeball icon in the
To hide all parts in the model, hover over the Show/Hide icon group and select the Hide All
satellite icon.
To reverse which parts are shown and hidden, hover over the Show/Hide icon group and select
10. Using keyboard shortcuts is another way you can show, hide, o
or isolate parts.
1. Isolate one of the brackets in the model by selecting it and pressing the I key.
2. Create a distributed force by clicking the Apply Forces tool in the Loads icon group in the main
toolbar.
3. Move the mouse cursor over the front face of the bracket and left-click
click to apply a distributed force.
4. A mini-toolbar
toolbar will appear when creating or editing forces. Enter 45 N in the text field and press the
Controls icon. (You'll learn more about draw directions in later tutorials.)
bracket, indicating the draw direction (the direction the mold will be pulled away from the part).
8. Right-click
click on empty space or press Esc to exit the tool.
1. Double-click
click the blue plane to edit the parting direction. You are now in edit mode, and a
mini-toolbar appears.
2. Click on one of the grey planes to activate it and change the orientation of the draw direction.
3. Right-click
click on empty space or press Esc to exit the tool.
4. Double-click
click one of the red force arrows o
on
n the front face. You are now in edit mode, and a mini
toolbar reappears.
5. You can edit the force by entering a magnitude in the text field, or change its direction by pressing
the +/-, X, Y, Z and buttons. You can also create more forces by selecting another face, as shown
below:
6. Right-click
click on empty space or press Esc to exit the tool.
This exercise will showcase using Inspire to create unit load cases, apply symmetry
planes, create
reate forces and supports, apply symmetry planes, create single draw direction
pattern grouping, run an optimization, and explore the shapes generated by the solution run.
Problem setup
1. Start Inspire.
5. Click Open. If not already visible, press F2 and F3 to open the Project Browser and Property
Editor.
6. Use the right mouse button to adjust the view so that the y-bracket is positioned, as shown below:
1. If it is not already open, select View > Project Browser to open the Project Browser.
Browser
2. In the y-bracket folder, two parts are listed Boss Materials and Bracket. Click on Boss Materials
in the Project Browser to select it. The three cylindrical holes in the bracket turn yellow. While we will
be placing loads and supports on the boss materials, we do not want to subtract any material from
2. A new load case appears in the Load Cases folder, and the text field is automatically highlighted so
3. Rename the load case "Load Case X" and press Enter.. The name of the load cases is shown in
bold, indicating that it is the current load case. Any new loads or supports
s that you create will be
added to it automatically.
1. Select the Apply Supports tool from the Loads icon group.
3. In the Project Browser, Support 1 is added to the All Loads and Supports folder and to Load Case
1. Select the Apply Forces tool from the Loads icon group.
3. The force is initially applied in the negative X direction. Click the +/- icon in the mini toolbar to reverse
X.
5. While the Apply Forces tool is still active, click on the other rear boss material and use the +/- icon
to reverse the direction. Both Force 1 and Force 2 should now be applied in the positive X direction,
6. Force 2 appears in the Project Browser in both the All Loads and Supports folder and Load Case
X.
2. A new load case is added in the Project Browser.. Rename the load case "Load Case Y" and press
3. We want to use the same support from Load Case X in Load Case Y, so right
right-click
click on Support 1 in
the All Loads and Supports Folder in the Project Browser and select Include in Load Cases >
Load Case Y.
5. Click the icons next to Force 1 and Force 2 in the Project Browser to temporarily hide these forces in
6. Select the Apply Forces tool from the Loads icon group.
7. Add two more forces, one to each of the rear boss materials in the negative Y direction. In the mini
toolbar, click the Y and then click the +/- icon to reverse the direction.
8. Force 3 and Force 4 have been added to Load Case Y in the Project Browser.
2. Rename the load case "Load Case Z" and press Enter. This is now the current load case.
3. Click on Support 1 in the All Loads and Supports Folder in the Project Browser and drag it to
Load Case Z.
4. Click the icons next to Force 3 and Force 4 in the Project Browser to temporarily hide these forces
5. Select the Apply Forces tool from the Loads icon group.
6. Add two more forces, one to each of the rear boss materials in the positive Z direction. In the mini
7. Force 5 and Force 6 have been added to Load Case Y in the Project Browser.
Browser
9. Click the Show All button at the top of the Project Browser to display all of the loads and
transparent.
1. Select the Symmetry tool from the Shape Controls icon group. A toolbar appears.
4. Shape Control 1 is added to the Shape Controls folder in the Project Browser.
5. Click the plane in the Y direction to deselect it. The plane turns gray.
1. Select the Draw Direction tool from the Shape Controls icon group. A toolbar appears.
3. Click on the bracket in the modeling window to select it. Three pla
planes
nes appear; the blue plane
4. Parting Direction 1 is added to the Shape Controls folder in the Project Browser.
1. Click the Run Optimization icon to open the Run Optimization window.
3. Under Mass targets,, select % of Total Design Space Volume from the drop down menu and
choose 30 percent.
4. Under Thickness control, change the Minimum to 0.3 in.. (This will speed up the optimization.)
5. Under Load Cases, deselect Load Case Y and Load Case Z.. This will run the optimization with
7. Click on the name of the run and then the View Now button to view the results. The optimized
shape is displayed.
8. Click on the part to open the Shape Explorer.. The optimized shape is listed as an alternative to
10. Repeat the above procedure to run an optimization for Load Case Z.
11. The optimization runs for Load Case Y and Load Case Z now appear as additional alternatives
1. Now run the optimization one more time using all three load cases simultaneously. Click the Run
Optimization icon to open the Run Optimization window, and select all three load cases.
3. Click the Close button. When the optimization is complete, a green flag appears above the Run
5. Click on the part to open the Shape Explorer, and drag the Topology slider to explore the
optimized shape. Changing the topology adds and subtracts material, giving you an idea of how this
impacts the shape. Notice that as you drag the slider to the right, additional structures emerge. This
6. Click the Run Optimization icon to open the Run Optimization window.
7. Under Mass targets,, change the % of Total Design Space Volume to 40 percent.
9. Click Run.. When the optimization is complete, click the green flag to view the optimized shape.
11. Try running optimization again, this time with a % of Total Design Space Volume to 45 percent.
3. Right-click-and-drag
drag to reposition the model, then left
left-click
click on the right front face and push it inward
4. Right-click-and-drag
drag to reposition the model, then left
left-click
click on the rear face and push it inward 1.25
inches.
6. Right-click-and-drag
drag to reposition the model, then double
double-click
click one of the red symmetry planes, to
9. Re-run
run optimization with all three load cases active and a % of Total Design Space Volume to 45
shape.
APPENDIX B
For this example we need to design a cantilever beam made with composites plies that can
have angles 0, 45, -45 and 90 degrees. It needs to support an in-plane force at middle of the
unconstrained end.
Model Information:
Problem Setup
Copy the file plate_with_hole_opti_phase1.hm
Step 3: Create the 2 responses (mass and disp2111) for the optimization.
1. From the pull-down menu, select Optimization > Create > Responses.
2. Enter disp2111 in the response= field.
3. Select static displacement for the response type.
4. Select the node where the load is applied or by ID node # 2111.
5. Select total disp.
6. Click create.
7. Create a second response named volume.
8. Select volume for the response type.
9. Click create.
10. Click return to exit the panel.
4. Check the box next to upper bound and enter a value of 5.00e-01.
5. Click loadstep and select Lateral.
6. Click select.
7. Click create.
8. Click return.
Note that second request will create a FILENAME_sizing.fem file that will have
incorporated ply and element set information that includes ply patch configurations for
each ply type.
The default is to repeat the super-ply 4 times for each ply defined on the
PCOMP(G) property that will give a total of 16 plies.
This is the default value and can be changed to adding the number of
desired ply sequence repetitions at the end of the line in *.fem file. For
example: OUTPUT,FSTOSZ,YES,5 This request would result in the
PCOMP ply sequence being repeated 5 times for a total of 20 plies.
One important result is to understand how the total element thickness is distributed
over the topography of the laminate. Thickness changes can be displayed per-ply as
shown below:
Step 1: Import the fem generated from the OS run and review
Because of the output settings we created on the model prior to running the previous
optimization, OptiStruct has created a file including the various changes to the plies sorted
by sizing.
DESVAR cards will provide the initial, minimum and maximum thickness for each ply.
The second request in output will make OptiStruct export the input file
PCOMP_PLATE_shuffling.#.fem prepared to perform the PHASE 3 Shuffle.
5. Right-click the laminate Laminate in the Model Browser and select the Edit option.
9. Change the Laminate option from SMEAR to Total.
o It shows that the model had converged for a feasible solution with an optimum
volume.
28. Now it is important to review the thickness of each plies, which can be found in the *.out
file: note that OS removed some of the plies from the model entirely: e.g. thickness is zero.
15. Click update to update the pairing constraint. Click on edit and fill the card as shown
below:
MAXSUCC: limits the number of plies of the same type (orientation) that are adjacent
to each other.
16. Save the model and submit the optimization.
17. Review the file: PCOMP_PLATE.shuf.html.
0o Plies -45o Plies 45o Plies 90o Plies
The table shows the shuffling iterations from beginning to the last.
DSHUFFLE constrains to limit the number of like adjacent plies to a maximum of four;
SUMMARY
Composite optimization is a three phase task:
1. Begins with Free Size optimization that determines composite patch size, shape, and
location. On this phase OS output the input deck that is then used in the second
phase,
2. Size optimization (ply bundle optimization), to determine optimum ply bundle
thickness and required number of plies per patch.
3. Shuffling optimization is the last phase used to optimize stacking sequence and meet
ply book rules, improve performance, and improve manufacturability.
Final stacking sequence for ply lay up for composite plate with hole example