<?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 = "In this example, you will follow the workflow for a standard bead optimization task with eigenfrequency:"/><meta name = "description" content = "In this example, you will follow the workflow for a standard bead optimization task with eigenfrequency:"/><meta name = "DC.format" content = "HTML5"/><meta name = "DC.identifier" content = "tso-t-example-bead-hoodEigSensOptimize"/><meta name = "DC.language" content = "en"/><link rel = "stylesheet" type = "text/css" href = "../DSDocUI_XML34.css"/><title>Optimizing the Eigenfrequency of the Hood Model (Tosca Structure.gui)</title>
<script type = "text/javascript" src = "../DSDocUI_Highlight34.js">
  	/* */
  	</script></head><body onLoad = "highlightSearchTerms();" id = "tso-t-example-bead-hoodEigSensOptimize">
<a name = "hj-top"> </a><table class = "table1" id = "table11"><tr><td><table class = "DocHeader"><tr><td class = "DocHeader1" colspan = "2"><h1>Optimizing the Eigenfrequency of the Hood Model 
(<span class = "ph">Tosca Structure.gui</span>)</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"> In this example, you will follow the workflow for a standard bead optimization task with
      eigenfrequency:</span>

<ol class = "ol"><li class = "li">Define input data and design variables.</li>
    <li class = "li">Define the Objective Function (DRESP, OBJ_FUNC).</li>
    <li class = "li">Activate the Boundary Conditions (DVCON_BEAD)</li>
    <li class = "li">Define the OPTIMIZE command.</li>
    <li class = "li">(optional) Set additional settings (OPT_PARAM).</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 input data and Design Variables.
<div class = "itemgroup stepresult">
<pre class = "codeblock">
FEM_INPUT
  ID_NAME      = INPUT_FILE
  FILE         = hood_eig_sens.inp
END_

DV_BEAD
  ID_NAME      = DESIGN_VARIABLES
  ND_GROUP     = ALL_NODES
END_
</pre>
</div>
</li><li class = "li step stepexpand">
For most applications, you want to avoid that the modes switch during optimization.
The easiest way to do this is to define a new Design Response (DRESP) based
on the Kreisselmeier-Steinhauser formulation. Here we assume that the first
mode will never get larger as the 5th mode. To define the Objective Function (OBJ_FUNC) 
for the first five eigenfrequency, do the following:
<ol type = "a" class = "ol substeps">
<li class = "li substep">
Create a Design Response (DRESP):
<div class = "itemgroup stepresult">
<pre class = "codeblock">
DRESP
  ID_NAME      = dresp_kreis
  TYPE         = DYN_FREQ_KREISSEL
  DEF_TYPE     = SYSTEM
  LC_SET       = ALL,ALL,1-5
END_
</pre>
</div>
</li>
<li class = "li substep">
Reference the Design Response in the Objective Function (OBJ_FUNC) and maximize it:
<div class = "itemgroup stepresult">
<pre class = "codeblock">
OBJ_FUNC
  ID_NAME      = maximize_eigenfrequency
  DRESP        = dresp_kreis
  TARGET       = MAX
END_
</pre>
</div>
</li>
<li class = "li substep">
Define the DVCON_BEAD for the growth and shrink limits, respectively.
<div class = "itemgroup stepresult">
<pre class = "codeblock">
DVCON_BEAD
  ID_NAME      = dvcon_max_disp
  CHECK_BC     = NO
  ND_GROUP     = ALL_NODES
  CHECK_GROW   = 0.5
  CHECK_SHRINK = 0.5
END_
</pre>
</div>
</li>
</ol>
</li><li class = "li step stepexpand">
Reference the Design Variables, Objective Function, and Constraints as well as DV_CONs
in the OPTIMIZE command:
<div class = "itemgroup stepresult">
<pre class = "codeblock">
OPTIMIZE
  ID_NAME       = BEAD_OPTIMIZATION
  DV            = DESIGN_VARIABLES
  OBJ_FUNC      = maximize_eigenfrequency
  DVCON         = dvcon_max_disp
  STRATEGY      = BEAD_SENSITIVITY
END_
</pre>
</div>
</li><li class = "li step stepexpand"> 
(optional) Define the filter radius in the OPT_PARAM command as well as the maximum number of iterations.
<div class = "itemgroup stepresult">
<pre class = "codeblock">
OPT_PARAM
  ID_NAME       = OPT_PARAMS
  OPTIMIZE      = BEAD_OPTIMIZATION
  FILTER_RADIUS = 1.5
END

STOP
  ID_NAME       = global_stop
  ITER_MAX      = 20
END_
</pre>
<p>If you do not define the bead width, the system automatically determines a bead width. </p>
</div>
</li></ol></section>
<p class = "result"> The optimization result looks as follows:
<p><br/><img class = "image" src = "../TsoExampleImages/beadHoodEigSensResult.png"/><br/></p>
<p>The result is a final eigenvalue of 0.3558 (15%), which might even become higher if you let
the optimization continue for more than 20 iterations.</p>
</p>
</div>


</td></tr></table><script type = "text/javascript" src = "../DSDocUI_Bottom34.js">/* */</script></body>
</html>
