# Time Stepping
The Time Stepping section in Flow360 allows you to configure how your simulation advances in time, which is crucial for both solution accuracy and computational efficiency. It allows you to choose between steady and unsteady simulation and manage convergence settings.
# Available Options
# Steady
Option | Description | Applicable |
---|---|---|
Max steps | Maximum pseudo-time steps | always |
Advanced | ||
CFL Type | Choose adaptive or ramp CFL | always |
Min (CFL) | Minimum allowable CFL | CFL Type is Adaptive CFL |
Max (CFL) | Maximum allowable CFL | CFL Type is Adaptive CFL |
Max relative change | Parameter responsible for the CFL increase | CFL Type is Adaptive CFL |
Convergence limiting factor | Affects when the simulation will be considered diverged | CFL Type is Adaptive CFL |
Initial (CFL) | Initial CFL value | CFL Type is Ramp CFL |
Final (CFL) | Final CFL value | CFL Type is Ramp CFL |
Ramp steps | Amount of time steps that the CFL will increase | CFL Type is Ramp CFL |
# Unsteady
Option | Description | Applicable |
---|---|---|
Steps | Number of physical time steps | always |
Step size | Physical time between solution snapshots | always |
Advanced | ||
Maximum pseudo steps | Maximum iterations within each physical step | always |
CFL type | Choose adaptive or ramp CFL | always |
Min (CFL) | Minimum allowable CFL | CFL Type is Adaptive CFL |
Max (CFL) | Maximum allowable CFL | CFL Type is Adaptive CFL |
Max relative change | Limits the change of CFL with each pseudo step | CFL Type is Adaptive CFL |
Convergence limiting factor | Affects when the simulation will be considered diverged | CFL Type is Adaptive CFL |
Initial (CFL) | Initial CFL value | CFL Type is Ramp CFL |
Final (CFL) | Final CFL value | CFL Type is Ramp CFL |
Ramp steps | Amount of time steps that the CFL will increase | CFL Type is Ramp CFL |
Order of accuracy | Temporal accuracy | always |
# Detailed Descriptions
# Simulation Type
Determines whether the simulation is steady (time-invariant) or unsteady (time-accurate).
- Options: Steady, Unsteady
- Default: Steady
Note: Steady simulations are appropriate for flows that have reached equilibrium, while unsteady simulations are necessary for time-dependent phenomena.
# Max steps (Steady only)
The maximum number of pseudo-time steps to run for a steady simulation.
- Default:
2000
- Example:
5000
Note: Increase this value for complex simulations that may require more iterations to reach convergence.
# Steps (Unsteady only)
The total number of physical time steps for an unsteady simulation.
- Required when
Unsteady
is selected. - Example:
1000
Note: Set based on the total physical time needed to capture the phenomenon of interest.
# Step size (Unsteady only)
The physical time interval between solution snapshots.
- Required when
Unsteady
is selected. - Example:
0.001 s
Note: Should be small enough to resolve the time-dependent features of interest.
# Maximum pseudo steps (Unsteady only)
Maximum number of iterations performed within each physical time step.
- Default:
20
- Example:
30
Note: Higher values ensure better convergence within each physical time step but increase computational cost.
# Order of accuracy (Unsteady only)
The temporal discretization order.
- Options:
1
,2
- Default:
2
Note: Second-order is generally recommended for better accuracy.
# CFL type
Method for controlling the Courant-Friedrichs-Lewy (CFL) number, which affects convergence.
- Options: Adaptive, Ramp
- Default: Adaptive
Note: Adaptive automatically adjusts CFL based on solution behavior, while Ramp linearly increases it.
# Min (CFL)
Lower bound for the CFL number.
- Default:
0.1
- Example:
0.05
Note: Lower values improve stability for challenging cases.
# Max (CFL)
Upper bound for the CFL number.
- Default:
10,000
for steady,1,000,000
for unsteady - Example:
50,000
Note: Higher values can accelerate convergence if the solution remains stable.
# Max relative change
Controls how quickly the CFL can increase.
- Default:
1%
per step for steady,50%
per step for unsteady - Example:
5.0
Note: Higher values allow more aggressive CFL increases.
# Convergence limiting factor
Controls the CFL adaptation.
- Default:
0.25
for steady (more conservative),1.0
for unsteady (more aggressive) - Example:
0.5
Note: Lower values make the adaptation more conservative.
# Initial (CFL)
Starting CFL number.
- Default:
5
for steady,1
for unsteady - Example:
2
Note: Lower values improve stability at the start of the simulation.
# Final (CFL)
Maximum CFL number to reach.
- Default:
200
for steady,1,000,000
for unsteady - Example:
300
Note: Higher values can accelerate convergence if the solution remains stable.
# Ramp steps
Number of steps to reach the final CFL.
- Default:
40
for steady,30
for unsteady - Example:
50
Note: More steps create a more gradual increase in CFL.
💡 Tips
# For Steady Simulations
- Start with the default Adaptive CFL settings
- If convergence is slow, increase the Convergence Limiting Factor (up to 0.5)
- For complex cases with convergence difficulties, reduce the Convergence Limiting Factor (down to 0.1)
- Monitor residuals to ensure they're decreasing consistently
# For Unsteady Simulations
- Choose physical time step based on the phenomenon of interest:
- For vortex shedding: Δt = 0.01/f where f is the shedding frequency
- For rotating geometries: Use 1-6° of rotation per step for accurate data
- Use Adaptive CFL with default settings
- Ensure sufficient pseudo-steps for convergence within each physical step
- Monitor residual convergence within each physical step
# Time Step Selection Guidelines
Based on Vortex Shedding
For flows with vortex shedding (e.g., bluff bodies, airfoils at high angles):
- Estimate the vortex shedding frequency using: f = (St × U)/D
- St is the Strouhal number (typically ~0.2)
- U is the freestream velocity
- D is the characteristic length
- Set time step to capture ~100 steps per shedding cycle: Δt = 0.01/f
Based on Rotation
For rotating geometries (propellers, turbomachinery):
- Use 3-6° of rotation per step for initial flow development
- Use 1-3° per step for accurate data collection
- Use 0.5-1° per step for aeroacoustic or detailed flow visualization
# When to Adjust CFL Parameters
- Decrease Convergence Limiting Factor: When simulation shows signs of instability or has convergence difficulties
- Reduce Maximum CFL: When turbulence equations become unstable
❓ Frequently Asked Questions
What is the difference between steady and unsteady simulations?
Steady simulations assume flow conditions do not change with time and are suitable for equilibrium states. Unsteady simulations capture time-dependent phenomena and are necessary for moving geometries, vortex shedding, and transient flows.
How do I know if my simulation should be steady or unsteady?
Use steady simulation if you're interested in the final equilibrium state (e.g., cruise conditions). Use unsteady if you need to capture time-varying phenomena (e.g., vortex shedding, blade passing).
What is CFL and why is it important?
The CFL (Courant-Friedrichs-Lewy) number controls the size of pseudo-time steps. Higher values accelerate convergence but may cause instability. Lower values are more stable but converge more slowly.
Which CFL method should I choose?
Adaptive CFL is recommended for most cases as it automatically adjusts based on solution behavior. Ramp CFL is an alternative if you want more direct control over the CFL progression.
How many pseudo steps do I need for unsteady simulations?
Typically 15-30 pseudo steps are sufficient. Check residual convergence within each physical step - residuals should drop by 1-2 orders of magnitude.
What order of accuracy should I use for unsteady simulations?
Second-order (default) is recommended for most cases as it provides better temporal accuracy. First-order can be used for initial development or if stability issues occur.
How can I check if my time step size is appropriate?
Run a time-step sensitivity study by halving the time step and comparing results. If results don't change significantly, your original time step is adequate.
What should I do if my simulation diverges?
For Adaptive CFL: Decrease the Maximum CFL and Convergence Limiting Factor.
For Ramp CFL: Lower the Initial and Final CFL values.
If still diverging, reduce the time step size (for unsteady) or refine the mesh in problematic regions.
🐍 Python Example Usage
# Steady Simulation Example
# Create a steady simulation with Adaptive CFL
time_stepping = fl.Steady(
max_steps=3000,
CFL=fl.AdaptiveCFL(
min=0.1,
max=8000,
max_relative_change=1.0,
convergence_limiting_factor=0.25
)
)
# Unsteady Simulation Example
# Create an unsteady simulation with Adaptive CFL
time_stepping = fl.Unsteady(
step_size=0.001 * fl.u.s,
steps=1000,
max_pseudo_steps=25,
order_of_accuracy=2,
CFL=fl.AdaptiveCFL(
min=0.1,
max=1e6,
max_relative_change=50,
convergence_limiting_factor=1.0
)
)
# Ramp CFL Example
# Create a steady simulation with Ramp CFL
time_stepping = fl.Steady(
max_steps=3000,
CFL=fl.RampCFL(
initial=5,
final=200,
ramp_steps=40
)
)