Difference between revisions of "AdjustTimeStep Custom Task"

From OSUPDOCS
Jump to navigation Jump to search
Line 22: Line 22:
where the two parameters are:
where the two parameters are:


Its only parameter is:
* <tt>(time)</tt> - Enter the time interval for checking the time step and adjusting it if needed (in ms). This parameter is optional; if it is omitted, the time step adjustment is done each time particle data are archived.
* <tt>(verbose)</tt> - If its integer value is not zero, it will print the new time step whenever it changes by more than 1%. If it is zero, the new time step is silently changed. The default it 0.


<p>If a custom task is available but is unknown to <b>NairnFEAMPM</b>, you can still use such tasks by adding them with an <a href="xmldata.html">XMLData command</a> block. The template for submitting undocumented custom tasks is:</p>
== Material Support ==


<pre>
This custom task only has an effect if some particles are using [[Material Model|material classes]] that respond to <tt>CurrentWaveSpeed()</tt> and provide a wave speed that changes depending on current particle state.
XMLData,CustomTasks
    &lt;Schedule name='Task Name'&gt;
      &lt;Parameter name='param 1'&gt;2&lt;/Parameter&gt;
      &lt;Parameter name='param 2'&gt;10&lt;/Parameter&gt;
    &lt;/Schedule&gt;
EndXMLData
</pre>
<p>where you enter the name of the task in the <code>Schedule</code> command and list or parameters needed by that task in subordinate <code>Parameter</code> commands.
</p>

Revision as of 15:38, 25 December 2013

A custom task to dynamically adjust the MPM time step.

Introduction

For convergence of explicit, dynamic calculations, like NairnMPM, the time step must be less then the time it takes a stress wave to pass across the smallest element size. For safety, the time step is usually calculated to be some fraction of this time as specified by the input TimeFactor. But, for some material types, the wave speed might change during the calculations thereby necessitating an adjustment in the time step to retain convergence. This tasks allows you to periodically adjust the time step.

Task Scheduling

In scripted files, a AdjustTimeStep custom task is scheduled using

CustomTask AdjustTimeStep
Parameter adjustTime,(time))
Parameter verbose,(verbose)

In XML files, this task is scheduled using a <Schedule> element, which must be within the single <CustomTasks> block:

<Schedule name='AdjustTimeStep'>
   <Parameter name='adjustTime'>(time)</Parameter>
   <Parameter name='verbose'>(verbose)</Parameter>
</Schedule>

where the two parameters are:

  • (time) - Enter the time interval for checking the time step and adjusting it if needed (in ms). This parameter is optional; if it is omitted, the time step adjustment is done each time particle data are archived.
  • (verbose) - If its integer value is not zero, it will print the new time step whenever it changes by more than 1%. If it is zero, the new time step is silently changed. The default it 0.

Material Support

This custom task only has an effect if some particles are using material classes that respond to CurrentWaveSpeed() and provide a wave speed that changes depending on current particle state.