<?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 = "description" content = "This standard optimization task corresponding to maximizing the stiffness is defined as the minimization of the compliance that is the reciprocal value of the stiffness."/><meta name = "DC.format" content = "HTML5"/><meta name = "DC.identifier" content = "tso-t-user-TopOpt-StaAna-MinComplVolCon"/><meta name = "DC.language" content = "en"/><link rel = "stylesheet" type = "text/css" href = "../DSDocUI_XML34.css"/><title>Minimizing Compliance under Volume Constraint</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-t-user-TopOpt-StaAna-MinComplVolCon">
<a name = "hj-top"> </a><table class = "table1" id = "table11"><tr><td><table class = "DocHeader"><tr><td class = "DocHeader1" colspan = "2"><h1>Minimizing Compliance under Volume Constraint </h1></td></tr><tr><td class = "DocHeader4" colspan = "2"/></tr><tr><td class = "DocHeader3" colspan = "2"><table class = "DocThemeIntro" id = "table12"><tr><td class = "Intro1"><p class = "shortdesc">This standard optimization task corresponding to maximizing the
stiffness is defined as the minimization of the compliance that is
the reciprocal value of the stiffness.

</p></td></tr><tr><td class = "Intro2"><hr class = "header"/><span class = "run-in-beforeyoubegin">Before you begin: </span><p>The optimization problem can be solved with the controller-based approach
(which needs about 15 iterations to solve the problem) and with the sensitivity
approach (where the number of iterations is not previously known).</p><p>The controller-based approach works with equality constraints, so
that the problem looks like: </p><table class = "table" id = "tso-t-user-TopOpt-StaAna-MinComplVolCon__ag581239"><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 ">min</mi><mo class = "- topic/foreign ">⁡</mo><mo class = "- topic/foreign ">(</mo><mstyle displaystyle = "false" class = "- topic/foreign "><mrow class = "- topic/foreign "><munder class = "- topic/foreign "><mo class = "- topic/foreign ">∑</mo><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">i</mi><mo class = "- topic/foreign ">=</mo><mn class = "- topic/foreign ">1</mn><mo class = "- topic/foreign ">,</mo><mi class = "- topic/foreign ">n</mi></mrow></munder><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">U</mi></mrow></mrow></mstyle><mo class = "- topic/foreign ">)</mo></mrow></math></span></p><p><span class = "ph inlineequation"><math class = "- topic/foreign "><mrow class = "- topic/foreign "><mstyle displaystyle = "false" class = "- topic/foreign "><mrow class = "- topic/foreign "><munder class = "- topic/foreign "><mrow class = "- topic/foreign "><mo class = "- topic/foreign ">∑</mo></mrow><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">i</mi><mo class = "- topic/foreign ">=</mo><mn class = "- topic/foreign ">1</mn><mo class = "- topic/foreign ">,</mo><mi class = "- topic/foreign ">n</mi></mrow></munder><mtext class = "- topic/foreign "> </mtext><mtext class = "- topic/foreign "> </mtext><mtext class = "- topic/foreign "> </mtext><mi class = "- topic/foreign ">V</mi><mi class = "- topic/foreign ">o</mi><mi class = "- topic/foreign ">l</mi><mo class = "- topic/foreign ">⁢</mo><mo class = "- topic/foreign ">=</mo><mi class = "- topic/foreign ">v</mi><mi class = "- topic/foreign ">o</mi><mi class = "- topic/foreign ">l</mi><mi class = "- topic/foreign ">_</mi><mi class = "- topic/foreign ">r</mi><mi class = "- topic/foreign ">e</mi><mi class = "- topic/foreign ">s</mi><mi class = "- topic/foreign ">t</mi><mi class = "- topic/foreign ">r</mi><mi class = "- topic/foreign ">i</mi><mi class = "- topic/foreign ">c</mi><mi class = "- topic/foreign ">t</mi></mrow></mstyle></mrow></math></span></p></td>
</tr>
</tbody></table><p>with U being the strain energy, Vol the element volume and vol_restrict
the value of the volume constraint.</p></td></tr></table></td></tr></table>
  

  
<div class = "body taskbody">
    
<div class = "p"><!--xxx--></div>

    
<section><ol class = "ol steps"><li class = "li step stepexpand">
Define two design responses in order to set up the optimization problem:
<ul class = "ul choices"><li class = "li choice"> The design response for the sum of the strain energy over all elements
(if not all elements are selected, then the problem will not represent
the maximization of the total stiffness).</li></ul><ul class = "ul choices"><li class = "li choice">The design response for the relative volume defined as the sum of
volumes of elements multiplied with their relative densities and divided
through the original volume.</li></ul>
      </li><li class = "li step stepexpand">Use the strain energy as an objective function term. <p/></li><li class = "li step stepexpand">The
answer to the question whether to minimize or to maximize the sum of
the strain energy depends on the loading types and boundary conditions,
respectively:<ul class = "ul choices"><li class = "li choice"> If the loads for the model are applied as external forces
or pressure, then the objective function must be minimized.</li><li class = "li choice">If only
prescribed displacements are assigned and no external forces, then
the objective function must be maximized.</li><li class = "li choice">If simultaneously prescribed
displacements and external loadings are assigned, a new energy stiffness
measure <code class = "ph codeph">ENERGY_STIFF_MEASURE</code> is available for stiffness optimization using sensitivity-based
topology optimization. </li></ul><p>For more information, see <a class = "xref" href = "tso-m-usr-terms-dresps-enStiffMsr-sb.htm#tso-m-usr-terms-dresps-enStiffMsr-sb" title = "ENERGY_STIFF_MEASURE describes a stiffness measure without physical meaning for handling of prescribed displacement in stiffness optimization.">Energy Stiffness Measure</a>.</p></li><li class = "li step stepexpand">Use the relative material volume in the equality constraint. <div class = "itemgroup stepresult">This leads to an optimization resulting the stiffest model that has the specified
material volume (and thus weight). Without the constraint, the stiffest
structure will use as much material as possible.</div></li></ol></section>
<p class = "result"><p><table class = "Remark" id = "table132"><tr><td class = "Remark"><span class = "run-in.important">Important:
				</span><span class = "notecontent">The same optimization task can be solved using the sensitivity-based topology
optimization. Then, the relative material volume constraint should be
set to "less or equal", that is, the <code class = "ph codeph">LE_VALUE</code> parameter should be used instead
of <code class = "ph codeph">EQ_VALUE</code> parameter.</span></td></tr></table>
 </p></p>
<section class = "example"><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"><span class = "ph">SIMULIA Tosca Structure</span> Parameter File</h2>
<p>The commands in the parameter file for this problem look like:</p><pre class = "codeblock">
<code class = "ph codeph">
DRESP
 ID_NAME        = DRESP_SUM_ENERGY
 DEF_TYPE       = SYSTEM
 TYPE           = STRAIN_ENERGY
 UPDATE         = EVER
 EL_GROUP       = ALL_ELEMENTS
 GROUP_OPER     = SUM
END_

DRESP
 ID_NAME        = DRESP_VOL_TOPO
 DEF_TYPE       = SYSTEM
 TYPE           = VOLUME
 UPDATE         = EVER
 EL_GROUP       = ALL_ELEMENTS
 GROUP_OPER     = SUM
END_

OBJ_FUNC
 ID_NAME        = maximize_stiffness
 DRESP          = DRESP_SUM_ENERGY
 TARGET         = MIN
END_

CONSTRAINT
 ID_NAME        = volume_constraint
 DRESP          = DRESP_VOL_TOPO
 MAGNITUDE      = REL
 EQ_VALUE       = 0.45
END_

OPTIMIZE
 ID_NAME        = topology_optimization
 DV             = design_variables
 OBJ_FUNC       = maximize_stiffness
 CONSTRAINT     = volume_constraint
 STRATEGY       = TOPO_CONTROLLER
END_
</code>
</pre>
</section></div>


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