Link Search Menu Expand Document
Converted document
 Subsection 3.3.1: Control Parameters Up Section 3.3: Control Section Subsection 3.3.3: Common Solver Parameters 

3.3.2 Time Stepper parameters

The optional time_stepper element sets the parameters that control the FEBio auto-time stepper. This auto-time stepper will adjust the time step size depending on the convergence stats of the previous time step. It defines the following parameters.
Value Description Default
dtmin Minimum time step size (1)
dtmax Maximum time step size (3)
opt_iter Optimal, or desired, number of iterations per time step (2) 10
max_retries Maximum number of times a time step is restarted. (2) 5
aggressiveness Algorithm for cutting the time step size after a failed time step 0
Comments:
  1. The dtmin and dtmax values are used to constrain the range of possible time step values. The opt_iter defines the estimated optimal number of quasi-Newton iterations. If the actual number of iterations is less than or equal to this value the time step size is increased, otherwise it is decreased.
  2. When a time step fails (e.g. due to a negative jacobian), FEBio will retry the time step with a smaller time step size. The max_retries parameter determines the maximum number of times a timestep may be retried before FEBio error terminates. The new time step size is determined by the ratio of the previous time step size and max_retries+1. For example, if the last time step size is 0.1 and max_retries is set to 4, then the time step size is adjusted by 0.02: The first retry will have a step size of 0.08; the next will be 0.06, and so on.
  3. The user can specify a load curve for the dtmax parameter. This load curve is referred to as the must-point curve and serves two purposes. Firstly, it defines the value of the dtmax parameter as a function of time. This can be useful, for instance, to enforce smaller time steps during rapid loading or larger time steps when approaching steady-state in a transient analysis. Secondly, the time points of the dtmax loadcurve define so-called must-points. A must-point is a time point where FEBio must pass through. This is useful for synchronizing the auto-time stepper with the loading scenario. For instance, when loading starts at time 0.5, adding a must-point at this time will guarantee that the timestepper evaluates the model at that time. In conjunction with the PLOT_MUST_POINT value of the plot_level parameter, this option can also be used to only write results to the plotfile at the specified time points. Consider the following example.
    <dtmax lc="1">0.1</dtmax>
    ...
    <loadcontroller id="1" type="loadcurve">
      <interpolate>STEP</interpolate>
        <points>
          <point>0,0</point>
          <point>0.5, 0.1</point>
          <point>1.0, 0.2</point>
        </points>
    </loadcontroller>
    
    This example defines load curve 1 as the must-point curve. This curve defines three points where FEBio will pass through (namely 0, 0.5 and 1.0). The values of each time point is the value of the maximum time-step size (dtmax). Since the curve is defined as a step-function, each value is valid up to the corresponding time-point. Thus, between time 0 and time 0.5, the maximum time step value is 0.1. Between 0.5 and 1.0 the maximum time step value is 0.2. If the plot_level parameter is set to PLOT_MUST_POINTS, then only the three defined time points will be stored to the plotfile.
 Subsection 3.3.1: Control Parameters Up Section 3.3: Control Section Subsection 3.3.3: Common Solver Parameters