timeStepping
Contents
8.2.1. timeStepping#
8.2.1.1. timeStepSize
#
timeStepSize
prescribes the size of each physical time step.
For steady case, there is only one physical time step with timeStepSize
= \(\infty\).
For unsteady cases, there are two typical ways for determining the timeStepSize
:
Based on an expected vortex shedding frequency
Based on the desired angle of rotation per step
timeStepSize
= \(\infty\) activates the steady solver. If a single volume zone with a nonzero omega
is present in the simulation, setting timeStepSize
= \(\infty\) activates a Single Reference Frame simulation. For multiple volume zones with different omega
values, the Multiple Reference Frame will be used.
8.2.1.1.1. Vortex Shedding Frequency#
The vortex shedding frequency can be estimated by:
where \(U_\infty\) is the freestream speed, \(D\) is the characteristic length, for example the mean aerodynamic chord, and \(St\) is the Strouhal Number. An approximation of \(St = 0.2\) is typically appropriate for most CFD applications.
Typically, the physical time step size \(\Delta t\) is set as:
Note that the nondimensional timeStepSize
in Flow360.json should be:
Here is an example showing how to convert the physical time step size to nondimensional timeStepSize
.
8.2.1.1.2. Angle of Rotation per Step#
If there is a transient BET Line or a sliding interface modeled, then the timeStepSize
can be calculated from the desired angle of rotation in each physical step.
Scenario 
Angle per 

Transient BETDisks (i.e., BET Line) 
6 deg/step 
Rotor in sliding interface, phaseI:
Initializing the flowfield with 1storder solver

6 deg/step 
Rotor in sliding interface, phaseII:
Initializing the flowfield with 2ndorder solver

6 deg/step 
Rotor in sliding interface, phaseIII:
Collecting the data with 2ndorder solver

3 deg/step 
Strong bladevortex interaction (hover/descent) 
12 deg/step 
Generating highquality timeresolved animation 
0.51 deg/step 
For more information about 1st versus 2nd order solution, see orderOfAccuracy.
Once the angle per step is determined, then the timeStepSize
can be calculated:
where \(\theta\) is the angle of rotation in degrees. Note that the omegaRadians
here is the nondimensional rotation speed,
which can be easily converted from RPM.
8.2.1.2. maxPseudoSteps
#
For steady cases,
maxPseudoSteps
is typically 5K~10K. If the nonlinear residuals and/or the forces and moments are still changing, the user can always fork the completed case and let it run more pseudo steps.For unsteady timeaccurate cases,
maxPseudoSteps
is typically slightly larger thanrampSteps
so thefinal
CFL can be achieved. As shown in the examples below, whenrampSteps
= 10 thenmaxPseudoSteps
should be set to 12. IframpSteps
= 33 thenmaxPseudoSteps
should be set to 35.
 Example
timeStepping
for the 1storder unsteady cases "maxPseudoSteps" : 12, "CFL" : { "initial" : 1, "final" : 1000, "rampSteps" : 10 }
 Example
timeStepping
for the 2ndorder unsteady cases "maxPseudoSteps" : 35, "CFL" : { "initial" : 1, "final" : 1e+7, "rampSteps" : 33 }
For more information about 1st versus 2nd order solution, see orderOfAccuracy. The CFL number will be discussed in the following subsection.
8.2.1.3. CFL
#
The CFL number determines the pseudo step size in each physical step. Two different approaches exist in Flow360 to drive the CFL number (which are activated by setting the type
entry in the CFL section of the JSON file):
ramp
, where the CFL ramping is defined by the useradaptive
, where the ramping is automatically adapted based on the linear residual values.
8.2.1.3.1. ramp
#
The CFL ramping is defined by the user using this approach by setting values for initial
, final
and rampSteps
. The table below shows recommended values for CFL number ramping for steady and unsteady cases.
Example 
Type 




Simple wing or fuselage, mostly attached linear flow 
Steady 
5 
200 
100 
Full aircraft with nonlinear flow, some separation, simple actuator/BET disks 
Steady 
1 
100~150 
1K~2K 
Full aircraft near onset of stall, largescale separation, challenging actuator/BET disks 
Steady 
0.1~1 
10~50 
3K~5K 
Forked/child case 
Steady 
parent 
parent 
1 
Rotor in sliding interface, 1storder solver 
Unsteady 
1 
1000 
~10 
Rotor in sliding interface, 2ndorder solver 
Unsteady 
1 
1e+5~1e+7 
30~50 
For steady cases,
initial
CFL < 1,final
CFL < 100,rampSteps
> 3K are considered as conservative. Such conservative values are only recommended for challenging cases.For unsteady cases, it is typically recommended to let the nonlinear residuals drop 2~3 orders of magnitude in each physical step. That is why higher
final
CFL and more aggressive CFL ramping values are suggested.For unsteady cases running 2ndorder solver,
final
CFL < 1e+5,rampSteps
> 50 are considered as conservative. DecreasingrampSteps
andmaxPseudoSteps
within each physical step will decrease the overall cost and runtime. For more information about 1st versus 2nd order solutions, see orderOfAccuracy.
8.2.1.3.2. adaptive
#
This approach adaptively adjusts the CFL number with criteria based on the linear residual values. The adaptive
CFL ramping approach offers several advantages when compared to CFL ramp
:
The user does not need prior knowledge on the complexity of the simulation in terms of how conservatively or agressively the CFL can be driven.
The
adaptive
CFL will lead to faster convergence, when the user enters too conservative CFL settings inramp
The
adaptive
CFL can prevent divergence when the user enters too agressive CFL settings inramp
(when the divergence is related to the time stepping settings, rather than mesh related).The
adaptive
CFL will lead to deeper residual convergence when the user enters too agressive CFL settings inramp
, but the simulation does not diverge.
A few aspects must be noted when using adaptive
CFL:
The
adaptive
CFL compromises solution speed and solution robustness over a wide range of cases in terms of complexity. Therefore, theadaptive
CFL will not necessarily lead to a faster solution thanramp
CFL, when theramp
CFL settings are optimised.If the linear residuals are low (below 0.1) when divergence occurs during
ramp
CFL, switching toadaptive
CFL will not necessarily remedy the issue, as the CFL is adapted based on the linear residual values
As the adaptive
CFL numerical parameters have been optimised over a range of cases in terms of complexity (from 2D aerofoil to complex 3D flows with separation and shocks), a number of optional inputs have been made available to the user to alter the adaptive
CFL settings. These include maxRelativeChange
, convergenceLimitingFactor
, min
and max
.
8.2.1.3.2.1. maxRelativeChange
#
The maxRelativeChange
parameter controls the maximum relative change of the CFL number at each pseudostep, with the default value set to 1.0. Increasing this parameter will therefore let the CFL change more rapidly, speeding up convergence but potentially leading to divergence for more complex cases. Conversely, reducing the value of this parameter constrains the relative change of the CFL number. An example of how the maxRelativeChange
parameter affects the convergence is shown for the ONERA quickstart example, with the CFL number, nonlinear and linear residuals (continuity) convergence shown in Fig. 8.2.1Fig. 8.2.4. The maxRelativeChange
value will affect the convergence speed without affecting the thresholds put on the linear residual in the adaptive CFL algorithm at the initial stages of the run. The same final CFL values will be reached for different maxRelativeChange
entries at the end of the simulation (if the simulations are ran long enough). If the convergence is slower than expected ramp
CFL settings, it is recommended to increase the maxRelativeChange
value.
8.2.1.3.2.2. convergenceLimitingFactor
#
The convergenceLimitingFactor
modifies how conservative or aggressive the limitations on the values of CFL are. Smaller convergenceLimitingFactor
values lead to a more conservative CFL value, whereas larger convergenceLimitingFactor
values lead to a more aggressive CFL value. The default value is set to 0.25 which is a good compromise between solution speed and robustness across a wide range of cases. An example of how the convergenceLimitingFactor
parameter affects the convergence is shown for the ONERA quickstart example, with the CFL number, nonlinear and linear residuals (continuity) convergence shown in Fig. 8.2.5Fig. 8.2.8. The convergenceLimitingFactor
does not affect the initial CFL values (under 250 pseudosteps in this case), but has an impact on the thresholds of the linear residuals during the adaptive CFL algorithm and CFL numbers reached in the later stages of the simulation. Higher values of convergenceLimitingFactor
lead to faster convergence of the nonlinear residual but also permit higher values of the linear residual during the simulation. In the case of simulation divergence, it is recommended to reduce the value of convergenceLimitingFactor
(after checking the mesh quality at the divergence location, see Fixing Divergence Issues.
8.2.1.3.2.3. min
#
The min
parameter affects the minimum values of the CFL number for the solved equations during the simulation.
8.2.1.3.2.4. max
#
The max
parameter affects the maximum values of the CFL number for the solved equations during the simulation. An example use case for when this parameter would need to be modified is when the SpalartAllmaras solver diverges with a nonphysical turbulent eddy viscosity. As the SpalartAllmaras is a oneequation model compared to the five equations that are solved for the NavierStokes solver, the linear residuals for the SpalartAllmaras solution will usually be much lower, and therefore the CFL will be driven to much higher values, which may prompt reducing the max
allowable CFL during the adaptive CFL algorithm.
8.2.1.3.3. Comparison between ramp
and adaptive
#
A comparison of the ramp
and adaptive
CFL approaches was performed for the ONERA quickstart example example for a range of settings, with the CFL number, nonlinear and linear residuals (continuity) convergence shown in Fig. 8.2.9Fig. 8.2.12.
Firstly, it must be noticed that divergence is not a key limiter in the CFL values used in this example. For an example where adaptive CFL is used to prevent divergence, see Fixing Divergence Issues. It can be seen that the CFL values at the end of the simulation and convergence speed are driven by the final
(ramp) and convergenceLimitingFactor
(adaptive) for both algorithms. The adaptive CFL algorithm allows for much higher SpalartAllmaras CFL values. In general similar behaviour is seen between the ramp
and adaptive
, with less conservative settings leading to faster convergence and higher linear residual values. The key benefit of the adaptive
algorithm is that the CFL will automatically be reduced when the linear residuals are above a given threshold, in many cases preventing divergence.