vtk-m/vtkm/cont/internal
Kenneth Moreland 723c9ed2f0 Support Fill for ArrayHandleStride
Previously, if you called `Fill` on an `ArrayHandleStride`, you would get
an exception that said the feature was not supported. It turns out that
filling values is very useful in situations where, for example, you need to
initialize an array when processing an unknown type (and thus dealing with
extracted components).

This implementation of `Fill` first attempts to call `Fill` on the
contained array. This only works if the stride is set to 1. If this does
not work, then the code leverages the precompiled `ArrayCopy`. It does this
by first creating a new `ArrayHandleStride` containing the fill value and a
modulo of 1 so that value is constantly repeated. It then reconstructs an
`ArrayHandleStride` for itself with a modified size and offset to match the
start and end indices.

Referencing the `ArrayCopy` was tricky because it kept creating circular
dependencies among `ArrayHandleStride`, `ArrayExtractComponent`, and
`UnknownArrayHandle`. These dependencies were broken by having
`ArrayHandleStride` directly use the internal `ArrayCopyUnknown` function
and to use a forward declaration of `UnknownArrayHandle` rather than
including its header.
2024-02-02 13:50:21 -05:00
..
ArrayCopyUnknown.cxx Fixed an issue with copying array from a disabled device 2023-05-29 20:55:48 -04:00
ArrayCopyUnknown.h Support Fill for ArrayHandleStride 2024-02-02 13:50:21 -05:00
ArrayHandleExecutionManager.h Support using Token calling PrepareForExecution in ExecutionObject 2020-02-25 07:41:39 -07:00
ArrayPortalFromIterators.h Remove Set method from const ArrayPortalFromIterators specialization... 2020-05-05 13:55:54 -04:00
ArrayRangeComputeUtils.cxx Advanced Compute Range 2023-07-04 11:54:56 -04:00
ArrayRangeComputeUtils.h Advanced Compute Range 2023-07-04 11:54:56 -04:00
ArrayTransfer.h Remove ArrayManagerExecution 2020-12-08 13:18:44 -07:00
Buffer.cxx diy,mpi: Enable GPU AWARE MPI buffers 2023-05-30 12:13:03 -04:00
Buffer.h Allow ArrayHandle to have a runtime selectable number of buffers 2022-07-11 07:48:25 -06:00
CastInvalidValue.h Enable setting invalid value in probe filter 2020-06-03 15:29:37 -06:00
CellLocatorBase.h Remove deprecated features from VTK-m 2022-11-17 07:12:31 -06:00
CMakeLists.txt Advanced Compute Range 2023-07-04 11:54:56 -04:00
ConnectivityExplicitInternals.h Compile reverse connectivity builder into vtkm_cont library 2021-09-17 09:48:21 -06:00
ConvertNumComponentsToOffsetsTemplate.h Precompile ConvertNumComponentsToOffsets 2021-09-16 14:27:14 -06:00
DefaultTypesAscent.h.in Add types appropriate for Ascent 2021-01-07 08:15:17 -07:00
DefaultTypesVTK.h.in Order the VTK scalar types to favor used types 2023-12-17 22:56:09 -07:00
DeviceAdapterAlgorithmGeneral.h Fix error under CUDA with private class declarations 2023-12-05 10:03:40 -07:00
DeviceAdapterListHelpers.h Remove instances of ListTag in favor of List 2019-12-06 21:32:36 -07:00
DeviceAdapterMemoryManager.cxx diy,mpi: Enable GPU AWARE MPI buffers 2023-05-30 12:13:03 -04:00
DeviceAdapterMemoryManager.h diy,mpi: Enable GPU AWARE MPI buffers 2023-05-30 12:13:03 -04:00
DeviceAdapterMemoryManagerShared.cxx diy,mpi: Enable GPU AWARE MPI buffers 2023-05-30 12:13:03 -04:00
DeviceAdapterMemoryManagerShared.h clang-tidy: fix modernize-use-override lints 2023-12-01 07:01:11 -05:00
FieldCollection.cxx Code cleanup. Add some comments. 2022-08-24 09:47:31 -04:00
FieldCollection.h Use {} initialization of FieldCollection. 2022-08-29 16:53:17 -04:00
FunctorsGeneral.h split vtkm/Algorithms.h into UpperBound.h, LowerBound.h, and BinarySearch.h 2021-04-07 18:53:09 +00:00
IteratorFromArrayPortal.h Fix operator for IteratorFromArrayPortal 2023-05-16 09:31:17 -06:00
KXSort.h conslidate the license statement 2019-04-17 10:57:13 -06:00
MapArrayPermutation.cxx Implement VecTraits class for all types 2023-03-16 12:59:38 -06:00
MapArrayPermutation.h Add ArrayCopy specialization for Counting and Permutation array 2022-01-24 12:17:23 -07:00
OptionParser.h adjust options parser include path 2021-11-01 11:30:10 -07:00
OptionParserArguments.h Remove deprecated features from VTK-m 2022-11-17 07:12:31 -06:00
ParallelRadixSort.h Use TBB task_group for radix sort 2021-06-10 10:39:13 -06:00
ParallelRadixSortInterface.h clang-format: reformat the repository with clang-format-9 2020-08-24 14:01:08 -04:00
PointLocatorBase.h Remove deprecated features from VTK-m 2022-11-17 07:12:31 -06:00
ReverseConnectivityBuilder.h Compile reverse connectivity builder into vtkm_cont library 2021-09-17 09:48:21 -06:00
RuntimeDeviceConfiguration.cxx Remove NUMA regions option 2023-01-30 09:53:57 -07:00
RuntimeDeviceConfiguration.h Remove NUMA regions option 2023-01-30 09:53:57 -07:00
RuntimeDeviceConfigurationOptions.cxx Remove NUMA regions option 2023-01-30 09:53:57 -07:00
RuntimeDeviceConfigurationOptions.h Remove NUMA regions option 2023-01-30 09:53:57 -07:00
RuntimeDeviceOption.cxx implement kokkos runtime device configuration 2021-08-18 13:23:30 -06:00
RuntimeDeviceOption.h implement return codes and protected virtual parsing of arguments 2021-06-23 17:58:38 +00:00
StorageError.h conslidate the license statement 2019-04-17 10:57:13 -06:00