Celeritas 0.7.0-dev.127+develop.e63889793
Loading...
Searching...
No Matches
Public Member Functions | List of all members
celeritas::optical::DielectricInteractionModel Class Reference

Interaction model for analytic dielectric-dielectric and dielectric-metal surface interactions. More...

#include <DielectricInteractionModel.hh>

Inheritance diagram for celeritas::optical::DielectricInteractionModel:
Inheritance graph
[legend]

Public Types

Type aliases
using InputT = inp::DielectricInteraction
 
- Public Types inherited from celeritas::optical::SurfaceModel
using CoreStateHost = CoreState< MemSpace::host >
 
using CoreStateDevice = CoreState< MemSpace::device >
 
- Public Types inherited from celeritas::SurfaceModel
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 constget_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.
 
- Public Member Functions inherited from celeritas::SurfaceModel
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

- Protected Member Functions inherited from celeritas::SurfaceModel
 SurfaceModel (SurfaceModelId, std::string_view)
 Construct with label and model ID.
 
 CELER_DEFAULT_COPY_MOVE (SurfaceModel)
 

Detailed Description

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:

  1. dielectric-metal: the photon is immediately absorbed.
  2. dielectric-dielectric: refracted direction and polarization are calculate from Fresnel equations.

Member Function Documentation

◆ get_surfaces()

VecSurfaceLayer const & celeritas::optical::DielectricInteractionModel::get_surfaces ( ) const
inlinefinalvirtual

Get the list of physical surfaces this model applies to.

Implements celeritas::SurfaceModel.

◆ step() [1/2]

void celeritas::optical::DielectricInteractionModel::step ( CoreParams const ,
CoreStateDevice  
) const
finalvirtual

Execute the model with host data.

Implements celeritas::optical::SurfaceModel.

◆ step() [2/2]

void celeritas::optical::DielectricInteractionModel::step ( CoreParams const params,
CoreStateHost state 
) const
finalvirtual

Execute model with host data.

Launch kernel with device data.

Execute model with device data.

Implements celeritas::optical::SurfaceModel.


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