<?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 = "Alternatively to the previous, there is an additional method to ensure that the obtained design is castable, by parameterizing the design variables."/><meta name = "DC.format" content = "HTML5"/><meta name = "DC.identifier" content = "tso-c-user-TopOpt-DesArea-ManuFilter"/><meta name = "DC.language" content = "en"/><link rel = "stylesheet" type = "text/css" href = "../DSDocUI_XML34.css"/><title>Demold Constraints with Parameterization Filter</title>
<script type = "text/javascript" src = "../DSDocUI_Highlight34.js">
  	/* */
  	</script></head><body onLoad = "highlightSearchTerms();" id = "tso-c-user-TopOpt-DesArea-ManuFilter">
<a name = "hj-top"> </a><table class = "table1" id = "table11"><tr><td><table class = "DocHeader"><tr><td class = "DocHeader1" colspan = "2"><h1>Demold Constraints with Parameterization Filter</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 = "shortdesc">
    Alternatively to the previous, there is an additional method to ensure that
    the obtained design is castable, by parameterizing the design variables.
  
</p></td></tr></table></td></tr></table>
  

  
  <div class = "body conbody">
    <p>
      It enforces the demolding constraint by grouping the elements in
      the demolding direction and parameterizing the respective densities.
      Hence, as a mathematical approach, it will ensure a castable design,
      independently of the combination of objective function and constraints that the
      user selects.
    </p>
    <p>
      Therefore, this algorithm yields better results for applications where the previous approach
      failed in achieving manufacturable designs, for example with axisymmetric models as the following
      example illustrates:
    </p>
    <p>
      <table class = "table"><caption/><colgroup><col style = "width:33.33333333333333%"/><col style = "width:33.33333333333333%"/><col style = "width:33.33333333333333%"/></colgroup><thead class = "thead">
            <tr class = "row">
              <th class = "entry" id = "tso-c-user-TopOpt-DesArea-ManuFilter__entry__1">Example</th>
              <th class = "entry" id = "tso-c-user-TopOpt-DesArea-ManuFilter__entry__2">
                <code class = "ph codeph">FILTER_PARAM = NO</code>
              </th>
              <th class = "entry" id = "tso-c-user-TopOpt-DesArea-ManuFilter__entry__3">
                <code class = "ph codeph">FILTER_PARAM = YES</code>
              </th>
            </tr>
          </thead><tbody class = "tbody">
            <tr class = "row">
              <td class = "entry" headers = "tso-c-user-TopOpt-DesArea-ManuFilter__entry__1">
                <p>
                  Piston head - axisymmetric model:
                  <ul class = "ul">
                    <li class = "li">
                      Mass minimization
                    </li>
                    <li class = "li">
                      Four displacement constraints
                    </li>
                    <li class = "li">
                      Check group = design domain
                    </li>
                  </ul>
                </p>
              </td>
              <td class = "entry" headers = "tso-c-user-TopOpt-DesArea-ManuFilter__entry__2">
                <p>
                  <ul class = "ul">
                    <li class = "li">
                      33 iterations
                    </li>
                    <li class = "li">
                      29.3% mass
                    </li>
                  </ul>
                </p>
              </td>
              <td class = "entry" headers = "tso-c-user-TopOpt-DesArea-ManuFilter__entry__3">
                <p>
                  <ul class = "ul">
                    <li class = "li">
                      29 iterations
                    </li>
                    <li class = "li">
                      25.8% mass
                    </li>
                  </ul>
                </p>
              </td>
            </tr>
            <tr class = "row">
              <td class = "entry" headers = "tso-c-user-TopOpt-DesArea-ManuFilter__entry__1">
                <br/><img class = "image" id = "tso-c-user-TopOpt-DesArea-ManuFilter__image_4DF26BA49F2943C9A470E78D055F84AA" src = "../TsoUserImages/FILTER_PARAM_piston_probdesc.png" height = "220"/><br/>
              </td>
              <td class = "entry" headers = "tso-c-user-TopOpt-DesArea-ManuFilter__entry__2">
                <br/><img class = "image" id = "tso-c-user-TopOpt-DesArea-ManuFilter__image_C48F8FEB32B64D6EBD6E58DDF9BED4CD" src = "../TsoUserImages/FILTER_PARAM_piston_tosca.png" height = "220"/><br/>
              </td>
              <td class = "entry" headers = "tso-c-user-TopOpt-DesArea-ManuFilter__entry__3">
                <br/><img class = "image" id = "tso-c-user-TopOpt-DesArea-ManuFilter__image_C47DB111DE694DD8928AA901DA7D0A17" src = "../TsoUserImages/FILTER_PARAM_piston_param.png" height = "220"/><br/>
              </td>
            </tr>
          </tbody></table>
    </p>

    <p>
      In addition to this advantage, it tends to require the same or a slightly inferior number
      of optimization iterations when compared with the default approach.
    </p>
    <p>
      This option is disabled by default and can be selected by adding the command
      <code class = "ph codeph">FILTER_PARAM = YES</code> inside the <code class = "ph codeph">DVCON_TOPO</code> block
      for sensitivity-based topology optimizations:
    </p>

    <pre class = "codeblock">
      <code class = "ph codeph">
        DVCON_TOPO
          ID_NAME      =
          EL_GROUP     =
          CHECK_TYPE   = CAST
          PULL_DIR     =
          CHECK_GROUP  =
          MID_PLANE    =
          PULL_CS      =
          ANGLE        = 0
          FILTER_PARAM = YES
        END_
      </code>
    </pre>

    <p>
      This option can be combined with the remaining restrictions, such as symmetry and member size control.
      Note that frozen elements will be ignored for this option.
      Regarding the parting surface definition only
      the following options are supported:
      <ul class = "ul">
        <li class = "li">
          <code class = "ph codeph">  MID_PLANE = STAMP </code>
        </li>
        <li class = "li">
          <code class = "ph codeph">  MID_PLANE = NONE </code>
        </li>
        <li class = "li">
          <code class = "ph codeph">  MID_PLANE = POINT </code>
        </li>
        <li class = "li">
          <code class = "ph codeph">  MID_PLANE = AUTO </code>
        </li>
      </ul>
    </p>

    <p>The different possible restrictions are illustrated in the following figure:</p>
    <table class = "table"><caption/><colgroup><col style = "width:25%"/><col style = "width:25%"/><col style = "width:25%"/><col style = "width:25%"/></colgroup><thead class = "thead">
          <tr class = "row">
            <th class = "entry" id = "tso-c-user-TopOpt-DesArea-ManuFilter__entry__10">
              <code class = "ph codeph">  MID_PLANE = STAMP </code>
            </th>
            <th class = "entry" id = "tso-c-user-TopOpt-DesArea-ManuFilter__entry__11">
              <code class = "ph codeph">  MID_PLANE = NONE </code>
            </th>
            <th class = "entry" id = "tso-c-user-TopOpt-DesArea-ManuFilter__entry__12">
              <code class = "ph codeph">  MID_PLANE = POINT </code>
            </th>
            <th class = "entry" id = "tso-c-user-TopOpt-DesArea-ManuFilter__entry__13">
              <code class = "ph codeph">  MID_PLANE = AUTO </code>
            </th>
          </tr>
        </thead><tbody class = "tbody">
          <tr class = "row">
            <td class = "entry" headers = "tso-c-user-TopOpt-DesArea-ManuFilter__entry__10">
              <br/><img class = "image" id = "tso-c-user-TopOpt-DesArea-ManuFilter__image_8B41B68DCE234F33B6DF9A25E613D676" src = "../TsoUserImages/FILTER_PARAM_stamp.png" width = "273" height = "163"/><br/>
            </td>
            <td class = "entry" headers = "tso-c-user-TopOpt-DesArea-ManuFilter__entry__11">
              <br/><img class = "image" id = "tso-c-user-TopOpt-DesArea-ManuFilter__image_E6DDE296A4604DC4B256B7301A0447A1" src = "../TsoUserImages/FILTER_PARAM_none.png" width = "273" height = "163"/><br/>
            </td>
            <td class = "entry" headers = "tso-c-user-TopOpt-DesArea-ManuFilter__entry__12">
              <br/><img class = "image" id = "tso-c-user-TopOpt-DesArea-ManuFilter__image_019FB5804F8E44E5A7F6F9A446081FF4" src = "../TsoUserImages/FILTER_PARAM_point.png" width = "273" height = "163"/><br/>
            </td>
            <td class = "entry" headers = "tso-c-user-TopOpt-DesArea-ManuFilter__entry__13">
              <br/><img class = "image" id = "tso-c-user-TopOpt-DesArea-ManuFilter__image_DA7A0BF4C6C8427E872FE59619767F03" src = "../TsoUserImages/FILTER_PARAM_auto.png" width = "273" height = "163"/><br/>
            </td>
          </tr>
        </tbody></table>

    <p>
      The specification of a deformation angle (<code class = "ph codeph">ANGLE</code>) different from zero or the remaining parting
      surface definitions (<code class = "ph codeph">MID_PLANE = AUTO_TIGHT</code> or <code class = "ph codeph"> MID_PLANE = SURFACE </code>) are not
      compatible with this approach and therefore should be combined with the default option: <code class = "ph codeph">FILTER_PARAM = NO</code>.
    </p>

    <div class = "notes collapse"><span class = "run-in.notes">Notes:
    		</span><span class = "notecontent">
      <ul class = "ul">
        <li class = "li">
          Defining a pull restriction causes many restrictions for 2D models.
          If the topology optimization with pull direction is to be carried out
          on 2D models, the settings for the <code class = "ph codeph">DENSITY_UPDATE</code>
          and the <code class = "ph codeph">DENSITY_MOVE</code> (for example <code class = "ph codeph">DENSITY_MOVE = 0.10</code>)
          in the optimization parameters block (<code class = "ph codeph">OPT_PARAM</code>)
          might must be adjusted to smaller or more conservative values to
          ensure convergence of the algorithm.
        </li>
        <li class = "li">
          The elements are grouped into cells with a base radius (<code class = "ph codeph">RADIUS</code>)
          which is automatically defined based on the average element size.
          If the model has elements of very different sizes or the elements are not
          aligned with the casting direction as exemplified in the next figure, it is
          recommended to specify a superior value using the field <code class = "ph codeph">RADIUS</code>
          of the same <code class = "ph codeph">DVCON_TOPO</code> block, considering that it should be
          larger than approximately 50% of the element edge length.
          <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-DesArea-ManuFilter__image_7514D4EE4D6441209186225819D1ADB5" src = "../TsoUserImages/FILTER_PARAM_grouping.png" width = "450"/><br/>
                  </td>
                </tr>
              </tbody></table>
        </li>
      </ul>
    </span></div>

    <table class = "Remark" id = "table132"><tr><td class = "Remark"><span class = "run-in.important">Important:
				</span><span class = "notecontent">
      The application of this approach with stresses as objective/constraints should be used with
      care when combined exclusively with objective/constraints, which are not related with stiffness
      (such as mass), as the final design might present some intermediate densities.
    </span></td></tr></table>

  </div>

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