<?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 = "Shape optimization in Tosca Structure operates with a controller-based method. The controller has been given numerous default settings that deliver satisfying results for a variety of optimization models. Usually, these default settings do not need to be changed by the user. However, using a specific configuration of the controller for a given optimization task can lead to a modified controller response and consequently the optimization procedure can be improved."/><meta name = "description" content = "Shape optimization in Tosca Structure operates with a controller-based method. The controller has been given numerous default settings that deliver satisfying results for a variety of optimization models. Usually, these default settings do not need to be changed by the user. However, using a specific configuration of the controller for a given optimization task can lead to a modified controller response and consequently the optimization procedure can be improved."/><meta name = "DC.relation" scheme = "URI" content = "../TsoCmdMap/tso-r-cmd-optParam.htm#tso-r-cmd-optParam"/><meta name = "DC.relation" scheme = "URI" content = "../TsoCmdMap/tso-r-cmd-optParam.htm#tso-r-cmd-optParam/tso-r-cmd-optParam-topoCtrl"/><meta name = "DC.format" content = "HTML5"/><meta name = "DC.identifier" content = "tso-c-usr-shape-settingsCtrl"/><meta name = "DC.language" content = "en"/><link rel = "stylesheet" type = "text/css" href = "../DSDocUI_XML34.css"/><title>Settings for controller-based shape optimization</title>
<script type = "text/javascript" src = "../DSDocUI_Highlight34.js">
  	/* */
  	</script><script type = "text/javascript" src = "../MathJax/MathJax.js?config=DS-default,local/local">
  		/* */
  		</script></head><body onLoad = "highlightSearchTerms();" id = "tso-c-usr-shape-settingsCtrl">
<a name = "hj-top"> </a><table class = "table1" id = "table11"><tr><td><table class = "DocHeader"><tr><td class = "DocHeader1" colspan = "2"><h1>Settings for controller-based shape optimization</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">Shape optimization in <span class = "ph">Tosca Structure</span>
operates with a controller-based method. The controller has been given
numerous default settings that deliver satisfying results for a variety
of optimization models. Usually, these default settings do not need to
be changed by the user. However, using a specific configuration of
the controller for a given optimization task can lead to a modified controller
response and consequently the optimization procedure can be improved.
</span>

</p>
<p>This page discusses: </p><ul><li><a href = "#tso-c-usr-shape-settingsCtrl__tso-c-usr-shape-settings-scale" id = "toc_rg" title = "">Scale of Displacement (SCALE)</a></li><li><a href = "#tso-c-usr-shape-settingsCtrl__tso-c-usr-shape-settings-curvMod" id = "toc_rg" title = "">Curvature-Based Modification of Optimization Displacements</a></li><li><a href = "#tso-c-usr-shape-settingsCtrl__tso-c-usr-shape-settings-filter" id = "toc_rg" title = ""> Filter Function for the Optimization Displacements (FILTER)</a></li><li><a href = "#tso-c-usr-shape-settingsCtrl__tso-c-usr-shape-settings-disp" id = "toc_rg" title = ""> Control of the Amount of Optimization Displacement (DISP) </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 parameters to control optimization." href = "../TsoCmdMap/tso-r-cmd-optParam.htm#tso-r-cmd-optParam">OPT_PARAM</a></td></tr><tr><td><a href = "../TsoCmdMap/tso-r-cmd-optParam.htm#tso-r-cmd-optParam__tso-r-cmd-optParam-topoCtrl">Parameters for Controller-Based Topology Optimization</a></td></tr></table></td></tr></table>




<div class = "body conbody">
<p>The user can set several optimization parameters using the <code class = "ph codeph">OPT_PARAM</code>
command and thereby influence the controller response. </p>
<p>
<ul class = "ul">
<li class = "li">In <span class = "ph">Tosca Structure.gui</span>,
the settings are defined in <span class = "ph uicontrol">OPT_PARAM</span> command.</li></ul></p>


<p>Each <code class = "ph codeph">OPT_PARAM</code> command has a unique name (<code class = "ph codeph">ID_NAME</code>
parameter) and references a previously defined optimization job (<code class = "ph codeph">OPTIMIZE</code>
command). The specified parameters only relate to the given optimization
task. A typical <code class = "ph codeph">OPT_PARAM</code> command appears as follows:</p>
<pre class = "codeblock"><code class = "ph codeph">OPT_PARAM
</code><code class = "ph codeph"> ID_NAME = param_for_shape_optimization
 OPTIMIZE = shape_optimization
 ...
</code><code class = "ph codeph">END_</code></pre>
<p>Six parameters can be set by the user for shape optimization:</p>
<ul class = "ul" id = "tso-c-usr-shape-settingsCtrl__ul_4B3E387F14184F03B2C9F6A47BB51A85">
<li class = "li">Scaling of the allowed amount of displacement</li>
<li class = "li">Treatment of the midside nodes during the optimization</li>
<li class = "li">Curvature-based modification of the optimization movement vector</li>
<li class = "li">Filtering of the optimization displacements</li>
<li class = "li">Updating of the normal vectors (optimization displacement vector)</li>
<li class = "li">Control of the increments according to the allowed displacements</li>
</ul>

<p><div class = "note"><span class = "run-in.note">Note:
			</span><span class = "notecontent">The <code class = "ph codeph">OPT_PARAM</code> command is also used in topology optimization.
However, the optimization parameters that can be set depend on the type
of optimization. The only parameters that can be set here are those
allowed for shape optimization.</span></div>
</p>
<div class = "section" id = "tso-c-usr-shape-settingsCtrl__tso-c-usr-shape-settings-scale"><h2 class = "title sectiontitle">Scale of Displacement (SCALE)</h2>

<p>The controller provides an automatic increment control of the optimization
displacements. An initial increment is first determined based on the
mesh of the FE start model. The size of the increment is then automatically
adjusted in every design cycle. Usually, the user does not need to modify
the increment control manually. The user can increase or decrease the
increment using a scaling factor (<code class = "ph codeph">SCALE</code> parameter):</p>
<pre class = "codeblock"><code class = "ph codeph"> ...
 SCALE = &lt;REAL_value&gt;
 ...</code></pre>
<p>The default setting is <code class = "ph codeph">SCALE=1.0</code>, hence, the optimization
displacements are applied in increments determined by the controller.
If the selected scaling factor has a value greater than one, the increment
size determined by the controller will increase correspondingly. therefore, 
the optimization is accelerated. On the other hand, if the selected scaling
factor has a value less than one, the increment size determined by the
controller will decrease accordingly. Thus, the optimization is slowed
down. </p>
<p>Example: With <code class = "ph codeph">SCALE=2.0</code> the increment size as determined
by the controller is doubled. With <code class = "ph codeph">SCALE=0.8</code> the increment
size of the controller is reduced to 80% of the initial increment size.</p>
<p>The scaling factor can be split in a factor for growth and a factor
for shrinkage:</p>
<pre class = "codeblock"><code class = "ph codeph"> ...
 SCALE = &lt;grow_value&gt;, &lt;shrink_value&gt;
 ...</code></pre>
<p><table class = "Remark" id = "table132"><tr><td class = "Remark"><span class = "run-in.important">Important:
				</span><span class = "notecontent"><ul class = "ul" id = "tso-c-usr-shape-settingsCtrl__ul_F73DCEE1B3454535954024026D1E5B52">
<li class = "li">It is highly recommended to perform the first optimization run with
the default increment size (<code class = "ph codeph">SCALE=1.0</code>). From evaluating
the obtained results, it can be decided if the optimization should be
accelerated or slowed down.</li>
<li class = "li">Increasing the increment size can be useful when several optimization
steps in the same direction are performed in the beginning of the optimization
and hardly any change in the increment size is observed. Especially,
for tight FE meshes with small element edge lengths, the increment size
is relatively small which leads to numerous design cycles with relatively
small changes in the model in each design cycle. If the selected increment
size is too large, the possibility that the optimum will be bypassed
exists and the optimization will not converge. In addition, the mesh
quality decreases with increasing increment size. In extreme cases individual
elements might collapse.</li>
<li class = "li">Decreasing the increment size is recommended when the start model
is close to optimum at the start. A decrease of the increment size can
also be helpful when numerous restrictions with link conditions (<code class = "ph codeph">DVCON_SHAPE</code>
with<code class = "ph codeph"> CHECK_ LINK</code>) are contained in the optimization
task. A decrease of the increment size can also be of advantage when
the mesh quality is poor.</li>
<li class = "li">With a license for the module 
<span class = "ph">Tosca Structure.nonlinear</span>.
a negative scale factor can be executed. In this case, the calculated
nodal displacements are multiplied with the scale factor and the direction
of the displacement changed. The controller strategy can be inverted
(high <code class = "ph codeph">stress = shrinkage</code>, low <code class = "ph codeph">stress =
growth</code>). This functionality allows the optimization of contact
surfaces as an example.</li>
</ul></span></td></tr></table>
</p>
</div>

  
<div class = "section" id = "tso-c-usr-shape-settingsCtrl__tso-c-usr-shape-settings-curvMod"><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">Curvature-Based Modification of Optimization Displacements</h2>

<p>The node-based optimization movement vector is modified in areas of high
curvature to prevent a collapse of the mesh for large volume changes
(<code class = "ph codeph">CURV_SMOOTH</code>). A bigger radius causes a bigger curvature-based
modification of the optimization movement vector. (<code class = "ph codeph">Default=5.0</code>
* element edge lengths; <code class = "ph codeph">OFF=0.0</code>)</p>
<pre class = "codeblock">
<code class = "ph codeph">
...
 CURV_SMOOTH = 5.0
 ...
 </code>
</pre>
<table class = "table" id = "tso-c-usr-shape-settingsCtrl__ae234289"><caption/><colgroup><col/></colgroup><tbody class = "tbody">
<tr class = "row">
<td class = "entry"><br/><img class = "image" id = "tso-c-usr-shape-settingsCtrl__image_3DDF97F89200420E9103F594C9D56027" src = "../TsoUserImages/shape_curv_modif.png" width = "450"/><br/></td>
</tr>
</tbody></table>

</div>

<div class = "section" id = "tso-c-usr-shape-settingsCtrl__tso-c-usr-shape-settings-filter"><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"> Filter Function for the Optimization Displacements (FILTER)</h2>

<p>To smooth local peaks of the nodal reference stresses, the item <code class = "ph codeph">FILTER</code>
can be specified to activate a filter function: </p>
<pre class = "codeblock">
<code class = "ph codeph">
...
 FILTER = &lt;radius&gt;, &lt;sigma&gt;, &lt;exponent&gt;
 ...
</code>
</pre>
<p>The filter is given by:</p>
<table class = "table" id = "tso-c-usr-shape-settingsCtrl__ae205879"><caption/><colgroup><col/></colgroup><tbody class = "tbody">
<tr class = "row">
<td class = "entry"><p><span class = "ph inlineequation"><math class = "- topic/foreign "><mrow class = "- topic/foreign "><msub class = "- topic/foreign "><mrow class = "- topic/foreign "><mi mathvariant = "normal" class = "- topic/foreign ">Φ</mi></mrow><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">j</mi></mrow></msub><mo class = "- topic/foreign ">=</mo><mfrac class = "- topic/foreign "><mrow class = "- topic/foreign "><mstyle displaystyle = "true" class = "- topic/foreign "><mrow class = "- topic/foreign "><munderover class = "- topic/foreign "><mrow class = "- topic/foreign "><mo class = "- topic/foreign ">∑</mo></mrow><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">i</mi><mo class = "- topic/foreign ">=</mo><mn class = "- topic/foreign ">1</mn></mrow><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">N</mi></mrow></munderover><msub class = "- topic/foreign "><mrow class = "- topic/foreign "><mi mathvariant = "normal" class = "- topic/foreign ">Φ</mi></mrow><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">i</mi></mrow></msub><msub class = "- topic/foreign "><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">B</mi></mrow><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">i</mi><mi class = "- topic/foreign ">j</mi></mrow></msub></mrow></mstyle></mrow><mrow class = "- topic/foreign "><mstyle displaystyle = "true" class = "- topic/foreign "><mrow class = "- topic/foreign "><munderover class = "- topic/foreign "><mrow class = "- topic/foreign "><mo class = "- topic/foreign ">∑</mo></mrow><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">i</mi><mo class = "- topic/foreign ">=</mo><mn class = "- topic/foreign ">1</mn></mrow><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">N</mi></mrow></munderover><msub class = "- topic/foreign "><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">B</mi></mrow><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">i</mi><mi class = "- topic/foreign ">j</mi></mrow></msub></mrow></mstyle></mrow></mfrac></mrow></math></span></p><p><span class = "ph inlineequation"><math class = "- topic/foreign "><mrow class = "- topic/foreign "><msup class = "- topic/foreign "><mrow class = "- topic/foreign "><msub class = "- topic/foreign "><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">B</mi></mrow><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">i</mi><mi class = "- topic/foreign ">j</mi></mrow></msub><mo class = "- topic/foreign ">=</mo><mo class = "- topic/foreign ">(</mo><msub class = "- topic/foreign "><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">r</mi></mrow><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">j</mi></mrow></msub><mo class = "- topic/foreign ">−</mo><msub class = "- topic/foreign "><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">d</mi></mrow><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">j</mi><mi class = "- topic/foreign ">i</mi></mrow></msub><mo class = "- topic/foreign ">)</mo></mrow><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">p</mi></mrow></msup></mrow></math></span></p><p><span class = "ph inlineequation"><math class = "- topic/foreign "><mrow class = "- topic/foreign "><msup class = "- topic/foreign "><mrow class = "- topic/foreign "><msub class = "- topic/foreign "><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">r</mi></mrow><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">j</mi></mrow></msub><mo class = "- topic/foreign ">=</mo><msub class = "- topic/foreign "><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">r</mi></mrow><mrow class = "- topic/foreign "><msup class = "- topic/foreign "><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">max</mi></mrow><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">e</mi></mrow></msup><mo class = "- topic/foreign ">⁡</mo></mrow></msub></mrow><mrow class = "- topic/foreign "><mo class = "- topic/foreign ">−</mo><mn class = "- topic/foreign ">0</mn><mo class = "- topic/foreign ">,</mo><mn class = "- topic/foreign ">5</mn><mo class = "- topic/foreign ">(</mo><msub class = "- topic/foreign "><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">κ</mi></mrow><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">max</mi><mo class = "- topic/foreign ">⁡</mo></mrow></msub><mo class = "- topic/foreign ">/</mo><mi class = "- topic/foreign ">σ</mi><mo class = "- topic/foreign ">)</mo></mrow></msup></mrow></math></span></p><p><span class = "ph inlineequation"><math class = "- topic/foreign "><mrow class = "- topic/foreign "><msub class = "- topic/foreign "><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">κ</mi></mrow><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">max</mi><mo class = "- topic/foreign ">⁡</mo></mrow></msub><mo class = "- topic/foreign ">=</mo><mi class = "- topic/foreign ">max</mi><mo class = "- topic/foreign ">⁡</mo><mo class = "- topic/foreign ">(</mo><mo class = "- topic/foreign ">|</mo><msub class = "- topic/foreign "><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">n</mi></mrow><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">j</mi></mrow></msub><mo class = "- topic/foreign ">×</mo><msub class = "- topic/foreign "><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">n</mi></mrow><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">R</mi></mrow></msub><mo class = "- topic/foreign ">|</mo><mo class = "- topic/foreign ">)</mo></mrow></math></span></p></td>
</tr>
</tbody></table>

<p><span class = "ph inlineequation"><math class = "- topic/foreign "><mrow class = "- topic/foreign "><mi mathvariant = "normal" class = "- topic/foreign ">Φ</mi></mrow></math></span> is the filter value
for node j. The main filter function (B) decreases with the distance
(d) between node i and j. The maximal radius (<span class = "ph inlineequation"><math class = "- topic/foreign "><mrow class = "- topic/foreign "><msub class = "- topic/foreign "><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">r</mi></mrow><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">max</mi><mo class = "- topic/foreign ">⁡</mo></mrow></msub></mrow></math></span>) defines the maximum
distance for the nodes i to influence the filter value. The curvature
dependency (<span class = "ph inlineequation"><math class = "- topic/foreign "><mrow class = "- topic/foreign "><msub class = "- topic/foreign "><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">r</mi></mrow><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">j</mi><mo class = "- topic/foreign ">⁡</mo></mrow></msub></mrow></math></span>) defines a weight function
to reduce the radius at higher local surface curvature (<span class = "ph inlineequation"><math class = "- topic/foreign "><mrow class = "- topic/foreign "><msub class = "- topic/foreign "><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">κ</mi></mrow><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">max</mi><mo class = "- topic/foreign ">⁡</mo></mrow></msub></mrow></math></span>) approximated by the
vector product of the node normal (<span class = "ph inlineequation"><math class = "- topic/foreign "><mrow class = "- topic/foreign "><msub class = "- topic/foreign "><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">n</mi></mrow><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">j</mi><mo class = "- topic/foreign ">⁡</mo></mrow></msub></mrow></math></span>) to the neighboring
nodes (<span class = "ph inlineequation"><math class = "- topic/foreign "><mrow class = "- topic/foreign "><msub class = "- topic/foreign "><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">n</mi></mrow><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">k</mi><mo class = "- topic/foreign ">⁡</mo></mrow></msub></mrow></math></span>). </p>
<p><code class = "ph codeph">SIGMA</code> (<span class = "ph inlineequation"><math class = "- topic/foreign "><mrow class = "- topic/foreign "><mi class = "- topic/foreign ">σ</mi></mrow></math></span>) and <code class = "ph codeph">EXPONENT</code>
(p) are optional with the default values (0.2 and 1., respectively).
The smaller the <code class = "ph codeph">SIGMA</code>, the larger is the influence of
the surface curvature. To avoid this effect, use a large <code class = "ph codeph">SIGMA</code>
value (for example, 10,000).</p>
<p>The exponent value defines the weight function which controls the
influence depending on the distance from the node.</p>
<p>To smooth local peaks of the nodal reference stresses, use the <code class = "ph codeph">DRESP
OPER=FILTER</code> which gives the user the possibility to define filters
that correspond to single design responses. Example:</p>
<pre class = "codeblock">
<code class = "ph codeph">
DRESP
 ID_NAME  = DRESP_MISES_FILTERED
 DEF_TYPE = OPER
 VAR_OPER = FILTER
 VAR_A    = DRESP_MAX_MISES
 RADIUS   = 30.0
 EXPONENT = 1.0
 SIGMA    = 1.0
END_
</code>
</pre>
<p>The parameters <code class = "ph codeph">RADIUS, EXPONENT</code> and <code class = "ph codeph">SIGMA</code>
have the same meaning as in the filtering of nodal displacements.</p>
<p><table class = "Remark" id = "table132"><tr><td class = "Remark"><span class = "run-in.important">Important:
				</span><span class = "notecontent">Large values of <code class = "ph codeph">RADIUS</code> might increase CPU-time.</span></td></tr></table>
</p>
</div>

  
<div class = "section" id = "tso-c-usr-shape-settingsCtrl__tso-c-usr-shape-settings-disp"><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"> Control of the Amount of Optimization Displacement (DISP) </h2>

<p>Based on the current FE mesh, an allowed amount of displacement is
determined for every design node. This displacement variable limits
the amount of the optimization displacement. Thus, optimization displacements
that are greater than the allowed displacements are scaled back automatically
to the allowed value node by node. This is intended for avoiding the
collapse of a neighboring element when having a large optimization displacement
of one node.</p>
<p>The controller provides automatic increment control of the optimization
displacements. The increment size is dependent on the allowed displacements
of the design nodes. A decrease of the allowed displacements (a decrease
in the quality of the FE mesh) automatically leads to a decrease in the
increment size of the controller. The increment size of the controller
is automatically adjusted in every design cycle.</p>
<p>The <code class = "ph codeph">DISP</code> parameter enables the user to specify which
allowed displacement is to be used in the increment control:</p>
<pre class = "codeblock">
<code class = "ph codeph">
...
 DISP  =  [ MINIMUM | AVERAGE ]
 ...
</code>
</pre>
<p><code class = "ph codeph">DISP=AVERAGE</code> is the mean value of the allowed amount
of displacement for the design nodes used in the increment control; <code class = "ph codeph">DISP=MINIMUM</code>
(default) is the smallest value used. The setting <code class = "ph codeph">DISP=AVERAGE</code>
delivers a larger increment size and consequently a faster approximation
to the optimum. However, this opens for the possibility that nodes for
which only small displacements are allowed move too little causing ‘undesirable
corners’ in the design area.</p>
</div>

</div>

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