Problem setup

Virtually all attributes of the problem and its execution are defined through the Problem input class, which is set up in part by the user and in part by external applications as directed by the user.

struct Problem

Celeritas problem input definition.

This should specify all the information necessary to track particles within Celeritas for offloading or standalone execution. (It does not contain system configuration such as GPU, or event/offload information.)

Multiple problems can be run independently across the same program execution.

Eventually this class and its daughters will subsume all the data in celeritas/io/ and all the input options from Models, Processes, Params, and other classes that are not implementation details.

After loading, the struct will be able to be serialized to ROOT or JSON or some other struct for reproducibility.

Public Members

Model model

Geometry, material, and region definitions.

Physics physics

Physics models and options.

Field field

Set up the magnetic field.

Scoring scoring

Manage scoring of hits and other quantities.

Tracking tracking

Tuning options that affect the physics.

Control control

Low-level performance tuning and simulation control options.

Diagnostics diagnostics

Monte Carlo tracking, performance, and debugging diagnostics.

The OpticalProblem input class provides the corresponding configuration for problems in which only optical photons are transported. It shares the same overall structure as Problem but includes options specific to optical simulations.

struct OpticalProblem

Celeritas optical-only problem input definition.

Todo:

Add OpticalDiagnostics

Diagnostics

Timers timers

Set up step or action timers.

std::optional<StepDiagnostic> step

Bin number of steps per track.

std::string perfetto_file

Write Perfetto tracing data to this filename.

std::string offload_file

Write primary generation data to this file.

std::string output_file = {"-"}

Write Celeritas diagnostics to this file (“-” is stdout)

Public Members

Model model

Geometry, material, and region definitions.

OpticalPhysics physics

Physics models and options.

OpticalGenerator generator

Optical photon generation mechanism.

OpticalTrackingLimits limits

Hard cutoffs for counters.

OpticalStateCapacity capacity

Per-process state sizes for optical tracking loop.

OpticalDetector detectors

User scoring configuration for optical detectors.

size_type num_streams = {}

Number of streams.

unsigned int seed = {}

Random number generator seed.