Skip to content

Developer's notes

nkrah edited this page Dec 22, 2023 · 32 revisions

Current (priority)

  • next priority: refactor engines/managers
  • (now): volume consolidation. #288
  • (now): Simulation as a json file (geometry and physics only) #281
  • (now): Volume refactoring #250

Next steps:

  • visualisation of voxelized volume with 3D slices
  • materials issue #282
  • Refactor sources
  • Refactor actors
  • Dose actor revisited:
    • MT with lock (array of lock?), or semaphore?(checked: not good for protecting shared resources) or one dose map per thread (+merge)? NK: I would look into the « combinable » class from the TBB library. Seems quite spot on for us.
    • inheritance: DoseActor LETActor FluenceActor etc
  • Notes on MT/images:
  • Update MT with windows(wait PR json)
  • Consolidate: Simulation user API and rename geometry_manager
  • Retrieving repeated volumes of detailed information (position etc), once built. Important for PET design
  • Consolidate subprocess system: handle subprocessing in Simulation class (rather than engine)
  • Material manager: unified way to create/read/define materials
  • dynamic #319

Consolidate refactored volumes

  • remove unnecessary warning in RepeatParametrisedVolume (issue #279)
  • in ImageVolume: dump also sorted LUT if a label image is requested so the user can associate labels and materials.
  • option in ImageVolume to assign origin and rotation in an inout image as translation and rotation to the ImageVolume object
  • Check and improve RepeatParametrisedVolume
  • The repeat_ring helper function is somewhat unintuitive, in particular the translation parameter which is applied to the first repetition. Would it not be more intuitive to define the ring's center and the distance to the rotation axis?
  • The "translation" parameter in the context of repeated volumes should be renamed because it interferes with the common parameter "translation" of volumes. Something like "spacing" would be better I think. REPETITION GROUP
  • Similarly, the "offset" and "offset_nb" parameters are strange. In my understanding, this is more like a nested repetition, or block repetition. In that case, the name might be revisited. To be checked.
  • SolidBase.get_solid_info() should better be a property rather than a method
  • Fix wrong wiggly lines under attributes in pyCharm

Needed for first non-beta version:

  • visualization of voxelized volumes
  • engine structure: separate from managers
  • refactored actors and sources
  • full json dump
  • complete Windows version, including MT
  • User guide