<?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 controller-based topology optimization task:"/><meta name = "description" content = "In this example, you are going to follow the workflow for a standard controller-based topology optimization task:"/><meta name = "DC.format" content = "HTML5"/><meta name = "DC.identifier" content = "tso-t-example-topo-conArmOptimize"/><meta name = "DC.language" content = "en"/><link rel = "stylesheet" type = "text/css" href = "../DSDocUI_XML34.css"/><title>Optimizing the Control Arm Model</title>
<script type = "text/javascript" src = "../DSDocUI_Highlight34.js">
  	/* */
  	</script></head><body onLoad = "highlightSearchTerms();" id = "tso-t-example-topo-conArmOptimize">
<a name = "hj-top"> </a><table class = "table1" id = "table11"><tr><td><table class = "DocHeader"><tr><td class = "DocHeader1" colspan = "2"><h1>Optimizing the Control Arm 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 controller-based topology 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 the Demold Restriction (DVCON_TOPO)</li>
<li class = "li">Define the OPTIMIZE command.</li>
<li class = "li">Set up a SMOOTH command.</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  = MY_INPUT_FILES
  FILE     = control_arm.inp
END_

DV_TOPO
  ID_NAME  = DESIGN_AREA
  EL_GROUP = DESIGN_ELEMENTS
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 (DRESP) with the volume:
<div class = "itemgroup stepresult">
<pre class = "codeblock">
DRESP
  ID_NAME    = TOSCA_DRESP_2_VOLUME_CONSTRAINT_1
  LIST       = 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 70% of the initial volume:
<div class = "itemgroup stepresult">
<pre class = "codeblock">
CONSTRAINT
  ID_NAME   = CONSTRAINT_1_VOLUME_CONSTRAINT_1
  DRESP     = TOSCA_DRESP_2_VOLUME_CONSTRAINT_1
  MAGNITUDE = REL
  EQ_VALUE  = 0.7
END_
</pre>
</div>
</li>
</ol>
</li><li class = "li step stepexpand">
To define the Objective Function (OBJ_FUNC) for the compliance (STRAIN_ENERGY), 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    = TOSCA_DRESP_1_COMPLIANCE_TERM_1
  LIST       = LIST
  DEF_TYPE   = SYSTEM
  EL_GROUP   = ALL_ELEMENTS
  TYPE       = STRAIN_ENERGY
  UPDATE     = EVER
  GROUP_OPER = Sum
END_
</pre>
</div>
</li>
<li class = "li substep">
Reference the Design Response in the Objective Function (OBJ_FUNC) and minimize it:
<div class = "itemgroup stepresult">
<pre class = "codeblock">
OBJ_FUNC
  ID_NAME = OBJ_FUNC_1_OBJ_FUNC_ITEM_1
  TARGET  = MIN
  DRESP   = TOSCA_DRESP_1_COMPLIANCE_TERM_1
END_
</pre>
</div>
</li>
<li class = "li substep">
Define the DVCON_TOPO for the demold restriction.
<div class = "itemgroup stepresult">
<pre class = "codeblock">
DVCON_TOPO
  ID_NAME           = DVCON_TOPO_1_DEMOLD_CONTROL_1
  EL_GROUP          = DESIGN_ELEMENTS
  CHECK_TYPE        = CAST
  PULL_DIR          = 0.,0.,1.
  CHECK_GROUP       = ALL_ELEMENTS
  MID_PLANE         = NONE
  PULL_CS           = CS_0
  CREATE_PULL_GROUP = NO
END_
</pre>
</div>
</li>
</ol>
</li><li class = "li step stepexpand">
Reference the Design Variables, Objective Function and Constraints as well as DVCON in the OPTIMIZE command:
<div class = "itemgroup stepresult">
<pre class = "codeblock">
OPTIMIZE
  ID_NAME    = OPTIMIZE_1_TOPOLOGY_OPTIMIZATION_SENSITIVITY
  DV         = DESIGN_AREA
  OBJ_FUNC   = OBJ_FUNC_1_OBJ_FUNC_ITEM_1
  DVCON      = DVCON_TOPO_1_DEMOLD_CONTROL_1
  CONSTRAINT = CONSTRAINT_1_VOLUME_CONSTRAINT_1
  STRATEGY   = TOPO_CONTROLLER
END_
</pre>
</div>
</li><li class = "li step stepexpand">
Define the smooth command.
<div class = "itemgroup stepresult">
<pre class = "codeblock">
SMOOTH
  ID_NAME                 = ISO_SMOOTHING_0_3
  TASK                    = iso
  ISO_VALUE               = 0.3
  SELF_INTERSECTION_CHECK = runtime
  SMOOTH_CYCLES           = 10
  REDUCTION_RATE          = 60
  REDUCTION_ANGEL         = 5.0
  FORMAT                  = vtf
  FORMAT                  = stl
  FORMAT                  = onf
END_
</pre>
</div>
</li></ol></section>
<p class = "result">
<p>The optimization result looks as follows:<br/><img class = "image" src = "../TsoExampleImages/conArmResult.png"/><br/></p>
</p>
</div>


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