| Celeritas 0.7.0-dev.170+develop.df22d2a88
    | 
Device-compatible map between physics surface IDs and models/indices. More...
#include <SurfacePhysicsMapData.hh>
| Public Types | |
| Type aliases | |
| template<class T > | |
| using | SurfaceItems = Collection< T, W, M, PhysSurfaceId > | 
| Public Member Functions | |
| CELER_FUNCTION | operator bool () const | 
| True if assigned. | |
| template<Ownership W2, MemSpace M2> | |
| SurfacePhysicsMapData & | operator= (SurfacePhysicsMapData< W2, M2 > const &other) | 
| Assign from another set of data. | |
| Public Attributes | |
| SurfaceItems< SurfaceModelId > | surface_models | 
| SurfaceItems< SubModelId > | internal_surface_ids | 
Device-compatible map between physics surface IDs and models/indices.
One or more instances of these should be stored as member data inside a downstream ParamsData class. For instance, optical surface physics will have one map for roughness, one for reflectivity, and one for interaction.
If a SurfaceModel with ID 10 returns a list of surfaces {3, 1, 5} and another with ID 11 returns {6, 0, 4}, then this class will have a key-value mapping stored as two arrays: 
With this setup, Collection data can be accessed locally by indexing on ModelSurfaceId .