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

Merge multiple unstructured Blueprint meshes (with matsets) through MeshInput. More...

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

Inheritance diagram for axom::bump::MergeMeshesAndMatsets< ExecSpace, MaterialDispatch >:

Public Member Functions

void setAllocatorID (int allocator_id)
 Set the allocator id to use when allocating memory. More...
 
int getAllocatorID () const
 Get the allocator id to use when allocating memory. More...
 
void execute (const std::vector< MeshInput > &inputs, const conduit::Node &options, conduit::Node &output) const
 Merge the input Blueprint meshes into a single Blueprint mesh. More...
 

Protected Member Functions

bool validInputs (const std::vector< MeshInput > &inputs) const
 Check that the mesh inputs are valid and meet constraints. There must be 1 coordset/topology/matset. The coordset must be explicit and the topology must be unstructured and for now, non-polyhedral. More...
 
void singleInput (const std::vector< MeshInput > &inputs, conduit::Node &output) const
 Merge a single input (copy it to the output). More...
 
const conduit::Node & getTopology (const MeshInput &input) const
 Get the topology for the input, using the options, if available. More...
 
const conduit::Node & getCoordset (const MeshInput &input) const
 Get the coordset for the input, using the options, if available. More...
 
void mergeInputs (const std::vector< MeshInput > &inputs, const conduit::Node &n_options, conduit::Node &output) const
 Merge a multiple inputs. More...
 
void mergeCoordset (const std::vector< MeshInput > &inputs, conduit::Node &output) const
 Merge multiple coordsets into a single coordset. No node merging takes place. More...
 
template<typename DataArrayView >
axom::IndexType mergeCoordset_copy (const axom::ArrayView< axom::IndexType > nodeSliceView, axom::IndexType offset, DataArrayView compView, DataArrayView srcCompView) const
 Assist setting merging coordset data. More...
 
axom::IndexType countNodes (const std::vector< MeshInput > &inputs, size_t index) const
 Count the number of nodes in the index'th input mesh. More...
 
axom::IndexType countNodes (const std::vector< MeshInput > &inputs) const
 Count the number of nodes in all input meshes. More...
 
axom::IndexType countZones (const std::vector< MeshInput > &inputs, size_t index) const
 Count the number of zones in the index'th input mesh. More...
 
void countZones (const std::vector< MeshInput > &inputs, axom::IndexType &totalConnLength, axom::IndexType &totalZones, const std::string &elem_sizes=std::string("elements/sizes")) const
 Count the number of nodes in all input meshes. More...
 
template<typename ViewType >
axom::IndexType sumArrayView (ViewType view) const
 Sum the sizes array view and return the value. More...
 
std::map< std::string, int > buildShapeMap (const std::vector< MeshInput > &inputs) const
 Look through the input meshes and make a map of the shape types that are found. More...
 
void mergeTopology (const std::vector< MeshInput > &inputs, const conduit::Node &n_options, conduit::Node &output) const
 Merge multiple topologies into a single topology. More...
 
void mergeTopologiesUnstructured (std::map< std::string, int > &shape_map, const std::vector< MeshInput > &inputs, const conduit::Node &n_options, conduit::Node &output) const
 Merge multiple topologies into a single topology. More...
 
std::vector< MeshInputmakePolyhedralInputs (const std::vector< MeshInput > &inputs) const
 Make a vector of mesh inputs where all meshes are polyhedral. If the meshes were already polyhedral then they are shallow-copied. More...
 
template<typename TopologyView >
void makePolyhedralMesh (const TopologyView &topologyView, const conduit::Node &n_srcTopo, conduit::Node &n_phTopo) const
 Make a polyhedral mesh given the input topology view. More...
 
void deleteMeshInputs (std::vector< MeshInput > &inputs) const
 Delete the mesh inputs. More...
 
void mergeTopologiesPolyhedral (const std::vector< MeshInput > &inputs, const conduit::Node &n_options, conduit::Node &output) const
 Merge the mesh inputs into a single polyhedral mesh. More...
 
void mergeTopologiesPolyhedralInner (const std::vector< MeshInput > &inputs, const conduit::Node &n_options, conduit::Node &output) const
 Merge the mesh inputs into a single polyhedral mesh. More...
 
template<typename ConnectivityView >
void mergeTopology_copy (axom::ArrayView< axom::IndexType > nodeMapView, axom::IndexType connOffset, axom::IndexType coordOffset, ConnectivityView connView, ConnectivityView srcConnView, ConnectivityView srcSizesView, ConnectivityView srcOffsetsView) const
 Assist copying topology connectivity to the merged topology. More...
 
template<typename IntegerView >
void mergeTopology_copy_sizes (axom::IndexType sizesOffset, IntegerView sizesView, IntegerView srcSizesView) const
 Assist copying topology sizes to the merged topology. More...
 
template<typename IntegerView >
void mergeTopology_copy_shapes (axom::IndexType shapesOffset, IntegerView shapesView, IntegerView srcShapesView) const
 Copy shapes from the source mesh to the merged mesh. More...
 
template<typename IntegerView >
void mergeTopology_default_shapes (axom::IndexType shapesOffset, IntegerView shapesView, axom::IndexType nzones, int shapeId) const
 Set shapes in the merged mesh to a specific shape. More...
 
void mergeFields (const std::vector< MeshInput > &inputs, conduit::Node &output) const
 Merge fields that exist on the various mesh inputs. Zero-fill values where a field does not exist in an input. More...
 
void copyZonal (const std::vector< MeshInput > &inputs, conduit::Node &n_values, const std::string &srcPath) const
 Copy zonal field data into a Conduit node. More...
 
template<typename DestView , typename SrcView >
void copyZonal_copy (axom::IndexType nzones, axom::IndexType offset, DestView destView, SrcView srcView) const
 Copy zonal data from src to dest. More...
 
template<typename DestView >
void fillValues (axom::IndexType nvalues, axom::IndexType offset, DestView destView) const
 Fill data in dest. More...
 
void copyNodal (const std::vector< MeshInput > &inputs, conduit::Node &n_values, const std::string &srcPath) const
 Copy nodal field data into a Conduit node. More...
 
template<typename SrcViewType , typename DestViewType >
void copyNodal_copy (axom::ArrayView< axom::IndexType > nodeSliceView, axom::IndexType nnodes, axom::IndexType offset, SrcViewType destView, DestViewType srcView) const
 Copy nodal data from src to dest. More...
 
virtual void mergeMatset (const std::vector< MeshInput > &AXOM_UNUSED_PARAM(inputs), conduit::Node &AXOM_UNUSED_PARAM(output)) const
 Merge matsets that exist on the various mesh inputs. More...
 

Protected Attributes

int m_allocator_id
 

Detailed Description

template<typename ExecSpace, typename MaterialDispatch = DispatchAnyMatset>
class axom::bump::MergeMeshesAndMatsets< ExecSpace, MaterialDispatch >

Merge multiple unstructured Blueprint meshes (with matsets) through MeshInput.

Template Parameters
ExecSpaceThe execution space where the algorithm will run.
MaterialDispatchA policy that helps determine how materials are dispatched. The default is to handle any type of matset but that can generate a lot of code.
Note
The input meshes must currently contain a single coordset/topology/matset.

Member Function Documentation

◆ setAllocatorID()

template<typename ExecSpace >
void axom::bump::MergeMeshes< ExecSpace >::setAllocatorID ( int  allocator_id)
inlineinherited

Set the allocator id to use when allocating memory.

Parameters
allocator_idThe allocator id to use when allocating memory.

References axom::isValidAllocatorID(), axom::bump::MergeMeshes< ExecSpace >::m_allocator_id, and SLIC_ERROR_IF.

◆ getAllocatorID()

template<typename ExecSpace >
int axom::bump::MergeMeshes< ExecSpace >::getAllocatorID ( ) const
inlineinherited

Get the allocator id to use when allocating memory.

Returns
The allocator id to use when allocating memory.

References axom::bump::MergeMeshes< ExecSpace >::m_allocator_id.

◆ execute()

template<typename ExecSpace >
void axom::bump::MergeMeshes< ExecSpace >::execute ( const std::vector< MeshInput > &  inputs,
const conduit::Node &  options,
conduit::Node &  output 
) const
inlineinherited

Merge the input Blueprint meshes into a single Blueprint mesh.

Parameters
inputsA vector of inputs to be merged.
optionsA Node containing algorithm options.
[out]outputThe node that will contain the merged mesh.

The options node may contain a "topology" string that designates the name of the topology to be merged.

References AXOM_ANNOTATE_SCOPE, axom::bump::MergeMeshes< ExecSpace >::mergeInputs(), axom::bump::MergeMeshes< ExecSpace >::singleInput(), SLIC_ASSERT_MSG, and axom::bump::MergeMeshes< ExecSpace >::validInputs().

◆ validInputs()

template<typename ExecSpace >
bool axom::bump::MergeMeshes< ExecSpace >::validInputs ( const std::vector< MeshInput > &  inputs) const
inlineprotectedinherited

Check that the mesh inputs are valid and meet constraints. There must be 1 coordset/topology/matset. The coordset must be explicit and the topology must be unstructured and for now, non-polyhedral.

Parameters
inputsThe mesh inputs.
Returns
True if the inputs appear to be valid; False otherwise.

References axom::bump::MergeMeshes< ExecSpace >::getCoordset(), and axom::bump::MergeMeshes< ExecSpace >::getTopology().

◆ singleInput()

template<typename ExecSpace >
void axom::bump::MergeMeshes< ExecSpace >::singleInput ( const std::vector< MeshInput > &  inputs,
conduit::Node &  output 
) const
inlineprotectedinherited

Merge a single input (copy it to the output).

Parameters
inputsA vector of inputs to be merged.
[out]outputThe node that will contain the merged mesh.

References axom::bump::MergeMeshes< ExecSpace >::getAllocatorID().

◆ getTopology()

template<typename ExecSpace >
const conduit::Node& axom::bump::MergeMeshes< ExecSpace >::getTopology ( const MeshInput input) const
inlineprotectedinherited

Get the topology for the input, using the options, if available.

Parameters
inputThe mesh input.
optionsThe options. If "topology" is present then we attempt to return that topology from the mesh input. Otherwise, the first topology is returned.

References axom::bump::MeshInput::m_input, and axom::bump::MeshInput::m_topologyName.

◆ getCoordset()

template<typename ExecSpace >
const conduit::Node& axom::bump::MergeMeshes< ExecSpace >::getCoordset ( const MeshInput input) const
inlineprotectedinherited

Get the coordset for the input, using the options, if available.

Parameters
inputThe mesh input.
optionsThe options. If "topology" is present then we attempt to return the coordset for that topology from the mesh input. Otherwise, the first coordset is returned.

References axom::bump::MergeMeshes< ExecSpace >::getTopology(), and axom::bump::MeshInput::m_input.

◆ mergeInputs()

template<typename ExecSpace >
void axom::bump::MergeMeshes< ExecSpace >::mergeInputs ( const std::vector< MeshInput > &  inputs,
const conduit::Node &  n_options,
conduit::Node &  output 
) const
inlineprotectedinherited

Merge a multiple inputs.

Parameters
inputsA vector of inputs to be merged.
n_optionsA node containing options.
[out]outputThe node that will contain the merged mesh.

References axom::bump::MergeMeshes< ExecSpace >::mergeCoordset(), axom::bump::MergeMeshes< ExecSpace >::mergeFields(), axom::bump::MergeMeshes< ExecSpace >::mergeMatset(), and axom::bump::MergeMeshes< ExecSpace >::mergeTopology().

◆ mergeCoordset()

template<typename ExecSpace >
void axom::bump::MergeMeshes< ExecSpace >::mergeCoordset ( const std::vector< MeshInput > &  inputs,
conduit::Node &  output 
) const
inlineprotectedinherited

Merge multiple coordsets into a single coordset. No node merging takes place.

Parameters
inputsA vector of inputs to be merged.
[out]outputThe node that will contain the output mesh.

References AXOM_ANNOTATE_SCOPE, axom::sidre::ConduitMemory::axomAllocIdToConduit(), axom::bump::MergeMeshes< ExecSpace >::countNodes(), axom::bump::MergeMeshes< ExecSpace >::getAllocatorID(), axom::bump::MergeMeshes< ExecSpace >::getCoordset(), axom::bump::MergeMeshes< ExecSpace >::mergeCoordset_copy(), and SLIC_ASSERT.

◆ mergeCoordset_copy()

template<typename ExecSpace >
template<typename DataArrayView >
axom::IndexType axom::bump::MergeMeshes< ExecSpace >::mergeCoordset_copy ( const axom::ArrayView< axom::IndexType nodeSliceView,
axom::IndexType  offset,
DataArrayView  compView,
DataArrayView  srcCompView 
) const
inlineprotectedinherited

Assist setting merging coordset data.

Parameters
nodeSliceViewThe view that contains a node slice for the current input mesh.
offsetThe current write offset in the new coordset.
compViewThe view that exposes the current output coordinate component.
srcCompViewThe view that exposes the current output source coordinate component.
Returns
The size of the data copied.
Note
This method was broken out into a template member method since nvcc would not instantiate the lambda for axom::for_all() from an anonymous lambda.

References AXOM_LAMBDA, and axom::ArrayView< T, DIM, SPACE >::size().

◆ countNodes() [1/2]

template<typename ExecSpace >
axom::IndexType axom::bump::MergeMeshes< ExecSpace >::countNodes ( const std::vector< MeshInput > &  inputs,
size_t  index 
) const
inlineprotectedinherited

Count the number of nodes in the index'th input mesh.

Parameters
inputsThe vector of input meshes.
indexThe index of the mesh to count.
Returns
The number of nodes in the index input mesh.

References axom::bump::MergeMeshes< ExecSpace >::getCoordset(), and SLIC_ASSERT.

◆ countNodes() [2/2]

template<typename ExecSpace >
axom::IndexType axom::bump::MergeMeshes< ExecSpace >::countNodes ( const std::vector< MeshInput > &  inputs) const
inlineprotectedinherited

Count the number of nodes in all input meshes.

Parameters
inputsThe vector of input meshes.
Returns
The total number of nodes in the input meshes.

References axom::bump::MergeMeshes< ExecSpace >::countNodes().

◆ countZones() [1/2]

template<typename ExecSpace >
axom::IndexType axom::bump::MergeMeshes< ExecSpace >::countZones ( const std::vector< MeshInput > &  inputs,
size_t  index 
) const
inlineprotectedinherited

Count the number of zones in the index'th input mesh.

Parameters
inputsThe vector of input meshes.
indexThe index of the mesh to count.
Returns
The number of zones in the index input mesh.

References axom::bump::MergeMeshes< ExecSpace >::getTopology().

◆ countZones() [2/2]

template<typename ExecSpace >
void axom::bump::MergeMeshes< ExecSpace >::countZones ( const std::vector< MeshInput > &  inputs,
axom::IndexType totalConnLength,
axom::IndexType totalZones,
const std::string &  elem_sizes = std::string("elements/sizes") 
) const
inlineprotectedinherited

Count the number of nodes in all input meshes.

Parameters
inputsThe vector of input meshes.
[out]totalConnLengthThe total connectivity length for all meshes.
[out]totalZonesThe total zones for all meshes.
elem_sizesThe name of the element sizes key.

References axom::bump::MergeMeshes< ExecSpace >::getTopology(), SLIC_ASSERT, and axom::bump::MergeMeshes< ExecSpace >::sumArrayView().

◆ sumArrayView()

template<typename ExecSpace >
template<typename ViewType >
axom::IndexType axom::bump::MergeMeshes< ExecSpace >::sumArrayView ( ViewType  view) const
inlineprotectedinherited

Sum the sizes array view and return the value.

Parameters
sizesViewThe view that contains the sizes.
Note
This is implemented as a template method because we can't use axom::for_all in a lambda.

References AXOM_LAMBDA, axom::serial::reductions::ReduceSum< ExecSpace, T >::get(), and SLIC_ERROR_IF.

◆ buildShapeMap()

template<typename ExecSpace >
std::map<std::string, int> axom::bump::MergeMeshes< ExecSpace >::buildShapeMap ( const std::vector< MeshInput > &  inputs) const
inlineprotectedinherited

Look through the input meshes and make a map of the shape types that are found.

Parameters
inputsThe vector of mesh inputs.
Returns
A map of shape names to shape ids.

References axom::bump::MergeMeshes< ExecSpace >::getTopology(), axom::bump::views::shapeNameToID(), and SLIC_ASSERT.

◆ mergeTopology()

template<typename ExecSpace >
void axom::bump::MergeMeshes< ExecSpace >::mergeTopology ( const std::vector< MeshInput > &  inputs,
const conduit::Node &  n_options,
conduit::Node &  output 
) const
inlineprotectedinherited

Merge multiple topologies into a single topology.

Parameters
inputsA vector of inputs to be merged.
n_optionsA node that contains the options.
[out]outputThe node that will contain the output mesh.

References axom::bump::MergeMeshes< ExecSpace >::buildShapeMap(), axom::bump::MergeMeshes< ExecSpace >::mergeTopologiesPolyhedral(), axom::bump::MergeMeshes< ExecSpace >::mergeTopologiesUnstructured(), and axom::bump::views::PolyhedronTraits::name().

◆ mergeTopologiesUnstructured()

template<typename ExecSpace >
void axom::bump::MergeMeshes< ExecSpace >::mergeTopologiesUnstructured ( std::map< std::string, int > &  shape_map,
const std::vector< MeshInput > &  inputs,
const conduit::Node &  n_options,
conduit::Node &  output 
) const
inlineprotectedinherited

◆ makePolyhedralInputs()

template<typename ExecSpace >
std::vector<MeshInput> axom::bump::MergeMeshes< ExecSpace >::makePolyhedralInputs ( const std::vector< MeshInput > &  inputs) const
inlineprotectedinherited

◆ makePolyhedralMesh()

template<typename ExecSpace >
template<typename TopologyView >
void axom::bump::MergeMeshes< ExecSpace >::makePolyhedralMesh ( const TopologyView &  topologyView,
const conduit::Node &  n_srcTopo,
conduit::Node &  n_phTopo 
) const
inlineprotectedinherited

◆ deleteMeshInputs()

template<typename ExecSpace >
void axom::bump::MergeMeshes< ExecSpace >::deleteMeshInputs ( std::vector< MeshInput > &  inputs) const
inlineprotectedinherited

Delete the mesh inputs.

Parameters
inputsThe mesh inputs to delete.

◆ mergeTopologiesPolyhedral()

template<typename ExecSpace >
void axom::bump::MergeMeshes< ExecSpace >::mergeTopologiesPolyhedral ( const std::vector< MeshInput > &  inputs,
const conduit::Node &  n_options,
conduit::Node &  output 
) const
inlineprotectedinherited

Merge the mesh inputs into a single polyhedral mesh.

Parameters
inputsThe mesh inputs.
n_optionsA node that contains the options.
[out]outputThe Conduit node that will contain the merged polyhedral mesh.

References AXOM_ANNOTATE_SCOPE, axom::bump::MergeMeshes< ExecSpace >::deleteMeshInputs(), axom::bump::MergeMeshes< ExecSpace >::makePolyhedralInputs(), and axom::bump::MergeMeshes< ExecSpace >::mergeTopologiesPolyhedralInner().

◆ mergeTopologiesPolyhedralInner()

template<typename ExecSpace >
void axom::bump::MergeMeshes< ExecSpace >::mergeTopologiesPolyhedralInner ( const std::vector< MeshInput > &  inputs,
const conduit::Node &  n_options,
conduit::Node &  output 
) const
inlineprotectedinherited

◆ mergeTopology_copy()

template<typename ExecSpace >
template<typename ConnectivityView >
void axom::bump::MergeMeshes< ExecSpace >::mergeTopology_copy ( axom::ArrayView< axom::IndexType nodeMapView,
axom::IndexType  connOffset,
axom::IndexType  coordOffset,
ConnectivityView  connView,
ConnectivityView  srcConnView,
ConnectivityView  srcSizesView,
ConnectivityView  srcOffsetsView 
) const
inlineprotectedinherited

Assist copying topology connectivity to the merged topology.

Parameters
nodeMapViewThe node map.
connOffsetThe write offset in the new connectivity.
coordOffsetThe current mesh's coordinate offset in the new coordinates.
connViewThe view that contains the new merged connectivity.
srcConnViewThe view that contains the source connectivity.
Note
This method was broken out into a template member method since nvcc would not instantiate the lambda for axom::for_all() from an anonymous lambda.

References AXOM_LAMBDA, axom::bump::MergeMeshes< ExecSpace >::getAllocatorID(), axom::ArrayView< T, DIM, SPACE >::size(), and axom::Array< T, DIM, SPACE, StoragePolicy >::view().

◆ mergeTopology_copy_sizes()

template<typename ExecSpace >
template<typename IntegerView >
void axom::bump::MergeMeshes< ExecSpace >::mergeTopology_copy_sizes ( axom::IndexType  sizesOffset,
IntegerView  sizesView,
IntegerView  srcSizesView 
) const
inlineprotectedinherited

Assist copying topology sizes to the merged topology.

Parameters
sizesOffsetThe write offset for sizes in the new connectivity.
sizesViewThe view that contains sizes for the new connectivity.
srcSizesViewThe view that contains sizes for the input mesh.
Note
This method was broken out into a template member method since nvcc would not instantiate the lambda for axom::for_all() from an anonymous lambda.

References AXOM_LAMBDA.

◆ mergeTopology_copy_shapes()

template<typename ExecSpace >
template<typename IntegerView >
void axom::bump::MergeMeshes< ExecSpace >::mergeTopology_copy_shapes ( axom::IndexType  shapesOffset,
IntegerView  shapesView,
IntegerView  srcShapesView 
) const
inlineprotectedinherited

Copy shapes from the source mesh to the merged mesh.

Parameters
shapesOffsetThe write offset for the shapes.
shapesViewThe view that exposes shapes for the merged mesh.
srcShapesViewThe view that exposes shapes for the source mesh.

References AXOM_LAMBDA.

◆ mergeTopology_default_shapes()

template<typename ExecSpace >
template<typename IntegerView >
void axom::bump::MergeMeshes< ExecSpace >::mergeTopology_default_shapes ( axom::IndexType  shapesOffset,
IntegerView  shapesView,
axom::IndexType  nzones,
int  shapeId 
) const
inlineprotectedinherited

Set shapes in the merged mesh to a specific shape.

Parameters
shapesOffsetThe write offset for the shapes.
shapesViewThe view that exposes shapes for the merged mesh.
srcShapesViewThe view that exposes shapes for the source mesh.

References AXOM_LAMBDA.

◆ mergeFields()

◆ copyZonal()

template<typename ExecSpace >
void axom::bump::MergeMeshes< ExecSpace >::copyZonal ( const std::vector< MeshInput > &  inputs,
conduit::Node &  n_values,
const std::string &  srcPath 
) const
inlineprotectedinherited

Copy zonal field data into a Conduit node.

Parameters
inputsA vector of inputs to be merged.
[out]n_valuesThe node will be populated with data values from the field inputs.
srcPathThe path to the source data in each input node.

References axom::bump::MergeMeshes< ExecSpace >::copyZonal_copy(), axom::bump::MergeMeshes< ExecSpace >::countZones(), and axom::bump::MergeMeshes< ExecSpace >::fillValues().

◆ copyZonal_copy()

template<typename ExecSpace >
template<typename DestView , typename SrcView >
void axom::bump::MergeMeshes< ExecSpace >::copyZonal_copy ( axom::IndexType  nzones,
axom::IndexType  offset,
DestView  destView,
SrcView  srcView 
) const
inlineprotectedinherited

Copy zonal data from src to dest.

Parameters
nzonesThe number of zones.
offsetThe current write offset.
destViewThe view that exposes the new merged field.
srcViewThe view that exposes the source field.
Note
This method was broken out into a template member method since nvcc would not instantiate the lambda for axom::for_all() from an anonymous lambda.

References AXOM_LAMBDA.

◆ fillValues()

template<typename ExecSpace >
template<typename DestView >
void axom::bump::MergeMeshes< ExecSpace >::fillValues ( axom::IndexType  nvalues,
axom::IndexType  offset,
DestView  destView 
) const
inlineprotectedinherited

Fill data in dest.

Parameters
nvaluesThe number of values.
offsetThe current write offset.
destViewThe view that exposes the new merged field.
Note
This method was broken out into a template member method since nvcc would not instantiate the lambda for axom::for_all() from an anonymous lambda.

References AXOM_LAMBDA.

◆ copyNodal()

template<typename ExecSpace >
void axom::bump::MergeMeshes< ExecSpace >::copyNodal ( const std::vector< MeshInput > &  inputs,
conduit::Node &  n_values,
const std::string &  srcPath 
) const
inlineprotectedinherited

Copy nodal field data into a Conduit node.

Parameters
inputsA vector of inputs to be merged.
[out]n_valuesThe node will be populated with data values from the field inputs.
srcPathThe path to the source data in each input node.

References axom::bump::MergeMeshes< ExecSpace >::copyNodal_copy(), axom::bump::MergeMeshes< ExecSpace >::countNodes(), and axom::bump::MergeMeshes< ExecSpace >::fillValues().

◆ copyNodal_copy()

template<typename ExecSpace >
template<typename SrcViewType , typename DestViewType >
void axom::bump::MergeMeshes< ExecSpace >::copyNodal_copy ( axom::ArrayView< axom::IndexType nodeSliceView,
axom::IndexType  nnodes,
axom::IndexType  offset,
SrcViewType  destView,
DestViewType  srcView 
) const
inlineprotectedinherited

Copy nodal data from src to dest.

Parameters
nodeSliceViewThe nodes we're pulling out (if populated).
nnodesThe number of nodes.
offsetThe current write offset.
destViewThe view that exposes the new merged field.
srcViewThe view that exposes the source field.
Note
This method was broken out into a template member method since nvcc would not instantiate the lambda for axom::for_all() from an anonymous lambda.

References AXOM_LAMBDA, axom::ArrayView< T, DIM, SPACE >::empty(), and axom::ArrayView< T, DIM, SPACE >::size().

◆ mergeMatset()

template<typename ExecSpace >
virtual void axom::bump::MergeMeshes< ExecSpace >::mergeMatset ( const std::vector< MeshInput > &  AXOM_UNUSED_PARAMinputs,
conduit::Node &  AXOM_UNUSED_PARAMoutput 
) const
inlineprotectedvirtualinherited

Merge matsets that exist on the various mesh inputs.

Parameters
inputsA vector of inputs to be merged.
[out]outputThe node that will contain the output mesh.

Member Data Documentation

◆ m_allocator_id

template<typename ExecSpace >
int axom::bump::MergeMeshes< ExecSpace >::m_allocator_id
protectedinherited

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