# Time stepping#

**Subsection:** Time stepping#

**Parameter name:** List of model names#

**Default value:**

**Pattern:** [MultipleSelection conduction time step|convection time step|function|repeat on cutback ]

**Documentation:** A comma separated list of time stepping plugins that will be used to calculate the time step size. The minimum of the result of each plugin will be used.

The following plugins are available:

‘conduction time step’: This model computes the conduction time step as the minimum over all cells of \( CFL h^2 \cdot \rho C_p / k\), where k is the thermal conductivity. This plugin will always request advancing to the next time step.

‘convection time step’: This model computes the convection time step as \( CFL / \max \| u \| / h\) over all cells, where \(u\) is the velocity and \(h\) is the product of mesh size and temperature polynomial degree.

‘function’: This model uses a time step specified in the parameter file specified as a function of time. This plugin will always request advancing to the next time step.

‘repeat on cutback’: This time stepping plugin will detect a situation where the computed time step shrinks by more than a user-controlled factor. In that situation, the previous time step will be repeated with a smaller step size. A large reduction in time step size typically happens when velocities change abruptly. Repeating the time step ensure properly resolving this event. It is useful to consider setting the “Maximum relative increase in time step” option to avoid repeatedly repeating every other time step.

**Parameter name:** Minimum time step size#

**Default value:** 0.

**Pattern:** [Double 0…MAX_DOUBLE (inclusive)]

**Documentation:** Specify a minimum time step size (or 0 to disable).

**Subsection:** Time stepping / Function#

**Parameter name:** Function constants#

**Default value:**

**Pattern:** [Anything]

**Documentation:** Sometimes it is convenient to use symbolic constants in the expression that describes the function, rather than having to use its numeric value everywhere the constant appears. These values can be defined using this parameter, in the form ‘var1=value1, var2=value2, …’.

A typical example would be to set this runtime parameter to ‘pi=3.1415926536’ and then use ‘pi’ in the expression of the actual formula. (That said, for convenience this class actually defines both ‘pi’ and ‘Pi’ by default, but you get the idea.)

**Parameter name:** Function expression#

**Default value:** 1.0

**Pattern:** [Anything]

**Documentation:** Expression for the time step size as a function of ’time’.

**Parameter name:** Variable names#

**Default value:** time

**Pattern:** [Anything]

**Documentation:** Name for the variable representing the current time.

**Subsection:** Time stepping / Repeat on cutback#

**Parameter name:** Cut back amount#

**Default value:** 0.5

**Pattern:** [Double 0…MAX_DOUBLE (inclusive)]

**Documentation:** A factor that controls the size of the time step when repeating. The default of 0.5 corresponds to 50% of the original step taken.

**Parameter name:** Relative repeat threshold#

**Default value:** 0.2

**Pattern:** [Double 0…MAX_DOUBLE (inclusive)]

**Documentation:** A factor that controls when a step is going to be repeated. If the newly computed step size is smaller than the last step size multiplied by this factor, the step is repeated.