User guide

User guide#

A simulation is built in three symbolic layers and run by a solver template on a backend:

Model ──────────▶ SystemModel ─────────▶ NumericalSystemModel ──▶ solver template ──▶ backend
PDE, closures,     operator slots          + reconstruction,        one sympy graph      JAX · foam · AMReX
BCs                (flux, source, ...)     Riemann solver, kernels  per time step        (printed, compiled)

page

what you choose there

Quick start

one case, run on JAX, foam and AMReX

Model

model family, closures, boundary conditions

SystemModel

nothing, usually: it is derived; inspect it, set initial conditions

NumericalSystemModel

reconstruction order and limiter, Riemann solver

Solvers and options

hyperbolic or Chorin, CFL / dt, time order, MOOD, IMEX, pressure solver

Backends

where it runs: CPU, MPI, GPU

The NSM is backend-neutral: the same object is handed to every backend, and the test matrix checks that the backends agree.