Celeritas 0.7.0-dev.127+develop.e63889793
|
Interaction model for analytic dielectric-dielectric and dielectric-metal surface interactions. More...
#include <DielectricInteractionModel.hh>
Public Types | |
Type aliases | |
using | InputT = inp::DielectricInteraction |
![]() | |
using | CoreStateHost = CoreState< MemSpace::host > |
using | CoreStateDevice = CoreState< MemSpace::device > |
![]() | |
using | VecSurfaceLayer = std::vector< PhysSurfaceId > |
Vector of surfaces. | |
Public Member Functions | |
DielectricInteractionModel (SurfaceModelId, std::map< PhysSurfaceId, InputT > const &) | |
Construct the model from an ID and a layer map. | |
VecSurfaceLayer const & | get_surfaces () const final |
Get the list of physical surfaces this model applies to. | |
void | step (CoreParams const &, CoreStateHost &) const final |
Execute model with host data. | |
void | step (CoreParams const &, CoreStateDevice &) const final |
Execute the model with host data. | |
![]() | |
virtual | ~SurfaceModel ()=0 |
Anchored default destructor. | |
SurfaceModelId | surface_model_id () const |
Opaque ID of this surface model. | |
std::string_view | label () const |
Short descriptive name of this model. | |
Additional Inherited Members | |
![]() | |
SurfaceModel (SurfaceModelId, std::string_view) | |
Construct with label and model ID. | |
CELER_DEFAULT_COPY_MOVE (SurfaceModel) | |
Interaction model for analytic dielectric-dielectric and dielectric-metal surface interactions.
Uses the refractive indices of two materials in Fresnel equations to determine the reflectivity of a photon incident on the physical surface. The reflectivity is sampled to determine whether the photon refracts into the next material or reflects. Reflection follows the UNIFIED model (see ReflectionFormSampler
). Refracted waves fall into two cases:
|
inlinefinalvirtual |
Get the list of physical surfaces this model applies to.
Implements celeritas::SurfaceModel.
|
finalvirtual |
Execute the model with host data.
Implements celeritas::optical::SurfaceModel.
|
finalvirtual |
Execute model with host data.
Launch kernel with device data.
Execute model with device data.
Implements celeritas::optical::SurfaceModel.