▼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 |
Cell advection term | Implicit advection schemes of a scalar equation defined on cells |
Boundary condition treatment | Boundary condition treatment of a scalar equation defined on cells |
Cell diffusion term | Implicit diffusion schemes of a scalar equation defined on cells |
Cell linear system preparation | Cell linear system preparation of 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 |
Closest Point | The Closest Point (CP) toolbox |
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 | Add to matrix the viscous stress term of Navier equation |
Time discretization | Routines relative to time discretization of PDEs |
Advection | |
Geometry | |
Reinitialization | |
▼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 | Ray-tracing tools |
►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 | Transformations using homogeneous coordinates |
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 |
▼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 | Store fields to reduce computations in next runs |
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 | Linked list of fields used for writing data 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 |
Lexer | Lexer |
Parser | Parser |
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.) |
Validation | Tools to validate Notus and compute grid convergence thanks to notus_grid_convergence.py script |
▼Verification and Validation 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 test cases | Validation test cases descriptions and results |
►Free convection test cases | Validation of free convection test cases |
Rayleigh-Bénard natural convection in a square/cubic cavity | Rayleigh-Bénard natural convection in a square/cubic cavity |
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 flow test cases | 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 |
Wake flow past immersed boundaries. | Test immersed boundary on wake flows |
Lid-driven cavity flow | Validation of the lid-driven cavity test case at \( Re=1000 \) |
►Mixed convection test cases | Validation of mixed convection test cases |
3D Poiseuille Rayleigh Benard flow | Validation of the 3D Poiseuille Rayleigh Benard flow |
►Multiphase validation test cases | Validation of multiphase test cases |
►Bubble rise test cases | Validation of buble rise test cases with VOF-PLIC, MOF and Level-Set methods |
Level-set bubble rise | Rise of a bubble with variable density using level-set method |
MOF bubble rise | Rise of a bubble with variable density using MOF method |
VOF-PLIC bubble rise | Rise of a bubble with variable density using VOF-PLIC method |
Dam break validation test cases | Validation of dam break test cases |
Solitary Wave | Two test cases simulate the propagation of a solitary wave |
Jet buckling simulation | Validation of the jet buckling case |
Rayleigh Taylor instability | Validation of the Rayleigh Taylor instability |
►Turbulence validation test cases | Validation of turbulent flows |
►LES modeling | Validation of LES modeling of turbulent flows |
Plane turbulent channel flow | Validation of the plane turbulent channel flow |
►RANS modeling | Validation of RANS modeling of turbulent flows |
Backward facing step flow with RANS modeling | Validation of the backward facing step flow with RANS modeling approach |
Plane turbulent channel flow with RANS modeling | Validation of the plane turbulent channel flow with RANS modeling approach |
►Verification test cases | Verification test cases descriptions and results |
Advection schemes | These test cases solve the 2D advection equation |
►Laplacian verification test cases | 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) |
Thermal contact resistance | This test case suite focuses on the immersed boundary applied to the Laplace equation |
►Navier-Stokes verification test cases | Verification of the solution of the Navier-Stokes equations |
3D channel flow | 3D channel flow simulation (periodic) |
Couette flow with immersed boundaries. | Test immersed boundary in circular flows |
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 test cases | Verification of the solution of the phase advection equation |
MOF: filaments and periodic boundary conditions | |
MOF: axisymmetric and periodic boundary conditions | |
MOF: reriodic 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) |
►Surface tension verification test cases | Verification of the solution of surface tension problems |
Surface tension of a ball/column at equilibrium | Surface tension of a ball/column at equilibrium test case |
▼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 |