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

Optical Processes #1162

Closed
wants to merge 11 commits into from
Closed

Conversation

hhollenb
Copy link
Contributor

NB: This code isn't meant to be integrated yet, but rather serve as a reference point and discussion forum for how optical are going to be implemented.

Overview of contents

  • OpticalModel: this is the base class for optical physics
  • OpticalProcess: this is the base class for optical processes. Optical models are uniquely identified with optical processes, so the OpticalProcessImpl template is a helper to define processes from static methods in optical models.
  • ImportOpticalProcess: like ImportProcess but only has lambda physics tables for imported data
  • ImportOpticalProcesses: builds and stores ImportOpticalProcesses from raw ImportData
  • ImportedOpticalProcessAdapter: adapter class used by OpticalProcess to create step limiter grids.
  • OpticalPhysics.hh: contains structs of data, indices, and grids used by optical processes
  • OpticalPhysicsParams: register optical model actions in the action registry and builds grid data in OpticalPhysics.hh on both host and device.
  • GenericGridInserter: helper class to build and insert grids into a collection on host
  • AbsorptionModel: A sample optical model using this framework

Todo

  • Finish adding documentation and cleaning up code
  • Ensures it builds
  • Add some kind of OpticalProcessBuilder
  • Add tests that imported data is built correctly
  • Make sure imported optical process macro xs tables are indeed cross sections and not mean free paths / attenuation lengths / etc.
  • Add remaining optical processes
  • Change execute to use OpticalCoreData etc.
  • Connect executors and interactors to Soon's implementations
  • Add discrete optical action to select optical actions
  • Separate code into subfolders?
  • Split up ImportProcessClass?

@hhollenb hhollenb marked this pull request as draft March 25, 2024 15:50
@hhollenb hhollenb added the physics Particles, processes, and stepping algorithms label Mar 25, 2024
@sethrj sethrj mentioned this pull request Apr 10, 2024
30 tasks
@hhollenb
Copy link
Contributor Author

hhollenb commented Jul 5, 2024

Superceded by #1302

@hhollenb hhollenb closed this Jul 5, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
physics Particles, processes, and stepping algorithms
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants