Celeritas 0.7+28f01d9
Loading...
Searching...
No Matches
Public Member Functions | List of all members
celeritas::optical::SurfacePhysicsParams Class Referencefinal

Manage properties for optical surface physics. More...

#include <SurfacePhysicsParams.hh>

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

Public Types

Type aliases
using SPModel = std::shared_ptr< SurfaceModel >
 
using SurfaceStepModels = EnumArray< SurfacePhysicsOrder, std::vector< SPModel > >
 
- Public Types inherited from celeritas::ParamsDataInterface< SurfacePhysicsParamsData >
using HostRef = HostCRef< SurfacePhysicsParamsData >
 
using DeviceRef = DeviceCRef< SurfacePhysicsParamsData >
 

Public Member Functions

 SurfacePhysicsParams (ActionRegistry *action_reg, inp::OpticalSurfacePhysics const &input)
 Construct surface physics parameters from input.
 
HostRef consthost_ref () const final
 Access surface physics data on host.
 
DeviceRef constdevice_ref () const final
 Access surface physics data on device.
 
ActionId init_boundary_action () const
 Action ID for initializing boundary interactions.
 
ActionId surface_stepping_action () const
 Action ID for surface stepping loop action.
 
ActionId post_boundary_action () const
 Action ID for finishing boundary interactions.
 
std::vector< SPModel > constmodels (SurfacePhysicsOrder step) const
 Get models for a given sub-step.
 
- Public Member Functions inherited from celeritas::ParamsDataInterface< SurfacePhysicsParamsData >
SurfacePhysicsParamsData< Ownership::const_reference, M > const & ref () const
 
SurfacePhysicsParamsData< Ownership::const_reference, M > const & ref () const
 Dispatch a "ref" call to host or device data.
 

Additional Inherited Members

- Protected Member Functions inherited from celeritas::ParamsDataInterface< SurfacePhysicsParamsData >
 ParamsDataInterface (ParamsDataInterface const &)=default
 
 ParamsDataInterface (ParamsDataInterface &&)=default
 
ParamsDataInterfaceoperator= (ParamsDataInterface const &)=default
 
ParamsDataInterfaceoperator= (ParamsDataInterface &&)=default
 

Detailed Description

Manage properties for optical surface physics.

Surface physics during boundary crossing is split into three actions.

  1. Initialize the boundary crossing (see Boundary initialization (surface_boundary_init in user manual) ).
  2. Apply surface physics models.
  3. If exiting the surface, the crossing or move into the previous volume (see Boundary crossing (surface_boundary_post in user manual) ).

The second action is broken down into sets of "internal" celeritas::optical::SurfaceModel classes categorized by a SurfacePhysicsOrder . These are called sequentially, with one model from each set applying to each track on a surface.

  1. Sample a local facet normal (see Roughness (surface_roughness in user manual) ).
  2. Select transmittance/reflectivity/absorption override (see Reflectivity (surface_reflectivity in user manual) ).
  3. Sample and perform reflection/refraction (see Interaction (surface_interaction in user manual) ).
Note
The developer documentation includes further details of the low-level Executor classes that performs these actions.

See the user manual for high-level descriptions and low-level samplers. The intermediate action/executor descriptions follow.

The three actions from the surface physics params are:

  1. BoundaryAction instantiated to use detail::InitBoundaryExecutor
  2. SurfaceSteppingAction, which invokes the surface model kernels.
  3. BoundaryAction instantiated to use detail::PostBoundaryExecutor

Each surface model launches a kernel:

Member Function Documentation

◆ device_ref()

DeviceRef const & celeritas::optical::SurfacePhysicsParams::device_ref ( ) const
inlinefinalvirtual

Access surface physics data on device.

Implements celeritas::ParamsDataInterface< SurfacePhysicsParamsData >.

◆ host_ref()

HostRef const & celeritas::optical::SurfacePhysicsParams::host_ref ( ) const
inlinefinalvirtual

Access surface physics data on host.

Implements celeritas::ParamsDataInterface< SurfacePhysicsParamsData >.


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