Commit Graph

6704 Commits

Author SHA1 Message Date
Li-Ta Lo
508b992cb4 Merge branch 'particle_density_cic' of gitlab.kitware.com:ollielo/vtk-m into particle_density_cic 2021-03-19 14:39:08 -06:00
Li-Ta Lo
056ee7269c fixed another copy paste bug 2021-03-19 12:48:51 -06:00
Li-Ta Lo
f71a01b39c Fixed misunderstanding of tolerance. 2021-03-19 14:31:01 +00:00
Li-Ta Lo
afe0a3e5fe correct uncareful search and replace error 2021-03-19 08:21:21 -06:00
Li-Ta Lo
b3c6ea396d install ParticleDensityBase.h 2021-03-18 17:07:52 -06:00
Li-Ta Lo
7b8cc401c2 public CUDA 2021-03-18 17:05:22 -06:00
Li-Ta Lo
6796b1a453 consolidate two particle density filters 2021-03-18 16:44:23 -06:00
nadavi
d254531657 Implement additional wireframer rendering regression tests 2021-03-18 16:26:07 +00:00
Li-Ta Lo
4a22f54bdf Merge branch 'master' into particle_density_cic 2021-03-17 17:54:21 -06:00
Li-Ta Lo
8875645da1 Merge topic 'particle_density'
7572699b2 fix compiler warning
f57677081 did I miss more float?
e8d3325d8 use FloatDefault for density
1222ce5f9 override PrepareForExecution
59897dc31 add a missing word
45dd24ad7 reinstitute the counting of particles
d25eb7de7 more doc on the selection of scalar field and DivideByVolume
ff73723f5 fine tune the doc on the filter
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Li-Ta Lo <ollie@lanl.gov>
Acked-by: Kenneth Moreland <kmorel@acm.org>
Merge-request: !2441
2021-03-17 19:52:13 -04:00
Li-Ta Lo
7572699b22 fix compiler warning 2021-03-17 16:31:57 -06:00
Li-Ta Lo
f57677081b did I miss more float? 2021-03-17 15:06:44 -06:00
Li-Ta Lo
e8d3325d8f use FloatDefault for density 2021-03-17 14:35:24 -06:00
Li-Ta Lo
1222ce5f93 override PrepareForExecution 2021-03-17 10:02:47 -06:00
Li-Ta Lo
59897dc31d add a missing word 2021-03-17 09:08:39 -06:00
Li-Ta Lo
45dd24ad71 reinstitute the counting of particles 2021-03-17 08:51:37 -06:00
Li-Ta Lo
d25eb7de7e more doc on the selection of scalar field and DivideByVolume 2021-03-17 08:00:35 -06:00
Li-Ta Lo
ff73723f51 fine tune the doc on the filter 2021-03-17 07:29:45 -06:00
Li-Ta Lo
ac3ff08238 more documentation, use GetDataAsMultiplexer() 2021-03-16 18:18:20 -06:00
Li-Ta Lo
f2421b4a76 add void 2021-03-16 16:01:59 -06:00
Li-Ta Lo
461f2b03d2 add comments and DivideByVolume as suggested by Ken 2021-03-16 15:54:09 -06:00
Li-Ta Lo
9fbb916a00 Merge topic 'fp_atomics2'
b590a8ebb Add floating point atomics

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@acm.org>
Merge-request: !2438
2021-03-16 14:06:24 -04:00
Nick Thompson
d815493986 Merge topic 'write_cellset_extrude'
b1c0f46ac Response to code review.
4e7d85094 Remove default template argument that breaks build.
4cb661006 Implement GetIndices.
2d35ab05a Write CellSetExtrude as CellSetExplicit.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Dave Pugmire <dpugmire@gmail.com>
Merge-request: !2436
2021-03-12 19:32:55 -05:00
Nick Thompson
b1c0f46ac0 Response to code review. 2021-03-12 21:14:50 +00:00
Nick Thompson
4e7d85094e Remove default template argument that breaks build. 2021-03-12 15:37:32 -05:00
Nick Thompson
4cb661006e Implement GetIndices. 2021-03-12 14:40:27 -05:00
larsen30@llnl.gov
8e588504ff Merge branch 'identify_xl' of gitlab.kitware.com:mclarsen/vtk-m into identify_xl 2021-03-11 13:30:40 -08:00
larsen30@llnl.gov
9c53963946 Merge remote-tracking branch 'upstream/master' into identify_xl 2021-03-11 13:30:28 -08:00
Matt Larsen
8d8228f365 correct type in comment 2021-03-11 21:12:06 +00:00
Matt Larsen
d2d1c854ad Merge topic 'extend_clipping_plane'
786995984 extend the default clipping plane

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2439
2021-03-11 15:43:37 -05:00
Li-Ta Lo
b7f2d8c638 Merge branch 'particle_density' into particle_density_cic 2021-03-11 11:22:22 -07:00
Li-Ta Lo
e68319e0a3 Merge branch 'fp_atomics2' into particle_density_cic 2021-03-11 11:13:55 -07:00
Li-Ta Lo
ce8ab5912b Merge branch 'particle_density_cic' of gitlab.kitware.com:ollielo/vtk-m into particle_density_cic 2021-03-11 10:31:42 -07:00
Li-Ta Lo
6f507bb4b5 update ParticleDensityNearestGridPoint to use FP atomics 2021-03-11 10:18:50 -07:00
larsen30@llnl.gov
4d7a08c183 add xl compiler identification 2021-03-11 09:15:55 -08:00
Matt Larsen
7869959841 extend the default clipping plane 2021-03-11 08:43:42 -08:00
Li-Ta Lo
b590a8ebb2 Add floating point atomics 2021-03-11 08:19:51 -07:00
Kenneth Moreland
91d13bdfb2 Merge topic 'reduce-initial-type'
563e23aac Fix unintended cast in TBB Reduce's return value
a7100c845 Do not assume CUDA reduce operator is unary
f3a6931f6 Fix casting issues in TBB functors
cc5b9a016 Add casts to FunctorsGeneral.h
d9c988b20 Allow for different types in basic type operators

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2431
2021-03-08 18:06:51 -05:00
Kenneth Moreland
563e23aaca Fix unintended cast in TBB Reduce's return value
It was setting the return value type the same as the initial value.
However, the value type can change based on the array type and the
operator.
2021-03-08 14:12:20 -07:00
Li-Ta Lo
f38523d557 Merge branch 'fp_atomics' into particle_density_cic 2021-03-08 12:19:35 -07:00
Li-Ta Lo
3d1e58e651 use AsArrayHandle 2021-03-08 10:32:01 -07:00
Li-Ta Lo
2336d144e3 distingush load/store v.s. arithmetic types 2021-03-08 09:52:41 -07:00
Li-Ta Lo
2510f08237 single precision float constant 2021-03-08 08:26:22 -07:00
Nick Thompson
2d35ab05ac Write CellSetExtrude as CellSetExplicit. 2021-03-08 10:18:42 -05:00
Matt Larsen
ffdb33f727 follow coding conventions 2021-03-05 08:47:58 -08:00
Li-Ta Lo
350b42224a include ArrayCopy.h 2021-03-05 09:43:38 -07:00
Matt Larsen
a778af8bc9 make scalar normilization consistent across rendering 2021-03-05 08:32:10 -08:00
Matt Larsen
168952a0ce correct a potential divide by zero 2021-03-05 08:15:56 -08:00
Li-Ta Lo
9de7442297 implemented CIC deposition 2021-03-05 08:29:00 -07:00
Li-Ta Lo
aed6a8f2f4 Merge branch 'fp_atomics' into particle_density_cic 2021-03-04 11:15:38 -07:00
Li-Ta Lo
b78f91b067 add comment on the field parameter 2021-03-04 11:14:14 -07:00
Li-Ta Lo
226e0ccc30 initialize the old way 2021-03-04 09:29:00 -05:00
Li-Ta Lo
30aa5b0526 add floating point atomic add for MSVC 2021-03-04 09:28:55 -05:00
Li-Ta Lo
dfa1a64729 Merge branch 'master' into fp_atomics 2021-03-04 09:27:06 -05:00
Dave Pugmire
a42bb1b0c7 Merge topic 'messenger_cleanup'
8bf53bc36 Cleanup per review.
9c9db23de Fixes per review
2d1ff10d0 Code cleanup
5c4537692 Merge branch 'master' of https://gitlab.kitware.com/vtk/vtk-m into messenger_cleanup
43b4bf46d Fix for serial builds.
ebb1019aa Add CheckRequests method.
af14f583a Merge branch 'master' of https://gitlab.kitware.com/vtk/vtk-m into messenger_cleanup
55fff59e0 Cleanup the messenger classes.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Abhishek Yenpure <abhishek@uoregon.edu>
Merge-request: !2410
2021-03-03 16:38:54 -05:00
Kenneth Moreland
a7100c845a Do not assume CUDA reduce operator is unary
The `Reduce` algorithm is sometimes used to convert an input type to a
different output type. For example, you can compute the min and max at
the same time by making the output of the binary functor a pair of the
input type. However, for this to work with the CUDA algorithm, you have
to be able to also convert the input type to the output type. This was
previously done by treating the binary operator as also a unary
operator. That's fine for custom operators, but if you are using
something like `thrust::plus`, it has no unary operation. (Why would
it?)

So, detect whether the operator has a unary operation. If it does, use
it to cast from the input portal to the output type. If it does not,
just use `static_cast`. Thus, the operator only has to have the unary
operation if `static_cast` does not work.
2021-03-03 09:39:51 -07:00
Kenneth Moreland
f3a6931f6b Fix casting issues in TBB functors 2021-03-03 09:39:51 -07:00
Kenneth Moreland
cc5b9a016f Add casts to FunctorsGeneral.h
If you are using the classes in `FunctorsGeneral.h`, you specify both
the result type and the type of the operands. Presumably you are already
comfortable with any type conversions. So let them keep.
2021-03-03 09:39:51 -07:00
Kenneth Moreland
d9c988b200 Allow for different types in basic type operators
The basic type operators in `Types.h` (i.e. `vtkm::Add`,
`vtkm::Subtract`, `vtkm::Multiply` and `vtkm::Divide`) required the same
type for both arguments. This caused problems when used with `Reduce`
and the initial value type did not match exactly.

Use some tricks from `BinaryOperators.h` to be flexible about using
different types.
2021-03-03 09:39:45 -07:00
dpugmire
799dbacd92 Merge branch 'master' of https://gitlab.kitware.com/vtk/vtk-m into add_SOA_to_default_types 2021-03-02 19:41:30 -05:00
Kenneth Moreland
58bd890c9c Merge topic 'variant-no-ref'
878a5e5ae Disallow references in Variant

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Li-Ta Lo <ollie@lanl.gov>
Merge-request: !2428
2021-03-02 13:53:40 -05:00
dpugmire
21a3137000 kick the builds 2021-03-02 13:47:11 -05:00
dpugmire
8bf53bc368 Cleanup per review. 2021-03-02 13:20:20 -05:00
dpugmire
9c9db23de5 Fixes per review 2021-03-02 13:04:11 -05:00
dpugmire
565522eb62 Add ArrayHandleSOA to default 2021-03-02 12:09:26 -05:00
Kenneth Moreland
878a5e5ae2 Disallow references in Variant
I have run into strange problems with reference types sneaking into
templates. Reference types can cause weird errors when passing things
across hosts and devices, and it's best not to let them sneak into an
object like Varient where they become more difficult to check for.
2021-03-01 16:09:19 -07:00
Kenneth Moreland
80c1f0a974 Be more conservative about is_trivial support
`std::is_trivial` is part of the C++14 specification. However, we have
encountered multiple compilers that purport to implement C++14 but do
not implement `std::is_trivial` and the like checks correctly.

To avoid such issues, only use `std::is_trivial` on compilers that we
have tested to support it.
2021-03-01 15:12:27 -07:00
Gunther H. Weber
e4a46f3392 Removed two TODO comments after verifying parameters 2021-02-26 17:01:14 -08:00
Gunther H. Weber
3ef95ded23 Port bug fix from distributed to augmented contour tree filter 2021-02-26 15:23:44 -08:00
Gunther H. Weber
70f7337f64 Fix hang in distributed contour tree
Pass division vector to DIY RegularDecomposer to ensure its decomposition matches the one in the partitioned data set.
2021-02-26 15:23:44 -08:00
mclarsen
1c060d9c50 more missing sstream headers 2021-02-26 13:49:42 -08:00
Kenneth Moreland
91fc69fd06 Merge topic 'implicit-functions-no-virtual'
662998f19 Remove make_ImplicitFunctionFunctor functions
27cc99acb Add documentation for Multiplexer and General implicit functions
6a445ebcf Do not return a reference from ImplicitFunction::PrepareForExecution
b0fcab5d7 Do not capture references to execution objects
096e7457c Fix CUDA issues
8c6623736 Suppress deprecation warnings in deprecated class
a6725b3ac Remove use of deprecated ImplicitFunctions with virtual methods
180d11e7f Add ImplicitFunctionGeneral
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Nickolas Davis <nadavi@sandia.gov>
Merge-request: !2413
2021-02-26 15:19:30 -05:00
mclarsen
5be6fb0c50 add another missing header 2021-02-26 07:35:26 -08:00
mclarsen
572840f492 add another missing header 2021-02-26 07:29:18 -08:00
mclarsen
ffb0548b92 adding missing header 2021-02-26 07:17:52 -08:00
Kenneth Moreland
662998f194 Remove make_ImplicitFunctionFunctor functions
They were meant to replace `make_ImplicitFunction*Handle` classes, but
they don't really provide any interesting functionality and are not
backward compatible in any case. So just get rid of one more thing we
don't need to support.
2021-02-25 14:05:02 -07:00
Kenneth Moreland
27cc99acb4 Add documentation for Multiplexer and General implicit functions 2021-02-25 14:00:20 -07:00
Kenneth Moreland
6a445ebcf0 Do not return a reference from ImplicitFunction::PrepareForExecution
This can cause many troubles when passing around in a Variant
or across devices.
2021-02-25 13:49:04 -07:00
Kenneth Moreland
1aa0714aec Merge topic 'summit-errors'
aa5c9dba2 Remove problematic lambda functions

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2418
2021-02-25 11:41:51 -05:00
dpugmire
2d1ff10d04 Code cleanup 2021-02-24 15:58:49 -05:00
dpugmire
5c4537692e Merge branch 'master' of https://gitlab.kitware.com/vtk/vtk-m into messenger_cleanup 2021-02-24 12:42:33 -05:00
Matt Larsen
96223a955e i was wrong about the ray direction 2021-02-24 09:36:20 -08:00
Kenneth Moreland
b0fcab5d7f Do not capture references to execution objects
It is possible for a transport to return a reference to an object.
At some point, however, the object has to be potentially copied
to a different memory space to be used in the execution environment.
This was getting fouled up because the reference type was being
captured. Instead, remove any references from the object.
2021-02-24 11:58:18 -05:00
Kenneth Moreland
aa5c9dba28 Remove problematic lambda functions
The GCC 7 compiler on summit was failing to compile all of the
code. The problematic parts involved using lambda functions.
I think the problem is that the compiler has a bug where it
has a problem resolving the type of variables captured by
reference. The problem seems similar to this bug reported
to Kokkos:

https://github.com/kokkos/kokkos-kernels/issues/349

Solved the problem by removing the lambdas with either a
named method or just inline code.

I suspect the problem arose (without anyone's knowledge) with
MR !2331, which moved VTK-m to C++14. This GCC error seems to
happen with C++14 but not C++11. (The features of lambdas changed
between these two versions of C++.)
2021-02-24 09:52:59 -07:00
Matt Larsen
32b87b8b00 Merge topic 'the_robot_made_me_do_this_to_fix_things'
b9326c208 force update the images
b4877cf73 fix conversion warning
cac09110d fix rendering depths and divide by zero

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2419
2021-02-24 10:22:06 -05:00
mclarsen
b4877cf730 fix conversion warning 2021-02-23 14:52:35 -08:00
mclarsen
cac09110d8 fix rendering depths and divide by zero 2021-02-23 14:36:58 -08:00
nadavi
bd72d72471 improve regression test error output when args aren't set 2021-02-22 23:36:30 +00:00
Kenneth Moreland
096e7457c3 Fix CUDA issues 2021-02-22 06:40:03 -07:00
Kenneth Moreland
8c66237364 Suppress deprecation warnings in deprecated class
The implementation of a deprecated class should not give deprecation
warnings from its own implementation.
2021-02-22 06:40:03 -07:00
Kenneth Moreland
a6725b3acd Remove use of deprecated ImplicitFunctions with virtual methods
Unfortunately, this introduces a backward-incompatible change with the
filters that use ImplicitFunctions. Before, they would get an
ImplicitFunctionHandle. This class is deprecated, and there is no easy
way to get back the actual type of implicit function stored in it.
2021-02-22 06:40:02 -07:00
Kenneth Moreland
180d11e7f2 Add ImplicitFunctionGeneral 2021-02-22 06:40:02 -07:00
Kenneth Moreland
5ab9ddb637 Update ImplicitFunction tests to use non-virtual objects
There is still a test for the deprecated functionality (for now). The
deprecated test only happens if deprecated virtuals are still compiled,
and warnings are suppressed for this part of the code.
2021-02-22 06:40:02 -07:00
Kenneth Moreland
0cddbef0b9 Deprecated virutal methods in ImplicitFunctions
The `ImplicitFunction` classes are now trivial classes that can be
passed among host and devices. Because of this, we now need to know the
type of the `ImplicitFunction` in order to use it.

The old functionality still exists (when virtual methods are still being
compiled), but will give deprecation warnings. It is also not possible
to get a pointer from `ImplicitFunctionHandle` and cast it back to the
original data type (because the type changed). This is a weird testing
feature that makes little sense in practice.

Also unsupported in the deprecated classes is the ability to change
the object and have those changes reflected in the handle. This is
unfortunate, but it would have been difficult to implement this
feature that is going away and only appears to be used in some of
the tests.
2021-02-22 06:40:02 -07:00
Gunther Weber
561db99b30 Merge topic 'debug/ctwarp3d'
7a14ea0ef Use Float64 instead of FloatDefault in TreeCompiler
96424c833 Fix bad ordering of args for CountLinkComponentsIn2DSlice in IsNecessary

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !2414
2021-02-21 21:57:38 -05:00
Gunther Weber
e3851ce236 Merge topic 'contour-tree-array-decorator'
ebb265ce0 Add missing VTKM_EXEC_CONT declarations to functor
10ea36bb9 Pick one approach of using array handle decorator for contour tree
585f0ccb1 Two versions for replacing array transform with array decorator

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !2412
2021-02-21 21:56:32 -05:00
Gunther H. Weber
ebb265ce03 Add missing VTKM_EXEC_CONT declarations to functor 2021-02-18 16:53:50 -08:00
Kenneth Moreland
1822792b85 Support deprecated behavior of point locator pointers
`PointLocator`s have changed from being virtual objects to being trivial
objects. Part of this change means that when a worklet gets the
execution object for a point locator, it gets the actual object (or a
reference to it) instead of a pointer to an object. This means that the
new code uses the `.` operator to access the locator's features instead
of the `->` operator.

To support code still using the deprecated functionality, added a
specific `->` operator to the locator execution object to make it behave
as if it were a pointer. However, this operator is marked deprecated to
warn the user that they should modify their code to use the `.` instead.
2021-02-18 13:11:54 -07:00
Gunther H. Weber
10ea36bb95 Pick one approach of using array handle decorator for contour tree 2021-02-18 11:55:04 -08:00
dpugmire
43b4bf46db Fix for serial builds. 2021-02-18 14:36:29 -05:00
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