Celeritas 0.6.0-dev.115+3b60a5fd
|
Base class for discrete, volumetric optical models. More...
#include <Model.hh>
Public Types | |
Type aliases | |
using | ModelBuilder = std::function< std::shared_ptr< Model >(ActionId)> |
Function to build optical models with a given action id. | |
![]() | |
using | CoreParams = P |
using | CoreStateHost = S< MemSpace::host > |
using | CoreStateDevice = S< MemSpace::device > |
using | SpanCoreStateHost = Span< S< MemSpace::host > *const > |
using | SpanCoreStateDevice = Span< S< MemSpace::device > *const > |
Public Member Functions | |
StepActionOrder | order () const override |
Action order for optical models is always post-step. | |
virtual void | build_mfps (OpticalMaterialId mat, MfpBuilder &build) const =0 |
Build mean free path grids for all optical materials. | |
ConcreteAction (ActionId id, std::string label) noexcept(!CELERITAS_DEBUG) | |
Construct a concrete action from a label and ID. | |
ConcreteAction (ActionId id, std::string label, std::string description) noexcept(!CELERITAS_DEBUG) | |
Construct a concrete action from an ID, a unique label, and a description. | |
![]() | |
virtual void | step (P const &, S< MemSpace::host > &) const =0 |
Execute the action with host data. | |
virtual void | step (P const &, S< MemSpace::device > &) const =0 |
Execute the action with device data. | |
![]() | |
virtual | ~ActionInterface () noexcept=0 |
Default destructor. | |
![]() | |
ConcreteAction (ActionId id, std::string label) noexcept(!CELERITAS_DEBUG) | |
Construct a concrete action from a label and ID. | |
ConcreteAction (ActionId id, std::string label, std::string description) noexcept(!CELERITAS_DEBUG) | |
Construct a concrete action from an ID, a unique label, and a description. | |
~ConcreteAction () noexcept override | |
Default destructor. | |
CELER_DELETE_COPY_MOVE (ConcreteAction) | |
ActionId | action_id () const final |
ID of this action for verification. | |
std::string_view | label () const final |
Short label. | |
std::string_view | description () const final |
Descriptive label. | |
Additional Inherited Members | |
![]() | |
CELER_DEFAULT_COPY_MOVE (ActionInterface) | |
Base class for discrete, volumetric optical models.
For optical physics, there is precisely one particle (optical photons) and one energy range (optical wavelengths), so only models and no processes are used in optical physics.
|
pure virtual |
Build mean free path grids for all optical materials.
Implemented in celeritas::optical::AbsorptionModel, and celeritas::optical::RayleighModel.
|
inlineoverridevirtual |
Action order for optical models is always post-step.
Implements celeritas::StepActionInterface< P, S >.