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.
The grid in the xy direction can be curvilinear. Nonconstant grid spacing may be set in the z direction.
Currently,
it includes two zeroequation SGS models (Smagorinsky and WALE) and two
twoequation model (the PANS model and the komega DES model). 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. If your computer has a compatible Nvidia
graphics card, you can choose so solve the pressure equation on the graphics card using pyamgx [17] (see Appendix
Using pyAMGx on GPU in the report). On flow cases (first test case below)
where the pressure solver requires much computational effort,
this gives a speedup of approximately a factor of ten when solving the pressure equation
and an overall speedup of a factor of two. You can also solve the momentum equations on the GPU (second test case below).
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):
 Windtunnel flow with a noise reducing fairing, U_{in}=16m/s (air). LES, WALE model. Domain 1X0.25X0.25 m^{3}.
7500 timesteps (3 750 to reach fullydeveloped conditions
+ 3 750 for timeaveraging). Mesh 256x200x200 (10M cells).
The computation time (pressure equation is solved on the GPU) on an Alienware x17 R1 laptop is 40 hours.
 Channel flow. x^{+}=65, z^{+}=16 (domain 6.4 x 2 1.6). LES (Re_{τ}=2000) using a 196x196x196 mesh. 7 500 timesteps (3 750 to reach fullydeveloped conditions
+ 3 750 for timeaveraging). The solution time (both the pressure and the momentum equations are solved on the GPU) on a PC with a
graphics card with large 16 GN memory is 21 hours (more than four times faster than on the CPU).
 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. It's more than twice as fast when solving all equations on the GPU.
 Channel flow. DES ((Re_{τ}=5200) with a komegaDES model using a 32x96x32 mesh.
15000 timestep (7 500 + 7 500). The CPU time is 1.1 hours on an Alienware x17 R1 laptop.
 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.
keps IDDES using a 700x105x128 mesh.
3 750 timesteps (3 750 to reach fullydeveloped condition
+ 3 750 for timeaveraging). Anisotropic synthetic fluctuations are prescribed at the inlet.
The CPU time on a PC is 54 hours (u, v, w, p, k and eps equations are solved on the GPU)
 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 582x128x32 mesh. Re=9.36E+5. 7 500 timesteps (3 750 to reach fullydeveloped conditions
+ 3 750 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 39 hours (pressure is solved on the GPU)
THE ONLINE COURSE
The course includes lectures (12 hours) and workshops (12 hours) learning and using pyCALCLES. The
course is given 27, 29, 1 July 2022.
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
 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 27, 29 June, 1 July 2022 online at Zoom
Zoom
REGiSTRATiON
Registration form should be submitted no later than May 27, 2022.
The price is 14,700 SEK (excl. VAT). No refunding after May 27.
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)
 Solving the pressure equation on the GPU (your computer must have a compatible Nvidia)
 Try to implement solving the k and eps equations on the GPU
 Making heat transfer simulations in a channel with inletoutlet boundary conditions
Above, we give 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

L. Davidson and Ch. Friess, "Detached Eddy Simulations: Analysis of a limit on the dissipation term for reducing spectral
energy transfer at cutoff",
ETMM13: The 13th International ERCOFTAC symposium on engineering, turbulence, modelling
Rhodes, Greece, 1517 September, 2021
View PDF file

L. Davidson
"Detached Eddy Simulation coupled with steady RANS in the wall region",
ETMM13: The 13th International ERCOFTAC symposium on engineering, turbulence, modelling
Rhodes, Greece, 1517 September, 2021
View PDF file
