AXOM
Axom provides a robust, flexible software infrastructure for the development of multi-physics applications and computational tools.
axom::bump::detail Namespace Reference

Classes

struct  ComputeCoordsetExtents
 Base template for computing coordset extents. This algorithm handles any coordset view. More...
 
struct  ComputeCoordsetExtents< ExecSpace, axom::bump::views::UniformCoordsetView< DataType, NDIMS >, DataType, NDIMS >
 
class  ComputeCoordsetExtents< ExecSpace, typename std::conditional< NDIMS==3, axom::bump::views::RectilinearCoordsetView3< DataType >, axom::bump::views::RectilinearCoordsetView2< DataType > >::type, DataType, NDIMS >
 
struct  Rounder
 Round a number. More...
 
struct  Rounder< float >
 Round a float number. More...
 

Functions

template<typename T , axom::primal::PolygonArray ARRAY_TYPE, int MAX_VERTS>
AXOM_SUPPRESS_HD_WARN AXOM_HOST_DEVICE double shapeOverlap (const axom::primal::Polygon< T, 2, ARRAY_TYPE, MAX_VERTS > &shape1, const axom::primal::Polygon< T, 2, ARRAY_TYPE, MAX_VERTS > &shape2, double eps=1.e-10)
 Return area where 2 polygons overlap. More...
 
template<typename T , typename Shape2Type >
AXOM_HOST_DEVICE double shapeOverlap (const VariableShape< T, 3 > &shape1, const Shape2Type &shape2, double eps=1.e-10)
 Return the volume of the overlap between the shapes. More...
 
template<typename T , typename Shape1Type >
AXOM_HOST_DEVICE double shapeOverlap (const Shape1Type &shape1, const VariableShape< T, 3 > &shape2, double eps=1.e-10)
 Return the volume of the overlap between the shapes. More...
 
template<typename T >
AXOM_HOST_DEVICE double shapeOverlap (const VariableShape< T, 3 > &shape1, const VariableShape< T, 3 > &shape2, double eps=1.e-10)
 Return the volume of the overlap between the shapes. More...
 
template<typename T >
AXOM_HOST_DEVICE double shapeOverlap (const axom::primal::Tetrahedron< T, 3 > &shape1, const axom::primal::Tetrahedron< T, 3 > &shape2, double eps=1.e-10)
 Return the volume of the overlap between the shapes. More...
 
template<typename T >
AXOM_HOST_DEVICE double shapeOverlap (const axom::primal::Tetrahedron< T, 3 > &shape1, const axom::primal::Hexahedron< T, 3 > &shape2, double eps=1.e-10)
 
template<typename T >
AXOM_HOST_DEVICE double shapeOverlap (const axom::primal::Tetrahedron< T, 3 > &shape1, const axom::primal::Polyhedron< T, 3 > &shape2, double eps=1.e-10)
 
template<typename T >
AXOM_HOST_DEVICE double shapeOverlap (const axom::primal::Tetrahedron< T, 3 > &shape1, const axom::bump::PolyhedralFaces< T > &shape2, double eps=1.e-10)
 
template<typename T >
AXOM_HOST_DEVICE double shapeOverlap (const axom::primal::Hexahedron< T, 3 > &shape1, const axom::primal::Tetrahedron< T, 3 > &shape2, double eps=1.e-10)
 
template<typename T >
AXOM_HOST_DEVICE double shapeOverlap (const axom::primal::Hexahedron< T, 3 > &shape1, const axom::primal::Hexahedron< T, 3 > &shape2, double eps=1.e-10)
 
template<typename T >
AXOM_HOST_DEVICE double shapeOverlap (const axom::primal::Hexahedron< T, 3 > &shape1, const axom::primal::Polyhedron< T, 3 > &shape2, double eps=1.e-10)
 
template<typename T >
AXOM_HOST_DEVICE double shapeOverlap (const axom::primal::Hexahedron< T, 3 > &shape1, const axom::bump::PolyhedralFaces< T > &shape2, double eps=1.e-10)
 
template<typename T >
AXOM_HOST_DEVICE double shapeOverlap (const axom::primal::Polyhedron< T, 3 > &shape1, const axom::primal::Tetrahedron< T, 3 > &shape2, double eps=1.e-10)
 
template<typename T >
AXOM_HOST_DEVICE double shapeOverlap (const axom::primal::Polyhedron< T, 3 > &shape1, const axom::primal::Hexahedron< T, 3 > &shape2, double eps=1.e-10)
 
template<typename T >
AXOM_HOST_DEVICE double shapeOverlap (const axom::primal::Polyhedron< T, 3 > &shape1, const axom::primal::Polyhedron< T, 3 > &shape2, double eps=1.e-10)
 
template<typename T >
AXOM_HOST_DEVICE double shapeOverlap (const axom::primal::Polyhedron< T, 3 > &shape1, const axom::bump::PolyhedralFaces< T > &shape2, double eps=1.e-10)
 
template<typename T >
AXOM_HOST_DEVICE double shapeOverlap (const axom::bump::PolyhedralFaces< T > &shape1, const axom::primal::Tetrahedron< T, 3 > &shape2, double eps=1.e-10)
 
template<typename T >
AXOM_HOST_DEVICE double shapeOverlap (const axom::bump::PolyhedralFaces< T > &shape1, const axom::primal::Hexahedron< T, 3 > &shape2, double eps=1.e-10)
 
template<typename T >
AXOM_HOST_DEVICE double shapeOverlap (const axom::bump::PolyhedralFaces< T > &shape1, const axom::primal::Polyhedron< T, 3 > &shape2, double eps=1.e-10)
 
template<typename T >
AXOM_HOST_DEVICE double shapeOverlap (const axom::bump::PolyhedralFaces< T > &shape1, const axom::bump::PolyhedralFaces< T > &shape2, double eps=1.e-10)
 

Function Documentation

◆ shapeOverlap() [1/20]

template<typename T , axom::primal::PolygonArray ARRAY_TYPE, int MAX_VERTS>
AXOM_SUPPRESS_HD_WARN AXOM_HOST_DEVICE double axom::bump::detail::shapeOverlap ( const axom::primal::Polygon< T, 2, ARRAY_TYPE, MAX_VERTS > &  shape1,
const axom::primal::Polygon< T, 2, ARRAY_TYPE, MAX_VERTS > &  shape2,
double  eps = 1.e-10 
)

Return area where 2 polygons overlap.

Parameters
shape1The subject polygon.
shape2The clip polygon.
Returns
The area common to 2 polygons.

◆ shapeOverlap() [2/20]

template<typename T >
AXOM_HOST_DEVICE double axom::bump::detail::shapeOverlap ( const axom::primal::Tetrahedron< T, 3 > &  shape1,
const axom::primal::Tetrahedron< T, 3 > &  shape2,
double  eps = 1.e-10 
)

Return the volume of the overlap between the shapes.

Parameters
shape1The subject shape.
shape2The clip shape.
Returns
The volume of the overlap between the shapes.

References axom::primal::clip().

◆ shapeOverlap() [3/20]

template<typename T >
AXOM_HOST_DEVICE double axom::bump::detail::shapeOverlap ( const axom::primal::Tetrahedron< T, 3 > &  shape1,
const axom::primal::Hexahedron< T, 3 > &  shape2,
double  eps = 1.e-10 
)

References axom::primal::clip().

◆ shapeOverlap() [4/20]

template<typename T >
AXOM_HOST_DEVICE double axom::bump::detail::shapeOverlap ( const axom::primal::Tetrahedron< T, 3 > &  shape1,
const axom::primal::Polyhedron< T, 3 > &  shape2,
double  eps = 1.e-10 
)

References axom::primal::clip().

◆ shapeOverlap() [5/20]

template<typename T >
AXOM_HOST_DEVICE double axom::bump::detail::shapeOverlap ( const axom::primal::Tetrahedron< T, 3 > &  shape1,
const axom::bump::PolyhedralFaces< T > &  shape2,
double  eps = 1.e-10 
)

◆ shapeOverlap() [6/20]

template<typename T >
AXOM_HOST_DEVICE double axom::bump::detail::shapeOverlap ( const axom::primal::Hexahedron< T, 3 > &  shape1,
const axom::primal::Tetrahedron< T, 3 > &  shape2,
double  eps = 1.e-10 
)

References axom::primal::clip().

◆ shapeOverlap() [7/20]

template<typename T >
AXOM_HOST_DEVICE double axom::bump::detail::shapeOverlap ( const axom::primal::Hexahedron< T, 3 > &  shape1,
const axom::primal::Hexahedron< T, 3 > &  shape2,
double  eps = 1.e-10 
)

References axom::primal::clip().

◆ shapeOverlap() [8/20]

template<typename T >
AXOM_HOST_DEVICE double axom::bump::detail::shapeOverlap ( const axom::primal::Hexahedron< T, 3 > &  shape1,
const axom::primal::Polyhedron< T, 3 > &  shape2,
double  eps = 1.e-10 
)

References axom::primal::clip().

◆ shapeOverlap() [9/20]

template<typename T >
AXOM_HOST_DEVICE double axom::bump::detail::shapeOverlap ( const axom::primal::Hexahedron< T, 3 > &  shape1,
const axom::bump::PolyhedralFaces< T > &  shape2,
double  eps = 1.e-10 
)

◆ shapeOverlap() [10/20]

template<typename T >
AXOM_HOST_DEVICE double axom::bump::detail::shapeOverlap ( const axom::primal::Polyhedron< T, 3 > &  shape1,
const axom::primal::Tetrahedron< T, 3 > &  shape2,
double  eps = 1.e-10 
)

References axom::primal::clip().

◆ shapeOverlap() [11/20]

template<typename T >
AXOM_HOST_DEVICE double axom::bump::detail::shapeOverlap ( const axom::primal::Polyhedron< T, 3 > &  shape1,
const axom::primal::Hexahedron< T, 3 > &  shape2,
double  eps = 1.e-10 
)

References axom::primal::clip().

◆ shapeOverlap() [12/20]

template<typename T >
AXOM_HOST_DEVICE double axom::bump::detail::shapeOverlap ( const axom::primal::Polyhedron< T, 3 > &  shape1,
const axom::primal::Polyhedron< T, 3 > &  shape2,
double  eps = 1.e-10 
)

References axom::primal::clip().

◆ shapeOverlap() [13/20]

template<typename T >
AXOM_HOST_DEVICE double axom::bump::detail::shapeOverlap ( const axom::primal::Polyhedron< T, 3 > &  shape1,
const axom::bump::PolyhedralFaces< T > &  shape2,
double  eps = 1.e-10 
)

◆ shapeOverlap() [14/20]

template<typename T >
AXOM_HOST_DEVICE double axom::bump::detail::shapeOverlap ( const axom::bump::PolyhedralFaces< T > &  shape1,
const axom::primal::Tetrahedron< T, 3 > &  shape2,
double  eps = 1.e-10 
)

References shapeOverlap().

◆ shapeOverlap() [15/20]

template<typename T >
AXOM_HOST_DEVICE double axom::bump::detail::shapeOverlap ( const axom::bump::PolyhedralFaces< T > &  shape1,
const axom::primal::Hexahedron< T, 3 > &  shape2,
double  eps = 1.e-10 
)

References shapeOverlap().

◆ shapeOverlap() [16/20]

template<typename T >
AXOM_HOST_DEVICE double axom::bump::detail::shapeOverlap ( const axom::bump::PolyhedralFaces< T > &  shape1,
const axom::primal::Polyhedron< T, 3 > &  shape2,
double  eps = 1.e-10 
)

References shapeOverlap().

◆ shapeOverlap() [17/20]

◆ shapeOverlap() [18/20]

template<typename T , typename Shape2Type >
AXOM_HOST_DEVICE double axom::bump::detail::shapeOverlap ( const VariableShape< T, 3 > &  shape1,
const Shape2Type &  shape2,
double  eps = 1.e-10 
)

◆ shapeOverlap() [19/20]

template<typename T , typename Shape1Type >
AXOM_HOST_DEVICE double axom::bump::detail::shapeOverlap ( const Shape1Type &  shape1,
const VariableShape< T, 3 > &  shape2,
double  eps = 1.e-10 
)

◆ shapeOverlap() [20/20]

template<typename T >
AXOM_HOST_DEVICE double axom::bump::detail::shapeOverlap ( const VariableShape< T, 3 > &  shape1,
const VariableShape< T, 3 > &  shape2,
double  eps = 1.e-10 
)