JuliaCon 2023

SyntheticEddyMethod.jl for fluid dynamics
07-26, 14:30–14:40 (US/Eastern), 32-123

Synthetic Eddy Methods (SEM) are a family of techniques used to generate realistic inflow data for Large Eddy Simulation (LES) simulation in fluid dynamics. This is one of the easiest and less memory-consumption inflow generators method. The package SyntheticEddyMethod.jl implements the SEM and recreates a statistically correct and coherent turbulent flow.


The generation of inflow data for spatially developing turbulent flows is one of the challenges that must be addressed prior to the application of LES to industrial flows and complex geometries. The specification of realistic inlet boundary conditions is widely acknowledged to play a significant role in the accuracy of a numerical simulation. Reynolds Averaged Navier Stokes (RANS) approach needs only mean profiles for the velocity and turbulence variables, making the definition of inflow data relatively simple but the results less accurate. The generation of inflow data is much more difficult in large-eddy and direct-numerical simulations. The SEM has to be adequately tuned in order to be dependent on the turbulent intensity and to trigger the transitions to turbulence over the tested geometries in order to reproduce the experimental data. It is not advisable to use a generic white noise for creating turbulence mostly because it generates incredibly high local gradients and so the turbulence is going to be completely dissipated.
This package in a few lines allows the user to obtain a time-dependent statistically correct and coherent turbulent flow. The problem is initialized by the user setting the dimension of the inlet, the mesh size and turbulence intensity.
In the program logic, the eddies, which are coherent fluid structures, resembling the concept of vortex, are generated in a virtual box. This is a computational domain placed in such a way that the surface of the inlet is contained within it. In this environment, eddies are just translated, and the properties of the flow are computed on the inlet surface.
The instantaneous flow field is saved in a cache object and is updated when the user wants to advance of one time-step. Due to the customizable size of the virtual box, is it possible to use this package also in case of curved surfaces.
The flow properties are computed only on the points of the inlet surface. Each eddy is characterised by a single coordinate set defining the centre and an intensity level (+1, -1).
The creation of synthetic eddies relies upon mathematical and statistical definitions. More advanced users can also select between different mathematical functions adopted to generate the eddies (at the moment just the tent and Gaussian, more can be easily coded).
It has been realized in Julia because, at the moment of the development, such a method was implemented only in other programming languages. In comparison with other similar projects (in Python or Fortran), there is less code and the use is straightforward. Furthermore, it is really close to the mathematical notation and it makes it easier to understand by future contributors.
Finally, the results of the package have been tested. The spectral analysis shows that the flow field generated shows the expected turbulence characteristics. The final achievement will be to couple the turbulence generation with the FEM solver for incompressible flows.

In conclusion, this package can be widely adopted in the field of fluid dynamics for obtaining more realistic and accurate results.

Package repository: https://github.com/carlodev/SyntheticEddyMethod.jl

PhD student in computational fluid dynamics.
Areas of interest:
- Julia (of course)
- Finite Element Method for fluid-dynamics
- Variational Multiscale Method for incompressible fluids
- HPC for solving large systems

This speaker also appears in: