SegregatedVMSSolver.jl

Author carlodev
Popularity
2 Stars
Updated Last
4 Months Ago
Started In
November 2023

SegregatedVMSSolver

Documentation

Build Status codecov

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 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 (only 2D), Lid Driven Cavity Flow (only 2D), Cylinder vortex shedding (only 2D), and general Airfoils (2D and 3D).

It works fully in parallel (tested up to 80-CORES). 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:

using Pkg
Pkg.add(SegregatedVMSSolver)

or from the REPL just press ].

(@1.8) pkg> add SegregatedVMSSolver

You can use the most recent release installing it as:

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

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.