Commit Graph

8177 Commits

Author SHA1 Message Date
Kenneth Moreland
6e674ddea6 Fix degenerate polygon removal
There was a bug in `CleanGrid` when removing degenerate polygons where it
would not detect if the first and last point were the same. This has been
fixed.

There was also an error with function overloading that was causing 0D and
3D cells to enter the wrong computation for degenerate cells. This has also
been fixed.

Fixes #796
2023-08-24 16:46:12 -04:00
Zhe Wang
0c77fcddec Merge topic 'add_multiplane_for_clip'
21a58a294 add multi plane for clip

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3124
2023-08-23 16:06:39 -04:00
Sujin Philip
e734f14b88 LookupTable: Shift computed idx by 1
The below range value is at index 0 and the actual table begins fron
index 1.
2023-08-23 12:55:13 -04:00
Jay
21a58a294c add multi plane for clip 2023-08-23 02:32:17 +00:00
Kenneth Moreland
14460dbb31 Support component extraction from ArrayHandleConstant better
Previously, `ArrayHandleConstant` did not really support component
extraction. Instead, it let a fallback operation create a full array on
the CPU.

Component extraction is now quite efficient for `ArrayHandleConstant`. It
creates a basic `ArrayHandle` with one entry and sets a modulo on the
`ArrayHandleStride` to access that value for all indices.
2023-08-18 09:44:19 -04:00
Sujin Philip
3f3228de8e LookupTable: Shift computed idx by 1
The below range value is at index 0 and the actual table begins fron
index 1.
2023-08-18 08:29:50 -04:00
Abhishek Yenpure
969e55048b Merge topic 'flow_restrucutre'
67b7543a3 Adding documentation for flow filter restructure
dbc873efa Changes to address feedback from MR
67716402b Correct export in class declaration
6d1d4f90a Fixing linking issues for flow Analysis class
adcb42455 Removing unnecessary file
78ca3f301 Fixing linking issues for flow Analysis class
0e1ade83a Fixing linking issues for flow Analysis class
12a3bc94e Adding test dependency of filter_flow on tests
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3087
2023-08-17 22:17:42 -04:00
Abhishek Yenpure
dbc873efa9 Changes to address feedback from MR
--  Removing `.inl` files
  --  Removing large comment code blocks
2023-08-17 09:34:00 -07:00
Vicente Bolea
67716402bc Correct export in class declaration
- Update Analysis.h to have consistent export symbols
- Update Analysis.h -- try to fix MSVC linking errors
- Fixup exports
2023-08-17 09:33:29 -07:00
Kenneth Moreland
8bb664de85 Support any cell type in MIR filter
Previously, the MIR filter ran a check the dimensionality of the cells in
its input data set to make sure they conformed to the algorithm. The only
real reason this was necessary is because the `MeshQuality` filter can only
check the size of either area or volume, and it has to know which one to
check. However, the `CellMeasures` filter can compute the sizes of all
types of cells simultaneously (as well as more cell types). By using this
filter, the MIR filter can skip the cell type checks and support more mesh
types.
2023-08-17 10:11:25 -04:00
Abhishek Yenpure
6d1d4f90ae Fixing linking issues for flow Analysis class 2023-08-16 18:23:22 -07:00
Abhishek Yenpure
adcb42455f Removing unnecessary file 2023-08-16 18:23:22 -07:00
Abhishek Yenpure
78ca3f3017 Fixing linking issues for flow Analysis class 2023-08-16 18:23:22 -07:00
Abhishek Yenpure
0e1ade83a0 Fixing linking issues for flow Analysis class 2023-08-16 18:23:22 -07:00
Abhishek Yenpure
12a3bc94e6 Adding test dependency of filter_flow on tests 2023-08-16 18:23:22 -07:00
Abhishek Yenpure
c69023cba3 Separating Analysis into header and source 2023-08-16 18:23:22 -07:00
Abhishek Yenpure
2a7149481e Moving base class flow filters into CXX 2023-08-16 18:23:22 -07:00
Abhishek Yenpure
6f57f33318 Fixing streamline output for no step 2023-08-16 18:23:22 -07:00
Abhishek Yenpure
1026b6dbaf Removing particle property num punctures 2023-08-16 18:23:22 -07:00
Abhishek Yenpure
9c83bd983b Removing XGC Filter 2023-08-16 18:23:22 -07:00
Abhishek Yenpure
9d840a88bd Fixing WarpXStreamlines compile problems 2023-08-16 18:23:22 -07:00
Abhishek Yenpure
e6545f0ca4 Fixing issues after rebasing 2023-08-16 18:23:22 -07:00
Abhishek Yenpure
0b76f44c8d Removing cout from device code 2023-08-16 18:23:22 -07:00
Abhishek Yenpure
6f85dee2f6 Changing solver type for WarpX to Euler 2023-08-16 18:23:22 -07:00
Abhishek Yenpure
e6291a9b91 Adding specialization for Particle/Field for XGC
Adding XGC Field
Adding updates to XGCField
Adding Updates for generalization
Adding WarpXStreamlines and Streamsurface
Adding changes to support XGC Poincare
Finalizing XGC analysis
2023-08-16 18:23:22 -07:00
Kenneth Moreland
34f07c37cf Merge topic 'ghost-cell-remove-interface'
a62eb7eb8 Update the interface and documentation of GhostCellRemove

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3110
2023-08-15 10:16:56 -04:00
Kenneth Moreland
a62eb7eb88 Update the interface and documentation of GhostCellRemove
The `GhostCellRemove` filter had some methods inconsistent with the naming
convention elsewhere in VTK-m. The class itself was also in need of some
updated documentation. Both of these issues have been fixed.

Additionally, there were some conditions that could lead to unexpected
behavior. For example, if the filter was asked to remove only ghost cells
and a cell was both a ghost cell and blank, it would not be removed. This
has been updated to be more consistent with expectations.
2023-08-08 21:43:38 -04:00
Kenneth Moreland
508cc3accb Improve = operators in VecFromPortal
Previously, `VecFromPortal` could only be set to a standard `Vec`.
However, because this is a `Vec`-like object with a runtime-size, it is
hard to do general arithmetic on it. It is easier to do in place so
there is some place to put the result. To make it easier to operate on
this as the result of other `Vec`-likes, extend the operators like `+=`,
`*=`, etc to support this.
2023-08-08 21:43:01 -04:00
Kenneth Moreland
8ae76c27f1 Save statistics of each partition
The original intent of calling the `Statistics` filter on a
`PartitionedDataSet` was that the resulting `PartitionedDataSet` would
have partitions matching the input giving the statics of each partition
(as well as the overall statistics in global fields). There is a comment
in the code that says as much.

However, the partitioned version of `Execute` deleted the statistics.
This corrects the behavior by leaving in the partitions' statistics.
This is also now being tested.
2023-08-08 21:41:04 -04:00
Vicente Bolea
5c6716f8e8 Merge topic 'fix-macos-build'
d800a33c2 remove unused variables
bba3f1fa5 macos: use Xcode 14.2

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <morelandkd@ornl.gov>
Merge-request: !3117
2023-08-07 20:20:55 -04:00
Vicente Adolfo Bolea Sanchez
d800a33c2e remove unused variables 2023-08-07 14:51:06 -04:00
abessiari
75b4998de7 added fix using read portal after sort and unit test using on the fly dataset 2023-07-31 23:45:32 -04:00
Kenneth Moreland
728ca6366f Compile CompositeVectors filter with regular compiler
The CompositeVectors filter does not run any worklet of its
own. It uses precompiled array manipulation and copies for
its implementation.

It shouldn't matter if a device compiler is used. (It should
be a quick compile.) But for some reason the nvcc compiler
was choking on an `auto`. Rather than figure out why nvcc is
barfing, I just stopped using it for this file.
2023-07-09 20:17:53 -04:00
Sujin Philip
90f09e8bcc Merge topic 'advanced-compute-range'
01bacbcde Advanced Compute Range

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <morelandkd@ornl.gov>
Merge-request: !3082
2023-07-05 14:48:12 -04:00
Sujin Philip
01bacbcde0 Advanced Compute Range
Add support for masks, vector magnitude range (L2 norm), and finite values only
range computations.
2023-07-04 11:54:56 -04:00
Kenneth Moreland
194ddb5b41 Fix error in checking paired faces in ExternalFaces filter
The `ExternalFaces` filter uses hash codes to find duplicate (i.e.
internal) faces. The issue with hash codes is that you have to deal with
unique entries that have identical hashes. The worklet to count how many
unique, unmatched faces were associated with each hash code was correct.
However, the code to then grab the ith unique face in a hash was wrong.
This has been fixed.

Fixes #789
2023-07-03 18:56:42 -04:00
Zhe Wang
f9d88bc3c5 Merge topic 'adding_hist_sampling'
2a1ac12fe add histsampling filter

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Li-Ta Lo <ollie@lanl.gov>
Merge-request: !3083
2023-06-30 12:25:15 -04:00
Dave Pugmire
56588b6244 Merge topic 'getActiveParticles_performance'
c109d3dde kick the dashboards.
9acb482a2 init maxnumsteps
ba3571f74 More efficient GetActiveParticles()
064501214 Merge branch 'master' of https://gitlab.kitware.com/vtk/vtk-m
ff4cc5e00 Merge branch 'master' of https://gitlab.kitware.com/vtk/vtk-m
51435f227 Merge branch 'master' of https://gitlab.kitware.com/vtk/vtk-m

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <morelandkd@ornl.gov>
Merge-request: !3091
2023-06-30 11:33:44 -04:00
Kenneth Moreland
faced47c65 Merge topic 'kokkos-atomics-fix'
284d479ee Switch Kokkos atomic functions to use desul library

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Mark Bolstad <mbolsta@sandia.gov>
Merge-request: !3092
2023-06-30 08:55:48 -04:00
Jay
2a1ac12fe2 add histsampling filter 2023-06-30 03:57:49 +00:00
Dave Pugmire
c109d3dde7 kick the dashboards. 2023-06-29 08:25:13 -04:00
Mark Bolstad
284d479ee7 Switch Kokkos atomic functions to use desul library
Kokkos 4 switches from their interal library based off of desul to using desul directly.
This removes VTK-m's dependency on the Kokkos internal implementation (Kokkos::Impl) to
using desul directly.
2023-06-28 14:34:54 -04:00
Kenneth Moreland
8b6c5250d2 Add a ConvertToPointCloud filter
This filter takes a `DataSet` and returns a point cloud representation that
has a vertex cell associated with each point in it. This is useful for
filling in a `CellSet` for data that has points but no cells. It is also
useful for operations in which you want to throw away the cell geometry and
operate on the data as a collection of disparate points.
2023-06-28 12:38:49 -04:00
Dave Pugmire
9acb482a26 init maxnumsteps 2023-06-28 08:00:31 -04:00
Dave Pugmire
ba3571f740 More efficient GetActiveParticles() 2023-06-28 07:58:22 -04:00
Kenneth Moreland
db2dbbbccb Simplify MarchingCells execute method
The output arrays are always basic arrays containing `vtkm::Vec3f`, so
we don't need to template those arguments.
2023-06-27 09:07:44 -04:00
Kenneth Moreland
0ee495f310 Split the compilation of ContourMarchingCells into instantiations
Although the contour filter was recently divided into 2 filters, flying
edges and marching cubes, the marching cubes version still had many
conditions and was the file that took the longest to compile on Frontier.
To help speed up parallel compiles and prevent a single run of a
compiler from being overwhelmed, the compilation of all the marching
cubes conditions has been split up using instantiations.
2023-06-26 14:07:47 -04:00
Kenneth Moreland
8f4d5fdf80 Remove some unneeded test comments and debug code 2023-06-21 17:33:05 -04:00
Gunther H. Weber
7bea5413cf Revert from VOIIsGlobal to IncludeOffset. Add comment about deprecation reasoning. 2023-06-21 17:29:01 -04:00
Gunther H. Weber
523c8f3f21 Add test whether GlobalPointDimensions are preserved 2023-06-21 17:29:01 -04:00
Gunther H. Weber
84e719ae17 Set GlobalPointIndexStart correctly, copy GlobalPointDimensions 2023-06-21 17:29:00 -04:00
Gunther H. Weber
e55b700f75 Deprecate SetIncludeOffset and rename to SetVOIIsGlobal 2023-06-21 17:29:00 -04:00
Gunther H. Weber
e013ad126f Add test for GlobalPointIndexStart to TestingExtractStructured 2023-06-21 17:29:00 -04:00
Vicente Bolea
bce19a2e4c Merge topic 'update-diy'
188e5080b Merge branch 'upstream-diy' into update-diy
12b45d864 diy 2023-06-16 (3ee23f39)
1bea838be diy: set diy version to latest for/vtk-m
9c0b16414 remove gcc13 warning
d907d832a CI,opensuse: added sles build with gcc13

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Li-Ta Lo <ollie@lanl.gov>
Merge-request: !3084
2023-06-21 15:01:36 -04:00
Sujin Philip
fc9077e0c5 Mark ArrayHandle constructors taking buffers, as explicit
This resolves a compiler ambiguity I hit during development.
In my case, I created an `ArrayHandleDecorator` with one of the arrays being
an `ArrayHandleTransform`. The ambiguity occurs in function
`DecoratorStorageTraits<...>::BuffersToArray`, here an `ArrayHandleTransform`
is constructed using buffers (`std::vector<vtkm::cont::internal::Buffer>`)

This constructor is not defined for `ArrayHandleTransform`, but it's defined for
its superclass (`vtkm::cont::ArrayHandle`). `ArrayHandleTransform` does have a
non-explicit constructor that takes the array to be transformed and the
transform-functor as parameters, where the later has a default value.
This produces the following ambiguous options for the compiler:

1. Create a "to-be-transformed" ArrayHandle instance using the buffers, call
   the `ArrayHandleTransform` constructor with this array with the defaulted
   functor parameter.
2. Create the superclass instance using the buffer and call the
  `ArrayHandleTransform` constructor that takes the superclass.

In this situation, option 2 is the correct choice.

The ambiguity is resolved by marking the constructors that take
buffers as explicit. These constructors are also added for the
derived classess via the `VTK_M_ARRAY_HANDLE_SUBCLASS_IMPL` macro.
2023-06-21 13:50:33 -04:00
Vicente Adolfo Bolea Sanchez
188e5080bd Merge branch 'upstream-diy' into update-diy
# By Diy Upstream
* upstream-diy:
  diy 2023-06-16 (3ee23f39)
2023-06-19 20:07:20 -04:00
Vicente Adolfo Bolea Sanchez
1bea838be9 diy: set diy version to latest for/vtk-m 2023-06-19 20:06:59 -04:00
Vicente Adolfo Bolea Sanchez
9c0b16414b remove gcc13 warning 2023-06-19 20:06:59 -04:00
Kenneth Moreland
a1e8d029c5 Get the 3D index from a BoundaryState in WorkletPointNeighborhood
There are occasions when you need a worklet to opeate on 2D or 3D
indices. Most worklets operate on 1D indices, which requires recomputing
the 3D index in each worklet instance. A workaround is to use a worklet
that does a 3D scheduling and pull the working index from that.

The problem was that there was no easy way to get this 3D index. To
provide this option, a feature was added to the `BoundaryState` class
that can be provided by `WorkletPointNeighborhood`.

Thus, to get a 3D index in a worklet, use the
`WorkletPointNeighborhood`, add `Boundary` as an argument to the
`ExecutionSignature`, and then call `GetCenterIndex` on the
`BoundaryState` object passed to the worklet operator.
2023-06-19 10:29:18 -06:00
Kenneth Moreland
05ff345b1f Merge topic 'array-range-instantiations'
46a613d18 Speed up compilation of ArrayRangeCompute.cxx

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3079
2023-06-19 12:22:17 -04:00
Kenneth Moreland
46a613d183 Speed up compilation of ArrayRangeCompute.cxx
The file `ArrayRangeCompute.cxx` was taking a long time to compile with
some device compilers. This is because it precompiles the range computation
for many types of array structures. It thus compiled the same operation
many times over.

The new implementation compiles just as many cases. However, the
compilation is split into many different translation units using the
instantiations feature of VTK-m's configuration. Although this rarely
reduces the overall CPU time spent during compiling, it prevents parallel
compiles from waiting for this one build to complete. It also avoids
potential issues with compilers running out of resources as it tries to
build a monolithic file.
2023-06-19 08:37:15 -06:00
Li-Ta Lo
362efb637c try to surpress warning for window 2023-06-14 10:04:43 -06:00
Li-Ta Lo
3f680a5be3 Merge branch 'master' into rendering_cpp_cleanup 2023-06-12 14:03:26 -06:00
Li-Ta Lo
7bbda42fe5 clean up Annontations 2023-06-12 14:02:47 -06:00
Kenneth Moreland
bde9c9b8a3 Merge topic 'flat-logical-convert-names'
29c96a24f Rename structured connectivity index conversion methods

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3075
2023-06-09 11:03:54 -04:00
Li-Ta Lo
75d0dd9bf8 Merge topic 'rendering_cpp_cleanup'
c8caecfef try to supress warning on windows
85b4b18fc properly call make_unique
10bcf618f non-virtual color table annotations

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <morelandkd@ornl.gov>
Merge-request: !3077
2023-06-07 17:59:53 -04:00
Li-Ta Lo
c8caecfefc try to supress warning on windows 2023-06-05 13:08:38 -06:00
Li-Ta Lo
85b4b18fca properly call make_unique 2023-06-05 11:20:49 -06:00
Li-Ta Lo
10bcf618f6 non-virtual color table annotations 2023-06-05 09:05:53 -06:00
Kenneth Moreland
4064a3bd06 Allow ComputeMoments to operate on any scalar field
Previously, the `ComputeMoments` filter only operated on a finite set of
array types as its input field. This included a prescribed list of `Vec`
sizes for the input. The filter has been updated to use more generic
interfaces to the field's array (and float fallback) to enable the
computation of moments on any type of scalar field.
2023-06-05 08:44:03 -04:00
Roxana Bujack
ddada34223 Merge topic 'addMomentsTest'
8a44ea4a9 adapt pixel wrongnes ratio
47441e841 add render test for moments

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <morelandkd@ornl.gov>
Merge-request: !3070
2023-06-05 08:34:19 -04:00
Kenneth Moreland
29c96a24fa Rename structured connectivity index conversion methods
The structured connectivity classes are templated on two tags to
determine what 2 incident topological elements are being accessed. Back
in the day, these were called the "from" elements and "to" elements, as
taken from VTK filter names like `PointDataToCellData`. However, these
names were found to be very confusion, and after much debate they have
been renamed to the visit element type and the incident element type.
Meaning that a worklet is "visiting" elements of a particular type (such
as visiting each cell) and can access "incident" elements of a
particular type (such as the points incident on the cell).

I found a few methods converting flat and logical indices using the old,
confusing from/to convention. This changes them to the new convention.
2023-06-02 15:31:24 -04:00
Li-Ta Lo
62eb0e3f3d copying Actor into Scene 2023-06-02 10:36:39 -06:00
Li-Ta Lo
04b6d96aab enable copying for Actor and ConnectivityProxy 2023-06-02 10:32:44 -06:00
Li-Ta Lo
09c78eec43 use unique_ptr for PIMPL ConnectivityProxy 2023-06-01 14:54:27 -06:00
Li-Ta Lo
6b0d2e369c use unique_ptr for PIMPL Actor 2023-06-01 11:28:49 -06:00
Li-Ta Lo
fe211adfd8 Merge branch 'master' into rendering_cpp_cleanup 2023-06-01 10:14:17 -06:00
Li-Ta Lo
c5ddf1e543 Merge topic 'parallel_projection'
6508d47cb Remove 3DPara
c39ff5f86 add include CanvasRayTracer.h
ca1fe424c cleanup Camera
d660a53b8 clean up Ray and RayOperator
9ed11540f cleanup Camera

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <morelandkd@ornl.gov>
Merge-request: !3072
2023-06-01 12:05:21 -04:00
Li-Ta Lo
6508d47cbc Remove 3DPara 2023-06-01 10:53:35 -04:00
roxana bujack
8a44ea4a91 adapt pixel wrongnes ratio 2023-06-01 15:41:39 +02:00
Kenneth Moreland
7037f64bba Merge topic 'add-gpu-to-gpu-conn'
1e2749580 diy,mpi: Enable GPU AWARE MPI buffers
662f93e07 Merge branch 'upstream-diy' into add-gpu-to-gpu-conn
928900c63 diy 2023-03-28 (6837fb55)
6d69301b7 DIY: bump new version

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <morelandkd@ornl.gov>
Merge-request: !2987
2023-05-31 17:23:26 -04:00
Kenneth Moreland
144f20636b Merge topic 'split-advection-test'
2631e5561 Split up the particle advection/streamline test

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Dave Pugmire <dpugmire@gmail.com>
Merge-request: !3067
2023-05-31 10:03:48 -04:00
Vicente Adolfo Bolea Sanchez
1e27495809 diy,mpi: Enable GPU AWARE MPI buffers
This commit adds the flag VTKm_ENABLE_GPU_MPI which when enable it
will use GPU AWARE MPI.

- This will only work with GPUs and MPI implementation that supports GPU
  AWARE MPI calls.
- Enabling VTKm_ENABLE_GPU_MPI without MPI/GPU support might results in
  errors when running VTK-m with DIY/MPI.
- Only the following tests can run with this feature if enabled:
  - UnitTestSerializationDataSet
  - UnitTestSerializationArrayHandle
2023-05-30 12:13:03 -04:00
Vicente Adolfo Bolea Sanchez
662f93e07a Merge branch 'upstream-diy' into add-gpu-to-gpu-conn
# By Diy Upstream
* upstream-diy:
  diy 2023-03-28 (6837fb55)
2023-05-30 12:12:48 -04:00
Vicente Adolfo Bolea Sanchez
6d69301b78 DIY: bump new version 2023-05-30 12:12:33 -04:00
Li-Ta Lo
b4f17b8518 use unique_ptr for PIMPL for View 2023-05-30 10:02:33 -06:00
Li-Ta Lo
ca1fe424cd cleanup Camera 2023-05-30 09:49:29 -06:00
Kenneth Moreland
b6e61f9447 Fixed an issue with copying array from a disabled device
The internal array copy has an optimization to use the device the array
exists on to do the copy. However, if that device is disabled the copy
would fail. This problem has been fixed.
2023-05-29 20:55:48 -04:00
roxana bujack
47441e841c add render test for moments 2023-05-26 14:08:57 +02:00
Kenneth Moreland
2631e5561f Split up the particle advection/streamline test
The test for particle advection filters was one large test that tested 3
versions --- advection, streamlines, and pathlines --- with each tested
for a variety of conditions including asynchronous communication, number
of blocks, ghost cells, etc. This was causing the test to take a while
and sometimes time out. (It would also sometimes seg fault, which I hope
is related.) To attempt to fix this problem, break up this test into
pieces so that each piece takes a shorter amount of time.

Because these tests share most of their implementation (which is why
they were grouped together in the first place) the common code is placed
in a source file of shared implementation. To support this I also added a
way to mark a source file to `vtkm_unit_tests` as a source file that does
not contain its own test. Normally you would just compile all of the
tests together, select each with command line arguments, and use
duplicate `add_tests` for each argument. But that is not how
`vtkm_unit_tests` works, and it would be too hard to make that change.
2023-05-24 15:05:09 -06:00
Kenneth Moreland
c802adcbeb Add support for CastAndCallVariableVecField in FilterField
The `FilterField` class provides convenience functions for subclasses to
determine the `ArrayHandle` type for scalar and vector fields. However, you
needed to know the specific size of vectors. For filters that support an
input field of any type, a new form, `CastAndCallVariableVecField` has been
added. This calls the underlying functor with an `ArrayHandleRecombineVec`
of the appropriate component type.

The `CastAndaCallVariableVecField` method also reduces the number of
instances created by having a float fallback for any component type that
does not satisfy the field types.
2023-05-22 10:14:59 -06:00
Kenneth Moreland
bb9e7a0d6f Handle any Vec size in VTKDataSetReader
The legacy VTK file reader previously only supported a specific set of Vec
lengths (i.e., 1, 2, 3, 4, 6, and 9). This is because a basic array
handle has to have the vec length compiled in. However, the new
`ArrayHandleRuntimeVec` feature is capable of reading in any vec-length
and can be leveraged to read in arbitrarily sized vectors in field
arrays.
2023-05-22 06:19:11 -06:00
Li-Ta Lo
d660a53b8d clean up Ray and RayOperator 2023-05-18 14:45:16 -06:00
Kenneth Moreland
2cc2205218 Merge topic 'composite-vectors-any-size'
b59580bb8 Allow CompositeVectors filter to build any size vector
a8b4e5a62 Add GetNumberOfActiveFields method to FilterField

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3063
2023-05-18 16:28:39 -04:00
Kenneth Moreland
fb8e3d7ce7 Merge topic 'runtime-vec-info'
5bdd3c7bc Move ArrayHandleRuntimeVec metadata to a separate class

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Li-Ta Lo <ollie@lanl.gov>
Merge-request: !3062
2023-05-17 15:45:20 -04:00
Li-Ta Lo
9ed11540f1 cleanup Camera 2023-05-17 12:38:43 -06:00
Li-Ta Lo
fdf7aaece7 Merge topic 'rendering_cpp_cleanup'
ee9c78ca9 Merge branch 'master' into rendering_cpp_cleanup
d05025ce8 simplify comment
066e6a696 I think this is the proper way doing PIMPL
6e75be33e unique_ptr know if itself is valid
50a9efc2f use rvalue ref for parameter
61c002072 cleanup C++ usage, use unique_ptr for PIMPL

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <morelandkd@ornl.gov>
Merge-request: !3057
2023-05-17 11:18:39 -04:00
Kenneth Moreland
ae908c7129 Merge topic 'fix-iterator-operator'
09c0139b4 Fix operator for IteratorFromArrayPortal

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Li-Ta Lo <ollie@lanl.gov>
Merge-request: !3035
2023-05-16 19:03:22 -04:00
Gunther Weber
149a6c3a29 Merge topic 'release-deadlock'
58fc4d826 Fix potential deadlock in distributed contour tree

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3024
2023-05-16 17:02:28 -04:00
Kenneth Moreland
b59580bb82 Allow CompositeVectors filter to build any size vector
Using the new `ArrayHandleRuntimeVec` feature, we can construct an array
with any vec sized value.
2023-05-16 12:39:40 -06:00
Kenneth Moreland
5bdd3c7bc2 Move ArrayHandleRuntimeVec metadata to a separate class
Originally, the metadata structure used by the `ArrayHandleRuntimeVec`
storage was a nested class of its `Storage`. But the `Storage` is
templated on the component type, and the metadata object is the same
regardless. In addition to the typical minor issue of having the
compiler create several identical classes, this caused problems when
pulling arrays from equivalent but technically different C types (for
example, `long` is the same as either `int` or `long long`).
2023-05-16 12:39:40 -06:00
Kenneth Moreland
a8b4e5a629 Add GetNumberOfActiveFields method to FilterField 2023-05-16 12:39:40 -06:00
Kenneth Moreland
09c0139b4e Fix operator for IteratorFromArrayPortal
There was an error in `operator-=` for `IteratorFromArrayPortal` that went
by unnoticed. The operator is fixed and regression tests for the operators
has been added.
2023-05-16 09:31:17 -06:00
Li-Ta Lo
ee9c78ca94 Merge branch 'master' into rendering_cpp_cleanup 2023-05-16 09:25:58 -06:00
Kenneth Moreland
8ef2c588a0 Merge topic 'unknown-runtime-vec-new-instance'
3c1afe53d Fix new instances of ArrayHandleRuntimeVec in UnknownArrayHandle

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Li-Ta Lo <ollie@lanl.gov>
Merge-request: !3058
2023-05-15 18:58:04 -04:00
Li-Ta Lo
d05025ce85 simplify comment 2023-05-15 13:05:06 -06:00
Kenneth Moreland
3c1afe53dc Fix new instances of ArrayHandleRuntimeVec in UnknownArrayHandle
`UnknownArrayHandle` is supposed to treat `ArrayHandleRuntimeVec` the
same as `ArrayHandleBasic`. However, the `NewInstance` methods were
failing because they need custom handling of the vec size.
2023-05-12 13:11:23 -06:00
Kenneth Moreland
44650c2e48 Fix unused variable in contour test 2023-05-12 12:00:17 -06:00
Li-Ta Lo
066e6a6969 I think this is the proper way doing PIMPL 2023-05-10 20:05:34 -06:00
Li-Ta Lo
6e75be33ec unique_ptr know if itself is valid 2023-05-10 17:31:50 -06:00
Li-Ta Lo
50a9efc2f5 use rvalue ref for parameter 2023-05-10 17:28:30 -06:00
Li-Ta Lo
61c002072f cleanup C++ usage, use unique_ptr for PIMPL 2023-05-10 10:17:14 -06:00
Louis Gombert
1538fc02fb Implement Flying Edges for all structured CellSets
In addition to  using uniform coordinates, the ContourFlyingEdges filter can now process any type of coordinate system, making the  filter use Flying Edges in more cases
2023-05-10 15:20:53 +02:00
Louis Gombert
a36415ff2b Merge topic 'contour-split'
dcdda3065 Split flying edges and marching cells into separate filters

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <morelandkd@ornl.gov>
Merge-request: !3050
2023-05-10 03:34:20 -04:00
Li-Ta Lo
0c9573e8d3 use mutable instead of const_cast, remove virtual 2023-05-08 09:29:27 -06:00
Li-Ta Lo
86ba9ff31a Merge topic 'unify_uniform_locators'
527940871 revert renaming this to self
58bbc0965 disable AxisAnnontation in unit tests
5787852a8 use Invoker instead of Dispatcher
eab63f68a revert change to CMakeList.txt
3045deb66 rename Adopter -> Adapter
9cdc16c9a fixed warning about float
2d3580636 add baseline image for volume renderer
8c324f824 Vec3f for param
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <morelandkd@ornl.gov>
Merge-request: !3048
2023-05-04 11:18:04 -04:00
Louis Gombert
dcdda3065a Split flying edges and marching cells into separate filters
In order to compile the contour filter more efficiently, we split the contour filter into two separate translation units, corresponding to the new filters ContourFlyingEdges and ContourMarchingCells. The API for Contour filter is left totally unchanged, and tries to use flying edges if the dataset is structured and uniform.
All three contour filters inherit from the `AbstractContour` class, providing utility methods used in the implementations.
2023-05-04 15:20:20 +02:00
Li-Ta Lo
5279408711 revert renaming this to self 2023-05-03 12:35:53 -06:00
Li-Ta Lo
58bbc0965f disable AxisAnnontation in unit tests 2023-05-03 07:14:41 -06:00
Li-Ta Lo
5787852a8e use Invoker instead of Dispatcher 2023-05-01 14:41:16 -06:00
Dave Pugmire
b437634295 Kick the dashboards..... 2023-05-01 14:41:32 -04:00
Dave Pugmire
1ce2922d15 Remove warning. Add BoundsMap methods.
Fix compiler warnings......

Kick the dashboards..........

Kick the dashboards.....

use lambda instead of functor, remove unused code

ArrayHandle::StorageType should be public

StorageType is public in vtkm::cont::ArrayHandle, but some subclasses  
re-declare it as private. Having it public provides a convenient way to  
get the storage type of an ArrayHandle, otherwise it is quite verbose.

Addresses: #314

Tetrahedralize and Triangulate filters check if input is already triangulated

Previously, tetrahedralize/triangulate would blindly convert all the cells to tetrahedra/triangles, even when they were already. Now, the dataset is directly returned if the CellSet is a CellSetSingleType of tetras/triangles, and no further processing is done in the worklets for CellSetExplicit when all shapes are tetras or triangles.

ci,crusher: changed fs to orion

ci,osx,macos: fix value of GIT_CLONE_PATH
2023-05-01 13:05:11 -04:00
Li-Ta Lo
eab63f68ad revert change to CMakeList.txt 2023-04-28 13:51:18 -06:00
Li-Ta Lo
3045deb665 rename Adopter -> Adapter 2023-04-28 13:21:26 -06:00
Li-Ta Lo
9cdc16c9ab fixed warning about float 2023-04-28 08:24:15 -06:00
Li-Ta Lo
8c324f8244 Vec3f for param 2023-04-27 10:18:15 -06:00
Li-Ta Lo
f799826faa use Vec3f for parametric coordinate 2023-04-27 10:10:45 -06:00
Li-Ta Lo
6fa506d60d clean up 2023-04-27 08:29:42 -06:00
Li-Ta Lo
b7b3d51b1d use CRTP to factor out common code 2023-04-26 12:33:05 -06:00
Li-Ta Lo
b1804f591c calculate invSpacing 2023-04-26 11:41:55 -06:00
Li-Ta Lo
4f91cfded4 making the two sampler look closer 2023-04-26 09:02:43 -06:00
Li-Ta Lo
5ccf5dd5bc first cut at delegate RectilinearLocator 2023-04-25 16:42:21 -06:00
Li-Ta Lo
8dcd78b1ba delegate to vtk::cont::CellLocatorUniformGrid 2023-04-25 08:47:57 -06:00
Li-Ta Lo
0fd47317b2 Merge topic 'volume_render_cleanup'
86e6c5c3e use lambda instead of functor, remove unused code

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <morelandkd@ornl.gov>
Acked-by: Manish Mathai <mmathai@uoregon.edu>
Merge-request: !3043
2023-04-21 10:39:30 -04:00
Li-Ta Lo
86e6c5c3e0 use lambda instead of functor, remove unused code 2023-04-20 13:34:58 -06:00
Kenneth Moreland
0182eb9d9d Test variant arguments to worklets
Add a regression test for passing a variant as an argument to a worklet.
Variants are tricky objects, and the compiler might make some strange
assumptions during optimization.

One case that popped up in particular was when a variant contained two
objects with the same `sizeof` but the first object had padding. When the
variant contained the second object, the value under the padded part of
the first object was not set.
2023-04-19 11:30:47 -06:00
Kenneth Moreland
de28a43510 Add an entry to VariantUnion to help compiler copy structs
I've been seeing errors in a nightly build that compiles for CUDA Pascal
using GCC5. The issue is that one of the `ArrayHandleMultiplexer` tests
is failing to copy an implicit array correctly. I think the problem is
that in this test the first and second type of the `Variant` are the same
size, but the first type has some padding in the middle whereas the
second type does not. When using this second type, the values in the
same position of the padding of the first type don't seem to be
initialized properly in the kernel invocation.

My nonexhaustive experiment shows that things work OK as long as the
first type is large enough and has no fillers. Enforce this by adding an
internal entry to the union that is completely full.
2023-04-19 11:14:48 -06:00
Sean Miller
1ac12b784b Adding thrust option for ReduceByKey for Kokkos+HIP/CUDA. 2023-04-17 10:50:57 -05:00
Dave Pugmire
c8702f132b Punch the dashboard in the neck. 2023-04-14 22:29:07 -04:00
Dave Pugmire
d257108236 cleanup and better check for valid seeds. 2023-04-14 14:19:50 -04:00
Dave Pugmire
fe35202de8 Merge branch 'master' of https://gitlab.kitware.com/vtk/vtk-m into sl_block_duplication 2023-04-14 12:54:00 -04:00
Louis Gombert
627b757733 Merge topic 'continuous-scatterplot'
4ba15a993 Add new ContinuousScatterPlot filter

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3028
2023-04-14 12:01:15 -04:00
Dave Pugmire
eb3c91494e Fixes to block duplication code. 2023-04-14 10:50:30 -04:00
Louis Gombert
4ba15a993d Add new ContinuousScatterPlot filter
This new filtered designed for bi-variate analysis builds the continuous scatterplot of a 3D tetrahedralized mesh for two given scalar point fields. The continuous scatterplot is an extension of the discrete scatterplot for continuous bi-variate analysis.
2023-04-14 10:00:33 +02:00
Kenneth Moreland
42b364b416 Merge topic 'fix-mask-scatter-size'
472528822 Fix the size of Mask and ScatterPermutation arrays

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3037
2023-04-12 17:36:13 -04:00
Kenneth Moreland
4725288224 Fix the size of Mask and ScatterPermutation arrays
While adding checks to the size of implicit arrays, it was discovered
that some of the Mask and ScatterPermutation arrays were constructed
with the wrong sizes during dispatch. In particular, these arrays were
supposed to be sized on the output, but were instead sized on the input.
They went unnoticed because they were using implicit arrays that worked
even if the array access went out of bounds.
2023-04-12 14:37:26 -06:00
Dave Pugmire
d1e68ace91 Kick the dashboards.... 2023-04-12 12:08:30 -04:00
Sujin Philip
1261e459d3 Clip: Remove unused points
The clip filter used to copy the input points and point fields as is,
regardless of if they were actually part of the output. With this change,
we track which input points are actually part of the output and copy
only those values.

Address: #112
2023-04-11 14:35:25 -04:00
Dave Pugmire
778e2783a3 Kick the dashboards..... 2023-04-11 13:53:04 -04:00
Sujin Philip
758fedc661 Clip: Release resources early 2023-04-10 16:19:47 -04:00
Sujin Philip
863c8e3dc6 Clip: Use vtkm::cont::Invoker
Replace use of vtkm::worklet::Dispatcher* with vtkm::cont::Invoker.
2023-04-10 16:18:24 -04:00
Dave Pugmire
186f06a822 Remove debug statements. 2023-04-10 12:05:44 -04:00
Dave Pugmire
812b8f3930 Fix serial compile error. 2023-04-08 14:19:58 -04:00
Dave Pugmire
6de278d8a4 Allow block duplication 2023-04-07 09:50:29 -04:00
Dave Pugmire
684652db9d Fix compile error in serial mode. 2023-03-30 22:13:20 -04:00
Dave Pugmire
a5ad12a4f4 Merge branch 'master' of https://gitlab.kitware.com/vtk/vtk-m into sync_streamlines 2023-03-30 13:35:35 -04:00
Dave Pugmire
dc547de809 Remove debugging information. 2023-03-30 13:34:03 -04:00
Kenneth Moreland
90706d53f8 Merge topic 'safer-divide-by-volume'
014c429eb Make divide by volume in particle density estimate a little safer

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Li-Ta Lo <ollie@lanl.gov>
Merge-request: !3022
2023-03-27 08:48:05 -04:00
Zhe Wang
1fc84b85f9 Merge topic 'distributed_statistics'
d8f3e68d1 add distributed statistics

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <morelandkd@ornl.gov>
Merge-request: !3017
2023-03-24 14:51:42 -04:00
Jay
d8f3e68d1d add distributed statistics 2023-03-24 15:19:23 +00:00
Dave Pugmire
42f183e81f More code cleanup................ 2023-03-23 15:21:43 -04:00
Dave Pugmire
1dea2b2eec Code cleanup........ 2023-03-23 15:11:33 -04:00
Dave Pugmire
322012a596 Only log message in debug. 2023-03-23 15:09:47 -04:00
Dave Pugmire
9d3c24ab91 Undo an inadvertent change. 2023-03-23 14:52:28 -04:00
Dave Pugmire
ad49b1e25b propagate the sync/async comm flag down. 2023-03-23 14:46:35 -04:00
Dave Pugmire
f6ac8d2857 Add useAsyncComm flags. 2023-03-23 13:41:57 -04:00
Dave Pugmire
b74e9efc06 Fix compiler error.... 2023-03-23 12:44:10 -04:00
Dave Pugmire
f9e9ea9c73 Revert "Add fields to particles."
This reverts commit d6aff6bdb92a60a8406b590ff7237775911818d2.
2023-03-23 12:38:09 -04:00
Kenneth Moreland
58fc4d8267 Fix potential deadlock in distributed contour tree
The `HierarchicalAugmenter` used in the distributed contour tree filter
attempts to save memory by releasing buffers used to send and receive
data after the DIY enqueues and dequeues are posted. This works as long
as the DIY serialization process copies the data in the arrays. However,
changes are coming where the data is sent directly from the buffers.
These changes cause a deadlock because the enqueue places a read lock
until the data is sent while the release tried to get a write lock.

The solution is simply to "forget" the array rather than explicitly
delete it. In this case, the array will automatically be deleted once
everyone is done with it.
2023-03-23 07:07:44 -06:00
Kenneth Moreland
014c429eb0 Make divide by volume in particle density estimate a little safer
While going through the VTK-m code to identify where a cast-and-call was
happening against VTKM_DEFAULT_TYPE_LIST, I ran into a subtle case in
`ParticleDensityBase` that was calling a worklet with an
`UnknownArrayHandle`. This works OK, but was probably compiling for
unnecessary types (for example, vectors). Changed the field resolution
to be more intentional.
2023-03-21 14:01:42 -06:00
Kenneth Moreland
3ab9e2ba75 Update clip with implicit function filter's field map
MR !2969 was meant to update the clip filters such that their field
mapping works on any field type and preserves the value type. Although
this was done for `ClipWithField`, it was not fully implemented for
`ClipWithImplicitFunction`. These changes update
`ClipWithImplicitFunction` to match its sibling.
2023-03-21 13:33:30 -06:00
Kenneth Moreland
af6218936f Merge topic 'vectraits-for-all'
ac889b500 Implement VecTraits class for all types

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Li-Ta Lo <ollie@lanl.gov>
Merge-request: !3018
2023-03-21 12:55:00 -04:00
Dave Pugmire
3efa8bb744 Merge branch 'master' of https://gitlab.kitware.com/vtk/vtk-m into add_visit_file_reader 2023-03-20 10:58:55 -04:00
Kenneth Moreland
94d8698d16 Merge topic 'data-license'
f545feba8 Add changelog for documenting data license
a24358a1a Document source of WarpX files
60559ce9b Document the source of venn250.vtk
796ec9638 Document data that comes from VisIt tutorial
06391c4e6 Clarify license for ECL data

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Vicente Bolea <vicente.bolea@kitware.com>
Merge-request: !3016
2023-03-20 09:42:41 -04:00
Kenneth Moreland
ac889b5004 Implement VecTraits class for all types
The `VecTraits` class allows templated functions, methods, and classes to
treat type arguments uniformly as `Vec` types or to otherwise differentiate
between scalar and vector types. This only works for types that `VecTraits`
is defined for.

The `VecTraits` templated class now has a default implementation that will
be used for any type that does not have a `VecTraits` specialization. This
removes many surprise compiler errors when using a template that, unknown
to you, has `VecTraits` in its implementation.

One potential issue is that if `VecTraits` gets defined for a new type, the
behavior of `VecTraits` could change for that type in backward-incompatible
ways. If `VecTraits` is used in a purely generic way, this should not be an
issue. However, if assumptions were made about the components and length,
this could cause problems.

Fixes #589
2023-03-16 12:59:38 -06:00
Dave Pugmire
97b460110f Fix issues....... 2023-03-15 12:45:45 -04:00
Dave Pugmire
6db8c316ad Merge branch 'master' of https://gitlab.kitware.com/vtk/vtk-m into add_visit_file_reader 2023-03-15 09:23:03 -04:00
Dave Pugmire
39cb7a653b kick the build machines. 2023-03-14 21:06:02 -04:00
Dave Pugmire
c989550111 Better error checking and logging. 2023-03-14 15:15:06 -04:00
Kenneth Moreland
796ec9638e Document data that comes from VisIt tutorial
Some of the data sets that are included from VTK-m are derived from the
VisIt Tutorial Data (https://www.visitusers.org/index.php?title=Tutorial_Data).
These are covered by the VisIt license, as communicated by Eric Brugger.

Although the license for these data is compatible with VTK-m's license,
we should still attribute the source of the data and make clear the
copyrights. The data are moved into the third_party directory, and
readmes are added to document everything.

The noise.vtk and noise.bov files have been renamed example.vtk and
example_temp.bov to match the name of the file in the VisIt tutorial
data archive. The ucd3d.vtk file, which is similar to the curv3d.silo
data but altered, has been removed. It was not used for any tests. It
was referenced in a couple of example programs, but the reference is
easily changed.
2023-03-14 12:25:21 -06:00
Kenneth Moreland
7ddf3d85c5 Merge topic 'remove-unlicensed-data'
5aba6e1be Remove unlicensed data

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Vicente Bolea <vicente.bolea@kitware.com>
Merge-request: !3012
2023-03-14 11:42:03 -04:00
Dave Pugmire
2a6220726d Error checking for number of blocks. 2023-03-13 16:26:58 -04:00
Dave Pugmire
f60f437000 Add VisIt file reader. 2023-03-13 16:13:21 -04:00
Kenneth Moreland
5aba6e1bea Remove unlicensed data
Some of the test data sets are derived from data sets that are commonly
distributed to test visualization algorithms and are featured in
numerous papers. However, I am unable to track down the original source
let alone identify what license, if any, they were released under. To
avoid any complications with data ownership, remove these data sets and
replace them with in house data sets that we explicitly own.
2023-03-13 13:54:44 -06:00
Louis Gombert
ea13c27613 Minor Shrink filter fixes 2023-03-09 16:46:58 +01:00
Louis Gombert
b970a6f4c7 Merge topic 'shrink-filter'
67d6780fb Add Shrink filter

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <morelandkd@ornl.gov>
Merge-request: !3007
2023-03-09 09:14:01 -05:00
Louis Gombert
67d6780fba Add Shrink filter
This filter shrinks the cells of a DataSet towards their centroid, computed as the average position of the cell points
2023-03-09 09:48:46 +01:00
Kenneth Moreland
58fc99c2f8 Fix fast paths for ArrayRangeCompute
The precompiled `ArrayRangeCompute` function was not following proper fast
paths for special arrays. For example, when computing the range of an
`ArrayHandleUniformPointCoordinates`, the ranges should be taken from the
origin and spacing of the special array. However, the precompiled version
was calling the generic range computation, which was doing an unnecessary
reduction over the entire array. These fast paths have been fixed.

These mistakes in the code were caused by quirks in how templated method
overloading works. To prevent this mistake from happening again in the
precompiled `ArrayRangeCompute` function and elsewhere, all templated forms
of `ArrayRangeCompute` have been deprecated. Most will call
`ArrayRangeCompute` with no issues. For those that need the templated
version, `ArrayRangeComputeTemplate` replaces the old templated
`ArrayRangeCompute`. There is exactly one templated declaration of
`ArrayRangeComputeTemplate` that uses a class, `ArrayRangeComputeImpl`,
with partial specialization to ensure the correct form is used.
2023-03-08 12:36:53 -07:00
Kenneth Moreland
4b19139f3d Add tests to UnitTestArrayRangeCompute
Make the test a bit more complete by testing more array types.
2023-03-08 12:36:53 -07:00
Kenneth Moreland
69a9d4a87e Merge topic 'convert-runtime-vec-array'
331a277fe Automatically convert between ArrayHandleBasic and ArrayHandleRuntimeVec

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Li-Ta Lo <ollie@lanl.gov>
Merge-request: !2994
2023-03-08 14:35:30 -05:00
Thomas H. Gibson
b1bb050bc8 Merge topic 'thrust-sorting'
267ee49cb docker: update kokkos hip image
67bf9a966 docker: update kokkos hip image
50d4ab5cc CMake: VTKm_ENABLE_KOKKOS_THRUST to depend on Kokkos with CUDA or HIP enabled
0604f314a Fix for building SERIAL unit tests with KOKKOS_HIP/CUDA enabled
802bf80b0 CI: Add rocthrust installation step
fda475d5b Rework Thrust CMake options
e6f63a807 Adding CMake tweaks to turn off thrust algorithms if thrust is not detected.
5a72275ed Rewrite sorting specialization using std::enable_if_t
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2926
2023-03-06 09:48:43 -05:00
Kenneth Moreland
2af555f6c9 Simplify serialization of DataSet objects
`vtkm::cont::DataSet` is a dynamic object that can hold cell sets and
fields of many different types, none of which are known until runtime. This
causes a problem with serialization, which has to know what type to compile
the serialization for, particularly when unserializing the type at the
receiving end. The original implementation "solved" the problem by creating
a secondary wrapper object that was templated on types of field arrays and
cell sets that might be serialized. This is not a great solution as it
punts the problem to algorithm developers.

This problem has been completely solved for fields, as it is possible to
serialize most types of arrays without knowing their type now. You still
need to iterate over every possible `CellSet` type, but there are not that
many `CellSet`s that are practically encountered. Thus, there is now a
direct implementation of `Serialization` for `DataSet` that covers all the
data types you are likely to encounter.

The old `SerializableDataSet` has been deprecated. In the unlikely event an
algorithm needs to transfer a non-standard type of `CellSet` (such as a
permuted cell set), it can use the replacement `DataSetWithCellSetTypes`,
which just specifies the cell set types.
2023-03-03 09:17:44 -07:00
Vicente Adolfo Bolea Sanchez
ecd4a68ffc cxx,c++: Remove c++14 references
- MSVC C++14 support obtained from: https://learn.microsoft.com/en-us/cpp/overview/visual-cpp-language-conformance?view=msvc-170
- _MSVC_VER taken from https://stackoverflow.com/a/70630/2420872

fixes: #754
2023-02-23 19:30:58 -05:00
Dave Pugmire
f53d90d6b6 Merge branch 'sync_streamlines' of https://gitlab.kitware.com/dpugmire/vtk-m into sync_streamlines 2023-02-20 10:08:43 -05:00
Dave Pugmire
9fefdf6e61 Add fields to particles. 2023-02-20 10:03:49 -05:00
Kenneth Moreland
331a277fe3 Automatically convert between ArrayHandleBasic and ArrayHandleRuntimeVec
The `UnknownArrayHandle` has been updated to allow
`ArrayHandleRuntimeVec` to work interchangeably with basic
`ArrayHandle`. If an `ArrayHandleRuntimeVec` is put into an
`UnknownArrayHandle`, it can be later retrieved as an `ArrayHandleBasic`
as long as the base component type matches and it has the correct amount
of components. This means that an array can be created as an
`ArrayHandleRuntimeVec` and be used with any filters or most other
features designed to operate on basic `ArrayHandle`s. Likewise, an array
added as a basic `ArrayHandle` can be retrieved in an
`ArrayHandleRuntimeVec`. This makes it easier to pull arrays from VTK-m
and place them in external structures (such as `vtkDataArray`).
2023-02-20 07:39:49 -07:00
Sean Miller
0604f314aa Fix for building SERIAL unit tests with KOKKOS_HIP/CUDA enabled 2023-02-20 08:28:34 -06:00
Sean Miller
e6f63a807d Adding CMake tweaks to turn off thrust algorithms if thrust is not detected. 2023-02-20 08:26:24 -06:00
Thomas Gibson
5a72275ed8 Rewrite sorting specialization using std::enable_if_t 2023-02-20 08:25:05 -06:00
Sean Miller
04013b9924 Add sorting implementation using thrust
Co-authored-by: Thomas Gibson <thomas.gibson@amd.com>
2023-02-20 08:25:02 -06:00