<?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 shape optimization, the surface of a component is modified. If only the surface nodes are displaced and the inner nodes remain at their location, the surface layer elements will be strongly distorted. As a result, the quality of the FE calculation suffers and might no longer form a reliable basis for the optimization. To ensure realistic and high-quality results, a displacement of the surface usually necessitates a mesh displacement (mesh smoothing) in the inner of the structure in most cases."/><meta name = "description" content = "In shape optimization, the surface of a component is modified. If only the surface nodes are displaced and the inner nodes remain at their location, the surface layer elements will be strongly distorted. As a result, the quality of the FE calculation suffers and might no longer form a reliable basis for the optimization. To ensure realistic and high-quality results, a displacement of the surface usually necessitates a mesh displacement (mesh smoothing) in the inner of the structure in most cases."/><meta name = "DC.relation" scheme = "URI" content = "../TsoCmdMap/tso-r-cmd-meshSmooth.htm#tso-r-cmd-meshSmooth"/><meta name = "DC.relation" scheme = "URI" content = "tso-t-usr-shape-desArea-smoothDef.htm#tso-t-usr-shape-desArea-smoothDef"/><meta name = "DC.format" content = "HTML5"/><meta name = "DC.identifier" content = "tso-c-usr-shape-desArea-smooth"/><meta name = "DC.language" content = "en"/><link rel = "stylesheet" type = "text/css" href = "../DSDocUI_XML34.css"/><title>About Mesh Smoothing (MESH_SMOOTH)</title>
<script type = "text/javascript" src = "../DSDocUI_Highlight34.js">
  	/* */
  	</script></head><body onLoad = "highlightSearchTerms();" id = "tso-c-usr-shape-desArea-smooth">
<a name = "hj-top"> </a><table class = "table1" id = "table11"><tr><td><table class = "DocHeader"><tr><td class = "DocHeader1" colspan = "2"><h1>About Mesh Smoothing (MESH_SMOOTH) </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 shape optimization, the surface of a component is modified.
If only the surface nodes are displaced and the inner nodes remain at
their location, the surface layer elements will be strongly distorted.
As a result, the quality of the FE calculation suffers and might no longer
form a reliable basis for the optimization. To ensure realistic and
high-quality results, a displacement of the surface usually necessitates
a mesh displacement (mesh smoothing) in the inner of the structure in
most cases. </span>

</p>
<p>This page discusses: </p><ul><li><a href = "#tso-c-usr-shape-desArea-smooth__tso-c-usr-shape-desArea-smooth-elemGroup" id = "toc_rg" title = "">Element Group for Mesh Smoothing</a></li><li><a href = "#tso-c-usr-shape-desArea-smooth__tso-c-usr-shape-desArea-smooth-fixFreeNodes" id = "toc_rg" title = "">Fixation of Free Surface Nodes (FREE_SF)</a></li><li><a href = "#tso-c-usr-shape-desArea-smooth__tso-c-usr-shape-desArea-smooth-fixAreaBound" id = "toc_rg" title = "">Fixation of the MESH_SMOOTH Area Boundary</a></li><li><a href = "#tso-c-usr-shape-desArea-smooth__tso-c-usr-shape-desArea-smooth-autoArea" id = "toc_rg" title = "">Automatic MESH_SMOOTH Area (MS_LAYER)</a></li><li><a href = "#tso-c-usr-shape-desArea-smooth__tso-c-usr-shape-desArea-smooth-example1" id = "toc_rg" title = "">Example</a></li><li><a href = "#tso-c-usr-shape-desArea-smooth__tso-c-usr-shape-desArea-smooth-convMesh" id = "toc_rg" title = ""> Convergence of the Smoothed Mesh (LEVEL_CONV)</a></li><li><a href = "#tso-c-usr-shape-desArea-smooth__tso-c-usr-shape-desArea-smooth-enfRestr" id = "toc_rg" title = "">Enforcing Restrictions (LEVEL_DVCON)</a></li><li><a href = "#tso-c-usr-shape-desArea-smooth__tso-c-usr-shape-desArea-smooth-quality" id = "toc_rg" title = "">Quality Control and Improvement (LEVEL_QUAL)</a></li><li><a href = "#tso-c-usr-shape-desArea-smooth__tso-c-usr-shape-desArea-smooth-poorQuality" id = "toc_rg" title = "">Poor Quality Elements</a></li><li><a href = "#tso-c-usr-shape-desArea-smooth__tso-c-usr-shape-desArea-smooth-solverCheck" id = "toc_rg" title = "">Quality Criteria of the Solver (SOLVER_CHECK)</a></li><li><a href = "#tso-c-usr-shape-desArea-smooth__tso-c-usr-shape-desArea-smooth-freezeDesignNodes" id = "toc_rg" title = "">Modification of Design Nodes (FREEZE_DESIGN_NODES)</a></li><li><a href = "#tso-c-usr-shape-desArea-smooth__tso-c-usr-shape-desArea-smooth-distortedElem" id = "toc_rg" title = "">Correction of Distorted Elements (CORRECT_ELEMENTS)</a></li><li><a href = "#tso-c-usr-shape-desArea-smooth__tso-c-usr-shape-desArea-smooth-strategy" id = "toc_rg" title = "">Mesh Smooth Strategy (STRATEGY)</a></li></ul>
</p></td></tr></table></td><td class = "DocHeader2"><table class = "DocTopicsSeeAlso" id = "table13"><tr><td class = "TopicsTitle">See Also</td></tr><tr><td><a title = "Design variables for shape optimization are defined when assigning a node group to the design area." href = "tso-t-usr-shape-desArea-smoothDef.htm#tso-t-usr-shape-desArea-smoothDef">Defining Mesh Smooth Areas</a></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 = "Definition of parameters for the mesh smoothing algorithm for shape optimization." href = "../TsoCmdMap/tso-r-cmd-meshSmooth.htm#tso-r-cmd-meshSmooth">MESH_SMOOTH</a></td></tr></table></td></tr></table>




<div class = "body conbody">
<p>For shape optimization with <span class = "ph">Tosca Structure</span>,
the existing inner mesh is automatically adjusted to the surface displacement after the
determination of the surface modification. No remeshing of the model is carried out, but the
displacement of the surface nodes is passed on to the inner nodes. This modified mesh is then
used as the basis of the FE calculations that follow. The parameters for mesh smoothing are
specified with the <code class = "ph codeph">MESH_SMOOTH</code> command.</p>
<p>The most important parameter is to define the area to which the mesh
correction is applied. Default values for other settings are such that
satisfactory results can be achieved for most models. The most important
additional options are </p>
<p><code class = "ph codeph">FREE_SF</code>, <code class = "ph codeph">LEVEL_QUAL</code>, <code class = "ph codeph">SOLVER_CHECK/SOLVER_STOP</code>,
            and <code class = "ph codeph">STRATEGY</code></p>

<p>that are described in the following chapters.</p>
<p><table class = "Remark" id = "table132"><tr><td class = "Remark"><span class = "run-in.important">Important:
				</span><span class = "notecontent">
It is strongly recommended for the start model of the shape optimization
to have a finite element mesh of good quality. This recommendation especially
applies to areas in which shape changes are expected.
</span></td></tr></table>
</p>
<div class = "section" id = "tso-c-usr-shape-desArea-smooth__tso-c-usr-shape-desArea-smooth-elemGroup"><h2 class = "title sectiontitle">Element Group for Mesh Smoothing</h2>

<p>The area to which mesh smoothing is applied to is defined by an element
group. This element group must contain all design nodes.</p>
<table class = "table" id = "tso-c-usr-shape-desArea-smooth__ae231195"><caption/><colgroup><col/></colgroup><tbody class = "tbody">
<tr class = "row">
<td class = "entry"><br/><img class = "image" id = "tso-c-usr-shape-desArea-smooth__image_5E5C08141A0547B9936D3EAF4E6A25A2" src = "../TsoUserImages/shape_mesh_smooth.png" width = "500" height = "264"/><br/></td>
</tr>
</tbody></table>

</div>

<div class = "section" id = "tso-c-usr-shape-desArea-smooth__tso-c-usr-shape-desArea-smooth-rem2">

<div class = "note collapse"><span class = "run-in.note">Note:
    		</span><span class = "notecontent"><p><ul class = "ul" id = "tso-c-usr-shape-desArea-smooth__ul_6F9D6C9DE3B446C4A657303A8EF5B775">
<li class = "li">The operation for mesh smoothing can require a great deal of computing
time depending on the selected options. It is therefore advisable to
select an area for the mesh smoothing that is sufficient but not too
large. The size of the area for mesh smoothing depends on the problem
and must be specified by the user. </li>
<li class = "li">Mesh smoothing is an element-based algorithm; that is, the
        <code class = "ph codeph">MESH_SMOOTH</code> area is processed element by element. For FE models with
       relatively numerous elements in relation to the number of degrees of freedom (tetrahedral
       mesh), the computing time of the optimization module can sharply increase in comparison to
       the computing time of the FE analysis.</li>
</ul>
</p>
</span></div>

<table class = "Remark" id = "table132"><tr><td class = "Remark"><span class = "run-in.important">Important:
				</span><span class = "notecontent">
<p><ul class = "ul"><li class = "li">Only the following element shapes are allowed as
        <code class = "ph codeph">MESH_SMOOTH</code> elements: <code class = "ph codeph">TRIA, QUAD, TETRA, HEXA</code> and
        <code class = "ph codeph">PENTA</code> (with or without midside nodes). If the user-defined element group
       contains disallowed elements, a system-defined element group by the name of
        <code class = "ph codeph">&lt;mesh_smooth_name&gt;_ELEM</code> is generated. The disallowed elements are
       removed in this group. <code class = "ph codeph">MESH_SMOOTH</code> is only executed for the allowed
       elements.</li>
<li class = "li">A system-defined node group by the name of
        <code class = "ph codeph">&lt;mesh_smooth_name&gt;_NODE</code> is generated. This group contains all nodes
       attached to the allowed elements of the <code class = "ph codeph">MESH_SMOOTH</code> element group. In this
       way, the <code class = "ph codeph">MESH_SMOOTH</code> area can also be interpreted as a node area even though
       the user has only defined an element group.</li>
<li class = "li">It is important to ensure that the design area is
       contained in the <code class = "ph codeph">MESH_SMOOTH</code> area; the design node group must be a
       subset of the system-defined <code class = "ph codeph">MESH_SMOOTH</code> node group.</li>
</ul></p></span></td></tr></table>

<table class = "Remark" id = "table132"><tr><td class = "Remark"><span class = "run-in.warning">Warning:
				</span><span class = "notecontent"><p>All nodes in the <code class = "ph codeph">MESH_SMOOTH</code> area can be moved by the mesh smoothing operation.
     For this reason, limit the <code class = "ph codeph">MESH_SMOOTH</code> area to the area of the structure that
     can be changed. Structural areas that should remain unchanged should never be allowed in a
      <code class = "ph codeph">MESH_SMOOTH</code> area!</p></span></td></tr></table>

<div class = "note collapse"><span class = "run-in.note">Note:
    		</span><span class = "notecontent">
<p><ul class = "ul"><li class = "li">In general, it is possible to use a default
                                <code class = "ph codeph">MESH_SMOOTH</code> area consisting of 6 layers of elements
                            around the design nodes. However, this method is not recommended because
                            the user looses control of which nodes might be moved by
                                <code class = "ph codeph">MESH_SMOOTH</code>. Thus, it is recommended to choose an
                            element group (for example, in a preprocessor) to avoid unwanted effects.</li>
<li class = "li">It is possible to limit the optimization displacements of the design
nodes and the displacements of the <code class = "ph codeph">MESH_SMOOTH</code> nodes
using design variable constraints (<code class = "ph codeph">DVCON_SHAPE</code> definitions).</li>
</ul></p></span></div>

<p>For each mesh smooth definition, several groups are created automatically by <span class = "ph">Tosca Structure</span>. Some are available directly after the preprocessing of the <code class = "ph codeph">MESH_SMOOTH</code>
    definition and are thus available for other definitions (for example, constraints) further on. </p>
<table class = "table" id = "tso-c-usr-shape-desArea-smooth__ae176477"><caption/><colgroup><col/><col/></colgroup><thead class = "thead">
<tr class = "row">
<th class = "entry" id = "tso-c-usr-shape-desArea-smooth__ae176477__entry__1"><p> name of the group</p></th>
<th class = "entry" id = "tso-c-usr-shape-desArea-smooth__ae176477__entry__2"><p>description</p></th>
</tr>
</thead><tbody class = "tbody">
<tr class = "row">
<td class = "entry" headers = "tso-c-usr-shape-desArea-smooth__ae176477__entry__1"><p>LAYER_&lt;mesh_smooth_name&gt;</p></td>
<td class = "entry" headers = "tso-c-usr-shape-desArea-smooth__ae176477__entry__2"><p>created, if MS_LAYER is used;</p><p>contains
all elements of the mesh smooth area</p></td>
</tr>
<tr class = "row">
<td class = "entry" headers = "tso-c-usr-shape-desArea-smooth__ae176477__entry__1"><p>&lt;mesh_smooth_name&gt;_ELEM</p></td>
<td class = "entry" headers = "tso-c-usr-shape-desArea-smooth__ae176477__entry__2"><p>created, if the user-defined element group contains disallowed elements;</p>
                      <p>contains all allowed elements (TRIA, QUAD, TETRA, HEXA, and PENTA)</p></td>
</tr>
<tr class = "row">
<td class = "entry" headers = "tso-c-usr-shape-desArea-smooth__ae176477__entry__1"><p>&lt;mesh_smooth_name&gt;_NODE</p></td>
<td class = "entry" headers = "tso-c-usr-shape-desArea-smooth__ae176477__entry__2"><p>contains all nodes attached to the allowed elements of the MESH_SMOOTH element group</p></td>
</tr>
<tr class = "row">
<td class = "entry" headers = "tso-c-usr-shape-desArea-smooth__ae176477__entry__1"><p>&lt;mesh_smooth_name&gt;_SF_ELEM</p></td>
<td class = "entry" headers = "tso-c-usr-shape-desArea-smooth__ae176477__entry__2"><p>contains all allowed elements of the MESH_SMOOTH element group with at least one surface node</p></td>
</tr>
</tbody></table>

<p> Others are created when the definition of the optimization task is
completed and read into the <span class = "ph">Tosca Structure</span>
database. </p>
<table class = "table" id = "tso-c-usr-shape-desArea-smooth__ae176504"><caption/><colgroup><col/><col/></colgroup><thead class = "thead">
<tr class = "row">
<th class = "entry" id = "tso-c-usr-shape-desArea-smooth__ae176504__entry__1"><p>name of the group</p></th>
<th class = "entry" id = "tso-c-usr-shape-desArea-smooth__ae176504__entry__2"><p>description</p></th>
</tr>
</thead><tbody class = "tbody">
<tr class = "row">
<td class = "entry" headers = "tso-c-usr-shape-desArea-smooth__ae176504__entry__1"><p>&lt;mesh_smooth_name&gt;_SF_NODE</p></td>
<td class = "entry" headers = "tso-c-usr-shape-desArea-smooth__ae176504__entry__2"><p>contains all mesh smooth nodes at the surface of the mesh</p></td>
</tr>
<tr class = "row">
<td class = "entry" headers = "tso-c-usr-shape-desArea-smooth__ae176504__entry__1"><p>&lt;mesh_smooth_name&gt;_DV_ELEM</p></td>
<td class = "entry" headers = "tso-c-usr-shape-desArea-smooth__ae176504__entry__2"><p>contains all allowed elements of the MESH_SMOOTH element group with at least one design node</p></td>
</tr>
<tr class = "row">
<td class = "entry" headers = "tso-c-usr-shape-desArea-smooth__ae176504__entry__1"><p>&lt;mesh_smooth_name&gt;_DL_NODE</p></td>
<td class = "entry" headers = "tso-c-usr-shape-desArea-smooth__ae176504__entry__2"><p>contains all mesh smooth nodes that are also design nodes or nodes restricted with a
         LINK_SHAPE</p></td>
</tr>
<tr class = "row">
<td class = "entry" headers = "tso-c-usr-shape-desArea-smooth__ae176504__entry__1"><p>&lt;mesh_smooth_name&gt;_DL_ELEM</p></td>
<td class = "entry" headers = "tso-c-usr-shape-desArea-smooth__ae176504__entry__2"><p>contains all elements with at least one node
out of &lt;mesh_smooth_name&gt;_DL_NODE</p></td>
</tr>
<tr class = "row">
<td class = "entry" headers = "tso-c-usr-shape-desArea-smooth__ae176504__entry__1"><p>&lt;mesh_smooth_name&gt;_SF</p></td>
<td class = "entry" headers = "tso-c-usr-shape-desArea-smooth__ae176504__entry__2"><p>contains all mesh smooth nodes that are automatically fixed</p></td>
</tr>
</tbody></table>

</div>

<div class = "section" id = "tso-c-usr-shape-desArea-smooth__tso-c-usr-shape-desArea-smooth-fixFreeNodes"><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">Fixation of Free Surface Nodes (FREE_SF)</h2>

<p>In the following figure, transition nodes are pictured for a) <code class = "ph codeph">FREE_SF=FIX,0</code>
and b) <code class = "ph codeph">FREE_SF=FREE</code>. The <code class = "ph codeph">MESH_SMOOTH</code> area contains
design nodes, surface nodes that are not design nodes and inner nodes.</p><table class = "table" id = "tso-c-usr-shape-desArea-smooth__ae258682"><caption/><colgroup><col/></colgroup><tbody class = "tbody">
<tr class = "row">
<td class = "entry"><br/><img class = "image" id = "tso-c-usr-shape-desArea-smooth__image_6CB8D451E2DF4576B25AE29F97C84238" src = "../TsoUserImages/tso-c-usr-shape-desArea-smooth-shape_transf.png"/><br/></td>
</tr>
</tbody></table>

<p>In many cases, it is desirable to adjust the surface nodes (in proximity
of the design nodes) in the mesh smoothing to achieve a smooth transition
between the design area and remaining area. However, in other cases,
it makes more sense to fix the surface nodes to avoid an unwanted displacement
of the nodes by the mesh smoothing.</p><p> For example, the front side of a
component is the design area. The <code class = "ph codeph">MESH_SMOOTH</code> area extends
over the entire component. If the back side of the component is to remain
unchanged, the surface nodes on the back side must be fixed. The <code class = "ph codeph">FREE_SF=FIX</code>
setting enables free surface nodes to be fixed automatically in all displacement
directions during the mesh smoothing:</p>
<pre class = "codeblock">
<code class = "ph codeph">
MESH_SMOOTH
 ...
 FREE_SF = FIX, &lt;number_of_node_layers&gt;
END_</code>
</pre>
<p>All surface nodes of the <code class = "ph codeph">MESH_SMOOTH</code> area that are neither design nodes nor
    limited by restrictions are interpreted as free surface nodes. <code class = "ph codeph">FREE_SF=FIX,0</code> is
    set by default; the free surface nodes cannot be moved during mesh smoothing.</p>
<p>The <code class = "ph codeph">FREE_SF=FIX</code> setting can also be modified by specifying a number of node
    layers (layers field next to <code class = "ph codeph">FREE_SF</code> choice menu, <code class = "ph codeph">default=0</code>);
	for example, <code class = "ph codeph">FREE_SF=FIX,5</code>. This number of node layers specifies how many node layers,
    beginning with the design nodes along the surface, should remain free and not be fixed. This
    enables the transition area in vicinity of the design area to be kept free despite the fixed
    surface. Node layers consisting of midside nodes are not taken into consideration, only node
    layers consisting of corner nodes.</p>

<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-smooth__ul_32DDF3786C134F008B205BD838DBC3D0">
<li class = "li">All surface nodes of the <code class = "ph codeph">MESH_SMOOTH</code>
       area are interpreted as free surface nodes if they are not design nodes and not restricted by
       a design variable constraint. As a result, surface nodes for which a
        <code class = "ph codeph">DVCON_SHAPE</code> is defined will not be interpreted as free nodes.</li>
<li class = "li">If <code class = "ph codeph">FREE_SF = FIX, &lt;number of layers&gt;</code> these
nodes are identified and fixed using a design variable constraint (<code class = "ph codeph">DVCON_SHAPE</code>
command). A node group with the name <code class = "ph codeph">&lt;mesh_smooth_name&gt;_SF</code>
is automatically generated for this purpose. A <code class = "ph codeph">DVCON_SHAPE</code>
command with the name <code class = "ph codeph">&lt;mesh_smooth_name&gt;_SFIX</code>
is then automatically generated for this node group defining the fixation
of the nodes. The generated <code class = "ph codeph">DVCON_SHAPE</code> command is
then automatically taken into account in the optimization.</li>
<li class = "li">Only corner nodes are fixed. Midside nodes are not
       taken into consideration.</li>
<li class = "li">In addition to the <code class = "ph codeph">FREE_SF</code> parameter, there is also
the possibility to limit the optimization displacements of the <code class = "ph codeph">MESH_SMOOTH</code>
nodes using design variable constraints (<code class = "ph codeph">DVCON_SHAPE</code>
entries).</li>
</ul></p>
</span></td></tr></table>
</div>

<div class = "section" id = "tso-c-usr-shape-desArea-smooth__tso-c-usr-shape-desArea-smooth-fixAreaBound"><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">Fixation of the MESH_SMOOTH Area Boundary</h2>

<table class = "table" id = "tso-c-usr-shape-desArea-smooth__ae295066"><caption/><colgroup><col/></colgroup><tbody class = "tbody">
<tr class = "row">
<td class = "entry"><br/><img class = "image" id = "tso-c-usr-shape-desArea-smooth__image_D662999078A949B2A822C58EA80D54CB" src = "../TsoUserImages/ae04809d.jpg" width = "450"/><br/></td>
</tr>
</tbody></table>
<p>The boundary between area and the remaining model is fixed per default
as the mesh smoothing should stay restricted to the area defined for
this purpose (<code class = "ph codeph">BOUNDARY = FIX</code> parameter). The nodes
on the boundary are internally stored in a node group with the name
<code class = "ph codeph">&lt;Mesh_smooth_id_name&gt;_BOUN</code>. </p>
<p>If in some cases you might not want all "border" nodes to be fixed,
you can select the <code class = "ph codeph">BOUNDARY = FREE</code> option. Then you
are responsible to fix the proper nodes by yourself wth <code class = "ph codeph">DVCON_SHAPE</code>
entries.</p>
</div>

<div class = "section" id = "tso-c-usr-shape-desArea-smooth__tso-c-usr-shape-desArea-smooth-autoArea"><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">Automatic MESH_SMOOTH Area (MS_LAYER)</h2>

<p>The area for mesh smoothing should be as small as possible but as large as necessary. The element
   group <code class = "ph codeph">ALL_ELEMENTS</code> should not be used for smoothing if only a small
   part of the model should be optimized. The calculation time of the optimization
   module increases and all free surface nodes must be fixed explicitly by the user. </p>
<p>The <code class = "ph codeph">MESH_SMOOTH</code> parameter <code class = "ph codeph">MS_LAYER</code> allows the automatic
    definition of a mesh smooth element group consisting of a certain number of element layers with
    reference to a node group. In
     <span class = "ph">Tosca Structure.gui</span>,
    it is chosen by switching the radio button for the mesh smooth area to <code class = "ph codeph">ND_GROUP,
     LAYER</code> in and choosing group and number correspondingly.</p>
</div>


<div class = "section" id = "tso-c-usr-shape-desArea-smooth__tso-c-usr-shape-desArea-smooth-example1"><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">Example</h2>

<p>Starting at the design node group, a mesh smooth domain is
generated with 5 element layers:</p>
<pre class = "codeblock">
<code class = "ph codeph">
MESH_SMOOTH
 ID_NAME  = new_mesh_smooth
 MS_LAYER = design_nodes, 5
 FREE_SF  = FIX, 3
END_
</code>
</pre>
<p>In <span class = "ph">Tosca Structure.gui</span>,
the definition looks as follows:</p>
<table class = "table" id = "tso-c-usr-shape-desArea-smooth__ae231268"><caption/><colgroup><col/></colgroup><tbody class = "tbody">
<tr class = "row">
<td class = "entry"><br/><img class = "image" src = "../TsoUserImages/ae038778.png" width = "450"/><br/></td>
</tr>
</tbody></table>

</div>

<div class = "section" id = "tso-c-usr-shape-desArea-smooth__tso-c-usr-shape-desArea-smooth-convMesh"><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"> Convergence of the Smoothed Mesh (LEVEL_CONV)</h2>

<p>The algorithms for mesh smoothing are iterative; the mesh smoothing is performed in several
    successive steps. The decisive factor for the convergence of the smoothed mesh is the number of
    steps in combination with the increments. The iterative process can be influenced using the
    convergence parameter, <code class = "ph codeph">LEVEL_CONV</code>. The default setting is
     <code class = "ph codeph">LEVEL_CONV=LOW</code>; only a few iterations with large increments are
    performed. This is the most efficient setting. The convergence behavior can be improved with the
    settings <code class = "ph codeph">LEVEL_CONV=MEDIUM</code> and <code class = "ph codeph">LEVEL_CONV=HIGH</code>. These settings
    result in increasingly more iterations with smaller increments to be performed which, however,
    can result in a substantial increase in the computing time required. The goal should always be
    to work with the lowest possible convergence parameter to avoid unnecessarily long computing
    times.</p>
<pre class = "codeblock">
<code class = "ph codeph">
MESH_SMOOTH
 ...
 LEVEL_CONV = LOW
END_
</code>
</pre>

<table class = "Remark" id = "table132"><tr><td class = "Remark"><span class = "run-in.important">Important:
				</span><span class = "notecontent"><p>You should adjust the setting of the <code class = "ph codeph">LEVEL_QUAL</code> parameter instead of increasing
                    the convergence level.</p>
<p>The <code class = "ph codeph">LOW</code> convergence level is sufficient to create
a good mesh. If a higher convergence level (<code class = "ph codeph">MEDIUM, HIGH</code>)
is desired, be prepared for a substantial increase in computing time.</p></span></td></tr></table>

</div>

<div class = "section" id = "tso-c-usr-shape-desArea-smooth__tso-c-usr-shape-desArea-smooth-enfRestr"><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">Enforcing Restrictions (LEVEL_DVCON)</h2>

<p>The mesh smoothing algorithm consists of several subalgorithms that are executed consecutively.
    The displacement of the <code class = "ph codeph">MESH_SMOOTH</code> nodes can be restricted by
     <code class = "ph codeph">DVCON_SHAPE</code> entries (declared with <code class = "ph codeph">OPTIMIZE</code>). The
     <code class = "ph codeph">LEVEL_DVCON</code> setting can be used to control the enforcement of the
     <code class = "ph codeph">DVCON_SHAPE</code> entries in the individual subalgorithms for the mesh smoothing.
     <code class = "ph codeph">LEVEL_DVCON=LOW</code> is set by default; the <code class = "ph codeph">DVCON_SHAPE</code>
    entries for mesh smoothing are forced. This is the most efficient setting. The settings
     <code class = "ph codeph">LEVEL_DVCON=MEDIUM</code> and <code class = "ph codeph">LEVEL_DVCON=HIGH</code> causes the
     <code class = "ph codeph">DVCON_SHAPE</code> entries to be forced more often. The goal is to work with the
    lowest parameter value possible to avoid unnecessarily long computing times.</p>
<pre class = "codeblock">
<code class = "ph codeph">
MESH_SMOOTH
 ...
 LEVEL_DVCON = LOW
END_
</code>
</pre>

</div>

<div class = "section" id = "tso-c-usr-shape-desArea-smooth__tso-c-usr-shape-desArea-smooth-quality"><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">Quality Control and Improvement (LEVEL_QUAL)</h2>

<p>Mesh smoothing attempts to improve the quality of the mesh despite the mesh distortion that
                results from the optimization displacement of the design nodes. The mesh quality can
                be controlled using the <code class = "ph codeph">LEVEL_QUAL</code> parameter. The value
                    <code class = "ph codeph">LEVEL_QUAL=LOW</code> is set by default; improvement of the mesh
                quality is attempted during the mesh smoothing. This is the most efficient setting.
                Generally, an increase to <code class = "ph codeph">LEVEL_QUAL=MEDIUM</code> or
                    <code class = "ph codeph">LEVEL_QUAL=HIGH</code> leads to further improvement of the mesh
                quality but at the cost of increased computing time. The subalgorithm can be
                deactivated by setting <code class = "ph codeph">LEVEL_QUAL=NOT</code>.</p>
<p>Mesh smoothing attempts to improve the quality of the mesh despite the mesh distortion that
    results from the optimization displacement of the design nodes. The mesh quality can be
    controlled using the <code class = "ph codeph">LEVEL_QUAL</code> parameter. The value
     <code class = "ph codeph">LEVEL_QUAL=LOW</code> is set by default; improvement of the mesh quality is
    attempted during the mesh smoothing. This is the most efficient setting. Generally, an increase
    to <code class = "ph codeph">LEVEL_QUAL=MEDIUM</code> or <code class = "ph codeph">LEVEL_QUAL=HIGH</code> leads to further
    improvement of the mesh quality but at the cost of increased computing time. The subalgorithm
    can be deactivated by setting <code class = "ph codeph">LEVEL_QUAL=NOT</code>.</p>
<pre class = "codeblock">
<code class = "ph codeph">
MESH_SMOOTH
 ...
 LEVEL_QUAL = LOW
END_
</code>
</pre>

<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-smooth__ul_0249BD7733954C22809BACD6AC84B247">
<li class = "li">It is not recommended to deactivate the quality level (<code class = "ph codeph">LEVEL_QUAL=NOT</code>).</li>
<li class = "li">The <code class = "ph codeph">LOW</code> level is sufficient for many applications.
A higher level (<code class = "ph codeph">MEDIUM</code>, <code class = "ph codeph">HIGH</code>) should only be selected
if the results are unsatisfactory or the quality of the mesh needs
to be improved.</li>
<li class = "li">The more <code class = "ph codeph">TETRA</code> elements there are in a mesh, the
higher the quality level needed. The additional computing time should
be endured in any case because it is usually possible to achieve greater
changes to the shape.</li>
<li class = "li">Further quality improvement might be achieved by reducing the amount
of optimization displacement. This option should be tried if satisfying
results have not been achieved despite having used the HIGH level setting.
</li>
</ul></p></span></td></tr></table>

<p><span class = "ph uicontrol" id = "tso-c-usr-shape-desArea-smooth__tso-c-usr-shape-desArea-smooth-qualityPar">Quality parameters</span>
</p><p>The quality values of the sub algorithm mentioned are determined for each element and base on the
    angle quality and, for tetrahedral elements, the quality of the aspect ratio. The quality value
    lies between 1 (best element quality) and 0 (poorest element quality). The poorest quality value
    of an angle or aspect ratio is always decisive for the element. The user can specify the
    interval limit (<code class = "ph codeph">*_LOW_*, *_HIGH_*</code>) outside of which the elements are rated as
    poor by the quality algorithm. The poorer an element is rated, the greater the consideration it
    will be given in improving the element quality.</p>
<pre class = "codeblock">
<code class = "ph codeph">
MESH_SMOOTH
 ...
 QUAD_LOW_ANGLE    = &lt;value&gt;
 QUAD_HIGH_ANGLE   = &lt;value&gt;
 TRIA_LOW_ANGLE    = &lt;value&gt;
 TRIA_HIGH_ANGLE   = &lt;value&gt;
 TETRA_LOW_ASPECT  = &lt;value&gt;
 TETRA_HIGH_ASPECT = value&gt;
END_
</code>
</pre>
<p>The way the quality values are determined can be outlined as follows:</p>
<ul class = "ul" id = "tso-c-usr-shape-desArea-smooth__ul_EC52F2DD65AB4B9AA832E87F0508EAFB">
<li class = "li"><code class = "ph codeph">QUAD</code> planes (<code class = "ph codeph">QUAD</code> elements, lateral
planes of <code class = "ph codeph">HEXA</code> and <code class = "ph codeph">PENTA</code> elements):<ul class = "ul" id = "tso-c-usr-shape-desArea-smooth__ul_746089234FB048C49CD3724EA05E03A4"><li class = "li">Optimum angle is <code class = "ph codeph">90°-&gt; quality=1</code>.</li>
<li class = "li">Angle smaller or equal to <code class = "ph codeph">QUAD_LOW_ANGLE -&gt; quality=0</code>.</li>
<li class = "li">Angle greater or equal to <code class = "ph codeph">QUAD_HIGH_ANGLE -&gt; quality=0</code>.</li>
</ul></li>
</ul>
<ul class = "ul" id = "tso-c-usr-shape-desArea-smooth__ul_A9239F6668D949B69E81577347EA7496">
<li class = "li"><code class = "ph codeph">TRIA</code> surfaces (<code class = "ph codeph">TRIA</code> elements, lateral
surfaces of <code class = "ph codeph">TETRA</code> and <code class = "ph codeph">PENTA</code> elements):<ul class = "ul" id = "tso-c-usr-shape-desArea-smooth__ul_09AA739E7A7143E381D79CD5BE9E668D">
<li class = "li">Optimum angle is <code class = "ph codeph">60° -&gt; quality=1</code>.</li>
<li class = "li">Angle smaller or equal to <code class = "ph codeph">TRIA_LOW_ANGLE -&gt; quality=0</code>.</li>
<li class = "li">Angle greater or equal to <code class = "ph codeph">TRIA_HIGH_ANGLE -&gt; quality=0</code>.</li>
</ul>
</li>
</ul>
<ul class = "ul" id = "tso-c-usr-shape-desArea-smooth__ul_334F3288E13C43BC86C8C4DC097000A2">
<li class = "li"><code class = "ph codeph">TETRA</code> elements:<ul class = "ul" id = "tso-c-usr-shape-desArea-smooth__ul_9132D1FF6EB64D4FA4F9E65261F70C33">
<li class = "li">Optimum aspect ratio is 1.33 -&gt; <code class = "ph codeph">quality=1</code>.</li>
<li class = "li">Aspect ratio smaller or equal to <code class = "ph codeph">TETRA_LOW_ASPECT -&gt; quality=0</code>.</li>
<li class = "li">Aspect ratio greater or equal to <code class = "ph codeph">TETRA_HIGH_ASPECT -&gt; quality=0</code>.</li>
</ul></li>
</ul>

<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-smooth__ul_17B4F64EC7794C12A162DA6282C23A78">
<li class = "li">With <code class = "ph codeph">LEVEL_QUAL=NOT</code> no element quality is calculated
and the interval limits are not required.</li>
<li class = "li">The default values are practical and usually do not need to be changed.
Changing the interval limits usually only leads to a slight change in
the mesh quality.</li>
<li class = "li">The value for <code class = "ph codeph">QUAD_LOW_ANGLE</code> must lie between 0°
and 89°. The value for <code class = "ph codeph">QUAD_HIGH_ANGLE</code> must lie between
91° and 180°. The value for <code class = "ph codeph">TRIA_LOW_ANGLE</code> must lie
between 0° and 59°. The value for <code class = "ph codeph">TRIA_HIGH_ANGLE</code>
must lie between 61° and 180°. The value for <code class = "ph codeph">TETRA_LOW_ASPECT</code>
must lie between 0.00177 and 1.30. The value for <code class = "ph codeph">TETRA_HIGH_ASPECT</code>
must lie between 1.36 and 999.</li>
<li class = "li">Determination of the local quality in the <code class = "ph codeph">MESH_SMOOTH</code>
is decoupled from the global quality determination that is activated
for the entire model with the <code class = "ph codeph">READ_ELEM_QUALITY</code> parameter
of the <code class = "ph codeph">OPTIONS</code> command.
  
The local quality values of <code class = "ph codeph">MESH_SMOOTH</code> cannot be accessed
by the user.</li>
</ul></p></span></td></tr></table>

</div>

<div class = "section" id = "tso-c-usr-shape-desArea-smooth__tso-c-usr-shape-desArea-smooth-poorQuality"><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">Poor Quality Elements</h2>

<p>A list of the elements that are rated as poor quality by <code class = "ph codeph">MESH_SMOOTH</code> with an
    internal quality value of zero can be made as an output. To do so, set the
     <code class = "ph codeph">QUAL_LIST=YES</code> parameter. The default setting is <code class = "ph codeph">QUAL_LIST=NO</code>,
    and no list of poor quality elements is printed out.</p>
<pre class = "codeblock">
<code class = "ph codeph">
MESH_SMOOTH
 ...
 QUAL_LIST = NO
END_
</code>
</pre>

<div class = "note"><span class = "run-in.note">Note:
			</span><span class = "notecontent"><p>The list of poor quality elements can only be printed for <code class = "ph codeph">LEVEL_QUAL=LOW,
MEDIUM</code> or <code class = "ph codeph">HIGH</code>. No element qualities are calculated
with <code class = "ph codeph">LEVEL_QUAL=NOT</code> and poor elements cannot be identified.</p></span></div>

</div>

<div class = "section" id = "tso-c-usr-shape-desArea-smooth__tso-c-usr-shape-desArea-smooth-solverCheck"><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">Quality Criteria of the Solver (SOLVER_CHECK)</h2>

<p>In shape optimization, there is a danger that the desired optimum cannot be achieved with the
    specified mesh that is continually adjusted to changing conditions. This means that the mesh is
    a component that should be restricted in the optimization job. Usually, the quality of the mesh
    decreases with an increase in the number of design cycles.</p>
<p>Therefore, the program for the finite element analysis might abort.
Some quality criteria for elements are checked in the finite element
analysis program. If the solver identifies elements that are too poor
in quality, the finite elements analysis is aborted. This has the disadvantage
that no analysis results for the subsequent design cycle are then available
in <span class = "ph">Tosca Structure</span>
and therefore, the optimization must be aborted (error message due to
lack of results data instead of error message due to poor mesh quality).</p>
<p>Using the option <code class = "ph codeph">SOLVER_CHECK=YES</code> (default is <code class = "ph codeph">NO</code>)
the user has the possibility, to check some finite element solver quality
criteria in the <span class = "ph">Tosca Structure</span>
optimization module before the actual finite elements analysis. The quality
criteria <code class = "ph codeph">Q4TAPER, Q4SKEW, T3SKEW</code> and <code class = "ph codeph">TETRAAR</code>
are checked. The poorest values and the corresponding elements are logged
to the output file. The default values in <span class = "ph">Tosca Structure</span>
can be changed by the user using the options <code class = "ph codeph">Q4TAPER, Q4SKEW,
T3SKEW</code> and <code class = "ph codeph">TETRAAR</code>. The option <code class = "ph codeph">SOLVER_STOP=YES</code>
(default is <code class = "ph codeph">NO</code>) causes a regular program stop in the
<span class = "ph">Tosca Structure</span>
optimization module when one of the quality criteria is violated. This
means that the subsequent finite elements analysis, which would be canceled
without results data, is no longer carried out. This setting has the
advantage that an optimization stop is easier to understand for the user
who is saved from having to check the finite element solver results files
for the source of the error.</p>
<pre class = "codeblock">
<code class = "ph codeph">
MESH_SMOOTH
...
SOLVER_CHECK = YES
Q4TAPER      = &lt;value&gt;
Q4SKEW       = &lt;value&gt;
T3SKEW       = &lt;value&gt;
TETRAAR      = &lt;value&gt;
SOLVER_STOP  = YES
END_
</code>
</pre>

<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-smooth__ul_AB832E7400FA48B1AC5AD7BBDB4DF9E0">
<li class = "li">The allowed value limit for the element quality should be set identically
in <span class = "ph">Tosca Structure</span>
and the finite element solver.</li>
<li class = "li">The option <code class = "ph codeph">SOLVER_STOP=YES</code> is only active when <code class = "ph codeph">SOLVER_CHECK=YES</code>
is also set. This means that the regular program stop due to poor mesh
quality can only be carried out if the mesh quality is checked.</li>
<li class = "li">The optimization in <span class = "ph">Tosca Structure</span> stops when the <code class = "ph codeph">SOLVER_STOP</code> condition is fulfilled or stops when reaching
       the global condition <code class = "ph codeph">STOP, ITER_MAX</code>, which sets the maximum number of
       allowed iterations (design cycles).</li>
</ul></p></span></td></tr></table>

</div>


<div class = "section" id = "tso-c-usr-shape-desArea-smooth__tso-c-usr-shape-desArea-smooth-freezeDesignNodes"><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">Modification of Design Nodes (FREEZE_DESIGN_NODES)</h2>

<p>Especially the <code class = "ph codeph">CONSTRAINED_LAPLACIAN</code> mesh smoothing algorithm performs
    improvements on the mesh surface. This implies that design nodes will be moved as well. In
    sensitivity-based shape optimizations with manufacturing constraints, the mesh smoothing module
    can overrule the manufacturing constraint. For this reason, it is possible to exclude the design
    nodes from mesh smoothing; the mesh smoothing module will not modify the design nodes. </p>
<pre class = "codeblock">
<code class = "ph codeph">
MESH_SMOOTH
 ID_NAME             = MY_MESHSMOOTH
 ...
 FREEZE_DESIGN_NODES = YES | <span class = "ph uicontrol">NO</span>
END_
</code>
</pre>

</div>


<div class = "section" id = "tso-c-usr-shape-desArea-smooth__tso-c-usr-shape-desArea-smooth-distortedElem"><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">Correction of Distorted Elements (CORRECT_ELEMENTS)</h2>

<p>In some cases, the program for the finite element analysis aborts due to bad element quality
    (inverted element or aspect ratio too big) some time during the optimization and thus prevents
     <span class = "ph">Tosca Structure</span> from performing the optimization task. Very often only a few elements cause this issue and
    the desired optimum is only slightly affected when modifying the concerned elements to gain a
    better mesh quality.</p>
<p>
<br/><img border = "1" class = "image" id = "tso-c-usr-shape-desArea-smooth__image_38BB54604A1C411988D118873ED9F27C" src = "../TsoUserImages/shape_corrected_element.png" width = "450"/><br/>
</p>
<p> In the above figure the correction of distorted elements is explained:
a) original element, b) optimized element with bad aspect ratio (d),
c) corrected element  (good aspect ratio). </p>

    <p>The element correction feature can be activated with the <code class = "ph codeph">CORRECT_ELEMENTS = YES</code> option
    (default, use <code class = "ph codeph">NO</code> to disable) for all supported element types.
    For elements with bad element quality, it is tried to correct the element
     <code class = "ph codeph">CE_CORRECTION_LOOPS</code> times by multiplying the optimization displacements with
     <code class = "ph codeph">CE_CORRECTION_FACTOR</code> (default is 0.5). If the element is still in a poor
    state, it depends on <code class = "ph codeph">CE_FAIL_ACTION</code> what is done next:
    If <code class = "ph codeph">CE_FAIL_ACTION = RESET</code> is set (default), the optimization displacement is set
    to zero.
    If <code class = "ph codeph">CE_FAIL_ACTION</code> is set to <code class = "ph codeph">CONTINUE</code> the element is
    left as it is (with the risk that the solver will abort).</p>
<pre class = "codeblock">
<code class = "ph codeph">
MESH_SMOOTH
 ...
 TETRAAR              = &lt;value&gt;
 CORRECT_ELEMENTS     = YES | NO
 CE_CORRECTION_LOOPS  = &lt;int value&gt;
 CE_CORRECTION_FACTOR = &lt;value&gt; (0.5)
 CE_FAIL_ACTION       = RESET | CONTINUE
END_
</code>
</pre>

<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-smooth__ul_CD666BE5A39A420EA35B86AB96A8D6F9">
    <li class = "li"> This option is only working with tetrahedral, hexahedral, pyramid, quad, and tria elements
                            (with or without midnodes). </li>
<li class = "li">The element quality for tetrahedral elements with four nodes is determined
by calculating the aspect ratio. Use the <code class = "ph codeph">TETRAAR</code> setting
to influence the quality detection.</li>
<li class = "li">The element quality for quadratic tetrahedral elements
                            and for hexahedral elements is determined by calculating the Jacobian.
                            If it is negative, the element needs to be corrected.</li>
<li class = "li">To make sure that the solver will not fail due to bad element quality,
the <code class = "ph codeph">TETRAAR</code> quality criteria should be set a little
bit lesser than in the solver.</li>
<li class = "li">The modified elements are saved to a group with name <code class = "ph codeph">’CORRECTED_ELEMENTS_&lt;iteration&gt;’</code>.</li>
<li class = "li">When used during <code class = "ph codeph">TEST_SHAPE</code> with more than one increment
only the group of the last increment step is saved.</li>
</ul></p></span></td></tr></table>

</div>

<div class = "section" id = "tso-c-usr-shape-desArea-smooth__tso-c-usr-shape-desArea-smooth-strategy"><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">Mesh Smooth Strategy (STRATEGY)</h2>

<p>The mesh smooth strategy is defined by the parameter <code class = "ph codeph">STRATEGY</code>. By
default, <code class = "ph codeph">STRATEGY = CONSTRAINED_LAPLACIAN</code>, and the default
mesh smoothing method is used. If, instead, <code class = "ph codeph">STRATEGY = LOCAL_GRADIENT</code>
is chosen, the optimization-based mesh smoothing algorithm is used. In
each iteration, it identifies the elements with the worst element quality
and improves them by displacing the nodes. For relatively small models
(less than 1000 nodes in the mesh smooth area), the method usually results
in meshes with elements having the optimal shape; the measure of the
optimality is roughly the ratio of the element volume (area for shell
elements) to the corresponding power of its diameter. For larger models,
the iterations tend to stop before the optimal mesh quality is reached
since otherwise the calculation time becomes too large. In this case,
the changes might only affect the elements with the worst element quality.
The nodes on the surface are displaced as well, though their displacements
are chosen to be parallel to the surface. It guarantees that the overall
geometry remains mostly unchanged by the algorithm.</p>
<p><div class = "note"><span class = "run-in.note">Note:
			</span><span class = "notecontent"><code class = "ph codeph">level_conv</code> and <code class = "ph codeph">level_dvcon</code>
parameters are not used if <code class = "ph codeph">STRATEGY = LOCAL_GRADIENT</code>
is specified.</span></div>
</p>
<p>By using <code class = "ph codeph">STRATEGY = EXTERNAL</code>, you can use separate mesh smoother algorithms
   during the optimization, e.g. with the <span class = "ph">CST</span> solver.
   The mesh corrections are read from an additional, by default optional, file defined using the command item 
   <code class = "ph codeph">FILE</code>. </p>
<pre class = "codeblock">
<code class = "ph codeph">
MESH_SMOOTH
    ID_NAME   = MY_EXT_MESHSMOOTH
    STRATEGY  = EXTERNAL
    FILE_NAME = delta_mesh.onf
END_
</code>
</pre>
</div>


</div>

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