# Transition Model
# 📝 Transition Model Configuration
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 | Unit |
---|---|---|
Type | Transition model selection | |
Absolute Tolerance | Convergence criteria for transition equations | |
CFL Multiplier | Stability factor applied to CFL | |
Equation Evaluation Frequency | Update frequency for transition equations | steps |
Turbulence Intensity Percent | Freestream turbulence intensity | % |
N_crit | Critical amplification factor | |
Update Jacobian Frequency | Frequency of Jacobian matrix updates | steps |
Reconstruction Gradient Limiter | Limiter strength for stability | |
Trip Regions | Regions forcing boundary layer transition |
# 🔍 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
# 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
# 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
# Equation Evaluation Frequency
How often the transition equations are solved relative to the Navier-Stokes equations.
- Default:
4
(every 4 Navier-Stokes steps) - Example:
1
(every Navier-Stokes step) - Notes:
- Higher values reduce computational cost
- For critical transition prediction, set to 1
- May impact accuracy of transition location prediction
# 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))
# 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
# 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
# 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
💡 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
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
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)