|
Celeritas 0.7.0-dev.254+develop.a6804dd8
|
Physics to be applied during a surface crossing. More...
#include <SurfaceModel.hh>

Public Types | |
Type aliases | |
| using | VecSurfaceLayer = std::vector< PhysSurfaceId > |
| Vector of surfaces. | |
Public Member Functions | |
| virtual | ~SurfaceModel ()=0 |
| Anchored default destructor. | |
| virtual VecSurfaceLayer const & | 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. | |
| SurfaceModel (SurfaceModel const &)=default | |
| SurfaceModel & | operator= (SurfaceModel const &)=default |
| SurfaceModel (SurfaceModel &&)=default | |
| SurfaceModel & | operator= (SurfaceModel &&)=default |
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" SubModelId. 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.
|
protected |
Construct with label and model ID.
Note that the label, being a string view, must (for now) point to constant memory.
|
protecteddefault |
Prevent assignment through base class
|
protecteddefault |
Prevent assignment through base class
|
pure virtual |
Get the list of surfaces/layers this applies to.
Implemented in celeritas::optical::DielectricInteractionModel, celeritas::optical::PolishedRoughnessModel, and celeritas::optical::TrivialInteractionModel.
|
protecteddefault |
Prevent assignment through base class
|
protecteddefault |
Prevent assignment through base class