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

<ol class = "ol"><li class = "li">Define input data and design variables.</li>
<li class = "li">Define the Constraint of the optimization task (DRESP, CONSTRAINT).</li>
<li class = "li">Define the Objective Function (DRESP, OBJ_FUNC).</li>
<li class = "li">Define manufacturing constraints (LINK_SHAPE, DVCON_SHAPE)</li>
<li class = "li">Define the OPTIMIZE command (OPTIMIZE).</li>
<li class = "li">Set stop condition (STOP).</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 include the *.inc file containing the groups (INCLUDE).
<div class = "itemgroup stepresult">
<pre class = "codeblock">
FEM_INPUT
 ID_NAME = fem_input_name
 FILE    = rim.inp
END_

INCLUDE, rim_groups.inc

DV_SHAPE
 ID_NAME  = DESIGN_AREA
 ND_GROUP = DESIGN_NODES_ALL
END_
</pre>
</div>
</li><li class = "li step stepexpand">
Create a constraint for the volume 
<ol type = "a" class = "ol substeps">
<li class = "li substep">
Define a Design Response with the volume (DRESP):
<div class = "itemgroup stepresult"><pre class = "codeblock">
DRESP
 ID_NAME    = DRESP_VOLUME
 LIST       = NO_LIST
 DEF_TYPE   = SYSTEM
 EL_GROUP   = ALL_ELEMENTS
 TYPE       = VOLUME
 UPDATE     = EVER
 GROUP_OPER = Sum
END_
</pre></div>
</li>
<li class = "li substep">
Reference the Design Response in a constraint (CONSTRAINT) and constrain it to 100%.
<div class = "itemgroup stepresult"><pre class = "codeblock">
CONSTRAINT
 ID_NAME   = VOLUME_CONSTRAINT
 DRESP     = DRESP_VOLUME
 MAGNITUDE = REL
 EQ_VALUE  = 1.0
END_
</pre></div>
</li>
</ol>
</li><li class = "li step stepexpand">
To define the Objective Function (OBJ_FUNC) for the von Mises stress in both <span class = "ph">load cases</span>, 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_STRESS_1
 LIST       = NO_LIST
 DEF_TYPE   = SYSTEM
 ND_GROUP   = DESIGN_NODES
 TYPE       = SIG_MISES
 GROUP_OPER = Max
 LC_SET     = ALL,1,All
END__

DRESP
 ID_NAME    = DRESP_STRESS_2
 LIST       = NO_LIST
 DEF_TYPE   = SYSTEM
 ND_GROUP   = DESIGN_NODES
 TYPE       = SIG_MISES
 UPDATE     = EVER
 GROUP_OPER = Max
 LC_SET     = ALL,2,All
END_
</pre></div>
</li>
<li class = "li substep">
Define the objective function.
<div class = "itemgroup stepresult">
<pre class = "codeblock">
OBJ_FUNC
 ID_NAME = OBJ_FUNCTION
 TARGET  = MINMAX
 DRESP   = DRESP_STRESS_1
 DRESP   = DRESP_STRESS_2
END_
</pre>
</div>
</li>
</ol>
</li><li class = "li step stepexpand">
    Define turning, stamping, and rotational symmetry constraints.
    <ol type = "a" class = "ol substeps">
     <li class = "li substep">
      Define the constraint in LINK_SHAPE commands. For the stamping constraint, only 1 of 6
       LINK_SHAPEs is shown.
      <div class = "itemgroup stepresult">
       <pre class = "codeblock">
LINK_SHAPE
 ID_NAME    = LINK_SHAPE_TURN_OUTER
 CLIENT     = SURF_TURN
 MAIN     = NDGR,TURN_OUTER
 CLIENT_DIR = 0, 1, 0
 CS         = CS_0
END_

LINK_SHAPE
 ID_NAME    = LINK_SHAPE_TURN_INNER
 CLIENT     = SURF_TURN
 MAIN     = NDGR,TURN_INNER
 CLIENT_DIR = 0, 1, 0
 CS         = CS_0
END_

LINK_SHAPE
 ID_NAME    = LINK_SHAPE_STAMP_1
 CLIENT     = SURF_STAMP
 MAIN     = MAX
 CLIENT_DIR = 0, 1, 0
 CS         = CS_0
 ANGLE     = 0.0
END_

LINK_SHAPE
 ID_NAME    = LINK_SHAPE_ROT
 CLIENT     = ROTATION_SYM
 MAIN     = MAX
 TOL        = 0.2, 0.2, 0.2
 CLIENT_DIR = 0, 1, 0
 CS         = CS_0
 ANGLE      = 60.0
END_
</pre>
      </div>
     </li>
     <li class = "li substep">
      Reference the constraints in DVCON_SHAPE commands.
      <div class = "itemgroup stepresult">
       <pre class = "codeblock">
DVCON_SHAPE
 ID_NAME     = DVCON_SHAPE_SLIDE_OUTER
 CHECK_BC    = NO
 ND_GROUP    = TURN_OUTER
 CHECK_SLIDE = LINK_SHAPE_TURN_OUTER
END_

DVCON_SHAPE
 ID_NAME     = DVCON_SHAPE_SLIDE_INNER
 CHECK_BC    = NO
 ND_GROUP    = TURN_INNER
 CHECK_SLIDE = LINK_SHAPE_TURN_INNER
END_

DVCON_SHAPE
 ID_NAME     = DVCON_SHAPE_STAMP_1
 CHECK_BC    = NO
 ND_GROUP    = STAMP_DESIGN_NODES_1
 CHECK_LINK  = LINK_SHAPE_STAMP_1
END_

DVCON_SHAPE
 ID_NAME     = DVCON_SHAPE_ROT
 CHECK_BC    = NO
 ND_GROUP    = DESIGN_NODES
 CHECK_LINK  = LINK_SHAPE_ROT
END_
</pre>
      </div>
     </li>
    </ol>
   </li><li class = "li step stepexpand">
Define fixed boundary nodes using DVCON_SHAPE.
<div class = "itemgroup stepresult">
<pre class = "codeblock">
DVCON_SHAPE
 ID_NAME   = FIXED_NODES_INNER_SURFACE
 ND_GROUP  = fixed_inner_NODE
 CHECK_DOF = CS_0,FIX, FIX, FIX  
END_

DVCON_SHAPE
 ID_NAME   = FIXED_NODES_OUTER_SURFACE
 ND_GROUP  = fixed_outer_NODE
 CHECK_DOF = CS_0,FIX, FIX, FIX  
END_ 
</pre>
</div>
</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    = SHAPE_OPTIMIZATION
 DV         = DESIGN_AREA
 OBJ_FUNC   = OBJ_FUNCTION
 CONSTRAINT = VOLUME_CONSTRAINT
 STRATEGY   = SHAPE_CONTROLLER
 DVCON      = DVCON_SHAPE_SLIDE_OUTER
 DVCON      = DVCON_SHAPE_SLIDE_INNER
 DVCON      = DVCON_SHAPE_STAMP_1
 DVCON      = DVCON_SHAPE_STAMP_2
 DVCON      = DVCON_SHAPE_STAMP_3
 DVCON      = DVCON_SHAPE_STAMP_4
 DVCON      = DVCON_SHAPE_STAMP_5
 DVCON      = DVCON_SHAPE_STAMP_6
 DVCON      = FIXED_NODES_INNER_SURFACE
 DVCON      = FIXED_NODES_OUTER_SURFACE
 DVCON      = DVCON_SHAPE_ROT
END_
</pre>
</div>
</li><li class = "li step stepexpand">
Set stop condition.
<div class = "itemgroup stepresult">
<pre class = "codeblock">
STOP
 ID_NAME  = STOP_CONDITION
 ITER_MAX = 10
END_
</pre>
</div>
</li></ol></section>
<p class = "result">
<p>The optimization result looks as follows:<br/><img class = "image" src = "../TsoExampleImages/shapeRimResult.png" width = "454"/><br/></p>
</p>
</div>

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