Celeritas 0.7-develop+ddcb429
Loading...
Searching...
No Matches
Public Member Functions | List of all members
celeritas::optical::GeneratorBase Class Reference

Common interface for generating optical photons. More...

#include <GeneratorBase.hh>

Inheritance diagram for celeritas::optical::GeneratorBase:
Inheritance graph
[legend]

Public Member Functions

 GeneratorBase (ActionId id, AuxId aux_id, GeneratorId gen_id, std::string_view label, std::string_view description) noexcept(! 0)
 Construct with IDs, label, and description.
 
template<MemSpace M>
GeneratorCounterState< M > & counter_state (AuxStateVec &) const
 Get the generator counter state for a memory space.
 
template<MemSpace M>
void update_counters (optical::CoreState< M > &) const
 Update the generator and state counters.
 
Aux interface
AuxId aux_id () const final
 Index of this class instance in its registry.
 
Action interface
ActionId action_id () const final
 ID of the action.
 
std::string_view label () const final
 Short name for the action.
 
std::string_view description () const final
 Description of the action.
 
StepAction interface
StepActionOrder order () const final
 Dependency ordering of the action.
 
Generator interface
GeneratorId generator_id () const final
 ID of the generator.
 
GeneratorStateBase & counters (AuxStateVec &) const final
 Get generator counters (mutable).
 
GeneratorStateBase const & counters (AuxStateVec const &) const final
 Get generator counters.
 
- 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.
 
- Public Member Functions inherited from celeritas::AuxParamsInterface
virtual ~AuxParamsInterface ()
 Default destructor.
 
virtual UPState create_state (MemSpace, StreamId, size_type size) const =0
 Factory function for building multithread state for a stream.
 
- Public Member Functions inherited from celeritas::GeneratorInterface
virtual ~GeneratorInterface ()
 Default destructor.
 

Additional Inherited Members

- 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 Types inherited from celeritas::AuxParamsInterface
using UPState = std::unique_ptr< AuxStateInterface >
 Default destructor.
 
- Protected Member Functions inherited from celeritas::ActionInterface
 ActionInterface (ActionInterface const &)=default
 
ActionInterface & operator= (ActionInterface const &)=default
 
 ActionInterface (ActionInterface &&)=default
 
ActionInterface & operator= (ActionInterface &&)=default
 
- Protected Member Functions inherited from celeritas::AuxParamsInterface
 AuxParamsInterface ()=default
 
 AuxParamsInterface (AuxParamsInterface const &)=default
 Default destructor.
 
AuxParamsInterface & operator= (AuxParamsInterface const &)=default
 Default destructor.
 
 AuxParamsInterface (AuxParamsInterface &&)=default
 Default destructor.
 
AuxParamsInterface & operator= (AuxParamsInterface &&)=default
 Default destructor.
 
- Protected Member Functions inherited from celeritas::GeneratorInterface
 GeneratorInterface (GeneratorInterface const &)=default
 
GeneratorInterface & operator= (GeneratorInterface const &)=default
 
 GeneratorInterface (GeneratorInterface &&)=default
 
GeneratorInterface & operator= (GeneratorInterface &&)=default
 

Detailed Description

Common interface for generating optical photons.

Member Function Documentation

◆ action_id()

ActionId celeritas::optical::GeneratorBase::action_id ( ) const
inlinefinalvirtual

ID of the action.

Implements celeritas::ActionInterface.

◆ aux_id()

AuxId celeritas::optical::GeneratorBase::aux_id ( ) const
inlinefinalvirtual

Index of this class instance in its registry.

Implements celeritas::AuxParamsInterface.

◆ counters() [1/2]

GeneratorStateBase & celeritas::optical::GeneratorBase::counters ( AuxStateVec &  aux) const
finalvirtual

Get generator counters (mutable).

Implements celeritas::GeneratorInterface.

◆ counters() [2/2]

GeneratorStateBase const & celeritas::optical::GeneratorBase::counters ( AuxStateVec const &  aux) const
finalvirtual

Get generator counters.

Implements celeritas::GeneratorInterface.

◆ description()

std::string_view celeritas::optical::GeneratorBase::description ( ) const
inlinefinalvirtual

Description of the action.

Implements celeritas::ActionInterface.

◆ generator_id()

GeneratorId celeritas::optical::GeneratorBase::generator_id ( ) const
inlinefinalvirtual

ID of the generator.

Implements celeritas::GeneratorInterface.

◆ label()

std::string_view celeritas::optical::GeneratorBase::label ( ) const
inlinefinalvirtual

Short name for the action.

Implements celeritas::ActionInterface.

◆ order()

StepActionOrder celeritas::optical::GeneratorBase::order ( ) const
inlinefinalvirtual

Dependency ordering of the action.

Implements celeritas::StepActionInterface< P, S >.

◆ update_counters()

template<MemSpace M>
void celeritas::optical::GeneratorBase::update_counters ( optical::CoreState< M > &  state) const
inline

Update the generator and state counters.

This enqueues a single-thread kernel that moves the photons generated in this step from the pending to the generated counts, so it does not synchronize.


The documentation for this class was generated from the following files: