k-Wave-python 0.6.0__tar.gz → 0.6.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (758) hide show
  1. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/.claude/settings.local.json +45 -0
  2. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/.git +1 -0
  3. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/.github/CONTRIBUTING.md +29 -0
  4. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/.github/ISSUE_TEMPLATE/bug_report.md +31 -0
  5. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/.github/ISSUE_TEMPLATE/code_enhancement.md +28 -0
  6. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/.github/ISSUE_TEMPLATE/config.yml +1 -0
  7. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/.github/ISSUE_TEMPLATE/example.md +17 -0
  8. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
  9. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/.github/codecov.yml +5 -0
  10. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/.github/dependabot.yml +11 -0
  11. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/.github/workflows/codespell.yml +25 -0
  12. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/.github/workflows/link-check.yml +35 -0
  13. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/.github/workflows/pytest.yml +124 -0
  14. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/.github/workflows/ruff.yml +9 -0
  15. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/.github/workflows/run-examples.yml +56 -0
  16. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/.github/workflows/test_example.yml +29 -0
  17. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/.github/workflows/test_optional_dependencies.yml +29 -0
  18. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/.github/workflows/test_pages.yml +18 -0
  19. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/docs/Makefile +20 -0
  20. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/docs/README.md +1 -1
  21. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/docs/conf.py +101 -0
  22. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/docs/development/development_environment.rst +187 -0
  23. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/docs/examples_guide.rst +179 -0
  24. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/docs/get_started/contrib.rst +4 -0
  25. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/docs/get_started/first_simulation.rst +215 -0
  26. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/docs/get_started/grid_overview.rst +25 -0
  27. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/docs/get_started/legacy_licenses/gpl-3.0.rst +674 -0
  28. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/docs/get_started/legacy_licenses/mit.rst +17 -0
  29. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/docs/get_started/license.rst +30 -0
  30. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/docs/get_started/medium_overview.rst +48 -0
  31. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/docs/get_started/new_api.rst +137 -0
  32. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/docs/get_started/sensor_overview.rst +66 -0
  33. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/docs/get_started/source_overview.rst +52 -0
  34. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/docs/index.rst +62 -0
  35. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/docs/kwave.data.rst +7 -0
  36. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/docs/kwave.enums.rst +7 -0
  37. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/docs/kwave.executor.rst +7 -0
  38. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/docs/kwave.kWaveSimulation.rst +9 -0
  39. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/docs/kwave.kWaveSimulation_helper.create_absorption_variables.rst +7 -0
  40. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/docs/kwave.kWaveSimulation_helper.display_simulation_params.rst +7 -0
  41. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/docs/kwave.kWaveSimulation_helper.expand_grid_matrices.rst +7 -0
  42. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/docs/kwave.kWaveSimulation_helper.retract_transducer_grid_size.rst +7 -0
  43. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/docs/kwave.kWaveSimulation_helper.rst +26 -0
  44. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/docs/kwave.kWaveSimulation_helper.save_to_disk_func.rst +7 -0
  45. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/docs/kwave.kWaveSimulation_helper.scale_source_terms_func.rst +7 -0
  46. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/docs/kwave.kWaveSimulation_helper.set_sound_speed_ref.rst +7 -0
  47. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/docs/kwave.kgrid.rst +9 -0
  48. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/docs/kwave.kmedium.rst +9 -0
  49. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/docs/kwave.ksensor.rst +9 -0
  50. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/docs/kwave.ksource.rst +9 -0
  51. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/docs/kwave.kspaceFirstOrder.rst +7 -0
  52. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/docs/kwave.kspaceFirstOrder2D.rst +7 -0
  53. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/docs/kwave.kspaceFirstOrder3D.rst +7 -0
  54. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/docs/kwave.kspaceFirstOrderAS.rst +7 -0
  55. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/docs/kwave.ktransducer.rst +7 -0
  56. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/docs/kwave.options.rst +9 -0
  57. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/docs/kwave.reconstruction.beamform.rst +7 -0
  58. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/docs/kwave.reconstruction.converter.rst +7 -0
  59. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/docs/kwave.reconstruction.rst +21 -0
  60. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/docs/kwave.reconstruction.shifted_transform.rst +7 -0
  61. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/docs/kwave.reconstruction.tools.rst +7 -0
  62. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/docs/kwave.recorder.rst +7 -0
  63. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/docs/kwave.rst +42 -0
  64. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/docs/kwave.utils.checks.rst +7 -0
  65. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/docs/kwave.utils.colormap.rst +7 -0
  66. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/docs/kwave.utils.conversion.rst +7 -0
  67. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/docs/kwave.utils.data.rst +7 -0
  68. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/docs/kwave.utils.dotdictionary.rst +7 -0
  69. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/docs/kwave.utils.filters.rst +7 -0
  70. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/docs/kwave.utils.interp.rst +7 -0
  71. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/docs/kwave.utils.io.rst +7 -0
  72. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/docs/kwave.utils.mapgen.rst +7 -0
  73. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/docs/kwave.utils.math.rst +7 -0
  74. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/docs/kwave.utils.matrix.rst +7 -0
  75. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/docs/kwave.utils.pml.rst +7 -0
  76. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/docs/kwave.utils.rst +31 -0
  77. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/docs/kwave.utils.signals.rst +7 -0
  78. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/docs/kwave.utils.tictoc.rst +7 -0
  79. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/docs/make.bat +35 -0
  80. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/docs/reconstruction/index.rst +19 -0
  81. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/docs/reconstruction/time_reversal.rst +80 -0
  82. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/README.md +57 -0
  83. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/at_array_as_sensor/README.md +7 -0
  84. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/at_array_as_sensor/at_array_as_sensor.ipynb +299 -0
  85. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/at_array_as_sensor/at_array_as_sensor.py +166 -0
  86. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/at_array_as_source/README.md +9 -0
  87. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/at_array_as_source/at_array_as_source.ipynb +262 -0
  88. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/at_array_as_source/at_array_as_source.py +161 -0
  89. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/at_circular_piston_3D/README.md +5 -0
  90. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/at_circular_piston_3D/at_circular_piston_3D.ipynb +455 -0
  91. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/at_circular_piston_3D/at_circular_piston_3D.py +207 -0
  92. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/at_circular_piston_AS/README.md +5 -0
  93. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/at_circular_piston_AS/at_circular_piston_AS.ipynb +383 -0
  94. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/at_circular_piston_AS/at_circular_piston_AS.py +233 -0
  95. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/at_focused_annular_array_3D/README.md +5 -0
  96. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/at_focused_annular_array_3D/at_focused_annular_array_3D.ipynb +452 -0
  97. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/at_focused_annular_array_3D/at_focused_annular_array_3D.py +214 -0
  98. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/at_focused_bowl_3D/README.md +5 -0
  99. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/at_focused_bowl_3D/at_focused_bowl_3D.ipynb +451 -0
  100. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/at_focused_bowl_3D/at_focused_bowl_3D.py +233 -0
  101. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/at_focused_bowl_AS/README.md +5 -0
  102. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/at_focused_bowl_AS/at_focused_bowl_AS.ipynb +384 -0
  103. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/at_focused_bowl_AS/at_focused_bowl_AS.py +236 -0
  104. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/at_linear_array_transducer/README.md +7 -0
  105. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/at_linear_array_transducer/at_linear_array_transducer.ipynb +201 -0
  106. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/at_linear_array_transducer/at_linear_array_transducer.py +108 -0
  107. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/checkpointing/README.md +5 -0
  108. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/checkpointing/checkpoint.py +107 -0
  109. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/ivp_1D_simulation.py +81 -0
  110. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/ivp_photoacoustic_waveforms/README.md +16 -0
  111. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/ivp_photoacoustic_waveforms/ivp_photoacoustic_waveforms.ipynb +284 -0
  112. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/ivp_photoacoustic_waveforms/ivp_photoacoustic_waveforms.py +164 -0
  113. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/na_controlling_the_pml/README.md +21 -0
  114. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/na_controlling_the_pml/modified_matlab_example.m +68 -0
  115. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/na_controlling_the_pml/na_controlling_the_pml.ipynb +232 -0
  116. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/new_api_ivp_2D.py +39 -0
  117. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/new_api_transducer_3D.py +48 -0
  118. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/pr_2D_FFT_line_sensor/README.md +7 -0
  119. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/pr_2D_FFT_line_sensor/pr_2D_FFT_line_sensor.ipynb +298 -0
  120. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/pr_2D_FFT_line_sensor/pr_2D_FFT_line_sensor.py +154 -0
  121. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/pr_2D_TR_line_sensor/README.md +7 -0
  122. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/pr_2D_TR_line_sensor/pr_2D_TR_line_sensor.ipynb +335 -0
  123. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/pr_2D_TR_line_sensor/pr_2D_TR_line_sensor.py +182 -0
  124. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/pr_3D_FFT_planar_sensor/README.md +7 -0
  125. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/pr_3D_FFT_planar_sensor/pr_3D_FFT_planar_sensor.ipynb +313 -0
  126. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/pr_3D_FFT_planar_sensor/pr_3D_FFT_planar_sensor.py +205 -0
  127. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/pr_3D_TR_planar_sensor/README.md +7 -0
  128. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/pr_3D_TR_planar_sensor/pr_3D_TR_planar_sensor.ipynb +307 -0
  129. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/pr_3D_TR_planar_sensor/pr_3D_TR_planar_sensor.py +214 -0
  130. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/sd_directivity_modelling_2D/README.md +7 -0
  131. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/sd_directivity_modelling_2D/sd_directivity_modelling_2D.ipynb +244 -0
  132. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/sd_directivity_modelling_2D/sd_directivity_modelling_2D.py +126 -0
  133. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/sd_focussed_detector_2D/README.md +7 -0
  134. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/sd_focussed_detector_2D/sd_focussed_detector_2D.ipynb +207 -0
  135. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/sd_focussed_detector_2D/sd_focussed_detector_2D.py +107 -0
  136. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/sd_focussed_detector_3D/README.md +7 -0
  137. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/sd_focussed_detector_3D/sd_focussed_detector_3D.ipynb +275 -0
  138. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/sd_focussed_detector_3D/sd_focussed_detector_3D.py +132 -0
  139. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/unified_entry_point_demo.py +85 -0
  140. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/us_beam_patterns/README.md +7 -0
  141. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/us_beam_patterns/us_beam_patterns.ipynb +345 -0
  142. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/us_beam_patterns/us_beam_patterns.py +272 -0
  143. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/us_bmode_linear_transducer/README.md +8 -0
  144. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/us_bmode_linear_transducer/example_utils.py +16 -0
  145. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/us_bmode_linear_transducer/us_bmode_linear_transducer.ipynb +478 -0
  146. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/us_bmode_linear_transducer/us_bmode_linear_transducer.py +286 -0
  147. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/us_bmode_phased_array/README.md +9 -0
  148. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/us_bmode_phased_array/us_bmode_phased_array.ipynb +468 -0
  149. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/us_bmode_phased_array/us_bmode_phased_array.py +277 -0
  150. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/us_defining_transducer/README.md +8 -0
  151. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/us_defining_transducer/us_defining_transducer.ipynb +271 -0
  152. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/examples/us_defining_transducer/us_defining_transducer.py +148 -0
  153. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/kwave/bin/darwin/kspaceFirstOrder-OMP +0 -0
  154. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/kwave/cli/__init__.py +9 -0
  155. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/kwave/cli/commands/phantom.py +132 -0
  156. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/kwave/cli/commands/plan.py +77 -0
  157. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/kwave/cli/commands/run.py +88 -0
  158. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/kwave/cli/commands/sensor.py +40 -0
  159. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/kwave/cli/commands/session_cmd.py +39 -0
  160. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/kwave/cli/commands/source.py +43 -0
  161. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/kwave/cli/main.py +34 -0
  162. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/kwave/cli/schema.py +98 -0
  163. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/kwave/cli/session.py +226 -0
  164. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/kwave/kspaceFirstOrder.py +33 -4
  165. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/kwave/solvers/cpp_simulation.py +49 -1
  166. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/kwave/solvers/kspace_solver.py +72 -23
  167. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/kwave/utils/__init__.py +0 -0
  168. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/kwave/utils/conversion.py +22 -10
  169. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/kwave/utils/kwave_array.py +49 -26
  170. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/plans/release-strategy.md +435 -0
  171. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/pyproject.toml +5 -1
  172. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/EXAMPLE_source_two.bmp +0 -0
  173. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/__init__.py +8 -0
  174. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/diff_utils.py +32 -0
  175. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/h5_summary.py +104 -0
  176. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/integration/__init__.py +0 -0
  177. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/integration/conftest.py +77 -0
  178. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/integration/test_ivp_1D.py +44 -0
  179. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/integration/test_ivp_2D.py +46 -0
  180. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/integration/test_parity_2D.py +122 -0
  181. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/integration/test_photoacoustic.py +71 -0
  182. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/integration/test_stubs.py +81 -0
  183. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/+private_kwave_functions/tolStar.m +231 -0
  184. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/+utils/TestRecorder.m +42 -0
  185. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/+utils/rand_vector_in_range.m +3 -0
  186. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_FocusAnnulusONeil.m +32 -0
  187. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_FocusBowlONeil.m +33 -0
  188. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_angularSpectrum.m +24 -0
  189. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_angularSpectrumCW.m +25 -0
  190. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_at_linear_array_transducer.m +131 -0
  191. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_attenComp.m +24 -0
  192. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_brenner.m +13 -0
  193. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_cart2grid.m +75 -0
  194. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_checkStability.m +50 -0
  195. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_computeLinearTransform.m +25 -0
  196. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_createCWSignals.m +22 -0
  197. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_example_ivp_1D.m +35 -0
  198. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_example_ivp_2D.m +33 -0
  199. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_example_parity_2D.m +58 -0
  200. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_example_photoacoustic.m +50 -0
  201. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_expandMatrix.m +53 -0
  202. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_fourierShift.m +40 -0
  203. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_gaussian.m +12 -0
  204. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_gaussianFilter.m +23 -0
  205. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_getAffineMatrix.m +25 -0
  206. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_getColorMap.m +13 -0
  207. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_getWin.m +92 -0
  208. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_get_delta_BLI.m +36 -0
  209. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_gradientSpect.m +19 -0
  210. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_hounsfield2density.m +9 -0
  211. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_interpCartData.m +76 -0
  212. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_kWaveArray.m +175 -0
  213. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_kWaveGrid.m +97 -0
  214. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_makeArc.m +36 -0
  215. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_makeBall.m +23 -0
  216. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_makeBowl.m +23 -0
  217. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_makeCartArc.m +23 -0
  218. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_makeCartBowl.m +22 -0
  219. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_makeCartCircle.m +25 -0
  220. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_makeCartDisc.m +22 -0
  221. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_makeCartRect.m +21 -0
  222. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_makeCartSphere.m +22 -0
  223. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_makeCartSphericalSegment.m +60 -0
  224. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_makeCircle.m +31 -0
  225. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_makeDisc.m +22 -0
  226. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_makeLine.m +26 -0
  227. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_makeMultiArc.m +20 -0
  228. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_makeMultiBowl.m +22 -0
  229. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_makeSphere.m +21 -0
  230. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_makeSphericalSection.m +20 -0
  231. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_maxND.m +24 -0
  232. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_minND.m +28 -0
  233. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_normvar.m +13 -0
  234. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_reorderBinarySensorData.m +12 -0
  235. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_reorderSensorData.m +20 -0
  236. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_resize.m +29 -0
  237. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_revolve2D.m +21 -0
  238. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_rotation_matrices.m +34 -0
  239. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_scaleSI.m +25 -0
  240. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_scaleTime.m +23 -0
  241. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_scanConversion.m +23 -0
  242. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_smooth.m +9 -0
  243. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_tenenbaum.m +14 -0
  244. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_tolStar.m +63 -0
  245. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_toneBurst.m +27 -0
  246. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_trimCartPoints.m +41 -0
  247. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_unmaskSensorData.m +63 -0
  248. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_writeAttributes.m +11 -0
  249. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_writeFlags.m +15 -0
  250. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_writeGrid.m +14 -0
  251. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/matlab_collectors/collect_writeMatrix.m +12 -0
  252. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/python_testers/__init__.py +0 -0
  253. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/python_testers/angularSpectrumCW_test.py +24 -0
  254. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/python_testers/angularSpectrum_test.py +27 -0
  255. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/python_testers/attenComp_test.py +29 -0
  256. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/python_testers/cart2grid_test.py +63 -0
  257. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/python_testers/computeLinearTransform_test.py +39 -0
  258. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/python_testers/create_cw_signals_test.py +32 -0
  259. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/python_testers/expandMatrix_test.py +34 -0
  260. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/python_testers/focusBowlONeil_test.py +43 -0
  261. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/python_testers/focusedAnnulusONeil_test.py +140 -0
  262. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/python_testers/fourierShift_test.py +40 -0
  263. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/python_testers/gaussianFilter_test.py +24 -0
  264. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/python_testers/gaussian_test.py +17 -0
  265. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/python_testers/getAffineMatrix_test.py +22 -0
  266. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/python_testers/getColorMap_test.py +35 -0
  267. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/python_testers/getDeltaBLI_test.py +26 -0
  268. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/python_testers/getWin_test.py +48 -0
  269. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/python_testers/h5io_test.py +87 -0
  270. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/python_testers/hounsfield2density.py +21 -0
  271. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/python_testers/kWaveArray_test.py +180 -0
  272. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/python_testers/kWaveGrid_test.py +78 -0
  273. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/python_testers/makeArc_test.py +38 -0
  274. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/python_testers/makeBall_test.py +36 -0
  275. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/python_testers/makeBowl_test.py +43 -0
  276. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/python_testers/makeCartArc_test.py +47 -0
  277. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/python_testers/makeCartBowl_test.py +27 -0
  278. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/python_testers/makeCartCircle_test.py +41 -0
  279. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/python_testers/makeCartRect_test.py +26 -0
  280. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/python_testers/makeCartSphere_test.py +35 -0
  281. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/python_testers/makeCartSphericalSegment_test.py +63 -0
  282. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/python_testers/makeCircle_test.py +35 -0
  283. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/python_testers/makeDisc_test.py +29 -0
  284. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/python_testers/makeLine_test.py +45 -0
  285. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/python_testers/makeMultiArc_test.py +30 -0
  286. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/python_testers/makeMultiBowl_test.py +33 -0
  287. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/python_testers/makeSphere_test.py +29 -0
  288. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/python_testers/makeSphericalSection_test.py +37 -0
  289. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/python_testers/maxND_test.py +30 -0
  290. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/python_testers/minND_test.py +25 -0
  291. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/python_testers/phase_shift_interpolate_test.py +65 -0
  292. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/python_testers/reorderBinarySensorData_test.py +26 -0
  293. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/python_testers/reorderSensorData_test.py +39 -0
  294. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/python_testers/revolve2D_test.py +30 -0
  295. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/python_testers/rotation_matrices_test.py +37 -0
  296. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/python_testers/scaleSI_test.py +44 -0
  297. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/python_testers/scaleTime_test.py +29 -0
  298. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/python_testers/scanConversion_test.py +30 -0
  299. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/python_testers/sharpness_test.py +64 -0
  300. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/python_testers/smooth_test.py +18 -0
  301. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/python_testers/test_check_stability.py +83 -0
  302. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/python_testers/test_interpcartdata.py +70 -0
  303. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/python_testers/test_linear_array_transducer.py +63 -0
  304. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/python_testers/test_make_cart_disc.py +25 -0
  305. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/python_testers/test_resize.py +30 -0
  306. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/python_testers/tolStart_test.py +52 -0
  307. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/python_testers/toneBurst_test.py +58 -0
  308. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/python_testers/trimCartPoints_test.py +28 -0
  309. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/python_testers/unmaskSensorData_test.py +44 -0
  310. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/python_testers/utils/__init__.py +0 -0
  311. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/python_testers/utils/check_equality.py +146 -0
  312. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/python_testers/utils/record_reader.py +28 -0
  313. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/matlab_test_data_collectors/run_all_collectors.m +38 -0
  314. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_cpp_io_in_parts.json +912 -0
  315. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_cpp_running_simulations.json +912 -0
  316. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_ivp_3D_simulation.json +812 -0
  317. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_ivp_axisymmetric_simulation.json +752 -0
  318. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_ivp_binary_sensor_mask.json +792 -0
  319. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_ivp_comparison_modelling_functions/input_1.json +752 -0
  320. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_ivp_comparison_modelling_functions/input_2.json +752 -0
  321. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_ivp_heterogeneous_medium.json +752 -0
  322. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_ivp_homogeneous_medium.json +792 -0
  323. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_ivp_loading_external_image.json +792 -0
  324. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_ivp_opposing_corners_sensor_mask.json +792 -0
  325. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_ivp_photoacoustic_waveforms/input_1.json +752 -0
  326. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_ivp_photoacoustic_waveforms/input_2.json +812 -0
  327. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_ivp_sensor_frequency_response/input_1.json +792 -0
  328. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_ivp_sensor_frequency_response/input_2.json +792 -0
  329. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_na_controlling_the_PML/input_1.json +752 -0
  330. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_na_controlling_the_PML/input_2.json +752 -0
  331. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_na_controlling_the_PML/input_3.json +752 -0
  332. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_na_controlling_the_PML/input_4.json +752 -0
  333. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_na_optimising_performance/input_1.json +752 -0
  334. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_na_optimising_performance/input_2.json +752 -0
  335. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_na_optimising_performance/input_3.json +752 -0
  336. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_pr_2D_FFT_line_sensor.json +752 -0
  337. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_pr_2D_TR_circular_sensor.json +752 -0
  338. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_pr_2D_TR_directional_sensors/input_1.json +752 -0
  339. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_pr_2D_TR_directional_sensors/input_2.json +752 -0
  340. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_pr_2D_TR_line_sensor.json +752 -0
  341. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_pr_3D_FFT_planar_sensor.json +812 -0
  342. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_sd_directional_array_elements.json +812 -0
  343. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_sd_directivity_modelling_2D/input_1.json +812 -0
  344. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_sd_directivity_modelling_2D/input_10.json +812 -0
  345. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_sd_directivity_modelling_2D/input_11.json +812 -0
  346. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_sd_directivity_modelling_2D/input_2.json +812 -0
  347. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_sd_directivity_modelling_2D/input_3.json +812 -0
  348. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_sd_directivity_modelling_2D/input_4.json +812 -0
  349. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_sd_directivity_modelling_2D/input_5.json +812 -0
  350. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_sd_directivity_modelling_2D/input_6.json +812 -0
  351. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_sd_directivity_modelling_2D/input_7.json +812 -0
  352. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_sd_directivity_modelling_2D/input_8.json +812 -0
  353. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_sd_directivity_modelling_2D/input_9.json +812 -0
  354. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_sd_directivity_modelling_3D/input_1.json +872 -0
  355. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_sd_directivity_modelling_3D/input_10.json +872 -0
  356. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_sd_directivity_modelling_3D/input_11.json +872 -0
  357. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_sd_directivity_modelling_3D/input_2.json +872 -0
  358. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_sd_directivity_modelling_3D/input_3.json +872 -0
  359. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_sd_directivity_modelling_3D/input_4.json +872 -0
  360. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_sd_directivity_modelling_3D/input_5.json +872 -0
  361. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_sd_directivity_modelling_3D/input_6.json +872 -0
  362. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_sd_directivity_modelling_3D/input_7.json +872 -0
  363. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_sd_directivity_modelling_3D/input_8.json +872 -0
  364. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_sd_directivity_modelling_3D/input_9.json +872 -0
  365. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_sd_focussed_detector_2D.json +752 -0
  366. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_sd_sensor_directivity_2D.json +752 -0
  367. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_tvsp_3D_simulation.json +872 -0
  368. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_tvsp_doppler_effect.json +852 -0
  369. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_tvsp_homogeneous_medium_dipole.json +852 -0
  370. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_tvsp_homogeneous_medium_monopole.json +852 -0
  371. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_beam_patterns.json +912 -0
  372. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_1.json +912 -0
  373. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_10.json +912 -0
  374. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_11.json +912 -0
  375. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_12.json +912 -0
  376. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_13.json +912 -0
  377. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_14.json +912 -0
  378. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_15.json +912 -0
  379. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_16.json +912 -0
  380. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_17.json +912 -0
  381. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_18.json +912 -0
  382. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_19.json +912 -0
  383. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_2.json +912 -0
  384. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_20.json +912 -0
  385. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_21.json +912 -0
  386. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_22.json +912 -0
  387. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_23.json +912 -0
  388. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_24.json +912 -0
  389. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_25.json +912 -0
  390. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_26.json +912 -0
  391. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_27.json +912 -0
  392. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_28.json +912 -0
  393. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_29.json +912 -0
  394. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_3.json +912 -0
  395. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_30.json +912 -0
  396. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_31.json +912 -0
  397. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_32.json +912 -0
  398. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_33.json +912 -0
  399. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_34.json +912 -0
  400. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_35.json +912 -0
  401. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_36.json +912 -0
  402. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_37.json +912 -0
  403. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_38.json +912 -0
  404. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_39.json +912 -0
  405. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_4.json +912 -0
  406. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_40.json +912 -0
  407. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_41.json +912 -0
  408. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_42.json +912 -0
  409. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_43.json +912 -0
  410. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_44.json +912 -0
  411. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_45.json +912 -0
  412. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_46.json +912 -0
  413. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_47.json +912 -0
  414. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_48.json +912 -0
  415. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_49.json +912 -0
  416. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_5.json +912 -0
  417. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_50.json +912 -0
  418. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_51.json +912 -0
  419. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_52.json +912 -0
  420. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_53.json +912 -0
  421. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_54.json +912 -0
  422. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_55.json +912 -0
  423. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_56.json +912 -0
  424. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_57.json +912 -0
  425. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_58.json +912 -0
  426. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_59.json +912 -0
  427. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_6.json +912 -0
  428. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_60.json +912 -0
  429. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_61.json +912 -0
  430. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_62.json +912 -0
  431. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_63.json +912 -0
  432. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_64.json +912 -0
  433. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_65.json +912 -0
  434. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_66.json +912 -0
  435. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_67.json +912 -0
  436. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_68.json +912 -0
  437. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_69.json +912 -0
  438. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_7.json +912 -0
  439. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_70.json +912 -0
  440. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_71.json +912 -0
  441. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_72.json +912 -0
  442. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_73.json +912 -0
  443. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_74.json +912 -0
  444. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_75.json +912 -0
  445. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_76.json +912 -0
  446. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_77.json +912 -0
  447. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_78.json +912 -0
  448. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_79.json +912 -0
  449. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_8.json +912 -0
  450. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_80.json +912 -0
  451. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_81.json +912 -0
  452. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_82.json +912 -0
  453. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_83.json +912 -0
  454. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_84.json +912 -0
  455. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_85.json +912 -0
  456. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_86.json +912 -0
  457. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_87.json +912 -0
  458. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_88.json +912 -0
  459. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_89.json +912 -0
  460. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_9.json +912 -0
  461. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_90.json +912 -0
  462. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_91.json +912 -0
  463. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_92.json +912 -0
  464. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_93.json +912 -0
  465. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_94.json +912 -0
  466. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_95.json +912 -0
  467. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_linear_transducer/input_96.json +912 -0
  468. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_phased_array/input_1.json +912 -0
  469. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_phased_array/input_10.json +912 -0
  470. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_phased_array/input_11.json +912 -0
  471. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_phased_array/input_12.json +912 -0
  472. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_phased_array/input_13.json +912 -0
  473. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_phased_array/input_14.json +912 -0
  474. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_phased_array/input_15.json +912 -0
  475. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_phased_array/input_16.json +912 -0
  476. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_phased_array/input_17.json +912 -0
  477. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_phased_array/input_18.json +912 -0
  478. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_phased_array/input_19.json +912 -0
  479. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_phased_array/input_2.json +912 -0
  480. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_phased_array/input_20.json +912 -0
  481. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_phased_array/input_21.json +912 -0
  482. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_phased_array/input_22.json +912 -0
  483. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_phased_array/input_23.json +912 -0
  484. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_phased_array/input_24.json +912 -0
  485. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_phased_array/input_25.json +912 -0
  486. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_phased_array/input_26.json +912 -0
  487. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_phased_array/input_27.json +912 -0
  488. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_phased_array/input_28.json +912 -0
  489. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_phased_array/input_29.json +912 -0
  490. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_phased_array/input_3.json +912 -0
  491. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_phased_array/input_30.json +912 -0
  492. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_phased_array/input_31.json +912 -0
  493. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_phased_array/input_32.json +912 -0
  494. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_phased_array/input_33.json +912 -0
  495. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_phased_array/input_4.json +912 -0
  496. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_phased_array/input_5.json +912 -0
  497. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_phased_array/input_6.json +912 -0
  498. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_phased_array/input_7.json +912 -0
  499. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_phased_array/input_8.json +912 -0
  500. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_bmode_phased_array/input_9.json +912 -0
  501. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_defining_transducer.json +912 -0
  502. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/reference_outputs/out_us_transducer_as_sensor.json +932 -0
  503. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/setup_test.py +8 -0
  504. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/test__init__.py +16 -0
  505. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/test_c_order.py +299 -0
  506. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/test_checks.py +143 -0
  507. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/test_cli/__init__.py +0 -0
  508. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/test_cli/conftest.py +45 -0
  509. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/test_cli/test_1d_ivp.py +133 -0
  510. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/test_cli/test_e2e.py +163 -0
  511. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/test_compat.py +88 -0
  512. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/test_cpp_io_in_parts.py +271 -0
  513. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/test_cpp_running_simulations.py +178 -0
  514. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/test_create_pixel_dim.py +64 -0
  515. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/test_display_simulation_params.py +81 -0
  516. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/test_element.py +74 -0
  517. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/test_executor.py +277 -0
  518. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/test_filterutils.py +168 -0
  519. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/test_ivp_3D_simulation.py +87 -0
  520. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/test_ivp_axisymmetric_karray_simulation.py +105 -0
  521. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/test_ivp_axisymmetric_simulation.py +74 -0
  522. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/test_ivp_binary_sensor_mask.py +71 -0
  523. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/test_ivp_comparison_modelling_functions.py +113 -0
  524. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/test_ivp_heterogeneous_medium.py +74 -0
  525. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/test_ivp_homogeneous_medium.py +69 -0
  526. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/test_ivp_loading_external_image.py +70 -0
  527. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/test_ivp_opposing_corners_sensor_mask.py +90 -0
  528. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/test_ivp_photoacoustic_waveforms.py +149 -0
  529. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/test_ivp_sensor_frequency_response.py +92 -0
  530. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/test_ksource.py +44 -0
  531. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/test_kspaceFirstOrder.py +70 -0
  532. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/test_kutils.py +309 -0
  533. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/test_math.py +160 -0
  534. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/test_misc.py +26 -0
  535. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/test_na_controlling_the_PML.py +123 -0
  536. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/test_na_optimising_performance.py +101 -0
  537. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/test_native_solver.py +353 -0
  538. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/test_pmlutils.py +150 -0
  539. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/test_pr_2D_FFT_line_sensor.py +93 -0
  540. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/test_pr_2D_TR_circular_sensor.py +85 -0
  541. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/test_pr_2D_TR_directional_sensors.py +113 -0
  542. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/test_pr_2D_TR_line_sensor.py +87 -0
  543. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/test_pr_3D_FFT_planar_sensor.py +84 -0
  544. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/test_reconstruction.py +243 -0
  545. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/test_sd_directional_array_elements.py +114 -0
  546. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/test_sd_directivity_modelling_2D.py +100 -0
  547. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/test_sd_directivity_modelling_3D.py +105 -0
  548. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/test_sd_focussed_detector_2D.py +66 -0
  549. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/test_sd_sensor_directivity_2D.py +95 -0
  550. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/test_sharpness_filters.py +101 -0
  551. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/test_simulation.py +126 -0
  552. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/test_simulation_execution_options.py +330 -0
  553. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/test_time_reversal.py +463 -0
  554. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/test_tvsp_3D_simulation.py +89 -0
  555. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/test_tvsp_doppler_effect.py +108 -0
  556. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/test_tvsp_homogeneous_medium_dipole.py +76 -0
  557. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/test_tvsp_homogeneous_medium_monopole.py +76 -0
  558. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/test_us_beam_patterns.py +189 -0
  559. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/test_us_bmode_linear_transducer.py +255 -0
  560. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/test_us_bmode_phased_array.py +233 -0
  561. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/test_us_defining_transducer.py +181 -0
  562. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/test_us_transducer_as_sensor.py +173 -0
  563. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/test_utils.py +420 -0
  564. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/test_validation.py +122 -0
  565. k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/tests/test_water.py +425 -0
  566. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/uv.lock +21 -5
  567. k_wave_python-0.6.1/.gitignore +47 -0
  568. k_wave_python-0.6.1/.pre-commit-config.yaml +39 -0
  569. k_wave_python-0.6.1/.readthedocs.yaml +14 -0
  570. k_wave_python-0.6.1/CITATION.cff +21 -0
  571. k_wave_python-0.6.1/Dockerfile +11 -0
  572. k_wave_python-0.6.1/LICENSE +165 -0
  573. {k_wave_python-0.6.0 → k_wave_python-0.6.1}/PKG-INFO +24 -33
  574. k_wave_python-0.6.1/docs/README.md +66 -0
  575. k_wave_python-0.6.1/kwave/__init__.py +205 -0
  576. k_wave_python-0.6.1/kwave/compat.py +74 -0
  577. k_wave_python-0.6.1/kwave/data.py +121 -0
  578. k_wave_python-0.6.1/kwave/enums.py +22 -0
  579. k_wave_python-0.6.1/kwave/executor.py +150 -0
  580. k_wave_python-0.6.1/kwave/kWaveSimulation.py +1532 -0
  581. k_wave_python-0.6.1/kwave/kWaveSimulation_helper/__init__.py +7 -0
  582. k_wave_python-0.6.1/kwave/kWaveSimulation_helper/create_absorption_variables.py +130 -0
  583. k_wave_python-0.6.1/kwave/kWaveSimulation_helper/display_simulation_params.py +92 -0
  584. k_wave_python-0.6.1/kwave/kWaveSimulation_helper/expand_grid_matrices.py +317 -0
  585. k_wave_python-0.6.1/kwave/kWaveSimulation_helper/retract_transducer_grid_size.py +22 -0
  586. k_wave_python-0.6.1/kwave/kWaveSimulation_helper/save_to_disk_func.py +523 -0
  587. k_wave_python-0.6.1/kwave/kWaveSimulation_helper/scale_source_terms_func.py +395 -0
  588. k_wave_python-0.6.1/kwave/kWaveSimulation_helper/set_sound_speed_ref.py +91 -0
  589. k_wave_python-0.6.1/kwave/kgrid.py +701 -0
  590. k_wave_python-0.6.1/kwave/kmedium.py +232 -0
  591. k_wave_python-0.6.1/kwave/ksensor.py +142 -0
  592. k_wave_python-0.6.1/kwave/ksource.py +382 -0
  593. k_wave_python-0.6.1/kwave/kspaceFirstOrder.py +279 -0
  594. k_wave_python-0.6.1/kwave/kspaceFirstOrder2D.py +377 -0
  595. k_wave_python-0.6.1/kwave/kspaceFirstOrder3D.py +388 -0
  596. k_wave_python-0.6.1/kwave/kspaceFirstOrderAS.py +370 -0
  597. k_wave_python-0.6.1/kwave/kspaceLineRecon.py +128 -0
  598. k_wave_python-0.6.1/kwave/kspacePlaneRecon.py +132 -0
  599. k_wave_python-0.6.1/kwave/ktransducer.py +764 -0
  600. k_wave_python-0.6.1/kwave/options/__init__.py +11 -0
  601. k_wave_python-0.6.1/kwave/options/simulation_execution_options.py +337 -0
  602. k_wave_python-0.6.1/kwave/options/simulation_options.py +348 -0
  603. k_wave_python-0.6.1/kwave/reconstruction/__init__.py +11 -0
  604. k_wave_python-0.6.1/kwave/reconstruction/beamform.py +145 -0
  605. k_wave_python-0.6.1/kwave/reconstruction/time_reversal.py +150 -0
  606. k_wave_python-0.6.1/kwave/reconstruction/tools.py +65 -0
  607. k_wave_python-0.6.1/kwave/recorder.py +143 -0
  608. k_wave_python-0.6.1/kwave/solvers/__init__.py +7 -0
  609. k_wave_python-0.6.1/kwave/solvers/cpp_simulation.py +350 -0
  610. k_wave_python-0.6.1/kwave/solvers/kspace_solver.py +846 -0
  611. k_wave_python-0.6.1/kwave/solvers/native.py +30 -0
  612. k_wave_python-0.6.1/kwave/solvers/validation.py +108 -0
  613. k_wave_python-0.6.1/kwave/utils/__init__.py +0 -0
  614. k_wave_python-0.6.1/kwave/utils/angular_spectrum.py +389 -0
  615. k_wave_python-0.6.1/kwave/utils/angular_spectrum_cw.py +294 -0
  616. k_wave_python-0.6.1/kwave/utils/atten_comp.py +311 -0
  617. k_wave_python-0.6.1/kwave/utils/checks.py +297 -0
  618. k_wave_python-0.6.1/kwave/utils/colormap.py +93 -0
  619. k_wave_python-0.6.1/kwave/utils/conversion.py +518 -0
  620. k_wave_python-0.6.1/kwave/utils/data.py +208 -0
  621. k_wave_python-0.6.1/kwave/utils/dotdictionary.py +57 -0
  622. k_wave_python-0.6.1/kwave/utils/filters.py +615 -0
  623. k_wave_python-0.6.1/kwave/utils/interp.py +393 -0
  624. k_wave_python-0.6.1/kwave/utils/io.py +494 -0
  625. k_wave_python-0.6.1/kwave/utils/kwave_array.py +1009 -0
  626. k_wave_python-0.6.1/kwave/utils/mapgen.py +3113 -0
  627. k_wave_python-0.6.1/kwave/utils/math.py +467 -0
  628. k_wave_python-0.6.1/kwave/utils/matlab.py +165 -0
  629. k_wave_python-0.6.1/kwave/utils/matrix.py +438 -0
  630. k_wave_python-0.6.1/kwave/utils/plot.py +43 -0
  631. k_wave_python-0.6.1/kwave/utils/pml.py +159 -0
  632. k_wave_python-0.6.1/kwave/utils/sharpness_filters.py +126 -0
  633. k_wave_python-0.6.1/kwave/utils/signals.py +734 -0
  634. k_wave_python-0.6.1/kwave/utils/tictoc.py +44 -0
  635. k_wave_python-0.6.1/kwave/utils/typing.py +34 -0
  636. k_wave_python-0.6.1/make_docs.sh +4 -0
  637. {k_wave_python-0.6.0 → k_wave_python-0.6.1}/plans/release-strategy.md +96 -74
  638. k_wave_python-0.6.1/pyproject.toml +128 -0
  639. k_wave_python-0.6.1/pytest.ini +7 -0
  640. k_wave_python-0.6.1/run_tests.sh +11 -0
  641. k_wave_python-0.6.1/uv.lock +2259 -0
  642. {k_wave_python-0.6.0 → k_wave_python-0.6.1}/.claude/settings.local.json +0 -0
  643. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/.gitignore +0 -0
  644. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/.pre-commit-config.yaml +0 -0
  645. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/.readthedocs.yaml +0 -0
  646. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/CITATION.cff +0 -0
  647. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/Dockerfile +0 -0
  648. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/LICENSE +0 -0
  649. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/Makefile +0 -0
  650. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/kwave/__init__.py +0 -0
  651. {k_wave_python-0.6.0/kwave/utils → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli/kwave/cli/commands}/__init__.py +0 -0
  652. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/kwave/compat.py +0 -0
  653. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/kwave/data.py +0 -0
  654. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/kwave/enums.py +0 -0
  655. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/kwave/executor.py +0 -0
  656. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/kwave/kWaveSimulation.py +0 -0
  657. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/kwave/kWaveSimulation_helper/__init__.py +0 -0
  658. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/kwave/kWaveSimulation_helper/create_absorption_variables.py +0 -0
  659. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/kwave/kWaveSimulation_helper/display_simulation_params.py +0 -0
  660. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/kwave/kWaveSimulation_helper/expand_grid_matrices.py +0 -0
  661. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/kwave/kWaveSimulation_helper/retract_transducer_grid_size.py +0 -0
  662. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/kwave/kWaveSimulation_helper/save_to_disk_func.py +0 -0
  663. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/kwave/kWaveSimulation_helper/scale_source_terms_func.py +0 -0
  664. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/kwave/kWaveSimulation_helper/set_sound_speed_ref.py +0 -0
  665. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/kwave/kgrid.py +0 -0
  666. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/kwave/kmedium.py +0 -0
  667. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/kwave/ksensor.py +0 -0
  668. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/kwave/ksource.py +0 -0
  669. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/kwave/kspaceFirstOrder2D.py +0 -0
  670. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/kwave/kspaceFirstOrder3D.py +0 -0
  671. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/kwave/kspaceFirstOrderAS.py +0 -0
  672. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/kwave/kspaceLineRecon.py +0 -0
  673. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/kwave/kspacePlaneRecon.py +0 -0
  674. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/kwave/ktransducer.py +0 -0
  675. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/kwave/options/__init__.py +0 -0
  676. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/kwave/options/simulation_execution_options.py +0 -0
  677. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/kwave/options/simulation_options.py +0 -0
  678. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/kwave/reconstruction/__init__.py +0 -0
  679. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/kwave/reconstruction/beamform.py +0 -0
  680. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/kwave/reconstruction/time_reversal.py +0 -0
  681. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/kwave/reconstruction/tools.py +0 -0
  682. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/kwave/recorder.py +0 -0
  683. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/kwave/solvers/__init__.py +0 -0
  684. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/kwave/solvers/native.py +0 -0
  685. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/kwave/solvers/validation.py +0 -0
  686. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/kwave/utils/angular_spectrum.py +0 -0
  687. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/kwave/utils/angular_spectrum_cw.py +0 -0
  688. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/kwave/utils/atten_comp.py +0 -0
  689. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/kwave/utils/checks.py +0 -0
  690. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/kwave/utils/colormap.py +0 -0
  691. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/kwave/utils/data.py +0 -0
  692. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/kwave/utils/dotdictionary.py +0 -0
  693. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/kwave/utils/filters.py +0 -0
  694. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/kwave/utils/interp.py +0 -0
  695. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/kwave/utils/io.py +0 -0
  696. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/kwave/utils/mapgen.py +0 -0
  697. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/kwave/utils/math.py +0 -0
  698. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/kwave/utils/matlab.py +0 -0
  699. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/kwave/utils/matrix.py +0 -0
  700. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/kwave/utils/plot.py +0 -0
  701. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/kwave/utils/pml.py +0 -0
  702. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/kwave/utils/sharpness_filters.py +0 -0
  703. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/kwave/utils/signals.py +0 -0
  704. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/kwave/utils/tictoc.py +0 -0
  705. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/kwave/utils/typing.py +0 -0
  706. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/make_docs.sh +0 -0
  707. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/pytest.ini +0 -0
  708. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/run_examples.py +0 -0
  709. {k_wave_python-0.6.0 → k_wave_python-0.6.1/.claude/worktrees/add-agent-cli}/run_tests.sh +0 -0
  710. {k_wave_python-0.6.0 → k_wave_python-0.6.1}/htmlcov/.gitignore +0 -0
  711. {k_wave_python-0.6.0 → k_wave_python-0.6.1}/htmlcov/class_index.html +0 -0
  712. {k_wave_python-0.6.0 → k_wave_python-0.6.1}/htmlcov/coverage_html_cb_6fb7b396.js +0 -0
  713. {k_wave_python-0.6.0 → k_wave_python-0.6.1}/htmlcov/function_index.html +0 -0
  714. {k_wave_python-0.6.0 → k_wave_python-0.6.1}/htmlcov/index.html +0 -0
  715. {k_wave_python-0.6.0 → k_wave_python-0.6.1}/htmlcov/status.json +0 -0
  716. {k_wave_python-0.6.0 → k_wave_python-0.6.1}/htmlcov/style_cb_8e611ae1.css +0 -0
  717. {k_wave_python-0.6.0 → k_wave_python-0.6.1}/htmlcov/z_008abe0f134486c2___init___py.html +0 -0
  718. {k_wave_python-0.6.0 → k_wave_python-0.6.1}/htmlcov/z_008abe0f134486c2_checks_py.html +0 -0
  719. {k_wave_python-0.6.0 → k_wave_python-0.6.1}/htmlcov/z_008abe0f134486c2_colormap_py.html +0 -0
  720. {k_wave_python-0.6.0 → k_wave_python-0.6.1}/htmlcov/z_008abe0f134486c2_conversion_py.html +0 -0
  721. {k_wave_python-0.6.0 → k_wave_python-0.6.1}/htmlcov/z_008abe0f134486c2_data_py.html +0 -0
  722. {k_wave_python-0.6.0 → k_wave_python-0.6.1}/htmlcov/z_008abe0f134486c2_dotdictionary_py.html +0 -0
  723. {k_wave_python-0.6.0 → k_wave_python-0.6.1}/htmlcov/z_008abe0f134486c2_filters_py.html +0 -0
  724. {k_wave_python-0.6.0 → k_wave_python-0.6.1}/htmlcov/z_008abe0f134486c2_interp_py.html +0 -0
  725. {k_wave_python-0.6.0 → k_wave_python-0.6.1}/htmlcov/z_008abe0f134486c2_io_py.html +0 -0
  726. {k_wave_python-0.6.0 → k_wave_python-0.6.1}/htmlcov/z_008abe0f134486c2_mapgen_py.html +0 -0
  727. {k_wave_python-0.6.0 → k_wave_python-0.6.1}/htmlcov/z_008abe0f134486c2_math_py.html +0 -0
  728. {k_wave_python-0.6.0 → k_wave_python-0.6.1}/htmlcov/z_008abe0f134486c2_matlab_py.html +0 -0
  729. {k_wave_python-0.6.0 → k_wave_python-0.6.1}/htmlcov/z_008abe0f134486c2_matrix_py.html +0 -0
  730. {k_wave_python-0.6.0 → k_wave_python-0.6.1}/htmlcov/z_008abe0f134486c2_pml_py.html +0 -0
  731. {k_wave_python-0.6.0 → k_wave_python-0.6.1}/htmlcov/z_008abe0f134486c2_signals_py.html +0 -0
  732. {k_wave_python-0.6.0 → k_wave_python-0.6.1}/htmlcov/z_008abe0f134486c2_tictoc_py.html +0 -0
  733. {k_wave_python-0.6.0 → k_wave_python-0.6.1}/htmlcov/z_008abe0f134486c2_typing_py.html +0 -0
  734. {k_wave_python-0.6.0 → k_wave_python-0.6.1}/htmlcov/z_08ccaf6f6fd0d069___init___py.html +0 -0
  735. {k_wave_python-0.6.0 → k_wave_python-0.6.1}/htmlcov/z_08ccaf6f6fd0d069_create_absorption_variables_py.html +0 -0
  736. {k_wave_python-0.6.0 → k_wave_python-0.6.1}/htmlcov/z_08ccaf6f6fd0d069_display_simulation_params_py.html +0 -0
  737. {k_wave_python-0.6.0 → k_wave_python-0.6.1}/htmlcov/z_08ccaf6f6fd0d069_expand_grid_matrices_py.html +0 -0
  738. {k_wave_python-0.6.0 → k_wave_python-0.6.1}/htmlcov/z_08ccaf6f6fd0d069_retract_transducer_grid_size_py.html +0 -0
  739. {k_wave_python-0.6.0 → k_wave_python-0.6.1}/htmlcov/z_08ccaf6f6fd0d069_save_to_disk_func_py.html +0 -0
  740. {k_wave_python-0.6.0 → k_wave_python-0.6.1}/htmlcov/z_08ccaf6f6fd0d069_scale_source_terms_func_py.html +0 -0
  741. {k_wave_python-0.6.0 → k_wave_python-0.6.1}/htmlcov/z_08ccaf6f6fd0d069_set_sound_speed_ref_py.html +0 -0
  742. {k_wave_python-0.6.0 → k_wave_python-0.6.1}/htmlcov/z_af83d3eb1fd99cb4___init___py.html +0 -0
  743. {k_wave_python-0.6.0 → k_wave_python-0.6.1}/htmlcov/z_af83d3eb1fd99cb4_simulation_execution_options_py.html +0 -0
  744. {k_wave_python-0.6.0 → k_wave_python-0.6.1}/htmlcov/z_af83d3eb1fd99cb4_simulation_options_py.html +0 -0
  745. {k_wave_python-0.6.0 → k_wave_python-0.6.1}/htmlcov/z_c3dba8f0d3a212d1___init___py.html +0 -0
  746. {k_wave_python-0.6.0 → k_wave_python-0.6.1}/htmlcov/z_c3dba8f0d3a212d1_data_py.html +0 -0
  747. {k_wave_python-0.6.0 → k_wave_python-0.6.1}/htmlcov/z_c3dba8f0d3a212d1_enums_py.html +0 -0
  748. {k_wave_python-0.6.0 → k_wave_python-0.6.1}/htmlcov/z_c3dba8f0d3a212d1_executor_py.html +0 -0
  749. {k_wave_python-0.6.0 → k_wave_python-0.6.1}/htmlcov/z_c3dba8f0d3a212d1_kWaveSimulation_py.html +0 -0
  750. {k_wave_python-0.6.0 → k_wave_python-0.6.1}/htmlcov/z_c3dba8f0d3a212d1_kgrid_py.html +0 -0
  751. {k_wave_python-0.6.0 → k_wave_python-0.6.1}/htmlcov/z_c3dba8f0d3a212d1_kmedium_py.html +0 -0
  752. {k_wave_python-0.6.0 → k_wave_python-0.6.1}/htmlcov/z_c3dba8f0d3a212d1_ksensor_py.html +0 -0
  753. {k_wave_python-0.6.0 → k_wave_python-0.6.1}/htmlcov/z_c3dba8f0d3a212d1_ksource_py.html +0 -0
  754. {k_wave_python-0.6.0 → k_wave_python-0.6.1}/htmlcov/z_c3dba8f0d3a212d1_kspaceFirstOrder2D_py.html +0 -0
  755. {k_wave_python-0.6.0 → k_wave_python-0.6.1}/htmlcov/z_c3dba8f0d3a212d1_ktransducer_py.html +0 -0
  756. {k_wave_python-0.6.0 → k_wave_python-0.6.1}/htmlcov/z_c3dba8f0d3a212d1_recorder_py.html +0 -0
  757. {k_wave_python-0.6.0 → k_wave_python-0.6.1}/htmlcov/z_c6e89a0ff279d0c3___init___py.html +0 -0
  758. {k_wave_python-0.6.0 → k_wave_python-0.6.1}/htmlcov/z_c6e89a0ff279d0c3_time_reversal_py.html +0 -0
@@ -0,0 +1,45 @@
1
+ {
2
+ "permissions": {
3
+ "allow": [
4
+ "Bash(ls:*)",
5
+ "Bash(python:*)",
6
+ "Bash(uv run python:*)",
7
+ "Bash(PYTHONPATH=. uv run:*)",
8
+ "Bash(find:*)",
9
+ "Bash(grep:*)",
10
+ "WebSearch",
11
+ "WebFetch(domain:www.k-wave.org)",
12
+ "WebFetch(domain:nanobind.readthedocs.io)",
13
+ "WebFetch(domain:github.com)",
14
+ "WebFetch(domain:raw.githubusercontent.com)",
15
+ "Bash(.venv/bin/python:*)",
16
+ "Bash(git remote:*)",
17
+ "Bash(gh pr:*)",
18
+ "mcp__greptile__list_pull_requests",
19
+ "mcp__greptile__trigger_code_review",
20
+ "mcp__greptile__list_code_reviews",
21
+ "Bash(KWAVE_DEVICE=cpu uv run python examples/ivp_photoacoustic_waveforms/ivp_photoacoustic_waveforms.py)",
22
+ "Bash(KWAVE_DEVICE=cpu uv run python examples/pr_2D_FFT_line_sensor/pr_2D_FFT_line_sensor.py)",
23
+ "Bash(KWAVE_DEVICE=cpu uv run python examples/pr_2D_TR_line_sensor/pr_2D_TR_line_sensor.py)",
24
+ "Bash(KWAVE_DEVICE=cpu uv run python examples/at_array_as_sensor/at_array_as_sensor.py)",
25
+ "Bash(KWAVE_DEVICE=cpu uv run python examples/at_array_as_source/at_array_as_source.py)",
26
+ "Bash(KWAVE_DEVICE=cpu uv run python examples/sd_directivity_modelling_2D/sd_directivity_modelling_2D.py)",
27
+ "Bash(KWAVE_DEVICE=cpu uv run python examples/sd_focussed_detector_2D/sd_focussed_detector_2D.py)",
28
+ "Bash(KWAVE_DEVICE=cpu uv run python examples/sd_focussed_detector_3D/sd_focussed_detector_3D.py)",
29
+ "Bash(KWAVE_DEVICE=cpu uv run python examples/at_circular_piston_3D/at_circular_piston_3D.py)",
30
+ "Bash(KWAVE_DEVICE=cpu uv run python examples/at_circular_piston_AS/at_circular_piston_AS.py)",
31
+ "Bash(KWAVE_DEVICE=cpu uv run python examples/at_focused_bowl_AS/at_focused_bowl_AS.py)",
32
+ "Bash(KWAVE_DEVICE=cpu uv run python examples/at_focused_bowl_3D/at_focused_bowl_3D.py)",
33
+ "Bash(KWAVE_DEVICE=cpu uv run python examples/at_focused_annular_array_3D/at_focused_annular_array_3D.py)",
34
+ "Bash(KWAVE_DEVICE=cpu uv run python examples/at_linear_array_transducer/at_linear_array_transducer.py)",
35
+ "Bash(KWAVE_DEVICE=cpu uv run python examples/pr_3D_FFT_planar_sensor/pr_3D_FFT_planar_sensor.py)",
36
+ "Bash(KWAVE_DEVICE=cpu uv run python examples/pr_3D_TR_planar_sensor/pr_3D_TR_planar_sensor.py)",
37
+ "Bash(KWAVE_DEVICE=cpu uv run python examples/us_defining_transducer/us_defining_transducer.py)",
38
+ "Bash(KWAVE_DEVICE=cpu uv run python examples/us_beam_patterns/us_beam_patterns.py)",
39
+ "Bash(KWAVE_DEVICE=cpu uv run python examples/us_bmode_phased_array/us_bmode_phased_array.py)",
40
+ "Bash(KWAVE_DEVICE=cpu uv run python examples/checkpointing/checkpoint.py)",
41
+ "Bash(KWAVE_FORCE_CPU=1 uv run python examples/pr_2D_FFT_line_sensor/pr_2D_FFT_line_sensor.py)",
42
+ "mcp__greptile__list_merge_request_comments"
43
+ ]
44
+ }
45
+ }
@@ -0,0 +1 @@
1
+ gitdir: /Users/Walter/git/k-wave-python/.git/worktrees/add-agent-cli
@@ -0,0 +1,29 @@
1
+ # Contributing Guidelines
2
+
3
+ Thanks for your interest in contributing an example to k-wave-python!
4
+
5
+ ## Issues
6
+
7
+ ### Create a new issue
8
+
9
+ If you would like to contribute to this project, search to see if a related issue already exists. If a related issue doesn't exist, you can open a new issue using a relevant issue form.
10
+
11
+ ### Solve an open issue
12
+
13
+ Have a look through our existing issues to find one that interests you.
14
+ You can narrow down the search using labels as filters.
15
+ If you find an issue to work on, you are welcome to open a PR with a fix.
16
+
17
+ ## Make changes
18
+
19
+ Fork k-wave-python and make changes you would like to contribute to your fork.
20
+
21
+ ## Open a Pull-Request
22
+
23
+ * Complete the "Ready for review" template so that we can review your PR. This template helps reviewers understand your changes and the purpose of your pull request.
24
+
25
+ * [Link PR to an issue](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue) if you are solving one.
26
+
27
+ * Don't forget to click the checkbox to [allow maintainer edits](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/allowing-changes-to-a-pull-request-branch-created-from-a-fork) so you PR can be updated before a merge.
28
+
29
+
@@ -0,0 +1,31 @@
1
+ ---
2
+ name: Bug report
3
+ about: Create a report to help us improve
4
+ title: "[BUG]"
5
+ labels: bug
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ **Describe the bug**
11
+ A clear and concise description of what the bug is.
12
+
13
+ **To Reproduce**
14
+ Steps to reproduce the behavior:
15
+ 1. Go to '...'
16
+ 2. Click on '....'
17
+ 3. Scroll down to '....'
18
+ 4. See error
19
+
20
+ **Expected behavior**
21
+ A clear and concise description of what you expected to happen.
22
+
23
+ **Screenshots**
24
+ If applicable, add screenshots to help explain your problem.
25
+
26
+ **Desktop (please complete the following information):**
27
+ - OS: [e.g. Windows/Linux]
28
+ - Version [e.g. 22]
29
+
30
+ **Additional context**
31
+ Add any other context about the problem here.
@@ -0,0 +1,28 @@
1
+ ---
2
+ name: Code Enhancement
3
+ about: Suggest changes to improve code quality, reduce complexity, and increase efficiency
4
+ title: "[ENHANCE] Brief description of enhancement"
5
+ labels: enhancement
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ ## Description of the Enhancement
11
+ Provide a clear and concise description of what you want to happen. Explain the current state and the exact changes.
12
+
13
+ ## Justification for the Enhancement
14
+ <!-- Explain why these changes should be made. How do they benefit the project? -->
15
+ 1. **Reduces Complexity**: Detail how the changes simplify the code, e.g. reducing the number of lines or eliminating redundant functions.
16
+ 2. **Improves Efficiency**: Describe how the changes will enhance performance, e.g. decreasing execution time, or reducing memory consumption.
17
+ 3. **Improve Readability**: Describe how readability benefits from changes.
18
+
19
+ ## Impact of Changes
20
+ <!-- Discuss any possible impacts this change might have on other parts of the project. -->
21
+ List any other components or modules that might be affected by these changes.
22
+
23
+ ## Screenshots/Examples
24
+ <!-- Add screenshot or other means of showing improvement-->
25
+ If applicable, add screenshots, code snippets, or links to help illustrate the enhancement.
26
+
27
+ ## Additional Context
28
+ Add any other context or information about the enhancement here.
@@ -0,0 +1,17 @@
1
+ ---
2
+ name: Example
3
+ about: Request an example to help others get started
4
+ title: "[Example]"
5
+ labels: example
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ **Describe the example**
11
+ What example do you wish was included in k-wave-python? What functionality of principle should it display?
12
+
13
+ **Sources**
14
+ If applicable, add sources of the example from literature or other projects.
15
+
16
+ **Additional context**
17
+ Add any other context about the example here.
@@ -0,0 +1,20 @@
1
+ ---
2
+ name: Feature request
3
+ about: Suggest an idea for this project
4
+ title: '[Feature]'
5
+ labels: enhancement
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ **Is your feature request related to a problem? Please describe.**
11
+ A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12
+
13
+ **Describe the solution you'd like**
14
+ A clear and concise description of what you want to happen.
15
+
16
+ **Describe alternatives you've considered**
17
+ A clear and concise description of any alternative solutions or features you've considered.
18
+
19
+ **Additional context**
20
+ Add any other context or screenshots about the feature request here.
@@ -0,0 +1,5 @@
1
+ coverage:
2
+ status:
3
+ project:
4
+ default:
5
+ threshold: 1%
@@ -0,0 +1,11 @@
1
+ # To get started with Dependabot version updates, you'll need to specify which
2
+ # package ecosystems to update and where the package manifests are located.
3
+ # Please see the documentation for all configuration options:
4
+ # https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
5
+
6
+ version: 2
7
+ updates:
8
+ - package-ecosystem: "pip" # See documentation for possible values
9
+ directory: "/" # Location of package manifests
10
+ schedule:
11
+ interval: "weekly"
@@ -0,0 +1,25 @@
1
+ name: Spell Check
2
+
3
+ on:
4
+ push:
5
+ branches: [ main ]
6
+ pull_request:
7
+ branches: [ main ]
8
+
9
+ jobs:
10
+ spellcheck:
11
+ name: Spell Check
12
+ runs-on: ubuntu-latest
13
+ steps:
14
+ - uses: actions/checkout@v3
15
+
16
+ - name: Set up Python
17
+ uses: actions/setup-python@v4
18
+ with:
19
+ python-version: '3.10'
20
+
21
+ - name: Install codespell
22
+ run: pip install codespell
23
+
24
+ - name: Run codespell
25
+ run: codespell --config .codespellrc
@@ -0,0 +1,35 @@
1
+ name: Markdown Link Validator
2
+
3
+ on:
4
+ pull_request:
5
+ push:
6
+ branches: [ main, master ]
7
+
8
+ jobs:
9
+ linkChecker:
10
+ runs-on: ubuntu-latest
11
+ permissions:
12
+ contents: read
13
+ steps:
14
+ - name: Checkout repository
15
+ uses: actions/checkout@v4
16
+ with:
17
+ fetch-depth: 1
18
+
19
+ - name: Check links with lychee
20
+ # See https://github.com/lycheeverse/lychee-action
21
+ uses: lycheeverse/lychee-action@v2
22
+ with:
23
+ args: >-
24
+ --verbose
25
+ --no-progress
26
+ --max-concurrency 20
27
+ --exclude-path "docs/get_started/legacy_licenses/"
28
+ --exclude-link-local
29
+ --exclude "https://doi.org/"
30
+ --exclude "https://pubs.aip.org"
31
+ --exclude "https://www.gnu.org"
32
+ --exclude "https://fsf.org"
33
+ --exclude "http://www.k-wave.org"
34
+ "**/*.md" "**/*.rst"
35
+ fail: true
@@ -0,0 +1,124 @@
1
+ name: pytest
2
+
3
+ on: [push, pull_request]
4
+
5
+ jobs:
6
+ collect_references:
7
+ name: collect_references
8
+ outputs:
9
+ MATLAB_REFS_HASH: ${{ steps.matlab-refs-hash.outputs.MATLAB_REFS_HASH }}
10
+ runs-on: ubuntu-latest
11
+ steps:
12
+ - name: checkout repository
13
+ uses: actions/checkout@v4
14
+ with:
15
+ path: k-Wave-python
16
+ # Calculate hash value that will be used as a cache key
17
+ - name: Calculate matlab references hash
18
+ id: matlab-refs-hash
19
+ run: |
20
+ MATLAB_REFS_HASH=$(find ./k-Wave-python/tests/matlab_test_data_collectors/matlab_collectors -type f | xargs sha1sum | sha1sum | awk '{ print $1 }');
21
+ echo "MATLAB_REFS_HASH=$MATLAB_REFS_HASH" >> $GITHUB_OUTPUT
22
+ # Pull cache if exists, otherwise cache will be created at the specified path
23
+ - name: Cache collected references
24
+ uses: actions/cache@v3
25
+ id: matlab-refs-cache
26
+ env:
27
+ cache-name: cache-matlab-references
28
+ with:
29
+ key: ${{ steps.matlab-refs-hash.outputs.MATLAB_REFS_HASH }}
30
+ path: ./collectedValues.tar.gz
31
+ - name: Checkout reference k-Wave repo
32
+ uses: actions/checkout@v4
33
+ if: ${{ steps.matlab-refs-cache.outputs.cache-hit != 'true' }}
34
+ with:
35
+ repository: ucl-bug/k-wave
36
+ path: k-wave
37
+ ref: v1.4.0
38
+ - name: setup MATLAB
39
+ uses: matlab-actions/setup-matlab@v1
40
+ if: ${{ steps.matlab-refs-cache.outputs.cache-hit != 'true' }}
41
+ - name: run reference generation
42
+ uses: matlab-actions/run-command@v1
43
+ if: ${{ steps.matlab-refs-cache.outputs.cache-hit != 'true' }}
44
+ with:
45
+ command: |
46
+ ls;
47
+ pwd;
48
+ if exist('k-wave/k-Wave'); ls 'k-wave/k-Wave'; end;
49
+ addpath('k-Wave-python','k-wave/k-Wave');
50
+ cd k-Wave-python/tests/matlab_test_data_collectors;
51
+ run_all_collectors;
52
+ - name: Compress generated references
53
+ uses: a7ul/tar-action@v1.1.0
54
+ if: ${{ steps.matlab-refs-cache.outputs.cache-hit != 'true' }}
55
+ with:
56
+ command: c
57
+ cwd: ./k-Wave-python/tests/matlab_test_data_collectors/matlab_collectors/
58
+ files: |
59
+ ./collectedValues
60
+ outPath: collectedValues.tar.gz
61
+ - name: Upload reference values artifact
62
+ id: artifact-upload-step
63
+ uses: actions/upload-artifact@v4
64
+ with:
65
+ name: matlab_reference_test_values
66
+ path: collectedValues.tar.gz
67
+ # overwrite: true
68
+
69
+ - name: Output artifact URL
70
+ run: echo 'Artifact URL is ${{ steps.artifact-upload-step.outputs.artifact-url }}'
71
+ test:
72
+ needs: collect_references
73
+ strategy:
74
+ matrix:
75
+ os: [ "windows-latest", "ubuntu-latest" , "macos-latest"]
76
+ python-version: [ "3.10", "3.11", "3.12", "3.13" ]
77
+ runs-on: ${{matrix.os}}
78
+ steps:
79
+ - uses: actions/checkout@v4
80
+ # Pull the cache based on the hash value
81
+ - name: Cache collected references
82
+ uses: actions/cache@v3
83
+ id: cache-matlab-refs
84
+ env:
85
+ cache-name: cache-matlab-references
86
+ with:
87
+ key: ${{ needs.collect_references.outputs.MATLAB_REFS_HASH }}
88
+ path: ./collectedValues.tar.gz
89
+ fail-on-cache-miss: true
90
+ enableCrossOsArchive: true
91
+ # Now we have the references archive available in this job, proceed by unpacking it
92
+ - name: unpack collectedValues
93
+ uses: a7ul/tar-action@v1.1.0
94
+ with:
95
+ command: x
96
+ cwd: ./tests/matlab_test_data_collectors/python_testers/
97
+ files: ${{github.workspace}}/collectedValues.tar.gz
98
+ - name: where are the files?
99
+ run: |
100
+ ls ./tests/matlab_test_data_collectors/python_testers/
101
+ - name: Set up Python ${{ matrix.python-version }}
102
+ uses: actions/setup-python@v5
103
+ with:
104
+ python-version: ${{ matrix.python-version }}
105
+ cache: 'pip'
106
+ - name: Install dependencies
107
+ run: |
108
+ pip install '.[test]'
109
+ - name: Test with pytest
110
+ run: |
111
+ coverage run
112
+ - name: Create coverage report
113
+ run: |
114
+ coverage xml
115
+ - name: Upload coverage reports to Codecov
116
+ uses: codecov/codecov-action@v4
117
+ with:
118
+ env_vars: ${{matrix.os}},${{ matrix.python-version }}
119
+ fail_ci_if_error: true
120
+ flags: ${{matrix.os}},${{ matrix.python-version }}
121
+ name: ${{matrix.os}},${{ matrix.python-version }}
122
+ verbose: true
123
+ env:
124
+ CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
@@ -0,0 +1,9 @@
1
+ name: Ruff
2
+ on: [push, pull_request]
3
+ jobs:
4
+ ruff:
5
+ runs-on: ubuntu-latest
6
+ continue-on-error: true
7
+ steps:
8
+ - uses: actions/checkout@v3
9
+ - uses: astral-sh/ruff-action@v1
@@ -0,0 +1,56 @@
1
+ name: Run K-Wave Examples
2
+
3
+ on:
4
+ schedule:
5
+ - cron: '0 0 * * 1' # Every Monday at 00:00 UTC
6
+ workflow_dispatch: # Manual trigger
7
+
8
+ jobs:
9
+ discover-examples:
10
+ runs-on: ubuntu-latest
11
+ outputs:
12
+ example_paths: ${{ steps.find-examples.outputs.examples }}
13
+ steps:
14
+ - uses: actions/checkout@v4
15
+ - id: find-examples
16
+ run: |
17
+ # Find all Python files in examples subdirectories
18
+ EXAMPLES=$(find examples -name "*.py" -not -path "*/\.*" | jq -R -s -c 'split("\n")[:-1]')
19
+ echo "examples=$EXAMPLES" >> "$GITHUB_OUTPUT"
20
+
21
+ run-examples:
22
+ needs: discover-examples
23
+ runs-on: ubuntu-latest
24
+ timeout-minutes: 60 # 1 hour timeout per example
25
+ strategy:
26
+ fail-fast: false # Continue running other examples even if one fails
27
+ matrix:
28
+ example: ${{ fromJson(needs.discover-examples.outputs.example_paths) }}
29
+
30
+ steps:
31
+ - name: Checkout repository
32
+ uses: actions/checkout@v4
33
+
34
+ - name: Install system dependencies
35
+ run: |
36
+ sudo apt-get update
37
+ sudo apt-get install -y ffmpeg
38
+
39
+ - name: Set up Python
40
+ uses: actions/setup-python@v5
41
+ with:
42
+ python-version: '3.10' # Matches requires-python from pyproject.toml
43
+ cache: 'pip'
44
+
45
+ - name: Install dependencies
46
+ run: |
47
+ python -m pip install --upgrade pip
48
+ # Install the package with example dependencies
49
+ pip install -e ".[example]"
50
+
51
+ - name: Run example
52
+ env:
53
+ KWAVE_FORCE_CPU: 1
54
+ run: |
55
+ echo "Running example: ${{ matrix.example }}"
56
+ python "${{ matrix.example }}"
@@ -0,0 +1,29 @@
1
+ name: test_example
2
+
3
+ on: workflow_dispatch # disabled: gdown fails due to Google Drive bot detection
4
+
5
+ jobs:
6
+ test_example:
7
+ strategy:
8
+ matrix:
9
+ os: [ "windows-latest", "ubuntu-latest" , "macos-latest"]
10
+ python-version: [ "3.10", "3.11", "3.12", "3.13" ]
11
+ runs-on: ${{matrix.os}}
12
+ steps:
13
+ - uses: actions/checkout@v4
14
+ - name: Set up Python ${{ matrix.python-version }}
15
+ uses: actions/setup-python@v5
16
+ with:
17
+ python-version: ${{ matrix.python-version }}
18
+ cache: 'pip'
19
+ - name: Install dependencies
20
+ run: |
21
+ pip install -e '.[example]'
22
+ - name: Run example script
23
+ run: |
24
+ python3 examples/us_bmode_linear_transducer/us_bmode_linear_transducer.py
25
+ - name: Upload example results
26
+ uses: actions/upload-artifact@v4
27
+ with:
28
+ name: example_bmode_reconstruction_results_${{ matrix.os }}_${{ matrix.python-version }}
29
+ path: ${{ github.workspace }}/example_bmode.png
@@ -0,0 +1,29 @@
1
+ name: test_optional_requirements
2
+
3
+ on:
4
+ push:
5
+ paths:
6
+ - 'pyproject.toml'
7
+ pull_request:
8
+ paths:
9
+ - 'pyproject.toml'
10
+
11
+ jobs:
12
+ test_install:
13
+ strategy:
14
+ matrix:
15
+ os: [ "windows-latest", "ubuntu-latest" , "macos-latest"]
16
+ python-version: [ "3.10", "3.11", "3.12", "3.13" ]
17
+ extra_requirements: [ "test", "examples", "docs", "dev", "all" ]
18
+ runs-on: ${{matrix.os}}
19
+ steps:
20
+ - uses: actions/checkout@v4
21
+ # Pull the cache based on the hash value
22
+ - name: Set up Python ${{ matrix.python-version }}
23
+ uses: actions/setup-python@v5
24
+ with:
25
+ python-version: ${{ matrix.python-version }}
26
+ cache: 'pip'
27
+ - name: Install dependencies
28
+ run: |
29
+ pip install '.[${{ matrix.extra_requirements }}]'
@@ -0,0 +1,18 @@
1
+ name: test_pages
2
+ on: [push]
3
+
4
+ jobs:
5
+ build:
6
+ runs-on: ubuntu-latest
7
+ steps:
8
+ - uses: actions/checkout@master
9
+ with:
10
+ fetch-depth: 0 # otherwise, you will fail to push refs to dest repo
11
+ - uses: actions/setup-python@v5
12
+ with:
13
+ python-version: '3.10'
14
+ cache: 'pip'
15
+ - name: Build and Commit
16
+ uses: waltsims/pages@pyproject.toml-support
17
+ with:
18
+ pyproject_toml_deps: ".[docs]"
@@ -0,0 +1,20 @@
1
+ # Minimal makefile for Sphinx documentation
2
+ #
3
+
4
+ # You can set these variables from the command line, and also
5
+ # from the environment for the first two.
6
+ SPHINXOPTS ?=
7
+ SPHINXBUILD ?= sphinx-build
8
+ SOURCEDIR = .
9
+ BUILDDIR = _build
10
+
11
+ # Put it first so that "make" without argument is like "make help".
12
+ help:
13
+ @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
14
+
15
+ .PHONY: help Makefile
16
+
17
+ # Catch-all target: route all unknown targets to Sphinx using the new
18
+ # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
19
+ %: Makefile
20
+ @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
@@ -8,7 +8,7 @@
8
8
  This project is a Python implementation of v1.4.0 of the [MATLAB toolbox k-Wave](http://www.k-wave.org/) as well as an
9
9
  interface to the pre-compiled v1.3 of k-Wave simulation binaries, which support NVIDIA sm 5.0 (Maxwell) to sm 9.0a (Hopper) GPUs.
10
10
 
11
- **New in v0.6.0:** Unified `kspaceFirstOrder()` API with a pure NumPy/CuPy solver. See the [API guide](https://k-wave-python.readthedocs.io/en/latest/get_started/new_api.html).
11
+ **New in v0.6.0:** Unified `kspaceFirstOrder()` API with a pure NumPy/CuPy solver. See the [API guide](https://k-wave-python.readthedocs.io/en/latest/get_started/new_api.html). The `kspaceFirstOrder()` API is experimental and may change before v1.0.0.
12
12
 
13
13
  ## Mission
14
14
 
@@ -0,0 +1,101 @@
1
+ # Configuration file for the Sphinx documentation builder.
2
+ #
3
+ # For the full list of built-in configuration values, see the documentation:
4
+ # https://www.sphinx-doc.org/en/master/usage/configuration.html
5
+
6
+ # -- Project information -----------------------------------------------------
7
+ # https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
8
+
9
+ from kwave import __version__
10
+
11
+ project = "k-Wave-python"
12
+ copyright = "2024, Walter Simson, Farid Yagubbayli"
13
+ author = "Walter Simson, Farid Yagubbayli"
14
+ version = __version__
15
+
16
+ # -- General configuration ---------------------------------------------------
17
+ # https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
18
+
19
+ extensions = [
20
+ "sphinx.ext.autodoc",
21
+ "sphinx.ext.githubpages",
22
+ "sphinx_toolbox.code",
23
+ "sphinx_copybutton",
24
+ "sphinx.ext.coverage",
25
+ "sphinx.ext.napoleon",
26
+ "sphinx.ext.viewcode",
27
+ "sphinx_mdinclude",
28
+ "sphinx.ext.extlinks", # Enables :ghfile: external links
29
+ ]
30
+
31
+ # Provide a simple GitHub branch/sha fallback for linking to example files.
32
+ # Priority: explicit override via _GITHUB_BRANCH →
33
+ # READTHEDOCS_GIT_IDENTIFIER (commit) →
34
+ # READTHEDOCS_GIT_BRANCH / GITHUB_REF_NAME →
35
+ # "master".
36
+ import os
37
+
38
+
39
+ def _detect_current_branch() -> str:
40
+ """Return a branch/commit identifier for GitHub links with minimal logic.
41
+
42
+ Order: _GITHUB_BRANCH override → READTHEDOCS_GIT_IDENTIFIER (commit) →
43
+ READTHEDOCS_GIT_BRANCH / GITHUB_REF_NAME → "master".
44
+ """
45
+ return (
46
+ os.getenv("_GITHUB_BRANCH")
47
+ or os.getenv("READTHEDOCS_GIT_IDENTIFIER")
48
+ or os.getenv("READTHEDOCS_GIT_BRANCH")
49
+ or os.getenv("GITHUB_REF_NAME")
50
+ or "master"
51
+ )
52
+
53
+
54
+ _GITHUB_BRANCH = _detect_current_branch()
55
+
56
+ # Define an extlink so we can write :ghfile:`examples/foo.py` in .rst/.md
57
+ extlinks = {
58
+ "ghfile": (
59
+ f"https://github.com/waltsims/k-wave-python/blob/{_GITHUB_BRANCH}/%s",
60
+ "%s", # pass-through caption
61
+ ),
62
+ "ghdir": (
63
+ f"https://github.com/waltsims/k-wave-python/tree/{_GITHUB_BRANCH}/%s",
64
+ "%s",
65
+ ),
66
+ }
67
+
68
+ source_suffix = [".rst", ".md"]
69
+ templates_path = ["_templates"]
70
+ exclude_patterns = ["README.md", "_build", "Thumbs.db", ".DS_Store"]
71
+
72
+ language = "en"
73
+
74
+ # -- Options for HTML output -------------------------------------------------
75
+ # https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output
76
+ html_theme = "furo"
77
+ html_theme_options = {
78
+ "source_repository": "https://github.com/waltsims/k-wave-python",
79
+ "source_branch": _GITHUB_BRANCH,
80
+ "source_directory": "docs/",
81
+ }
82
+
83
+ html_static_path = ["_static"]
84
+
85
+ # -- Options for todo extension ----------------------------------------------
86
+ # https://www.sphinx-doc.org/en/master/usage/extensions/todo.html#configuration
87
+
88
+ todo_include_todos = True
89
+
90
+ # -- Options for autodoc ----------------------------------------------------
91
+ # https://www.sphinx-doc.org/en/master/usage/extensions/autodoc.html#configuration
92
+
93
+ # Automatically extract typehints when specified and place them in
94
+ # descriptions of the relevant function/method.
95
+ autodoc_typehints = "description"
96
+
97
+ # Don't show class signature with the class' name.
98
+ autodoc_class_signature = "separated"
99
+
100
+ # Remove module name from object names
101
+ add_module_names = False