LargeEddy Simulation & DetachedEddy Simulations
using an inHouse Python source code
The traditional method for CFD in industry and universities is ReynoldsAveraged NavierStokes (RANS). It is a fast method and
mostly rather accurate. However, in flows involving large separation regions, wakes and transition it is inaccurate. The reason
is that all turbulence is modeled with a turbulence model. For predicting aeroacoustic, RANS is even more unreliable.
For these flow, LargeEddy Simulation (LES) and DetachedEddy Simulations (DES) is a suitable option although it is much more
expensive. Still, in many industries (automotive, aerospace, gas turbines, nuclear reactors, wind power) DES is used as an alternative to RANS.
In universities, extensive research has been carried out during the last decade(s) on LES and DES.
Unfortunately, most engineers and many researchers have limited knowledge of what a LES/DES CFD code is doing. The object of this
online course is to close that knowledge gap. During the course, the participants will learn and work with an inhouse LES/DES code called
pyCALCLES, written by the
lecturer. It is a finite volume CFD code written in Python. Currently,
it includes two zeroequation SGS models (Smagorinsky and WALE) and two
twoequation model (the PANS model and the komega DES moddl). It is rather small (1600 lines).
The convective terms in the momentum equations are discretized using
central differencing.
Hybrid central/upwind is used for the k and eps equations. The CrankNicolson scheme is used for time discretization of all equations.
The numerical procedure is based on an implicit, fractional step technique with pyamg [17] 
an AMG multigrid pressure Poisson solver  and a nonstaggered grid arrangement.
The Python CFD code is fully vectorized and it only includes two DOloops
(the time loop and the global iteration loop).
It is reasonably fast. Up to now, it has been used to compute the following four flows (see some figures below):
 Channel flow. x^{+}=17, z^{+}=8. DNS (Re_{τ}=500) using a 96x96x96 mesh. 20 000 timesteps (10 000 to reach fullydeveloped conditions
+ 10 000 for timeaveraging). The CPU time on a PC is 11 hours
 Channel flow. DES ((Re_{τ}=5200) with a komegaDES model using a 32x96x32 mesh.
20000 timestep (7 500 + 7 500). The CPU time on a PC is 1.6 hours.
 Periodic hill flow. DES (Re=10500) wtth a komegaDES model using a 160x80x32 mesh. 20000 timestep (10000 + 10000).
The CPU time on a PC is 8 hours.
 Channel flow with inlet and oulet. Δx^{+}=40, Δz^{+}=20. LES (Re_{τ}=395)
using a 96x96x32 mesh. 20 000 timesteps (10 000 to reach fullydeveloped conditions
+ 10 000 for timeaveraging). Anisotropic synthetic fluctuations [7,9] are prescribed at the inlet. The
WALE model is used. The CPU time on a PC is 8 hours
 Flatplate boundary layer. Δx^{+}=104, Δz^{+}=30. Re_{θ,inlet;}=2 400.
komega DES using a 500x90x64 mesh.
RANSLES interface at a fixed gridline. IDDES lengthscale.
15 000 timesteps (7 500 to reach fullydeveloped condition
+ 7 500 for timeaveraging). Anisotropic synthetic fluctuations [7,9] are prescribed at the inlet. The
komega DES model is used. The CPU time on a PC is 70 hours
 Channel flow with inlet and oulet. x^{+}=400, z^{+}=200. LES (Re_{τ}=5200)
using a 96x96x32 mesh. 15 000 timesteps (7500 to reach fullydeveloped conditions
+ 7500 for timeaveraging). Anisotropic synthetic fluctuations [7,9] are prescribed at the inlet. The
komega DES model is used. The CPU time on a PC is 13 hours
 Hump flow using a 400x120x32 mesh. Re=9.36E+5. 15 000 timesteps (7500 to reach fullydeveloped conditions
+ 7500 for timeaveraging). Anisotropic synthetic fluctuations [7,9] are prescribed at the inlet. The
komega DES model is used. The CPU time on a PC is 45 hours
THE ONLINE COURSE
The course includes lectures (12 hours) and workshops (12 hours) learning and using pyCALCLES. The
course is given 28, 30, 2 July 2021.
The lectures will be given online (Live) using Zoom. During the workshops, the participants will get
supervision in a joint Zoom room which will enable participants to learn from each others questions. Part of the supervision
may also be given in individual breakout Zoom rooms.
Zoom
In the lectures we will address:
 finite volume discretization
 central differencing scheme
 hybrid central/upwind scheme
 Smagorinsky model
 WALE model
 the keps DES model
 twoequation PANS model (k and epsilon)
 wall and periodic boundary conditions
 TDMA (tridiagonalmatrixalgorithm) solver
 how to prescribe turbulent inlet boundary conditions
 how to generate inlet anisotropic synthetic turbulent fluctuations
In the workshops, the participants will use pyCALCLES.
The participants will get the pyCALCLES source CFD code and install it on their laptop or desktop.
The following Python packages are used
 Python 3.8
 from scipy import sparse
 import numpy as np
 import pyamg
 On Ubuntu, I installed it with the command 'conda install c anaconda pyamg'
 from scipy.sparse import spdiags,linalg
Some results are shown below obtained with pyCALCLES.
 DNS at Re_{τ} = 500 of fully developed channel flow.
Periodic boundary conditions in streamwise and
spanwise directions.
Instantaneous w' fluctuations at y^{+}=9
 komega DES of the hill flow. Periodic boundary conditions in streamwise and
spanwise directions.
Instantaneous spanwise fluctuation
 komega DES of the channel flow at Re_{τ} = 5200.
Periodic boundary conditions in streamwise and
spanwise directions.
Resolved (blue) and modeled (red) shear stresses compared with DNS (markers)
 WALE Channel flow with inletoutlet Re_{τ} = 395. Periodic boundary conditions in
spanwise direction.
Predicted friction velocity vs. x. Target value is one
Shear stresses compared with fully developed DES and inlet synthetic fluctuations (markers)
 komega DES Channel flow with inletoutlet Re_{τ} = 5200. Periodic boundary conditions in
spanwise direction.
Predicted friction velocity vs. x. Target value is one
Shear stresses compared with DNS and synthetic inlet fluctuations (markers)
 Flatplate boundary layer. Δx^{+}=40, Δz^{+}=104. LES (Re_{θ,inlet;}=2 400)
Predicted skin friction vs. Re_{θ}. Markers: expts
Shear stresses compared with DNS and inlet synthetic fluctuations (markers)
 Hump flow, Re=9.36E+5)
The grid (every 8th grid line is shown)
Predicted skin friction. Markers: expts
OBJECT
The object is that the participants should learn how a CFD code for LES/DES works. It will give them
increased knowledge, confidence and knowhow when using commercial CFD codes.
PARTiCiPANTS
The participants are expected to hold a MSC degree or PhD degree related to fluid mechanics. They are expected
to have at least a basic knowledge in LES and DES. Programming skills in Pythons is recommended.
The course is expected to be valuable also for researchers
with extensive knowledge in LES and/or DES. The participants may continue to use pyCALCLES
after the course, in their daily work and/or research.
Participant who are reasonable good at programming can rather easy convert the Python CFD code to their favorite
language (C, C++, Fortan95).
LECTURER
The lecturer at the course (both during lectures and workshops) will be Prof. Lars Davidson,
Chalmers University of Technology.
homepage
COURSE MATERiAL
COURSE LANGUAGE
The course material is in English and the lectures will be given in English.
DATE & LOCATiON
The course will be held 28, 30 June, 2 July 2021 online at Zoom
Zoom
REGiSTRATiON
Registration form should be submitted no later than May 28, 2021.
The price is 14,700 SEK (excl. VAT). No refunding after May 28.
The number of participants is limited to 16.
registration form
PROGRAM
DAY 1, Monday, 8 hours
 General structure of pyCALCLES
 Discretization in pyCALCLES
 Compute geometrical quantities
 Studying Test Case 1 (channel flow)
 Studying Test Case 2 (atmospheric boundary layer)
 WORKSHOP
 Fullydeveloped channel flow simulations using PANS
 Channel flow simulations with inletoutlet using PANS
 Investigation of different synthetic fluctuating inlet fluctuations. For example, change the prescribed
integral length scale, the integral time scale, the anisotropy ...
Tueday (no teaching). Participants can work on pyCALCLES
DAY 2, Wednesday, 8 hours
 Implicit RhieChow interpolation in pyCALCLES
 TDMA solver
 Implementation of Zero equation models
 Implementation of the PANS model in pyCALCLES
 Studying Test Case 3 (hill flow)
 WORKSHOP
 Implementing a oneequation hybrid LESRANS model
 Implementing a DES model (keps and/or komega)
 Implementing a DDES model (keps and/or komega)
Thursday (no teaching). Participants can work on pyCALCLES
DAY 3, Friday, 8 hours
 How to implement a new turbulence model in pyCALCLES
 How to generate anisotropic turbulent fluctuations in pyCALCLES
 how to implement a keps DES model
 Precursor RANS (using a 1D solver written in Python)
as input to synthetic turbulence generator
 WORKSHOP, see Section workshop in
the report on pyCALCLES
 Implementing an IDDES model (keps and/or komega)
 Implementing the SAS model (komega)
 Making heat transfer simulations in a channel with inletoutlet boundary conditions
Above, we give above examples on what turbulence models to implement in the workshops. Students may of course propose
to implement other turbulence models.
QUESTiONS & FURTHER iNFORMATiON
Please contact
 Lars Davidson
 tel. +46 (0) 730791 161
 Email: lada@flowsim.se, lada@chalmers.se
REFERENCES
 P. Emvin, The Full Multigrid Method Applied to Turbulent Flow in Ventilated
Enclosures Using Structured and Unstructured Grids. PhD thesis, Dept. of
Thermo and Fluid Dynamics, Chalmers University of Technology, Göteborg,
1997.
 L. Davidson, Large eddy simulations: how to evaluate resolution. International Journal of Heat and Fluid Flow, 30(5):10161025, 2009.
 L. Davidson, The PANS kε model in a zonal hybrid RANSLES formulation. International Journal of Heat and Fluid Flow, 46:112126, 2014.
 L. Davidson, Zonal PANS: evaluation of different treatments of the RANSLES interface. Journal of Turbulence, 17(3):274307, 2016.
 A. Altintas and L. Davidson, Direct numerical simulation analysis of spanwise oscillating lorentz force in turbulent channel flow at low Reynolds number. Acta Mechanica, pages 118, 2016.
 J. Ma, S.H. Peng, L. Davidson, and F. Wang, A low Reynolds number variant of PartiallyAveraged NavierStokes model for turbulence. International Journal of Heat and Fluid Flow, 32(3):652669, 2011.10.1016/j.ijheatfluidflow.2011.02.001.
 L. Davidson, Using isotropic synthetic fluctuations as inlet boundary conditions for unsteady simulations. Advances and Applications in Fluid Mechanics, 1(1):135, 2007.
 L. Davidson and S.H. Peng, Embedded largeeddy simulation using the partially averaged NavierStokes model. AIAA Journal, 51(5):10661079, 2013.
 L. Davidson, Twoequation hybrid RANSLES models: A novel way to treat k and ω at inlets and at embedded interfaces. Journal of Turbulence, 18(4):291315, 2017.
 B. Nebenfuhr, L. Davidson, LargeEddy Simulation Study of Thermally Stratified Canopy Flow, BoundaryLayer Meteorology, Vol. 156, number 2 , pp. 253276, 2015
 B. Nebenfuhr, L. Davidson, Prediction of windturbine fatigue loads in forest regions based on turbulent LES inflow fields, Volume 20, Issue 6 pp. 10031015, Wind Energy, 2017.
 L. Davidson and C. Friess,
The PANS and PITM model: a new formulation of f_k,
Proceedings of 12th International ERCOFTAC Symposium on Engineering Turbulence Modelling and Measurements (ETMM12), Montpelier,
France 2628 September, 2018
 L. Davidson, Zonal Detached Eddy Simulation coupled with steady RANS in the wall region,
ECCOMAS MSF 2019 Thematic Conference, 1820 September 2019, Sarajevo, BosniaHerzegovina
 L. Davidson, inlet boundary conditions.
 L. Davidson, "NonZonal Detached Eddy Simulation coupled with a steady RANS solver in the wall region",
ERCOFTAC Bullentin 120, Special Issue on Current trends in
RANSbased scaleresolving simulation methods, pp 4348, 2019.
 L.M. Olson abd J.B. Schroder, PyAMG: Algebraic Multigrid Solvers in Python v4.0,
Release 4.0, 2018
