SegregatedVMSSolver.jl

SegregatedVMSSolver.jl: Linearized and Segregated Stabilized Solver for Large Eddy Simulation in Julia - Published in JOSS (2025)

https://github.com/carlodev/segregatedvmssolver.jl

Science Score: 93.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 3 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: joss.theoj.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software
Last synced: 9 months ago · JSON representation

Repository

Basic Info
  • Host: GitHub
  • Owner: carlodev
  • License: mit
  • Language: Julia
  • Default Branch: master
  • Size: 96.8 MB
Statistics
  • Stars: 5
  • Watchers: 2
  • Forks: 1
  • Open Issues: 3
  • Releases: 4
Created over 2 years ago · Last pushed 11 months ago
Metadata Files
Readme License

README.md

SegregatedVMSSolver

Documentation

Build Status codecov

Citation

DOI

SegregatedVMSSolver.jl for solving incompressible Navier-Stokes using stabilized Finite Element Method, in specific Streamline-Upwind Petrov-Galerkin (SUPG) and Variational MultiScale method (VMS)

Julia flow

Introduction

The package solves the incompressible Navier-Stokes equations in the Finite Element Framework using SUPG and VMS method. VMS has been originally introduced by Hughes2000. In specific, a linearized and segregated version of the SUPG (following the steps illustrated by Janssens2014) and VMS is solved.

The methods belong to the Large Eddy Simulation (LES) family. The package can solve the Taylor Green Vortices, Lid Driven Cavity Flow (only 2D), Cylinder vortex shedding and and general Airfoils (2D and 3D).

It works fully in parallel. It is specialized for the resolution of flow over airfoils, testing the capability of detecting the Laminar Separation Bubble. It is equipped with some utility modules for reading the output files and creating proper initial conditions.

Installation

The package is registered, so you can install it as: julia using Pkg Pkg.add(SegregatedVMSSolver)

or from the REPL just press ].

example (@1.8) pkg> add SegregatedVMSSolver

You can use the most recent release installing it as: julia using Pkg Pkg.add(url="https://github.com/carlodev/SegregatedVMSSolver.jl")

Suggested software to install

For a complete and smooth experience is suggested to install the free software ParaView which allows to graphically visualize the results and open .vtu and .pvtu files. For creating mesh and physical boundary conditions is suggested to install the free software gmsh.

Features

  • Implementation of SUPG and VMS formulation for same-order elements for velocity and pressure
  • Solve 3D airfoils geometries, time-dependend, fully parallelized code
  • Using custom Meshes created with gmsh. For airfoils the package AirfoilGmsh.jl has been developed for speeding up the process
  • Solve 2D and 3D cases
  • Possibility of choosing the backend thanks to PartitionedArrays.jl. It can be run in the REPL for debugging or in MPI

Examples

| Taylor-Green Vortices | Lid Driven Cavity Flow | |:-------------:|:-------------:|

| Cylinder Vortex Shedding | Airfoil | |:-------------:|:-------------:|

Parallelization

For parallelization is used MPI, and to solve the sparse and distribute numerical systems we use PETSc. The benchmark case is the 2D taylor Green, the time reported here are intended for each time-step. The order of the elements for this simulation is always 2, and the CFL constant at 0.32.

Strong Parallelization

Strong scalability evaluates how efficiently a parallel code reduces execution time when the problem size remains fixed, but the number of processing units increases. There is a total of 400 elements on each side, leading to 160000 elements and 1920000 dofs in total. MPI-strong

Weak Parallelization

Weak scalability measures how well a parallel code maintains performance when the problem size is kept constant per processor, and the number of processors increases. On each processor there are 50x50 elements, the number of dofs is kept constant at 30K dfos/procs. MPI-weak

Packages

It relies on the Gridap ecosystem. It is also completely written in Julia and allows parallelization. The MPI and PartititionedArrays are also at the basis of the parallelization.

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

JOSS Publication

SegregatedVMSSolver.jl: Linearized and Segregated Stabilized Solver for Large Eddy Simulation in Julia
Published
June 13, 2025
Volume 10, Issue 110, Page 7564
Authors
Carlo Brunelli ORCID
Mechanical Engineering Department, Royal Military Academy, Belgium
Editor
Kevin M. Moerman ORCID
Tags
Turbulence Large Eddy Simulation Variational MultiScale Method VMS Streamline-Upwind/Petrov-Galerkin SUPG

GitHub Events

Total
  • Create event: 7
  • Release event: 3
  • Issues event: 7
  • Watch event: 6
  • Delete event: 12
  • Issue comment event: 14
  • Push event: 135
  • Pull request event: 22
  • Fork event: 1
Last Year
  • Create event: 7
  • Release event: 3
  • Issues event: 7
  • Watch event: 6
  • Delete event: 12
  • Issue comment event: 14
  • Push event: 136
  • Pull request event: 22
  • Fork event: 1

Issues and Pull Requests

Last synced: 9 months ago

All Time
  • Total issues: 3
  • Total pull requests: 20
  • Average time to close issues: about 2 months
  • Average time to close pull requests: 5 months
  • Total issue authors: 2
  • Total pull request authors: 5
  • Average comments per issue: 1.67
  • Average comments per pull request: 0.1
  • Merged pull requests: 4
  • Bot issues: 0
  • Bot pull requests: 12
Past Year
  • Issues: 3
  • Pull requests: 11
  • Average time to close issues: about 2 months
  • Average time to close pull requests: about 2 months
  • Issue authors: 2
  • Pull request authors: 5
  • Average comments per issue: 1.67
  • Average comments per pull request: 0.18
  • Merged pull requests: 4
  • Bot issues: 0
  • Bot pull requests: 3
Top Authors
Issue Authors
  • marinlauber (2)
  • nathanquinlan (1)
Pull Request Authors
  • github-actions[bot] (12)
  • carlodev (10)
  • marinlauber (1)
  • kyleniemeyer (1)
  • barche (1)
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads: unknown
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 2
juliahub.com: SegregatedVMSSolver
  • Versions: 2
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 10.1%
Average: 25.3%
Dependent packages count: 40.5%
Last synced: 9 months ago

Dependencies

.github/workflows/CI.yml actions
  • actions/checkout v3 composite
  • codecov/codecov-action v3 composite
  • julia-actions/cache v1 composite
  • julia-actions/julia-buildpkg v1 composite
  • julia-actions/julia-processcoverage v1 composite
  • julia-actions/julia-runtest v1 composite
  • julia-actions/setup-julia v1 composite
.github/workflows/CompatHelper.yml actions
.github/workflows/TagBot.yml actions
  • JuliaRegistries/TagBot v1 composite
.github/workflows/documentation.yml actions
  • actions/checkout v2 composite
  • julia-actions/setup-julia v1 composite