k-wave-python v0.6.1
Highlights
Pure Python solver improvements
- C-order migration: solver internals now use row-major (C) order. F-order preserved only at C++ HDF5 and MATLAB interop boundaries (#676)
- tqdm progress bar for the Python solver (#681)
- 3D PML fix: use
pml_size=10for 3D to match MATLAB defaults (#690)
29 examples ported to the new API
- All Tier 1 examples use
kspaceFirstOrder()withsetup()/run()/__main__pattern (#685) - Flattened to
examples/*.py, old examples moved toexamples/legacy/(#686) - Run any example:
uv run examples/ivp_homogeneous_medium.py— no GPU required
47 parity tests against MATLAB
- Machine-precision validation (
<5e-13relative error) for all 1D/2D/3D examples (#686, #689) - Table-driven parametrized test framework with separate thresholds for time-series vs final fields
Docs & infrastructure cleanup
- README rewritten: Python solver first, both backends described (#692)
- Developer docs simplified to
uv sync/uv run pytest(#687, #692) - macOS: helpful error message when C++ backend is missing brew dependencies (#692)
- Deleted dead infrastructure:
Makefile,Dockerfile,run_examples.py, notebook pipeline (#693)
⚠️ Breaking Changes
- Solver output arrays are now C-order. Code that assumed F-order indexing of full-grid sensor data may need updating.
Dependencies
New Contributors
- @Copilot made their first contribution in #684
Full Changelog: v0.6.0...v0.6.1