– Turbulence Modeling in OpenPronghorn
This page documents the Reynolds-averaged Navier–Stokes (RANS) turbulence-modeling capabilities implemented in OpenPronghorn. It focuses on the – family of eddy-viscosity models and practical guidance for choosing and using each model in applications.
For general background on turbulence and RANS closures, see Pope Pope (2000) and Wilcox Wilcox (2006). The baseline – model follows Launder and Spalding Launder and Spalding (1974), with additional options inspired by realizable, low-Reynolds-number, two-layer, curvature/rotation, buoyancy, and compressibility corrections Shih et al. (1995), Spalart and Shur (1997), Yap (1987), Wolfstein (1969), and NORRIS III (1975).
Introduction
Most OpenPronghorn applications use RANS turbulence modeling to represent the effect of unresolved turbulent fluctuations on the mean flow. The main motivations are:
Cost: Direct numerical simulation is generally infeasible at reactor-relevant Reynolds numbers, and even LES can be prohibitively expensive for large, geometrically complex configurations.
Robustness: Two-equation eddy-viscosity models are well established, robust, and widely used in engineering practice.
Integration with thermal–hydraulics: The use of RANS models fits naturally into finite-volume formulations for coupled momentum, energy, and species transport equations.
OpenPronghorn’s turbulence infrastructure is designed to be:
Modular: The same utilities are reused by several – kernels and auxiliary objects.
Extensible: New turbulence models can be added by leveraging the existing functor and finite-volume infrastructure.
Configurable: Users can select a model variant and enable or disable individual corrections (low-Re, two-layer, Yap, nonlinear, curvature, buoyancy, compressibility) through input-file parameters.
Theory of RANS modeling
Reynolds decomposition and RANS equations
Let and denote the instantaneous velocity and pressure of a constant-property Newtonian fluid with density and dynamic viscosity . In RANS modeling we write
where the overbar denotes a suitable average (e.g., time or ensemble) and primes denote fluctuations Pope (2000).
Substituting into the Navier–Stokes equations and averaging yields the mean-momentum equations
with the Reynolds-stress tensor
The appearance of introduces the closure problem of turbulence: additional equations or models are required to express the Reynolds stresses in terms of mean quantities.
Boussinesq eddy-viscosity hypothesis
In classical eddy-viscosity models we assume that the anisotropic part of the Reynolds stresses is proportional to the mean strain-rate tensor
where
is the turbulent (eddy) viscosity,
is the turbulent kinetic energy,
is the strain-rate tensor with components
In OpenPronghorn, is provided by the – models via kEpsilonViscosity. The Boussinesq hypothesis is reasonably accurate for many wall-bounded shear flows, but is known to underperform in strongly anisotropic, rotating, or curvature-dominated flows Pope (2000) and Wilcox (2006). To mitigate these limitations OpenPronghorn includes:
optional nonlinear stress models (quadratic and cubic) that extend the constitutive relation beyond linear dependence on ;
a curvature/rotation correction that modifies production based on invariants of and the rotation tensor ;
realizable formulations in which depends on local invariants of and Shih et al. (1995).
The – models implemented
General transport equations
The baseline OpenPronghorn implementation follows the two-equation model of Launder and Spalding Launder and Spalding (1974). In conservative form the transport equations for and are
where
and are the molecular and turbulent kinematic viscosities;
is the density, which may have a functional dependency with temperature and pressure;
is shear production of turbulent kinetic energy;
is production (or destruction) of turbulence by buoyancy;
and collect additional user- or model-specific source terms, including compressibility (), Yap (), and low-Re corrections ();
and are damping functions (typically in high-Re models, with used in low-Re variants).
The eddy viscosity is given by
where can be:
the classical constant (standard model),
a realizable value depending on and ,
a two-layer or low-Re modified value, which depends on wall distance and Reynolds numbers specific to the chosen near-wall treatment.
Shear production is computed as
with . The final two terms are optional compressibility corrections that vanish when the flow is strictly incompressible. Buoyancy production is modeled as
where is the turbulent Prandtl number, is gravity, is temperature, and is the thermal expansion coefficient.
Model constants (standard high-Re model)
The standard high-Re – model uses the classical constants Launder and Spalding (1974):
,
,
,
,
.
These can be overridden through the parameters of the relevant kernels (kEpsilonTKESourceSink, kEpsilonTKEDSourceSink, and kEpsilonViscosity) if a different calibration is required.
Variant-specific forms
The implementation supports several model variants. For clarity we summarize the main differences in the equation and definition.
Standard (high-Re)
Eddy viscosity: .
, .
No explicit low-Re damping; near-wall behavior is typically handled by wall functions.
Optional terms:
compressibility correction in ,
Yap correction in ,
curvature factor multiplying ,
nonlinear production added to .
StandardLowRe
Same basic structure as the standard model, but:
is multiplied by a low-Re damping function ,
is given by
f2_SKE_LRe(Re_t),an additional term may appear in the equation, scaled by a low-Re damping factor.
These modifications allow integration to the wall () without wall functions, but require much finer near-wall meshes Wilcox (2006).
StandardTwoLayer
Near the wall, and the dissipation length scale are given by one of the two-layer prescriptions:
twoLayerWolfsteinWolfstein (1969),twoLayerNorrisReynoldsNORRIS III (1975),twoLayerXuXu et al. (1998).Away from the wall, the model reverts to the standard high-Re form.
A blending function based on wall-distance Reynolds numbers provides a smooth transition.
Realizable
Uses the realizable form of Shih et al. (1995): where and .
Optionally uses a realizable low-Re damping function
f2_RKE.Improves predictions for rotating, swirling, and separating flows while maintaining realizability of the normal stresses Shih et al. (1995).
RealizableTwoLayer
Combines the realizable formulation with a two-layer near-wall treatment.
Often a good default for complex internal flows when mesh resolution allows a near-wall cluster with .
Corrections implemented in the – models
All correction functions are defined in TurbulenceMethods: complete list of utilities. This section provides a summary of the corrections implemented in the – models.
This section explains the available corrections, their motivation, and how they are used.
Low-Reynolds-number corrections
Motivation: Standard high-Re models with wall functions assume an equilibrium logarithmic layer and cannot accurately represent the viscous sublayer and buffer region. Low-Re formulations include damping functions that allow integration to the wall at Wilcox (2006).
Implementation: (a) with
fmu_SKE_LRe(standard) or combined realizable damping, (b) The equation uses orf2_RKE, (c) An additional production term (viacomputeGprime) can be added to .Activation: (a)
k_epsilon_variant = 'StandardLowRe', (b)use_low_re_Gprime = true/false, (c) near-wall mesh with .
Two-layer near-wall models
Motivation: Two-layer models avoid the need to fully resolve the viscous sublayer while improving accuracy over simple wall functions. Near the wall, and are driven by empirical formulas; away from the wall, the standard or realizable – equations are used Wolfstein (1969) and NORRIS III (1975).
Implementation: (a) The wall distance is obtained from
WallDistanceAux, (b)twoLayerWolfstein,twoLayerNorrisReynolds, ortwoLayerXucompute and in the near-wall region, (c) A blending function transitions between near-wall and outer-layer behavior.Activation: (a)
k_epsilon_variant = 'StandardTwoLayer'or'RealizableTwoLayer', (b)two_layer_flavor = 'Wolfstein' | 'NorrisReynolds' | 'Xu', (c)wall_distanceauxiliary variable and consistentwallslist.
Realizable formulation
Motivation: The classical – model can violate realizability constraints (e.g., negative normal stresses). The realizable formulation introduces a new expression for and a modified equation to enforce these constraints, improving predictions in rotating and separating flows Shih et al. (1995).
Implementation: (a)
Cmu_realizableprovides based on , , , and . (b) Optional low-Re damping viaf2_RKEmay be applied.Activation:
k_epsilon_variant = 'Realizable'or'RealizableTwoLayer'.
Nonlinear eddy-viscosity model
Motivation: Linear eddy-viscosity models cannot reproduce some important features of anisotropic turbulence (secondary flows, normal stress differences) Pope (2000). Nonlinear constitutive relations add higher-order dependencies on and .
Implementation: (a)
computeTRANS_NLconstructs nonlinear tensor bases, (b)computeGnlcomputes additional production , (c)Cmu_nonlinearkeeps consistent with the nonlinear stress model.Activation:
nonlinear_model = 'quadratic'or'cubic'(in the – kernels).
Yap correction
Motivation: In separated and impinging flows, classical – models may overpredict the turbulence length scale, leading to excessive eddy viscosity and overly diffused separation zones. Yap’s correction adds an extra sink term for to limit the growth of the length scale Yap (1987).
Implementation: (a)
computeGammaYcomputes based on , , and model constants, (b) is added to inkEpsilonTKEDSourceSinkwhen enabled.Activation: (a)
use_yap = true, (b) consistent wall-distance and two-layer settings if applicable.
Buoyancy production
Motivation: In natural or mixed convection, buoyancy can generate or suppress turbulence, especially in strongly stratified regions Wilcox (2006).
Implementation: (a)
computeGbprovides using gravity, temperature gradient, and expansion coefficient , (b) is added to the equation and appears in the equation multiplied by .Activation: (a)
use_buoyancy = true, (b)gravity,T_fluid,beta, andPr_tset appropriately.
Compressibility correction
Motivation: At high Mach numbers, dilatational effects can alter the turbulence structure and time scales. Compressibility corrections add an extra term to the equation to account for these effects Wilcox (2006).
Implementation: (a)
computeGammaMcomputes based on , , and local speed of sound, (b) is added to whenuse_compressibility = true.Activation: (a)
use_compressibility = true, (b) aspeed_of_soundfunctor is provided and consistent with the equation of state.
Curvature / rotation correction
Motivation: Simple eddy-viscosity models tend to mispredict turbulence levels in rotating channels, swirling jets, and flows over curved surfaces. Spalart and Shur proposed a correction factor that modifies production based on curvature/rotation Spalart and Shur (1997).
Implementation: (a)
computeCurvatureFactoruses and to build , (b) is replaced by in both the and equations when curvature corrections are enabled.Activation: (a)
use_curvature_correction = true, (b)curvature_model = 'standard'(or similar option as implemented).
Practical guidance for using each model
Summary table
The table below provides a practical summary for choosing a – variant in OpenPronghorn.
| Variant | Near-wall treatment | Typical first-cell | Mesh requirements | Typical domain of application | Example applications (OpenPronghorn context) | Comments |
|---|---|---|---|---|---|---|
Standard | High-Re, wall functions | Coarse first cell in log layer; few cells across BL | Fully turbulent attached flows, mild pressure gradients | Straight channels, simple pipe flows, external bluff body with mild separation | Fast and robust; good initial choice for simple internal flows. | |
StandardLowRe | Low-Re damping (, ) | Strong wall clustering; many cells in viscous sublayer and buffer region | Heat-transfer-dominated internal flows, strong adverse pressure gradients | High-fidelity channel-flow benchmarks, heated rod bundles (resolved near wall) | More expensive; sensitive to near-wall mesh quality and wall-distance accuracy. | |
StandardTwoLayer | Two-layer (Wolfstein/NorrisReynolds/Xu) | Moderate wall clustering; smooth near-wall blending | Industrial internal flows, moderate separation, HVAC and ductwork | Reactor auxiliary systems, plenum mixing with moderate separation | Good compromise between cost and accuracy; pick two_layer_flavor based on target data. | |
Realizable | High-Re, wall functions | Similar to Standard | Rotating, swirling, and separating flows | Mixing tees, swirling jets, complex manifolds with recirculation | Often preferred to Standard when rotation or separation is important. | |
RealizableTwoLayer | Realizable + two-layer near-wall model | Moderate wall clustering plus two-layer blending | General-purpose model for complex internal flows with heat transfer | Reactor primary loops with moderate mesh resolution near walls | Recommended default in many industrial-like configurations when mesh allows . |
Additional configuration guidelines
Wall-distance field
Use
WallDistanceAuxto compute the distance to solid walls.Ensure that the
wallslist is consistent acrossWallDistanceAux,kEpsilonTKESourceSink,kEpsilonTKEDSourceSink, andkEpsilonViscosity.
Coupling , , and
Always include all three components:
kEpsilonTKESourceSink(for ),kEpsilonTKEDSourceSink(for ), andkEpsilonViscosity(for ).The
k_epsilon_variantparameter should be the same in all of them.
Incompressible vs compressible
For incompressible or low-Mach flows, set
use_compressibility = falseand omitspeed_of_sound.For compressible flows, provide a consistent
speed_of_soundfunctor and consider tighter nonlinear and linear solver tolerances.
Buoyancy-driven and stratified flows
Pay attention to
Pr_t,beta, and the reference temperature/state.Post-process , , and terms where possible to verify the qualitative behavior of the model.
Enabling corrections judiciously
Nonlinear and curvature corrections add complexity and stiffness. Use them when there is clear physical motivation (strong curvature, swirl, or secondary flows) and when validation data are available.
Yap and low-Re corrections are valuable in separated flows and near-wall heat transfer, but may not be necessary in simple attached turbulence.
Validation and calibration
The default constants are consistent with widely used industrial models Launder and Spalding (1974) and Shih et al. (1995).
For critical design calculations, validate against experiments or high-fidelity simulations (DNS/LES) Pope (2000) and Wilcox (2006).
If any model coefficients are retuned, document these changes and the validation cases used.
References
- Brian E. Launder and David B. Spalding.
The numerical computation of turbulent flows.
Computer Methods in Applied Mechanics and Engineering, 3(2):269–289, 1974.[BibTeX]
- H LEE NORRIS III.
Turbulent channel flow with a moving wavy boundary.
Stanford University, 1975.[BibTeX]
- Stephen B. Pope.
Turbulent Flows.
Cambridge University Press, 2000.[BibTeX]
- Tsan-Hsing Shih, William W. Liou, Aamir Shabbir, Zhigang Yang, and Jiang Zhu.
A new k-ε eddy-viscosity model for high reynolds number turbulent flows: model development and validation.
Computers & Fluids, 24(3):227–238, 1995.[BibTeX]
- P. R. Spalart and M. Shur.
On the sensitization of turbulence models to rotation and curvature.
Aerospace Science and Technology, 1(5):297–302, 1997.[BibTeX]
- David C. Wilcox.
Turbulence Modeling for CFD.
DCW Industries, 3 edition, 2006.[BibTeX]
- M. Wolfstein.
The velocity and temperature distribution in one-dimensional flow with turbulence augmentation and pressure gradient.
International Journal of Heat and Mass Transfer, 12(3):301–318, 1969.[BibTeX]
- Wen Xu, Q Chen, and FTM Nieuwstadt.
A new turbulence model for near-wall natural convection.
International Journal of Heat and Mass Transfer, 41(21):3161–3176, 1998.[BibTeX]
- Christopher R Yap.
Turbulent heat and momentum transfer in recirculating and impinging flow.
The University of Manchester (United Kingdom), 1987.[BibTeX]