<?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 = "Tosca Structure.smooth allows processing the design suggestion obtained by topology optimization in Tosca Structure. As the input, it takes the ONF model file and the ONF optimization result file, and produces the isosurface saved in one or more formats, suitable as input in CAD systems (STL, IGES and other) or as means for visualization (VTFX)."/><meta name = "description" content = "Tosca Structure.smooth allows processing the design suggestion obtained by topology optimization in Tosca Structure. As the input, it takes the ONF model file and the ONF optimization result file, and produces the isosurface saved in one or more formats, suitable as input in CAD systems (STL, IGES and other) or as means for visualization (VTFX)."/><meta name = "DC.format" content = "HTML5"/><meta name = "DC.identifier" content = "tso-c-usr-validation-smooth-resTopo"/><meta name = "DC.language" content = "en"/><link rel = "stylesheet" type = "text/css" href = "../DSDocUI_XML34.css"/><title>Processing Results of Topology Optimization</title>
<script type = "text/javascript" src = "../DSDocUI_Highlight34.js">
  	/* */
  	</script></head><body onLoad = "highlightSearchTerms();" id = "tso-c-usr-validation-smooth-resTopo">
<a name = "hj-top"> </a><table class = "table1" id = "table11"><tr><td><table class = "DocHeader"><tr><td class = "DocHeader1" colspan = "2"><h1> Processing Results of Topology Optimization</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">
<span class = "ph">Tosca Structure.smooth</span>
allows processing the design suggestion obtained by topology optimization
in <span class = "ph">Tosca Structure</span>.
As the input, it takes the <code class = "ph codeph">ONF</code> model file and the <code class = "ph codeph">ONF</code> optimization result file, and produces the isosurface saved
in one or more formats, suitable as input in CAD systems (<code class = "ph codeph">STL, IGES </code> and other) or as means for
visualization (<code class = "ph codeph">VTFX</code>).
</span>

</p>
<ul><li><a href = "#tso-c-usr-validation-smooth-resTopo__" id = "toc_rg" title = "">Example</a></li></ul>
</p></td></tr></table></td></tr></table>




<div class = "body conbody">
<p> The following figures illustrate the process:   </p>
<table class = "table" id = "tso-c-usr-validation-smooth-resTopo__ah695264"><caption/><colgroup><col/><col/><col/></colgroup><tbody class = "tbody">
<tr class = "row">
<td class = "entry">
<br/><img class = "image" src = "../TsoUserImages/smooth_transverselink1.png" width = "350"/><br/>
</td>
<td class = "entry">
<p>
<span class = "ph uicontrol">  Original model (MODEL_fem.onf)</span>
</p>
<p>
<span class = "ph">Tosca Structure</span>
calculates the optimal material distribution, represented by the block-like
structure. It contains solid or shell finite elements, and therefore
might be unsuitable for CAD systems; in addition, it might contain many
elements in the inside that are not important since the shape is defined
by the surface of the solid model only. The surface itself is rough,
especially in case of a tetrahedral mesh, and therefore the smoothing
is needed.</p>
</td>
</tr>
<tr class = "row">
<td class = "entry"><br/><img class = "image" src = "../TsoUserImages/smooth_transverselink2.png" width = "350"/><br/></td>
<td class = "entry">
<p><span class = "ph uicontrol"> Topology optimization  result</span> generated by
<span class = "ph">Tosca Structure.report</span>
(TP_015.onf)</p>
<p>The model file and the optimization result file containing the
optimized material density are loaded by <span class = "ph">Tosca Structure.smooth</span>.
Using these data, the isosurface separating the elements with zero and
nonzero density is found.</p>
</td>
</tr>
<tr class = "row">
<td class = "entry"><br/><img class = "image" src = "../TsoUserImages/smooth_transverselink3.png" width = "350"/><br/></td>
<td class = "entry">
<p><span class = "ph uicontrol">Isosurface</span> generated by <span class = "ph">Tosca Structure.smooth</span> (no
smoothing, no reduction)</p>
<p>
The surface smoothing is done by displacing
the nodes of the surface.
</p>
</td>
</tr>
<tr class = "row">
<td class = "entry"><br/><img class = "image" src = "../TsoUserImages/smooth_transverselink4.png" width = "350"/><br/></td>
<td class = "entry"><p><span class = "ph uicontrol"> Isosurface after smoothing (no reduction)</span></p></td>
</tr>
<tr class = "row">
<td class = "entry"><br/><img class = "image" src = "../TsoUserImages/smooth_transverselink5.png" width = "350"/><br/></td>
<td class = "entry">
<p><span class = "ph uicontrol">Isosurface after smoothing and data reduction</span></p>
<p>Finally, the data reduction might be performed; it is turned off by default.</p>
</td>
</tr>
</tbody></table>

<div class = "note"><span class = "run-in.note">Note:
			</span><span class = "notecontent">
<p>For a shell element model, the same actions are performed, with the difference
that the smoothing is applied to the border nodes only. In both cases,
the smoothing can be turned off, though it is not recommended.</p>
</span></div>

<p> In order to calculate a single isosurface, the setting</p>
<pre class = "codeblock">
<code class = "ph codeph">
TASK = iso
</code>
</pre>
<p>should be used along with</p>
<pre class = "codeblock">
<code class = "ph codeph">
DATABASE     = "opt_res_database"
DESIGN_CYCLE = &lt;value&gt;
</code>
</pre>
<table class = "Remark" id = "table132"><tr><td class = "Remark"><span class = "run-in.important">Important:
				</span><span class = "notecontent">
<p>If the <code class = "ph codeph">DESIGN_CYCLE</code> is omitted, the default value of <code class = "ph codeph">LAST</code>
	is used, i.e. the results from the last available design cycle are chosen. All output files are created in the same
	directory, and their names are constructed as some common part plus the
	corresponding suffix (if required) and extension. The parameter <code class = "ph codeph">OUTPUT_FILE</code>
defines both the directory and this common part.</p>
</span></td></tr></table>


<div class = "example"><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>Using</p>
<pre class = "codeblock">
<code class = "ph codeph">
OUTPUT_FILE = c:\MyDirectory\MyOutput
</code>
</pre>
<p>with the output in <code class = "ph codeph">VTFX</code> and<code class = "ph codeph"> IGES</code>
format for slices using cubic splines results in the files</p>
<pre class = "codeblock">
<code class = "ph codeph">
c:\MyDirectory\MyOutput.vtfx
c:\MyDirectory\MyOutput_slices.igs.
</code>
</pre>
<p><code class = "ph codeph">OUTPUT_FILE</code> is set automatically to <code class = "ph codeph">
&lt;jobname&gt;/TOSCA_POST/&lt;SMOOTH
item name&gt;,
</code> where <code class = "ph codeph">&lt;SMOOTH item name&gt;</code>
is the name of the item in the <span class = "ph">Task Manager</span> (<code class = "ph codeph">SMOOTH_INSTANCE</code>
by default). If this parameter is omitted in the parameter file, it is
set to <code class = "ph codeph">&lt;directory of ONF model&gt;/&lt;ID_NAME&gt;</code>.</p>
<p>There is also the possibility to visualize the optimization process
by generating the isosurfaces for all optimization iterations and saving
them in an animation sequence in a<code class = "ph codeph"> VTFX</code> file.
This is done if the parameter file contains the following lines:</p>
<pre class = "codeblock">
<code class = "ph codeph">
TASK     = all_iterations
DATABASE = "opt_res_database"
</code>
</pre>
<p>In this case, "Task" field in <span class = "ph">Tosca Structure.gui</span>
(<span class = "ph">Tosca Structure.smooth</span>
screen) should be set to "Create Isosurface from all steps of the <code class = "ph codeph">ONF</code>
files". </p>
<p>Both model data and optimization results are read from the results-database, which per default has the name <code class = "ph codeph">"opt_res_database"</code>.
The iteration numbers <code class = "ph codeph">&lt;</code><code class = "ph codeph">NNN</code><code class = "ph codeph">&gt;</code>
run from <code class = "ph codeph">0 </code>to the first number such that the result
file for the following iteration does not exist. The resulting <code class = "ph codeph">VTFX</code>
file gets the suffix <code class = "ph codeph">_all</code>; all other output files are
generated for each iteration, each time with the suffix <code class = "ph codeph">_&lt;</code><code class = "ph codeph">NNN</code><code class = "ph codeph">&gt;</code>,
where <code class = "ph codeph">&lt;</code><code class = "ph codeph">NNN</code><code class = "ph codeph">&gt; </code>is
the current iteration number.</p>
<div class = "note collapse"><span class = "run-in.note">Note:
    		</span><span class = "notecontent">
<p>Note that the database name should be entered manually
in the <span class = "ph">Tosca Structure.smooth</span>
screen of <span class = "ph">Tosca Structure.gui</span>.
In the <span class = "ph">Tosca Structure.pre</span>
screen of <span class = "ph">Tosca Structure.gui</span>,
it suffices to set the <span class = "ph">Task</span> field to <code class = "ph codeph">all_iterations</code>.</p>
</span></div>

<p>The isovalues for the isosurfaces generated at each iteration are
either constant or linearly increasing. In the first case, the parameter
<code class = "ph codeph">ISO_SEQUENCE</code> should be set to <span class = "ph">const</span> (this is
its default value); the isovalue then is specified by the <code class = "ph codeph">ISO_VALUE</code>
parameter. In the second case, <code class = "ph codeph">ISO_SEQUENCE</code> = <span class = "ph">incr</span>
should hold, and the isovalue for iteration <span class = "ph">i</span> is <code class = "ph codeph">
iso_value
* (i+1)/ (n+1),
</code> where <code class = "ph codeph">iso_value</code><span class = "ph"> </span>is
the value of the <code class = "ph codeph">ISO_VALUE</code> parameter and <code class = "ph codeph">n </code>is
the number of the last iteration.</p>
</div>
</div>

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