version 0.5.0
Project description

Context

Notus open-source CFD code is an initiative of Institut d'Ingénierie et de Mécanique de Bordeaux (I2M), started in 2015. It is dedicated to the modeling and simulation of incompressible fluid flows in a massively parallel context. Its numerical framework is the 2D/3D Finite Volume methods on staggered grids.

Purposes

The objective of the project is to provide a code:

  • for the mechanical community, that is easy to use and adapt, based on proven state-of-the-art numerical methods;
  • for the applied mathematics community to develop new numerical schemes without having to rewrite a complete code, and offering a fast, efficient, and approved framework for comparative and qualitative tests on numerical and physical cases;
  • that runs on massively parallel supercomputers (such as the one available at PRACE and various French mesocentres), while masking parallelism complexities for easy programming;
  • that offers numerical tools that can be easily used to solve novel mathematical and physical problems of your own;
  • that is thoroughly validated and documented.

Technical features list

In order to have a complete view of what Notus is capable of computing, we give here the complete list of general, modeling and numerical features of the code.

Domain features / Grids

Module Feature Remarks and limitations
Geometry / Grid Rectangular domain (2D/3D); regular, Chebyshev, exponential, file, composite grids
Immersed boundaries Static geometries from surface mesh Under development

Modeling features

Module/Equation Feature Remarks and limitations
Navier-Stokes Boundary conditions: wall, inlet, moving, Neumann, slip, periodic
Navier-Stokes Brinkman term At user convenience
Navier-Stokes Gravity term Boussinesq approximation
Navier-Stokes Surface tension term Contact line not taken into account
Energy Advection + diffusion
Species Advection + diffusion Passive scalars; solutal flows
Multiphase One fluid model Immiscible fluids
Turbulence LES model (mixed scale)
Synthetic inlet boundary conditions
RANS: \(k-\omega~SST\), \(v^2-f\)
Under validation
Physical properties Temperature dependant density other properties are constant per phase

For a detailed description of each modeling feature, the reader can switch to the Brief description of models and equations page.

Numerical features

Module/Equation Sub-topic Feature Remarks and limitations
Navier-Stokes Temporal discretization 1st or 2nd order
Navier-Stokes Time splitting method Goda or Timmermans Dodd & Frantzis approximations also available
Navier-Stokes Advection term Implicit: order 1 (upwind), order 2 (upwind and centered), hybrid upwind/centered schemes
Explicit: order 2 (upwind and centered), WENO3 & WENO5 schemes
Energy / Species Advection term Implicit: order 1 (upwind) and order 2 (upwind and centered) schemes
Explicit: order 1 (upwind) and order 5 (WENO5) schemes
Phases Advection VOF-PLIC 2D/3D
Phases Advection MOF 2D. 3D is under development
Phases Advection Level Set WENO5 scheme with Euler or RK2 temporal discretization
Phases Surface tension Level Set curvature computation
VoF-PLIC, MoF
Standard or Closest Point methods
Height function method
Solvers HYPRE Struct, SStruct interfaces
Solvers MUMPS Pord and Metis partitioners
Solvers LIS
Solvers Notus Under development

For a detailed description of each numerical feature, the reader can switch to the Discretization of PDE page.

System and validation features

Module Feature Remarks and limitations
User Interface Input file Input parameters are read from a file
Input/Output ADIOS, Ensight, ADIOS2, Pixie & Xdmf
Checkpoint / restart
Parallel output (single files are written)
Diagnostic quantities Nusselt number, Sherwood number, mean velocity, etc.
V&V Scripts The code can be verified and validated through automatical scripts
V&V Convergence scripts Numerical spatial and temporal convergence rate can automaticaly be computed
Performance Scripts to test code scalability Available on several supercomputers

Requirements

The compilation and execution of Notus CFD requires several third-party libraries. They are used for numerical calculus, output data writing, etc. The How to build Notus guide details how they can be compiled and installed on your particular platform, if needed.

We furnish a list of required tools, libraries and associated version with which Notus CFD is guaranteed to compile and function.

Third-party libraries

The following third-party libraries can be automatically downloaded and compiled from our notus_third_party Git repository.

Library Version Remarks
MXML 2.10 Mini-XML, required by ADIOS
ADIOS 1.13.1 The Adaptable Input/Output System version 1
ADIOS2 2.5.0 The Adaptable Input/Output System version 2
HDF5 1.12.0 Hierarchical Data Format version 5
HYPRE 2.18.2 Scalable Linear Solvers and Multigrid Methods
METIS 5.1.0 Graph partitioning, required by MUMPS
MUMPS 5.1.0 MUltifrontal Massively Parallel Sparse direct Solver
ScaLAPACK 2.0.2 Scalable Linear Algebra PACKage, required by MUMPS
LIS 2.0.18 Library of Iterative Solvers for Linear Systems
T3PIO 2.4.0 TACCs Terrific Tool for Parallel I/O

Compilation tools

Depending on your system, you may choose one of the following options:

GNU

Tool / Library Version Remarks
GNU compilers 7.3
Open MPI 2.1.1

Intel

Tool / Library Version Remarks
Intel compilers≥ 18
Intel MPI