Tests and timings#
Generated from saved results by docs/scripts/generate_symsolver_results.py;
nothing on this page is typed by hand.
run the tests ──▶ results saved under tests/results/symsolver/ ──▶ docs build regenerates this page
step |
command |
writes |
|---|---|---|
cross-backend matrix |
|
the matrix store ( |
save the matrix |
|
|
timings |
|
|
render |
|
|
Commit the files under tests/results/symsolver/; the docs build reads only
those. How to add a case: Extending.
Cross-backend matrix#
Every backend that prints the templates must pass the same physics checks: convergence orders, exact solutions, conservation, symmetry, parallel = serial, GPU = CPU.
931 PASS, 0 FAIL (51 information rows, 18 n/a, 1 unsupported). Last run 2026-10-13; library commits: zoomy_amrex b61ed26/b8c70c4, zoomy_core 72004d4/fec2c4e, zoomy_foam 94e8516/e295ffc, zoomy_jax 91e13c0/fe752d9; rendered from matrix_latest.json of 2026-10-13.
A cell counts the checks of a case on a backend over every config (serial, MPI, GPU). Case setups and pass criteria: matrix README; every row: table.md. -: no check of its own on that backend (JAX is the reference, or the runs are counted under C6 / C7 / C9).
case |
setup |
jax |
foam |
amrex |
|---|---|---|---|---|
C1 |
smooth: bump at rest, walls, t = 2.5 |
2 PASS |
4 PASS |
4 PASS |
C2 |
shock: bump in flow (0.3, 0.1), walls, O2 + MOOD |
1 PASS |
2 PASS |
2 PASS |
C3 |
lake at rest over a bed bump, 100 steps |
2 PASS |
2 PASS |
3 PASS |
C4 |
channel over a bump vs Bernoulli (inflow/outflow/wall BCs) |
8 PASS |
12 PASS |
12 PASS |
C5 |
radial dry dam break, O2 eta + MOOD |
5 PASS |
4 PASS |
6 PASS |
C6 |
26 PASS |
20 PASS |
24 PASS |
|
C7 |
18 PASS |
18 PASS |
18 PASS |
|
C8 |
VAM(1) Chorin channel (gate 21): linear / Newton / time_order 2 / triangles |
1 PASS |
5 PASS |
4 PASS |
C9 |
8 PASS |
- |
8 PASS |
|
C10 |
VAM(1) Chorin convergence: smooth wave over the bump |
3 PASS |
3 PASS |
3 PASS |
C11 |
1-D: smooth wave (walls), channel vs Bernoulli (inflow/outflow) |
4 PASS |
8 PASS |
8 PASS |
C12 |
triangles: C1 bump and C4 channel |
4 PASS |
8 PASS |
n/a |
C13 |
periodic in x: shifted bump in a uniform flow |
6 PASS |
7 PASS |
7 PASS |
C14 |
IMEX: SWE + Manning friction (implicit source), bump in flow, t = 0.3 |
2 PASS |
4 PASS |
4 PASS |
C15 |
AD (JAX): jvp vs central FD, reverse vs forward, dJ/dg |
24 PASS |
n/a |
n/a |
C16 |
preCICE: coupled (2 x 100 cells, window 1e-3, O1) vs single domain |
6 PASS |
4 PASS |
8 PASS |
C17 |
AMR (AMReX, gate 37): covering, static patch, reflux, lake, regrid |
n/a |
n/a |
19 PASS |
C18 |
Euler 3-D Sod along x, y, z (n x 2 x 2), HLL, t = 0.2 |
8 PASS |
8 PASS |
8 PASS |
C19 |
Euler 3-D smooth periodic wave, [0,1]^3, t = 0.1 |
6 PASS |
6 PASS |
6 PASS |
C20 |
Euler 3-D walled box 16^3, centred pulse, t = 0.6 |
4 PASS |
4 PASS |
4 PASS |
C21 |
Euler 3-D parallel: pulse 12^3 (centre 0.4), Sod along y 60 x 4 x 4 |
- |
- |
- |
C22 |
Euler 3-D AD (JAX): pulse 10^3, dJ/dgamma, t = 0.1 |
6 PASS |
n/a |
n/a |
C23 |
Euler 3-D cross-backend: acoustic pulse (amp 0.01, width 0.04), t = 0.3 |
- |
4 PASS |
4 PASS |
C24 |
Euler 2-D: Sod along x, y (n x 2); periodic wave in [0,1]^2 |
12 PASS |
12 PASS |
12 PASS |
C26 |
implicit diffusion (IMEX, Newtonian, Stress.full, nu 1e-3; gate 31), 20^2, t 0.05 |
- |
info only |
1 PASS |
C27 |
SSP-RK time order 1 / 2 / 3 (gate 40): forced SWE, exact ODE and a smooth wave |
7 PASS |
6 PASS |
6 PASS |
C28 |
diffusion blocks at the boundaries (gates 41, 43): heat equation, dir0 / neu / dirL / per |
30 PASS |
36 PASS |
24 PASS |
C29 |
LSQ derivatives with the boundary closure (gate 44): quads, p 2 / 3, dir / neu |
20 PASS |
n/a |
n/a |
C30 |
LSQ polynomial reproduction (gate 39): 1-D, quads, jittered quads, triangles, hexahedra |
1 PASS |
n/a |
n/a |
C31 |
IMEX time order (Lie vs IMEX-SSP2(2,2,2)): SWE + Manning (C14), VAM(1) wave + Manning |
7 PASS |
2 PASS |
2 PASS |
C32 |
viscous shear decay between walls (SWE + Newtonian, Stress.full): u_t = nu u_yy, exact; no-slip, free-slip and split (Wall face, Dirichlet ghost) walls |
19 PASS |
15 PASS |
15 PASS |
C33 |
vertical viscosity of SME(2) (Newtonian + NavierSlip): uniform state, q(t) = expm(t J) q0 |
8 PASS |
10 PASS |
10 PASS |
C34 |
in-plane viscous operator vs the exact div(h tau’), mixed derivatives (gate 45) |
4 PASS |
1 PASS |
1 PASS |
C35 |
restart: 0 -> T vs 0 -> T/2, restart -> T (C1 O2 adaptive; C8 increment projection) |
6 PASS |
6 PASS |
6 PASS |
C36 |
full Newtonian stress at level 1 (SME(1), Stress.full): periodic smooth state, IMEX |
- |
n/a |
n/a |
Failures:
none
Timings#
March time of representative runs (tests/symsolver/timing_cases.py), one
CPU core for serial.
Per case, backend and config: the march time per cell and step (µs, of the fastest of the repetitions), the min / median march time (s) of the repetitions, ms per step, and setup / compile time (s) of the first repetition.
case |
backend |
config |
device |
cells |
steps |
µs/cell/step |
min / median (s) |
ms/step |
setup / compile (s) |
status |
|---|---|---|---|---|---|---|---|---|---|---|
|
jax |
gpu1 |
gpu |
40000 |
50 |
0.0515 |
0.103 / 0.103 |
2.06 |
23.3 / 0.944 |
ok |
|
jax |
serial |
cpu |
40000 |
50 |
1.01 |
2.02 / 2.03 |
40.5 |
8.9 / 0.457 |
ok |
|
foam |
serial |
- |
40000 |
50 |
2.15 |
4.3 / 4.3 |
85.9 |
7.15 / 1.64 |
ok |
|
amrex |
gpu1 |
- |
40000 |
50 |
0.0189 |
0.0378 / 0.0378 |
0.756 |
6.01 / 23.5 |
ok |
|
amrex |
serial |
- |
40000 |
50 |
1.3 |
2.59 / 2.6 |
51.9 |
5.13 / 1.7 |
ok |
|
jax |
gpu1 |
gpu |
40000 |
50 |
0.0698 |
0.14 / 0.14 |
2.79 |
9.56 / 1.27 |
ok |
|
jax |
serial |
cpu |
40000 |
50 |
2.33 |
4.65 / 4.65 |
93 |
6.82 / 1.29 |
ok |
|
foam |
serial |
- |
40000 |
50 |
5.46 |
10.9 / 10.9 |
218 |
7.2 / 9.92 |
ok |
|
amrex |
gpu1 |
- |
40000 |
50 |
0.0427 |
0.0853 / 0.0853 |
1.71 |
6 / 24.8 |
ok |
|
amrex |
serial |
- |
40000 |
50 |
3.24 |
6.48 / 6.49 |
130 |
5.11 / 10.4 |
ok |
|
jax |
gpu1 |
gpu pressure=amgx |
4000 |
8 |
5.68 |
0.182 / 0.182 |
22.7 |
41.5 / 19.6 |
ok |
|
jax |
serial |
cpu pressure=pyamg |
4000 |
8 |
21.9 |
0.7 / 0.734 |
87.5 |
57.1 / 12.6 |
ok |
|
foam |
serial |
- |
4000 |
8 |
122 |
3.9 / 3.9 |
487 |
10.7 / 50.3 |
ok |
|
amrex |
gpu1 |
- |
4000 |
8 |
141 |
4.51 / 4.51 |
563 |
10.3 / 67.3 |
ok |
|
amrex |
serial |
- |
4000 |
8 |
214 |
6.83 / 6.83 |
854 |
9.67 / 51.9 |
ok |
|
jax |
gpu1 |
gpu |
10000 |
50 |
0.174 |
0.0869 / 0.0869 |
1.74 |
8.76 / 5.69 |
ok |
|
jax |
serial |
cpu |
10000 |
50 |
2.87 |
1.43 / 1.44 |
28.7 |
8.38 / 6.09 |
ok |
|
foam |
serial |
- |
10000 |
50 |
10.5 |
5.26 / 5.26 |
105 |
5.87 / 10.1 |
ok |
|
amrex |
gpu1 |
- |
10000 |
50 |
0.143 |
0.0715 / 0.0715 |
1.43 |
5.55 / 25.5 |
ok |
|
amrex |
serial |
- |
10000 |
50 |
3.99 |
1.99 / 2 |
39.9 |
4.98 / 10.8 |
ok |
|
jax |
gpu1 |
gpu |
64000 |
40 |
0.00396 |
0.0101 / 0.0102 |
0.253 |
6.17 / 0.588 |
ok |
|
jax |
serial |
cpu |
64000 |
40 |
0.355 |
0.91 / 0.91 |
22.7 |
5.71 / 0.875 |
ok |
|
foam |
serial |
- |
64000 |
40 |
1.64 |
4.2 / 4.2 |
105 |
7.14 / 8.49 |
ok |
|
amrex |
gpu1 |
- |
64000 |
40 |
0.00361 |
0.00924 / 0.00925 |
0.231 |
2.81 / 23.8 |
ok |
|
amrex |
serial |
- |
64000 |
40 |
0.383 |
0.98 / 0.983 |
24.5 |
2.21 / 8.94 |
ok |
|
jax |
gpu1 |
gpu |
64000 |
40 |
0.0397 |
0.102 / 0.102 |
2.54 |
5.39 / 6.83 |
ok |
|
jax |
serial |
cpu |
64000 |
40 |
2.4 |
6.15 / 6.16 |
154 |
4.18 / 1.92 |
ok |
|
foam |
serial |
- |
64000 |
40 |
4.01 |
10.3 / 10.3 |
257 |
7.11 / 8.06 |
ok |
|
amrex |
gpu1 |
- |
64000 |
40 |
0.0172 |
0.0441 / 0.0441 |
1.1 |
2.82 / 24.2 |
ok |
|
amrex |
serial |
- |
64000 |
40 |
3.13 |
8 / 8.01 |
200 |
2.22 / 8.92 |
ok |
|
jax |
gpu1 |
gpu |
2304 |
10 |
1.78 |
0.0409 / 0.0412 |
4.09 |
22.1 / 18 |
ok |
|
jax |
serial |
cpu |
2304 |
10 |
9.5 |
0.219 / 0.219 |
21.9 |
22.7 / 13 |
ok |
|
foam |
serial |
- |
2304 |
10 |
659 |
15.2 / 15.4 |
1.52e+03 |
15 / 16.3 |
ok |
|
amrex |
gpu1 |
- |
2304 |
10 |
3.31 |
0.0762 / 0.0762 |
7.62 |
15 / 34.3 |
ok |
|
amrex |
serial |
- |
2304 |
10 |
14.5 |
0.333 / 0.335 |
33.3 |
14.1 / 17.5 |
ok |
Machines (records grouped by host, hardware, pinning and library commits):
host |
CPU |
GPU |
cores pinned (cpus) |
wave speed |
libraries |
dates |
|---|---|---|---|---|---|---|
68G-gaia |
INTEL(R) XEON(R) PLATINUM 8568Y+ |
NVIDIA L40S |
1 (44) |
power |
superrepo c02eed4f, zoomy_amrex 4a7067d, zoomy_core 2f2ac62, zoomy_foam a71bff0, zoomy_jax 276cedb |
2026-10-12 .. 2026-10-12 |
68G-gaia |
INTEL(R) XEON(R) PLATINUM 8568Y+ |
NVIDIA L40S |
1 (44) |
power |
superrepo 9a5f303f, zoomy_amrex 0270878, zoomy_core 6cbf885, zoomy_foam 250b152, zoomy_jax 4b2ce3f |
2026-10-12 .. 2026-10-12 |