<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html
  SYSTEM "about:legacy-compat">
<html xmlns:mml = "http://www.w3.org/1998/Math/MathML" lang = "en"><head><meta charset = "UTF-8"/><meta name = "copyright" content = "(C) Copyright 2020"/><meta name = "DC.rights.owner" content = "(C) Copyright 2020"/><meta name = "DC.type" content = "task"/><meta name = "abstract" content = "The actual model shows the main parts of a sizing optimization task: Definition of design variables, constraints, and objective function."/><meta name = "description" content = "The actual model shows the main parts of a sizing optimization task: Definition of design variables, constraints, and objective function."/><meta name = "DC.format" content = "HTML5"/><meta name = "DC.identifier" content = "tso-t-example-sizing-PlPlateOptimize"/><meta name = "DC.language" content = "en"/><link rel = "stylesheet" type = "text/css" href = "../DSDocUI_XML34.css"/><title>Optimize the Plastic Plate Model</title>
<script type = "text/javascript" src = "../DSDocUI_Highlight34.js">
  	/* */
  	</script></head><body onLoad = "highlightSearchTerms();" id = "tso-t-example-sizing-PlPlateOptimize">
<a name = "hj-top"> </a><table class = "table1" id = "table11"><tr><td><table class = "DocHeader"><tr><td class = "DocHeader1" colspan = "2"><h1> Optimize the Plastic Plate Model  </h1></td></tr><tr><td class = "DocHeader4" colspan = "2"/></tr><tr><td class = "DocHeader3" colspan = "2"><table class = "DocThemeIntro" id = "table12"><tr><td class = "Intro1Only"><p class = "header"><p class = "abstract"> 
<span class = "shortdesc"> The actual model shows the main parts of a sizing optimization
task: Definition of design variables, constraints, and objective function. 
</span>
 
<ol class = "ol"> 
<li class = "li">Define the Design Area. </li> 
<li class = "li">Define the Objective Function.</li> 
<li class = "li">Define the stress constraint. </li> 
<li class = "li">Define clustering elements. </li> 
<li class = "li">Set the Optimization Task. </li> 
</ol> 
</p>

</p></td></tr></table></td></tr></table>

 
 
<div class = "body taskbody"> 
<section><ol class = "ol steps"><li class = "li step stepexpand"> 
Define the Design Area (DV_SIZING):  
<div class = "itemgroup stepresult"> 
<pre class = "codeblock">
DV_SIZING
 ID_NAME  = Opt_Plate_DESIGN_AREA_
 EL_GROUP = ALL_ELEMENTS
END_
</pre> 
</div> 
</li><li class = "li step stepexpand"> 
 To define the Objective Function, do the following:  
<ol type = "a" class = "ol substeps"> 
<li class = "li substep"> 
 Define a Design Response (DRESP) with the volume of the
model:  
<div class = "itemgroup stepresult"> 
<pre class = "codeblock">
DRESP
 ID_NAME    = Vol
 LIST       = NO_LIST
 DEF_TYPE   = SYSTEM
 TYPE       = VOLUME
 EL_GROUP   = ALL_ELEMENTS
 GROUP_OPER = SUM
END_
</pre> 
</div> 
</li> 
<li class = "li substep"> 
 Reference the Design Response in the Objective Function
(OBJ_FUNC) and set the TARGET to MIN:  
<div class = "itemgroup stepresult"> 
<pre class = "codeblock">
OBJ_FUNC
 ID_NAME = Min_Vol
 DRESP   = Vol
 TARGET  = MIN
END_
</pre> 
</div> 
</li> 
</ol> 
</li><li class = "li step stepexpand"> 
 To define the stress constraint, do the following:  
<ol type = "a" class = "ol substeps"> 
<li class = "li substep"> 
 Define a Design Response (DRESP) that contains the absolute
von Mises stresses appearing in the model:  
<div class = "itemgroup stepresult"> 
<pre class = "codeblock">
DRESP
 ID_NAME    = mises_stress
 LIST       = NO_LIST
 DEF_TYPE   = SYSTEM
 TYPE       = SIG_SENS_MISES
 EL_GROUP   = ALL_ELEMENTS
 GROUP_OPER = MAX
 LC_SET     = ALL, 1, ALL
END_
</pre> 
</div> 
</li> 
<li class = "li substep"> 
 Reference the Design Response in a constraint (CONSTRAINT)
and restrict it to 425 MPa: 
 
<div class = "itemgroup stepresult"> 
<pre class = "codeblock">
CONSTRAINT
 ID_NAME   = Max_stress
 DRESP     = mises_stress
 MAGNITUDE = ABS
 LE_VALUE  = 425
END_
</pre> 
</div> 
</li> 
</ol> 
</li><li class = "li step stepexpand"> 
 Set up the optimization  
<ol type = "a" class = "ol substeps"> 
<li class = "li substep"> 
 Define an element group (Cluster1, Cluster2,... (predefined
in the example model)) for each of the clustering areas and assign them to a
clustering design variable constraint as follows:  
<div class = "itemgroup stepresult"> 
<pre class = "codeblock">
DVCON_SIZING
 ID_NAME    = CLUSTERING
 EL_GROUP   = Cluster1
 EL_GROUP   = Cluster2
 EL_GROUP   = Cluster3
 EL_GROUP   = Cluster4
 EL_GROUP   = Cluster5
 EL_GROUP   = Cluster6
 EL_GROUP   = Cluster7
 EL_GROUP   = Cluster8
 EL_GROUP   = Cluster9
 EL_GROUP   = Cluster10
 EL_GROUP   = Cluster11
 EL_GROUP   = Cluster12
 EL_GROUP   = Cluster13
 EL_GROUP   = Cluster14
 EL_GROUP   = Cluster15
 EL_GROUP   = Cluster16
 EL_GROUP   = Cluster17
 EL_GROUP   = Cluster18
 EL_GROUP   = Cluster19
 EL_GROUP   = Cluster20
 EL_GROUP   = Cluster21
 EL_GROUP   = Cluster22
 EL_GROUP   = Cluster23
 EL_GROUP   = Cluster24
 CHECK_TYPE = CLUSTER
END_
</pre> 
</div> 
</li> 
<li class = "li substep"> 
 Define a DVCON_SIZING to increase the upper and lower bounds
of the element thicknesses:  
<div class = "itemgroup stepresult"> 
<pre class = "codeblock">
DVCON_SIZING
 ID_NAME     = THICK_BOUNDS
 EL_GROUP    = ALL_ELEMENTS
 CHECK_TYPE  = THICKNESS_BOUNDS
 MAGNITUDE   = ABS
 LOWER_BOUND = 0.5
 UPPER_BOUND = 2
END_
</pre> 
</div> 
</li> 
<li class = "li substep"> 
 Reference the Design Variables, Objective Function, and
constraints in the OPTIMIZE command:  
<div class = "itemgroup stepresult"> 
<pre class = "codeblock">
OPTIMIZE
 ID_NAME    = Opt_Plate
 DV         = Opt_Plate_DESIGN_AREA_
 OBJ_FUNC   = Min_Vol
 CONSTRAINT = Max_stress
 DVCON      = CLUSTERING
 DVCON      = THICK_BOUNDS
 STRATEGY   = SIZING_SENSITIVITY
END_
</pre> 
</div> 
</li> 
<li class = "li substep"> 
 Define specific settings for optimization in OPT_PARAM command:  
<div class = "itemgroup stepresult"> 
<pre class = "codeblock">
OPT_PARAM
 ID_NAME                  = Plastic_Plate_OPT_PARAM_
 OPTIMIZE                 = Plastic_Plate
 AUTO_FROZEN              = LOAD
 THICKNESS_UPDATE         = CONSERVATIVE
 THICKNESS_MOVE           = 0.25
 STOP_CRITERION_LEVEL     = BOTH
 STOP_CRITERION_OBJ       = 0.001
 STOP_CRITERION_THICKNESS = 0.005
 STOP_CRITERION_ITER      = 4
END_
</pre> Here it is important to mention that optimization with
nonlinearities should run with 
<code class = "ph codeph">THICKNESS_UPDATE = CONSERVATIVE</code> to improve
convergence. 
</div> 
</li> 
</ol> 
</li><li class = "li step stepexpand"> 
 The optimized results including nonlinear kinematics (NLGEOM=ON):  
<ol type = "a" class = "ol substeps"> 
<li class = "li substep"> 
 Optimum with elastic material:  
<div class = "itemgroup stepresult"> 
<p> 
<br/><img class = "image" src = "../TsoExampleImages/sizingPlasticPlateElastic.png"/><br/> 
Optimum when ignoring nonlinear effects limits the
optimizer from removing the material if one of the element reaches the stress
constraint value. </p> 
</div> 
</li> 
<li class = "li substep"> 
 Optimum with elastic-plastic material: 
 
<div class = "itemgroup stepresult"> 
<p> 
<br/><img class = "image" src = "../TsoExampleImages/sizingPlasticPlatePlastic.png"/><br/> 
Optimum when considering nonlinear effects contains
more regions with yield stress, allowing the optimizer to remove more material
compared to the elastic case. </p> 
</div> 
</li> 
</ol> 
</li></ol></section> 
</div>
 
</td></tr></table><script type = "text/javascript" src = "../DSDocUI_Bottom34.js">/* */</script></body>
</html>
