signedMCRT
main
Source Files
Modules
Procedures
Abstract Interfaces
Derived Types
Program
todos
main
todos
main
todos
config
TODOs
List of ToDo's for SignedMCRT.
Additional Features
Finished Features
Make CI run tests
Add Code Coverage reports
Remove spurious implicit nones
Make sure all optical properties are the same for a model instance (SDF)
[x] Add "Scattering" kernels
path length counter method
Weight method
[x] Add documentation on piecewise
Constant
1D
2D
[x] Finish new SDF API
add all SDFs
add adjustment functions (twist, union etc)
propagate to subs.f90
Minor Features
Add more saved state to photon_origin to save compute time
[ ] Finish Circular, focus, and annulus source types
Circular
Focus
Annulus. Partially done via control of Beta parameter.
[ ] Add Direction component to rest of Detectors
Circle
Camera
Annulus
[ ] Add photon trajectory history tracking
Add to each detector separately
Fix openMP troubles
Fix speed issues
Major Features
Make code work on Windows
Automate benchmarking so we can catch performance regressions
Add voxel geometry
Add mesh geometry
Improve performance of SDF intersection
[ ] Make code serializable so that we can checkpoint simulations
Save input toml file
photons run
[ ] Save output data
Detectors
Fluence
Absorb
NScatt
Add optics to Camera type
[x] Add phase tracking (https://github.com/lewisfish/signedMCRT/pull/2).
Add phase screen detector to camera
Add refractive index accounting
Compress output data (https://github.com/aras-p/float_compr_tester/blob/main/src/compression_helpers.cpp)
Add more error handling for spectrums in parse.f90
[ ] Add optical property type, to allow for multi-spectral input.
[x] base optical property type
function defined
Tabulated
propagate to SDFs
propagate to subs.f90
Document optical properties
Change API to match that of SDFs, i.e easier to use
Add MPI + openMP mode (e.g. run openMP on N nodes with minimal communication)
Testing
Vec3 class
Matrix class
Vec4 Class
[ ] SDF Class
Helpers
Modifiers
Base
Shapes
[x] Detector Class
Circle
Camera
Annulus
Surfaces
Grid
Optical Properties
[ ] Photon class
Uniform
Point
Pencil
Circular
Annulus
Scattering
Isotropic
Henyey-Greenstein
Importance sampling biased scattering
Photon movement code
History Stack Class
I/O
Random Numbers
[x] Fresnel reflections
Simple reflect
Simple refract
Complex reflect
Complex refract
[ ] End to End tests
Scattering Test
Others
[ ] test phase
double slit
square aperture
gaussian beam
bessel beam
Bugs
[ ] Fix CI so that build on Macos run, and builds using Intel run.
Macos
Intel
[ ] Can't operate trackHistory in parallel
Make each thread write to tmp file and finish method collate results
Added default array option to get_vector in parse.f90