Skip to content

A flexible multiphysics PDE's solver, specialized in solving Evolutionary Incompressible NAvier-Stokes Equations with Brinkman contribute to handle general geometries. Current implementation allows also to solve many kind of problems, eg. Laplace, Parabolic, Inviscid Euler, Stokes, Heat, Advection

Notifications You must be signed in to change notification settings

galbiatidavide/Finite-Differences-Navier-Stokes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

69 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Finite Differences Navier-Stokes Solver

This project implements a solver based on finite differences for the Navier-Stokes equations. The solver is designed to handle multiple physics problems, with the final goal of solving Brinkman flow for a generic geometry. It allows computations on a default cubic domain as well as on an input mesh using the Brinkman penalization method.

Our multiphysics solver is capable of solving a variety of problems, including Navier-Stokes and parabolic problems. This flexibility enables a broad range of simulations in fluid dynamics.

Requirements

To compile and run the project, make sure you have the following tools and libraries installed and configured:

  • Compiler: GCC with C++20 support
  • Libraries:
    • PETSc
    • VTK
    • Eigen

Installation

  1. Load the required modules:
    Before compiling or running the program, load the necessary modules. Ensure that your environment is correctly set up by running:

    source /u/sw/etc/bash.bashrc
    module load gcc-glibc
    module load eigen
    module load vtk
    module load petsc
  2. Compile the project: After loading the modules, compile the project according to the chosen by running:

    make clean
    make FILES="navier_stokes.cpp" #for Navier-Stokes and Brinkman problem
    make FILES="stokes.cpp" #for Navier-Stokes and Brinkman problem
    make FILES="inviscid_euler.cpp" #for Navier-Stokes and Brinkman problem
    make FILES="advection_diffusion.cpp" #for Navier-Stokes and Brinkman problem
    make FILES="parabolic.cpp" #for parabolic problems
    
  3. Usage To run the solver, execute the following command:

    ./bin/main

    For the Brinkman solver, the name of the .stl file must be specified. An example mesh is provided. To run the solver on the example mesh, execute the following command:

    ./bin/main caroitd.stl

    The program will compute the solution and store the results in the results directory.

Simulation Results

Velocity Magnitude for Navier-Stokes incompressible flow at Re=1
Velocity Magnitude for Navier-Stokes incompressible flow at Re=2000
Parabolic Flow with μ=10
Brinkman Flow Simulation Re=200

These examples showcase the solver's ability to handle various flow regimes and conditions.


Developed by Davide Galbiati and Alessandra Gotti

About

A flexible multiphysics PDE's solver, specialized in solving Evolutionary Incompressible NAvier-Stokes Equations with Brinkman contribute to handle general geometries. Current implementation allows also to solve many kind of problems, eg. Laplace, Parabolic, Inviscid Euler, Stokes, Heat, Advection

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published