The aim of this article is to explain and show how to switch between constant time step control and adjustable time step control in transient CFD simulations.

## What is the Time Step in Transient Simulations?

In transient CFD simulations, we simulate the flow in real-time. This is solved by starting at \( t = 0 \) and using time increments \( \Delta t \) to calculate the next time step.

$$ \ t_{n+1} = \ t_{n} + \Delta t \tag{1} $$

Where:

- \( t_{n+1} \) is the next time step
- \( t_{n} \) is the current time step
- \(\Delta t \) is the time increment

## Constant Delta T

The first option is to set \( \Delta t \) to a constant value. This means that \( \Delta t \) will not change throughout the simulation. To set up \( \Delta t \) as constant open the simulation control panel and set the *Adjustable time step *to *False*.

- Switch the
*Adjustable time step*to false for constant*Delta t*.

## Adjustable time step

In addition to the constant time increment \( \Delta t \) SimScale can calculate the next time step \( \Delta t _{n+1}\) based on the Courant number \( C \) . The Courant number is defined as:

$$ C = u \frac{\Delta t}{\Delta x} \tag{2} $$

Where:

- \( C \) is the Courant number
- \( u \) is the cell velocity
- \( \Delta t\) is the time increment
- \( \Delta x\) is the cell length

For a stable simulation the Courant number \( C \) should stay below 1 \(( C <1 )\). In most cases, CFL value between 0.5-0.7 is considered to give the best results. Find out why the Courant number \( C \) should be below 1 here:

- Default value for
*Adjustable time step*is*True*. Keep it for a varying time step \(\Delta t\). - Keep the
*Maximum Courant number*limit within the simulation domain below 1 to ensure stable simulation.

### Starting Time Step for Adjustable Time Steps

In the SimScale *Simulation Control *Panel, the *Adjustable time step* is active per default. This can adjust the time step \( \Delta t\). Since \( u \) is defined by the simulation conditions and changing \( \Delta x\) would need a remesh of the domain, changing \( \Delta t\) can make sure the Courant number \( C \) stays below 1.

$$ \Delta t_{n+1} = \Delta t_{n} \frac{C_{max}}{C_{n}} \tag{3} $$

Where:

- \( \Delta t_{n+1}\) is the next time step
- \( \Delta t_{n}\) is the current time step
- \( C_{max}\) is the limit for the Courant number
- \( C_{n}\) is the Courant number for the current time step

For this, we still have to define the starting time step \( \Delta t_{1}\). To ensure that the first Courant number is below \( C = 1\) we have to set a appropriate value for time step \( \Delta t_{1} \). For this, we set the first-time step to a value, so that the following equation is fulfilled.

$$ \Delta t_{1} < \frac{ \Delta x_{min}}{u} \tag{4} $$

Where:

- \( \Delta t_{1}\) is the first time step
- \( \Delta x_{min} \) is the smallest cell size
- \(u\) is the cell velocity

Ratio of Velocity to Mesh size

When adjustable time step is active, a high velocity \(u \) to cell size \( \Delta x\) ratio can lead to very small \( \Delta t\). This will lead to a very long simulation run time, which can lead to the simulation to stop as maximum run time might reach before end time. In this case coarsen the mesh, or deactivation of the adjustable time control can help, But be aware, that this will have direct influence on the Courant number.

Note

If none of the above suggestions solved your problem, then please post the issue on our forum or contact us.