<?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 = "This section describes the theory of compliance optimization."/><meta name = "description" content = "This section describes the theory of compliance optimization."/><meta name = "DC.format" content = "HTML5"/><meta name = "DC.identifier" content = "tso-c-usr-terms-complianceOvw"/><meta name = "DC.language" content = "en"/><link rel = "stylesheet" type = "text/css" href = "../DSDocUI_XML34.css"/><title>Overview of Compliance</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-terms-complianceOvw">
<a name = "hj-top"> </a><table class = "table1" id = "table11"><tr><td><table class = "DocHeader"><tr><td class = "DocHeader1" colspan = "2"><h1>Overview of Compliance</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">This section describes the theory of compliance optimization. </span>

</p>
<ul><li><a href = "#tso-c-usr-terms-complianceOvw__tso-c-usr-terms-complianceOvw-anaType" id = "toc_rg" title = "">Analysis Types: Static Linear or Nonlinear Analysis</a></li></ul>
</p></td></tr></table></td></tr></table>




<div class = "body conbody">
<table class = "table" id = "tso-c-usr-terms-complianceOvw__xx923233"><caption/><colgroup><col/><col/></colgroup><thead class = "thead">
<tr class = "row">
<th class = "entry" id = "tso-c-usr-terms-complianceOvw__xx923233__entry__1"><p>Parameter Name</p></th>
<th class = "entry" id = "tso-c-usr-terms-complianceOvw__xx923233__entry__2"><p>Formula</p></th>
</tr>
</thead><tbody class = "tbody">
<tr class = "row">
<td class = "entry" headers = "tso-c-usr-terms-complianceOvw__xx923233__entry__1"><p>STRAIN_ENERGY</p></td>
<td class = "entry" headers = "tso-c-usr-terms-complianceOvw__xx923233__entry__2"><span class = "ph inlineequation"><math class = "- topic/foreign "><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">c</mi><mo class = "- topic/foreign ">=</mo><mo class = "- topic/foreign ">∑</mo><msup class = "- topic/foreign "><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">u</mi></mrow><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">T</mi></mrow></msup><mi class = "- topic/foreign ">K</mi><mi class = "- topic/foreign ">u</mi></mrow></math></span></td>
</tr>
<tr class = "row">
<td class = "entry" headers = "tso-c-usr-terms-complianceOvw__xx923233__entry__1"><p>STRAIN_ENERGY_DENSITY</p></td>
<td class = "entry" headers = "tso-c-usr-terms-complianceOvw__xx923233__entry__2"><span class = "ph inlineequation"><math class = "- topic/foreign "><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">c</mi><mo class = "- topic/foreign ">=</mo><mfrac class = "- topic/foreign "><mrow class = "- topic/foreign "><mn class = "- topic/foreign ">1</mn></mrow><mrow class = "- topic/foreign "><mn class = "- topic/foreign ">2</mn><mi class = "- topic/foreign ">V</mi></mrow></mfrac><msup class = "- topic/foreign "><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">u</mi></mrow><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">T</mi></mrow></msup><mi class = "- topic/foreign ">K</mi><mi class = "- topic/foreign ">u</mi></mrow></math></span></td>
</tr>
</tbody></table>

<div class = "section" id = "tso-c-usr-terms-complianceOvw__tso-c-usr-terms-complianceOvw-anaType"><h2 class = "title sectiontitle">Analysis Types: Static Linear or Nonlinear Analysis</h2>

<table class = "table" id = "tso-c-usr-terms-complianceOvw__table_3094DA4397234DDBB1E55ABFA020A64A"><caption/><colgroup><col style = "width:100%"/></colgroup><tbody class = "tbody">
<tr class = "row">
<td class = "entry"><span class = "ph inlineequation"><math class = "- topic/foreign "><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">K</mi><mi class = "- topic/foreign ">u</mi><mo class = "- topic/foreign ">=</mo><mi class = "- topic/foreign ">F</mi></mrow></math></span></td>
</tr>
</tbody></table>

<p> where K might be linear or nonlinear.</p>
<p>For compliance, the following table shows the allowed combinations between the strategy and the items <code class = "ph codeph">OBJ_FUNC</code> and <code class = "ph codeph">CONSTRAINT</code>.</p>
<table class = "table" id = "tso-c-usr-terms-complianceOvw__xx869351"><caption/><colgroup><col/><col/><col/><col/><col/></colgroup><thead class = "thead">
<tr class = "row">
<th class = "entry" id = "tso-c-usr-terms-complianceOvw__xx869351__entry__1"/>
<th class = "entry" id = "tso-c-usr-terms-complianceOvw__xx869351__entry__2"><p>TOPO</p></th>
<th class = "entry" id = "tso-c-usr-terms-complianceOvw__xx869351__entry__3"><p>SHAPE</p></th>
<th class = "entry" id = "tso-c-usr-terms-complianceOvw__xx869351__entry__4"><p>BEAD</p></th>
<th class = "entry" id = "tso-c-usr-terms-complianceOvw__xx869351__entry__5"><p>SIZING</p></th>
</tr>
</thead><tbody class = "tbody">
<tr class = "row">
<td class = "entry" headers = "tso-c-usr-terms-complianceOvw__xx869351__entry__1"><p>OBJ_FUNC</p></td>
<td class = "entry" headers = "tso-c-usr-terms-complianceOvw__xx869351__entry__2"><p>C*,S*</p></td>
<td class = "entry" headers = "tso-c-usr-terms-complianceOvw__xx869351__entry__3"><p>C**, S</p></td>
<td class = "entry" headers = "tso-c-usr-terms-complianceOvw__xx869351__entry__4"><p>C,S</p></td>
<td class = "entry" headers = "tso-c-usr-terms-complianceOvw__xx869351__entry__5"><p>S</p></td>
</tr>
<tr class = "row">
<td class = "entry" headers = "tso-c-usr-terms-complianceOvw__xx869351__entry__1"><p>CONSTRAINT</p></td>
<td class = "entry" headers = "tso-c-usr-terms-complianceOvw__xx869351__entry__2"><p>S*</p></td>
<td class = "entry" headers = "tso-c-usr-terms-complianceOvw__xx869351__entry__3"><p>S</p></td>
<td class = "entry" headers = "tso-c-usr-terms-complianceOvw__xx869351__entry__4"><p>S</p></td>
<td class = "entry" headers = "tso-c-usr-terms-complianceOvw__xx869351__entry__5"><p>S</p></td>
</tr>
</tbody></table>

<p>
Where <span class = "ph uicontrol">C</span> indicates that compliance design responses are usable
for controller-based optimization and <span class = "ph uicontrol">S</span> indicates that it is
usable for sensitivity-based optimization. <span class = "ph uicontrol">C*</span> and
<span class = "ph uicontrol">S*</span> say that nonlinearities as well as temperature loading
is allowed. For <code class = "ph codeph">STRAIN_ENERGY_DENSITY</code>, only the entries with
<span class = "ph uicontrol">**</span> are relevant.
</p>
<p>
Compliance has a large popularity within scientific publications, and compliance is
of large importance in engineering applications even though the expression might not
be widely known outside the optimization community. Compliance might be expressed as
the overall flexibility or “softness” of a structure given by the sum of elastic or
strain energy in a structure. Thus, compliance can be seen as a stiffness measure or
more correctly the reciprocal of stiffness.
</p>
<p>
To maximize the global stiffness, we therefore minimize compliance. Compliance is
defined in <span class = "ph">Tosca Structure</span> by the sum of strain energy of all elements.
</p>

<span class = "ph uicontrol">Remarks:</span>
<ol class = "ol">
<li class = "li">
In certain cases, including prescribed displacements or thermal fields
"minimizing compliance" will result in a stiff structure. If a <span class = "ph">load case</span>
is driven by prescribed displacements or a thermal field, the elastic
energy / compliance will only decrease if the structure is made softer.
If only prescribed displacements are present without external loading,
the strain energy should be maximized to obtain optimal results:
<span class = "ph inlineequation"><math class = "- topic/foreign "><mtext class = "- topic/foreign ">max </mtext><mfenced open = "(" close = ")" separators = "" class = "- topic/foreign "><mfrac class = "- topic/foreign "><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">R</mi><mo class = "- topic/foreign ">⋅</mo><msup class = "- topic/foreign "><mi class = "- topic/foreign ">u</mi><mo class = "- topic/foreign ">*</mo></msup></mrow><mrow class = "- topic/foreign "><mn class = "- topic/foreign ">2</mn></mrow></mfrac></mfenced></math></span>
with R = reaction force and u* = nodal prescribed displacements. If both external
loading and prescribed displacements are present, a new energy stiffness measure is introduced.
The "standard" strain energy does not lead to optimal results:
<span class = "ph inlineequation"><math class = "- topic/foreign "><mfrac class = "- topic/foreign "><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">P</mi><mo class = "- topic/foreign ">⋅</mo><mi class = "- topic/foreign ">u</mi></mrow><mrow class = "- topic/foreign "><mn class = "- topic/foreign ">2</mn></mrow></mfrac><mo class = "- topic/foreign ">+</mo><mfrac class = "- topic/foreign "><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">R</mi><mo class = "- topic/foreign ">⋅</mo><msup class = "- topic/foreign "><mi class = "- topic/foreign ">u</mi><mo class = "- topic/foreign ">*</mo></msup></mrow><mrow class = "- topic/foreign "><mn class = "- topic/foreign ">2</mn></mrow></mfrac></math></span>
with P = external loading and u = corresponding nodal deflections of the loaded nodes.
</li>
<li class = "li">
Compliance is equal to the overall strain energy. Therefore, the strain
energy for all elements is required. Any other element group is not allowed,
because in such cases the optimization problems are not self-adjoint.
</li>
<li class = "li">
If no <code class = "ph codeph">LC_SET</code> is specified (no <span class = "ph">load case</span>
is selected from the existing <span class = "ph">load cases</span>)
<span class = "ph">Tosca Structure</span>
will always read the last substep for each <span class = "ph">load case</span>
in case of nonlinear loading.
</li>
</ol>
</div>

</div>

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