<?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 = "In Tosca Structure.shape, the displacement direction of the design nodes (optimization displacement vector) is normally determined as the surface normal. The inner nodes are subsequently recalculated in relation to the displacement of the design nodes determined by the selected mesh smoothing algorithm. However, to meet functional and manufacturing requirements it is often necessary to deviate from the automatically determined displacement direction for design nodes as well as for mesh smoothing nodes."/><meta name = "description" content = "In Tosca Structure.shape, the displacement direction of the design nodes (optimization displacement vector) is normally determined as the surface normal. The inner nodes are subsequently recalculated in relation to the displacement of the design nodes determined by the selected mesh smoothing algorithm. However, to meet functional and manufacturing requirements it is often necessary to deviate from the automatically determined displacement direction for design nodes as well as for mesh smoothing nodes."/><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-dvcCheckBcDof"/><meta name = "DC.language" content = "en"/><link rel = "stylesheet" type = "text/css" href = "../DSDocUI_XML34.css"/><title>Restricting Displacement Directions</title>
<script type = "text/javascript" src = "../DSDocUI_Highlight34.js">
  	/* */
  	</script></head><body onLoad = "highlightSearchTerms();" id = "tso-c-usr-shape-desArea-dvcCheckBcDof">
<a name = "hj-top"> </a><table class = "table1" id = "table11"><tr><td><table class = "DocHeader"><tr><td class = "DocHeader1" colspan = "2"><h1>Restricting Displacement Directions</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">
In <span class = "ph">Tosca Structure.shape</span>,
the displacement direction of the design nodes (optimization displacement
vector) is normally determined as the surface normal. The inner nodes
are subsequently recalculated in relation to the displacement of the
design nodes determined by the selected mesh smoothing algorithm. However,
to meet functional and manufacturing requirements it is often necessary
to deviate from the automatically determined displacement direction for
design nodes as well as for mesh smoothing nodes.</span>

</p>
<ul><li><a href = "#tso-c-usr-shape-desArea-dvcCheckBcDof__tso-c-usr-shape-desArea-dvcCheckBcDof-restriction" id = "toc_rg" title = "">Restrict Nodes on Surfaces</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-dvcCheckBcDof__table_CBFF93AE624B42C184055DAA1B7A6F42"><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-dvcCheckBcDof__table_CBFF93AE624B42C184055DAA1B7A6F42__entry__1">Applicable for</th>
<th class = "entry align-center" id = "tso-c-usr-shape-desArea-dvcCheckBcDof__table_CBFF93AE624B42C184055DAA1B7A6F42__entry__2">Controller (SHAPE_CONTROLLER)</th>
<th class = "entry align-center" id = "tso-c-usr-shape-desArea-dvcCheckBcDof__table_CBFF93AE624B42C184055DAA1B7A6F42__entry__3">Sensitivity (SHAPE_SENSITIVITY)</th>
</tr>
</thead><tbody class = "tbody">
<tr class = "row">
<td class = "entry" headers = "tso-c-usr-shape-desArea-dvcCheckBcDof__table_CBFF93AE624B42C184055DAA1B7A6F42__entry__1">CHECK_BC</td>
<td class = "entry align-center" headers = "tso-c-usr-shape-desArea-dvcCheckBcDof__table_CBFF93AE624B42C184055DAA1B7A6F42__entry__2">OK</td>
<td class = "entry align-center" headers = "tso-c-usr-shape-desArea-dvcCheckBcDof__table_CBFF93AE624B42C184055DAA1B7A6F42__entry__3">OK</td>
</tr>
<tr class = "row">
<td class = "entry" headers = "tso-c-usr-shape-desArea-dvcCheckBcDof__table_CBFF93AE624B42C184055DAA1B7A6F42__entry__1">CHECK_DOF</td>
<td class = "entry align-center" headers = "tso-c-usr-shape-desArea-dvcCheckBcDof__table_CBFF93AE624B42C184055DAA1B7A6F42__entry__2">OK</td>
<td class = "entry align-center" headers = "tso-c-usr-shape-desArea-dvcCheckBcDof__table_CBFF93AE624B42C184055DAA1B7A6F42__entry__3">OK</td>
</tr>
<tr class = "row">
<td class = "entry" headers = "tso-c-usr-shape-desArea-dvcCheckBcDof__table_CBFF93AE624B42C184055DAA1B7A6F42__entry__1">RESTRICT_ON_SURFACE</td>
<td class = "entry align-center" headers = "tso-c-usr-shape-desArea-dvcCheckBcDof__table_CBFF93AE624B42C184055DAA1B7A6F42__entry__2">OK</td>
<td class = "entry align-center" headers = "tso-c-usr-shape-desArea-dvcCheckBcDof__table_CBFF93AE624B42C184055DAA1B7A6F42__entry__3">-*
</td>
</tr>
</tbody></table>
</p>

<p>To deviate from the automatically determined displacement direction for
design nodes as well as for mesh smoothing nodes, every
translational degree of freedom can be fixed for any node in a freely
defined coordinate system. In this way, a node can be restricted to move
on one plane only (fixed to one value) or to move within a displacement
vector (fixed to two values). The restriction of all three translational
degrees of movement is equivalent to a constraint of the node in the
shape optimization.</p>
<p>The displacement boundary condition must be unique. In contrast to FE boundary conditions for several
<span class = "ph">load cases</span>,
the total of all the supports for all <span class = "ph">load case</span>
are considered as supports in the optimization. A prescribed node displacement
as an optimization boundary condition is also not permitted. <span class = "ph">Tosca Structure.shape</span>
offers the user two possibilities for restricting the displacement
directions of nodes.</p>
<p>The full or partial fixation of nodes is the most common and most
important type of restriction; it is practically used in every optimization
model. The most efficient method for defining the displacement restrictions
in the FE preprocessor is as an extra <span class = "ph">load case</span>
in the analysis model and then load it through the FE interface in the optimization
preprocessor. The interface must first be activated with the <code class = "ph codeph">
OPTIONS,
READ_BC = ...
</code> parameter. In this way, all node fixations for the optimization
model can be defined in advance in the FE preprocessor. The fixation
is always based on the FE displacement coordinate system of the node.
The parameter
<pre class = "codeblock">
<code class = "ph codeph">
CHECK_BC = YES
</code>
</pre>
activates the node fixations of the node group (<code class = "ph codeph">ND_GROUP</code>
parameter) that are loaded in the FE model. Fixations that reference
nodes not contained in the node groups are not activated. To prevent
loaded fixations from being activated enter:

<pre class = "codeblock">
<code class = "ph codeph">
CHECK_BC = NO
</code>
</pre>

If it is necessary to restrict other displacement directions in addition
or at a later stage, this can be accomplished with the <code class = "ph codeph">CHECK_DOF</code>
parameter in the field <code class = "ph codeph">DOF</code> (<span class = "ph">Tosca Structure.gui</span>).
This restriction is applied to a node group.
The coordinate system must also be defined or loaded. With the parameter

<pre class = "codeblock">
<code class = "ph codeph">
CHECK_DOF = &lt;<span class = "ph">cs_name&gt;</span>, FIX/FREE, FIX/FREE, FIX/FREE
</code>
</pre>

all the displacements of all nodes in the node group selected with <code class = "ph codeph">ND_GROUP</code>
are fixed (<code class = "ph codeph">FIX</code>) or free (<code class = "ph codeph">FREE</code>) relative
to the specified coordinate directions of the coordinate system <code class = "ph codeph">&lt;cs_name&gt;</code>.
Either <code class = "ph codeph">FREE</code> or <code class = "ph codeph">FIX</code> is allowed for each
coordinate direction.</p>
  
<p>
<div class = "note"><span class = "run-in.note">Note:
			</span><span class = "notecontent"><p><ul class = "ul" id = "tso-c-usr-shape-desArea-dvcCheckBcDof__ul_DD436098903641CF9817998B66395CEA">
<li class = "li">
The restrictions <code class = "ph codeph">CHECK_BC</code> or <code class = "ph codeph">CHECK_DOF</code>
can be applied to both: surface nodes and inner nodes.</li>
<li class = "li">
The essential difference between <code class = "ph codeph">CHECK_BC</code> and <code class = "ph codeph">CHECK_DOF</code>
is: <code class = "ph codeph">CHECK_BC</code> is read in through the FE interface whereas
<code class = "ph codeph">CHECK_DOF</code> is defined in the optimization preprocessor.
With <code class = "ph codeph">CHECK_BC</code> each node generally has its own fixation
in its own displacement coordinate system, whereas with <code class = "ph codeph">CHECK_DOF</code>
all nodes of the node group are all fixed in the same coordinate system.</li>
<li class = "li">
For sensitivity-based shape optimization <code class = "ph codeph">CHECK_DOF</code> will work in most cases.
However, it is not fool proof, meaning that
<span class = "ph">Tosca Structure</span>
might run into convergence problems with an inept <code class = "ph codeph">CHECK_DOF</code> restriction.
That is the reason why only
<code class = "ph codeph">CHECK_DOF = CS_0, FIX, FIX, FIX</code>
is officially supported.
</li>
</ul></p></span></div>

</p>

<div class = "section" id = "tso-c-usr-shape-desArea-dvcCheckBcDof__tso-c-usr-shape-desArea-dvcCheckBcDof-restriction"><h2 class = "title sectiontitle">Restrict Nodes on Surfaces</h2>

<p>The <code class = "ph codeph">RESTRICT_ON_SURFACE</code> constraint restricts nodes to move only on the surface.
Movements in the normal direction are suppressed.
This is especially handy for variation areas (areas that are not part of the design area, but are allowed
to move in order to allow shape variations).</p>
<p>The following figure shows a typical example for the use of this restriction applied on the green area. The red area in the figure is the design area. Then the green area must not be fixed to allow the edges to move.
But you also do not want these nodes to move outward of the surface plane. You could apply the surface restriction here.
The same effect can be achieved with CHECK_DOF commands, but one command for each side (six in total) is needed.</p>
<p><br/><img border = "1" class = "image" id = "tso-c-usr-shape-desArea-dvcCheckBcDof__image_997A3FA3EC684685BE5BD6F6FF30C99B" src = "../TsoUserImages/dvcon_shape_restrict_on_surface_NLS.png" width = "450"/><br/></p>

<p>Example:
<pre class = "codeblock">
<code class = "ph codeph">
DVCON_SHAPE
 ID_NAME             = MY_SURFACE_RESTRICTION
 ND_GROUP            = GREEN_AREA
 RESTRICT_ON_SURFACE = YES
END_
</code>
</pre>
</p>

<p>Nodes lying on corners or edges must be handled in a different way than "planar" nodes. In order to identify the corners and edges, <span class = "ph">Tosca</span> performs a feature detection analysis.
If the features are already known, they can be communicated with the help of node groups. The subcommand <code class = "ph codeph">FEATURE_NODES</code> is used to tell which nodes shall be considered as lying on an edge or corner.</p>

<p>Example:
<pre class = "codeblock">
<code class = "ph codeph">
DVCON_SHAPE
 ID_NAME             = MY_SURFACE_RESTRICTION
 ND_GROUP            = GREEN_AREA
 RESTRICT_ON_SURFACE = YES
 FEATURE_NODES       = MY_EDGE_AND_CORNER_NODES
END_
</code>
</pre>
</p>

<p>Some theory:
The nodes are restricted in their movement by projecting them on the plane described by their normal vector
and the position on the start model. This is also the reason why this method works best for plane surfaces.
If edges are detected, the nodes are projected on the planes adjacent to the edge, which allows the node to
move only along the edge or to not move at all in case of corners.</p>
<p>* Some words to the usage in combination with Shape sensitivity:
This feature is not blocked for the use with shape sensitivity, but it is also not fully supported.
Applying this feature to nodes outside the design area, no big drawbacks are expected. However, applying it
to design nodes might lead to convergence problems: The node position is changed without letting the optimizer
know about this change. Depending on the model and on the amount of change, everything might go well - or not.
</p>
</div>

</div>

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