<?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 are going to follow the workflow for a standard shape optimization task:"/><meta name = "description" content = "In this example, you are going to follow the workflow for a standard shape optimization task:"/><meta name = "DC.format" content = "HTML5"/><meta name = "DC.identifier" content = "tso-t-example-shape-sens-rimPemagOptimize"/><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-sens-rimPemagOptimize">
<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 are going to 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 (CD_DEF, 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>This task shows you how to:
					</p><ul><li><a href = "#t-NodeGroups" id = "toc_rg" title = "You need to define node groups for the:">Create the Node Groups</a></li><li><a href = "#t-SetupOpt" id = "toc_rg" title = "">Setup the Optimization</a></li></ul>
</p></td></tr></table></td></tr></table>



<article class = "topic task nested1" aria-labelledby = "ariaid-title2" id = "t-NodeGroups">
<h2 class = "title topictitle2">Create the Node Groups</h2>


<div class = "body taskbody"><p class = "abstract">
<span class = "shortdesc">You need to define node groups for the:</span>

<ol class = "ol">
<li class = "li">Design Area </li>
<li class = "li">Stamp Restriction</li>
<li class = "li">Demold Restriction</li>
<li class = "li">Frozen Area</li>
</ol>
</p>

<section><ol class = "ol steps"><li class = "li step stepexpand">
To define the Design Area, create the <span class = "ph uicontrol">DESIGN_NODES_ALL</span> node
group that contains the design nodes. The group should contain all nodes of the rim
holes:
<div class = "itemgroup stepresult">
<br/><img class = "image" src = "../TsoExampleImages/shapeRimDesArea.png"/><br/>
</div>
</li><li class = "li step stepexpand">
Create 6 more node groups containing each hole separately (HOLE_1 ... HOLE_6).
<div class = "itemgroup stepresult"> These group definitions are needed for the stamp restrictions on the holes. </div>
</li><li class = "li step stepexpand">
Create 2 node groups containing the nodes of the inner
(<span class = "ph uicontrol">TURN_INNER</span>) and the outer rim surface (<span class = "ph uicontrol">TURN_OUTER</span>), needed for the
<span class = "ph uicontrol">CHECK_SLIDE</span> restriction:
<div class = "itemgroup stepresult">
<br/><img class = "image" src = "../TsoExampleImages/shapeRImInOutSurf.png"/><br/>
</div>
</li><li class = "li step stepexpand">
Create 2 more node groups for the demold restriction on
the outer surface of the rim holes (first group <span class = "ph uicontrol">DEMOLD</span>).
</li><li class = "li step stepexpand">
Extend the group by adding the nodes of the inner turn surface of
the rim to create the check group for the demold restriction
(<span class = "ph uicontrol">CHECK_DEMOLD</span>).
<div class = "itemgroup stepresult">
<br/><img class = "image" src = "../TsoExampleImages/shapeRimDemGroup.png"/><br/>
</div>
</li><li class = "li step stepexpand">
The <span class = "ph uicontrol">MESH_SMOOTH</span> command can cause the undesirable displacement of
some nodes on the outer turn surface of the rim. Therefore, some
nodes need to be fixed. Create a group with the fix nodes
(<span class = "ph uicontrol">FIX_NODES</span>):
<div class = "itemgroup stepresult">
<br/><img class = "image" src = "../TsoExampleImages/shapeRimFixNodes.png"/><br/>
</div>
</li></ol></section>
</div>

</article>

<article class = "topic task nested1" aria-labelledby = "ariaid-title3" id = "t-SetupOpt">
<p><map name = "FPMap1"><area href = "#hj-top" title = "Back to Top" shape = "rect" coords = "416, 0, 435, 10"/></map><span class = "itemsprite"/></p><h2 class = "title topictitle2">Setup the Optimization</h2>

<div class = "body taskbody">
<section><ol class = "ol steps"><li class = "li step stepexpand">
Define input data, additional groups design variables.
<div class = "itemgroup stepresult">
<pre class = "codeblock">
FEM_INPUT
 ID_NAME  = fem_input_name
 FILE     = rim_pemag.inp
END_

GROUP_DEF
 ID_NAME = TURN_OUTER
 TYPE    = NODE
 FORMAT  = LIST
 LIST_BEGIN
 [List of node IDs, separated by comma] (skipped here due to readibility)
END_

GROUP_DEF
 ID_NAME = TURN_INNER
 TYPE    = NODE
 FORMAT  = LIST
 LIST_BEGIN
 [List of node IDs, separated by comma] (skipped here due to readibility)
END_

GROUP_DEF
 ID_NAME = DESIGN_NODES_ALL
 TYPE    = NODE
 FORMAT  = LIST
 LIST_BEGIN
 [List of node IDs, separated by comma] (skipped here due to readibility)
END_

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
 LE_VALUE  = 1.0
END_
</pre>
</div>
</li>
</ol>
</li><li class = "li step stepexpand">
     To define the Objective Function (OBJ_FUNC) for the plastic equivalent magnitude (PEMAG)
      in the second <span class = "ph">load case</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_PEMAG
 DEF_TYPE = SYSTEM
 TYPE     = PEMAG
 EL_GROUP = ALL_ELEMENTS
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  = MIN
 DRESP   = DRESP_PEMAG
END_
</pre>
       </div>
      </li>
     </ol>
    </li><li class = "li step stepexpand">
Define turning and rotational symmetry constraints.
<ol type = "a" class = "ol substeps">
<li class = "li substep">
Create a new coordinate system.
<div class = "itemgroup stepresult">
<pre class = "codeblock">
CS_DEF
 ID_NAME      = CS_SYM
 DEF_TYPE     = LOCAL
 CS_TYPE      = RECTANGULAR
 CS_REF       = CS_0
 ORIGIN_123   = 0.0,-60.,0.
 ROTATION_321 = 0.,0.,0.
END_
</pre>
</div>
</li>
<li class = "li substep">
Define the constraint in LINK_SHAPE commands.
<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    = ROT_SYM_LINK
 MAIN     = MAX
 CLIENT     = SURF_CYCLIC_SYM
 CLIENT_DIR = 0.,1.,0.
 CS         = CS_SYM
 TOL        = 0.1,0.1,0.1
 ANGLE      = 60
 CYCLIC_SYM_START = 1.,0.,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        = ROT_SYM
 ND_GROUP       = DESIGN_NODES_ALL
 CHECK_LINK     = ROT_SYM_LINK
 FEASIBLE_START = YES
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     = SHAPE_OPTIMIZATION
 DV          = DESIGN_AREA
 OBJ_FUNC    = OBJ_FUNCTION
 CONSTRAINT  = VOLUME_CONSTRAINT
 STRATEGY    = SHAPE_SENSITIVITY
 DVCON       = ROT_SYM
 DVCON       = DVCON_SHAPE_SLIDE_OUTER
 DVCON       = DVCON_SHAPE_SLIDE_INNER
 MESH_SMOOTH = MY_MESH_SMOOTH
END_
</pre>
     </div>
    </li><li class = "li step stepexpand">
Set stop condition.
<div class = "itemgroup stepresult">
<pre class = "codeblock">
OPT_PARAM
 ID_NAME  = "OPT_PARAM"
 OPTIMIZE = SHAPE_OPTIMIZATION
END_

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/abaqusRimPemagResult.png" width = "454"/><br/></p>
<p>The PEMAG distribution in the initial iteration looks as follows:<br/><img class = "image" src = "../TsoExampleImages/abaqusRimPemagInitial.png" width = "454"/><br/></p>
<p>The optimized part has the following PEMAG distribution:<br/><img class = "image" src = "../TsoExampleImages/abaqusRimPemagFinal.png" width = "454"/><br/></p>
</p>
</div>

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