Commit Graph

6704 Commits

Author SHA1 Message Date
dpugmire
ebb1019aab Add CheckRequests method. 2021-02-18 11:14:02 -05:00
dpugmire
af14f583a7 Merge branch 'master' of https://gitlab.kitware.com/vtk/vtk-m into messenger_cleanup 2021-02-18 09:04:57 -05:00
dpugmire
55fff59e09 Cleanup the messenger classes. 2021-02-18 09:01:23 -05:00
Gunther H. Weber
585f0ccb18 Two versions for replacing array transform with array decorator 2021-02-17 19:17:31 -08:00
Nickolas Davis
8e757e58ad Merge topic 'point-locator-virtual-removal'
f70ecd435 implement PointLocator without virtual methods

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !2403
2021-02-17 15:53:32 -05:00
Kenneth Moreland
75597e240b Merge topic 'array-range-compute-unknown'
04f020ae6 Update Field to use new ArrayRangeCompute features
2a41428fe Add implementation of ArrayRangeCompute for UnknownArrayHandle

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Sujin Philip <sujin.philip@kitware.com>
Merge-request: !2409
2021-02-17 15:43:53 -05:00
Kenneth Moreland
b9430c52e6 Create ArrayHandleOffsetsToNumComponents
This is a fancy array that takes an array of offsets and converts it to
an array of the number of components for each packed entry.

This replaces the use of `ArrayHandleDecorator` in `CellSetExplicit`.
The two implementation should do the same thing, but the new
`ArrayHandleOffsetsToNumComponents` should be less complex for
compilers.
2021-02-17 10:44:47 -07:00
nadavi
f70ecd4354 implement PointLocator without virtual methods 2021-02-17 17:16:17 +00:00
Kenneth Moreland
04f020ae65 Update Field to use new ArrayRangeCompute features
Reduces the amount of code that has to be generated. Also improves the
number of arrays supported and has better support for deprecated
versions of `GetRange`.
2021-02-17 09:18:36 -07:00
Kenneth Moreland
2a41428fe4 Add implementation of ArrayRangeCompute for UnknownArrayHandle
This allows you to easily compute the range of any ArrayHandle, even if
you don't know the type.

A unit test for ArrayRangeCompute was also added.
2021-02-17 09:18:31 -07:00
Gunther H. Weber
7a14ea0efa Use Float64 instead of FloatDefault in TreeCompiler 2021-02-16 20:32:39 -08:00
Kenneth Moreland
047d79672a Fix CUDA compilation error with Lagrangian filter
CUDA architecture has a limited amount of memory available for
constants. The CUDA compiler uses this space to hold constants for some
optimizations. However, for large kernels, the number of constants
needed might be larger than the constant space available. For these
conditions, you have to disable this form of optimization with the `-
Xptxas --disable-optimizer-constants` flags.

Currently, the only file that seems to have this issue is the test for
the Lagrangian filter. Someone should take a closer look to see if this
filter in particular is making unnecessarily large worklet/kernel. (In
particular, why does the Lagrangian filter have a larger kernel than the
streamline and stream surface filters?)

If this occurance happens more often, we might need to add some ways to
configure it in the build.
2021-02-16 13:25:11 -07:00
Kenneth Moreland
2399741a97 Change Probe filter to use CellLocatorChooser
There was some compile errors with CUDA and the CellLocatorGeneral.
Apparently it added enough to the CUDA kernel to cause issues with
constant memory.
2021-02-15 12:39:12 -07:00
Kenneth Moreland
e61c54f873 Add CellLocatorChooser
`CellLocatorChooser` allows you to select a cell locator at compile
time. Unlike `CellLocatorGeneral`, you have to deduce what cell set
types you might have, but you don't have to have a large switch
statement in the middle of your worklet.
2021-02-15 12:39:11 -07:00
Kenneth Moreland
23c823d4b4 Fix compile errors and warnings related to new CellLocator structure 2021-02-15 12:39:11 -07:00
Kenneth Moreland
47429a3164 Fix export issues with CellLocatorBase 2021-02-15 12:39:11 -07:00
Kenneth Moreland
8922f600e1 Use GNU attributes for deprecated
There appears to be a bug in GCC where if you mixed C++ attributes like
`[[deprecated]]` with GNU attributes like `__attribute__(())`, you will
get a compile error. This can be a problem when using attributes to both
set the export (i.e. visibility) of an item and deprecating the same
item.

This problem has been encountered before. Commit
34b0bba84207a89e8fddfe62e7a1ff30b1b53a18 fixed the problem by using
`[[gnu::visibility()]]` instead of `__attribute__()` in the export
macros. This works fine for export macros defined by VTK-m headers such
as `VTKM_ALWAYS_EXPORT`. Unfortunately, we have little control over the
export macros that CMake automatically creates. Rather than rewrite the
CMake export code, we go the other way and use `__attribute__()` for all
exports _and_ the depreciated attribute.
2021-02-15 12:39:11 -07:00
Kenneth Moreland
0a5f5d55c9 Remove virtual methods from cell locators
Deprecated the `CellLocator` class and made all methods of the
other `CellLocator` classes non-virtual. General locators can
still use the `CellLocatorGeneral` class, but this class now
only works with a predefined set of locators. (The functionality
to provide a function to select a locator has been removed.)
2021-02-15 12:39:11 -07:00
Oliver Ruebel
96424c8331 Fix bad ordering of args for CountLinkComponentsIn2DSlice in IsNecessary 2021-02-15 04:17:04 -08:00
Kenneth Moreland
34b6bea013 Merge topic 'device-free-execwholearray'
0797359c5 Make ExecutionWholeArray objects not depend on device type
0bee74438 Support DeviceAdapterId in deprecated ArrayHandle

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Nick Thompson <nathompson7@protonmail.com>
Merge-request: !2405
2021-02-12 20:00:11 -05:00
Caitlin Ross
40185ee440 attempting to fix various build and linking errors 2021-02-10 15:20:35 -05:00
Caitlin Ross
5336fea028 add XGC storage tags to DefaultTypesVTK 2021-02-10 15:20:35 -05:00
Caitlin Ross
a5689ec84d testing array range for xgc coords 2021-02-10 15:20:35 -05:00
Caitlin Ross
e73a0bccb8 update ArrayRangeCompute to handle ArrayHandleXGC* 2021-02-10 15:20:35 -05:00
Caitlin Ross
46155daaa2 removing ArrayHandleExtrude* 2021-02-10 15:20:35 -05:00
Caitlin Ross
a9711bffb7 update XGC ArrayHandles to new buffer style 2021-02-10 10:18:53 -05:00
Kenneth Moreland
0797359c57 Make ExecutionWholeArray objects not depend on device type
With recent changes to `Arrayhandle`, the type for the associated array
portal is now the same across all devices. This means that almost all
exec objects no longer need to be specialized on the device types. Thus,
clean up the whole array exec objects to no longer need to be templated
on device.
2021-02-09 19:16:51 -07:00
Kenneth Moreland
0bee744384 Support DeviceAdapterId in deprecated ArrayHandle
The original `ArrayHandle` design had the `PrepareFor*` methods
templated on the device adapter tag. This is no longer necessary (at
least for any existing `ArrayHandle`), so support calling `PrepareFor*`
with a `DeviceAdapterId` that is resolved at runtime.
2021-02-09 19:16:51 -07:00
Kenneth Moreland
c62e38bab6 Make locator exec objects not depend on device type
With recent changes to `ArrayHandle`, the type for the associated array
portal is now the same across all devices. This means that almost all
exec objects no longer need to be specialized on the device types. Thus,
clean up the locator exec objects to no longer need to be templated on
device.
2021-02-09 17:20:57 -07:00
Kenneth Moreland
6232670049 Merge topic 'deprecate-executiontypes'
05fc1747e Make deprecated tags more descriptive
b92566cdd Convert `std::endl` to `'\n'`
b8b958a98 Get rid of CellSetStructured.hxx
f4bc3002b Fix compiler error with `constexpr` method
4d8f05bae Update CellSetExtrude to not specify exec types by device
3962e73b0 Fix issues with class specialization
c55d15f39 Deprecate ArrayHandle::ExecutionTypes

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2401
2021-02-09 13:33:08 -05:00
Kenneth Moreland
05fc1747e0 Make deprecated tags more descriptive
Also, test to make sure that the deprecated types are still valid.
2021-02-09 09:45:41 -07:00
Kenneth Moreland
b92566cdd1 Convert std::endl to '\n'
Using `std::endl` has a side effect of flushing the stream, which can
have unintended performance consequences.
2021-02-09 08:53:46 -07:00
Nick Thompson
f4a3538a6f Merge topic 'fix_matrix'
e4241aa53 Make matrix unit tests less verbose.
bba3d29c2 Remove UB from Matrix.h, and replace by quiet NaNs.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !2402
2021-02-08 21:01:18 -05:00
Kenneth Moreland
b8b958a98b Get rid of CellSetStructured.hxx
One of the MSVC builds was giving template resolution problems for one
of the methods declared non-inline for no discernable reason. It sounds
like a compiler bug. Rather than try to  work around the issue, just
move the declaration inline.

In fact, all the methods are really small (only 1 or 2 lines). Just
delete the .hxx file and simplify things.
2021-02-08 18:43:31 -07:00
Kenneth Moreland
f4bc3002bb Fix compiler error with constexpr method
The `GetMaxNumberOfNeighbours` of the `MeshStructure*` classes was
declared `constexpr`. This was causing some compiler errors.

I think the problem is actually a bug with GCC (https://gcc.gnu.org/
bugzilla/show_bug.cgi?id=66297). Whether it is a compiler bug or not,
there does not seem to be a large value to declaring this method
`constexpr`, so I just removed the keyword.
2021-02-08 17:21:53 -07:00
Kenneth Moreland
4d8f05baef Update CellSetExtrude to not specify exec types by device
Somewhere during this edit I removed a header file that didn't strictly
need to be there. This caused me to have to add

```cpp
```

in several places in the code.
2021-02-08 16:57:16 -07:00
Kenneth Moreland
3962e73b06 Fix issues with class specialization
C++ has some weird rules about specializing subclasses.
2021-02-08 14:31:45 -07:00
Nick Thompson
e4241aa530 Make matrix unit tests less verbose. 2021-02-08 16:18:13 -05:00
Nick Thompson
bba3d29c2a Remove UB from Matrix.h, and replace by quiet NaNs. 2021-02-08 15:40:23 -05:00
Kenneth Moreland
c55d15f397 Deprecate ArrayHandle::ExecutionTypes
The newer version of `ArrayHandle` no longer supports different types of
portals for different devices. Thus, the `ReadPortalType` and
`WritePortalType` are sufficient for all types of portals across all
devices.

This significantly simplifies supporting execution objects on devices,
and thus this change also includes many changes to various execution
objects to remove their dependence on the device adapter tag.
2021-02-08 12:17:37 -07:00
Vicente Adolfo Bolea Sanchez
02f97325c4 Merge branch 'upstream-lcl' into refactor-use-cpp14
# By Lightweight Cell Library Upstream
* upstream-lcl:
  lcl 2021-02-08 (6fe1a2d8)
2021-02-08 17:13:10 +01:00
Vicente Adolfo Bolea Sanchez
bbe36d8c33 cmake: set c++14 as minimum c++ rev
Signed-off-by: Vicente Adolfo Bolea Sanchez <vicente.bolea@kitware.com>
2021-02-08 17:13:05 +01:00
dpugmire
ed7358ed23 Kick the dashboard. 2021-02-05 16:32:42 -05:00
dpugmire
6367e46804 Bug fix when pathline rank has 0 ds. 2021-02-05 15:57:18 -05:00
dpugmire
6608a38eef Debugging the dashboard 2021-02-05 14:08:46 -05:00
dpugmire
b4768f06bd Bug fix. Must copy particles. 2021-02-05 12:17:27 -05:00
dpugmire
4773b51ca3 Debug test fail... 2021-02-05 12:04:24 -05:00
dpugmire
982b693abb Forgot to add hxx file. 2021-02-05 11:32:38 -05:00
dpugmire
aa713b565f Support for dist-memory pathlines. 2021-02-05 09:40:50 -05:00
Kenneth Moreland
71a5bd3b95 Fix compile error with MSVC
Some (but not all) versions of visual studio seem to have a bug that
causes a syntax error when using the deprecated attribute in a templated
constructor.
2021-02-04 08:47:28 -07:00
Kenneth Moreland
7df5c39358 Remove device template argument from AtomicArrayExecutionObject
The actual code for AtomicArrayExecutionObject does not need to be
specialized by the device. The functionality is implemented by calling
the vtkm::Atomic* methods, which are properly implemented on each
device.
2021-02-04 08:47:28 -07:00
Kenneth Moreland
99e613d377 Avoid conversion warnings in RecombineVec copy
Unfortunately, there is no way to specify when copying `RecombineVec`s
whether we wish to allow precision loss in conversions. Because
sometimes we need them, disable the warnings.
2021-02-03 10:06:12 -07:00
Kenneth Moreland
4c524de625 Fix inverted ArrayCopy arguments
Also fix condition where a `UnknownArrayHandle` destination does not
have an underlying `ArrayHandle` set yet.
2021-02-02 17:34:12 -07:00
Kenneth Moreland
1faed3712e Remove the use of ResetTypes for ArrayCopy
It used to be the case where you needed to call `ResetTypes` on a
`VariantArrayHandle` before using `ArrayCopy` to limit the types it gets
compiled for. However, there is now a general form for
`UnknownArrayHandle`, so `ResetTypes` no longer does anything useful in
this case. Remove the use of that.
2021-02-02 17:34:08 -07:00
Kenneth Moreland
ad7033684f Change ArrayCopy of UnknownArrayHandle to limit types
Rather than copy every type to every other type, only copy for the same
base type or copy to/from FloatDefault. This should reduce the amount of
code generated by a lot.

This reduces the size of the .o for ArrayCopy.cxx on my mac from
21MB to 7.7MB.
2021-02-02 17:33:08 -07:00
Kenneth Moreland
916a01d7b9 Add general ArrayCopy between UnknownArrayHandles
Add an overload of `ArrayCopy` that takes `UnknownArrayHandle`s and
copies them for (almost) any `ArrayHandle` type.

The code uses `CastAndCallWithExtractedArray` to reduce the total number
of copy conditions to about 100, which are all precompiled into the
library. On a debug build on my mac, this creates a .o file of 21MB.
That's not great, but not terrible. Hopefully, this can be used to
consolidate copy implementations elsewhere.
2021-02-02 17:33:08 -07:00
Kenneth Moreland
26ea2ab420 Break circular dependency of ArrayCopy.h and UnknownArrayHandle.h
The circular dependency came from UnknownArrayHandle.h needing
VTKmDefaultTypes.h, which needed all the cell set types. Some of those
cell sets used ArrayCopy in templated functions. Changed those functions
to directly deep copy the ArrayHandle.
2021-02-02 17:33:08 -07:00
Kenneth Moreland
990cc9ecea Test copying UnknownArrayHandle 2021-02-02 17:33:08 -07:00
Oliver Ruebel
cea1173233 Reverse error check in ContourTreeMaker 2021-02-02 13:46:01 -08:00
Oliver Ruebel
5005b5d44a Updated ContourTreeMesh::DebugPrint / ContourTreeMaker::DebugPrintt to use per-call build guards 2021-02-02 13:44:50 -08:00
Gunther Weber
8ebd889732 Merge topic 'add-contour-tree-unit-tests'
c59d8b25b Use test_equal_ArrayHandles instead of custom functions ArraysEqual
06ab386a0 Added test for combinining contour tree meshes
3d5adf335 Re-enabled tests with external files (and added required files to Git LFS)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !2344
2021-02-01 16:55:29 -05:00
Kenneth Moreland
76634d167e Merge topic 'deprecate-arrayhandle-shrink'
34412ff29 Deprecate ArrayHandle::Shrink
eb90a6080 Update documentation for Storage

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2392
2021-02-01 16:07:22 -05:00
Kenneth Moreland
880d26d60a Add test for UnknownArrayHandle::NewInstanceFloatBasic 2021-02-01 10:24:13 -07:00
Kenneth Moreland
d51fdaddf8 Add UnknownArrayHandle::NewInstanceFloatBasic
This provides the ability to convert an array handle of an unknown value
type to an array handle that has `vtkm::FloatDefault` as its base
component type. Thus subsequently lets you pull the components as
`vtkm::FloatDefault` without having to worry about type conflicts.
2021-02-01 09:34:08 -07:00
Kenneth Moreland
34412ff298 Deprecate ArrayHandle::Shrink
This method has been subsumed by Allocate with vtkm::CopyFlag::On.
2021-02-01 08:07:40 -07:00
Gunther H. Weber
c59d8b25b1 Use test_equal_ArrayHandles instead of custom functions ArraysEqual 2021-01-29 11:33:25 -08:00
Gunther H. Weber
06ab386a03 Added test for combinining contour tree meshes 2021-01-29 09:45:13 -08:00
Gunther H. Weber
3d5adf335d Re-enabled tests with external files (and added required files to Git LFS) 2021-01-29 09:45:13 -08:00
Gunther H. Weber
239adf5980 Fix typos in functor names for contour tree 2021-01-28 14:29:45 -08:00
Kenneth Moreland
eb90a6080c Update documentation for Storage 2021-01-28 14:37:10 -07:00
Gunther H. Weber
5d8a67eff1 Re-enable marching cubes unit tests for disitrbuted contour tree 2021-01-28 11:51:42 -08:00
Gunther H. Weber
0183db6854 Split array access into separate lines and add VTKM_ASSERT 2021-01-27 19:31:56 -08:00
Kenneth Moreland
8b133288ce Fix deprecation warnings
There was an error that caused deprecation warnings in VTK-m to be
suppressed, which meant that many uses of deprecated features went
unnoticed. This fixes those deprecation warnings.

The majority of the warnings were caused by the use of the deprecated
`Cast`, `CopyTo`, and `ResetTypes` methods of `UnknownArrayHandle` (or
`VariantArrayHandle`). Both `Cast` and `CopyTo` have been subsumed by
`AsArrayHandle` (to make the functionality more clear). `ResetTypes` now
requires a second template argument to define the storage types to try.

Also fixed some issues with `SerializableField` being deprecated.
This class is no longer necessary because `Field` can now be directly
serialized.
2021-01-26 07:56:39 -07:00
Kenneth Moreland
b085cde358 Fix runaway deprecation suppression
Field.h had a runaway deprecation suppression where the pragmas to
suppress deprecation warnings were turned on but not properly turned
off. This caused deprecation warnings to be turned off for anything
including Field.h (directly or indirectly), and consequently lots of use
of deprecated features went unnoticed.
2021-01-25 15:25:12 -07:00
Kenneth Moreland
3f5193d231 Consolidate getting a scalar field array
There are several places in the ray casting library that require
operating on a field that we know is a scalar field. Previously, these
were all independently cast to an uncertain array of the limited types.
Rather than have independent calls everywere, make a consolidated
function that does the same operation for everyone.

This fixes an issue with using a deprecated version of a method. It also
makes it possible to quickly change types in the future.
2021-01-25 15:25:11 -07:00
Li-Ta Lo
e7cf3d784a Merge topic 'hdf5_image_io'
081f8aaea reformat if statements, add comments on the HDF5 macros
31aa46706 Merge branch 'master' into hdf5_image_io
e65c0713b move #include of hdf5.h into .cxx files
ff0b8fd0b changed to CMake files based on Robert's feedback
ca0ce4de7 Merge branch 'master' into hdf5_image_io
23a95f864 exclude header files from install check when it is not enabled
d81f08eed correct copyright mesage
fb6c9afe7 uncomment ubuntu1805_cuda image
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Li-Ta Lo <ollie@lanl.gov>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !2371
2021-01-16 09:26:15 -05:00
Li-Ta Lo
081f8aaea8 reformat if statements, add comments on the HDF5 macros 2021-01-15 15:05:52 -07:00
Li-Ta Lo
31aa467068 Merge branch 'master' into hdf5_image_io 2021-01-15 09:25:18 -07:00
Li-Ta Lo
e65c0713b8 move #include of hdf5.h into .cxx files 2021-01-15 09:12:52 -07:00
Kenneth Moreland
3a7ba1d569 Fix deprecation warning in MSVC
MSVC tends to give deprecation warnings in templated methods that are
used with deprecated classes rather than where the deprecated thing was
declared. That makes it annoyingly hard to supress them to implement
support of deprecated items.
2021-01-14 17:01:23 -07:00
Kenneth Moreland
11a4c9867e Change Field to hold UnknownArrayHandle rather than VariantArrayHandle
The `VariantArrayHandle` will soon be deprecated for its replacement of
`UnknownArrayHandle`. Thus, `Field` and related classes should start
using the new `UnknownArrayHandle`.
2021-01-14 17:01:22 -07:00
Li-Ta Lo
ff0b8fd0bb changed to CMake files based on Robert's feedback 2021-01-14 14:23:05 -07:00
Li-Ta Lo
ca0ce4de7b Merge branch 'master' into hdf5_image_io 2021-01-14 14:08:00 -07:00
Kenneth Moreland
63d32a863e Fix compile error from invalid ArrayHandle
The compile error happened from incompatible code changes between !2349
and !2374. The former removed the ability to use non-`Vec` values in
`ArrayHandleSOA`. The latter tried to create such an `ArrayHandle`
inside a template function that was called with the SOA storage.
2021-01-14 13:12:57 -07:00
Kenneth Moreland
a6edc832da Merge topic 'soa-array-default'
cecd81d5d Add types appropriate for Ascent
865855ea0 Add changelog for making ArrayHandleSOA a default array
50ff9c22a Add support of `ArrayHandleSOA` as a default storage type
bc09a9cd1 Add precompiled versions of `ArrayRangeCompute` for `ArrayHandleSOA`
77f9ae653 Support `ArrayHandleSOA` only for `Vec` value types

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !2349
2021-01-14 12:40:58 -05:00
Kenneth Moreland
7a3f20560a Merge topic 'switch-to-new-arrayhandle'
3228752b2 Fix error message when using deprecated storage
5ef4e7eee Make new style of ArrayHandle the expected style

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !2375
2021-01-14 10:14:20 -05:00
Kenneth Moreland
9ed68f5a42 Add default copy constructor for RecombineVec
Some compilers complain if the copy constructor is not explicitly
specified.
2021-01-13 09:19:34 -07:00
Kenneth Moreland
66fbc99b09 Disable ArrayHandleCounting for invalid value types
`ArrayHandleCounting` only works with values that support basic
arithmetic. The concept of counting makes little sense for types that
are not well defined for addition and multiplication like `bool`,
`string` and other custom types.
2021-01-13 09:19:34 -07:00
Kenneth Moreland
0b2dbfdda1 Fix ICE in GCC 4.8 2021-01-13 09:19:34 -07:00
Kenneth Moreland
50d9320135 Add missing types to serialization of UnknownArrayHandle 2021-01-13 09:19:34 -07:00
Kenneth Moreland
ab9c0f7248 Add arithmetic assignment operators to RecombineVec
`RecombineVec` is the class used as the value type for
`ArrayHandleRecombineVec`. It is a `Vec`-like object, but has several
limitations (including arithmetic operators like `+` won't work).
Arithmetic assignment operators are useful so you don't have to create
impossible intermediate values.
2021-01-13 09:19:34 -07:00
Kenneth Moreland
1cc6dbb0c2 Allow VecBaseCommon operators to work with any Vec-like
Previously, the arithmetic assignment operators (`+=`, `-=`, `*=`, `/=`)
on `VecBaseCommon` only accepted another subclass of `VecBaseCommon`.
Changed the operators to accept any type.

The benefit of this change is that the assignment operator of classes
that inherit from `VecBaseCommon` can now work with `Vec`-like classes
that do not inherit from `VecBaseCommon`. I think the only real downside
is that the template could match other classes that would lead to
invalid comparisons. But such use would lead to a compile error anyway.
The difference is that instead of getting an error that no overloaded
version of the operator is available, you will get an error inside the
code of the operator.
2021-01-13 09:19:34 -07:00
Kenneth Moreland
74536d4ca1 Support Vec operators on ArrayPortalValueReference 2021-01-13 09:19:33 -07:00
Kenneth Moreland
06c59fed13 Update MapFieldMergeAverage/Permuation to use new CastAndCall
These functions now use
`UnknownArrayHandle::CastAndCallWithExtractedArray` to reduce the number
of times the worklet is run.
2021-01-13 09:19:33 -07:00
Kenneth Moreland
f90c2bfd0b Add UnknownArrayHandle::CastAndCallWithExtractedArray
This provides a convenience for calling a function for most
`ArrayHandle` types.
2021-01-13 09:19:33 -07:00
Kenneth Moreland
97324e75cd Enable reinterpreting UnknownArrayHandle to compatible C types
The base C types have several "duplicate" types that the compiler
considers different even though the byte representation is the same. For
example, `char` and `signed char` have the same meaning but are treated
as different types. Likewise, 'long', 'int', and 'long long' are all
different types even though 'long' is the same as either 'int' or 'long
long'.

When pulling extracted components from `UnknownArrayHandle`, there is
little value for creating multiple code paths for types like `char` and
`signed char`. Instead, allow implicit conversion among these types.
2021-01-13 09:19:27 -07:00
Kenneth Moreland
3228752b2d Fix error message when using deprecated storage
When using the old style of storage, you need to declare it as the old
style so that a bridge to the new style can be built in. You get a
compile error message if this is not done. The previous message gave the
wrong instructions.
2021-01-12 07:18:08 -07:00
Kenneth Moreland
5ef4e7eeee Make new style of ArrayHandle the expected style
What was previously declared as `ArrayHandleNewStyle` is now just the
implementation of `ArrayHandle`. The old implementation of `ArrayHandle`
has been moved to `ArrayHandleDeprecated`, and `ArrayHandle`s still
using this implementation must declare `VTKM_ARRAY_HANDLE_DEPRECATED` to
use it.
2021-01-12 07:17:53 -07:00
Kenneth Moreland
b4ca18607c Merge topic 'recombine-vec-array'
f941cb607 Move Fetch specializations to vtkm/exec/arg
439c18cfc Add changedoc for ArrayHandleRecombineVec
9833f3d0d Fix issue with using recombined vec as an output array
7dd9b4252 Add UnknownArrayHandle::ExtractArrayFromComponents
755af739e Add ArrayHandleRecombineVec

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !2372
2021-01-11 13:50:57 -05:00
Robert Maynard
ca8e4fe09a Merge topic 'correct_atomic_unused_warnings_msvc'
c5efdb39a vtkm/Atomic doesn't generate unused parameter warnings on MSVC

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Vicente Bolea <vicente.bolea@kitware.com>
Merge-request: !2380
2021-01-11 13:27:33 -05:00
Kenneth Moreland
f941cb607c Move Fetch specializations to vtkm/exec/arg
Some of the special `ArrayHandle`s require specialized versions of
`vtkm::exec::arg::Fetch`. The specializations were not put in the
respective vtkm/exec/arg/Fetch*.h header files because the definition of
the `ArrayHandle`s was not available there. The implementation was in
the ArrayHandle*.h files, but it is hard to find the specialization
there.

Instead, make a secondary header file in vtkm/exec/arg that implements
the Fetch specialization and include it from the ArrayHandle*.h file.
That way, the basic Fetch does not have to include odd `ArrayHandle`
types but the `Fetch` implemenations are still all located together.
2021-01-11 10:47:58 -07:00
Robert Maynard
c5efdb39ac vtkm/Atomic doesn't generate unused parameter warnings on MSVC 2021-01-11 09:01:48 -05:00
Sujin Philip
4fac642273 Merge topic 'kokkos-opt-scan'
e57f5a175 Fix DeviceAdapterAlgorithmGeneral Reduce
1b7fc3d3e Use `Kokkos::parallel_scan` for Scan functionality

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2360
2021-01-08 10:33:12 -05:00
Sujin Philip
e57f5a175d Fix DeviceAdapterAlgorithmGeneral Reduce
It was using `ArrayHandleImplicit` in an unsupported manner.
2021-01-07 16:24:53 -05:00
Sujin Philip
1b7fc3d3e4 Use Kokkos::parallel_scan for Scan functionality 2021-01-07 16:24:39 -05:00
Kenneth Moreland
fa876efc90 Correct documentation for AtomicArrayExecutionObject
The code example had errors that would prevent it from compiling
correctly.
2021-01-07 13:57:38 -07:00
Robert Maynard
df93250969 Merge topic 'flying_edges_support_kokkos'
ebf648906 FlyingEdges uses optimized Y axis algorithm for Kokkos device

Acked-by: Kitware Robot <kwrobot@kitware.com>
Rejected-by: Robert Maynard <robert.maynard@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !2367
2021-01-07 15:16:09 -05:00
Kenneth Moreland
318a03019f Merge topic 'undeprecate-unknownarrayhandle-numberofcomponents'
d91b4f356 Undeprecate UnknownArrayHandle::GetNumberOfComponents

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2377
2021-01-07 15:03:53 -05:00
Robert Maynard
ebf648906f FlyingEdges uses optimized Y axis algorithm for Kokkos device 2021-01-07 13:46:42 -05:00
Kenneth Moreland
d91b4f3568 Undeprecate UnknownArrayHandle::GetNumberOfComponents
This method was originally deprecated to avoid confusion with the
indexing of the components in `ExtractComponent`. However, there might
be good reason to want to know the non-flat number of components, so
maybe getting rid of it is not a great idea. Unmark the method as
deprecated, at least for now.
2021-01-07 09:48:25 -07:00
nadavi
a31293da7f Add uniformat grid contour regression tests
Fixes #576

The Y-axis flying edge bug(s) had been fixed in !2197, and so
now we can test uniform data
2021-01-07 11:26:24 -05:00
Kenneth Moreland
cecd81d5db Add types appropriate for Ascent 2021-01-07 08:15:17 -07:00
nadavi
dd3193d69d consolidate contour-wedge baseline images to favor new pixel diff calculation 2021-01-06 20:50:50 +00:00
nadavi
da751cf061 change arg ordering, support setting number of error pixels allowed 2021-01-06 20:50:49 +00:00
Kenneth Moreland
50ff9c22aa Add support of ArrayHandleSOA as a default storage type 2021-01-06 13:20:58 -07:00
Kenneth Moreland
bc09a9cd15 Add precompiled versions of ArrayRangeCompute for ArrayHandleSOA 2021-01-06 13:20:58 -07:00
Kenneth Moreland
77f9ae653d Support ArrayHandleSOA only for Vec value types
Previously, `ArrayHandleSOA` worked with any value type that supported
`VecTraits`. That means that `ArrayHandleSOA` worked with scalar types
like `Float32`. However, for scalar types, the behavior is essentially
the same as `ArrayHandleBasic`, but with lots of extra templating and
code generation.

Although there is nothing _wrong_ with allowing `ArrayHandleSOA` holding
a scalar, there is no real reason to either (other than likely template
convenience). Generally, there is nothing wrong with supporting it, but
if you want to support `ArrayHandleSOA` in places where types are not
known (e.g. `Field`), then templating tends to iterate over the cross of
all supported types with all supported storage. That means such code
will automatically generate a bunch of code for `ArrayHandleSOA` with
scalars even if there is no reason for those code paths.

So, we can just disable the use of `ArrayHandleSOA` with scalars to
allow us to use `ArrayHandleSOA` as a default storage without creating
all these useless code paths.
2021-01-06 13:20:58 -07:00
Li-Ta Lo
d81f08eedb correct copyright mesage 2021-01-05 13:29:35 -07:00
Li-Ta Lo
6af7c3122a making WriteDataSet virtual 2021-01-05 12:59:52 -07:00
Kenneth Moreland
9833f3d0da Fix issue with using recombined vec as an output array
`ArrayHandleRecombineVec` is used when calling
`ExtractArrayFromComponents` from `UnkownArrayHandle`. It needs special
handling with the `Fetch` for an output array.
2021-01-04 14:21:32 -07:00
Kenneth Moreland
7dd9b4252a Add UnknownArrayHandle::ExtractArrayFromComponents
This method allows you to extract an `ArrayHandle` from
`UnknownArrayHandle` when you only know the base component type.

Also removed the `Read/WritePortalForBaseComponentType` method
from `UnknownArrayHandle`. This functionality is subsumed by
`ExtractArrayFromComponents`.
2021-01-04 14:17:24 -07:00
Kenneth Moreland
755af739e3 Add ArrayHandleRecombineVec
The primary purpose of `ArrayHandleRecombineVec` is to take arrays
returned from `ArrayExtractComponent` and recombine them again into a
single `ArrayHandle` that has `Vec` values.
2021-01-04 11:55:02 -07:00
Li-Ta Lo
fac489644f HDF5 unit tests
Move HDF5ImageWriter/Reader to its own unit test. Use user supplied
field name as HDF5 dataset name.
2021-01-04 10:01:49 -07:00
Li-Ta Lo
03cb5cb43c rename file names and add reference to the specification 2021-01-04 09:04:08 -07:00
Robert Maynard
90c607c999 Correct CMake checking for targets before creation 2020-12-30 12:42:51 -05:00
Robert Maynard
4c2f8cc635 Merge topic 'workaround_hip_min_bug'
0134de4fe Don't use HIP overloads for std::min

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !2366
2020-12-29 08:55:03 -05:00
Robert Maynard
0134de4fe4 Don't use HIP overloads for std::min
The HIP overloads for std::min don't return the first parameter
when the two values are equal which causes problems when inputs
such as nan.

Reported upstream:
https://github.com/ROCm-Developer-Tools/HIP/issues/2209
2020-12-28 13:29:32 -05:00
Robert Maynard
7897d23c39 Cleanup some minor CMake style issues 2020-12-28 10:36:00 -05:00
Li-Ta Lo
da7d6aaf19 Add HDF5 Image file support 2020-12-25 16:02:08 -07:00
Kenneth Moreland
932c8e5ec0 Wrap test_equal_ArrayHandles into a precompiled library
The previous implementation of test_equal_ArrayHandles was several
templates that had to be resolved by any test that used them, which
could be costly for unknown array types. Simplify this a bit by moving
the implementation of testing unknown arrays into a library.

Another advantage of the new implementation is that is handles more
cases. Thus, you should not need to `ResetTypes` on the unknown/
uncertain arrays.
2020-12-22 17:17:19 -07:00
Kenneth Moreland
5610d674d8 Print TestEqualResult messages in VTK_TEST_ASSERT
Some of the `test_equal` functions return a `TestEqualResult`
instead of a `bool` to capture more information about what
the error was. Unfortunately, using this was awkward because
you couldn't just call the `test_equal_*` inside of a
`VTKM_TEST_ASSERT`. Rather, you would have to do the comparison
and then check it.

This change adds an overload to `VTKM_TEST_ASSERT` that specifically
takes a `TestEqualResult`, checks its condition, and prints out
the contained messages. Thus, your command can just look like
`VTKM_TEST_ASSERT(test_equal_ArrayHandles(...));` and it will
provide the additional information.
2020-12-22 17:17:10 -07:00
Kenneth Moreland
84bfcc238c Move test_equal_* classes to top namespace
These helper functions were in vtkm::cont::testing, but that made them
hard to discover (and I personally kept forgetting about them). Move
them to the top namespace so that IDE of test_equal will helpfully
remind us of these other test functions.
2020-12-22 13:46:02 -07:00
Kenneth Moreland
16471fcaff Fix ArrayHandleView compile error caused by merge error
Recent merge requests !2354 and !2356 both edited ArrayHandleView. Git
successfully merged the changes, but the changes were still incompatible
with each other, causing an unexpected compile error on master. This
fixes the issue.
2020-12-22 07:47:33 -07:00
Kenneth Moreland
39715c92da Merge topic 'arrayhandleview-use-buffer'
1ed8b1f68 Convert ArrayHandleView to new buffer-style array

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2356
2020-12-22 09:32:16 -05:00
Kenneth Moreland
e56c6af41c Merge topic 'array-handle-stride'
7935716f8 Fix warning in VecFlat
8dfd01942 Add changelog for extract component
03c3f9e17 Update `MapField` helper functions to use extracted array components
67507185c Add ability to extract components in `UnknownArrayHandle`
0f24f82da Disable resizing of `ArrayHandleStride`
760553725 Add ArrayExtractComponent function
0ab3edd87 Add VecFlat class
73af6e679 Add ArrayHandleStride

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !2354
2020-12-22 09:27:32 -05:00
Kenneth Moreland
1ed8b1f688 Convert ArrayHandleView to new buffer-style array 2020-12-21 07:51:42 -07:00
Kenneth Moreland
3eeeb1cb08 Merge topic 'arrayhandlegroupvecvariable-use-buffer'
802d78828 Convert ArrayHandleGroupVecVariable to new buffer-style arrays

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !2357
2020-12-18 16:06:35 -05:00
Kenneth Moreland
a5d57e7440 Convert ArrayHandleConcatenate to new buffer-style arrays 2020-12-17 14:58:09 -07:00
Kenneth Moreland
802d788289 Convert ArrayHandleGroupVecVariable to new buffer-style arrays 2020-12-17 14:06:56 -07:00
Kenneth Moreland
7935716f8a Fix warning in VecFlat
`VecFlat` has a casting operator to cast itself to the nested version of
the `Vec`. However, for a simple `Vec` type, the superclass of `VecFlat`
is the same type as the "nested" `Vec` type (which was flat to begin
with). This meant that the casting operator was never used because it
casted to the same type as the object being cast from. Most compilers
silently ignored this, but some gave a warning that the casting operator
would never be used because of this condition.

Fix the problem by having a different implemention of `VecFlat` when
applied to a `Vec` that is already flat.
2020-12-17 13:39:02 -07:00
Kenneth Moreland
599c2f6391 Convert ArrayHandlePermutation to new buffer-style array 2020-12-17 09:00:03 -07:00
Kenneth Moreland
03c3f9e178 Update MapField helper functions to use extracted array components
Previously, the `MapFieldMergeAverage` and `MapFieldPermutation` helper
function had to iterate over every possible type and create a separate
code path. This change uses the new extract component functionality to
create separate code paths only for different component types. This both
requires less code (the common filter library dropped from 66MB to 42MB
on my Mac) and covers more cases (such as `Vec`s larger than 4
components).

To make the implementation easier, `UnknownArrayHandle` now can create a
new `UnknownArrayHandle` of the same `ValueType` but with the basic
storage (so you can work with read-only storage) and the ability to
allocate the unknown array.
2020-12-16 17:23:35 -07:00
Kenneth Moreland
67507185ce Add ability to extract components in UnknownArrayHandle
This allows you to handle just about every type of array with about 10
basic types. It allows you to ignore both the size of `Vec`s and the
actual storage of the data.
2020-12-16 17:23:27 -07:00
Kenneth Moreland
0f24f82dad Disable resizing of ArrayHandleStride
The typical use case of `ArrayHandleStride` is to flexibly point into
another array, often looking at a single component in an array. It is
typical that multiple things will be accessing the same array, and bad
things could happen as they all try to resize. There was some code to
try to figure out what the size of the original array was, but it was
fragile.

It is safer for now to disable the behavior altogether. If a use case
pops up, we can reintroduce the code.
2020-12-16 17:22:44 -07:00
Kenneth Moreland
760553725c Add ArrayExtractComponent function
`ArrayExtractComponent` allows you to get a component of an array.
Unlike `ArrayHandleExtractComponent`, the type you get is always the
same: an `ArrayHandleStride`. This way, you can get an array that
contains the data of an extracted component with less templating and
potentially dramatically reduce the amount of code generated (although
some runtime integer arithmetic is added).
2020-12-16 17:22:44 -07:00
Kenneth Moreland
0ab3edd87d Add VecFlat class
`vtkm::VecFlat` is a wrapper around a `Vec`-like class that may be a
nested series of vectors. For example, if you run a gradient operation
on a vector field, you are probably going to get a `Vec` of `Vec`s that
looks something like `vtkm::Vec<vtkm::Vec<vtkm::Float32, 3>, 3>`. That
is fine, but what if you want to treat the result simply as a `Vec` of
size 9?

The `VecFlat` wrapper class allows you to do this. Simply place the
nested `Vec` as an argument to `VecFlat` and it will behave as a flat
`Vec` class. (In fact, `VecFlat` is a subclass of `Vec`.) The `VecFlat`
class can be copied to and from the nested `Vec` it is wrapping.

There is a `vtkm::make_VecFlat` convenience function that takes an
object and returns a `vtkm::VecFlat` wrapped around it.
2020-12-16 17:22:44 -07:00
Kenneth Moreland
73af6e6795 Add ArrayHandleStride 2020-12-16 17:22:44 -07:00
Robert Maynard
004f320e20 Merge topic 'expand_kokkos_device_to_support_hip'
7475c318b VTK-m now uses CMake's future HIP lang for Kokkos+HIP

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Sujin Philip <sujin.philip@kitware.com>
Merge-request: !2351
2020-12-16 08:58:17 -05:00
Kenneth Moreland
fd07c241e2 Merge topic 'release-read-only'
7811cc4b1 Add standard support for read-only storage
a6b9d5c49 Add tests for ReleaseResources of fancy arrays

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2345
2020-12-14 10:03:20 -05:00
Robert Maynard
7475c318be VTK-m now uses CMake's future HIP lang for Kokkos+HIP 2020-12-11 09:13:12 -05:00
Kenneth Moreland
1323dfeca6 Merge topic 'arrayhandlemultiplexer-use-buffer'
a61d07a6d Convert ArrayHandleMultiplexer to new buffer-style array

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !2346
2020-12-10 16:58:33 -05:00
Kenneth Moreland
7811cc4b1e Add standard support for read-only storage
Many of the fancy `ArrayHandle`s are read-only and therefore connot
really create write portals. Likewise, many `ArrayHandle`s (both read-
only and read/write) have no way to resize themselves. In this case,
implementing the `CreateWritePortal` and `ResizeBuffers` methods in the
`Storage` class was troublesome. Mostly they just threw an exception,
but they also sometimes had to deal with cases where the behavior was
allowed.

To simplify code for developers, this introduces a pair of macros:
`VTKM_STORAGE_NO_RESIZE` and `VTKM_STORAGE_NO_WRITE_PORTAL`. These can
be declared in a `Storage` implementation when the storage has no viable
way to resize itself and create a write portal, respectively.

Having boilerplate code for these methods also helps work around
expected behavior for `ResizeBuffers`. `ResizeBuffers` should silently
work when resizing to the same size. Also `ResizeBuffers` should behave
well when resizing to 0 as that is what `ReleaseResources` does.
2020-12-10 13:39:28 -07:00
Kenneth Moreland
a6b9d5c497 Add tests for ReleaseResources of fancy arrays
The `ReleaseResources` method should work for all arrays (even if it
effectively does not do anything). However, the implementation of
`ReleaseResources` is generally to call `Allocate` with 0. Several fancy
arrays balk at this because it is resizing a read-only array. There
should be an exception for this.
2020-12-10 12:33:32 -07:00
Kenneth Moreland
90050b96e4 Remove ArrayManagerExecution
This class was used indirectly by the old `ArrayHandle`, through
`ArrayHandleTransfer`, to move data to and from a device. This
functionality has been replaced in the new `ArrayHandle`s through the
`Buffer` class (which can be compiled into libraries rather than make
every translation unit compile their own template).

This commit removes `ArrayManagerExecution` and all the implementations
that the device adapters were required to make. None of this code was in
any use anymore.
2020-12-08 13:18:44 -07:00
Kenneth Moreland
1968590232 Delete the default implementation of ArrayTransfer
`ArrayTransfer` is used with the old `ArrayHandle` style to move data
between host and device. The new version of `ArrayHandle` does not use
`ArrayTransfer` at all because this functionality is wrapped in `Buffer`
(where it can exist in a precompiled library).

Once all the old `ArrayHandle` classes are gone, this class will be
removed completely. Although all the remaining `ArrayHandle` classes
provide their own versions of `ArrayTransfer`, they still need the
prototype to be defined to specialize. Thus, the guts of the default
`ArrayTransfer` are removed and replaced with a compile error if you try
to compile it.
2020-12-08 12:56:16 -07:00
Kenneth Moreland
a61d07a6d0 Convert ArrayHandleMultiplexer to new buffer-style array 2020-12-08 12:18:19 -07:00
Kenneth Moreland
df1dd51f8c Convert ArrayHandleZip to new buffer-style array 2020-12-07 08:52:38 -07:00
Kenneth Moreland
9a2dd4a089 Merge topic 'arrayhandletransform-use-buffer'
78aa463da Fix compile error when template parameter shadows superclass
905b5a02b Call PrepareForControl to get transform for undefined device
650e416cc Convert ArrayHandleTransform to new buffer-style-array
76880dd8c Enable ExecutionObjectBase::PrepareForExecution for DeviceAdapterId
b0146b1e4 Fix issue with CreateBuffers function

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !2341
2020-12-03 19:17:40 -05:00
Kenneth Moreland
78aa463da6 Fix compile error when template parameter shadows superclass
I'm too lazy to look up the C++ spec, but it seems like template
parameter names would shadow the same names from a superclass.
Apparently that is not the case for Visual Studio. The `Storage` for the
cast array inherits from the `Storage` of the transform array. The
latter declares a private type named `SourceStorage`, and that is being
used instead of the former's `SourceStorage` template parameter. You
then get an error for accessing a private member that you did not want
in the first place.

Fix the problem by changing the name of the template parameter.
2020-12-03 09:49:21 -07:00
Sujin Philip
2d920535af Merge topic 'kokkos_opt-reduce'
7f61058b8 Use kokkos reduce functionality

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !2340
2020-12-03 10:24:31 -05:00
Sujin Philip
7f61058b8a Use kokkos reduce functionality 2020-12-02 17:53:11 -05:00
Gunther H. Weber
a10d7be0bf Revert back from ResizeVector to Allocate but setting vtkm::CopyFlag::On 2020-12-02 14:30:24 -08:00
Gunther H. Weber
76dcacc090 Revert from Allocate to ResizeVector, but initialize with 0 instead of NO_SUCH_ELEMENT 2020-12-02 14:30:24 -08:00
Oliver Ruebel
774d8df370 Renamed ResizeIndexVector to ResizeVector and fixed bad resize call 2020-12-02 14:30:24 -08:00
Gunther H. Weber
94697e0e05 Fix unused variable warnings when logging is disabled 2020-12-02 14:30:24 -08:00
Gunther H. Weber
25bacf9281 Removed return statement that is never reached 2020-12-02 14:30:23 -08:00
Gunther H. Weber
635510de03 Make device tracker named variable 2020-12-02 14:30:23 -08:00
Oliver Ruebel
58515c2e21 Use ScopedRuntimeDeviceTracker to enforce the device rather than setting it explicitly 2020-12-02 14:30:23 -08:00
Oliver Ruebel
bda234c6ef Use CopySubRange to ensure arrays are not being shrunk 2020-12-02 14:30:23 -08:00
Gunther H. Weber
9f55ba1a2b Temporarily disabled marching cubes tests 2020-12-02 14:30:23 -08:00
Gunther H. Weber
c603fe596a Fix filename of BoundaryTreeNodeComparator.h in CMakeLists.txt. 2020-12-02 14:30:22 -08:00
Gunther H. Weber
312252ce4e Added TestingContourTreeUniformDistributedFilter.h as header to CMakeLists.txt 2020-12-02 14:30:19 -08:00
Oliver Ruebel
a88b2ed4a8 Renamed Bract to BoundaryTree throughout 2020-12-02 14:29:18 -08:00
Oliver Ruebel
a5d541a341 Rename BoundaryTreeMaker.Bract to BoundaryTreeData 2020-12-02 14:29:18 -08:00
Oliver Ruebel
e77f924ecf Remove bad inheritance from vtkm::worklet::WorkletMapField 2020-12-02 14:29:17 -08:00
Oliver Ruebel
b630919c3b Avoid use of values as both input and retun valye in worklet 2020-12-02 14:29:17 -08:00
Oliver Ruebel
cb98eea5e3 Renamed and updated ResizeIndexVector to use new ArrayHandle resize support in VTKm 2020-12-02 14:29:17 -08:00
Oliver Ruebel
de7da7423e Add DIY-related comments to DistributedContourTreeBlockData 2020-12-02 14:29:17 -08:00
Oliver Ruebel
8e58f50b23 Removed commented ContourTreeBlockData.SortOrder 2020-12-02 14:29:17 -08:00
Oliver Ruebel
eec59a6fd0 Add mssing namespace declaration for use of IsThis in worklets 2020-12-02 14:29:17 -08:00
Oliver Ruebel
41006405b3 Remove CombinedVector. Update ContourTreeMesh::MergeWith accordingly. 2020-12-02 14:29:17 -08:00
Gunther H. Weber
2fa6855222 Fix another warning about types. 2020-12-02 14:29:17 -08:00
Gunther H. Weber
ef3f0221b6 Fix compile error due to incorrect type. 2020-12-02 14:29:17 -08:00
Gunther H. Weber
e9d5b2b06a Use vtkm::IdComponent instead of vtkm::Id to avoid compiler warnings. 2020-12-02 14:29:17 -08:00
Gunther H. Weber
91355fcae7 Avoid 'unitialized variable' compiler warning. 2020-12-02 14:29:17 -08:00
Gunther H. Weber
c8b11f4dcc Remove FIXME 2020-12-02 14:29:17 -08:00
Gunther H. Weber
9b1acb8a4a Temporarily disable boundary optimization for MC connectivity 2020-12-02 14:29:17 -08:00
Oliver Ruebel
b7e2a680e3 Fix unused varibale bug 2020-12-02 14:29:16 -08:00
oruebel
7e9f57f755 Cast constexpr on device to fix CUDA access problems 2020-12-02 14:29:16 -08:00
oruebel
65f8c8cf2c Remove bad std::abort call on device 2020-12-02 14:29:16 -08:00
oruebel
81a303e54d Fix bad constructor call in test 2020-12-02 14:29:16 -08:00
Oliver Ruebel
08447c24b1 Add support for using only necessary boundary vertices 2020-12-02 14:29:16 -08:00
Oliver Ruebel
e734c6358c Port bugfix for ListNewNodesCopyIdsWorklet. 2020-12-02 14:29:16 -08:00
Oliver Ruebel
e115236168 Add missing timers to ease analysis 2020-12-02 14:29:16 -08:00
Gunther H. Weber
be1e5e5404 Set timing and statistics log levels to UserVerboseLast for unit tests. 2020-12-02 14:29:16 -08:00
Oliver Ruebel
75afb77d20 Refine recording of timings in Fan In functor 2020-12-02 14:29:16 -08:00
Oliver Ruebel
69602cf777 Refine DoPostExecute timing 2020-12-02 14:29:16 -08:00
Oliver Ruebel
c494942a3d Separet timing for dot output in the filter 2020-12-02 14:29:16 -08:00
Oliver Ruebel
d3554bb4ad Added finer timing for DIY setup for Fan In 2020-12-02 14:29:16 -08:00
Gunther H. Weber
d18aacc5d6 Cleanup of debug output etc. 2020-12-02 14:29:16 -08:00
Gunther H. Weber
8652ea1abb Update CMakeList.txt for updates in worklet/contourtree_distributed/boundary_tree_maker. 2020-12-02 14:29:16 -08:00
Gunther H. Weber
f0213d065e Replace implicit array handles to adapt to vtk-m changes. 2020-12-02 14:29:16 -08:00
Gunther H. Weber
336fd1f2e8 Delete local blocks after reduction 2020-12-02 14:29:15 -08:00
Oliver Ruebel
18e2938cdf Fix comments in BoundaryTree class 2020-12-02 14:29:15 -08:00
Oliver Ruebel
10910d6b4a Fix bug to output the correct arrays i HierarchicalContourTree<FieldType>::PrintTreeStats 2020-12-02 14:29:15 -08:00
Oliver Ruebel
07b6744f31 Partial add dot output in ComputeDistributedContourTreeFunctor 2020-12-02 14:29:15 -08:00
Oliver Ruebel
17f2f845e7 Minor fixed for performane logging 2020-12-02 14:29:15 -08:00
Oliver Ruebel
ac1818d357 Add logging for Fan in and Fan Out 2020-12-02 14:29:15 -08:00
Oliver Ruebel
3355be235e Make logging customizable for ContourTreeUniformAugmented 2020-12-02 14:29:15 -08:00
Oliver Ruebel
0fa2b57ac6 Save NumBoundary and NumBounaryUsed in BoundaryTree for logging 2020-12-02 14:29:15 -08:00
Oliver Ruebel
32f0e98e22 Made timings and tree-metadata log level configurable in ContourTreeUniformDistributed 2020-12-02 14:29:15 -08:00
Oliver Ruebel
ea2803735a Add function for printing hierarchical tree statistics 2020-12-02 14:29:15 -08:00
Oliver Ruebel
f1b2a2b47c Make log level configurable for ContourTreeUniformAugmented 2020-12-02 14:29:15 -08:00
Oliver Ruebel
1134094773 Clean up HACT save and add basic logging of timings to the ContourTreeDistributed filter 2020-12-02 14:29:15 -08:00
Oliver Ruebel
c6e9708275 Document execution order and order functions in order of call structure 2020-12-02 14:29:15 -08:00
Oliver Ruebel
d71259fdb7 Add contour tree, boundary tree, and interior forest array stat print 2020-12-02 14:29:15 -08:00
Gunther H. Weber
d42916ba39 Fix OpenMP backend crashes by avoiding unnecessary computations and zero-length copying. 2020-12-02 14:29:15 -08:00
Gunther H. Weber
4594c1e4c6 Fix unit tests to handle vtk-m with compuled with double precision. 2020-12-02 14:29:15 -08:00
Gunther H. Weber
eb776059ca Fix unused return value warning in TreeCompiler.h 2020-12-02 14:29:14 -08:00
oruebel
dc1d577140 Fix VTKM_EXEC lables for hact exec objects 2020-12-02 14:29:14 -08:00
Oliver Ruebel
fcda9adde2 Attempt to fix host device function call issue 2020-12-02 14:29:14 -08:00
Oliver Ruebel
9179f5b7b3 Add (vtkm::Id) cast for contour tree constexpr variable for CUDA build 2020-12-02 14:29:14 -08:00
Oliver Ruebel
15baa0f591 Remove ArrayHandleVirtual import in BRACTNodeComperator.h 2020-12-02 14:29:14 -08:00
Oliver Ruebel
569d0ed413 Revert change to Types.h 2020-12-02 14:29:14 -08:00
Gunther H. Weber
07d3a2b79d Try to fix error in vtk-m build dashboard. 2020-12-02 14:29:14 -08:00
Gunther H. Weber
47b47258f3 Temporarily disable tests requiring external data files. 2020-12-02 14:29:14 -08:00
Gunther H. Weber
0b64f4194b Fix compiler shadowed variable compiler warning. 2020-12-02 14:29:14 -08:00
Oliver Ruebel
05c81cbb76 Fix bad array look-up in dot print 2020-12-02 14:29:14 -08:00
Gunther H. Weber
9dda1cc661 Replace improver use of vtkm::Id with vtkm::IdComponent. 2020-12-02 14:29:14 -08:00
Oliver Ruebel
bc5f50a510 Fix ContourTreeDotPrint 2020-12-02 14:29:14 -08:00
Oliver Ruebel
21cf5a057d Fix build errors in unused print dot of HierarchicalContourTree.h 2020-12-02 14:29:14 -08:00
Oliver Ruebel
e53f63c42f Attempt to fix CUDA visibilty of types 2020-12-02 14:29:14 -08:00
Oliver Ruebel
78a2a285d1 Fix build errors in unused print dot function in HierarchicalContourTree.h 2020-12-02 14:29:14 -08:00
Oliver Ruebel
3cefc1e20a Remove tabs in PrintGraph 2020-12-02 14:29:14 -08:00
Oliver Ruebel
5353a1c3b2 Remove trailing whitespaces 2020-12-02 14:29:13 -08:00
Oliver Ruebel
11598d3348 Added Dot print output calls 2020-12-02 14:29:13 -08:00
Oliver Ruebel
4f8c28a82a Make dot print configurable 2020-12-02 14:29:13 -08:00
Oliver Ruebel
4d179556e0 Remove unused variable in FindBractSuperarcsSuperarcToWorklet 2020-12-02 14:29:13 -08:00
Gunther H. Weber
5b9dc7cea8 Finished moving common functions to TestingContourTreeUniformDistributedFilter.h 2020-12-02 14:29:13 -08:00
Gunther H. Weber
7a0fd7857a Moved common functions for distributed contour tree tests in separate file. 2020-12-02 14:29:13 -08:00
Gunther H. Weber
83b88908ff Add MPI unit test 2020-12-02 14:29:13 -08:00
Gunther H. Weber
4d78f19ab6 Copy CellSet from input (since one is needed for DIY serialization). 2020-12-02 14:29:13 -08:00
Oliver Ruebel
91b9832f99 Fix ReadPortal access in HierarchicalContourTree 2020-12-02 14:29:13 -08:00
Oliver Ruebel
d24f7b786b Fix ReadPortal access in HierarchicalContourTree::SuperString part 2 2020-12-02 14:29:13 -08:00
Oliver Ruebel
da4b56d8e5 Fix ReadPortal access in HierarchicalContourTree::SuperString 2020-12-02 14:29:13 -08:00
Oliver Ruebel
cf333de8d8 Move VTKM_CONT labels for HierarchicalContourTree CUDA built 2020-12-02 14:29:13 -08:00
Gunther H. Weber
99db6db0a4 Minor refactoring of unit test. 2020-12-02 14:29:13 -08:00
Gunther H. Weber
e47ef57111 Added missing include needed due to DO: reformat 2020-12-02 14:29:13 -08:00
Gunther H. Weber
4191ac4f74 Eliminte more TABs 2020-12-02 14:29:13 -08:00
Gunther H. Weber
5dc26391c0 Eliminted TABs 2020-12-02 14:29:13 -08:00