|
flow 1.3.0
Kokkos cut-cell IBM incompressible Navier-Stokes solver + pnm pore extraction
|
Functions | |
| test_iteration_order_follows_storage () | |
Variables | |
| ROOT = pathlib.Path(__file__).resolve().parents[2] | |
| str | ALIAS_HEADER = ROOT / "src" / "policy.hpp" |
| BARE = re.compile(r"Kokkos::Rank\s*<|MDRangePolicy\s*<") | |
Iteration-order guard: every multidimensional kernel iterates x fastest, on every backend. Fields are x-fastest (I = x + y*nx + z*nx*ny; suite/docs/CONVENTIONS.md). Kokkos' default MDRange iteration is Iterate::Left (first index fastest) on CUDA/HIP but Iterate::Right (LAST index fastest) on the host backends, so a bare `Kokkos::MDRangePolicy<Exec, Kokkos::Rank<3>>` strides against memory on OpenMP/Serial -- measured 2026-09-25 on the bubble column. The policies are the aliases `MDRange2` / `MDRange3` of `src/policy.hpp`, which pin Iterate::Left explicitly; this test fails if `Kokkos::Rank<` or `MDRangePolicy<` appears in `src/` or `tests/` anywhere else.
| test_iteration_order.test_iteration_order_follows_storage | ( | ) |
Definition at line 20 of file test_iteration_order.py.
References test_iteration_order_follows_storage().
Referenced by test_iteration_order_follows_storage().
| test_iteration_order.ROOT = pathlib.Path(__file__).resolve().parents[2] |
Definition at line 15 of file test_iteration_order.py.
| str test_iteration_order.ALIAS_HEADER = ROOT / "src" / "policy.hpp" |
Definition at line 16 of file test_iteration_order.py.
| test_iteration_order.BARE = re.compile(r"Kokkos::Rank\s*<|MDRangePolicy\s*<") |
Definition at line 17 of file test_iteration_order.py.