Celeritas 0.6.0-dev.115+3b60a5fd
Loading...
Searching...
No Matches
Classes | Public Member Functions | Static Public Member Functions | List of all members
celeritas::SlotDiagnostic Class Referencefinal

Print diagnostic output about what's in what slots. More...

#include <SlotDiagnostic.hh>

Inheritance diagram for celeritas::SlotDiagnostic:
Inheritance graph
[legend]

Classes

struct  State
 

Public Member Functions

 SlotDiagnostic (ActionId action_id, AuxId aux_id, std::string filename_base, size_type num_stream, std::shared_ptr< ParticleParams const > particle)
 Construct with IDs and filename base.
 
Metadata interface
std::string_view label () const final
 Label for the auxiliary data and action.
 
std::string_view description () const final
 Label for the auxiliary data and action.
 
Step action interface
ActionId action_id () const final
 Index of this class instance in its registry.
 
StepActionOrder order () const final
 Index of this class instance in its registry.
 
void step (CoreParams const &params, CoreStateHost &state) const final
 Execute with with the last action's ID and the state.
 
void step (CoreParams const &params, CoreStateDevice &state) const final
 Index of this class instance in its registry.
 
Aux params interface
AuxId aux_id () const final
 Index of this class instance in its registry.
 
UPState create_state (MemSpace m, StreamId id, size_type size) const final
 Build state data for a stream.
 
- 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.
 

Static Public Member Functions

static std::shared_ptr< SlotDiagnosticmake_and_insert (CoreParams const &core, std::string filename_base)
 Construct and add to core params.
 

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
 CELER_DEFAULT_COPY_MOVE (ActionInterface)
 
- Protected Member Functions inherited from celeritas::AuxParamsInterface
 AuxParamsInterface ()=default
 
 CELER_DEFAULT_COPY_MOVE (AuxParamsInterface)
 Default destructor.
 

Detailed Description

Print diagnostic output about what's in what slots.

Currently this only prints the particle ID as a function of track slot, which can later be combined with postprocessing data to print the charge of each particle. We could in the future extend the class to use thread ID and/or write action ID or any other ID/status instead. Special IDs are:

A "JSON lines" file (one line per step) is opened for each stream, and a separate file is opened once during construction to write appropriate metadata.

The filename base is appended with the stream ID or metadata. If the filename is a directory, that directory must already exist. For example, you could pass a filename base of slot-diag- to get filenames slot-diag-metadata.json, slot-diag-0.jsonl, etc.

Todo:
Instead of writing separate files, we should probably use a multi-stream output manager (not yet implemented) to save the result for the end.
Note
To plot the resulting files, see scripts/user/plot-slot-diagnostic.py

Constructor & Destructor Documentation

◆ SlotDiagnostic()

celeritas::SlotDiagnostic::SlotDiagnostic ( ActionId  action_id,
AuxId  aux_id,
std::string  filename_base,
size_type  num_streams,
std::shared_ptr< ParticleParams const particle 
)

Construct with IDs and filename base.

This also writes to the "metadata" JSON suffix.

Member Function Documentation

◆ action_id()

ActionId celeritas::SlotDiagnostic::action_id ( ) const
inlinefinalvirtual

Index of this class instance in its registry.

Implements celeritas::ActionInterface.

◆ aux_id()

AuxId celeritas::SlotDiagnostic::aux_id ( ) const
inlinefinalvirtual

Index of this class instance in its registry.

Implements celeritas::AuxParamsInterface.

◆ create_state()

auto celeritas::SlotDiagnostic::create_state ( MemSpace  m,
StreamId  id,
size_type  size 
) const
finalvirtual

Build state data for a stream.

Implements celeritas::AuxParamsInterface.

◆ description()

std::string_view celeritas::SlotDiagnostic::description ( ) const
inlinefinalvirtual

Label for the auxiliary data and action.

Implements celeritas::ActionInterface.

◆ label()

std::string_view celeritas::SlotDiagnostic::label ( ) const
inlinefinalvirtual

Label for the auxiliary data and action.

Implements celeritas::ActionInterface.

◆ order()

StepActionOrder celeritas::SlotDiagnostic::order ( ) const
inlinefinalvirtual

Index of this class instance in its registry.

Implements celeritas::StepActionInterface< P, S >.

◆ step()

void celeritas::SlotDiagnostic::step ( CoreParams const params,
CoreStateHost &  state 
) const
final

Execute with with the last action's ID and the state.

This must be called after both create_state and begin_run .


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