Features

Models

  • Incompressible Navier-Stokes
    • buoyancy term (Boussinesq approximation)
    • surface tension (Continuum Surface Force model)
  • Compressible Navier-Stokes (subsonic flows)
  • Multiphase immiscible flows
  • Energy equation
  • Species transport
    • passive scalars
    • thermosolutal flows
  • Turbulence
    • Large Eddy Simulation (mixed scale, WALE models)
    • RANS models
  • Equation of state
    • perfect gas
    • Peng-Robinson
    • Polynomial laws
    • Sutherland
    • NIS refprop interface

Numerical methods

  • Discretization
    • 2D/3D Cartesian staggered grids
    • 2nd-order time discretisation (SBDF2)
    • Implicit discretisation of advection and diffusion terms : 1st and 2nd order schemes
    • Explicit discretization of advection terms : WENO & HOUC scheme (3/5th-order) and high-order RK temporal schemes, Lax-Wendroff TVD superbee
  • Navier-Stokes
    • Velocity/pressure coupling: time splitting methods (Goda, Timmermans)
  • Interface representation and transport
    • Volume-of-Fluid method (PLIC)
    • Moment-of-Fluid method
    • Level-set
  • Interface treatment
    • Closest-Point or height function methods to compute curvature
    • Volume penalization or 2nd-order immersed boundary methods

Parallelism

  • Automatic grid partitioning (repartitioning process to exclude « solid » or useless partitions from the domain)
  • Adjustable ghost cell numbers
  • Ready to use data exchange
  • Solvers
    • HYPRE iterative solvers (BiCGStab, GMRES) and preconditioners (geometric multigrid, algebraic multigrid, PILUT, Euclid, Parasails)
    • MUMPS direct solver
    • LIS iterative solvers (BiCGStab, GMRES, etc.) and preconditioners (ILUT, ILUK, ILUC, etc.)
    • BiCGStab iterative solver
  • I/O
    • ADIOS, ADIOS2, HDF5 (pixie) file formats
    • Probe points and lines exported to .txt files are also proposed.

Verification and validation

Notus is thoroughly verified and validated. A python script runs test cases in sequential or parallel, giving results that match the references up to the computer precision. Symetrical properties are also checked in 2D and 3D. Dozens of non-regression test cases run before each release. The current list of verification test cases:

  • Laplacian with Dirichlet, Neumann, periodic boundary conditions or immersed boundaries (2D/3D)
  • Poiseuille flow between two planes with or without periodic boundary conditions (2D/3D)
  • Poiseuille flow with variable density (2D/3D)
  • 3D flow in a rectangular channel (3D)
  • Pure advection of a fluid in a rotating flow (2D/3D)
  • Static viscous column equilibrium (2D)
  • Advected viscous column equilibrium (2D)

The current list of validation test cases:

  • Driven cavity flow
  • Free convection in a square cavity (2D/3D)
  • Thermosolutal flow in a rectangular cavity (2D/3D)
  • Zero gravity drop oscillation (2D)
  • 2D bubble rise (2D)
  • Solitary wave propagation (in a periodic domain and against an end-wall)
  • Dam-break flow

Another python script is provided to run Notus successively on refined meshes and automatically compute spatial and temporal convergence convergence order on test cases (with exact solution or thanks to Richardson extrapolations).

Finally a bash script helps to validate the performances of the code on supercomputers (weak and strong scalability).

User Interface

The user interface is based on text files which contain the description of the domain and the grid, the modelisation of the problem to solve, the associated numerical methods and the post-processing tools. They are based on clear keywords and obey a precise grammar.

Development framework

  • Fortran 2008
  • MPI-2 and OpenMP parallel coding library
  • Git distributed version control system
  • CMake cross-platform build system
  • Doxygen documentation generator from source code

Porting

Notus has been successfully built with the following Linux configurations:

  • GNU compilers (>11) and Open MPI
  • Intel compilers (>20.0) and Intel MPI

It runs on the following supercomputers and provide the same results up to computer precision (build scripts are provided to install the code):

  • Joliot-Curie at TGCC
  • Curta at MCIA