<?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 = "The SOFT_DELETE option offers the possibility of removing soft elements based on different criteria."/><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-RemSoft"/><meta name = "DC.language" content = "en"/><link rel = "stylesheet" type = "text/css" href = "../DSDocUI_XML34.css"/><title>Removing Soft Elements for Increasing Performance (SOFT_DELETE)</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-RemSoft">
<a name = "hj-top"> </a><table class = "table1" id = "table11"><tr><td><table class = "DocHeader"><tr><td class = "DocHeader1" colspan = "2"><h1>Removing Soft Elements for Increasing Performance (SOFT_DELETE)</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">
The <code class = "ph codeph">SOFT_DELETE</code> option offers the possibility of removing
soft elements based on different criteria.
<p>This page discusses: </p><ul><li><a href = "#tso-c-user-TopOpt-Sett-Sensi-RemSoft-NE" id = "toc_rg" title = "">SOFT_DELETE Based on Neighboring Elements</a></li><li><a href = "#tso-c-user-TopOpt-Sett-Sensi-RemSoft-MaxShearS" id = "toc_rg" title = "">SOFT_DELETE Based on Maximum Elemental Shear Strain</a></li><li><a href = "#tso-c-user-TopOpt-Sett-Sensi-RemSoft-MinPS" id = "toc_rg" title = "">SOFT_DELETE Based on Minimum Elemental Principal Strain</a></li><li><a href = "#tso-c-user-TopOpt-Sett-Sensi-RemSoft-MaxEStrain" id = "toc_rg" title = "">SOFT_DELETE Based on Maximum Plastic Strain</a></li><li><a href = "#tso-c-user-TopOpt-Sett-Sensi-RemSoft-RVC" id = "toc_rg" title = "">SOFT_DELETE Based on Relative Volume Compression</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 = "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>During a topology optimization process, the given mass is distributed
within the design area. At the end of the optimization, the resulting
structure consists of hard (filled) and soft (void) elements. The soft
elements have a negligible influence on the stiffness of the resulting
structure but they are still relevant for the number of degrees of freedom
of the structure. </p>
<p>In <span class = "ph">Tosca Structure</span>,
the <code class = "ph codeph">SOFT_DELETE</code> option offers the possibility of removing
soft elements based on different criteria. The free nodes are also removed
from the calculation model. The deleted elements are reactivated if required,
in case that the force flow changes during the optimization. Mesh of a
bending beam with hard (red) and soft (blue) elements (The elements in the
holes have been deleted by <code class = "ph codeph">SOFT_DELETE</code> algorithm) is presented in the following figure.</p>
<table class = "table" id = "tso-c-user-TopOpt-Sett-Sensi-RemSoft__ag746389"><caption/><colgroup><col/></colgroup><tbody class = "tbody">
<tr class = "row">
<td class = "entry"><br/><img class = "image" id = "tso-c-user-TopOpt-Sett-Sensi-RemSoft__image_CCB273E19EF7472980BFF23E0C8ECD6A" src = "../TsoUserImages/topo_beam_hard_soft.png" width = "363" height = "121"/><br/></td>
</tr>
</tbody></table>
<p><table class = "Remark" id = "table132"><tr><td class = "Remark"><span class = "run-in.important">Important:
				</span><span class = "notecontent">
<ul class = "ul">
<li class = "li">
<code class = "ph codeph">SOFT_DELETE</code> is turned on after the 5th
iteration, and only if the relative change of the objective is less than a certain
limit. This is done to prevent unstable configurations that might occur in the first
iterations from remaining unchanged.
</li>
<li class = "li">
<code class = "ph codeph">SOFT_DELETE</code> can be used to stabilize
geometrically nonlinear models where solver instabilities can occur due to degenerated
or fully collapsed void elements.
</li>
</ul>
</span></td></tr></table>
</p>
</div>


<div class = "related-links"/><article class = "topic concept nested1" aria-labelledby = "ariaid-title2" id = "tso-c-user-TopOpt-Sett-Sensi-RemSoft-NE"><h2 class = "title topictitle2">SOFT_DELETE Based on Neighboring Elements</h2>

<div class = "body conbody">
<p>
This option offers the possibility of removing soft elements
which only have soft neighboring elements. To use this feature, an element
group must be specified. If any of the elements enclosed in the sphere
spanned by the &lt;<code class = "ph codeph">radius</code>&gt; has a relative density higher
than the &lt;<code class = "ph codeph">threshold</code>&gt;, the element in origin will
not be deleted. This method is activated as follows:
</p>
<pre class = "codeblock"><code class = "ph codeph">
OPT_PARAM
  ID_NAME              = optimization_control
  OPTIMIZE             = id_of_optimize
  ...
  SOFT_DELETE          = &lt;element_group&gt;, &lt;radius&gt;
  SOFT_DELETE_METHOD   = STANDARD ( AGGRESSIVE ), <span class = "ph">&lt;threshold&gt;</span>
  ...
END_
</code></pre>

<p>
For <code class = "ph codeph">SOFT_DELETE_METHOD = STANDARD</code>, removal of elements is done ensuring that there are no detached and floating elements caused by the soft delete.
For <code class = "ph codeph">SOFT_DELETE_METHOD = AGGRESSIVE</code>, removal of elements is done based on the relative density without detachment checks.
In this case, detached and floating elements can be caused by the soft delete.
</p>
<p><table class = "Remark" id = "table132"><tr><td class = "Remark"><span class = "run-in.important">Important:
				</span><span class = "notecontent">
<ul class = "ul">
<li class = "li">Some solvers have problems dealing with such elements, but not the <span class = "ph">Abaqus</span> solver.</li>
<li class = "li">Check of elements in &lt;<code class = "ph codeph">radius</code>&gt; will still be performed but this procedure is independent of detachment checks.</li>
<li class = "li">An optional threshold can be defined. Default threshold for <code class = "ph codeph">SOFT_DELETE</code> using <code class = "ph codeph">STANDARD or AGGRESSIVE</code> is 0.05.</li>
<li class = "li">
For <code class = "ph codeph">SOFT_DELETE_METHOD = STANDARD</code> or <code class = "ph codeph">AGGRESSIVE</code>,
the default value of the &lt;<code class = "ph codeph">radius</code>&gt; is the average element edge length of the model.
If the &lt;<code class = "ph codeph">radius</code>&gt; is defined by the user, it is considered to be an absolute value.
This means that the corresponding units should be taken into account.
Changing the default value is only necessary if the sizes of mesh elements vary strongly.
</li>
<li class = "li">Post-processing must be performed on the original (complete) model.</li>
<li class = "li">
If it occurs that there is a group of hard elements
separated from the rest of the material by layers of
soft elements, these soft elements will not be
removed by <code class = "ph codeph">SOFT_DELETE </code> for
<code class = "ph codeph">SOFT_DELETE_METHOD = STANDARD</code>.
This is done to prevent solvers from being started
with inconsistent input files. In addition, some
soft elements might remain if they connect hard
elements that otherwise would be able to move with
respect to each other (that is, those that have a
common edge but not a common face).
</li>
</ul>
</span></td></tr></table>
</p>
</div>

</article>

<article class = "topic concept nested1" aria-labelledby = "ariaid-title3" id = "tso-c-user-TopOpt-Sett-Sensi-RemSoft-MaxShearS"><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 topictitle2">SOFT_DELETE Based on Maximum Elemental Shear Strain</h2>

<div class = "body conbody"><p>If the elements in the soft delete area are deleted based on the maximum elemental shear strain, the following must be defined:</p>
<pre class = "codeblock"><code class = "ph codeph">
OPT_PARAM
  .....
  SOFT_DELETE_METHOD   = MAX_SHEAR_STRAIN, &lt;t_shear&gt;
  SOFT_DELETE          = &lt;element_group&gt;
  .....
END_
</code></pre>
<p>Meaning if an individual element shear strain is larger than the threshold
&lt;t_shear&gt; then the element is removed. Traditionally, the shear
threshold &lt;t_shear&gt; for <code class = "ph codeph">MAX_SHEAR_STRAIN</code> is positive.
The threshold value must be set by the user. Default settings are not
available as the value strongly depends on different model parameters
(material properties).</p>
<p>In the following example, the elements having an elemental shear strain larger than 0.80 should
   be removed considering all elements in the structure:</p>
<pre class = "codeblock"><code class = "ph codeph">
OPT_PARAM
  .....
  SOFT_DELETE_METHOD   = MAX_SHEAR_STRAIN, 0.80
  SOFT_DELETE          = ALL_ELEMENTS
  .....
END_
</code></pre>
</div>

</article>

<article class = "topic concept nested1" aria-labelledby = "ariaid-title4" id = "tso-c-user-TopOpt-Sett-Sensi-RemSoft-MinPS">
<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 topictitle2">SOFT_DELETE Based on Minimum Elemental Principal Strain</h2>

<div class = "body conbody"><p>If the elements in the soft delete area are deleted based on the minimum elemental principal
        strain, the following must be defined:</p>
<pre class = "codeblock"><code class = "ph codeph">
OPT_PARAM
  .....
  SOFT_DELETE_METHOD   = MIN_PRINCIPAL_STRAIN, &lt;t_min_prin&gt;
  SOFT_DELETE          = &lt;element_group&gt;
  .....
END_
</code></pre>
<p>Meaning if an individual element minimal principal strain is lower
than the threshold <span class = "ph">&lt;t_min_prin&gt;</span> then the element is removed.</p>
<p>Traditionally, the minimum principal threshold <span class = "ph">&lt;t_min_prin&gt;</span> for 
<code class = "ph codeph">MIN_PRINICIPAL_STRAIN</code> is negative. The threshold value
must be set by the user. Default settings are not available as the value
strongly depends on different model parameters (material properties).</p>
<p>In the following example, the elements having an elemental minimal
principal strain lower than -0.80 should be removed considering all elements
in the structure:</p>
<pre class = "codeblock"><code class = "ph codeph">
OPT_PARAM
  .....
  SOFT_DELETE_METHOD   = MIN_PRINCIPAL_STRAIN, -0.80
  SOFT_DELETE          = ALL_ELEMENTS
  .....
END_
</code></pre>
</div>

</article>

<article class = "topic concept nested1" aria-labelledby = "ariaid-title5" id = "tso-c-user-TopOpt-Sett-Sensi-RemSoft-MaxEStrain">
<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 topictitle2">SOFT_DELETE Based on Maximum Plastic Strain</h2>

<div class = "body conbody">
<p>
If the elements in soft delete are deleted based on the maximum equivalent plastic strain
(<span class = "ph">Abaqus</span> equivalent: PEEQ),
the following must be defined in soft delete:
</p>
<pre class = "codeblock"><code class = "ph codeph">
OPT_PARAM
  .....
  SOFT_DELETE_METHOD   = PLASTICITY, &lt;t_plastic&gt;
  SOFT_DELETE          = &lt;element_group&gt;
  .....
END_
</code></pre>
<p>
Meaning if the equivalent plastic strain in an individual element is
higher than the threshold &lt;<code class = "ph codeph">t_plastic</code>&gt; then the element is removed.
</p>
<p>
Traditionally, the equivalent plastic strain threshold &lt;<code class = "ph codeph">t_plastic</code>&gt; is positive. The threshold value must be set
by the user. Default settings are not available as the value strongly
depends on different model parameters (material properties).
</p>
<p><table class = "Remark" id = "table132"><tr><td class = "Remark"><span class = "run-in.important">Important:
				</span><span class = "notecontent">
This option can only be used for the elastic-plastic constitutive material law.
</span></td></tr></table>
</p>
</div>

</article>

<article class = "topic concept nested1" aria-labelledby = "ariaid-title6" id = "tso-c-user-TopOpt-Sett-Sensi-RemSoft-RVC">
<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 topictitle2">SOFT_DELETE Based on Relative Volume Compression</h2>

<div class = "body conbody">
<p>
If the elements in soft delete are deleted based on the minimum relative deformed elemental volume, the following must be defined in soft delete:
</p>
<pre class = "codeblock"><code class = "ph codeph">
OPT_PARAM
  .....
  SOFT_DELETE_METHOD   = VOLUME_CHANGE, &lt;t_rel_vol&gt;
  SOFT_DELETE          = &lt;element_group&gt;
  .....
END_
</code></pre>
<p>If an individual relative deformed elemental volume</p>

<table class = "table" id = "tso-c-user-TopOpt-Sett-Sensi-RemSoft-RVC__ag746652"><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 "><msub class = "- topic/foreign "><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">V</mi></mrow><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">r</mi><mi class = "- topic/foreign ">e</mi><mi class = "- topic/foreign ">l</mi></mrow></msub><mo class = "- topic/foreign ">=</mo><mfrac class = "- topic/foreign "><mrow class = "- topic/foreign "><msub class = "- topic/foreign "><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">V</mi></mrow><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">d</mi><mi class = "- topic/foreign ">e</mi><mi class = "- topic/foreign ">f</mi><mi class = "- topic/foreign ">o</mi><mi class = "- topic/foreign ">r</mi><mi class = "- topic/foreign ">m</mi><mo class = "- topic/foreign ">−</mo><msub class = "- topic/foreign "><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">V</mi></mrow><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">o</mi><mi class = "- topic/foreign ">r</mi><mi class = "- topic/foreign ">g</mi></mrow></msub></mrow></msub></mrow><mrow class = "- topic/foreign "><msub class = "- topic/foreign "><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">V</mi></mrow><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">o</mi><mi class = "- topic/foreign ">r</mi><mi class = "- topic/foreign ">g</mi></mrow></msub></mrow></mfrac></mrow></math></span></p></td>
</tr>
</tbody></table>

<p>
with <span class = "ph inlineequation"><math class = "- topic/foreign "><mrow class = "- topic/foreign "><msub class = "- topic/foreign "><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">V</mi></mrow><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">o</mi><mi class = "- topic/foreign ">r</mi><mi class = "- topic/foreign ">g</mi></mrow></msub></mrow></math></span> =original elemental volume
and  <span class = "ph inlineequation"><math class = "- topic/foreign "><mrow class = "- topic/foreign "><msub class = "- topic/foreign "><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">V</mi></mrow><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">d</mi><mi class = "- topic/foreign ">e</mi><mi class = "- topic/foreign ">f</mi><mi class = "- topic/foreign ">o</mi><mi class = "- topic/foreign ">r</mi><mi class = "- topic/foreign ">m</mi></mrow></msub></mrow></math></span>= elemental volume in
deformed configuration is lower than the threshold <span class = "ph">&lt;t_rel_vol&gt;</span> then the element is removed.
</p>
<p>
Traditionally, the relative deformed elemental volume threshold
&lt;<code class = "ph codeph">t_rel_vol</code>&gt; for <code class = "ph codeph">VOLUME_CHANGE</code> is negative. The
threshold value must be set by the user. Default settings are not available.
</p>

<p><table class = "Remark" id = "table132"><tr><td class = "Remark"><span class = "run-in.important">Important:
				</span><span class = "notecontent">
<ul class = "ul">
<li class = "li">
Often the elemental strains cannot be written as results for shell and
membrane elements. Thus, the only option is to use <code class = "ph codeph">VOLUME_CHANGE</code>
for <code class = "ph codeph">SOFT_DELETE</code>.
</li>
<li class = "li">
For examples with very large deformation, soft delete seems to be
more stable using <code class = "ph codeph">VOLUME_CHANGE</code> instead of <code class = "ph codeph">MAX_SHEAR_STRAIN</code>
and <code class = "ph codeph">MIN_PRINCIPAL_STRAIN</code>.
</li>
<li class = "li">Normally, the strain measure used for the element removal depends on the element type.</li>
<li class = "li">Strain measure used for the element removal can depend upon the constitutive material modeling.</li>
<li class = "li">Finding a useful strain measure used for the element removal requires several optimization executions.</li>
<li class = "li">
The strains used in the strain measures for the
elemental removal are from the previous optimization iteration. Thus, it is
recommended to have a slow optimization iteration update of the design variables for
having consistency in the removal of the elements that can be obtained using the
following settings:
<pre class = "codeblock"><code class = "ph codeph">
OPT_PARAM
  .....
  DENSITY_UPDATE   = CONSERVATIVE
  DENSITY_MOVE     = 0.10
  .....
END_
</code></pre>
</li>
</ul>
</span></td></tr></table>
</p>

<p>
For each optimization iteration, the file TOSCA.OUT will contain information for the progress
regarding the <code class = "ph codeph">SOFT_DELETE</code>. This information can be rather useful for
choosing a correct value for the <code class = "ph codeph">SOFT_DELETE</code> with respect to strain
measure. For example, for <code class = "ph codeph">SOFT_DELETE_METHOD = MAX_SHEAR_STRAIN</code> the following
useful information can be found in TOSCA.OUT: 
</p>

<table class = "table" id = "tso-c-user-TopOpt-Sett-Sensi-RemSoft-RVC__ag764556"><caption/><colgroup><col/></colgroup><tbody class = "tbody">
<tr class = "row">
<td class = "entry"><br/><img class = "image" id = "tso-c-user-TopOpt-Sett-Sensi-RemSoft-RVC__image_55F4E7EFCDE846D3A5A90D1BAA5A012A" src = "../TsoUserImages/topo_soft_delete_shear_strain.png" width = "350"/><br/></td>
</tr>
</tbody></table>

<p>For example, for <code class = "ph codeph">SOFT_DELETE_METHOD = MIN_PRINCIPAL_STRAIN</code> the following useful information can be found in TOSCA.OUT:</p>

<table class = "table"><caption/><colgroup><col/></colgroup><tbody class = "tbody">
<tr class = "row">
<td class = "entry"><br/><img class = "image" id = "tso-c-user-TopOpt-Sett-Sensi-RemSoft-RVC__image_2F1D4E71C10147A0B4F8F5632A899186" src = "../TsoUserImages/topo_soft_delete_prin_strain.png" width = "350"/><br/></td>
</tr>
</tbody></table>

<p><table class = "Remark" id = "table132"><tr><td class = "Remark"><span class = "run-in.important">Important:
				</span><span class = "notecontent">
<ul class = "ul">
<li class = "li">
Finding the correct threshold for <code class = "ph codeph">SOFT_DELETE</code> may
require some trial and error. The threshold value for <code class = "ph codeph">MAX_SHEAR_STRAIN,
MIN_PRINCIPAL_STRAIN, PLASTICITY or VOLUME_CHANGE</code> must be
set explicitly by the user. Default settings are not available as the
value strongly depends on different model parameters (material properties).
</li>
<li class = "li">
Using reduced speed in the design variable update (<code class = "ph codeph">DENSITY_MOVE, DENSITY_UPDATE</code>)
improves the accuracy of the results. 
</li>
</ul>
</span></td></tr></table>
</p>
</div>

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