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

Namespaces

 internal
 

Classes

class  BasicIndexing
 A basic indexing class that provides methods for indexing transforms that have no effect. This is provided for topology view compatibility in algorithms that might use structured/unstructured topologies where index transforms are important. More...
 
struct  make_rectilinear_coordset
 Base template for creating a rectilinear coordset view. More...
 
struct  make_rectilinear_coordset< DataType, 3 >
 Partial specialization for creating 3D rectilinear coordset view. More...
 
struct  make_rectilinear_coordset< DataType, 2 >
 Partial specialization for creating 2D rectilinear coordset view. More...
 
struct  make_uniform_coordset
 Base template for creating a rectilinear coordset view. More...
 
struct  make_uniform_coordset< 3 >
 Partial specialization for creating 3D uniform coordset view. More...
 
struct  make_uniform_coordset< 2 >
 Partial specialization for creating 2D rectilinear coordset view. More...
 
struct  make_explicit_coordset
 Base template for creating a explicit coordset view. More...
 
struct  make_explicit_coordset< DataType, 3 >
 Partial specialization for creating 3D explicit coordset view. More...
 
struct  make_explicit_coordset< DataType, 2 >
 Partial specialization for creating 2D explicit coordset view. More...
 
struct  make_unibuffer_matset
 Make a unibuffer matset view from a Conduit node. More...
 
struct  make_rectilinear_topology
 Base template. More...
 
struct  make_rectilinear_topology< 3 >
 Create a 3D structured topology view with normal structured indexing. More...
 
struct  make_rectilinear_topology< 2 >
 Create a 2D structured topology view with normal structured indexing. More...
 
struct  make_rectilinear_topology< 1 >
 Create a 1D structured topology view with normal structured indexing. More...
 
struct  make_strided_structured_topology
 Base template for strided structured topology creation. More...
 
struct  make_strided_structured_topology< 3 >
 Create a 3D structured topology view with strided structured indexing. More...
 
struct  make_strided_structured_topology< 2 >
 Create a 2D structured topology view with strided structured indexing. More...
 
struct  make_strided_structured_topology< 1 >
 Create a 1D structured topology view with strided structured indexing. More...
 
struct  make_structured_topology
 Base template for structured topology creation. More...
 
struct  make_structured_topology< 3 >
 Create a 3D structured topology view with normal structured indexing. More...
 
struct  make_structured_topology< 2 >
 Create a 2D structured topology view with normal structured indexing. More...
 
struct  make_structured_topology< 1 >
 Create a 1D structured topology view with normal structured indexing. More...
 
struct  make_uniform_topology
 Base template for uniform topology creation. More...
 
struct  make_uniform_topology< 3 >
 Create a 3D structured topology view with normal structured indexing. More...
 
struct  make_uniform_topology< 2 >
 Create a 2D structured topology view with normal structured indexing. More...
 
struct  make_uniform_topology< 1 >
 Create a 1D structured topology view with normal structured indexing. More...
 
struct  make_unstructured_single_shape_topology
 This struct instantiates a topology view for an unstructured mesh that contains a single shape. More...
 
struct  make_unstructured_polyhedral_topology
 This struct instantiates a topology view for an unstructured mesh that contains polyhedra. More...
 
class  ExplicitCoordsetView
 This class provides a view for Conduit/Blueprint explicit coordsets. More...
 
class  ExplicitCoordsetView< DataType, 2 >
 This class provides a view for Conduit/Blueprint 2d explicit coordsets. More...
 
class  ExplicitCoordsetView< DataType, 3 >
 This class provides a view for Conduit/Blueprint 3d explicit coordsets. More...
 
struct  Material
 This object contains information about the materials as provided by a Conduit node. More...
 
class  UnibufferMaterialView
 Material view for unibuffer matsets. More...
 
class  MultiBufferMaterialView
 View for multi-buffer matsets. More...
 
class  ElementDominantMaterialView
 View for element-dominant matsets. More...
 
class  MaterialDominantMaterialView
 View for material-dominant matsets. More...
 
class  RectilinearCoordsetView2
 
class  RectilinearCoordsetView3
 
struct  PointTraits
 Point type traits. More...
 
struct  LineTraits
 Line type traits. More...
 
struct  TriTraits
 Triangle type traits. More...
 
struct  QuadTraits
 Quad type traits. More...
 
struct  TetTraits
 Tet type traits. More...
 
struct  PyramidTraits
 Pyramid type traits. More...
 
struct  WedgeTraits
 Wedge type traits. More...
 
struct  HexTraits
 Hex type traits. More...
 
struct  PolygonTraits
 
struct  PolyhedronTraits
 Polyhedron shape traits. More...
 
struct  PolygonShape
 This struct represents a polygon zone. More...
 
struct  Shape
 This class extends the ShapeTraits with object state so it can represent a zone. More...
 
struct  VariableShape
 This is a shape that can act as any of the other shapes. More...
 
struct  StridedStructuredIndexing
 This class encapsulates data for strided structured indexing and provides methods for creating/manipulating indices. More...
 
class  StructuredIndexing
 This class encapsulates a structured mesh size and contains methods to help with indexing into it. More...
 
class  StructuredTopologyView
 This class provides a view for Conduit/Blueprint structured grid types. More...
 
class  UniformCoordsetView
 
class  ShapeMap
 Given a shape value, we can get the Shape::id() that is used internally. More...
 
class  UnstructuredTopologyMixedShapeView
 This class provides a view for Conduit/Blueprint mixed shape unstructured grids. More...
 
class  UnstructuredTopologyPolyhedralView
 This class implements a view for Blueprint polyhedral topologies. More...
 
class  UnstructuredTopologySingleShapeView
 This class provides a view for Conduit/Blueprint single shape unstructured grids. More...
 
struct  view_traits
 General traits for topology views. More...
 
struct  view_traits< StructuredTopologyView< StridedStructuredIndexing< IndexT, 3 > > >
 
struct  view_traits< StructuredTopologyView< StridedStructuredIndexing< IndexT, 2 > > >
 
struct  view_traits< StructuredTopologyView< StridedStructuredIndexing< IndexT, 1 > > >
 
struct  array_view_traits
 Base template for some ArrayView traits. More...
 
struct  array_view_traits< axom::ArrayView< std::uint8_t > >
 
struct  array_view_traits< axom::ArrayView< const std::uint8_t > >
 
struct  array_view_traits< axom::ArrayView< std::uint16_t > >
 
struct  array_view_traits< axom::ArrayView< const std::uint16_t > >
 
struct  array_view_traits< axom::ArrayView< std::uint32_t > >
 
struct  array_view_traits< axom::ArrayView< const std::uint32_t > >
 
struct  array_view_traits< axom::ArrayView< std::uint64_t > >
 
struct  array_view_traits< axom::ArrayView< const std::uint64_t > >
 
struct  array_view_traits< axom::ArrayView< std::int8_t > >
 
struct  array_view_traits< axom::ArrayView< const std::int8_t > >
 
struct  array_view_traits< axom::ArrayView< std::int16_t > >
 
struct  array_view_traits< axom::ArrayView< const std::int16_t > >
 
struct  array_view_traits< axom::ArrayView< std::int32_t > >
 
struct  array_view_traits< axom::ArrayView< const std::int32_t > >
 
struct  array_view_traits< axom::ArrayView< std::int64_t > >
 
struct  array_view_traits< axom::ArrayView< const std::int64_t > >
 
struct  array_view_traits< axom::ArrayView< float > >
 
struct  array_view_traits< axom::ArrayView< const float > >
 
struct  array_view_traits< axom::ArrayView< double > >
 
struct  array_view_traits< axom::ArrayView< const double > >
 

Typedefs

using MaterialInformation = std::vector< Material >
 
template<typename ConnType >
using PointShape = Shape< PointTraits, typename std::conditional< std::is_integral< ConnType >::value, axom::ArrayView< ConnType >, ConnType >::type >
 Some concrete shape classes based on the shape traits. More...
 
template<typename ConnType >
using LineShape = Shape< LineTraits, typename std::conditional< std::is_integral< ConnType >::value, axom::ArrayView< ConnType >, ConnType >::type >
 
template<typename ConnType >
using TriShape = Shape< TriTraits, typename std::conditional< std::is_integral< ConnType >::value, axom::ArrayView< ConnType >, ConnType >::type >
 
template<typename ConnType >
using QuadShape = Shape< QuadTraits, typename std::conditional< std::is_integral< ConnType >::value, axom::ArrayView< ConnType >, ConnType >::type >
 
template<typename ConnType >
using TetShape = Shape< TetTraits, typename std::conditional< std::is_integral< ConnType >::value, axom::ArrayView< ConnType >, ConnType >::type >
 
template<typename ConnType >
using PyramidShape = Shape< PyramidTraits, typename std::conditional< std::is_integral< ConnType >::value, axom::ArrayView< ConnType >, ConnType >::type >
 
template<typename ConnType >
using WedgeShape = Shape< WedgeTraits, typename std::conditional< std::is_integral< ConnType >::value, axom::ArrayView< ConnType >, ConnType >::type >
 
template<typename ConnType >
using HexShape = Shape< HexTraits, typename std::conditional< std::is_integral< ConnType >::value, axom::ArrayView< ConnType >, ConnType >::type >
 

Enumerations

enum  {
  Point_ShapeID = 0 , Line_ShapeID = 1 , Tri_ShapeID = 2 , Quad_ShapeID = 3 ,
  Polygon_ShapeID = 4 , Tet_ShapeID = 5 , Pyramid_ShapeID = 6 , Wedge_ShapeID = 7 ,
  Hex_ShapeID = 8 , Polyhedron_ShapeID = 9 , Mixed_ShapeID = 10 , Invalid_ShapeID = 20
}
 Shape ids. These are used to identify shapes. These are used as indices in bit fields in some algorithms. More...
 

Functions

template<typename FuncType >
void dispatch_uniform_coordset (const conduit::Node &coordset, FuncType &&func)
 Dispatch an uniform coordset to a function. More...
 
template<typename FuncType >
void dispatch_rectilinear_coordset (const conduit::Node &coordset, FuncType &&func)
 Dispatch a rectilinear coordset to a function. More...
 
template<typename FuncType >
void dispatch_explicit_coordset (const conduit::Node &coordset, FuncType &&func)
 Dispatch an explicit coordset to a function. More...
 
template<typename FuncType >
void dispatch_coordset (const conduit::Node &coordset, FuncType &&func)
 Given a Conduit/Blueprint coordset, create an appropriate view and call the supplied function, passing the coordset view to it. More...
 
template<typename FuncType , size_t MAXMATERIALS = 20>
bool dispatch_material_unibuffer (const conduit::Node &matset, FuncType &&func)
 Dispatch a Conduit node containing a unibuffer matset to a function as the appropriate type of matset view. More...
 
template<typename IntElement >
IntElement getMaterialID (const conduit::Node &matset, const std::string &matName, IntElement defaultValue)
 Use the material_map, if it exists, to get the material id of the named material. More...
 
template<typename FuncType , size_t MAXMATERIALS = 20>
bool dispatch_material_multibuffer (const conduit::Node &matset, FuncType &&func)
 Dispatch a Conduit node containing a multibuffer matset to a function as the appropriate type of matset view. More...
 
template<typename FuncType , size_t MAXMATERIALS = 20>
bool dispatch_material_element_dominant (const conduit::Node &matset, FuncType &&func)
 Dispatch a Conduit node containing a element-dominant matset to a function as the appropriate type of matset view. More...
 
template<typename FuncType , size_t MAXMATERIALS = 20>
bool dispatch_material_material_dominant (const conduit::Node &matset, FuncType &&func)
 Dispatch a Conduit node containing a material-dominant matset to a function as the appropriate type of matset view. More...
 
template<typename FuncType , size_t MAXMATERIALS = 20>
bool dispatch_material (const conduit::Node &matset, FuncType &&func)
 Dispatch a Conduit node containing a matset to a function as the appropriate type of matset view. More...
 
template<int SelectedDimensions = select_dimensions(1, 2, 3), typename FuncType >
void dispatch_rectilinear_topology (const conduit::Node &topo, FuncType &&func)
 Creates a topology view compatible with rectilinear topologies and passes that view to the supplied function. More...
 
template<int SelectedDimensions = select_dimensions(1, 2, 3), typename FuncType >
void dispatch_structured_topology (const conduit::Node &topo, FuncType &&func)
 Creates a topology view compatible with structured topologies and passes that view to the supplied function. More...
 
template<int SelectedDimensions = select_dimensions(1, 2, 3), typename FuncType >
void dispatch_structured_topologies (const conduit::Node &topo, FuncType &&func)
 Creates a topology view compatible with various logically "structured" topologies (uniform, rectilinear, structured) and passes that view to the supplied function. More...
 
template<int SelectedDimensions = select_dimensions(1, 2, 3), int ShapeTypes = AnyShape, typename FuncType >
void dispatch_topology (const conduit::Node &topo, FuncType &&func)
 Creates a topology view and passes that view to the supplied function. More...
 
template<int SelectedDimensions = select_dimensions(1, 2, 3), typename FuncType >
void dispatch_uniform_topology (const conduit::Node &topo, FuncType &&func)
 Creates a topology view compatible with uniform topologies and passes that view to the supplied function. More...
 
template<typename... Args>
constexpr int encode_shapes (Args... args)
 
template<typename... Args>
constexpr int select_shapes (Args... args)
 This function turns a list of shapeID values into a bitfield that encodes the shapes. We use this in templating to limit which shapes get supported in dispatch instantiation. More...
 
template<typename ConnType , int ShapeTypes = AnyShape, typename FuncType >
void typed_dispatch_unstructured_topology (const conduit::Node &topo, FuncType &&func)
 This function dispatches a Conduit topology to the right view type and passes that view to the supplied function/lambda. More...
 
template<int ShapeTypes = AnyShape, typename FuncType >
void dispatch_unstructured_topology (const conduit::Node &topo, FuncType &&func)
 Dispatch in a way that does not care about the connectivity type. More...
 
template<typename... Dimensions>
constexpr int encode_dimensions (Dimensions... dims)
 
template<typename... Dimensions>
constexpr int select_dimensions (Dimensions... dims)
 
constexpr bool dimension_selected (int encoded_dims, int dim)
 
void verify (const conduit::Node &obj, const std::string &protocol=std::string())
 Call Blueprint mesh verify functions and convert the output to SLIC_ERROR if the verify method failed. More...
 
MaterialInformation materials (const conduit::Node &matset)
 Return a vector of Material from a matset (this is the material_map) More...
 
template<typename T >
constexpr AXOM_HOST_DEVICE bool isValidShapeID (T shapeID)
 Determine whether a value is a valid ShapeID. More...
 
constexpr AXOM_HOST_DEVICE IndexType shapeDimension (int shapeId)
 prototype More...
 
int shapeNameToID (const std::string &name)
 Given a shape name (matches Blueprint shape name), return the Shape id() value. More...
 
ShapeMap buildShapeMap (const conduit::Node &n_topo, axom::Array< IndexType > &values, axom::Array< IndexType > &ids, int allocatorID)
 Populate the shape map values/ids arrays using data in the topology's shape_map. More...
 
static constexpr int shapes_for_dimension (int dimension)
 Return which shapes to expect for a given dimension. More...
 
template<typename FuncType >
void dispatch_unstructured_polyhedral_topology (const conduit::Node &topo, FuncType &&func)
 This function dispatches a Conduit polyhedral unstructured topology. More...
 
template<typename ConnType , typename FuncType >
void typed_dispatch_unstructured_polyhedral_topology (const conduit::Node &topo, FuncType &&func)
 
template<typename FuncType >
void dispatch_unstructured_mixed_topology (const conduit::Node &topo, FuncType &&func)
 This function dispatches a Conduit mixed unstructured topology. More...
 
template<typename ConnType , typename FuncType >
void typed_dispatch_unstructured_mixed_topology (const conduit::Node &topo, FuncType &&func)
 

Variables

constexpr int AnyShape = -1
 

Typedef Documentation

◆ MaterialInformation

using axom::bump::views::MaterialInformation = typedef std::vector<Material>

◆ PointShape

template<typename ConnType >
using axom::bump::views::PointShape = typedef Shape<PointTraits, typename std::conditional<std::is_integral<ConnType>::value, axom::ArrayView<ConnType>, ConnType>::type>

Some concrete shape classes based on the shape traits.

Template Parameters
ConnTypeA type of the connectivity values or a type that "stores" the data either in actuality, or as a view. If an integral type is passed, an axom::ArrayView will be used.

◆ LineShape

template<typename ConnType >
using axom::bump::views::LineShape = typedef Shape<LineTraits, typename std::conditional<std::is_integral<ConnType>::value, axom::ArrayView<ConnType>, ConnType>::type>

◆ TriShape

template<typename ConnType >
using axom::bump::views::TriShape = typedef Shape<TriTraits, typename std::conditional<std::is_integral<ConnType>::value, axom::ArrayView<ConnType>, ConnType>::type>

◆ QuadShape

template<typename ConnType >
using axom::bump::views::QuadShape = typedef Shape<QuadTraits, typename std::conditional<std::is_integral<ConnType>::value, axom::ArrayView<ConnType>, ConnType>::type>

◆ TetShape

template<typename ConnType >
using axom::bump::views::TetShape = typedef Shape<TetTraits, typename std::conditional<std::is_integral<ConnType>::value, axom::ArrayView<ConnType>, ConnType>::type>

◆ PyramidShape

template<typename ConnType >
using axom::bump::views::PyramidShape = typedef Shape<PyramidTraits, typename std::conditional<std::is_integral<ConnType>::value, axom::ArrayView<ConnType>, ConnType>::type>

◆ WedgeShape

template<typename ConnType >
using axom::bump::views::WedgeShape = typedef Shape<WedgeTraits, typename std::conditional<std::is_integral<ConnType>::value, axom::ArrayView<ConnType>, ConnType>::type>

◆ HexShape

template<typename ConnType >
using axom::bump::views::HexShape = typedef Shape<HexTraits, typename std::conditional<std::is_integral<ConnType>::value, axom::ArrayView<ConnType>, ConnType>::type>

Enumeration Type Documentation

◆ anonymous enum

anonymous enum

Shape ids. These are used to identify shapes. These are used as indices in bit fields in some algorithms.

Enumerator
Point_ShapeID 
Line_ShapeID 
Tri_ShapeID 
Quad_ShapeID 
Polygon_ShapeID 
Tet_ShapeID 
Pyramid_ShapeID 
Wedge_ShapeID 
Hex_ShapeID 
Polyhedron_ShapeID 
Mixed_ShapeID 
Invalid_ShapeID 

Function Documentation

◆ dispatch_uniform_coordset()

template<typename FuncType >
void axom::bump::views::dispatch_uniform_coordset ( const conduit::Node &  coordset,
FuncType &&  func 
)

Dispatch an uniform coordset to a function.

Template Parameters
FuncTypeThe type of the function / lambda to invoke. It is expected that the callable accepts an auto argument for a coordset view.
Parameters
coordsetThe Conduit node that contains the coordset.
funcThe function/lambda to invoke using the coordset view.

References SLIC_ERROR, and verify().

◆ dispatch_rectilinear_coordset()

template<typename FuncType >
void axom::bump::views::dispatch_rectilinear_coordset ( const conduit::Node &  coordset,
FuncType &&  func 
)

Dispatch a rectilinear coordset to a function.

Template Parameters
FuncTypeThe type of the function / lambda to invoke. It is expected that the callable accepts an auto argument for a coordset view.
Parameters
coordsetThe Conduit node that contains the coordset.
funcThe function/lambda to invoke using the coordset view.

References SLIC_ERROR, and verify().

◆ dispatch_explicit_coordset()

template<typename FuncType >
void axom::bump::views::dispatch_explicit_coordset ( const conduit::Node &  coordset,
FuncType &&  func 
)

Dispatch an explicit coordset to a function.

Template Parameters
FuncTypeThe type of the function / lambda to invoke. It is expected that the callable accepts an auto argument for a coordset view.
Parameters
coordsetThe Conduit node that contains the coordset.
funcThe function/lambda to invoke using the coordset view.

References SLIC_ERROR, and verify().

◆ dispatch_coordset()

template<typename FuncType >
void axom::bump::views::dispatch_coordset ( const conduit::Node &  coordset,
FuncType &&  func 
)

Given a Conduit/Blueprint coordset, create an appropriate view and call the supplied function, passing the coordset view to it.

Template Parameters
FuncTypeThe type of the function / lambda to invoke. It is expected that the callable accepts an auto argument for a coordset view.
Parameters
coordsetThe Conduit node that contains the coordset.
funcThe function/lambda to invoke using the coordset view.

References dispatch_explicit_coordset(), dispatch_rectilinear_coordset(), and dispatch_uniform_coordset().

◆ dispatch_material_unibuffer()

template<typename FuncType , size_t MAXMATERIALS = 20>
bool axom::bump::views::dispatch_material_unibuffer ( const conduit::Node &  matset,
FuncType &&  func 
)

Dispatch a Conduit node containing a unibuffer matset to a function as the appropriate type of matset view.

Template Parameters
FuncTypeThe function/lambda type that will take the matset.
Parameters
matsetThe node that contains the matset.
funcThe function/lambda that will operate on the matset view.

References axom::bump::views::UnibufferMaterialView< IndexT, FloatT, MAXMATERIALS >::set(), and verify().

◆ getMaterialID()

template<typename IntElement >
IntElement axom::bump::views::getMaterialID ( const conduit::Node &  matset,
const std::string &  matName,
IntElement  defaultValue 
)

Use the material_map, if it exists, to get the material id of the named material.

Parameters
matsetThe node that contains the matset.
matNameThe name of the material.
defaultValueThe default matno to use if the material_map is not present.
Returns
The material id for the named material.

◆ dispatch_material_multibuffer()

template<typename FuncType , size_t MAXMATERIALS = 20>
bool axom::bump::views::dispatch_material_multibuffer ( const conduit::Node &  matset,
FuncType &&  func 
)

Dispatch a Conduit node containing a multibuffer matset to a function as the appropriate type of matset view.

Template Parameters
FuncTypeThe function/lambda type that will take the matset.
Parameters
matsetThe node that contains the matset.
funcThe function/lambda that will operate on the matset view.

References axom::bump::views::MultiBufferMaterialView< IndexT, FloatT, MAXMATERIALS >::add(), and verify().

◆ dispatch_material_element_dominant()

template<typename FuncType , size_t MAXMATERIALS = 20>
bool axom::bump::views::dispatch_material_element_dominant ( const conduit::Node &  matset,
FuncType &&  func 
)

Dispatch a Conduit node containing a element-dominant matset to a function as the appropriate type of matset view.

Template Parameters
FuncTypeThe function/lambda type that will take the matset.
Parameters
matsetThe node that contains the matset.
funcThe function/lambda that will operate on the matset view.

References axom::bump::views::ElementDominantMaterialView< IndexT, FloatT, MAXMATERIALS >::add(), and verify().

◆ dispatch_material_material_dominant()

template<typename FuncType , size_t MAXMATERIALS = 20>
bool axom::bump::views::dispatch_material_material_dominant ( const conduit::Node &  matset,
FuncType &&  func 
)

Dispatch a Conduit node containing a material-dominant matset to a function as the appropriate type of matset view.

Template Parameters
FuncTypeThe function/lambda type that will take the matset.
Parameters
matsetThe node that contains the matset.
funcThe function/lambda that will operate on the matset view.

References axom::bump::views::MaterialDominantMaterialView< IndexT, FloatT, MAXMATERIALS >::add(), and verify().

◆ dispatch_material()

template<typename FuncType , size_t MAXMATERIALS = 20>
bool axom::bump::views::dispatch_material ( const conduit::Node &  matset,
FuncType &&  func 
)

Dispatch a Conduit node containing a matset to a function as the appropriate type of matset view.

Template Parameters
FuncTypeThe function/lambda type that will take the matset.
Parameters
matsetThe node that contains the matset.
funcThe function/lambda that will operate on the matset view.

References dispatch_material_element_dominant(), and dispatch_material_material_dominant().

◆ dispatch_rectilinear_topology()

template<int SelectedDimensions = select_dimensions(1, 2, 3), typename FuncType >
void axom::bump::views::dispatch_rectilinear_topology ( const conduit::Node &  topo,
FuncType &&  func 
)

Creates a topology view compatible with rectilinear topologies and passes that view to the supplied function.

Template Parameters
FuncTypeThe function/lambda type to invoke on the view.
SelectedDimensionsAn integer whose bits indicate which dimensions are set.
Parameters
topoThe node that contains the rectilinear topology.
funcThe function to invoke using the view.

References dimension_selected(), SLIC_ASSERT, and verify().

◆ dispatch_structured_topology()

template<int SelectedDimensions = select_dimensions(1, 2, 3), typename FuncType >
void axom::bump::views::dispatch_structured_topology ( const conduit::Node &  topo,
FuncType &&  func 
)

Creates a topology view compatible with structured topologies and passes that view to the supplied function.

Template Parameters
FuncTypeThe function/lambda type to invoke on the view.
SelectedDimensionsAn integer whose bits indicate which dimensions are set. dimension
Parameters
topoThe node that contains the rectilinear topology.
funcThe function to invoke using the view. It should accept a string with the shape name and an auto parameter for the view.

References dimension_selected(), and verify().

◆ dispatch_structured_topologies()

template<int SelectedDimensions = select_dimensions(1, 2, 3), typename FuncType >
void axom::bump::views::dispatch_structured_topologies ( const conduit::Node &  topo,
FuncType &&  func 
)

Creates a topology view compatible with various logically "structured" topologies (uniform, rectilinear, structured) and passes that view to the supplied function.

Template Parameters
FuncTypeThe function/lambda type to invoke on the view.
SelectedDimensionsAn integer whose bits indicate which dimensions are set. dimension
Parameters
topoThe node that contains the topology.
funcThe function to invoke using the view. It should accept a string with the shape name and an auto parameter for the view.
Note
We try to initialize the topoView for each dimension and share the dispatch.

References dimension_selected(), and verify().

◆ dispatch_topology()

template<int SelectedDimensions = select_dimensions(1, 2, 3), int ShapeTypes = AnyShape, typename FuncType >
void axom::bump::views::dispatch_topology ( const conduit::Node &  topo,
FuncType &&  func 
)

Creates a topology view and passes that view to the supplied function.

Template Parameters
FuncTypeThe function/lambda type to invoke on the view.
SelectedDimensionsAn integer whose bits indicate which dimensions are set. dimension
ShapeTypesA bitset containing the shape types that will be supported for unstructured.
Parameters
topoThe node that contains the rectilinear topology.
funcThe function to invoke using the view. It should accept a string with the shape name and an auto parameter for the view.

References verify().

◆ dispatch_uniform_topology()

template<int SelectedDimensions = select_dimensions(1, 2, 3), typename FuncType >
void axom::bump::views::dispatch_uniform_topology ( const conduit::Node &  topo,
FuncType &&  func 
)

Creates a topology view compatible with uniform topologies and passes that view to the supplied function.

Template Parameters
FuncTypeThe function/lambda type to invoke on the view.
SelectedDimensionsAn integer whose bits indicate which dimensions are set.
Parameters
topoThe node that contains the topology.
funcThe function to invoke using the view.

References dimension_selected(), SLIC_ASSERT, and verify().

◆ dispatch_unstructured_polyhedral_topology()

template<typename FuncType >
void axom::bump::views::dispatch_unstructured_polyhedral_topology ( const conduit::Node &  topo,
FuncType &&  func 
)

This function dispatches a Conduit polyhedral unstructured topology.

Template Parameters
FuncTypeThe function/lambda type that will be invoked on the view.
Parameters
topoThe node that contains the topology.
funcThe function/lambda to call with the topology view.

References verify().

◆ typed_dispatch_unstructured_polyhedral_topology()

template<typename ConnType , typename FuncType >
void axom::bump::views::typed_dispatch_unstructured_polyhedral_topology ( const conduit::Node &  topo,
FuncType &&  func 
)

◆ dispatch_unstructured_mixed_topology()

template<typename FuncType >
void axom::bump::views::dispatch_unstructured_mixed_topology ( const conduit::Node &  topo,
FuncType &&  func 
)

This function dispatches a Conduit mixed unstructured topology.

Template Parameters
FuncTypeThe function/lambda type that will be invoked on the view.
Parameters
topoThe node that contains the topology.
funcThe function/lambda to call with the topology view.
Note
When this function makes the view, the view keeps a reference to the shape_map within the topology so we can build our own shape map later in the for_all_zones method.

References buildShapeMap(), axom::getAllocatorIDFromPointer(), and verify().

◆ typed_dispatch_unstructured_mixed_topology()

template<typename ConnType , typename FuncType >
void axom::bump::views::typed_dispatch_unstructured_mixed_topology ( const conduit::Node &  topo,
FuncType &&  func 
)

◆ encode_shapes()

template<typename... Args>
constexpr int axom::bump::views::encode_shapes ( Args...  args)
constexpr

◆ select_shapes()

template<typename... Args>
constexpr int axom::bump::views::select_shapes ( Args...  args)
constexpr

This function turns a list of shapeID values into a bitfield that encodes the shapes. We use this in templating to limit which shapes get supported in dispatch instantiation.

Parameters
argsA template parameter pack that contains ShapeID values.
Returns
An integer that encodes the shape ids.

References encode_shapes().

◆ typed_dispatch_unstructured_topology()

template<typename ConnType , int ShapeTypes = AnyShape, typename FuncType >
void axom::bump::views::typed_dispatch_unstructured_topology ( const conduit::Node &  topo,
FuncType &&  func 
)

This function dispatches a Conduit topology to the right view type and passes that view to the supplied function/lambda.

Template Parameters
ShapeTypesAllows us to limit which shape types get compiled in.
FuncTypeThe function/lambda type that will be invoked on the view.
Parameters
topoThe node that contains the topology.
funcThe function/lambda to call with the topology view.

References axom::utilities::bitIsSet(), Hex_ShapeID, Mixed_ShapeID, Polygon_ShapeID, Polyhedron_ShapeID, Pyramid_ShapeID, Quad_ShapeID, Tet_ShapeID, Tri_ShapeID, verify(), and Wedge_ShapeID.

◆ dispatch_unstructured_topology()

template<int ShapeTypes = AnyShape, typename FuncType >
void axom::bump::views::dispatch_unstructured_topology ( const conduit::Node &  topo,
FuncType &&  func 
)

Dispatch in a way that does not care about the connectivity type.

References verify().

◆ encode_dimensions()

template<typename... Dimensions>
constexpr int axom::bump::views::encode_dimensions ( Dimensions...  dims)
constexpr

◆ select_dimensions()

template<typename... Dimensions>
constexpr int axom::bump::views::select_dimensions ( Dimensions...  dims)
constexpr

References encode_dimensions().

◆ dimension_selected()

constexpr bool axom::bump::views::dimension_selected ( int  encoded_dims,
int  dim 
)
constexpr

◆ verify()

void axom::bump::views::verify ( const conduit::Node &  obj,
const std::string &  protocol = std::string() 
)

Call Blueprint mesh verify functions and convert the output to SLIC_ERROR if the verify method failed.

Parameters
objThe node that contains the object being checked.
protocolThe name of the item to check in the mesh. If the string is empty, obj node is treated as a mesh and it all gets checked.

◆ materials()

MaterialInformation axom::bump::views::materials ( const conduit::Node &  matset)

Return a vector of Material from a matset (this is the material_map)

Parameters
matsetThe Conduit node that contains the matset.
Returns
A vector of Material that contains the materials in the material_map.

◆ isValidShapeID()

template<typename T >
constexpr AXOM_HOST_DEVICE bool axom::bump::views::isValidShapeID ( shapeID)
constexpr

Determine whether a value is a valid ShapeID.

Parameters
shapeIDThe value to test for validity.
Returns
True if the value is a valid ShapeID; False otherwise.

References Mixed_ShapeID, and Point_ShapeID.

◆ shapeDimension()

◆ shapeNameToID()

◆ buildShapeMap()

ShapeMap axom::bump::views::buildShapeMap ( const conduit::Node &  n_topo,
axom::Array< IndexType > &  values,
axom::Array< IndexType > &  ids,
int  allocatorID 
)

Populate the shape map values/ids arrays using data in the topology's shape_map.

Parameters
n_topoThe topology that contains the shape map.
[out]valuesThe sorted values used for shapes in the topology.
[out]idsThe Shape ids that correspond to the shape values.
allocatorIDThe allocator to use when creating the arrays.

◆ shapes_for_dimension()

static constexpr int axom::bump::views::shapes_for_dimension ( int  dimension)
staticconstexpr

Variable Documentation

◆ AnyShape

constexpr int axom::bump::views::AnyShape = -1
constexpr