<?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 = "description" content = "In topology optimization, each relative material volume is constrained by a lower and an upper bound."/><meta name = "DC.relation" scheme = "URI" content = "../TsoCmdMap/tso-r-cmd-optParam.htm#tso-r-cmd-optParam"/><meta name = "DC.format" content = "HTML5"/><meta name = "DC.identifier" content = "tso-c-user-TopOpt-Sett-Sensi-LimDesCha"/><meta name = "DC.language" content = "en"/><link rel = "stylesheet" type = "text/css" href = "../DSDocUI_XML34.css"/><title>Limits for Design Variables and Changes</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-user-TopOpt-Sett-Sensi-LimDesCha">
<a name = "hj-top"> </a><table class = "table1" id = "table11"><tr><td><table class = "DocHeader"><tr><td class = "DocHeader1" colspan = "2"><h1>Limits for Design Variables and Changes</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 = "shortdesc">In topology optimization, each relative material volume is constrained
by a lower and an upper bound.
</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 = "Defines parameters to control optimization." href = "../TsoCmdMap/tso-r-cmd-optParam.htm#tso-r-cmd-optParam">OPT_PARAM</a></td></tr></table></td></tr></table>
  

  

  <div class = "body conbody">
    <p>The bound is defined as follows:</p>
<table class = "table" id = "tso-c-user-TopOpt-Sett-Sensi-LimDesCha__ag570999"><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 "><mn class = "- topic/foreign ">0</mn><mo class = "- topic/foreign ">&lt;</mo><mi class = "- topic/foreign ">D</mi><mi class = "- topic/foreign ">E</mi><mi class = "- topic/foreign ">N</mi><mi class = "- topic/foreign ">S</mi><mi class = "- topic/foreign ">I</mi><mi class = "- topic/foreign ">T</mi><mi class = "- topic/foreign ">Y</mi><mi class = "- topic/foreign ">_</mi><mi class = "- topic/foreign ">L</mi><mi class = "- topic/foreign ">O</mi><mi class = "- topic/foreign ">W</mi><mi class = "- topic/foreign ">E</mi><mi class = "- topic/foreign ">R</mi><mo class = "- topic/foreign ">≤</mo><mi class = "- topic/foreign ">ρ</mi><mo class = "- topic/foreign ">≤</mo><mi class = "- topic/foreign ">D</mi><mi class = "- topic/foreign ">E</mi><mi class = "- topic/foreign ">N</mi><mi class = "- topic/foreign ">S</mi><mi class = "- topic/foreign ">I</mi><mi class = "- topic/foreign ">T</mi><mi class = "- topic/foreign ">Y</mi><mi class = "- topic/foreign ">_</mi><mi class = "- topic/foreign ">U</mi><mi class = "- topic/foreign ">P</mi><mi class = "- topic/foreign ">P</mi><mi class = "- topic/foreign ">E</mi><mi class = "- topic/foreign ">R</mi><mo class = "- topic/foreign ">≤</mo><mn class = "- topic/foreign ">1</mn></mrow></math></span></p></td>
</tr>
</tbody></table>

<p>By default, the lower bound is set to 0.001 and the upper bound is
set to 1 in order to avoid the global stiffness matrix to become singular. You  can change these bounds using the commands <code class = "ph codeph">DENSITY_LOWER</code>
and <code class = "ph codeph">DENSITY_UPPER</code>, respectively. An example is:</p>
<pre class = "codeblock">
<code class = "ph codeph">OPT_PARAM
 ID_NAME       = opt_params
 OPTIMIZE      = id_of_optimize
 DENSITY_LOWER = 0.01
 DENSITY_UPPER = 1.00
END_
</code></pre>
<table class = "Remark" id = "table132"><tr><td class = "Remark"><span class = "run-in.important">Important:
				</span><span class = "notecontent"><p>Changing the bounds is not recommended. Especially, an upper bound other
than 1 is critical. The lower bound can be increased if the default value
is likely to lead to a nearly singular stiffness matrix.</p></span></td></tr></table>
<p><div class = "note collapse"><span class = "run-in.note">Note:
    		</span><span class = "notecontent"><p><ul class = "ul" id = "tso-c-user-TopOpt-Sett-Sensi-LimDesCha__ul_06595566163347CDAFC7505D4E7E39A4">
<li class = "li"><code class = "ph codeph">DENSITY_LOWER</code> should always be greater than zero and
<code class = "ph codeph">DENSITY_LOWER</code> should be lower than <code class = "ph codeph">DENSITY_UPPER</code>.</li>
<li class = "li"><code class = "ph codeph">DENSITY_UPPER</code> should always be lower or equal to
one.</li>
</ul></p></span></div>
</p>


<p>In addition, in the sensitivity-based topology optimization, the maximal
relative material volume change in one iteration is defined:</p>
<table class = "table" id = "tso-c-user-TopOpt-Sett-Sensi-LimDesCha__ag570574"><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 "><mi class = "- topic/foreign ">D</mi><mi class = "- topic/foreign ">E</mi><mi class = "- topic/foreign ">N</mi><mi class = "- topic/foreign ">S</mi><mi class = "- topic/foreign ">I</mi><mi class = "- topic/foreign ">T</mi><mi class = "- topic/foreign ">Y</mi><mi class = "- topic/foreign ">_</mi><mi class = "- topic/foreign ">L</mi><mi class = "- topic/foreign ">O</mi><mi class = "- topic/foreign ">W</mi><mi class = "- topic/foreign ">E</mi><mi class = "- topic/foreign ">R</mi><mo class = "- topic/foreign ">≤</mo><mi class = "- topic/foreign ">ρ</mi><mo class = "- topic/foreign ">−</mo><mi class = "- topic/foreign ">D</mi><mi class = "- topic/foreign ">E</mi><mi class = "- topic/foreign ">N</mi><mi class = "- topic/foreign ">S</mi><mi class = "- topic/foreign ">I</mi><mi class = "- topic/foreign ">T</mi><mi class = "- topic/foreign ">Y</mi><mi class = "- topic/foreign ">_</mi><mi class = "- topic/foreign ">M</mi><mi class = "- topic/foreign ">O</mi><mi class = "- topic/foreign ">V</mi><mi class = "- topic/foreign ">E</mi><mo class = "- topic/foreign ">≤</mo><mi class = "- topic/foreign ">ρ</mi></mrow></math></span></p><p><span class = "ph inlineequation"><math class = "- topic/foreign "><mrow class = "- topic/foreign "><mtext class = "- topic/foreign "> </mtext><mtext class = "- topic/foreign "> </mtext><mtext class = "- topic/foreign "> </mtext><mtext class = "- topic/foreign "> </mtext><mtext class = "- topic/foreign "> </mtext><mtext class = "- topic/foreign "> </mtext><mtext class = "- topic/foreign "> </mtext><mtext class = "- topic/foreign "> </mtext><mtext class = "- topic/foreign "> </mtext><mtext class = "- topic/foreign "> </mtext><mtext class = "- topic/foreign "> </mtext><mtext class = "- topic/foreign "> </mtext><mtext class = "- topic/foreign "> </mtext><mtext class = "- topic/foreign "> </mtext><mtext class = "- topic/foreign "> </mtext><mtext class = "- topic/foreign "> </mtext><mtext class = "- topic/foreign "> </mtext><mtext class = "- topic/foreign "> </mtext><mtext class = "- topic/foreign "> </mtext><mtext class = "- topic/foreign "> </mtext><mtext class = "- topic/foreign "> </mtext><mtext class = "- topic/foreign "> </mtext><mtext class = "- topic/foreign "> </mtext><mtext class = "- topic/foreign "> </mtext><mi class = "- topic/foreign ">ρ</mi><mo class = "- topic/foreign ">≤</mo><mi class = "- topic/foreign ">ρ</mi><mo class = "- topic/foreign ">+</mo><mi class = "- topic/foreign ">D</mi><mi class = "- topic/foreign ">E</mi><mi class = "- topic/foreign ">N</mi><mi class = "- topic/foreign ">S</mi><mi class = "- topic/foreign ">I</mi><mi class = "- topic/foreign ">T</mi><mi class = "- topic/foreign ">Y</mi><mi class = "- topic/foreign ">_</mi><mi class = "- topic/foreign ">M</mi><mi class = "- topic/foreign ">O</mi><mi class = "- topic/foreign ">V</mi><mi class = "- topic/foreign ">E</mi><mo class = "- topic/foreign ">≤</mo><mi class = "- topic/foreign ">D</mi><mi class = "- topic/foreign ">E</mi><mi class = "- topic/foreign ">N</mi><mi class = "- topic/foreign ">S</mi><mi class = "- topic/foreign ">I</mi><mi class = "- topic/foreign ">T</mi><mi class = "- topic/foreign ">Y</mi><mi class = "- topic/foreign ">_</mi><mi class = "- topic/foreign ">U</mi><mi class = "- topic/foreign ">P</mi><mi class = "- topic/foreign ">P</mi><mi class = "- topic/foreign ">E</mi><mi class = "- topic/foreign ">R</mi><mo class = "- topic/foreign ">⁢</mo><mtext class = "- topic/foreign "> </mtext><mtext class = "- topic/foreign "> </mtext><mtext class = "- topic/foreign "> </mtext></mrow></math></span></p></td>
</tr>
</tbody></table>

<p>The reason for the change limit is that the sensitivity-based optimization
algorithm approximates the design responses around the actual design
response values using the sensitivities. These approximations are only
valid in a small range of design variables, thus the variation of the
relative material values should be limited.</p>
<p>Numerical experiments indicate that a value of 0.25 for the change
limit is usually acceptable. However, one can set the limit to, for example,
0.4 using the parameter <code class = "ph codeph">DENSITY_MOVE:</code></p>
<pre class = "codeblock">
<code class = "ph codeph">OPT_PARAM
</code><code class = "ph codeph"> ID_NAME = opt_params
</code><code class = "ph codeph"> OPTIMIZE = id_of_optimize

 DENSITY_MOVE = 0.4
</code><code class = "ph codeph">END_
</code></pre>
<p>The default value of <code class = "ph codeph">DENSITY_MOVE</code> is 0.25. A low change
limit (such as 0.1) is recommended for complicated design responses and
optimization formulations. However, a lower change limit most often
leads to a higher number of optimization iterations.</p>
  </div>


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