Celeritas 0.7.0-dev.313+develop.1857205b
Loading...
Searching...
No Matches
Classes | Public Member Functions | List of all members
celeritas::optical::Runner Class Reference

Manage execution of a standalone Celeritas optical stepping loop. More...

#include <Runner.hh>

Classes

struct  Result
 

Public Types

Type aliases
using Input = inp::OpticalStandaloneInput
 
using SPConstParams = std::shared_ptr< CoreParams const >
 
using SpanConstTrackInit = DirectGeneratorAction::SpanConstData
 
using SpanConstGenDist = GeneratorAction::SpanConstData
 

Public Member Functions

 Runner (Input &&)
 Construct with optical problem input definition.
 
Result operator() ()
 Transport tracks generated with a primary generator.
 
Result operator() (SpanConstTrackInit)
 Transport tracks generated directly from track initializers.
 
Result operator() (SpanConstGenDist)
 Transport tracks generated through scintillation or Cherenkov.
 
SPConstParams constparams () const
 Access the shared params.
 

Detailed Description

Manage execution of a standalone Celeritas optical stepping loop.

Note
When parallelizing on the CPU using OpenMP, this class expects track-level parallelism be enabled (transporting all tracks with a single stream and state) rather than event-level parallelism (transporting events on separate streams with one state per stream). Similarly on the GPU a single stream and state will be used.

Member Function Documentation

◆ operator()()

auto celeritas::optical::Runner::operator() ( SpanConstGenDist  data)

Transport tracks generated through scintillation or Cherenkov.

Todo:
We could accumulate and update the number of pending tracks directly in GeneratorAction::insert, though this would be less efficient for some run modes, e.g. offloading distributions through accel where we already know the number of pending tracks.

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