Commit Graph

787 Commits

Author SHA1 Message Date
Kenneth Moreland
7d681fb585 Deprecate templated versions of Field::GetRange
Instead, always use precompiled versions of range computing. This means
you won't be able to specify the type. Currently, types are limited to
scalars vecs up to size 4.

The main motivation for this change is to allow you to include Field.h
with a non-device compiler. This is an important feature for our
customers.

I plan in the future to implement a mechanism to pull out a component of
most ArrayHandle's as a single array. This would enable us to support a
precompiled version that can compute the range of arbitrarily sized
Vecs.
2020-11-09 12:28:29 -07:00
Dave Pugmire
f4fdc5e183 MPI testing update. 2020-11-05 16:04:48 -05:00
Dave Pugmire
c0e07e845f remove print statements. 2020-11-05 16:01:55 -05:00
Dave Pugmire
ed790afd8d debug for dashboards 2020-11-05 15:49:38 -05:00
Dave Pugmire
b57ffb30ae Add parallel AMR streamline test. 2020-11-05 15:34:11 -05:00
Dave Pugmire
f93ddfee9d Re-enable the other SL tests. 2020-11-05 14:30:54 -05:00
Dave Pugmire
6663d348b7 Add tests for AMR-like grids for streamline 2020-11-05 14:25:58 -05:00
Dave Pugmire
02f73fce1b Compiler warnings. 2020-11-02 21:39:24 -05:00
Dave Pugmire
f876a2ceec Structured ONLY in LS filter. 2020-11-02 17:44:18 -05:00
Dave Pugmire
4517201676 Fix testing for both SL and PA 2020-11-02 17:35:13 -05:00
Dave Pugmire
fb72ab097b Add tests for all datasetypes for 3D 2020-11-02 17:23:42 -05:00
Dave Pugmire
699dbae5ca compile warning and fix to PA test. 2020-11-02 17:16:37 -05:00
Dave Pugmire
4d6776cd16 Update filter test to use all data types. 2020-11-02 17:07:22 -05:00
Dave Pugmire
c0189982ac Messed up the merge. 2020-11-02 16:31:23 -05:00
Dave Pugmire
a7f049ac1a Merge branch 'master' of https://gitlab.kitware.com/vtk/vtk-m into ghost_streamlines 2020-11-02 16:28:57 -05:00
Dave Pugmire
0bd0b0c5a7 Remove PA tests (moved into SL) 2020-11-02 16:26:14 -05:00
Dave Pugmire
467ad88d06 Move PA tests into Streamline 2020-11-02 16:25:38 -05:00
Dave Pugmire
2a916ebc0f remove debug prints. 2020-10-28 09:11:00 -04:00
Dave Pugmire
722479ea10 Add different dataset types to MPI test. 2020-10-27 22:12:45 -04:00
Dave Pugmire
047bd93d5a Fix compile error 2020-10-27 14:27:34 -04:00
Dave Pugmire
5294bd2045 remove print statements. 2020-10-27 13:54:32 -04:00
Dave Pugmire
098edff0a8 Add multiple dataset types for streamline and pathline. 2020-10-27 13:43:00 -04:00
Dave Pugmire
dedf4d7a7d fix compile error. 2020-10-26 16:36:26 -04:00
Dave Pugmire
c592095f75 fix compile warnings. 2020-10-26 15:59:38 -04:00
Dave Pugmire
e8dc7e0eee Add more dataset types for testing. 2020-10-26 15:49:58 -04:00
Dave Pugmire
dbe9e17882 Add helper functions for generating datasets. 2020-10-26 13:45:47 -04:00
Dave Pugmire
eb76dff8d2 Support for ghost cells in P.A. filter 2020-10-26 12:39:31 -04:00
Kenneth Moreland
0b1c48a3ee Identify number of partitions in filter execution
When you execute a filter, the default behavior is to do the execution
on each partition of the data set independently. This code path is
followed even for non-partitioned data; the `DataSet` is wrapped in a
`PartitionedDataSet` of one partition.

Make performance logging a bit more clear by only giving one scoped log
for a basic `DataSet` and recording the number of partitions executed in
the log.
2020-10-26 09:00:09 -06:00
Dave Pugmire
b041891b5d Fix bad index in a unit test. 2020-10-23 22:46:47 -04:00
Dave Pugmire
6e42c4fe31 remove unused function. 2020-10-23 22:43:56 -04:00
Dave Pugmire
f8fe2e16b4 Add more data set types to filter tests. 2020-10-23 16:19:49 -04:00
Li-Ta Lo
8b6ae4f78c fixed type conversion and typo 2020-10-21 16:32:04 -06:00
Li-Ta Lo
77e1aec50a minor change based on code review 2020-10-21 16:08:06 -06:00
Li-Ta Lo
58436ed2fc Merge branch 'master' into particle_density 2020-10-21 08:48:38 -06:00
Kenneth Moreland
28ecf3636d Change interface of atomic compare and swap
The old atomic compare and swap operations (`vtkm::AtomicCompareAndSwap`
and `vtkm::exec::AtomicArrayExecutionObject::CompareAndSwap`) had an
order of arguments that was confusing. The order of the arguments was
shared pointer (or index), desired value, expected value. Most people
probably assume expected value comes before desired value. And this
order conflicts with the order in the `std` methods, GCC atomics, and
Kokkos.

Change the interface of atomic operations to be patterned off the
`std::atomic_compare_exchange` and `std::atomic<T>::compare_exchange`
methods. First, these methods have a more intuitive order of parameters
(shared pointer, expected, desired). Second, rather than take a value
for the expected and return the actual old value, they take a pointer to
the expected value (or reference in `AtomicArrayExecutionObject`) and
modify this value in the case that it does not match the actual value.
This makes it harder to mix up the expected and desired parameters.
Also, because the methods return a bool indicating whether the value was
changed, there is an additional benefit that compare-exchange loops are
implemented easier.

For example, consider you want to apply the function `MyOp` on a
`sharedValue` atomically. With the old interface, you would have to do
something like this.

```cpp
T oldValue;
T newValue;
do
{
  oldValue = *sharedValue;
  newValue = MyOp(oldValue);
} while (vtkm::AtomicCompareAndSwap(sharedValue, newValue, oldValue) != oldValue);
```

With the new interface, this is simplfied to this.

```cpp
T oldValue = *sharedValue;
while (!vtkm::AtomicCompareExchange(sharedValue, &oldValue, MyOp(oldValue));
```
2020-10-20 08:39:22 -06:00
Li-Ta Lo
f1b27c2b8b removed bad stuff 2020-10-19 17:49:55 -06:00
Li-Ta Lo
e6e0506e1f add a newline 2020-10-19 15:46:08 -06:00
Li-Ta Lo
9c4129bfb1 Neareast Grid Point particle density estimate 2020-10-19 15:29:14 -06:00
Li-Ta Lo
8c15745c04 Merge branch 'master' into particle_density 2020-10-15 07:41:05 -06:00
Kenneth Moreland
19944653bc Add scope log for functions that help map fields in filters 2020-10-13 16:35:25 -06:00
Kenneth Moreland
4dec08c6f0 Add tests for advecting particles in explict cell sets
The `UnitTestParticleAdvectionFilter` was only testing advection in
structured cell sets (with either uniform or rectilinear points). This
did not test all paths (i.e. grid evaluators and locators) of particle
advection. Changed the test to also try grids with explicit cells.

Note that the explicit cells are created by just converting the
rectilinear grids to explicit grids. It would be better to get at least
one small dataset that starts as unstructured.
2020-10-13 09:06:02 -06:00
Vicente Adolfo Bolea Sanchez
a290de5bcc BenchmarkFilters: adds unstructured Dataset for some filters
- It also remove termination on bench error
- It disables passing fields in Countour to skip an error.

Signed-off-by: Vicente Adolfo Bolea Sanchez <vicente.bolea@kitware.com>
2020-10-07 18:46:36 -04:00
Li-Ta Lo
c1681d2f2a Merge branch 'master' into particle_density 2020-10-07 12:24:07 -06:00
Gunther H. Weber
ce0aa1cf94 Fix compile errors 2020-09-17 05:42:41 -07:00
Gunther H. Weber
991f7a85ad Refactor mesh classes: switch from row/col/slice to vtkm::Id2/Id3 2020-09-15 11:15:27 -07:00
Kenneth Moreland
2e918c58dc Move ColorTable mapping to its own header
We would really like to be able to include `vtkm::cont::ColorTable` in
such a way that you don't have to compile device code (unless you are
actually compiling functions for the device). Thus, the `Map` functions
of `ColorTable` were in a special `ColorTable.hxx` that contains the
"implementation" for `ColorTable`.

That is confusing to many users. It is more clear to simply have `.h`
headers that do a specific thing. To achieve these two goals, the `Map`
functionality of `ColorTable` is separated out into its own header file.
So you don't need to be using a device compiler just to use `ColorTable`
(including `ColorTable.h`), but you do need to use a device compiler if
mapping values to colors (including `ColorTableMap.h`).
2020-09-14 16:40:26 -06:00
Kenneth Moreland
11996f133f Remove virtual methods from ColorTable
Virtual methods are being deprecated, so remove their use from the
ColorTable classes. Instead of using a virtual method to look up a value
in the ColorTable, we essentially use a switch statement. This change
also simplified the code quite a bit.

The execution object used to use pointers to handle the virtual objects.
That is no longer necessary, so a simple `vtkm::exec::ColorTable` is
returned for execution objects. (Note that this `ColorTable` contains
pointers that are specific for the particular device.) This is a non-
backward compabible change. However, the only place (outside of the
`ColorTable` implementation itself) was a single worklet for converting
scalars to colors (`vtkm::worklet::colorconversion::TransferFunction`).
This is unlikely to affect anyone.

I also "fixed" some names in enum structs. There has been some
inconsistencies in VTK-m on whether items in an enum struct are
capitolized or camel case. We seem to moving toward camel case, so
deprecate some old names.
2020-09-14 13:26:16 -06:00
Kenneth Moreland
f7cc03107d Fix deprecated warnings
Supress the deprecated class warnings for the implementation of
deprecated features.
2020-09-09 06:13:07 -06:00
Kenneth Moreland
63ef84ed78 Optionally remove all use of ArrayHandleVirtual
As we remove more and more virtual methods from VTK-m, I expect several
users will be interested in completely removing them from the build for
several reasons.

1. They may be compiling for hardware that does not support virtual
methods.
2. They may need to compile for CUDA but need shared libraries.
3. It should go a bit faster.

To enable this, a CMake option named `VTKm_NO_DEPRECATED_VIRTUAL` is
added. It defaults to `OFF`. But when it is `ON`, none of the code that
both uses virtuals and is deprecated will be built.

Currently, only `ArrayHandleVirtual` is deprecated, so the rest of the
virtual classes will still be built. As we move forward, more will be
removed until all virtual method functionality is removed.
2020-09-04 22:52:45 -06:00
Kenneth Moreland
e11f612add Deprecate ArrayHandleVirtual
Virtual methods in the execution environment are going away the next
major release of VTK-m, so deprecate their use in preparation for that.
2020-09-04 22:52:45 -06:00