|
Celeritas 0.7.0-dev.164+develop.929c81eeb
|
Abstract base class representing a physics model with a discrete action. More...
#include <Model.hh>

Public Types | |
| using | XsTable = std::vector< inp::UniformGrid > |
| Type aliases. | |
| 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 XsTable | 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 | |
| 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.
|
pure virtual |
Get the applicable particle type and energy ranges of the model.
Implemented in celeritas::BetheBlochModel, celeritas::BetheHeitlerModel, celeritas::BraggModel, celeritas::CoulombScatteringModel, celeritas::EPlusGGModel, celeritas::ICRU73QOModel, celeritas::KleinNishinaModel, celeritas::LivermorePEModel, celeritas::MollerBhabhaModel, celeritas::MuBetheBlochModel, celeritas::MuBremsstrahlungModel, celeritas::MuPairProductionModel, celeritas::RayleighModel, celeritas::RelativisticBremModel, celeritas::SeltzerBergerModel, celeritas::ChipsNeutronElasticModel, celeritas::NeutronInelasticModel, and celeritas::test::MockModel.
|
pure virtual |
Get the microscopic cross sections for the given particle and material.
Implemented in celeritas::test::MockModel, celeritas::BetheBlochModel, celeritas::BetheHeitlerModel, celeritas::BraggModel, celeritas::CoulombScatteringModel, celeritas::EPlusGGModel, celeritas::ICRU73QOModel, celeritas::KleinNishinaModel, celeritas::LivermorePEModel, celeritas::MollerBhabhaModel, celeritas::MuBetheBlochModel, celeritas::MuBremsstrahlungModel, celeritas::MuPairProductionModel, celeritas::RayleighModel, celeritas::RelativisticBremModel, celeritas::SeltzerBergerModel, celeritas::ChipsNeutronElasticModel, and celeritas::NeutronInelasticModel.
|
inlinefinalvirtual |
Dependency ordering of the action.
Implements celeritas::StepActionInterface< P, S >.