SyntheticEddyMethod.jl
SyntheticEddyMethod.jl: A Julia package for the creation of inlet flow conditions for LES - Published in JOSS (2023)
Science Score: 98.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 9 DOI reference(s) in README and JOSS metadata -
✓Academic publication links
Links to: joss.theoj.org -
○Committers with academic emails
-
○Institutional organization owner
-
✓JOSS paper metadata
Published in Journal of Open Source Software
Scientific Fields
Repository
Basic Info
- Host: GitHub
- Owner: carlodev
- License: mit
- Language: Julia
- Default Branch: master
- Size: 4.41 MB
Statistics
- Stars: 4
- Watchers: 2
- Forks: 1
- Open Issues: 10
- Releases: 5
Metadata Files
README.md
Synthetic Eddy Method

Documentation
Citation
Introduction
The Synthetic Eddy Method (SEM) is a numerical simulation technique used to model turbulent fluid flow in engineering and scientific applications. It involves synthesizing small-scale turbulent structures, or eddies, within a computational domain to represent the effects of larger-scale turbulent flows. This is accomplished by applying perturbations to the flow field, which induce a cascade of energy from larger to smaller eddies until the energy is dissipated through viscous effects. The result is a simulation that captures the important features of turbulent flows while remaining computationally efficient. SEM has been successfully applied to a range of problems, including airfoil and wing design, turbulent combustion, and oceanography. Its ability to accurately capture the physics of turbulent flows makes it a valuable tool for researchers and engineers seeking to improve the efficiency and performance of fluid systems.
The method has been originally developed by Jarrin (10.1016/j.ijheatfluidflow.2006.02.006).
The Divergence-Free Synthetic Eddy Method (DFSEM) is an evolution of the Synthetic Eddy Method (SEM) used for simulating turbulent flows in fluid dynamics. While the SEM uses stochastic generation of eddies to represent the small scales of turbulence, the DFSEM adds the constraint of ensuring that the synthetic eddies produce a divergence-free flow field. In incompressible flows, as the case of turbulent flows, this constraint ensures that the overall flow remains physically consistent and leads to better accuracy and stability in the simulations.
The method has been originally developed by Poletto at al. (10.1007/s10494-013-9488-2).
Installation
The package is registered, so you can install it as:
julia
using Pkg
Pkg.add(SyntheticEddyMethod)
You can use the most recent release installing it as:
julia
using Pkg
Pkg.add(url="https://github.com/carlodev/SyntheticEddyMethod.jl")
How to use
At first, the user defines the dimension and resolution of the virtual box where the eddies are going to be generated as well as the dimension of the eddies (σ). A common choice is σ = 2Δz or σ = Δz, where Δz is the mesh resolution in the z direction.
```julia using SyntheticEddyMethod
σ = 0.1 b = 5.0 a = 0.0
x = -σ:0.1:+σ y = collect(a:0.1:b) z = collect(a:0.1:b)
```
Then you create the VirtualBox structure that has embedded all the information about the virtual box where the eddy are generated.
The number of eddy is automatically computed in order to guarantee an homogeneous fill. You can manually override the value (Vboxinfo.N).
julia
Vboxinfo = VirtualBox(y,z,σ)
N = Vboxinfo.N #you can override it
Then, eddies are initialized in the virtualbox with random values of position and intensity. You have to specify the time-step, dt. Then the Reynolds stress tensor. Here homegeneous and isotropic turbulence is considered and the terms are internally computed from the turbulence intensity (TI).
```julia t = 0 dt = 0.001
U₀ = 1.0 TI = 0.01 #turbulence intensity
Restress, Eddies = initializeeddies(U₀, TI, Vboxinfo) ```
You have to create a Vector{Vector{Float64}} of points where you want to evaluate the speed. In this case you are evaluating the speed in each point of the domain.
julia
vector_points = create_vector_points(x, y, z)
You can create evaluate the speed in just one point (useful for monitoring how the velocity varies in time and creating the spectra)
julia
eval_point = [0.0, 1.0, 2.5]
Compute the velocity fluctuation. For computing the velocity fluctuations, there is a 'correction' using the matrix A which is internally created using the cholesky_decomposition function.
julia
u_fluct = compute_fluct(vector_points, dt, Eddies, U₀, Vboxinfo, Re_stress)
u_fluct = compute_fluct(eval_point, dt, Eddies, U₀, Vboxinfo, Re_stress)
Examples
This is an example of the spectra created using SyntheticEddyMethod with a tent function for different turbulence intensity. The spectra refers to the fluctuation in time in one specific point

It is reported the normalized divergence in a plane using the DFSEM.

Package Features
- Create velocity fluctuations for inlet boundary conditions
- Create fluctuations that respect the divergence-free condition (DFSEM)
- Create coherenteddies in a 3D domain
- It can simulate anisotropic effects by allowing the eddies to have different dimensions along different directions
- Define a custom Reynolds Stress Tensor
- Import custom Reynolds Stress Tensor
Acknowledgement
- Nomenclature: 10.1016/j.ijheatfluidflow.2006.02.006
- Shape function definition and Reynolds stress tensor sheet https://github.com/blackcata/SEM.git and the related paper 10.1016/j.ijheatmasstransfer.2019.02.061
- For detailed description of the procedure https://nheri-simcenter.github.io/WE-UQ-Documentation/common/technical_manual/desktop/WEUQ/TinF.html
- DFSEM: 10.1007/s10494-013-9488-2
Contributing
It is a collaborative project open to contributions. You can: - Open a new issue - Contact the project administator - Open a PR with the contribution
Owner
- Login: carlodev
- Kind: user
- Repositories: 6
- Profile: https://github.com/carlodev
JOSS Publication
SyntheticEddyMethod.jl: A Julia package for the creation of inlet flow conditions for LES
Tags
Turbulence Eddy Inlet Conditions LESCitation (citation.cff)
cff-version: 1.0.0
message: "If you use this software, please cite it as below."
authors:
- family-names: Brunelli
given-names: Carlo
title: "SEM"
version: 0.4.0
date-released: 2023-03-27
url: "https://github.com/carlodev/SyntheticEddyMethod/"
GitHub Events
Total
- Watch event: 2
- Issue comment event: 22
- Push event: 2
- Create event: 1
Last Year
- Watch event: 2
- Issue comment event: 22
- Push event: 2
- Create event: 1
Committers
Last synced: 5 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| carlodev | c****s@g****m | 196 |
| Philip Cardiff | p****f@g****m | 4 |
| CompatHelper Julia | c****y@j****g | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 4 months ago
All Time
- Total issues: 5
- Total pull requests: 23
- Average time to close issues: 3 months
- Average time to close pull requests: 3 days
- Total issue authors: 4
- Total pull request authors: 3
- Average comments per issue: 14.6
- Average comments per pull request: 0.39
- Merged pull requests: 12
- Bot issues: 0
- Bot pull requests: 10
Past Year
- Issues: 1
- Pull requests: 0
- Average time to close issues: 6 months
- Average time to close pull requests: N/A
- Issue authors: 1
- Pull request authors: 0
- Average comments per issue: 0.0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- carlodev (2)
- BTV25 (1)
- goerz (1)
- JuliaTagBot (1)
Pull Request Authors
- github-actions[bot] (10)
- carlodev (8)
- philipcardiff (2)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- julia 1 total
- Total dependent packages: 0
- Total dependent repositories: 0
- Total versions: 8
juliahub.com: SyntheticEddyMethod
- Documentation: https://docs.juliahub.com/General/SyntheticEddyMethod/stable/
- License: MIT
-
Latest release: 0.4.4
published 12 months ago
Rankings
Dependencies
- actions/checkout v2 composite
- julia-actions/cache v1 composite
- julia-actions/julia-buildpkg v1 composite
- julia-actions/julia-runtest v1 composite
- julia-actions/setup-julia v1 composite
- actions/checkout v2 composite
- julia-actions/setup-julia latest composite
- JuliaRegistries/TagBot v1 composite
