AXOM
Axom provides a robust, flexible software infrastructure for the development of multi-physics applications and computational tools.
axom::bump::VariableShape< T, NDIMS, N > Class Template Reference

Represent various shapes that consist of points. More...

#include </home/docs/checkouts/readthedocs.org/user_builds/axom/checkouts/main/src/axom/bump/VariableShape.hpp>

Public Types

using PointType = axom::primal::Point< T, NDIMS >
 

Public Member Functions

AXOM_HOST_DEVICE int id () const
 Return the shape id type. More...
 
AXOM_HOST_DEVICE axom::IndexType size () const
 Return the number of points in the shape. More...
 
AXOM_HOST_DEVICE void push_back (const PointType &pt)
 Add a point to the shape. More...
 
AXOM_HOST_DEVICE const PointTypeoperator[] (axom::IndexType index) const
 Return the index'th point. More...
 
AXOM_HOST_DEVICE double volume () const
 Return unsigned shape volume. More...
 
AXOM_HOST_DEVICE void splitPyramid (axom::primal::Tetrahedron< T, NDIMS > tets[2]) const
 Split the shape into tets. More...
 
AXOM_HOST_DEVICE void splitWedge (axom::primal::Tetrahedron< T, NDIMS > tets[3]) const
 Split the shape into tets. More...
 

Public Attributes

int m_shapeId
 
axom::StaticArray< PointType, N > m_points
 

Detailed Description

template<typename T, int NDIMS, int N = 8>
class axom::bump::VariableShape< T, NDIMS, N >

Represent various shapes that consist of points.

Template Parameters
TThe coordinate precision type.
NDIMSThe spatial coordinate dimension.
NThe max number of points that the shape can contain.

Member Typedef Documentation

◆ PointType

template<typename T , int NDIMS, int N = 8>
using axom::bump::VariableShape< T, NDIMS, N >::PointType = axom::primal::Point<T, NDIMS>

Member Function Documentation

◆ id()

template<typename T , int NDIMS, int N = 8>
AXOM_HOST_DEVICE int axom::bump::VariableShape< T, NDIMS, N >::id ( ) const
inline

Return the shape id type.

Returns
The shape id type.

References axom::bump::VariableShape< T, NDIMS, N >::m_shapeId.

◆ size()

template<typename T , int NDIMS, int N = 8>
AXOM_HOST_DEVICE axom::IndexType axom::bump::VariableShape< T, NDIMS, N >::size ( ) const
inline

Return the number of points in the shape.

Returns
The number of points in the shape.

References axom::bump::VariableShape< T, NDIMS, N >::m_points.

◆ push_back()

template<typename T , int NDIMS, int N = 8>
AXOM_HOST_DEVICE void axom::bump::VariableShape< T, NDIMS, N >::push_back ( const PointType pt)
inline

Add a point to the shape.

Parameters
ptThe point to add.

References axom::bump::VariableShape< T, NDIMS, N >::m_points.

◆ operator[]()

template<typename T , int NDIMS, int N = 8>
AXOM_HOST_DEVICE const PointType& axom::bump::VariableShape< T, NDIMS, N >::operator[] ( axom::IndexType  index) const
inline

Return the index'th point.

Parameters
indexThe index of the point to return.
Returns
The desired point.

References axom::bump::VariableShape< T, NDIMS, N >::m_points.

◆ volume()

◆ splitPyramid()

template<typename T , int NDIMS, int N = 8>
AXOM_HOST_DEVICE void axom::bump::VariableShape< T, NDIMS, N >::splitPyramid ( axom::primal::Tetrahedron< T, NDIMS >  tets[2]) const
inline

Split the shape into tets.

Parameters
[out]tetsThe output array of tets that make up the shape.

References axom::bump::VariableShape< T, NDIMS, N >::m_points, axom::bump::VariableShape< T, NDIMS, N >::m_shapeId, axom::bump::views::Pyramid_ShapeID, and SLIC_ASSERT.

◆ splitWedge()

template<typename T , int NDIMS, int N = 8>
AXOM_HOST_DEVICE void axom::bump::VariableShape< T, NDIMS, N >::splitWedge ( axom::primal::Tetrahedron< T, NDIMS >  tets[3]) const
inline

Split the shape into tets.

Parameters
[out]tetsThe output array of tets that make up the shape.

References axom::bump::VariableShape< T, NDIMS, N >::m_points, axom::bump::VariableShape< T, NDIMS, N >::m_shapeId, SLIC_ASSERT, and axom::bump::views::Wedge_ShapeID.

Member Data Documentation

◆ m_shapeId

template<typename T , int NDIMS, int N = 8>
int axom::bump::VariableShape< T, NDIMS, N >::m_shapeId

◆ m_points

template<typename T , int NDIMS, int N = 8>
axom::StaticArray<PointType, N> axom::bump::VariableShape< T, NDIMS, N >::m_points

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