Celeritas 0.6.0-dev.115+3b60a5fd
Loading...
Searching...
No Matches
Public Member Functions | List of all members
celeritas::CoreState< M > Class Template Reference

Store all state data for a single thread. More...

#include <CoreState.hh>

Inheritance diagram for celeritas::CoreState< M >:
Inheritance graph
[legend]

Public Types

Type aliases
template<template< Ownership, MemSpace > class S>
using StateRef = S< Ownership::reference, M >
 
using Ref = StateRef< CoreStateData >
 
using Ptr = ObserverPtr< Ref, M >
 
- Public Types inherited from celeritas::CoreStateInterface
using size_type = TrackSlotId::size_type
 

Public Member Functions

 CoreState (CoreParams const &params, StreamId stream_id)
 Construct from CoreParams.
 
 CoreState (CoreParams const &params, StreamId stream_id, size_type num_track_slots)
 Construct with manual slot count.
 
 ~CoreState () final
 Print diagnostic when core state is being deleted.
 
 CELER_DELETE_COPY_MOVE (CoreState)
 
StreamId stream_id () const final
 Thread/stream ID.
 
size_type size () const final
 Number of track slots.
 
void warming_up (bool)
 Whether the state should be transported with no active particles.
 
bool warming_up () const
 Whether the state is being transported with no active particles.
 
Ref & ref ()
 Get a reference to the mutable state data.
 
Ref constref () const
 Get a reference to the mutable state data.
 
Ptr ptr ()
 Get a native-memspace pointer to the mutable state data.
 
void reset ()
 Reset the state data.
 
CoreStateCounterscounters ()
 Track initialization counters.
 
CoreStateCounters constcounters () const final
 Track initialization counters.
 
AuxStateVec constaux () const final
 Access auxiliary state data.
 
AuxStateVecaux ()
 Access auxiliary state data (mutable)
 
template<template< Ownership, MemSpace > class S>
StateRef< S > & aux_data (AuxId auxid)
 
bool has_action_range () const
 Return whether tracks can be sorted by action.
 
Range< ThreadIdget_action_range (ActionId action_id) const
 Get a range of sorted track slots about to undergo a given action.
 
autoaction_thread_offsets ()
 Access the range of actions to apply for all track IDs.
 
auto constaction_thread_offsets () const
 Access the range of actions to apply for all track IDs.
 
autonative_action_thread_offsets ()
 Access action offsets for computation (native memory space).
 
template<template< Ownership, MemSpace > class S>
auto aux_data (AuxId auxid) -> StateRef< S > &
 Convenience function to access auxiliary "collection group" data.
 
- Public Member Functions inherited from celeritas::CoreStateInterface
virtual ~CoreStateInterface ()
 Support polymorphic deletion.
 

Additional Inherited Members

- Protected Member Functions inherited from celeritas::CoreStateInterface
 CELER_DEFAULT_COPY_MOVE (CoreStateInterface)
 

Detailed Description

template<MemSpace M>
class celeritas::CoreState< M >

Store all state data for a single thread.

When the state lives on the device, we maintain a separate copy of the device "ref" in device memory: otherwise we'd have to copy the entire state in launch arguments and access it through constant memory.

Todo:
Encapsulate all the action management accessors in a helper class.

Constructor & Destructor Documentation

◆ CoreState()

template<MemSpace M>
celeritas::CoreState< M >::CoreState ( CoreParams const params,
StreamId  stream_id,
size_type  num_track_slots 
)

Construct with manual slot count.

This is currently used for unit tests, and temporarily used by the Stepper constructor.

Member Function Documentation

◆ aux()

template<MemSpace M>
AuxStateVec const & celeritas::CoreState< M >::aux ( ) const
inlinefinalvirtual

Access auxiliary state data.

Implements celeritas::CoreStateInterface.

◆ counters()

template<MemSpace M>
CoreStateCounters const & celeritas::CoreState< M >::counters ( ) const
inlinefinalvirtual

Track initialization counters.

Implements celeritas::CoreStateInterface.

◆ get_action_range()

template<MemSpace M>
Range< ThreadId > celeritas::CoreState< M >::get_action_range ( ActionId  action_id) const

Get a range of sorted track slots about to undergo a given action.

The result delimits the [start, end) of the track partition assigned action_id in track_slots.

◆ reset()

template<MemSpace M>
void celeritas::CoreState< M >::reset ( )

Reset the state data.

This clears the state counters and initializes the necessary state data so the state can be reused for a new event. This should only be necessary if the previous event aborted early.

◆ size()

template<MemSpace M>
size_type celeritas::CoreState< M >::size ( ) const
inlinefinalvirtual

Number of track slots.

Implements celeritas::CoreStateInterface.

◆ stream_id()

template<MemSpace M>
StreamId celeritas::CoreState< M >::stream_id ( ) const
inlinefinalvirtual

Thread/stream ID.

Implements celeritas::CoreStateInterface.

◆ warming_up()

template<MemSpace M>
void celeritas::CoreState< M >::warming_up ( bool  new_state)

Whether the state should be transported with no active particles.

This can only be called when there are no active tracks. It should be immediately cleared after a step.

See also
Stepper::warm_up

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