Celeritas
0.5.0-56+6b053cd
|
Track a particle within an axes-aligned rectilinear grid. More...
#include <RectArrayTracker.hh>
Public Types | |
Type aliases | |
using | ParamsRef = NativeCRef< OrangeParamsData > |
using | Initialization = detail::Initialization |
using | Intersection = detail::Intersection |
using | LocalState = detail::LocalState |
using | Grid = NonuniformGrid< real_type > |
using | VolumeIndexer = HyperslabIndexer< 3 > |
using | VolumeInverseIndexer = HyperslabInverseIndexer< 3 > |
using | SurfaceIndexer = detail::RaggedRightIndexer< 3 > |
using | SurfaceInverseIndexer = detail::RaggedRightInverseIndexer< 3 > |
using | Coords = Array< size_type, 3 > |
Public Member Functions | |
CELER_FUNCTION | RectArrayTracker (ParamsRef const ¶ms, RectArrayId rid) |
Construct with reference to persistent parameter data. | |
CELER_FUNCTION LocalVolumeId::size_type | num_volumes () const |
Number of local volumes. | |
CELER_FUNCTION LocalSurfaceId::size_type | num_surfaces () const |
Number of local surfaces. | |
CELER_FUNCTION DaughterId | daughter (LocalVolumeId vol) const |
DaughterId of universe embedded in a given volume. | |
CELER_FUNCTION Initialization | initialize (LocalState const &state) const |
Find the local volume from a position. More... | |
CELER_FUNCTION Intersection | intersect (LocalState const &state) const |
Calculate distance-to-intercept for the next surface. | |
CELER_FUNCTION Intersection | intersect (LocalState const &state, real_type max_dist) const |
Calculate distance-to-intercept for the next surface, with max distance. | |
CELER_FUNCTION Initialization | cross_boundary (LocalState const &state) const |
Find the local volume given a post-crossing state. | |
CELER_FUNCTION real_type | safety (Real3 const &pos, LocalVolumeId vol) const |
Calculate nearest distance to a surface in any direction. More... | |
CELER_FUNCTION Real3 | normal (Real3 const &pos, LocalSurfaceId surf) const |
Calculate the local surface normal. | |
template<class F > | |
CELER_FUNCTION auto | intersect_impl (LocalState const &state, F is_valid) const -> Intersection |
Calculate distance-to-intercept for the next surface. | |
Track a particle within an axes-aligned rectilinear grid.
|
inline |
Find the local volume from a position.
To avoid edge cases and inconsistent logical/physical states, it is prohibited to initialize from an arbitrary point directly onto a surface.
|
inline |
Calculate nearest distance to a surface in any direction.
On an axis-aligned rectlinear grid the minimum distance to any surface is always always occurs along a line parallel to an axis.