https://mooseframework.inl.gov
Classes | Functions
TriangleManifoldUtils Namespace Reference

Classes

class  SurfaceChecker
 

Functions

std::uint64_t packCell (const std::size_t y_index, const std::size_t z_index)
 
std::size_t cellIndex (const Real value, const Real min_value, const Real cell_size, const std::size_t num_cells)
 

Function Documentation

◆ cellIndex()

std::size_t TriangleManifoldUtils::cellIndex ( const Real  value,
const Real  min_value,
const Real  cell_size,
const std::size_t  num_cells 
)

Definition at line 33 of file TriangleManifold.C.

Referenced by TriangleManifold::buildCandidateGrid(), and TriangleManifold::rayCandidates().

34 {
35  // Clamp to the valid range so near-boundary roundoff does not produce an invalid cell id.
36  if (num_cells <= 1)
37  return 0;
38 
39  const auto index = static_cast<long long>(std::floor((value - min_value) / cell_size));
40  if (index < 0)
41  return 0;
42  if (index >= static_cast<long long>(num_cells))
43  return num_cells - 1;
44  return static_cast<std::size_t>(index);
45 }

◆ packCell()

std::uint64_t TriangleManifoldUtils::packCell ( const std::size_t  y_index,
const std::size_t  z_index 
)

Definition at line 26 of file TriangleManifold.C.

Referenced by TriangleManifold::buildCandidateGrid(), and TriangleManifold::rayCandidates().

27 {
28  // The acceleration structure is indexed in yz because all rays travel in the +x direction.
29  return (static_cast<std::uint64_t>(y_index) << 32) | static_cast<std::uint64_t>(z_index);
30 }