<?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 = "reference"/><meta name = "abstract" content = "Definition of STOP conditions."/><meta name = "description" content = "Definition of STOP conditions."/><meta name = "DC.relation" scheme = "URI" content = "../TsoUserMap/tso-c-user-TopOpt-StopCond-GlobSC.htm#tso-c-user-TopOpt-StopCond-GlobSC"/><meta name = "DC.relation" scheme = "URI" content = "../TsoUserMap/tso-c-usr-shape-stop-ConvCrit.htm#tso-c-usr-shape-stop-ConvCrit"/><meta name = "DC.relation" scheme = "URI" content = "../TsoUserMap/tso-t-usr-beadOpt-beadStop.htm#tso-t-usr-beadOpt-beadStop"/><meta name = "DC.format" content = "HTML5"/><meta name = "DC.identifier" content = "tso-r-cmd-stop"/><meta name = "DC.language" content = "en"/><link rel = "stylesheet" type = "text/css" href = "../DSDocUI_XML34.css"/><title>STOP</title>
<script type = "text/javascript" src = "../DSDocUI_Highlight34.js">
  	/* */
  	</script></head><body onLoad = "highlightSearchTerms();" id = "tso-r-cmd-stop">
<a name = "hj-top"> </a><table class = "table1" id = "table11"><tr><td><table class = "DocHeader"><tr><td class = "DocHeader1" colspan = "2"><h1>STOP</h1></td></tr><tr><td class = "DocHeader4" colspan = "2"/></tr><tr><td class = "DocHeader3"><table class = "DocHeaderIntro" id = "table12"><tr><td class = "Intro1Only"><p class = "header"><p class = "abstract">
<span class = "shortdesc">Definition of <code class = "ph codeph">STOP</code> conditions.</span>

</p>
<p>This page discusses: </p><ul><li><a href = "#tso-r-cmd-stop__tso-r-cmd-stop-rmk" id = "toc_rg" title = "">Remarks</a></li><li><a href = "#tso-r-cmd-stop__tso-r-cmd-stop-expl" id = "toc_rg" title = "">Examples</a></li></ul>
</p></td></tr></table></td><td class = "DocHeader2"><table class = "DocTopicsSeeAlso" id = "table13"><tr><td class = "TopicsTitle">See Also</td></tr></table><table class = "DocTopicsInOtherGuides" id = "table14"><tr><td height = "8px"/></tr><tr><td class = "TopicsTitleNormal">In Other Guides</td></tr><tr><td><a title = "The stop criteria usable in topology optimization are explained." href = "../TsoUserMap/tso-c-user-TopOpt-StopCond-GlobSC.htm#tso-c-user-TopOpt-StopCond-GlobSC">Global Stop Criterion (Number of Iterations)</a></td></tr><tr><td><a title = "For checking if the sensitivity-based optimization has converged, two local stop criteria are implemented In addition to the maximum number of iterations. The user can specify if both stop criteria should be fulfilled or only one of the stop criteria must be fulfilled for the optimization algorithm to stop." href = "../TsoUserMap/tso-c-usr-shape-stop-ConvCrit.htm#tso-c-usr-shape-stop-ConvCrit">Convergence Criteria</a></td></tr><tr><td><a title = "Generally, the number of optimization cycles should be limited by default to a certain number to limit the computation time for optimizations with convergence problems." href = "../TsoUserMap/tso-t-usr-beadOpt-beadStop.htm#tso-t-usr-beadOpt-beadStop">Global Stop Condition (Number of Iterations)</a></td></tr></table></td></tr></table>




<div class = "body refbody">
<table class = "table" id = "tso-r-cmd-stop__aa1401355"><caption/><colgroup><col/><col/><col/></colgroup><tbody class = "tbody">
<tr class = "row">
<td class = "entry"><p><span class = "ph uicontrol">ID_NAME</span></p></td>
<td class = "entry"><p>= &lt;<code class = "ph codeph">id_name_of_stop_condition</code>&gt;</p></td>
<td class = "entry"><p>Name of the <code class = "ph codeph">STOP</code> condition.</p></td>
</tr>
<tr class = "row">
<td class = "entry"><p><span class = "ph uicontrol">LOGICAL</span></p></td>
<td class = "entry"><p>= &lt;<code class = "ph codeph">name_of_logical_variable</code>&gt;</p></td>
<td class = "entry"><p>Name of a logical variable.</p></td>
</tr>
<tr class = "row">
<td class = "entry"><p><span class = "ph uicontrol">ITER_MAX</span></p></td>
<td class = "entry"><p>= &lt;<code class = "ph codeph">value</code>&gt;</p>
                      <p><span class = "ph uicontrol">= 50</span> (size/topo sens)</p>
                      <p><span class = "ph uicontrol">= 50</span> (shape controller/sens)</p>
                      <p><span class = "ph uicontrol">= 15</span> (topo controller)</p>
                      <p><span class = "ph uicontrol">= 20</span> (bead sens)</p>
                      <p><span class = "ph uicontrol">=  3</span> (bead controller)</p></td>
<td class = "entry"><p>Maximum number of iterations. For topology and sizing sens, the default value will be 80 iterations
                         when nonlinear material or stress dresps are present in the optimization</p></td>
</tr>
<tr class = "row">
<td class = "entry" colspan = "3"><p>The following parameters are available only in combination as <code class = "ph codeph">Logical
                                Condition</code>:</p></td>
</tr>
<tr class = "row">
<td class = "entry"><p>MOD_NDGR</p></td>
<td class = "entry"><p>= &lt;<code class = "ph codeph">name_of_node_group</code>&gt;</p></td>
<td class = "entry"><p>Node group for which the comparison is made.</p></td>
</tr>
<tr class = "row">
<td class = "entry"><p>MOD_TYPE</p></td>
<td class = "entry"><p>&lt;<code class = "ph codeph">mod_type_1</code>&gt;, &lt;<code class = "ph codeph">mod_type_2</code>&gt;</p></td>
<td class = "entry"><p>The parameter &lt;<code class = "ph codeph">mod_type_1</code>&gt; of the variable specified in the second parameter &lt;<code class = "ph codeph">mod_type_2</code>&gt; 
                         is compared to <code class = "ph codeph">MOD_REF</code> using the operator specified in <code class = "ph codeph">MOD_OPER</code>.</p></td>
</tr>
<tr class = "row">
<td class = "entry"><p>&lt;mod_type_1&gt;</p></td>
<td class = "entry"><p><span class = "ph uicontrol">= MAX</span></p></td>
<td class = "entry"/>
</tr>
<tr class = "row">
<td class = "entry"/>
<td class = "entry"><p>= MIN</p></td>
<td class = "entry"/>
</tr>
<tr class = "row">
<td class = "entry"/>
<td class = "entry"><p>= SUM</p></td>
<td class = "entry"/>
</tr>
<tr class = "row">
<td class = "entry"/>
<td class = "entry"><p>= COUNT</p></td>
<td class = "entry"/>
</tr>
<tr class = "row">
<td class = "entry"><p>&lt;mod_type_2&gt;</p></td>
<td class = "entry"><p><span class = "ph uicontrol">= MOVE</span></p></td>
<td class = "entry"><p>Amount of optimization displacement.</p></td>
</tr>
<tr class = "row">
<td class = "entry"/>
<td class = "entry"><p>= MOVE_GROWTH</p></td>
<td class = "entry"><p>Like <code class = "ph codeph">MOVE</code>, but only positive.</p></td>
</tr>
<tr class = "row">
<td class = "entry"/>
<td class = "entry"><p>= MOVE_SHRINK</p></td>
<td class = "entry"><p>Like <code class = "ph codeph">MOVE</code>, but only negative.</p></td>
</tr>
<tr class = "row">
<td class = "entry"/>
<td class = "entry"><p>= MOVE_TOTAL</p></td>
<td class = "entry"><p>Optimization displacement referring to initial model.</p></td>
</tr>
<tr class = "row">
<td class = "entry"/>
<td class = "entry"><p>= MOVE_GROWTH_TOTAL</p></td>
<td class = "entry"><p>Like <code class = "ph codeph">MOVE_TOTAL</code>, but only positive.</p></td>
</tr>
<tr class = "row">
<td class = "entry"/>
<td class = "entry"><p>= MOVE_SHRINK_TOTAL</p></td>
<td class = "entry"><p>Like <code class = "ph codeph">MOVE_TOTAL</code>, but only negative.</p></td>
</tr>
<tr class = "row">
<td class = "entry"/>
<td class = "entry"><p>= CTRL_INP</p></td>
<td class = "entry"><p>Controller input value (equivalent stress).</p></td>
</tr>
<tr class = "row">
<td class = "entry"/>
<td class = "entry"><p>= CTRL_INP_SHAPE</p></td>
<td class = "entry"><p><code class = "ph codeph">CTRL_INP</code> of design nodes.</p></td>
</tr>
<tr class = "row">
<td class = "entry"/>
<td class = "entry"><p>= CTRL_INP_SHAPE_FIX</p></td>
<td class = "entry"><p><code class = "ph codeph">CTRL_INP</code> of restricted design nodes.</p></td>
</tr>
<tr class = "row">
<td class = "entry"/>
<td class = "entry"><p>= CTRL_INP_SHAPE_FREE</p></td>
<td class = "entry"><p><code class = "ph codeph">CTRL_INP</code> of free design nodes.</p></td>
</tr>
<tr class = "row">
<td class = "entry"/>
<td class = "entry"><p>= CTRL_INP_SURFACE</p></td>
<td class = "entry"><p><code class = "ph codeph">CTRL_INP</code> of surface nodes.</p></td>
</tr>
<tr class = "row">
<td class = "entry"><p>MOD_OPER</p></td>
<td class = "entry"/>
<td class = "entry"><p>Comparison operator.</p></td>
</tr>
<tr class = "row">
<td class = "entry"/>
<td class = "entry"><p>=LT</p></td>
<td class = "entry"><p>Less than.</p></td>
</tr>
<tr class = "row">
<td class = "entry"/>
<td class = "entry"><p>= LE</p></td>
<td class = "entry"><p>Less or equal.</p></td>
</tr>
<tr class = "row">
<td class = "entry"/>
<td class = "entry"><p>= EQ</p></td>
<td class = "entry"><p>Equal.</p></td>
</tr>
<tr class = "row">
<td class = "entry"/>
<td class = "entry"><p>= GE</p></td>
<td class = "entry"><p>Greater or equal.</p></td>
</tr>
<tr class = "row">
<td class = "entry"/>
<td class = "entry"><p>= GT</p></td>
<td class = "entry"><p>Greater than.</p></td>
</tr>
<tr class = "row">
<td class = "entry"><p>MOD_REF</p></td>
<td class = "entry"><p>= &lt;<code class = "ph codeph">real</code>&gt;, &lt;<code class = "ph codeph">mod_ref_1</code>&gt;, &lt;<code class = "ph codeph">mod_ref_2</code>&gt;</p></td>
<td class = "entry"><p>The real value is linked with the &lt;<code class = "ph codeph">mod_ref_2</code>&gt; specified iteration in the
                         way described by &lt;<code class = "ph codeph">mod_ref_1</code>&gt;.</p></td>
</tr>
<tr class = "row">
<td class = "entry"><p>&lt;mod_ref_1&gt;</p></td>
<td class = "entry"><p>= MULT</p></td>
<td class = "entry"><p>Multiplication.</p></td>
</tr>
<tr class = "row">
<td class = "entry"/>
<td class = "entry"><p>= ADD</p></td>
<td class = "entry"><p>Sum.</p></td>
</tr>
<tr class = "row">
<td class = "entry"/>
<td class = "entry"><p>= SUB</p></td>
<td class = "entry"><p>Subtraction</p></td>
</tr>
<tr class = "row">
<td class = "entry"/>
<td class = "entry"><p>= DIV</p></td>
<td class = "entry"><p>Division.</p></td>
</tr>
<tr class = "row">
<td class = "entry"><p>&lt;mod_ref_2&gt;</p></td>
<td class = "entry"><p>= PREV</p></td>
<td class = "entry"><p>Previous (iteration).</p></td>
</tr>
<tr class = "row">
<td class = "entry"/>
<td class = "entry"><p>= FIRST</p></td>
<td class = "entry"><p>First (iteration).</p></td>
</tr>

<tr class = "row">
<td class = "entry"><p><span class = "ph uicontrol">OPTIMIZE</span></p></td>
<td class = "entry"><p>= &lt;<code class = "ph codeph">name_of_optimization</code>&gt;</p></td>
<td class = "entry"><p>Name of the optimization task.</p></td>
</tr>
</tbody></table>

<div class = "section" id = "tso-r-cmd-stop__tso-r-cmd-stop-rmk"><h2 class = "title sectiontitle">Remarks</h2>

<ol class = "ol">
<li class = "li">Using the parameter <code class = "ph codeph">ITER_MAX</code> a global stop condition can be set. In the
    optimization system, a number of 40 iterations is set by default.</li>
<li class = "li">If a global <code class = "ph codeph">STOP</code> condition is defined, no other parameters can be defined in
                    the <code class = "ph codeph">STOP</code> command. If an additional logical
                        <code class = "ph codeph">STOP</code> condition must be defined, another
                        <code class = "ph codeph">STOP</code> definition must be defined.</li>
</ol>
</div>

<div class = "section" id = "tso-r-cmd-stop__tso-r-cmd-stop-expl"><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 sectiontitle">Examples</h2>

<p>The optimization should stop, when the maximum equivalent stress of the node group all_nodes is smaller than 1% of the maximum equivalent stress of the first iteration:</p>
<pre class = "codeblock">
<code class = "ph codeph">
STOP
 ID_NAME  = stop_command
 MOD_NDGR = ALL_NODES
 MOD_TYPE = MAX, CTRL_INP_SHAPE
 MOD_OPER = LE
 MOD_REF  = 0.01, MULT, FIRST
 OPTIMIZE = <code class = "ph codeph">run</code>
END_
</code>
</pre>
<p> The optimization should stop when the equivalent maximum von Mises stress
in the design area is smaller than 200 MPa.</p>
<pre class = "codeblock">
<code class = "ph codeph">
VARIABLE
 ID_NAME    = var_sig
 DEF_TYPE   = SYSTEM
 TYPE       = SIG_MISES
 ND_GROUP   = <code class = "ph codeph">design_nodes</code>
 GROUP_OPER = MAX
END_

LOGICAL
 ID_NAME  = logi_1
 DEF_TYPE = BASE
 OPER     = LT
 VAR_A    = <code class = "ph codeph">var_sig</code>
 FIX_VAL  = 200
END_

STOP
 ID_NAME = my_stop_condition
 LOGICAL = <code class = "ph codeph">logi_1</code>
 OPTIMIZE = <code class = "ph codeph">my_optimization_problem</code>
END_
</code>
</pre>
</div>


</div>

<div class = "related-links"/>
</td></tr></table><script type = "text/javascript" src = "../DSDocUI_Bottom34.js">/* */</script></body>
</html>
