fullwave25 1.2.6.dev6__tar.gz → 1.2.6.dev7__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 (75) hide show
  1. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/.bumpversion.toml +1 -1
  2. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/PKG-INFO +1 -1
  3. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/fullwave/__init__.py +1 -1
  4. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/fullwave/solver/solver.py +20 -0
  5. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/pyproject.toml +1 -1
  6. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/uv.lock +1 -1
  7. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/.gitignore +0 -0
  8. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/.pre-commit-config.yaml +0 -0
  9. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/.python-version +0 -0
  10. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/20260120_0844.log +0 -0
  11. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/CITATION.cff +0 -0
  12. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/CLAUDE.md +0 -0
  13. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/CONTRIBUTING.md +0 -0
  14. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/LICENSE +0 -0
  15. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/Makefile +0 -0
  16. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/README.md +0 -0
  17. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/beamformer.m +0 -0
  18. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/debug_solver_bin/fullwave2_2d_2_relax_multi_gpu_cuda124 +0 -0
  19. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/debug_solver_bin/fullwave2_2d_exponential_attenuation_multi_gpu +0 -0
  20. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/debug_solver_bin/fullwave2_2d_exponential_attenuation_multi_gpu_cuda124 +0 -0
  21. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/debug_solver_bin/fullwave2_2d_exponential_attenuation_multi_gpu_cuda124_ +0 -0
  22. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/debug_solver_bin/fullwave2_3d_exponential_attenuation_multi_gpu_cuda124 +0 -0
  23. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/debug_solver_bin/fullwave2_3d_exponential_attenuation_multi_gpu_cuda124_ +0 -0
  24. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/experiments/__init__.py +0 -0
  25. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/experiments/exp_scatterer_diameter.py +0 -0
  26. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/fullwave/beamformer/__init__.py +0 -0
  27. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/fullwave/beamformer/beamformer.py +0 -0
  28. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/fullwave/constants/__init__.py +0 -0
  29. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/fullwave/constants/material_properties.py +0 -0
  30. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/fullwave/grid.py +0 -0
  31. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/fullwave/medium.py +0 -0
  32. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/fullwave/medium_builder/__init__.py +0 -0
  33. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/fullwave/medium_builder/domain.py +0 -0
  34. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/fullwave/medium_builder/medium_builder.py +0 -0
  35. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/fullwave/medium_builder/presets/__init__.py +0 -0
  36. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/fullwave/medium_builder/presets/data/.keep +0 -0
  37. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/fullwave/medium_builder/presets/data/abdominal_wall/i2365f_etfw1.mat +0 -0
  38. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/fullwave/medium_builder/presets/domain_abdominal_wall.py +0 -0
  39. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/fullwave/medium_builder/presets/domain_background.py +0 -0
  40. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/fullwave/medium_builder/presets/domain_scatterer.py +0 -0
  41. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/fullwave/medium_builder/presets/domain_simple.py +0 -0
  42. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/fullwave/medium_builder/presets/domain_water_gel.py +0 -0
  43. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/fullwave/sensor.py +0 -0
  44. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/fullwave/solver/__init__.py +0 -0
  45. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/fullwave/solver/binary_manager.py +0 -0
  46. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/fullwave/solver/bins/_gpu/2d/num_relax=2/fullwave2_2d_2_relax_multi_gpu_cuda118 +0 -0
  47. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/fullwave/solver/bins/_gpu/2d/num_relax=2/fullwave2_2d_2_relax_multi_gpu_cuda124 +0 -0
  48. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/fullwave/solver/bins/_gpu/2d/num_relax=2/fullwave2_2d_2_relax_multi_gpu_cuda129 +0 -0
  49. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/fullwave/solver/bins/_gpu/2d/num_relax=2/fullwave2_2d_2_relax_multi_gpu_cuda130 +0 -0
  50. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/fullwave/solver/bins/_gpu/3d/num_relax=2/fullwave2_3d_2_relax_multi_gpu_cuda118 +0 -0
  51. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/fullwave/solver/bins/_gpu/3d/num_relax=2/fullwave2_3d_2_relax_multi_gpu_cuda124 +0 -0
  52. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/fullwave/solver/bins/_gpu/3d/num_relax=2/fullwave2_3d_2_relax_multi_gpu_cuda129 +0 -0
  53. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/fullwave/solver/bins/_gpu/3d/num_relax=2/fullwave2_3d_2_relax_multi_gpu_cuda130 +0 -0
  54. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/fullwave/solver/bins/database/relaxation_params_database_num_relax=2_20260113_0957.mat +0 -0
  55. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/fullwave/solver/cuda_utils.py +0 -0
  56. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/fullwave/solver/input_file_writer.py +0 -0
  57. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/fullwave/solver/launcher.py +0 -0
  58. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/fullwave/solver/pml_builder.py +0 -0
  59. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/fullwave/solver/utils.py +0 -0
  60. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/fullwave/source.py +0 -0
  61. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/fullwave/transducer.py +0 -0
  62. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/fullwave/utils/__init__.py +0 -0
  63. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/fullwave/utils/check_functions.py +0 -0
  64. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/fullwave/utils/coordinates.py +0 -0
  65. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/fullwave/utils/memory_tempfile.py +0 -0
  66. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/fullwave/utils/numerical.py +0 -0
  67. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/fullwave/utils/plot_utils.py +0 -0
  68. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/fullwave/utils/pulse.py +0 -0
  69. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/fullwave/utils/relaxation_parameters.py +0 -0
  70. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/fullwave/utils/scatterer.py +0 -0
  71. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/fullwave/utils/signal_filter.py +0 -0
  72. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/fullwave/utils/signal_process.py +0 -0
  73. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/ruff.log +0 -0
  74. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/ruff.toml +0 -0
  75. {fullwave25-1.2.6.dev6 → fullwave25-1.2.6.dev7}/signal_filter_example.png +0 -0
@@ -1,5 +1,5 @@
1
1
  [tool.bumpversion]
2
- current_version = "1.2.6-dev6"
2
+ current_version = "1.2.6-dev7"
3
3
  parse = """(?x)
4
4
  (?P<major>0|[1-9]\\d*)\\.
5
5
  (?P<minor>0|[1-9]\\d*)\\.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fullwave25
3
- Version: 1.2.6.dev6
3
+ Version: 1.2.6.dev7
4
4
  Summary: Fullwave 2.5: Ultrasound wave propagation simulation with heterogeneous power law attenuation modelling capabilities
5
5
  Author: Masashi Sode, Gianmarco Pinton
6
6
  Maintainer: Masashi Sode
@@ -60,7 +60,7 @@ try:
60
60
  __version__ = version("fullwave")
61
61
  except PackageNotFoundError:
62
62
  # Update via bump-my-version, not manually
63
- __version__ = "1.2.6-dev6"
63
+ __version__ = "1.2.6-dev7"
64
64
 
65
65
  VERSION = __version__ # for convenience
66
66
  logger.info("Fullwave version: %s", __version__)
@@ -1,5 +1,6 @@
1
1
  """solver module."""
2
2
 
3
+ import gc
3
4
  import logging
4
5
  import time
5
6
  from pathlib import Path
@@ -594,6 +595,24 @@ class Solver:
594
595
  use_gpu=use_gpu_pml,
595
596
  )
596
597
 
598
+ @staticmethod
599
+ def _release_gpu_memory_pools() -> None:
600
+ """Release all CuPy GPU memory pool blocks back to CUDA.
601
+
602
+ Call ``gc.collect()`` first so that Python releases references to
603
+ CuPy arrays, then drain both the device and pinned memory pools.
604
+ This prevents stale allocations from causing memory pressure when
605
+ subsequent operations allocate large GPU arrays.
606
+ """
607
+ gc.collect()
608
+ try:
609
+ import cupy as cp # noqa: PLC0415
610
+
611
+ cp.get_default_memory_pool().free_all_blocks()
612
+ cp.get_default_pinned_memory_pool().free_all_blocks()
613
+ except ImportError:
614
+ pass
615
+
597
616
  @staticmethod
598
617
  def _check_input(
599
618
  grid: fullwave.Grid,
@@ -966,6 +985,7 @@ class Solver:
966
985
  "Input data generation completed in %s. Skipping simulation execution.",
967
986
  simulation_dir,
968
987
  )
988
+ self._release_gpu_memory_pools()
969
989
  return simulation_dir
970
990
 
971
991
  sim_result = self.fullwave_launcher.run(
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "fullwave25"
3
- version = "1.2.6-dev6" # Update via bump-my-version, not manually
3
+ version = "1.2.6-dev7" # Update via bump-my-version, not manually
4
4
  description = "Fullwave 2.5: Ultrasound wave propagation simulation with heterogeneous power law attenuation modelling capabilities"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.10"
@@ -735,7 +735,7 @@ wheels = [
735
735
 
736
736
  [[package]]
737
737
  name = "fullwave25"
738
- version = "1.2.6.dev6"
738
+ version = "1.2.6.dev7"
739
739
  source = { editable = "." }
740
740
  dependencies = [
741
741
  { name = "matplotlib" },
File without changes