Commit Graph

3370 Commits

Author SHA1 Message Date
Kenneth Moreland
d74b96ba5f Support FieldSelection initialization with vtkm::Pair initializer list
It already supported initializer lists of std::pair. It seems weird we
would not also support our own version of pair.
2018-03-21 14:12:22 -06:00
Kenneth Moreland
8e312f816d Add MODE_EXCLUDE to FieldSelection
This allows you to turn off the selection of fields rather than turn
them on. It could be helpful, for example, if you were isosurfacing on a
single isovalue and didn't want to pass the field you are contouring on
(because it's all the same value).
2018-03-21 14:06:12 -06:00
Kenneth Moreland
9c51de8db2 Add MODE_NONE to FieldSelection
This mode forces the selection to be empty. Although there is no
practical difference between having MODE_NONE and having MODE_SELECTED
with nothing selected (which is the default), this is a semantically
nicer way to say you don't want any fields.

Since we have changed the default behavior of Filter::Execute to be
MODE_ALL, this is a nice addition so that you can clearly specify you
don't want to pass any fields by adding
vtkm::filter::FieldSelection::MODE_NONE as the second argument. (Making
it MODE_SELECTED is not clear that you want none.)
2018-03-21 13:43:15 -06:00
Kenneth Moreland
a4aa42c012 Avoid "weird" arrays in fields
In some of the tests there was a field that was using a counting array.
This uses an integer as the value type and has a special implicit
storage type. Currently, this is likely to cause problems whenever it
runs into a cast and call of a dynamic array. For now, let's avoid
these.

In the near future we should have expanded virtual method capabilities
that will make it possible to support these atypical arrays.
2018-03-21 13:35:02 -06:00
Kenneth Moreland
6a6ac7cd82 Change filter to pass all fields by default
You can still select independent fields with a FieldSelection object if
desired.
2018-03-21 12:43:11 -06:00
Kenneth Moreland
117ce0be92 Add const correctness to MultiBlock method arguments
Several MultiBlock methods take references as arguments. Generally that
is good as some of the arguments take larger data structures like
DataSet and std::vector that can be passed much faster as a reference.
However, the references were not declared const, which means that you
could not use rvalues. This is now fixed.
2018-03-20 16:33:40 -06:00
Utkarsh Ayachit
9cf5be2f8e Make Result constructor as explicit.
This avoid accidental conversions from DataSet to Result in return
values. This exposed several issues with filters and their tests. Fixed
those as well.
2018-03-13 13:54:21 -04:00
Robert Maynard
e35eec4a92 Merge topic 'virtual_coordinate_system_workarounds'
cbadd3e6 Make CoordinateSystem not fail on CUDA

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Acked-by: Matt Larsen <mlarsen@cs.uoregon.edu>
Merge-request: !1108
2018-03-13 08:31:53 -04:00
Utkarsh Ayachit
cdb62c5b5c Merge branch 'fix-diy-warnings' into 'master'
Fix diy warnings

See merge request vtk/vtk-m!1110
2018-03-12 11:17:27 -04:00
Robert Maynard
cbadd3e67e Make CoordinateSystem not fail on CUDA 2018-03-10 16:38:41 -05:00
Robert Maynard
9eca9be724 Merge topic 'prefer_constexpr_over_const'
7c54125b Switch over from static const to static constexpr where possible.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1097
2018-03-10 16:14:50 -05:00
Robert Maynard
1bd7441384 Merge topic 'more_efficient_dynamicarrayhandle_cast_call'
c026d14b DynamicArrayHandle prunes invalid Value/Storage set before cast and call

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !1109
2018-03-10 13:54:33 -05:00
Robert Maynard
7c54125b66 Switch over from static const to static constexpr where possible. 2018-03-10 11:39:58 -05:00
Utkarsh Ayachit
66e356f7d9 Merge topic 'add-filters'
86bd81de streamline: handle different storage types for fields.
de4e840e enhance filter API
c255c0eb add `vtkm::cont::ConditionalCastAndCall`
54c2d234 Make it easier to iterator over blocks.
d1a59aad Fixes for CrossProduct and DotProduct.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !1100
2018-03-10 09:24:35 -05:00
Utkarsh Ayachit
66fcf2a7fd Merge branch 'upstream-diy' into fix-diy-warnings
* upstream-diy:
  diy 2018-03-10 (08f19c67)
2018-03-10 09:24:19 -05:00
Matt Larsen
0d671bcb22 adding inverted clip unit tests 2018-03-09 13:51:28 -08:00
Robert Maynard
c026d14b97 DynamicArrayHandle prunes invalid Value/Storage set before cast and call
By pruning the invalid combinations first we reduce the amount of work
the compiler has to do. Additionally it makes for smaller callstacks when
the compiler errors out during a CastAndCall.
2018-03-09 16:14:27 -05:00
Matt Larsen
2daba82188 adding the ability to invert clips 2018-03-08 18:28:08 -08:00
Utkarsh Ayachit
86bd81de3f streamline: handle different storage types for fields.
this is required now that, in theory, streaminlines filter can be
executed treating the coordinate system as the vector field.
2018-03-07 13:42:23 -05:00
Utkarsh Ayachit
de4e840eae enhance filter API
Filters now support executing on a dataset to produce a result dataset
with automatic mapping of fields to the output dataset. Fields to map
can be selected using `vtkm::filter::FieldSelection` class, which provides
constructors to map all or no fields, along with a selection of fields.

This updates all tests to use the new filter API.
2018-03-07 13:42:23 -05:00
Robert Maynard
7fd9950c56 Merge topic 'disable_assert_cuda_75'
a75c6ae4 Automatically disable assert for CUDA 7.5 as they don't work in device code

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Matt Larsen <mlarsen@cs.uoregon.edu>
Merge-request: !1105
2018-03-07 10:41:57 -05:00
Robert Maynard
65077ad121 Merge topic 'connected_component'
1a13324a Merge branch 'master' into connected_component
e058aaeb extend CellSetConnectivity to CellSetUniform and CellSetExplicit

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !1104
2018-03-07 10:29:33 -05:00
Robert Maynard
a75c6ae419 Automatically disable assert for CUDA 7.5 as they don't work in device code 2018-03-07 09:18:37 -05:00
Li-Ta Lo
1a13324a9a Merge branch 'master' into connected_component 2018-03-06 16:23:43 -07:00
Li-Ta Lo
e058aaebd9 extend CellSetConnectivity to CellSetUniform and CellSetExplicit 2018-03-06 16:21:32 -07:00
Utkarsh Ayachit
c255c0ebe7 add vtkm::cont::ConditionalCastAndCall
Adding a function to conditionally do CastAndCall.
2018-03-06 15:54:46 -05:00
Utkarsh Ayachit
54c2d2345e Make it easier to iterator over blocks.
Now `for (block : multiblock)` is supported.
2018-03-06 15:54:46 -05:00
Utkarsh Ayachit
d1a59aad20 Fixes for CrossProduct and DotProduct. 2018-03-06 15:54:46 -05:00
Robert Maynard
496ebb9628 Merge branch 'upstream-diy' into allow_diy_to_build_on_powerpc_clang
* upstream-diy:
  diy 2018-03-06 (56d516fd)
2018-03-06 14:56:05 -05:00
Dave Pugmire
4fd3203bc2 Merge topic 'cross_and_dot_filters'
da2b518e fix compiler warning
1a0dfaa7 Add mapfield method.
daf11713 Filters to compute the cross and dot product of vector fields.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !1098
2018-02-27 16:00:43 -05:00
Utkarsh Ayachit
52b78a903a Merge topic 'make-diy-non-optional'
756c7e1d selectively disable C4275.
7f52fcd1 Merge branch 'upstream-diy' into make-diy-non-optional
b8ae3236 diy 2018-02-27 (e140ad94)
4ade3984 warnings: int/size_t conversion warnings.
18fec921 don't exclude DIY warnings.
4813d7cb disable non-fixable MSVC warnings.
61e57d4e fix shadowed variable warnings.
7002c71e add warning guards around diy includes.
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !1091
2018-02-27 15:50:41 -05:00
Utkarsh Ayachit
756c7e1d11 selectively disable C4275. 2018-02-27 13:42:52 -05:00
Dave Pugmire
da2b518e63 fix compiler warning 2018-02-27 13:35:35 -05:00
Dave Pugmire
1a0dfaa760 Add mapfield method. 2018-02-27 13:24:30 -05:00
Utkarsh Ayachit
7f52fcd18b Merge branch 'upstream-diy' into make-diy-non-optional
* upstream-diy:
  diy 2018-02-27 (e140ad94)
2018-02-27 12:25:56 -05:00
Dave Pugmire
daf1171382 Filters to compute the cross and dot product of vector fields. 2018-02-27 09:24:46 -05:00
Robert Maynard
dde7c76a9f Worklets can't be in anonymous namespace as CUDA 7.5 doesn't support those. 2018-02-26 16:42:00 -05:00
Robert Maynard
601a839d5d VTK-m uses static const/constexpr when supported ( so not on cuda 7.5 )
These changes now allow VTK-m to compile on CUDA 7.5 by using const arrays,
when compiling with CUDA 8+ support we upgrade to static const arrays, and
lastly when CUDA is disabled we fully elevate to static constexpr.
2018-02-26 16:41:29 -05:00
Robert Maynard
505e7aa1ec VTK-m now has defines for the CUDA version even when not using nvcc.
This is needed so so that the CUDA and C++ compiler generate the same code
when scanning a shared header but generating different translation units
2018-02-26 16:38:26 -05:00
Robert Maynard
a60e378003 CUDA 7.5 doesn't like suppressing warning codes that don't exist
Newer versions of CUDA have no problem suppressing warning codes that don't
exist.
2018-02-26 16:37:57 -05:00
Robert Maynard
41d968f68d Cuda ExecutionPolicy when using CUDA 7.5 is aware we use raw pointer now
The failure was caused by not updating CUDA 7.5 code paths when we
removed the usage of ::thrust::cuda::pointer.
2018-02-26 16:37:57 -05:00
Robert Maynard
6202d8d22d CudaAllocator guards all CUDA 8.0+ calls behind ifdef's. 2018-02-26 16:37:57 -05:00
Robert Maynard
ff9dcc4750 Consistently mark variables as static const across all of vtk-m 2018-02-26 16:37:57 -05:00
Utkarsh Ayachit
4ade3984ac warnings: int/size_t conversion warnings. 2018-02-26 15:33:56 -05:00
Utkarsh Ayachit
61e57d4e73 fix shadowed variable warnings. 2018-02-26 15:33:56 -05:00
Utkarsh Ayachit
7002c71e95 add warning guards around diy includes.
Adding `VTKM_THIRDPARTY_PRE_INCLUDE` and `VTKM_THIRDPARTY_POST_INCLUDE`
guards around diy includes.
2018-02-26 15:33:56 -05:00
Utkarsh Ayachit
70b647071c Make DIY a required dependency.
DIY now depends on MPI optionally. Hence we no longer need to depend on
DIY optionally based on whether MPI was enabled. Update cmake and c++
code to always use DIY-based components.

DIY is built with MPI support if VTKm_ENABLE_MPI is ON.
2018-02-26 11:25:56 -05:00
Robert Maynard
ee69c7a4b7 Remove VS2013 workarounds from VTK-m. 2018-02-23 15:39:39 -05:00
Robert Maynard
01c9d6e2a6 Merge topic 'vtkm_prefers_using_over_typedef'
182f4707 vtkm prefers 'using' over typedef.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1092
2018-02-23 13:15:02 -05:00
Robert Maynard
182f4707e7 vtkm prefers 'using' over typedef. 2018-02-23 10:47:20 -05:00