Commit Graph

4321 Commits

Author SHA1 Message Date
Kenneth Moreland
2eb2416e47 Merge topic 'cross-dot-field-selectors'
fa842725 Enable using coordinates for dot/cross product filters
707eccd3 Make dot/cross filter interface more consistent

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Dave Pugmire <dpugmire@gmail.com>
Merge-request: !1121
2018-03-26 12:11:16 -04:00
Kenneth Moreland
fa84272507 Enable using coordinates for dot/cross product filters
Also better supporting policies on secondary field.
2018-03-25 19:34:43 -06:00
Kenneth Moreland
707eccd3d5 Make dot/cross filter interface more consistent
Both the dot product filter and the cross product filter require 2
fields to be selected as their input. Previously, you used the
superclass' SetActiveField for the primary field and
SetSecondaryFieldName for the secondary field. This changes adds a
SetPrimaryField method to make the selection more clear. I also changed
SetSecondaryFieldName to SetSecondaryField that optionally takes an
association to make it more consistent.
2018-03-25 10:43:49 -06:00
Kenneth Moreland
f359f6f15f Merge topic 'local-face-indices'
1fe78692 Resurrect function to get face indices

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !1120
2018-03-23 11:39:26 -04:00
Robert Maynard
906f4c0d8d Merge topic 'make_cuda_virtuals_use_cuda_streams'
2bfbf0a9 Transfer of virtuals to the CUDA device now properly uses streams

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Sujin Philip <sujin.philip@kitware.com>
Merge-request: !1114
2018-03-23 08:51:32 -04:00
Kenneth Moreland
1fe7869211 Resurrect function to get face indices
Due to recent changes to remove static arrays that are not supported on
some devices, the function to return all the local point indices on a
face was removed. That left no way to get the structure of cell faces
short of pulling an internal data structure.

This change resurrects a function to get point indices for a face. The
interface for this method has necessarily changed, so I also changed the
corresponding function for getting edge indices.
2018-03-22 22:37:33 -06:00
Kenneth Moreland
b6b0005996 Merge topic 'field-selection-as-member'
86f6ecbf Add some convenience methods for Filter::SetFieldsToPass
f8237a9d Make selection of fields to pass a field member variable

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Utkarsh Ayachit <utkarsh.ayachit@kitware.com>
Merge-request: !1118
2018-03-22 17:52:28 -04:00
Kenneth Moreland
86f6ecbfa5 Add some convenience methods for Filter::SetFieldsToPass
The first convenience method takes a FieldSelection and a mode. The mode
given will override the mode in the FieldSelection. The intention is to
make it easy to give the constructor argument for FieldSelection and the
mode. For example, if you wanted to pass all variables _except_
"stopfield", you could say

field.SetFieldsToPass("stopfield",
                      vtkm::filter::FieldSelection::MODE_EXCLUDE);

I also added a convenience method that takes the name of a field and an
association.

field.SetFieldsToPass("pointfield",
                      vtkm::cont::Field::ASSOC_POINTS);

Granted, you could get the same effect by wrapping this arguments in
initializer braces, but this is a bit more clear.
2018-03-22 10:47:04 -06:00
Kenneth Moreland
f8237a9d3a Make selection of fields to pass a field member variable
Previously you passed a FieldSelection to Filter::Execute to specify
which fields to pass from input to output. There is no real reason for
this as other information about input and output fields are member
variables to Filter. This moves field selection as a member variable as
well. (This should also help confusion when updating old code to new to
prevent users from mistaking field passing with input fields.

Also added a few convenience constructors to FieldSelection so that you
can call Field::SetFieldsToPass() with just the string of what you want
to pass.
2018-03-22 10:25:09 -06:00
Kenneth Moreland
7861b5a88e Merge topic 'selecting-input-map-fields'
d74b96ba Support FieldSelection initialization with vtkm::Pair initializer list
8e312f81 Add MODE_EXCLUDE to FieldSelection
9c51de8d Add MODE_NONE to FieldSelection
a4aa42c0 Avoid "weird" arrays in fields
6a6ac7cd Change filter to pass all fields by default

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1116
2018-03-22 11:12:09 -04:00
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
89b46e9564 Merge topic 'multiblock-const-correctness'
117ce0be Add const correctness to MultiBlock method arguments

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1115
2018-03-21 09:25:27 -04: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
Robert Maynard
2bfbf0a902 Transfer of virtuals to the CUDA device now properly uses streams
This way when multiple threads are using VTK-m they all won't block while
one transfer a class with virtuals to the device.
2018-03-20 17:04:41 -04:00
Robert Maynard
6ad53c7b70 Merge topic 'fix-examples'
e3961b9c update examples after filter API changes.
9cf5be2f Make `Result` constructor as `explicit`.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1112
2018-03-14 12:46:33 -04:00
Utkarsh Ayachit
e3961b9c95 update examples after filter API changes. 2018-03-13 13:54:22 -04: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
Matt Larsen
996b75b2fc Merge topic 'examples_filters_fix'
cf0b0aaf fixing clipping and contour tree examples

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !1111
2018-03-10 18:19:59 -05: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
Matt Larsen
cf0b0aaf95 fixing clipping and contour tree examples 2018-03-10 09:08:29 -08: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
Diy Upstream
95743c6ee3 diy 2018-03-10 (08f19c67)
Code extracted from:

    https://gitlab.kitware.com/third-party/diy2.git

at commit 08f19c677d84e08d9e7ee301c98db04c2bc2c7bd (for/vtk-m).
2018-03-10 09:24:19 -05:00
Matt Larsen
4d14214480 Merge topic 'invert_clip'
9cebcdaa adjusting formatting
0d671bcb adding inverted clip unit tests
2daba821 adding the ability to invert clips

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1107
2018-03-09 22:30:14 -05:00
Matt Larsen
9cebcdaaa5 adjusting formatting 2018-03-09 13:58:08 -08: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
Robert Maynard
d3fe1a6bd4 Merge topic 'allow_diy_to_build_on_powerpc_clang'
496ebb96 Merge branch 'upstream-diy' into allow_diy_to_build_on_powerpc_clang
5dedd3c6 diy 2018-03-06 (56d516fd)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1102
2018-03-07 08:02:53 -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
Diy Upstream
5dedd3c661 diy 2018-03-06 (56d516fd)
Code extracted from:

    https://gitlab.kitware.com/third-party/diy2.git

at commit 56d516fdc2633de03731ae4a391909edf61be9d2 (for/vtk-m).
2018-03-06 14:56:04 -05:00