# 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

### hydnum.h

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

### turbke.F

• 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

### memkep.F

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

### turbkw.F

• 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

### memkom.F

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

### tridim.F

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

### impini.F

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

### iniini.F

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

### usini1.F

• 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
Code_Saturne

ATAAC
KNOO

DESider
FLOMANIA