Celeritas 0.7.0-dev.127+develop.e63889793
|
Optical surface physics data for a track. More...
#include <SurfacePhysicsTrackView.hh>
Classes | |
struct | Initializer |
Public Types | |
Type aliases | |
using | SurfaceParamsRef = NativeCRef< SurfacePhysicsParamsData > |
using | SurfaceStateRef = NativeRef< SurfacePhysicsStateData > |
Public Member Functions | |
CELER_FUNCTION | SurfacePhysicsTrackView (SurfaceParamsRef const &, SurfaceStateRef const &, TrackSlotId) |
Initialize view from surface physics data and state for a given track. | |
CELER_FUNCTION SurfacePhysicsTrackView & | operator= (Initializer const &) |
Initialize track state with given initializer data. | |
CELER_FUNCTION void | reset () |
Reset the state of a track. | |
CELER_FUNCTION bool | is_crossing_boundary () const |
Whether the track is undergoing boundary crossing. | |
CELER_FUNCTION OptMatId | material () const |
Get current subsurface material. | |
CELER_FUNCTION OptMatId | next_material () const |
Get next subsurface material. | |
CELER_FUNCTION SurfacePhysicsMapView | interface (SurfacePhysicsOrder) const |
Get surface physics map for next surface. | |
CELER_FUNCTION void | update_traversal_direction (Real3 const &) |
Calculate and update traversal direction from track momentum. | |
CELER_FUNCTION Real3 const & | global_normal () const |
Get global surface normal. | |
CELER_FUNCTION Real3 const & | facet_normal () const |
Get local facet normal after roughness sampling. | |
CELER_FUNCTION void | facet_normal (Real3 const &) |
Assign local facet normal from roughness sampling. | |
CELER_FUNCTION SurfaceTraversalView | traversal () const |
Construct a traversal view for this track. | |
CELER_FUNCTION SurfacePhysicsView | surface () const |
Construct a surface physics view, whose orientation is based on this track. | |
CELER_FUNCTION SurfacePhysicsParamsScalars const & | scalars () const |
Access scalar data for surface physics. | |
Optical surface physics data for a track.
Tracks maintain a position while traversing the interstitial materials of an optical surface. This class provides transformations from this position based on the surface orientation and traversal direction to access relevant material and interface data in storage.
|
inline |
Get global surface normal.
The global surface normal is the normal defined by the geometry and does not include any roughness effects. By convention it points from the post-volume into the pre-volume.
|
inline |
Whether the track is undergoing boundary crossing.
Returns true if there's a valid surface ID, otherwise false.
|
inline |
Reset the state of a track.
Invalidates the surface ID, indicating the track is no longer undergoing boundary crossing.