# Transition model
The transition model determines how and when the flow transitions from laminar to turbulent within the simulation. It enables accurate prediction of laminar-turbulent transition effects, which are critical for correctly modeling aerodynamic performance, especially for flows at moderate Reynolds numbers where transition location significantly impacts drag prediction.
# Available Parameters
Parameter | Description |
---|---|
Type | Transition model selection (AFT or None) |
Turbulence intensity percent | Freestream turbulence intensity |
NCrit | Critical amplification factor |
Absolute tolerance | Convergence criteria for transition equations |
Relative tolerance | Relative residual reduction for unsteady cases |
Trip regions | Regions forcing boundary layer transition |
Order of accuracy | Spatial discretization order (1st or 2nd) |
Equation evaluation frequency | Update frequency for transition equations |
Linear solver - max iterations | Maximum iterations for linear solver |
Update Jacobian frequency | Frequency of Jacobian matrix updates |
Max force jacobian update physical pseudo steps | Controls Jacobian matrix update criteria |
CFL multiplier | Stability factor applied to CFL |
Reconstruction gradient limiter | Limiter strength for stability |
# Detailed Descriptions
# Type
The type of transition modeling approach used in the simulation.
- Options:
AmplificationFactorTransport
: Gamma-ReTheta model with amplification factor transportNone
: No transition modeling (fully turbulent)
- Default:
None
Notes:
- Must be used with a compatible turbulence model (SA or SST)
- AmplificationFactorTransport is based on the Gamma-ReTheta model with enhancements
- Applicable to a wide range of external and internal flows
# Turbulence intensity percent
The freestream turbulence intensity as a percentage.
- Default: Not specified (requires either this or N_crit)
- Example:
0.05
(0.05%) - Range:
0.03
to2.5
Notes:
- Critical parameter affecting transition onset
- Must not be specified simultaneously with N_crit
- Internally converted to N_crit via correlation
- Lower values delay transition (typical wind tunnel:
0.05
-0.1
%)
# N_crit
The critical amplification factor for transition onset.
- Default:
8.15
(if neither N_crit nor turbulence intensity specified) - Example:
9.0
(for low disturbance environments) - Range:
1.0
to11.0
Notes:
- Must not be specified simultaneously with turbulence intensity
- Higher values delay transition (typical range:
7
-9
)- Flight conditions typically
8
-10
- Wind tunnel typically
5
-8
depending on quality- Relation to turbulence intensity: N_crit = -8.43 - 2.4ln(0.025tanh(Tu%/2.5))
# Absolute tolerance
The convergence threshold for transition equation residuals.
- Default:
1.0e-7
- Example:
1.0e-6
Notes:
- Controls convergence criteria for transition equations
- Can typically be less strict than Navier-Stokes tolerance
- May need to be relaxed for challenging transition cases
# Relative tolerance
Relative residual reduction target for the transition equations per physical step.
- Default:
0.0
- Example:
1e-2
Notes:
- Applicable only with unsteady simulations
- For unsteady cases, typically set to 1e-2
- Once residuals drop by prescribed order of magnitude (0.01 means 2 orders of magnitude), solver proceeds to next physical step
# Trip regions
Box regions where transition is forced to occur.
- Default: None (natural transition)
- Example: Box entities defining trip zones
Notes:
- Useful for matching experimental trip strip locations
- Can be used to force transition at specific locations
- Multiple trip regions can be defined
# Order of accuracy
Spatial discretization order for transition variables.
- Default:
2
- Example:
1
Notes:
1
is more robust;2
is more accurate- In most cases it should be kept at default value
# Equation evaluation frequency
Controls how often (in pseudo steps) transition equations are solved.
- Default:
4
- Example:
1
Notes:
1
provides the most robust convergence- Higher values can reduce time cost but may slow down convergence
# Max force jacobian update physical pseudo steps
If the current physical step is lower than this value, jacobian matrix will be updated at every pseudo step.
- Default:
0
(disabled) - Example:
10
Notes:
- Useful for cases where more stability is needed at the beginning
# Linear solver - max iterations*
Configures the maximum number of iterations solved at each pseudo-step for transition equations.
- Default:
20
- Example:
40
Note:
- Increasing the parameter can improve robustness at added cost per pseudo-step
# Update Jacobian frequency
Controls how often the Jacobian matrix for the transition equations is updated.
- Default:
4
(every 4 pseudo-steps) - Example:
1
(every iteration)
Notes:
- Lower values improve robustness but increase cost
- For challenging cases with complex transition, set to
1
- For well-behaved flows, 4 is typically sufficient
# CFL multiplier
Scaling factor applied to the CFL number for transition equations.
- Default:
2.0
- Example:
1.0
(for improved stability)
Notes:
- Effective transition CFL = Time Stepping CFL × CFL Multiplier
- Can often be higher than Navier-Stokes CFL for efficiency
- Reduce for stability in complex transition scenarios
# Reconstruction gradient limiter
Controls the aggressiveness of gradient limiting for transition variables.
- Default:
1.0
- Example:
0.5
(more limiting for stability)
Notes:
- Range: [
0.0
,2.0
]0.0
: Maximum limiting (first-order accuracy)2.0
: No limiting (can be unstable)- Lower values improve stability but may affect transition prediction accuracy
💡 Tips
For accurate transition prediction:
- Use a sufficiently refined mesh in the boundary layer (y+ < 1)
- Ensure streamwise resolution is adequate near expected transition locations
- Set appropriate turbulence intensity based on environment (flight vs. wind tunnel)
For flight conditions:
- Use N_crit =
8
-10
or very low turbulence intensity (0.03
-0.05
%) - Consider sensitivity studies for uncertain cases
- Use N_crit =
For wind tunnel validation:
- Match the facility turbulence intensity if known
- For typical low-turbulence tunnels, use
0.05
-0.1
% or N_crit =7
-8
- For conventional tunnels, use
0.1
-0.5
% or N_crit =5
-7
For stability in challenging cases:
- Reduce CFL multiplier to
1.0
- Set equation evaluation frequency to
1
- Update Jacobian every iteration (frequency =
1
) - Use gradient limiter values around
0.5
-0.7
- Reduce CFL multiplier to
When comparing to experiments:
- Consider using trip regions to match experimental trip strip locations
- Be aware that surface quality/roughness affects transition but isn't directly modeled
❓ Frequently Asked Questions
When should I use a transition model vs. fully turbulent simulation?
Use a transition model when the transition location significantly impacts the results, typically in: 1) Low to moderate Reynolds number flows (Re < 10^7), 2) Flows with extensive laminar regions, 3) Cases where drag prediction accuracy is critical, or 4) When comparing with experiments that show distinct transition effects. For very high Reynolds numbers where transition occurs near the leading edge, fully turbulent models are often sufficient.
How do I choose between turbulence intensity and N_crit parameters?
If you know the freestream turbulence intensity from experimental data, use that directly. If you're modeling flight conditions or have experience with N_crit values, you can specify that instead. They are related by a correlation and cannot be specified simultaneously. For typical applications, turbulence intensity is more intuitive.
Why does my transition location not match experiment/expected results?
Transition prediction is highly sensitive to several factors: 1) Freestream turbulence intensity/N_crit setting, 2) Pressure gradient resolution, 3) Mesh resolution, 4) Surface roughness (not directly modeled), and 5) Freestream turbulence spectrum (not captured by intensity alone). Try adjusting turbulence intensity within a reasonable range or using trip regions to match known transition locations.
Can I use the transition model with any turbulence model?
The AmplificationFactorTransport transition model in Flow360 works with both Spalart-Allmaras and k-Omega SST turbulence models. It cannot be used if the turbulence model is set to "None."
How does mesh resolution affect transition prediction?
Transition prediction requires: 1) Wall-normal resolution with y+ < 1, 2) Adequate streamwise resolution to capture the pressure gradient accurately, and 3) Smooth mesh growth rate in boundary layer regions. Insufficient resolution typically leads to premature transition prediction or failure to predict transition at all.
What is the difference between using trip regions and adjusting turbulence intensity?
Trip regions force transition at specific locations, mimicking experimental trip strips or roughness elements. Turbulence intensity affects when natural transition occurs throughout the entire domain based on local flow conditions. Use trip regions when you want to force transition at known locations, and use turbulence intensity to model the natural transition process.
🐍 Python Example Usage
Below are Python code examples showing how to configure transition models:
# Basic transition model with turbulence intensity
transition_model = fl.TransitionModelSolver(
type_name="AmplificationFactorTransport",
turbulence_intensity_percent=0.05,
absolute_tolerance=1e-7,
CFL_multiplier=2.0,
equation_evaluation_frequency=4
)
# Transition model with N_crit instead of turbulence intensity
transition_model = fl.TransitionModelSolver(
N_crit=9.0, # Higher values delay transition
absolute_tolerance=1e-7
)
# Transition model with custom linear solver settings
transition_model = fl.TransitionModelSolver(
turbulence_intensity_percent=0.1,
linear_solver=fl.LinearSolver(
max_iterations=30,
absolute_tolerance=1e-8
)
)
# Advanced transition model with trip regions
from flow360 import u
# Define trip box entities
trip_box1 = fl.Box(
name="LeadingEdgeTrip",
center=(0.05 * u.m, 0, 0),
size=(0.01 * u.m, 0.5 * u.m, 0.01 * u.m)
)
trip_box2 = fl.Box(
name="UpperSurfaceTrip",
center=(0.2 * u.m, 0.1 * u.m, 0),
size=(0.01 * u.m, 0.05 * u.m, 0.05 * u.m)
)
# Configure transition model with trip regions
transition_model = fl.TransitionModelSolver(
N_crit=8.15,
reconstruction_gradient_limiter=0.7,
update_jacobian_frequency=1,
equation_evaluation_frequency=1,
CFL_multiplier=1.0, # Reduced for stability
trip_regions=[trip_box1, trip_box2]
)
# Example usage in a simulation setup
simulation_params = fl.SimulationParams(
# Other simulation parameters...
models=[fl.Fluid(
transition_model=transition_model,
turbulence_model=fl.SpalartAllmaras() # Must be used with a compatible turbulence model
)]
)
# Submit to a project
project.submit(mesh_name="my_airfoil_mesh", simulation_params=simulation_params)