|
Celeritas 0.7+28f01d9
|
Manage properties for optical surface physics. More...
#include <SurfacePhysicsParams.hh>

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 const & | host_ref () const final |
| Access surface physics data on host. | |
| DeviceRef const & | device_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 > const & | models (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 | |
| ParamsDataInterface & | operator= (ParamsDataInterface const &)=default |
| ParamsDataInterface & | operator= (ParamsDataInterface &&)=default |
Manage properties for optical surface physics.
Surface physics during boundary crossing is split into three actions.
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.
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:
BoundaryAction instantiated to use detail::InitBoundaryExecutor SurfaceSteppingAction, which invokes the surface model kernels.BoundaryAction instantiated to use detail::PostBoundaryExecutor Each surface model launches a kernel:
detail::GaussianRoughnessExecutor which uses GaussianRoughnessSampler and rejects with EnteringSurfaceNormalSampler detail::SmearRoughnessExectuor)detail::GridReflectivityExecutor detail::DielectricInteractor with SurfaceInteractionApplier .
|
inlinefinalvirtual |
Access surface physics data on device.
Implements celeritas::ParamsDataInterface< SurfacePhysicsParamsData >.
|
inlinefinalvirtual |
Access surface physics data on host.
Implements celeritas::ParamsDataInterface< SurfacePhysicsParamsData >.