| ▼Core engine | Convinience core tools used throughout the code (date type, MPI and openMP routines, etc.) |
| ►Data structures | Definition of different data structures of the code |
| Boundary condition enums and types | Enums and derived types are defined here to treat domain boundary conditions |
| Containers | .. |
| Edge data type | Edge data type definitions |
| Face data type | Face data type definitions |
| Stencil type | Discretization stencil type definitions |
| ►Miscellaneous | Miscellaneous core tools |
| ►Mathematical functions | Useful mathematical functions |
| Polynomial real roots | Tools to compute the real roots of quadratic, cubic, and quartic polynomials |
| Polynomial roots | Tools to compute the complex roots of quadratic, cubic, and quartic polynomials |
| Random number generation module | Convinience random number tools |
| Convert into string | Tools to convert various data type into string |
| ►MPI | MPI routines |
| MPI broadcast of bc | Broadcast cell/face boundary conditions |
| MPI exchange | Communications to update overlapping field regions |
| Global reduction | Global reduction tools over subdomains (min, max, sum, etc.) that encapsulate MPI calls |
| MPI send/receive | 'mpi_send_receive' of an array from a processor to another processor |
| OpenMP | OpenMP routines |
| ►Pre-processing tools | Tools to initialize fields |
| ►Initializers | Define a structure to initialize fields |
| Scalar initializers | |
| Vector initializers | |
| Shape initializers | |
| User imported variables | Define and access to user imported variables |
| ►System | System related routines |
| ►CPU time tools | Tools to measure CPU time in different parts of Notus This directory contains: |
| Timer | Timer to measure elapsed time |
| Memory manager | Routines to initialize and unallocate arrays and types |
| ▼Discretization of PDE | Discretization methods to solve partial differential equations (PDE) |
| ►Explicit discretization | Routines for discretizing explicit terms |
| ►Cell scalar | Explicit discretization of a scalar equation defined on cells |
| Cell scalar advection | Explicit discretization of the advection equation for a scalar equation defined on cells |
| Boundary conditions mechanisms for cell scalars | Boundary conditions mechanisms for cell scalars |
| Cell scalar diffusion | Explicit discretization of the diffusion equation for a scalar equation defined on cells |
| ►Face vector | Explicit discretization of a vectorial equation defined on faces |
| Boundary conditions mechanisms for face vectors | Boundary conditions mechanisms for face vectors |
| Finite Volume fluxes | Finite Volume fluxes definition |
| ►Field level operators | High-level functions for interpolating/extrapolating/differenciating whole fields |
| Differential operators | Explicit differential operators that can be used on whole fields |
| Field extrapolation | Functions for extrapolating whole fields |
| Field interpolation | Functions for interpolating whole fields |
| ►Immersed Boundaries | Implement boundaries of arbitrary shapes in PDEs |
| Immersed Boundary Condition | Initialize and prepare resolution of immersed boundary conditions |
| ►Implicit discretization | Routines that fill the matrix and the right-hand side of linear systems associated to the discretization of PDE |
| Numbering and Ordering Cartesian neighbors | Base function to number Cartesian neighbors |
| ►Cell scalar | Implicit discretization of a scalar equation defined on cells |
| Implicit cell advection term | Implicit advection schemes of a scalar equation defined on cells |
| Implicit boundary condition treatment | Implicit boundary condition treatment of a scalar equation defined on cells |
| Implicit cell diffusion term | Implicit diffusion schemes of a scalar equation defined on cells |
| Cell linear system | Linear system routines (construction, modification, finalization) for a scalar equation defined on cells |
| ►Face vector | Implicit discretization of schemes and linear system creation of a vectorial equation defined on faces |
| Boundary condition treatment | Boundary condition treatment of a vectorial equation defined on faces |
| Divergence of a symmetric tensor | Implicit schemes for the divergence of a symmetric tensor of a vectorial equation defined on faces |
| Gradient of a divergence discretization | Implicit schemes for the gradient of a divergence operator of a vectorial equation defined on faces |
| Face linear system preparation | Face linear system preparation of a vectorial equation defined on faces |
| Face nonlinear advection term discretization | Implicit schemes for the non linear advection term of a vectorial equation defined on faces |
| Lagrangian particles | Lagrangian particles transported by the flow |
| ►Multiphase methods | Interface advection equation resolution methods (Volume of Fluid, Moment of Fluid, Level Set, etc.) |
| Additional fields | Compute additional fields (normal, surface tension, smooth volume fraction, etc.) |
| Front Tracking | |
| ►Level Set | Level Set methods |
| Advection | Advection methods for level sets |
| Closest Point | The Closest Point (CP) toolbox |
| ►Geometry | Geometrical methods for level sets |
| Band | LSM band related functions |
| Curvature | Curvature computation |
| ►Volume Fraction | Volume fraction methods for level sets |
| Heaviside Volume Fraction | Regularization tools |
| Min&Gibou Volume Fraction | Volume fraction computation with sharp 'Min&Gibou' approach |
| Towers Volume Fraction | Volume fraction computations with the Towers' Heaviside approach |
| Various tools (Heaviside, Dirac, etc.) | Heaviside, Dirac, etc. computation |
| LSM/Notus interface | Interface between the LSM module and Notus. This is where we deal with the translation from a phase to a level set representation. It is mainly used to impose Notus' boundary conditions on VF for LS. |
| Reinitialization | Reinitialization methods |
| Moment of Fluid (MOF) | Implementation of the Moment-of-Fluid (MOF) method |
| ►Volume of Fluid (VOF) | Volume of Fluid methods |
| VOF-PLIC | Volume-of-Fluid method using Piecewise Linear Interface Construction of the interface and lagrangien advection |
| ►Node level schemes | Node level (cell, face, edge, vertex, point) discrete schemes |
| Discrete Derivatives | The Discrete Derivatives module |
| ►Extrapolation | Extrapolation schemes |
| Extrapolation: grid based routines | Module containing grid based routines/functions for extrapolation |
| Extrapolation schemes | Scheme submodules |
| ►Finite Differences | Finite differences schemes |
| Schemes | Scheme submodules |
| ►Integration | Integration schemes |
| Integration schemes | Integration schemes |
| ►Interpolation | Interpolation schemes for grid elements and points |
| ►Interpolation at grid elements | Interpolation schemes for grids elements (centers, faces, vertices) |
| Interpolation schemes | |
| ►Interpolation at points | Module for point (anywhere) interpolation |
| ►The point interpolation (generic) module | The (generic) point interpolation module |
| Point interpolation (generic) schemes | Module for including point interpolation schemes |
| Lagrange point interpolation | Field interpolation and derivation to arbitrary points |
| ►Partial Differential Equations | First level routines to discretize PDE term by term |
| Partial Differential Equations on cells | First level routines to discretize PDE term by term on cells |
| ►Partial Differential Equations on faces | First level routines to discretize PDE term by term on faces |
| Stress tensor divergence term | |
| Time discretization | Routines relative to time discretization of PDEs |
| ▼Geometry | Geometry description and manipulation (grid and 2D/3D objects) |
| ►Computational geometry | Routines relative to the computational geometry |
| ►Computational Geometry in 2D | Computational geometry routines in 2D (detection, intersection, etc.) |
| ►Computational Geometry in axisymmetric | Computational geometry routines in axisymmetric |
| Polygon flooding | Computational geometry tool to fill a convex polygon with a given volume in a given direction |
| Polygon | This module contains the definition of a polygon and some related subroutines |
| Polygon flooding | Computational geometry tool to fill a convex polygon with a given volume fraction in a given direction |
| Line/polygon intersection | Computational geometry tools relative to lines and polygon intersection |
| Line/line segment intersection | Computational geometry tools relative to lines and line segments intersection |
| Point properties | Computational geometry tools relative to points |
| Polygon | This module contains the definition of a polygon and some related subroutines |
| Polygon list | This module contains the definition of a polygon list and some related subroutines |
| Polygon/polygon intersection | Computational geometry tools relative to polygon intersection |
| ►Computational Geometry in 3D | Computational geometry routines in 3D (detection, intersection, etc.) |
| Polyhedron clipping | Clip a polyhedron with a half-space or a convex polyhedron |
| Complete polyhedron structure | Complete the polyhedron structure |
| Polyhedron flooding | Computational geometry tool to fill a convex polyhedron with a given volume fraction in a given direction |
| Line/polyhedron intersection | Computational geometry tools relative to lines and polyhedron intersection |
| OBJ Wavefront reader | OBJ Wavefront reader |
| Sparse octree | Sparse octree |
| Point/polyhedron relations | Geometric tools relative to points and polyhedron |
| Points formula in 3D | Geometric tools relative to points |
| Polyhedron | Geometric tools relative to polyhedron |
| Ray-tracing | |
| ►Shapes | Abstract definition of a shape |
| Basic shapes | Basic shapes: circle and rectangle |
| CSG (Constructive Solid Geometry) shapes | CSG operations: union, intersection and difference |
| Polygon shape | Polygonal shape (2D only) |
| Surface mesh shape | Shape defined by a surface mesh (3D only) |
| Abstract type shape | Abstract definition of a shape |
| Transformations | |
| Domain | Domain and subdomains variables |
| ►Grid | Grid coordinates, spatial step, and various grid indices |
| Grid generation | Compute grid coordinates and spatial steps |
| Grid indices | Compute various grid indices |
| Grid tools | To be described |
| Partitioning | Domain partitioning and associated variables |
| ►Immersed Sudomain and Boundary Metrics | Algorithms to create immersed subdomain and boundary metrics |
| Immersed subdomain metrics | Immersed subdomain metrics derived types |
| ▼I/O | Input / Output |
| Checkpoint / Restart | Perform checkpoint and restart of Notus |
| Debug I/O | I/O routines for debugging purpose |
| ►Grids and fields I/O | Procedures to read and write grids and fields |
| ADIOS2 interface | Interface routine to the massivelly parallel I/O ADIOS2 library |
| ►ADIOS interface | Interface routines to the massivelly parallel I/O ADIOS library |
| ADIOS Schema writer | Provide a class to write .bp files using ADIOS Visualization Schema |
| Disk cache | |
| EnSight Gold writer | Provide a class to write EnSight Gold files |
| HDF5 interface | Interface routine to the write Hdf5 files compatible with Pixie and Xdmf formats |
| MOF mesh generator | Generate a mesh from MOF structure to visualize the MOF reconstruction |
| Read global cell file | Read a field in a file that contains the global cell field |
| Linked list of fields | |
| XDMF interface | Interface routine to the write XDMF outputs composed of and HDF5 data file and an XML data description file |
| ►JSON | Routines to manipulate JSON files |
| JSON writer | JSON writer |
| ►Lexer / Parser | Multi-purpose lexer/parser |
| Source file | Source file manager |
| Probes | Define probes to plot fields on points or lines along time |
| ►System | System related I/O |
| File and directory management | Tools to manage files and directories in a compiler-independent way |
| Logging | Logging |
| ▼Modeling | Routines relative to the modeling of a physical problem to solve |
| Energy equation | It prepares and solves the Energy equation |
| Generic transport equations | It discretizes and solves the generic transport (advection/diffusion) equation |
| Compute properties of materials | Compute local properties of materials (density, viscosity, etc.) from geometry, equation of state and reference properties of materials |
| Navier-Stokes equations | Prepare and solve the Navier-Stokes equations |
| Phase advection equation | Routines relative to the phase advection equations (multiphase flows) |
| Poisson equation | It discretizes and solves the Poisson equation |
| Species transport equations | It prepares and solves the species transport (or advection/diffusion) equations |
| ►Turbulence models | Turbulence models and methods |
| Large Eddy Simulation (LES) models | Large Eddy Simulation models |
| RANS models | Turbulence models and methods |
| Synthetic Eddy Methods | Synthetic Eddy Methods |
| ▼Post processing | Computation of derived quantities, error estimates, etc |
| Error tools | Routines to compute errors ( \(L^p\) norms) |
| Grid Convergence | Define and manage grid convergence analysis |
| Integration tools | Integration tools over the grid |
| Diagnostic quantities | Post-treatment routines to compute physical quantities (Nusselt number, Q criterion, kinetic energy, etc.) |
| Reference solutions | Definition of the reference solutions |
| Statistics | Post-treatment routines to compute statistical quantities of turbulent fields (Mean time fields, fluctuations, etc.) |
| ►Test cases | Verification and validation documentation and process |
| V&V test cases processing | Procedures that will orient the program towards the right test case |
| Validation | Tools to validate Notus and compute grid convergence thanks to notus_grid_convergence.py script |
| ▼Linear system solvers | Linear system solvers and interface to third-party solvers |
| ►HYPRE linear system interface | Massively parallel HYPRE library interface routines |
| HYPRE bindings | HYPRE bindings |
| LIS linear system interface | Parallel LIS library interface routines |
| MUMPS linear solver library | Interface for the MUMPS linear solver library |
| ▼User routines | Routines to adapt Notus to users specificities |
| User fields | Define custom fields |
| User variables | Define custom variables |
| ▼Notus | Notus main program and User Interface |
| Read Command Line | Routines that read Notus command line |
| ►User interface | User interface |
| Notus language specification | Lexer/parser of Notus files |
| Parsing tree | Contains the parsing tree. Follows the structure of a .nts file |
| ▼Verification test cases | Verification test cases descriptions and results |
| ►Cell advection-diffusion schemes | Verification of cell advection and diffusion schemes |
| ►1D cell advection-diffusion schemes | Verification of 1D cell advection diffusion schemes |
| ►1D cell pure advection schemes | Verification of 1D cell pure advection schemes |
| Spatial convergence | |
| Temporal convergence | |
| Explicit schemes comparison | |
| Implicit schemes comparison | |
| ►1D cell pure diffusion schemes | Verification of 1D cell pure diffusion schemes |
| Explicit and implicit schemes comparison | |
| Spatial convergence | |
| Temporal convergence | |
| ►Compressible flows | Verification of the solution of compressible flows |
| Isentropic injection in a square cavity | Isentropic injection in a square cavity |
| Linear acoustic pulse propagation | Linear acoustic pulse propagation |
| Manufactured compressible solutions | Manufactured compressible solutions |
| ►Laplacian | Verification of the solution of the Laplacian |
| Laplace equation with Dirichlet boundary conditions in the 2D axisymmetric coordinate system | Laplacian test cases with Dirichlet boundary conditions in the 2D axisymmetric coordinate system |
| Laplace equation with Dirichlet boundary conditions | Laplacian test cases with Dirichlet boundary conditions (2D/3D) |
| Laplace equation with immersed boundaries | This test case suite focuses on the immersed boundary applied to the Laplace equation |
| Laplace equation with Neumann boundary conditions | Laplacian test cases with Neumann boundary conditions (2D/3D) |
| ►Navier-Stokes (incompressible flows) | Verification of the solution of the Navier-Stokes equations |
| 3D channel flow | 3D channel flow simulation (periodic) |
| Poiseuille flow with immersed boundary conditions | This test case solves the Poiseuille flow with immersed boundary conditions |
| Poiseuille flow | Poiseuille flow test cases (2D/3D, periodic or not) |
| Poiseuille flow in axisymmetric coordinate | Poiseuille flow in axisymmetric coordinate test cases (2D, periodic or not) |
| Poiseuille flow with variable viscosity | Poiseuille flow with variable viscosity test cases (2D/3D) |
| ►Phase advection | Verification of the solution of the phase advection equation |
| MOF: filaments and periodic boundary conditions | |
| MOF: axisymmetric and periodic boundary conditions | |
| MOF: periodic boundary conditions | |
| MOF: reversible vortex | |
| MOF: reversible vortices axisymmetric | |
| MOF: sheared 5 materials | |
| MOF: temporal convergence | |
| MOF: Zalesak's slotted disk | |
| VOF-PLIC: sheared bubble | VOF-PLIC test case of sheared bubble (2D) |
| VOF-PLIC: single vortex 2D | VOF-PLIC test case of single vortex (2D) |
| VOF-PLIC: single vortex 3D | VOF-PLIC test case of single vortex (3D) |
| ▼Validation test cases | Validation test cases descriptions and results |
| ►Compressible flows | Validation of the solution of compressible flows |
| Compressible steady natural convection benchmarks | Compressible steady natural convection benchmarks |
| Immersed boundary compressible steady natural convection | Immersed boundary compressible steady natural convection |
| Compressible unsteady natural convection benchmarks | Compressible unsteady natural convection benchmark |
| Supercritical thermoacoustic wave propagation in CO2 | Thermoacoustic wave propagation in supercritical CO2 |
| Thermoacoustic wave propagation in a perfect gas | Thermoacoustic wave propagation in a perfect gas |
| ►Free convection | Validation of free convection test cases |
| Natural convection in a square cavity | Natural convection in a square cavity at \( Ra=10^6 \) and \( Pr=0.71 \) |
| Thermosolutal natural convection in a square/cubic cavity | Thermosolutal natural convection in a square/cubic cavity |
| ►Laminar isothermal flows | Validation of laminar flow test cases |
| Backward facing step flow | Validation of the lid-driven cavity test case |
| 2D Backward facing step flow test cases in axisymmetric | Test Backward facing step flow |
| Lid-driven cavity flow | Validation of the lid-driven cavity test case at \( Re=1000 \) |
| ►Mixed convection | Validation of mixed convection test cases |
| 3D Poiseuille Rayleigh Benard flow | Validation of the 3D Poiseuille Rayleigh Benard flow |
| ►Multiphase flows | Validation of multiphase test cases |
| ►Bubble rise | Validation of buble rise test cases with VOF-PLIC, MOF and Level-Set methods |
| VOF-PLIC bubble rise | Rise of a bubble with variable density using VOF-PLIC method |
| Solitary Wave | Two test cases simulate the propagation of a solitary wave |
| ►RANS modeling | Validation of RANS modeling of turbulent flows |
| Turbulent heated flat plate flow with k-omega RANS model | Validation of the 2D turbulent heated flat plate flow with RANS standard and SST version of k-omega model |
| Turbulent flat plate flow with k-omega RANS model | Validation of the 2D turbulent flat plate flow with RANS standard and SST version of k-omega model |