<?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 = "Use one of the restrictions presented here to prevent parts of the model from penetrating certain areas."/><meta name = "description" content = "Use one of the restrictions presented here to prevent parts of the model from penetrating certain areas."/><meta name = "DC.relation" scheme = "URI" content = "../TsoCmdMap/tso-r-cmd-dvconShape.htm#tso-r-cmd-dvconShape"/><meta name = "DC.format" content = "HTML5"/><meta name = "DC.identifier" content = "tso-c-usr-shape-desArea-dvcCheckP"/><meta name = "DC.language" content = "en"/><link rel = "stylesheet" type = "text/css" href = "../DSDocUI_XML34.css"/><title>Penetration Checks</title>
<script type = "text/javascript" src = "../DSDocUI_Highlight34.js">
  	/* */
  	</script></head><body onLoad = "highlightSearchTerms();" id = "tso-c-usr-shape-desArea-dvcCheckP">
<a name = "hj-top"> </a><table class = "table1" id = "table11"><tr><td><table class = "DocHeader"><tr><td class = "DocHeader1" colspan = "2"><h1>Penetration Checks</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 = "header"><p class = "abstract">
<span class = "shortdesc">
Use one of the restrictions presented here to prevent parts of the model from penetrating certain areas.
</span>

</p>
<p>This page discusses: </p><ul><li><a href = "#tso-c-usr-shape-desArea-dvcCheckP__tso-c-usr-shape-desArea-restr-checkSolid" id = "toc_rg" title = "">Displacement Check against Solids (CHECK_SOLID) </a></li><li><a href = "#tso-c-usr-shape-desArea-dvcCheckP__tso-c-usr-shape-desArea-restr-DefSolid" id = "toc_rg" title = "">Defining a Solid</a></li><li><a href = "#tso-c-usr-shape-desArea-dvcCheckP__tso-c-usr-shape-desArea-restr-checkElgr" id = "toc_rg" title = "">Penetration Check (CHECK_ELGR, PENETRATION_CHECK) </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 restrictions of the design variables in shape optimization." href = "../TsoCmdMap/tso-r-cmd-dvconShape.htm#tso-r-cmd-dvconShape">DVCON_SHAPE</a></td></tr></table></td></tr></table>




<div class = "body conbody">

<p>
<table class = "table" id = "tso-c-usr-shape-desArea-dvcCheckP__table_88AEFD7760E24167B18CD5B22B46F5BF"><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-usr-shape-desArea-dvcCheckP__table_88AEFD7760E24167B18CD5B22B46F5BF__entry__1">Applicable for</th>
<th class = "entry align-center" id = "tso-c-usr-shape-desArea-dvcCheckP__table_88AEFD7760E24167B18CD5B22B46F5BF__entry__2">Controller (SHAPE_CONTROLLER)</th>
<th class = "entry align-center" id = "tso-c-usr-shape-desArea-dvcCheckP__table_88AEFD7760E24167B18CD5B22B46F5BF__entry__3">Sensitivity (SHAPE_SENSITIVITY)</th>
</tr>
</thead><tbody class = "tbody">
<tr class = "row">
<td class = "entry" headers = "tso-c-usr-shape-desArea-dvcCheckP__table_88AEFD7760E24167B18CD5B22B46F5BF__entry__1">CHECK_SOLID</td>
<td class = "entry align-center" headers = "tso-c-usr-shape-desArea-dvcCheckP__table_88AEFD7760E24167B18CD5B22B46F5BF__entry__2">OK</td>
<td class = "entry align-center" headers = "tso-c-usr-shape-desArea-dvcCheckP__table_88AEFD7760E24167B18CD5B22B46F5BF__entry__3">OK</td>
</tr>
<tr class = "row">
<td class = "entry" headers = "tso-c-usr-shape-desArea-dvcCheckP__table_88AEFD7760E24167B18CD5B22B46F5BF__entry__1">CHECK_ELGR</td>
<td class = "entry align-center" headers = "tso-c-usr-shape-desArea-dvcCheckP__table_88AEFD7760E24167B18CD5B22B46F5BF__entry__2">OK</td>
<td class = "entry align-center" headers = "tso-c-usr-shape-desArea-dvcCheckP__table_88AEFD7760E24167B18CD5B22B46F5BF__entry__3">OK</td>
</tr>
</tbody></table>
</p>

<div class = "section" id = "tso-c-usr-shape-desArea-dvcCheckP__tso-c-usr-shape-desArea-restr-checkSolid"><h2 class = "title sectiontitle">Displacement Check against Solids (CHECK_SOLID) </h2>

<p>It is possible to define geometric primitives (solids) as a restriction
of the node displacements. Geometric primitives are defined using the
<code class = "ph codeph">SOLID</code> parameter. The <code class = "ph codeph">SOLID</code> command
allows the definition of:</p>
<p><ul class = "ul">
<li class = "li">circles</li>
<li class = "li">circle segments</li>
<li class = "li">ring segments and rectangles in two-dimensional models and cylinders</li>
<li class = "li">cylinder segments</li>
<li class = "li">tubes</li>
<li class = "li">cubes and cube segments in three-dimensional models</li></ul>  There is
a differentiation between a variation solid and a restriction solid (variation
area or restriction area).</p>
<p>The parameter:</p>
<pre class = "codeblock">
<code class = "ph codeph">
CHECK_SOLID = solid_name
</code>
</pre>
<p>specifies a solid whose borders might not be penetrated. </p>
<p>The following figure shows a displacement check against a solid: </p>
<table class = "table" id = "tso-c-usr-shape-desArea-dvcCheckP__ae231801"><caption/><colgroup><col/></colgroup><tbody class = "tbody">
<tr class = "row">
<td class = "entry"><br/><img class = "image" id = "tso-c-usr-shape-desArea-dvcCheckP__image_92F55A74B8294FBE832789471E891F55" src = "../TsoUserImages/ae03899b.jpg" width = "450"/><br/></td>
</tr>
</tbody></table>
</div>


<div class = "section" id = "tso-c-usr-shape-desArea-dvcCheckP__tso-c-usr-shape-desArea-restr-DefSolid"><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">Defining a Solid</h2>

<ol class = "ol">
<li class = "li">To define a solid in <span class = "ph">Tosca Structure.gui</span>, choose Command
<span class = "ph uicontrol">SOLID</span>.
<br/><img border = "1" class = "image" id = "tso-c-usr-shape-desArea-dvcCheckP__image_6634736B3B0947318E632AA2D3A83732" src = "../TsoUserImages/ae0389ef.jpg" width = "450"/><br/></li></ol>
<table class = "Remark" id = "table132"><tr><td class = "Remark"><span class = "run-in.important">Important:
				</span><span class = "notecontent"><p><ul class = "ul" id = "tso-c-usr-shape-desArea-dvcCheckP__ul_5894978C518343D395AB642A5DD03D36">
<li class = "li">
The <code class = "ph codeph">CHECK_SOLID</code> restrictions can be performed for surface
nodes as well as for inner nodes. To limit the exterior form of a component,
it only makes sense to restrict surface nodes. However, the node displacements
in the <code class = "ph codeph">MESH_SMOOTH</code> area should be limited.</li>
<li class = "li">
Up to six different <code class = "ph codeph">CHECK_SOLID</code> parameters can be
defined in every <code class = "ph codeph">DVCON_SHAPE</code> command. They are executed
in the order of their declaration within the <code class = "ph codeph">DVCON_SHAPE</code>
command.</li>
<li class = "li">
If the solid is a variation solid, all nodes of the node group in
the start model (see <code class = "ph codeph">ND_GROUP</code> parameter) must be located
inside the variation solid. If nodes are located outside the variation
solid, the <code class = "ph codeph">DVCON_SHAPE</code> definition will be rejected.
If the solid is a restriction solid, all nodes of the node group in the
start model (see <code class = "ph codeph">ND_GROUP</code> parameter) must be located
outside the restriction solid. If nodes are located inside the restriction
solid, the <code class = "ph codeph">DVCON_SHAPE</code> definition will be rejected.</li>
</ul></p></span></td></tr></table>

</div>


<div class = "section" id = "tso-c-usr-shape-desArea-dvcCheckP__tso-c-usr-shape-desArea-restr-checkElgr"><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">Penetration Check (CHECK_ELGR, PENETRATION_CHECK) </h2>

<p> Element surfaces and lines as well as solid elements can be defined as limiting surfaces, lines,
        or solids to check node displacements against any contour. This option offers more
        flexibility than the check for the absolute amount of displacement or the check against
        geometric primitives. The limiting surfaces are formed by beam structures in 2D models and
        by shell structures or solid structures in 3D models. The limiting surfaces are generated in
        the FE preprocessor and loaded through the interface (<code class = "ph codeph">MODEL_LINK</code> Folder or
          <code class = "ph codeph">FEM_INPUT</code> command, <code class = "ph codeph">ADD_FILE</code> parameter) in the
        optimization preprocessor.</p>
<p>The parameter</p>
<pre class = "codeblock">
<code class = "ph codeph">
CHECK_ELGR = elgr_name
</code>
</pre>
<p>can be defined in the <code class = "ph codeph">CHECK_GROUP</code> field of the <code class = "ph codeph">PENETRATION_CHECK</code>
menu in the <code class = "ph codeph">Element Group</code> field of <span class = "ph">Tosca Structure.gui</span>.</p>
<p>It specifies an element group whose elements might not be penetrated
(contact condition) by the nodes of the node group specified by the <code class = "ph codeph">ND_GROUP</code>
parameter for shell or beam elements. For solid elements, all nodes inside
the solids specified by the <code class = "ph codeph">CHECK_ELGR</code> parameter are
frozen and for all nodes outside the penetration into the solid is avoided.
The following figure provides a graphic illustration.
</p>
<p>Activation of the element check represents a collision control. If
a node attempts to penetrate an element, the node displacement is scaled
back so the effected node remains on the side of the element where it
is intended. The element group must be defined with <code class = "ph codeph">GROUP_DEF</code>
or in the analysis file before it can be referenced with <code class = "ph codeph">CHECK_ELGR</code>.</p>

<p> If a node starts exactly on a shell element,
there is a high probability that it is seen on either side of the shell. If the
design nodes have an offset from the element group, the current implementation
works fine. Dependent on which side of the shell element a node is seen by the
algorithm, every one of the four situations can be right or wrong. 
<br/><img class = "image" id = "tso-c-usr-shape-desArea-dvcCheckP__d78e24" src = "../TsoUserImages/tso-c-usr-shape-desArea-dvcCheckP-checkElgr-permeability.png" width = "450"/><br/>
The problem is that, if the node is placed on the shell element,
it cannot be said beforehand on which side the node will be seen. As a solution
to this situation, the element group should get permeability: nodes can
penetrate the element from one side but not from the other side. The new
command 
<pre class = "codeblock">
<code class = "ph codeph">
CHECK_ELGR_BLOCKING = &lt;<span class = "ph uicontrol">BOTH</span> | POS | NEG&gt;
</code>
</pre> 
can have the following values: 
<table class = "table"><caption/><colgroup><col style = "width:50%"/><col style = "width:50%"/></colgroup><tbody class = "tbody"> 
<tr class = "row"> 
<td class = "entry">BOTH</td> 
<td class = "entry">(Default) element group is not penetrable from any side. Like current behavior with the known problems.</td> 
</tr> 
<tr class = "row"> 
<td class = "entry">POS</td> 
<td class = "entry">Element group is penetrable in negative normal direction and blocking in positive normal direction.</td> 
</tr> 
<tr class = "row"> 
<td class = "entry">NEG</td> 
<td class = "entry">Element group is penetrable in positive normal direction and blocking in negative normal direction.</td> 
</tr> 
</tbody></table> 
</p>

<p> If a node sits slightly above the barrier elements and gets moved away from it without hitting
        the barrier, it might be desired to block the node movement. The <code class = "ph codeph">TOLERANCE</code>
        parameter can be used for virtually displacing nodes in the opposite moving direction. Nodes
        that are located close enough to the barrier are lying virtually on the correct side to get
        blocked. <code class = "ph codeph">TOLERANCE</code> is given as an absolute (positive) value and its default
        is roughly 10% of the mean edge length. It gets only applied with
          <code class = "ph codeph">CHECK_ELGR_BLOCKING</code> equal to <code class = "ph codeph">POS</code> and
          <code class = "ph codeph">NEG</code>, but not with <code class = "ph codeph">BOTH</code>. </p>

<p>Example:</p>
<pre class = "codeblock">
DVCON_SHAPE
  ID_NAME             = DVC_PENETRATION_CHECK
  ND_GROUP            = some_node_group
  CHECK_ELGR          = barrier_elements
  CHECK_ELGR_BLOCKING = POS
END_
</pre>

<div class = "note"><span class = "run-in.note">Note:
			</span><span class = "notecontent"><p><ul class = "ul" id = "tso-c-usr-shape-desArea-dvcCheckP__ul_D1A366F3C1344D4FADFF61917F778B81">
<li class = "li">
<code class = "ph codeph">CHECK_ELGR</code> restrictions can be performed for surface
nodes as well as for inner nodes. To limit the exterior form of a component,
it only makes sense to restrict surface nodes. However, the node displacements
in the <code class = "ph codeph">MESH_SMOOTH</code> area should be limited.
</li>
</ul></p></span></div>

<table class = "table" id = "tso-c-usr-shape-desArea-dvcCheckP__ae232055"><caption/><colgroup><col/></colgroup><tbody class = "tbody">
<tr class = "row">
<td class = "entry">
<br/><img class = "image" id = "tso-c-usr-shape-desArea-dvcCheckP__image_D8C4D285A74A415E83AAE8B758470889" src = "../TsoUserImages/ae038a87.jpg" width = "450"/><br/>
</td>
</tr>
</tbody></table>

<ul class = "ul" id = "tso-c-usr-shape-desArea-dvcCheckP__ul_1205DA3665104A32B89CC2E042B0524F">
<li class = "li">
Up to six <code class = "ph codeph">CHECK_ELGR</code> parameters can be defined in
every <code class = "ph codeph">DVCON_SHAPE</code> command. They are executed in the
order of their declaration within the <code class = "ph codeph">DVCON_SHAPE</code> command.
For each group a new <code class = "ph codeph">PENETRATION_CHECK</code> entry must
be created.
</li>
<li class = "li"> To simplify the definition of the contact check, it is
          useful to divide the limiting surfaces by assigning various element property numbers (or
          materials). This greatly simplifies the selection and assembly of groups in the
          optimization preprocessor (when using manual selection). </li>
</ul><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">
The nodes (<code class = "ph codeph">ND_GROUP</code> parameter) and the elements
(<code class = "ph codeph">CHECK_ELEM</code> parameter) should have a definite minimum
distance to ensure that a node must remain on the right element side
and the initial model is feasible.</li>
<li class = "li">
For determining penetration by beam elements (without lateral dimension),
a hypothetical tolerance area amounting to 1% of the beam length surrounds
each beam element. A beam element is considered penetrated when a node
is moved into the tolerance area. A node displacement moving alongside
the tolerance area is not considered as a penetration.</li>
<li class = "li">
If the elements being used in the check are loaded with the <code class = "ph codeph">ADD_FILE</code>
parameter of <code class = "ph codeph">FEM_INPUT</code> command, attention should be
paid that node or element IDs are not used twice since <span class = "ph">Tosca Structure</span>
cannot process duplicated IDs.</li>
<li class = "li"> If your preprocessor does not allow you to create the additional elements in a separate
file, they can also be placed in the main simulation file. However, special care must be
taken that the additional elements do not influence the simulation result. Using fixed
boundary conditions can do the trick, but rigid body formulations are not allowed. </li>
</ul></span></td></tr></table>

<ul class = "ul" id = "tso-c-usr-shape-desArea-dvcCheckP__ul_466FF0678CE04BC3BE3517932AD075BE">
<li class = "li"> In sensitivity-based optimization mode, the node
          restrictions <code class = "ph codeph">CHECK_SOLID</code> and <code class = "ph codeph">CHECK_ELGR</code> are applied as
          box constraints on the design variables. These commands can be used as an alternative or
          in addition to <a class = "xref" href = "tso-c-usr-shape-desArea-dvcCheck.htm" title = "Use the design variable constraints CHECK_GROW and CHECK_SHRINK to apply a box constraint on the design variables.">
            <code class = "ph codeph">CHECK_SHRINK</code> and <code class = "ph codeph">CHECK_GROW</code>
          </a> to restrict the design nodes. </li>
</ul>
</div>


</div>

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