Celeritas  0.5.0-56+6b053cd
Public Types | Public Member Functions | Public Attributes | List of all members
celeritas::PhysicsParamsData< W, M > Struct Template Reference

Persistent shared physics data. More...

#include <PhysicsData.hh>

Public Types

template<class T >
using Items = Collection< T, W, M >
 
template<class T >
using ParticleItems = Collection< T, W, M, ParticleId >
 
template<class T >
using ParticleModelItems = Collection< T, W, M, ParticleModelId >
 

Public Member Functions

CELER_FUNCTION operator bool () const
 True if assigned.
 
template<Ownership W2, MemSpace M2>
PhysicsParamsDataoperator= (PhysicsParamsData< W2, M2 > const &other)
 Assign from another set of data.
 

Public Attributes

Items< real_typereals
 
Items< ParticleModelIdpmodel_ids
 
Items< ValueGridvalue_grids
 
Items< ValueGridIdvalue_grid_ids
 
Items< ProcessIdprocess_ids
 
Items< ValueTablevalue_tables
 
Items< ValueTableIdvalue_table_ids
 
Items< IntegralXsProcessintegral_xs
 
Items< ModelGroupmodel_groups
 
ParticleItems< ProcessGroupprocess_groups
 
ParticleModelItems< ModelIdmodel_ids
 
ParticleModelItems< ModelXsTablemodel_xs
 
HardwiredModels< W, M > hardwired
 
PhysicsParamsScalars scalars
 

Detailed Description

template<Ownership W, MemSpace M>
struct celeritas::PhysicsParamsData< W, M >

Persistent shared physics data.

This includes macroscopic cross section, energy loss, and range tables ordered by [particle][process][material][energy].

So the first applicable process (ProcessId{0}) for an arbitrary particle (ParticleId{1}) in material 2 (MaterialId{2}) will have the following ID and cross section grid:

ProcessId proc_id = params.particle[1].processes[0];
const UniformGridData& grid
=
params.particle[1].table[int(ValueGridType::macro_xs)][0].material[2].log_energy;
OpaqueId< class Process > ProcessId
Opaque index of physics process.
Definition: celeritas/Types.hh:55

The documentation for this struct was generated from the following file: