flow 1.3.0
Kokkos cut-cell IBM incompressible Navier-Stokes solver + pnm pore extraction
Loading...
Searching...
No Matches
test_iteration_order Namespace Reference

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*<")
 

Detailed Description

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.

Function Documentation

◆ test_iteration_order_follows_storage()

test_iteration_order.test_iteration_order_follows_storage ( )

Variable Documentation

◆ ROOT

test_iteration_order.ROOT = pathlib.Path(__file__).resolve().parents[2]

Definition at line 15 of file test_iteration_order.py.

◆ ALIAS_HEADER

str test_iteration_order.ALIAS_HEADER = ROOT / "src" / "policy.hpp"

Definition at line 16 of file test_iteration_order.py.

◆ BARE

test_iteration_order.BARE = re.compile(r"Kokkos::Rank\s*<|MDRangePolicy\s*<")

Definition at line 17 of file test_iteration_order.py.