celeritas-project / celeritas

Celeritas is a new Monte Carlo transport code designed to accelerate scientific discovery in high energy physics by improving detector simulation throughput and energy efficiency using GPUs.
https://celeritas-project.github.io/celeritas/user/index.html
Other
58 stars 32 forks source link

Refactor `ActionSequence` to be templated on Params #1209

Closed esseivaju closed 2 months ago

esseivaju commented 3 months ago

ActionSequence is now a class template on CoreParams / OpticalParams. This allows casting actions to the more specialized ExplicitCoreActionInterface or ExplicitOpticalActionInterface in the ctor instead of doing it in ActionSequence::execute.

This adds the constraint that a given ActionSequence instance operates only on either ExplicitCoreActionInterface or ExplicitOpticalActionInterface (or any other subtype of ExplicitActionInterface)