Celeritas  0.5.0-86+4a8eea4
Public Member Functions | List of all members
celeritas::RectArrayTracker Class Reference

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 &params, 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.
 

Detailed Description

Track a particle within an axes-aligned rectilinear grid.

Member Function Documentation

◆ initialize()

CELER_FUNCTION auto celeritas::RectArrayTracker::initialize ( LocalState const &  state) const
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.

◆ safety()

CELER_FUNCTION real_type celeritas::RectArrayTracker::safety ( Real3 const &  pos,
LocalVolumeId  volid 
) const
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.


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