Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -157,3 +157,6 @@ dmypy.json
# numpy files
*npy
/.mailmap

# Data
data/
24 changes: 24 additions & 0 deletions docs/source/simpa.core.simulation_modules.acoustic_module.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
acoustic\_module
=======================================================

.. automodule:: simpa.core.simulation_modules.acoustic_module
:members:
:undoc-members:
:show-inheritance:

.. automodule:: simpa.core.simulation_modules.acoustic_module.acoustic_adapter_base
:members:
:undoc-members:
:show-inheritance:


.. automodule:: simpa.core.simulation_modules.acoustic_module.acoustic_test_adapter
:members:
:undoc-members:
:show-inheritance:


.. automodule:: simpa.core.simulation_modules.acoustic_module.k_wave_adapter
:members:
:undoc-members:
:show-inheritance:
30 changes: 30 additions & 0 deletions docs/source/simpa.core.simulation_modules.optical_module.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
optical\_module
======================================================

.. automodule:: simpa.core.simulation_modules.optical_module
:members:
:undoc-members:
:show-inheritance:

.. automodule:: simpa.core.simulation_modules.optical_module.mcx_adapter
:members:
:undoc-members:
:show-inheritance:


.. automodule:: simpa.core.simulation_modules.optical_module.mcx_reflectance_adapter
:members:
:undoc-members:
:show-inheritance:


.. automodule:: simpa.core.simulation_modules.optical_module.optical_adapter_base
:members:
:undoc-members:
:show-inheritance:


.. automodule:: simpa.core.simulation_modules.optical_module.optical_test_adapter
:members:
:undoc-members:
:show-inheritance:
25 changes: 13 additions & 12 deletions docs/source/simpa_examples.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,16 @@ simpa\_examples
.. toctree::
:maxdepth: 2

create_a_custom_digital_device_twin
create_custom_tissues
linear_unmixing
minimal_optical_simulation
minimal_optical_simulation_heterogeneous_tissue
minimal_optical_simulation_uniform_cube
msot_invision_simulation
optical_and_acoustic_simulation
perform_image_reconstruction
perform_iterative_qPAI_reconstruction
segmentation_loader
three_vs_two_dimensional_simulation_example
simpa_examples\__init__
simpa_examples\create_a_custom_digital_device_twin
simpa_examples\create_custom_tissues
simpa_examples\linear_unmixing
simpa_examples\minimal_optical_simulation
simpa_examples\minimal_optical_simulation_heterogeneous_tissue
simpa_examples\minimal_optical_simulation_uniform_cube
simpa_examples\msot_invision_simulation
simpa_examples\optical_and_acoustic_simulation
simpa_examples\perform_image_reconstruction
simpa_examples\perform_iterative_qPAI_reconstruction
simpa_examples\segmentation_loader
simpa_examples\three_vs_two_dimensional_simulation_example
7 changes: 7 additions & 0 deletions docs/source/simpa_examples/__init__.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
simpa_examples\__init__
=========================================

.. literalinclude:: ../../simpa_examples/simpa_examples\__init__.py
:language: python
:lines: 1-

Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
simpa_examples\create_a_custom_digital_device_twin
=========================================

.. literalinclude:: ../../simpa_examples/simpa_examples\create_a_custom_digital_device_twin.py
:language: python
:lines: 1-

7 changes: 7 additions & 0 deletions docs/source/simpa_examples/create_custom_tissues.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
simpa_examples\create_custom_tissues
=========================================

.. literalinclude:: ../../simpa_examples/simpa_examples\create_custom_tissues.py
:language: python
:lines: 1-

7 changes: 7 additions & 0 deletions docs/source/simpa_examples/linear_unmixing.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
simpa_examples\linear_unmixing
=========================================

.. literalinclude:: ../../simpa_examples/simpa_examples\linear_unmixing.py
:language: python
:lines: 1-

7 changes: 7 additions & 0 deletions docs/source/simpa_examples/minimal_optical_simulation.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
simpa_examples\minimal_optical_simulation
=========================================

.. literalinclude:: ../../simpa_examples/simpa_examples\minimal_optical_simulation.py
:language: python
:lines: 1-

Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
simpa_examples\minimal_optical_simulation_heterogeneous_tissue
=========================================

.. literalinclude:: ../../simpa_examples/simpa_examples\minimal_optical_simulation_heterogeneous_tissue.py
:language: python
:lines: 1-

Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
simpa_examples\minimal_optical_simulation_uniform_cube
=========================================

.. literalinclude:: ../../simpa_examples/simpa_examples\minimal_optical_simulation_uniform_cube.py
:language: python
:lines: 1-

7 changes: 7 additions & 0 deletions docs/source/simpa_examples/msot_invision_simulation.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
simpa_examples\msot_invision_simulation
=========================================

.. literalinclude:: ../../simpa_examples/simpa_examples\msot_invision_simulation.py
:language: python
:lines: 1-

Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
simpa_examples\optical_and_acoustic_simulation
=========================================

.. literalinclude:: ../../simpa_examples/simpa_examples\optical_and_acoustic_simulation.py
:language: python
:lines: 1-

7 changes: 7 additions & 0 deletions docs/source/simpa_examples/perform_image_reconstruction.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
simpa_examples\perform_image_reconstruction
=========================================

.. literalinclude:: ../../simpa_examples/simpa_examples\perform_image_reconstruction.py
:language: python
:lines: 1-

Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
simpa_examples\perform_iterative_qPAI_reconstruction
=========================================

.. literalinclude:: ../../simpa_examples/simpa_examples\perform_iterative_qPAI_reconstruction.py
:language: python
:lines: 1-

7 changes: 7 additions & 0 deletions docs/source/simpa_examples/segmentation_loader.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
simpa_examples\segmentation_loader
=========================================

.. literalinclude:: ../../simpa_examples/simpa_examples\segmentation_loader.py
:language: python
:lines: 1-

Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
simpa_examples\three_vs_two_dimensional_simulation_example
=========================================

.. literalinclude:: ../../simpa_examples/simpa_examples\three_vs_two_dimensional_simulation_example.py
:language: python
:lines: 1-

Original file line number Diff line number Diff line change
Expand Up @@ -67,8 +67,8 @@ def run(self, device: Union[IlluminationGeometryBase, PhotoacousticDevice]) -> N

file_path = self.global_settings[Tags.SIMPA_OUTPUT_FILE_PATH]
wl = self.global_settings[Tags.WAVELENGTH]
wl_str = str(wl)

wl_str = str(wl)
absorption = load_data_field(file_path, Tags.DATA_FIELD_ABSORPTION_PER_CM, wl_str)
scattering = load_data_field(file_path, Tags.DATA_FIELD_SCATTERING_PER_CM, wl_str)
anisotropy = load_data_field(file_path, Tags.DATA_FIELD_ANISOTROPY, wl_str)
Expand All @@ -92,23 +92,29 @@ def run(self, device: Union[IlluminationGeometryBase, PhotoacousticDevice]) -> N
assert_array_well_defined(fluence, assume_non_negativity=True, array_name="fluence")

if Tags.LASER_PULSE_ENERGY_IN_MILLIJOULE in self.component_settings:
laser_energies = self.component_settings[Tags.LASER_PULSE_ENERGY_IN_MILLIJOULE]

if type(laser_energies) in (list, range, tuple, np.ndarray):

list_laser_energies = list(laser_energies)
wls = self.global_settings[Tags.WAVELENGTHS]

if len(list_laser_energies) != len(wls):
raise ValueError(
"The wavelength dependant laser energies need to have compatible dimension \
with the wavelengths.")
else:
laser_energy = laser_energies[wls.index(wl)]

elif type(laser_energies) in (float, int, np.integer):
laser_energy = laser_energies

units = Tags.UNITS_PRESSURE
# Initial pressure should be given in units of Pascale
conversion_factor = 1e6 # 1 J/cm^3 = 10^6 N/m^2 = 10^6 Pa
initial_pressure = (absorption * fluence * gruneisen_parameter * (laser_energy / 1000)
* conversion_factor)

energy_setting = self.component_settings[Tags.LASER_PULSE_ENERGY_IN_MILLIJOULE]
if np.isscalar(energy_setting):
energy_mJ = float(energy_setting)
else:
energies = list(energy_setting)
wavelengths = self.global_settings[Tags.WAVELENGTHS]
if len(energies) != len(wavelengths):
raise ValueError("Length of LASER_PULSE_ENERGY_IN_MILLIJOULE must be equal to number of wavelengths.")
idx = list(wavelengths).index(wl)
energy_mJ = float(energies[idx])

initial_pressure = (absorption * fluence * gruneisen_parameter *
(energy_mJ / 1000.0) * conversion_factor)
else:
units = Tags.UNITS_ARBITRARY
initial_pressure = absorption * fluence
Expand Down
4 changes: 3 additions & 1 deletion simpa/utils/tags.py
Original file line number Diff line number Diff line change
Expand Up @@ -374,7 +374,9 @@ class Tags:
LASER_PULSE_ENERGY_IN_MILLIJOULE = ("laser_pulse_energy_in_millijoule", (int, np.integer, float, list,
range, tuple, np.ndarray))
"""
Laser pulse energy used in the optical simulation. Can be an iterable if energy varies with wavelength.\n
Laser pulse energy used in the optical simulation. If it is considered wavelength dependant, should be
an iterable compatible with the size of the wavelength list. \n

Usage: module optical_simulation_module
"""

Expand Down
22 changes: 22 additions & 0 deletions simpa_examples/benchmarking/benchmarking_mean.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
| Example | Spacing | MEMORY_mean | MEMORY_std | TIME_mean | TIME_std |
|:----------------------------------------------------------------------------------------------------------------|----------:|--------------:|-------------:|------------:|-----------:|
| File: C:\Users\jeremie.gillet\Desktop\T417\simpa\simpa_examples\minimal_optical_simulation | 0.2 | nan | nan | 19107.2 | nan |
| File: C:\Users\jeremie.gillet\Desktop\T417\simpa\simpa_examples\minimal_optical_simulation | 0.25 | nan | nan | 9383.2 | nan |
| File: C:\Users\jeremie.gillet\Desktop\T417\simpa\simpa_examples\minimal_optical_simulation_uniform_cube | 0.2 | nan | nan | 12850.5 | nan |
| File: C:\Users\jeremie.gillet\Desktop\T417\simpa\simpa_examples\minimal_optical_simulation_uniform_cube | 0.25 | nan | nan | 6496.2 | nan |
| File: C:\Users\jeremie.gillet\Desktop\T417\simpa\simpa_examples\optical_and_acoustic_simulation | 0.2 | nan | nan | 60223.9 | nan |
| File: C:\Users\jeremie.gillet\Desktop\T417\simpa\simpa_examples\optical_and_acoustic_simulation | 0.25 | nan | nan | 39334.8 | nan |
| File: C:\Users\jeremie.gillet\Desktop\T417\simpa\simpa_examples\segmentation_loader | 0.2 | nan | nan | 11956.5 | nan |
| File: C:\Users\jeremie.gillet\Desktop\T417\simpa\simpa_examples\segmentation_loader | 0.25 | nan | nan | 7739.1 | nan |
| File: C:\Users\jeremie.gillet\Desktop\T417\simpa\simpa_examples\three_vs_two_dimensional_simulation_example | 0.2 | nan | nan | 172377 | nan |
| File: C:\Users\jeremie.gillet\Desktop\T417\simpa\simpa_examples\three_vs_two_dimensional_simulation_example | 0.25 | nan | nan | 85203.1 | nan |
| Filename: C:\Users\jeremie.gillet\Desktop\T417\simpa\simpa_examples\minimal_optical_simulation | 0.2 | 419.1 | nan | nan | nan |
| Filename: C:\Users\jeremie.gillet\Desktop\T417\simpa\simpa_examples\minimal_optical_simulation | 0.25 | 224.5 | nan | nan | nan |
| Filename: C:\Users\jeremie.gillet\Desktop\T417\simpa\simpa_examples\minimal_optical_simulation_uniform_cube | 0.2 | -43.7 | nan | nan | nan |
| Filename: C:\Users\jeremie.gillet\Desktop\T417\simpa\simpa_examples\minimal_optical_simulation_uniform_cube | 0.25 | 24.1 | nan | nan | nan |
| Filename: C:\Users\jeremie.gillet\Desktop\T417\simpa\simpa_examples\optical_and_acoustic_simulation | 0.2 | 4.9 | nan | nan | nan |
| Filename: C:\Users\jeremie.gillet\Desktop\T417\simpa\simpa_examples\optical_and_acoustic_simulation | 0.25 | -15.5 | nan | nan | nan |
| Filename: C:\Users\jeremie.gillet\Desktop\T417\simpa\simpa_examples\segmentation_loader | 0.2 | 153.8 | nan | nan | nan |
| Filename: C:\Users\jeremie.gillet\Desktop\T417\simpa\simpa_examples\segmentation_loader | 0.25 | 85 | nan | nan | nan |
| Filename: C:\Users\jeremie.gillet\Desktop\T417\simpa\simpa_examples\three_vs_two_dimensional_simulation_example | 0.2 | -132.1 | nan | nan | nan |
| Filename: C:\Users\jeremie.gillet\Desktop\T417\simpa\simpa_examples\three_vs_two_dimensional_simulation_example | 0.25 | -29.8 | nan | nan | nan |
Loading