Celeritas 0.6.0-91+develop.2f018e72
|
Persistent data for mapping between volumes and their surfaces. More...
#include <SurfaceData.hh>
Public Types | |
template<class T > | |
using | VolumeItems = Collection< T, W, M, VolumeId > |
template<class T > | |
using | Items = Collection< T, W, M > |
Public Member Functions | |
CELER_FUNCTION | operator bool () const |
True if data is consistent. | |
template<Ownership W2, MemSpace M2> | |
SurfaceParamsData & | operator= (SurfaceParamsData< W2, M2 > const &other) |
Assign from another set of data. | |
Public Attributes | |
SurfaceId::size_type | num_surfaces {0} |
Number of surfaces. | |
VolumeItems< VolumeSurfaceRecord > | volume_surfaces |
Surface properties for logical volumes. | |
Items< VolumeInstanceId > | volume_instance_ids |
Items< SurfaceId > | surface_ids |
Persistent data for mapping between volumes and their surfaces.
This structure stores device-compatible data relating volumes and their surfaces, primarily for optical physics at material interfaces. If SurfaceParams
is constructed with an empty surface input (no user-provided surfaces for an optical physics run) it will be correctly sized but have no surfaces. It can also be constructed in a "not very useful" but valid state for EM-only physics: the volume surfaces array can be empty.
If no "interface" surfaces are present then the backend storage arrays will be empty.
Items<SurfaceId> celeritas::SurfaceParamsData< W, M >::surface_ids |
Backend storage for surface interfaces
Items<VolumeInstanceId> celeritas::SurfaceParamsData< W, M >::volume_instance_ids |
Backend storage for surface interfaces