Celeritas
0.5.0-86+4a8eea4
|
Abstract base class representing a physics model with a discrete action. More...
#include <Model.hh>
Public Types | |
using | UPConstGridBuilder = std::unique_ptr< ValueGridBuilder const > |
Type aliases. | |
using | MicroXsBuilders = std::vector< UPConstGridBuilder > |
using | SetApplicability = std::set< Applicability > |
Public Types inherited from celeritas::ActionTypeTraits< P, S > | |
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 | |
virtual SetApplicability | applicability () const =0 |
Get the applicable particle type and energy ranges of the model. | |
virtual MicroXsBuilders | micro_xs (Applicability range) const =0 |
Get the microscopic cross sections for the given particle and material. | |
StepActionOrder | order () const final |
Dependency ordering of the action. | |
Public Member Functions inherited from celeritas::StepActionInterface< P, S > | |
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. | |
Public Member Functions inherited from celeritas::ActionInterface | |
virtual | ~ActionInterface () noexcept=0 |
Default destructor. | |
virtual ActionId | action_id () const =0 |
ID of this action for verification and ordering. | |
virtual std::string_view | label () const =0 |
Short unique label of the action. | |
virtual std::string_view | description () const =0 |
Description of the action. | |
Additional Inherited Members | |
Protected Member Functions inherited from celeritas::ActionInterface | |
ActionInterface ()=default | |
CELER_DEFAULT_COPY_MOVE (ActionInterface) | |
Abstract base class representing a physics model with a discrete action.
A Model is a representation (often an approximation) to a physics process such as Compton scattering that is valid for one or more particle types in a given range (or ranges) of energy.
Each Model subclass is constructed with a unique ActionId by a Process, which is effectively a group of Models. Once constructed, it is essentially immutable.
The model assumes a few responsibilities:
This class is similar to Geant4's G4VContinuousDiscrete process, but more limited.