Celeritas 0.6.0-129+develop.846910afa
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | List of all members
celeritas::SurfaceModel Class Referenceabstract

Physics to be applied during a surface crossing. More...

#include <SurfaceModel.hh>

Public Types

Type aliases
using PhysSurfaceId = SurfaceId
 Eventually to be a pair of surface+layer.
 
using VecSurfaceLayer = std::vector< PhysSurfaceId >
 Vector of surfaces.
 
using SurfaceModelId = OpaqueId< SurfaceModel >
 Opaque ID of this surface model.
 
using InternalSurfaceId = OpaqueId< struct InternalModelSurface_ >
 Opaque index of surface data in the list for a particular surface model.
 

Public Member Functions

virtual ~SurfaceModel ()=0
 Anchored default destructor.
 
virtual VecSurfaceLayer get_surfaces () const =0
 Get the list of surfaces/layers this applies to.
 
SurfaceModelId surface_model_id () const
 Opaque ID of this surface model.
 
std::string_view label () const
 Short descriptive name of this model.
 

Protected Member Functions

 SurfaceModel (SurfaceModelId, std::string_view)
 Construct with label and model ID.
 
 CELER_DEFAULT_COPY_MOVE (SurfaceModel)
 

Detailed Description

Physics to be applied during a surface crossing.

Each surface model is constructed independently given some inp data. It internally maps a sequence of "global" SurfaceId to a "local" InternalSurfaceId. It additionally allows an empty surface returned by get_surfaces to indicate a default model to be applied when the user does not specify surface properties.

This is currently only used by optical physics classes.

Constructor & Destructor Documentation

◆ SurfaceModel()

celeritas::SurfaceModel::SurfaceModel ( SurfaceModelId  id,
std::string_view  label 
)
protected

Construct with label and model ID.

Note that the label, being a string view, must (for now) point to constant memory.

Member Function Documentation

◆ CELER_DEFAULT_COPY_MOVE()

celeritas::SurfaceModel::CELER_DEFAULT_COPY_MOVE ( SurfaceModel  )
protected

Prevent assignment through base class


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