<?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 = "Control of volume generating isosurfaces is described in this section."/><meta name = "description" content = "Control of volume generating isosurfaces is described in this section."/><meta name = "DC.format" content = "HTML5"/><meta name = "DC.identifier" content = "tso-c-usr-validation-smooth-volContr"/><meta name = "DC.language" content = "en"/><link rel = "stylesheet" type = "text/css" href = "../DSDocUI_XML34.css"/><title>Volume Control</title>
<script type = "text/javascript" src = "../DSDocUI_Highlight34.js">
  	/* */
  	</script></head><body onLoad = "highlightSearchTerms();" id = "tso-c-usr-validation-smooth-volContr">
<a name = "hj-top"> </a><table class = "table1" id = "table11"><tr><td><table class = "DocHeader"><tr><td class = "DocHeader1" colspan = "2"><h1> Volume Control</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 = "header"><p class = "abstract">
<span class = "shortdesc">Control of volume generating isosurfaces is described in this
section.</span>

</p>

</p></td></tr></table></td></tr></table>




<div class = "body conbody">
<p>If the task specified by the user is <span class = "ph">iso</span> or <span class = "ph">all_iterations</span>,
the result of the calculation is the isosurface generated by isocut and
possibly modified by the smoothing and data reduction. After these operations
are successively finished, the user gets the message that looks as
follows: </p>
<table class = "table" id = "tso-c-usr-validation-smooth-volContr__ah705246"><caption/><colgroup><col/></colgroup><tbody class = "tbody">
<tr class = "row">
<td class = "entry">
<pre class = "codeblock">
Iso-surface successfully generated
- iso-value: 0.300
- relative volume: 57.3%
</pre>
</td>
</tr>
</tbody></table>

<p>For solid models, the volume displayed in this message is the ratio
of the volume of solid(s) defined by the isosurface to the original
volume, which is the sum of the volumes of all solid elements used in the
topology optimization, except those excluded using the group commands.
The original volume is also equal to the volume of the solid(s) defined
by the surface produced from the same model file using the <span class = "ph">surface</span>
task, provided that the data reduction is turned off. For shell element
models, the definition is the same except that "volume" should be replaced
with "area". If the model contains both solid and shell elements, only
the solid elements are considered.</p>
<p>In order to achieve a required relative volume, the user might change
the isovalue and recalculate the isosurface, keeping in mind that larger
isovalues usually lead to smaller volumes. The same result can be achieved
using the automatic approach implemented in 
<span class = "ph">Tosca Structure.smooth</span>.</p>
<p>In order to turn it on, the parameter <code class = "ph codeph">TARGET_VOLUME</code> should be set
to a value between 0 and 1. Then, the isovalue specified by the <code class = "ph codeph">ISO_VALUE</code>
parameter is ignored and an iterative equation solving method is used
to determine the isovalue that leads to the specified target relative volume.</p>
<p><table class = "Remark" id = "table132"><tr><td class = "Remark"><span class = "run-in.important">Important:
				</span><span class = "notecontent">If this volume is larger than the volume for isovalue equal to zero or
smaller than the volume for isovalue equal to 1, an error message is
produced; in this case, it is unlikely that the required relative volume
can be achieved for any isovalue between 0 and 1.<p> Otherwise, the convergence
to a solution is guaranteed unless the dependence of target volume
on isovalue is noncontinuous, that sometimes occurs for small models.</p>
</span></td></tr></table>
</p>
<p>The maximal number of iterations is fixed (currently 20).</p>
<p><table class = "Remark" id = "table132"><tr><td class = "Remark"><span class = "run-in.important">Important:
				</span><span class = "notecontent"> If the iterations
fail to converge before this number is reached, an error message will
be produced. <p>In this case, it is recommended to run 
<span class = "ph">Tosca Structure.smooth</span>
again using the isovalue obtained in the last iteration, although the
resulting relative volume would probably differ from the value used
initially. The iterations are treated as having converged if the difference
between the calculated and the desired values is less than 10% of the
desired value, and, in the same time, less than 1%.</p>
</span></td></tr></table>

</p>
<p>If the model contains several design areas, different target relative
volumes might be needed for one or more regions. For this reason, the
possibility to define isovalues and target volumes differently for each
group is implemented in 
<span class = "ph">Tosca Structure.smooth</span>;
however, it is not supported in 
<span class = "ph">Tosca Structure.gui</span>.</p>
<p>The command</p>
<pre class = "codeblock">
<code class = "ph codeph">
TARGET_VOLUME_GROUP = &lt;group name&gt;, &lt;target relative volume&gt;
</code>
</pre>
<p>with <code class = "ph codeph">&lt;group name&gt;</code> being a name of a group defined
in an ONF group file defines the relative volume for this group. Then,
for each such command, the isovalue for the group will be found first
by using the iterative method applied to this group alone, after excluding
the elements marked as deleted.</p><p>For other groups, the isovalue can be
specified directly using the following command: </p>
<pre class = "codeblock">
<code class = "ph codeph">    ISO_VALUE_GROUP = &lt;group name&gt;, &lt;isovalue&gt;
</code>
</pre>
<p>For the rest of the material, the default isovalue given
by <code class = "ph codeph">ISO_VALUE</code> command (or, equivalently, <code class = "ph codeph">ISO_VALUE_GROUP</code>
command for the group <code class = "ph codeph">all</code>) is used. </p>
<table class = "Remark" id = "table132"><tr><td class = "Remark"><span class = "run-in.important">Important:
				</span><span class = "notecontent"><p>The groups for
which the target relative volumes or the isovalues are defined must be
disjoint.</p>
<p>In particular, the command <code class = "ph codeph">TARGET_VOLUME</code> (or, equivalently,
<code class = "ph codeph">TARGET_VOLUME_GROUP</code> for the group <code class = "ph codeph">all</code>) is not allowed
if <code class = "ph codeph">TARGET_VOLUME_GROUP</code> or <code class = "ph codeph">ISO_VALUE_GROUP</code>
commands with groups not equal to <code class = "ph codeph">all</code> are used.</p></span></td></tr></table>

<p>After the isovalues for all groups with the specified target relative
volumes are calculated, they are interpolated to get the nodal isovalues,
which are then used for the isocut. Therefore, in an area between two
regions with different isovalues the average values are used. This leads
to smooth transition between the regions, but also might change the relative
volumes of the regions; additional error might be introduced by the surface
smoothing. Generally, the number of elements in the transition region
is relatively small, therefore the error can be neglected.</p>
</div>

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