<?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 = "concept"/><meta name = "abstract" content = "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."/><meta name = "description" content = "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."/><meta name = "DC.relation" scheme = "URI" content = "../TsoCmdMap/tso-r-cmd-stop.htm#tso-r-cmd-stop"/><meta name = "DC.format" content = "HTML5"/><meta name = "DC.identifier" content = "tso-c-usr-shape-stop-ConvCrit"/><meta name = "DC.language" content = "en"/><link rel = "stylesheet" type = "text/css" href = "../DSDocUI_XML34.css"/><title>Convergence Criteria</title>
<script type = "text/javascript" src = "../DSDocUI_Highlight34.js">
  	/* */
  	</script><script type = "text/javascript" src = "../MathJax/MathJax.js?config=DS-default,local/local">
  		/* */
  		</script></head><body onLoad = "highlightSearchTerms();" id = "tso-c-usr-shape-stop-ConvCrit">
<a name = "hj-top"> </a><table class = "table1" id = "table11"><tr><td><table class = "DocHeader"><tr><td class = "DocHeader1" colspan = "2"><h1>Convergence Criteria</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"> 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. </span>

</p>
<p>This page discusses: </p><ul><li><a href = "#tso-c-usr-shape-stop-ConvCrit__tso-c-usr-shape-stop-Default" id = "toc_rg" title = "">Default Convergence Criteria</a></li><li><a href = "#tso-c-usr-shape-stop-ConvCrit__tso-c-usr-shape-stop-auto" id = "toc_rg" title = "">Automatic Creation of Stop Conditions</a></li><li><a href = "#tso-c-usr-shape-stop-ConvCrit__tso-c-usr-TopOpt-stop-ChangeInObjFunc" id = "toc_rg" title = "">Stop Criterion: Change in Objective Function</a></li><li><a href = "#tso-c-usr-shape-stop-ConvCrit__tso-c-usr-TopOpt-stop-ChangeInDesignVariables" id = "toc_rg" title = "">Stop Criterion: Change in design variables</a></li><li><a href = "#tso-c-usr-shape-stop-ConvCrit__tso-c-usr-TopOpt-stop-ConvergenceCriteria" id = "toc_rg" title = "">Convergence Criteria</a></li><li><a href = "#tso-c-usr-shape-stop-ConvCrit__tso-c-usr-TopOpt-stop-EnhanceConvCriteria" id = "toc_rg" title = "">Enhanced Convergence Criteria</a></li><li><a href = "#tso-c-usr-shape-stop-ConvCrit__tso-c-usr-TopOpt-stop-SICC" id = "toc_rg" title = "">Start Iteration for Convergence Check</a></li><li><a href = "#tso-c-usr-shape-stop-ConvCrit__tso-c-usr-shape-stop-example1" id = "toc_rg" title = "">Example 1:</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 = "Definition of STOP conditions." href = "../TsoCmdMap/tso-r-cmd-stop.htm#tso-r-cmd-stop">STOP</a></td></tr></table></td></tr></table>



<div class = "body conbody">
<div class = "section" id = "tso-c-usr-shape-stop-ConvCrit__tso-c-usr-shape-stop-Default"><h2 class = "title sectiontitle">Default Convergence Criteria</h2>

<p>
For sensitivity-based optimization, the optimization stops automatically when the following convergence criteria are fulfilled.
More detailed explanations of the criteria can be found in the sections beneath.
<pre class = "codeblock">
<code class = "ph codeph">
OPT_PARAM
 ID_NAME              = NO_OPT_PARAM
 OPTIMIZE             = MY_OPTIMIZE
 STOP_CRITERION_LEVEL = BOTH
 STOP_CRITERION_OBJ   = 0.001
 STOP_CRITERION_DV    = 0.005
 STOP_CRITERION_ITER  = 4
END_
</code>
</pre>
</p>
</div>

  
<div class = "section" id = "tso-c-usr-shape-stop-ConvCrit__tso-c-usr-shape-stop-auto"><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">Automatic Creation of Stop Conditions</h2>

<p>
For sensitivity-based optimization, some convergence stop criteria that
consider the change of the objective function and the change in the design
variables can be created. The creation of the convergence criteria can be
influenced with the
<code class = "ph codeph">STOP_CRITERION_CONVERGENCE</code> item in the
<code class = "ph codeph">OPT_PARAM</code> command. Valid options are
<code class = "ph codeph">AUTO</code> (default),
<code class = "ph codeph">NO</code>, and
<code class = "ph codeph">YES</code>. With <code class = "ph codeph">AUTO</code>, a stop criterion is created
or neglected depending on the default of the installed version. If
<code class = "ph codeph">CREATE_DEFAULT_CRITERIA = NO</code> is selected, no convergence
stop criteria is created. Otherwise the optimization stops when convergence is detected.</p>
</div>
    

<div class = "section" id = "tso-c-usr-shape-stop-ConvCrit__tso-c-usr-TopOpt-stop-ChangeInObjFunc"><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">Stop Criterion: Change in Objective Function</h2>

<p> One of the available stop criteria is a measurement based on the change in the objective
function from one optimization design cycle to the next design cycle. This stop criterion
is defined by </p>
<table class = "table" id = "tso-c-usr-shape-stop-ConvCrit__d142e25"><caption/><colgroup><col/></colgroup><tbody class = "tbody">
<tr class = "row">
<td class = "entry">
<p><span class = "ph inlineequation"><math class = "- topic/foreign "><mrow class = "- topic/foreign "><mfrac class = "- topic/foreign "><mrow class = "- topic/foreign "><mo class = "- topic/foreign ">|</mo><msub class = "- topic/foreign "><mrow class = "- topic/foreign "><mi mathvariant = "normal" class = "- topic/foreign ">Θ</mi></mrow><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">n</mi></mrow></msub><mo class = "- topic/foreign ">−</mo><msub class = "- topic/foreign "><mrow class = "- topic/foreign "><mi mathvariant = "normal" class = "- topic/foreign ">Θ</mi></mrow><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">n</mi><mo class = "- topic/foreign ">−</mo><mn class = "- topic/foreign ">1</mn></mrow></msub><mo class = "- topic/foreign ">|</mo></mrow><mrow class = "- topic/foreign "><mo class = "- topic/foreign ">|</mo><msub class = "- topic/foreign "><mrow class = "- topic/foreign "><mi mathvariant = "normal" class = "- topic/foreign ">Θ</mi></mrow><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">n</mi></mrow></msub><mo class = "- topic/foreign ">|</mo></mrow></mfrac><mo class = "- topic/foreign ">≤</mo><mi class = "- topic/foreign ">STOP_CRITERION_OBJ</mi></mrow></math></span></p>
</td>
</tr>
</tbody></table>

<p> where Θ is objective value, the index n is representing the present optimization iteration and is n-1 is the
previous iteration. When the criterion is lower than <code class = "ph codeph">STOP_CRITERION_OBJ</code>,
the stop criterion is fulfilled. The default for <code class = "ph codeph">STOP_CRITERION_OBJ</code> is
0.001. The value can be changed by the user; for example, </p>
<pre class = "codeblock">
<code class = "ph codeph">
OPT_PARAM
 ID_NAME            = opt_params
 OPTIMIZE           = id_of_optimize
 STOP_CRITERION_OBJ = 0.01
END_
</code>
</pre>
<p>This could be desirable when the number of optimizations should be reduced.</p>
</div>


<div class = "section" id = "tso-c-usr-shape-stop-ConvCrit__tso-c-usr-TopOpt-stop-ChangeInDesignVariables"><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">Stop Criterion: Change in design variables</h2>

<p>Another stop criterion is based on the change in the design variables from one
optimization design cycle to the next optimization design cycle and is defined by:</p>
<table class = "table" id = "tso-c-usr-shape-stop-ConvCrit__d143e25"><caption/><colgroup><col/></colgroup><tbody class = "tbody">
<tr class = "row">
<td class = "entry">
<p><span class = "ph inlineequation"><math class = "- topic/foreign "><mrow class = "- topic/foreign "><mfrac class = "- topic/foreign "><mrow class = "- topic/foreign "><mrow class = "- topic/foreign "><msup class = "- topic/foreign "><mrow class = "- topic/foreign "><msub class = "- topic/foreign "><mrow class = "- topic/foreign "><mstyle displaystyle = "false" class = "- topic/foreign "><mrow class = "- topic/foreign "><mo class = "- topic/foreign ">∑</mo></mrow></mstyle></mrow><mrow class = "- topic/foreign "><mn class = "- topic/foreign ">1</mn></mrow></msub></mrow><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">Number</mi><mo class = "- topic/foreign ">⁢</mo><mi class = "- topic/foreign ">of</mi><mo class = "- topic/foreign ">⁢</mo><mi class = "- topic/foreign ">dv</mi></mrow></msup><mo class = "- topic/foreign ">|</mo><msub class = "- topic/foreign "><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">ρ</mi></mrow><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">n</mi></mrow></msub><mo class = "- topic/foreign ">−</mo><msub class = "- topic/foreign "><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">ρ</mi></mrow><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">n</mi><mo class = "- topic/foreign ">−</mo><mn class = "- topic/foreign ">1</mn></mrow></msub><mo class = "- topic/foreign ">|</mo></mrow></mrow><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">Number</mi><mo class = "- topic/foreign ">⁢</mo><mi class = "- topic/foreign ">of</mi><mo class = "- topic/foreign ">⁢</mo><mi class = "- topic/foreign ">dv</mi></mrow></mfrac><mo class = "- topic/foreign ">≤</mo><mi class = "- topic/foreign ">STOP_CRITERION_DV</mi></mrow></math></span></p>
</td>
</tr>
</tbody></table>

<p>where the index n is representing the present optimization iteration and is n-1 is the
previous iteration. When the criterion is lower than <code class = "ph codeph">STOP_CRITERION_DV</code>,
the stop criterion is fulfilled. The default for <code class = "ph codeph">STOP_CRITERION_DV</code> is
0.005. The value can be changed by the user; for example,</p>
<pre class = "codeblock">
<code class = "ph codeph">
OPT_PARAM
 ID_NAME           = opt_params
 OPTIMIZE          = id_of_optimize
 STOP_CRITERION_DV = 0.0001
END_
</code></pre>
</div>


<div class = "section" id = "tso-c-usr-shape-stop-ConvCrit__tso-c-usr-TopOpt-stop-ConvergenceCriteria"><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">Convergence Criteria</h2>


<p>By default, the stop criterion measuring the change in the objective function
and the criterion measuring the change in the design variables should both be fulfilled before the optimization
algorithm stops. To specify that just one of the criteria must be
fulfilled, set <code class = "ph codeph">STOP_CRITERION_LEVEL</code> equal to <code class = "ph codeph">SINGLE</code>.
The default value for <code class = "ph codeph">STOP_CRITERION_LEVEL is BOTH</code>.</p>
<p>In the example below, the optimization algorithm should stop when just one of the criteria
is fulfilled</p>
<pre class = "codeblock">
<code class = "ph codeph">
OPT_PARAM
 ID_NAME              = opt_params
 OPTIMIZE             = id_of_optimize
 STOP_CRITERION_LEVEL = SINGLE
END_
</code>
</pre>
</div>


<div class = "section" id = "tso-c-usr-shape-stop-ConvCrit__tso-c-usr-TopOpt-stop-EnhanceConvCriteria"><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">Enhanced Convergence Criteria</h2>


<p>
For shape optimization, typical stop conditions can be defined more
directly by an enhanced stop command:</p>
<pre class = "codeblock">
<code class = "ph codeph">
STOP
 ID_NAME  = stop_command
 MOD_NDGR = &lt;name_of_node_group&gt;
 MOD_TYPE = &lt;mod_type_1&gt;, &lt;mod_type_2&gt;
 MOD_OPER = &lt;Comparison operator&gt;
 MOD_REF  = &lt;real&gt;, &lt;mod_ref_1&gt;, &lt;mod_ref_2&gt;
 OPTIMIZE = &lt;name_of_optimization&gt;
END_
</code>
</pre>
<p> For details about the parameters, see <a class = "xref" href = "../TsoCmdMap/tso-r-cmd-stop.htm#tso-r-cmd-stop" title = "Definition of STOP conditions.">STOP</a>.</p>
<p>
Using this enhanced stop command, the extraction of variables and
their logical comparison is performed internally by <span class = "ph">SIMULIA Tosca Structure</span>
and need no longer be specified manually by the user. For a detailed
description of the several items, refer to the commands manual.</p>
</div>


<div class = "section" id = "tso-c-usr-shape-stop-ConvCrit__tso-c-usr-TopOpt-stop-SICC"><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">Start Iteration for Convergence Check</h2>

<p>The two convergence criteria above are not checked before a specified number of optimization
iterations have been executed. This means that the optimization will always be executed
until <code class = "ph codeph">STOP_CRITERION_ITER</code> is reached. The number is set by the number of
<code class = "ph codeph">STOP_CRITERION_ITER</code>. To change <code class = "ph codeph">STOP_CRITERION_ITER</code> to,
for example, 10, the following commands could be used: </p>
<pre class = "codeblock">
<code class = "ph codeph">
OPT_PARAM
 ID_NAME             = opt_params
 OPTIMIZE            = id_of_optimize
 STOP_CRITERION_ITER = 10
END_
</code>
</pre>
<p>The default value for
<code class = "ph codeph">STOP_CRITERION_ITER</code> is 4. Note that
<code class = "ph codeph">STOP_CRITERION_ITER</code> must be greater than 2.
</p>
</div>

  
<div class = "section" id = "tso-c-usr-shape-stop-ConvCrit__tso-c-usr-shape-stop-example1"><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">Example 1:</h2>

<p>The stop condition is fulfilled, if the maximum equivalence stress
in the node group <code class = "ph codeph">ALL_NODES</code> is less than 1% of the maximum
equivalence 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 = run
END_
</code>
</pre>
</div>


</div>

<div class = "related-links"/>

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