|
| | ZoneListBuilder (const TopologyView &topoView, const MatsetView &matsetView) |
| | Constructor. More...
|
| |
| 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 (axom::IndexType nnodes, axom::Array< axom::IndexType > &cleanIndices, axom::Array< axom::IndexType > &mixedIndices) const |
| | Build the list of clean and mixed zones using the number of materials per zone, maxed to the nodes. More...
|
| |
| void | execute (axom::IndexType nnodes, const SelectedZonesView selectedZonesView, axom::Array< axom::IndexType > &cleanIndices, axom::Array< axom::IndexType > &mixedIndices) const |
| | Build the list of clean and mixed zones using the number of materials per zone, maxed to the nodes. Limit the number of zones. More...
|
| |
| void | execute (const SelectedZonesView selectedZonesView, axom::Array< axom::IndexType > &cleanIndices, axom::Array< axom::IndexType > &mixedIndices) const |
| | Build the list of clean and mixed zones using the number of materials per zone. This method essentially partitions the input selectedZonesView into clean and mixed lists. More...
|
| |
template<typename ExecSpace, typename TopologyView, typename MatsetView>
class axom::bump::ZoneListBuilder< ExecSpace, TopologyView, MatsetView >
This struct builds lists of clean and mixed zones using the input topology and matset views.
- Template Parameters
-
| ExecSpace | The execution space where the algorithm will run. |
| TopologyView | The topology view type on which the algorithm will run. |
| MatsetView | The matset view type on which the algorithm will run. |
template<typename ExecSpace , typename TopologyView , typename MatsetView >
Build the list of clean and mixed zones using the number of materials per zone, maxed to the nodes.
- Parameters
-
| nnodes | The number of nodes in the topology's coordset. |
| [out] | cleanIndices | An array that will contain the list of clean material zone ids. |
| [out] | mixedIndices | An array that will contain the list of mixed material zone ids. |
- Note
- The clean/mixed index arrays are not strictly what could be determined by the matset alone. We figure out which nodes touch multiple materials. Then we iterate over the zones and those that touch only nodes that have 1 material are marked clean, otherwise they are considered mixed as we might have to split those zones.
References AXOM_ANNOTATE_BEGIN, AXOM_ANNOTATE_END, AXOM_ANNOTATE_SCOPE, AXOM_LAMBDA, axom::Array< T, DIM, SPACE, StoragePolicy >::empty(), axom::serial::reductions::ReduceSum< ExecSpace, T >::get(), axom::bump::ZoneListBuilder< ExecSpace, TopologyView, MatsetView >::getAllocatorID(), and axom::Array< T, DIM, SPACE, StoragePolicy >::view().
template<typename ExecSpace , typename TopologyView , typename MatsetView >
Build the list of clean and mixed zones using the number of materials per zone, maxed to the nodes. Limit the number of zones.
- Parameters
-
| nnodes | The number of nodes in the topology's coordset. |
| selectedZonesView | A view containing the zone indices we're considering. We pass it by value so it can be captured into lambdas. |
| [out] | cleanIndices | An array that will contain the list of clean material zone ids. |
| [out] | mixedIndices | An array that will contain the list of mixed material zone ids. |
- Note
- The clean/mixed index arrays are not strictly what could be determined by the matset alone. We figure out which nodes touch multiple materials. Then we iterate over the zones and those that touch only nodes that have 1 material are marked clean, otherwise they are considered mixed as we might have to split those zones.
References AXOM_ANNOTATE_BEGIN, AXOM_ANNOTATE_END, AXOM_ANNOTATE_SCOPE, AXOM_LAMBDA, axom::ArrayView< T, DIM, SPACE >::data(), axom::Array< T, DIM, SPACE, StoragePolicy >::empty(), axom::serial::reductions::ReduceSum< ExecSpace, T >::get(), axom::bump::ZoneListBuilder< ExecSpace, TopologyView, MatsetView >::getAllocatorID(), axom::ArrayView< T, DIM, SPACE >::size(), SLIC_ASSERT, and axom::Array< T, DIM, SPACE, StoragePolicy >::view().
template<typename ExecSpace , typename TopologyView , typename MatsetView >
Build the list of clean and mixed zones using the number of materials per zone. This method essentially partitions the input selectedZonesView into clean and mixed lists.
- Parameters
-
| selectedZonesView | A view containing the zone indices we're considering. We pass it by value so it can be captured into lambdas. |
| [out] | cleanIndices | An array that will contain the list of clean material zone ids. |
| [out] | mixedIndices | An array that will contain the list of mixed material zone ids. |
References AXOM_ANNOTATE_BEGIN, AXOM_ANNOTATE_END, AXOM_ANNOTATE_SCOPE, AXOM_LAMBDA, axom::serial::reductions::ReduceSum< ExecSpace, T >::get(), axom::bump::ZoneListBuilder< ExecSpace, TopologyView, MatsetView >::getAllocatorID(), axom::ArrayView< T, DIM, SPACE >::size(), and axom::Array< T, DIM, SPACE, StoragePolicy >::view().