Implementation of a Hybrid Numerical Scheme in Code Saturne v1.4

The Hybrid numerical scheme of travin et al(2002) is implemented into Code Saturne. Blending between a fully 1st order upwind scheme and a 2nd order Central differencing scheme.

See Physical and numerical upgrades in the detached-eddy simulation of complex turbulent flows, A Travin, M Shur, M Strelets, P R Spalart (2002) Advances in LES of Complex Flow p. 239-254

Applications to Detached-Eddy-Simulation

This scheme ensures that in the regions of the flow where the RANS branch of a DDES is active then an upwind convective scheme is used and in the regions from the LES branch is active, a fully centred convection scheme is used. This is achieved by the following blending function:

%$\phi_{f} = (1-\sigma)\phi_{f,CDS} + \sigma\phi_{f,UPW}$%

Source terms

The Blending function %$\sigma$% is based upon the following set of equations:

%$\sigma = \sigma_{max} \tanh(A^{C_{H1}})$%

%$A = C_{H2} \max\left(\frac{C_{DDES}\Delta}{l_{turb}g}-0.5;0 \right)$%

%$l_{turb} = \sqrt{\frac{\nu_{t} + \nu}{C_{\mu}^{3/2}K}}$%

%$K = \max\left(\sqrt{\frac{S^{\ast 2}+\Omega^{\ast 2}}{2}};\frac{0.1}{\tau} \right)$%

%$ g = \tanh(B^{4})$%

%$ B = \frac{C_{H3} \Omega^{\ast} \max(S^{\ast};\Omega^{\ast})} {\max(\frac{S^{\ast 2}+\Omega^{\ast 2}}{2};10^{-20})}$%

%$\sigma_{max} = 1 , C_{H1} = 3 , C_{H2} = 1 , C_{H3} = 2$%

Modified Code Saturne v1.4 subroutines


  • define the switch; hybnum as integer and the blending function %$\sigma$% as double precision


  • create two new working arrays to calculate %$S^{\ast}$% and %$\Omega^{\ast}$%, W12 and W13

  • include hybnum.h

  • Define new working arrays as double precision

  • calculate source terms and create new RTUSER for %$\sigma$% to be passed to bilsc2.F


  • Define and include new working arrays W12 and W13 in the header
  • include W12 and W13 in memory pointers


  • Include hybnum.h

  • create a new working array for %$\Omega^{\ast}$%, W12

  • define new working array as double precision

  • calculate source terms and create new RTUSER for %$\sigma$% to be passed to bilsc2.F


  • Define and include new working array, W12
  • include W12 in memory pointers


  • Include new working arrays in memkep.F, memkom.F and turbke.F memory calls


  • include hybnum.h
  • include listing printouts for the switch hybnum


  • include hybnum.h
  • set default value for hybnum switch to 0


  • include hybnum.h
  • include the switch hybnum so if it equals 1 the hybrid numerical scheme is active. Also set a loop so each variable does not use the slope test and is fully centred. BLENCV and ISSTPC
  • set the memory pointers for the RTUSER ISIGMANUM

Current Tags:
create new tag
, view all tags
Topic revision: r6 - 2010-11-19 - 10:20:34 - NeilAshton
Main Web
23 Aug 2019


Manchester CfdTm

Ongoing Projects


Previous Projects


Useful Links:

User Directory
Photo Wall
Upcoming Events
Add Event

Computational Fluid Dynamics and Turbulence Mechanics
@ the University of Manchester
Copyright © by the contributing authors. Unless noted otherwise, all material on this web site is the property of the contributing authors.