Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Boundary conditions #56

Merged
merged 17 commits into from
Aug 16, 2024
Merged

Boundary conditions #56

merged 17 commits into from
Aug 16, 2024

Commits on Feb 21, 2024

  1. Initial implementation of boundary condition struct.

    - Added structs for Boundary, BoundaryCondition, BoundaryDirection.
    - Added handling of grid boundary hitting event.
    - Added hard-coded default behaviour to all engines.
    sammorrell committed Feb 21, 2024
    Configuration menu
    Copy the full SHA
    34f9318 View commit details
    Browse the repository at this point in the history

Commits on Apr 16, 2024

  1. Initial integration of boundary condition into MCRT

    - Improvement of boundary condition structs to work with MCRT.
    - Fixed bug where boundary hit finding would not be tolerant of rounding.
    - Integration of boundary condition into engines and MCRT main.
    - Added supporting ray-plane intersect function to support changes.
    - Removed dependence of engine and travel upon output grid that stretches across whole domain. Making way for more flexible output in the future.
    sammorrell committed Apr 16, 2024
    Configuration menu
    Copy the full SHA
    1b7921d View commit details
    Browse the repository at this point in the history

Commits on Apr 18, 2024

  1. Configuration menu
    Copy the full SHA
    fa9c6cd View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    59c4f43 View commit details
    Browse the repository at this point in the history

Commits on Aug 1, 2024

  1. Added new output types

    - Started refactor of output with new `io` module.
    - Added volume output + tests.
    - Added plane output + tests.
    sammorrell committed Aug 1, 2024
    Configuration menu
    Copy the full SHA
    5edde8e View commit details
    Browse the repository at this point in the history

Commits on Aug 13, 2024

  1. Moved Photon collector to io::output.

    It makes more sense for the `PhotonCollector` struct to be contained in
    the output module, so I have moved it there. I have changed references in
    the code to point to this new location.
    sammorrell committed Aug 13, 2024
    Configuration menu
    Copy the full SHA
    a1f0558 View commit details
    Browse the repository at this point in the history
  2. Added Output struct in io::output.

    This struct is intended as the new central object containing all of the
    output code for `mcrt`. It contains all of the other outputs. I am in the
    process of refactoring all of the output structs to work with this.
    
    - Added `Output` struct.
    - Added builder structs which support deserialisation from JSON to allow init from config.
    - Added supporting structs around output types to deserialise / integrate.
    sammorrell committed Aug 13, 2024
    Configuration menu
    Copy the full SHA
    dbfc01a View commit details
    Browse the repository at this point in the history

Commits on Aug 14, 2024

  1. Added first implementation of new output and builder.

    - Output struct in `io` module now implemented.
    - Added Builder structure to deserialise and build Output.
    - Added supporting deserialisation, config and builder structs for output types.
    - Added voxel distance calculation to output volume to support next steps.
    - Added `OutputRegistry` to support output linking.
    sammorrell committed Aug 14, 2024
    Configuration menu
    Copy the full SHA
    660c22a View commit details
    Browse the repository at this point in the history
  2. Added output section to parameters input.

    This now means that the output parameters can be read in as part of the
    main JSON5 input for the MCRT software. I had added a redirect here, so
    it can be included either in the same file, or separate. Also added
    output section to display.
    sammorrell committed Aug 14, 2024
    Configuration menu
    Copy the full SHA
    f57a8be View commit details
    Browse the repository at this point in the history
  3. Fixed Output voxel_dist function.

    This function was previously using an invalid min finding iter-chain. It
    also now sensibly returns f64::INFINITY instead of a None in the case of
    distance to a voxel being None (no voxel boundaries in path of packet).
    sammorrell committed Aug 14, 2024
    Configuration menu
    Copy the full SHA
    c59df61 View commit details
    Browse the repository at this point in the history
  4. Starting integration of new Output object into MCRT

    This commit adds new the new Output struct to the MCRT executable. Including
    implementing new types throughout the code and integrating into existing
    code.
    
    Some more specific comments on changes:
    - Modified engines and `travel` implementation to output into new objects.
    - Modified `mcrt` exec to use new output object.
    - Added extra implementations to clone output.
    - Added placeholder implementations of `Save` for `Output`.
    sammorrell committed Aug 14, 2024
    Configuration menu
    Copy the full SHA
    64e8a8a View commit details
    Browse the repository at this point in the history
  5. Fixed large grid unit tests.

    These grids were too large and wouldn't compile on a computer with less
    RAM. I hadn't forgotten to change this back.
    sammorrell committed Aug 14, 2024
    Configuration menu
    Copy the full SHA
    33754c9 View commit details
    Browse the repository at this point in the history

Commits on Aug 15, 2024

  1. First working version with implementation tests.

    - Added saving to new `Output` struct.
    - Added saving to output plane struct.
    - Converted voxel distance measurement in engines to new system.
    - Fixed bug where killed photons would continue to propagate in all engines.
    sammorrell committed Aug 15, 2024
    Configuration menu
    Copy the full SHA
    242e7d8 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    dc97b55 View commit details
    Browse the repository at this point in the history
  3. Added Display impl for Output and OutputConfig.

    - Added Display implementations for supporting structs.
    - Fixed some warnings, mainly due to unneeded imports.
    sammorrell committed Aug 15, 2024
    Configuration menu
    Copy the full SHA
    7c9bcc2 View commit details
    Browse the repository at this point in the history
  4. Added boundary conditions config to MCRT.

    Removed the grid config and replaced with the boundary conditions. Many
    changes to support these changes. Added structs and types to support deserialisation
    and building. Integrated into the MCRT binary.
    
    Note, this commit breaks the fluorescence engine, but I think we can work around this.
    sammorrell committed Aug 15, 2024
    Configuration menu
    Copy the full SHA
    b871441 View commit details
    Browse the repository at this point in the history
  5. Added potential fix for shift map indexing in fluorescence engine.

    The removal of the `grid` parameter also removed access to a consistent
    measurement grid over which to index into the shifts map in the fluorescence engine. However, I have engineered an alternate solution which indexes using
    the bounds of the simulation and takes from the res of the grid, potentially
    making this solution more flexible.
    sammorrell committed Aug 15, 2024
    Configuration menu
    Copy the full SHA
    bf69dc2 View commit details
    Browse the repository at this point in the history