<?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-NlPlateOptimize"/><meta name = "DC.language" content = "en"/><link rel = "stylesheet" type = "text/css" href = "../DSDocUI_XML34.css"/><title>Optimize the Bending Plate Model</title>
<script type = "text/javascript" src = "../DSDocUI_Highlight34.js">
  	/* */
  	</script></head><body onLoad = "highlightSearchTerms();" id = "tso-t-example-sizing-NlPlateOptimize">
<a name = "hj-top"> </a><table class = "table1" id = "table11"><tr><td><table class = "DocHeader"><tr><td class = "DocHeader1" colspan = "2"><h1> Optimize the Bending 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 volume 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 displacement in
X-direction of the nodes on the right edge:  
<div class = "itemgroup stepresult"> 
<pre class = "codeblock">
DRESP
 ID_NAME    = Disp_x
 LIST       = NO_LIST
 DEF_TYPE   = SYSTEM
 TYPE       = DISP_X_ABS
 ND_GROUP   = Z-LOAD
 GROUP_OPER = MAX
 LC_SET     = ALL, 1, ALL
END_
</pre> 
</div> 
</li> 
<li class = "li substep"> 
 Reference the Design Response in the Objective Function
(OBJ_FUNC) and set the TARGET to MINMAX:  
<div class = "itemgroup stepresult"> 
<pre class = "codeblock">
OBJ_FUNC
 ID_NAME = Min_Disp_x
 DRESP   = Disp_x, 1.
 TARGET  = MINMAX
END_
</pre> 
<p>The maximum displacement out of the node set will be minimized.</p> 
</div> 
</li> 
</ol> 
</li><li class = "li step stepexpand"> 
 To define the volume constraint, do the following:  
<ol type = "a" class = "ol substeps"> 
<li class = "li substep"> 
 Define a Design Response (DRESP) that contains the sum of the
total volume of the optimization group:  
<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 a constraint (CONSTRAINT)
and restrict it to 50% of the initial volume:  
<div class = "itemgroup stepresult"> 
<pre class = "codeblock">
CONSTRAINT
 ID_NAME   = Max_Vol
 DRESP     = Vol
 MAGNITUDE = REL
 LE_VALUE  = 0.9
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"> 
 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_Disp_x
 CONSTRAINT = Max_Vol
 DVCON      = CLUSTERING
 STRATEGY   = SIZING_SENSITIVITY
END_
</pre> 
</div> 
</li> 
<li class = "li substep"> 
 Define specific settings for optimization in the OPT_PARAM
command:  
<div class = "itemgroup stepresult"> 
<pre class = "codeblock">
OPT_PARAM
 ID_NAME                  = Bending_Plate_NL_OPT_PARAM_
 OPTIMIZE                 = Bending_Plate_NL
 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> 
<table class = "Remark" id = "table132"><tr><td class = "Remark"><span class = "run-in.important">Important:
				</span><span class = "notecontent">Optimization with nonlinearities should
run with 
<code class = "ph codeph">THICKNESS_UPDATE = CONSERVATIVE</code> to improve
convergence.
</span></td></tr></table>
 
</div> 
</li> 
</ol> 
</li><li class = "li step stepexpand"> 
Set an additional command in the OPTIONS command: 
<div class = "itemgroup stepresult"> 
<pre class = "codeblock">
OPTIONS
 IGNORE_NUM_OF_OBJF_TERMS = YES
END_
</pre> 
<p> This is needed because, by default, <span class = "ph">Tosca Structure</span> allows only
50 terms in the objective definition. In this example, there are 79 nodes to be
optimized. Thus, by ignoring the warning the optimization is allowed to run
freely. </p> 
</div> 
</li><li class = "li step stepexpand">

<ol type = "a" class = "ol substeps"> 
<li class = "li substep"> 
 Optimum without considering nonlinear effects.  
<div class = "itemgroup stepresult"> 
<p> 
<br/><img class = "image" src = "../TsoExampleImages/sizingBendPlateNlgeomNO.png"/><br/> 
Optimum when ignoring nonlinear effects contains
members (at load application) with high thickness along the membrane in order
to resist the displacement caused by the tension load (does not account for
bending). </p> 
</div> 
</li> 
<li class = "li substep"> 
 Optimum considering nonlinear effects.  
<div class = "itemgroup stepresult"> 
<p> 
<br/><img class = "image" src = "../TsoExampleImages/sizingBendPlateNlgeomYES.png"/><br/>
Optimum when considering nonlinear effects results in
a structure that resists the bending force (the load in the membrane is very
minimal and, hence, not much contribution). </p> 
</div> 
</li> 
</ol> 
</li></ol></section> 
</div>
 
</td></tr></table><script type = "text/javascript" src = "../DSDocUI_Bottom34.js">/* */</script></body>
</html>
