Commit Graph

2355 Commits

Author SHA1 Message Date
James Kress
eee9edde58 Updating formatting and fixing compiler warnings 2017-02-07 11:48:43 -05:00
James Kress
6cac18438d Updating formatting and fixing compiler warnings 2017-02-07 11:32:15 -05:00
James Kress
48d22460ee Updating formatting and fixing compiler warnings 2017-02-07 11:16:07 -05:00
Thomas J. Otahal
70e145fd83 Attempt to fix Visual Studio 2013/2015 warning message 2017-02-07 07:41:38 -07:00
James Kress
19b61a5367 Merge branch 'master' into DataSetAddUniform-test-enhance 2017-02-07 08:12:20 -05:00
Thomas J. Otahal
f1300c6143 Changed vtkm::Abs() to return input type 2017-02-06 15:50:13 -07:00
James Kress
cefc333a99 Adding fields to data set builder unit tests to test fields. 2017-02-06 16:24:36 -05:00
Thomas J. Otahal
71b2348dd9 Adjusted Math.h.in for const vtkm::Float32 function inputs 2017-02-06 12:18:13 -07:00
Robert Maynard
9148bea396 Corrects ignorable warnings with msvc and cuda enabled.
These constant value warnings are ignorable as we are trying
to throw an assert.
2017-02-02 10:09:34 -05:00
Robert Maynard
799277e515 Merge topic 'move_computerange_to_own_header'
3d2e15b4 Move ComputeRange for ArrayHandle to its own header

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !677
2017-02-01 10:37:36 -05:00
Robert Maynard
e0fd5696a3 Merge topic '2-field_assoc_convenience'
5020a848 Add convenience getters for accessing field data by association.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !678
2017-02-01 09:08:54 -05:00
Robert Maynard
6e4e07b378 Merge topic 'all_array_portals_have_set'
629271bc Make sure all ArrayPortals have a Set method.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !676
2017-02-01 09:08:51 -05:00
Kenneth Moreland
3d2e15b4c0 Move ComputeRange for ArrayHandle to its own header
It will be convenient to make this accessible outside of Field.
2017-02-01 09:06:42 -05:00
Kenneth Moreland
629271bceb Make sure all ArrayPortals have a Set method.
The current design for ArrayPortalVirtual makes it a requirement for all
array portals (that it wraps) to have Set defined. Thus, make sure Set is
defined for all ArrayPortal. Where Set is invalid, an assert is thrown if
something calls it at runtime.
2017-01-31 15:46:39 -05:00
David Lonie
49a88cda08 Merge topic '114-thrust-cudaMalloc'
575d74d1 Manage cuda device memory with cudaMalloc instead of thrust::vector.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !675
2017-01-31 14:56:02 -05:00
David C. Lonie
5020a8482f Add convenience getters for accessing field data by association. 2017-01-31 14:50:52 -05:00
David C. Lonie
575d74d143 Manage cuda device memory with cudaMalloc instead of thrust::vector. 2017-01-30 15:36:37 -05:00
Robert Maynard
407f9822c2 Merge branch 'use_usage_requirements' into 'master'
Use usage requirements

See merge request !673
2017-01-27 17:36:16 -05:00
Robert Maynard
dc143e7d9e Fix issues found on dashboard machines. 2017-01-27 15:22:34 -05:00
Robert Maynard
8035b526a8 Update the CMake components to have the concept of backends.
Now components are labeled as devices, and therefore allow other components
to link to only backends. We also have done the same thing for rendering.
2017-01-27 10:03:53 -05:00
Kenneth Moreland
0703139a3d Make Keys class do in-place sort
Previously, the Keys class constructor took an array of keys, made a
copy of it, and sorted the copy. This was to protect the caller in case
it needed the original keys array again. However, this copy takes a
significant chunk of time and it is probably rare in practice to ever
need the original keys array again. So instead just do an in-place sort.
2017-01-26 13:35:53 -07:00
Kenneth Moreland
059c7f6db0 Fix issue with ExternalFaces on CellSetSingleType
The ExternalFaces filter should work fine on a CellSetSingleType.
However, the filter was not operating on them because it a templated
method that is a placeholder for "this cell set type not supported" was
matching it. This simple change allows a CellSetSingleType to match the
template for a CellSetExplicit (which is the superclass).
2017-01-26 13:35:51 -07:00
Kenneth Moreland
876514bab2 Add better test for external faces
Tests zoo cells with different face size. Also makes sure the surface is
exactly as expected.
2017-01-26 13:35:49 -07:00
Kenneth Moreland
53679dfc9c Update ExternalFaces to support mixed face types
Previously, ExternalFaces really only supported tetrahedral meshes that
have only triangular faces. These changes support all mixes of cells and
their faces.
2017-01-26 13:35:46 -07:00
Thomas J. Otahal
7d6601d794 Modified Math.h.in and VectorAnalysis.h to support integral types.
Unary operations on scalars and vectors will return vtkm::Float64 for
integral input types and vtkm::Float64 input types. Unary operations will
return vtkm::Float32 for vtkm::Float32 input vectors and scalars.
2017-01-26 13:30:28 -07:00
Kenneth Moreland
a671963834 Add Version.h header file
This allows source files to use the VTK-m version.

Note that Configure.h does not include the version. This is intentional.
First, I don't want the entirety of VTK-m to recompile every time the
version is updated (which is every time a commit happens in git).
Second, it is important that external project source files be able to
get the VTK-m version without actually loading any VTK-m code.
2017-01-26 10:33:42 -07:00
Kenneth Moreland
d32f3457d8 Merge topic 'fix-clip-table-error-for-lines'
c6fdceaf Fix an error in the clip tables

Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: Sujin Philip <sujin.philip@kitware.com>
Merge-request: !669
2017-01-25 11:07:39 -05:00
Andrew Bauer
7b165842cd Fixing documentation typo 2017-01-25 10:41:09 -05:00
Thomas J. Otahal
cd95cbe90b Modified Math.h.in instead of Math.h
Changed return types for all scalar and vector unary math operations
to return vtkm::FloatDefault instead of input type. vtkm::Float64 will
be returned when the input is vtkm::Float64.
2017-01-24 14:47:51 -07:00
Kenneth Moreland
c6fdceaf46 Fix an error in the clip tables
There was an error in the clip tables for clipping lines. It was
referring to edge 1 for one of the case, but of course a line has only 1
edge at index 0. Fix the error in the clipping table and also add a
check for if we get an index to an invalid line.
2017-01-24 13:23:47 -07:00
Thomas J. Otahal
5777c4caa5 Merge branch 'master' into vector_magnitude_field_filter
Conflicts:
	vtkm/worklet/testing/CMakeLists.txt
2017-01-24 09:55:31 -07:00
Robert Maynard
2c916780a0 Reduce the amount of output the UnitTestHistogramFilter generates
It was producing about 40MB of output when saved by cdash/buildbot so
lets reduce that and make web pages load again.
2017-01-24 09:21:43 -05:00
Kenneth Moreland
fe1c7c3228 Merge topic 'fix-clean-grid'
5004e64c Fix CleanGrid when compact point fields is off

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !665
2017-01-23 11:00:02 -05:00
Robert Maynard
d0eb528aaf Merge branch 'reduce_amount_of_weak_vtables' into 'master'
Reduce amount of weak vtables

See merge request !612
2017-01-23 08:47:54 -05:00
Kenneth Moreland
28b866920f Merge branch 'reduce-by-key-worklet' into 'master'
Reduce by Key Worklet Type

See merge request !645
2017-01-19 16:25:06 -05:00
Kenneth Moreland
5004e64c3e Fix CleanGrid when compact point fields is off
There was an error in the CleanGrid filter where if the
CompactPointFields flag was off it would still try to compact the point
coordinates. Add an extra check so that the coordinate systems are just
passed when this flag is off.
2017-01-19 14:10:40 -07:00
Thomas J. Otahal
556b922733 Created a filter for the vector magnitude worklet.
Modified the vector magnitude worklet to accept VecAll instead
of Vec3 and return Scalar. Modified the Magnitude() and Sqrt() functions
to return FloatDefault for all inputs except for Float64.

Perhaps we should modify other functions in Math.h and VectorAnalysis.h to
return float types for intergral arguments instead of integral types?
2017-01-19 13:27:42 -07:00
Robert Maynard
2dc23cf1a8 Correct compilation errors on Windows with CUDA. 2017-01-19 14:02:35 -05:00
Christopher Sewell
82c40a6374 First support for unified memory 2017-01-18 11:43:49 -07:00
Kenneth Moreland
503bebda54 Merge topic 'array-handle-zip-in-place'
4d1da547 Fix ArrayHandleZip::PrepareForInPlace

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !660
2017-01-18 10:00:45 -05:00
Kenneth Moreland
d6eb477a45 Minor fixes to UnitTestWorkletReduceByKey 2017-01-17 15:53:17 -07:00
Kenneth Moreland
058439851e Remove static assert from templated function
There was a static assert in a templated function that was never
supposed to be used. Some compilers were fine as long as there was no
use of the templated function, but others errored out anyway. Change the
implementation to use the =delete keyword instead.

This won't have as nice of an error message, but you would have to jump
through some hoops to get to this point anyway. If this still does not
work, we could just probably remove the invalid templated function. The
compiler error would get even more obfuscated, but again I don't expect
anyone to actually run into it.
2017-01-17 15:53:15 -07:00
Kenneth Moreland
72b85559c2 Add ReducedValues[In][Out] tags to WorkletReduceByKey 2017-01-17 15:53:13 -07:00
Kenneth Moreland
ffa3b167b5 Add ValueCount tag to WorkletReduceByKey 2017-01-17 15:53:10 -07:00
Kenneth Moreland
add10f56cf Add Value[In][Out] tags for WorkletReduceByKey
This lets you give arrays of values paired with the keys that will be
grouped into (hopefully) small Vecs.
2017-01-17 15:53:08 -07:00
Kenneth Moreland
58eb8f168d Add WorkletReduceByKey and dispatcher
And the basic type for a reduce by key worklet and its associated
adapter. Right now the worklet only supports passing in keys. Values
come next.
2017-01-17 15:53:06 -07:00
Kenneth Moreland
cd64b69a55 Add Keys class
This class will manage the keys during a reduce-by-key worklet
execution.
2017-01-17 15:53:04 -07:00
Kenneth Moreland
4d1da5474a Fix ArrayHandleZip::PrepareForInPlace
The implementation was calling PrepareForOutput on the delegate arrays
rather than PrepareForInPlace, do when used with CUDA you did not get
the data on the device.

Also added a regression test to check this.
2017-01-17 15:33:18 -07:00
Robert Maynard
4a56e9f129 Merge branch 'contour-tree' into 'master'
Contour tree

See merge request !658
2017-01-17 17:00:54 -05:00
Robert Maynard
a6bd3a22e0 Make sure all custom storage containers are exported. 2017-01-16 09:17:38 -05:00
Robert Maynard
fc398d36a1 Make sure vtkm::Vec types are always exported. 2017-01-16 09:17:38 -05:00
Robert Maynard
bd1ff7a5ac Allow vtkm errors to properly work with shared libraries. 2017-01-16 09:17:38 -05:00
Robert Maynard
5921c8d9b8 vtkm_cont now contains explicit instantiations of common StorageBasic types. 2017-01-16 09:17:38 -05:00
Robert Maynard
0a34a4027c vtkm_cont now contains explicit instantiations of common ArrayHandles.
To help reduce compile and library size the vtkm_cont library now holds
common instantiations.
2017-01-16 09:17:38 -05:00
Robert Maynard
3c07c77fa7 Introduce vtkm_cont library to reduce weak vtable creation.
This reduces the number of weak vtables vtkm generates, resulting in
a reduction of binary sizes for projects that include vtkm classes in
multiple translation units.
2017-01-16 09:17:38 -05:00
Robert Maynard
d8d6fd1741 StorageTags are now always exported to resolve future dynamic_cast issues.
Class that need to be passed across dynamic library boundaries such as
DynamicArrayHandle need to be properly export. One of 'tricks' of this
is that templated classes such as PolymorphicArrayHandleContainer need
the Type and Storage types to have public visibility.

This makes sure that all vtkm storage tags have public visibility so
in the future we can transfer dynamic array handles across libraries.
2017-01-16 09:17:38 -05:00
Robert Maynard
a16f9fedbe Reduce the amount of vtables that vtkm::rendering produce. 2017-01-16 09:17:38 -05:00
Robert Maynard
4387dcf0f8 Introduce macros VTKM_ALWAYS_EXPORT and VTKM_NEVER_EXPORT
These are designed so that we can safely export template classes from
multiple dynamic libraries and have them all resolve to the same
type at runtime
2017-01-16 09:17:38 -05:00
Patricia Kroll Fasel - 090207
fd7f34c95d Fix warnings 2017-01-12 15:44:41 -07:00
Patricia Kroll Fasel - 090207
0950af7aeb Compiler warnings 2017-01-12 14:35:34 -07:00
Patricia Kroll Fasel - 090207
834f81f622 Fix order on class members to match constructor initialization -Wreorder
Make all non-templated PrintVectors methods inline
2017-01-12 13:57:04 -07:00
Kenneth Moreland
713cf4228a Make it not possible to create a cell set without specifying num points
The CellSetExplicit and CellSetSingleType classes have an ivar that
marks the number of points. There were several instances of code
creating cell sets without specifying the number of points. This can be
very bad if subsequent code needs that information.
2017-01-12 13:02:10 -07:00
Patricia Kroll Fasel - 090207
6db0c4e763 PrintVectors.h must be in CMakeLists.txt. Problem with the
non-templated code it contains causing doubly defineds.
2017-01-12 10:52:48 -07:00
Patricia Kroll Fasel - 090207
b3b5149b28 Use cont/testing/MakeTestDataSet.h and add contour tree tests.
Remove worklet/contourtree/PrintVectors.h from CMakeLists.txt.
2017-01-12 10:40:29 -07:00
Robert Maynard
be1e6588c1 Merge topic 'correct_exclusive_scan_tbb_2017'
35585f39 Correct a bug in tbb scan exclusive that was found using tbb 2017.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !652
2017-01-12 11:25:34 -05:00
Patricia Kroll Fasel - 090207
bed40256c8 Fix compiler warnings. Fix case table operation to comply. 2017-01-11 14:02:32 -07:00
Robert Maynard
79b74ccd3c Merge branch 'gcc6_warnings' into 'master'
Fix warnings on GCC6.

See merge request !656
2017-01-11 15:37:30 -05:00
David Lonie
a771c72c84 Merge topic 'exception_hierarchy'
4a9b8b6f Inherit std::exception in vtkm::cont::Error.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !655
2017-01-11 15:28:14 -05:00
Robert Maynard
35585f39ba Correct a bug in tbb scan exclusive that was found using tbb 2017. 2017-01-11 14:10:49 -05:00
Robert Maynard
69006fba60 Merge topic 'TestingDeviceAdapter_warnings'
9335e75e Fix casting warnings in TestingDeviceAdapter.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !659
2017-01-11 10:50:41 -05:00
Kenneth Moreland
5e752a2396 Merge topic 'warnings-compiling-with-vtk'
f23ff9fa Fix warnings about assignment operators not being generated
7ec8c034 Remove warning about constant conditional in VTKM_ASSUME

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !657
2017-01-11 10:46:57 -05:00
Robert Maynard
9335e75e51 Fix casting warnings in TestingDeviceAdapter. 2017-01-11 09:47:24 -05:00
Patricia Kroll Fasel - 090207
9548441565 Fix compiler warnings and test errors before merge. 2017-01-10 16:52:59 -07:00
David C. Lonie
c928b14cfe Fix warnings on GCC6. 2017-01-10 14:22:22 -05:00
Kenneth Moreland
f23ff9fa49 Fix warnings about assignment operators not being generated
For some reason when VTK-m was being compiled as an accelerator in VTK,
Visual Studio 2013 gave a bunch of warnings about not being able to generate
assignment operators for many classes. This happened for classes with a
const ivar that could not be automatically set. (Automatic copy constructors
are fine on this count.) I'm not sure why these warnings did not happen
when just compiling VTK-m, nor am I sure why they were generated at all as
no code actually used the copy constructors.

This commit fixes the problems by adding a private declaration for assignment
operators that cannot be automatically created. No implementation is
provided, nor should any be needed.
2017-01-10 11:10:38 -07:00
Kenneth Moreland
7ec8c03489 Remove warning about constant conditional in VTKM_ASSUME
It is common practice to swallow a semicolon in a macro using a do/
while(false) loop that only executes once. However, the Visual Studio
2013 compiler was stupidly warning about having a constant expression
for the loop. Get around the problem by creating our own swallow
semicolon macros that disable this warning as necessary.
2017-01-10 10:40:17 -07:00
David C. Lonie
4a9b8b6f77 Inherit std::exception in vtkm::cont::Error.
Fixes #58.
2017-01-10 12:23:42 -05:00
Patricia Kroll Fasel - 090207
62a1cceea6 Add file that creates test data sets and use that instead for contour tree. 2017-01-09 15:50:23 -07:00
Patricia Kroll Fasel - 090207
f6140c39e2 Add LANL/LLC copyright notification. 2017-01-09 14:53:59 -07:00
Patricia Kroll Fasel - 090207
9412584bf2 First implementation of contour tree 2D and 3D, serial and cuda. 2017-01-09 13:54:47 -07:00
Robert Maynard
ad28ccad5a Update the default ARRAY_SIZE in TestingDeviceAdapter.
This will expose bugs inside the tbb backend. We had to use heap allocations
for test arrays, instead of stack as the new array increases started to
cause stack overflow on windows.
2017-01-09 13:41:21 -05:00
Robert Maynard
589285eb5e Merge topic 'correct_reduce_tbb'
a339f3ac Had to rewrite tbb reduce to correct all the problems.
0120157e Correct tbb reduction algorithm to be correct when using multiple threads.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !654
2017-01-05 09:25:23 -05:00
Robert Maynard
a339f3ac0e Had to rewrite tbb reduce to correct all the problems.
The previous implementation(s) didn't properly handle non identity
initial values properly.
2017-01-04 17:27:21 -05:00
Robert Maynard
0120157e2e Correct tbb reduction algorithm to be correct when using multiple threads. 2017-01-04 13:43:55 -05:00
Robert Maynard
f4ccd33588 Merge topic 'cuda_warnings_brought_up_from_vtk_bindings'
270ece24 Types and Matrix don't emit Wunused-value warnings from __builtin_expect
1052a715 ConnectivityPermuted explicitly suppress cuda host/device warnings
137dffb4 CellSetPermutation copy constructor to suppress cuda warnings.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !651
2017-01-03 12:37:17 -05:00
Robert Maynard
270ece24b3 Types and Matrix don't emit Wunused-value warnings from __builtin_expect
When using Types or Matrix with the nvcc compiler with Wunused-value
enabled you would get the following warning:
(__builtin_expect(!(rowIndex < (this,NUM_ROWS)), 0)) ?
__assert_rtn(__func__, "vtkm/Matrix.h", 86, "rowIndex < this->NUM_ROWS") :
((void)0);

This is solved by changing this->NUM_ROWS to just NUM_ROWS.
2017-01-03 11:05:25 -05:00
Robert Maynard
b5d4ccbb31 Merge topic 'tag_intersection'
4a870718 Fix a unused parameter warning in the UnitTestListTag

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !650
2017-01-02 13:23:36 -05:00
Robert Maynard
1052a71523 ConnectivityPermuted explicitly suppress cuda host/device warnings
The class can emit false positive warnings when being compiled with
cuda but SMP backends.
2017-01-02 11:38:05 -05:00
Robert Maynard
137dffb4a1 CellSetPermutation copy constructor to suppress cuda warnings.
Without an explicit copy constructor when cuda is used it generates a
copy constructor which is marked up as host/device and than emits warnings.
2017-01-02 11:29:32 -05:00
Robert Maynard
4a8707189a Fix a unused parameter warning in the UnitTestListTag 2017-01-02 10:39:41 -05:00
Robert Maynard
8828e8809f Merge topic 'tag_intersection'
c27bb01f Introduces ListTagUniversal which represents a list of everything.
9eb28841 vtkm::filter now deduces the subset of valid field types.
49c5e822 vtkm can now find the intersection of two ListTags.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !649
2017-01-01 13:35:58 -05:00
Robert Maynard
c27bb01f26 Introduces ListTagUniversal which represents a list of everything.
This makes the FilterTraits design simpler and easier to understand.
2016-12-30 15:44:21 -05:00
Robert Maynard
9eb288419e vtkm::filter now deduces the subset of valid field types.
Previously the ApplyPolicy logic was to use the filters
field set, and ignore the policy field set.

But this caused problems, as a filter couldn't express that
it was able to work on all valid types. This caused
certain complex types Vec of Vec's to fail to work properly,
and would cause compile use code paths that would never
be valid for a given policy.
2016-12-30 08:30:44 -05:00
Robert Maynard
49c5e8222e vtkm can now find the intersection of two ListTags.
This is the first step in having filters which obey both
the filters field policy and the users applied policy in
field what fields they can run on.
2016-12-29 17:18:29 -05:00
Robert Maynard
c064e0066c The Average filters now obey the policy when casting DynamicCellSets. 2016-12-29 11:19:30 -05:00
Robert Maynard
66fc2fa5d7 PointGradients now use the proper device adapter. 2016-12-23 15:11:56 -05:00
Robert Maynard
b0a6b17924 Add support for computing divergence to the gradient filter. 2016-12-23 09:34:33 -05:00
Robert Maynard
5eade282ee Restrict Gradient to scalar values and vec<3> of scalar values. 2016-12-23 09:03:35 -05:00
Kenneth Moreland
a52f2b5521 Merge topic 'transport-with-input-domain'
eb0691f5 Fix example data set for marching cubes test
a5817da4 Fix cow nose data set
02bf444d Test that the array transports check the size of input arrays
9ea10317 Add passing input domain to transport operator

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !643
2016-12-21 13:34:17 -05:00
Kenneth Moreland
eb0691f5df Fix example data set for marching cubes test
It was not properly setting the number of points.
2016-12-20 13:03:24 -07:00
Kenneth Moreland
a5817da438 Fix cow nose data set
It was not properly setting the number of points.
2016-12-19 17:59:16 -07:00
Kenneth Moreland
02bf444dc2 Test that the array transports check the size of input arrays 2016-12-19 17:30:41 -07:00
Kenneth Moreland
9ea10317d9 Add passing input domain to transport operator
Previously, the operator for a Transport class took the object being
transported to the execution environment and the size of the output
domain. This change also passes in the control-side argument for the
input domain. This will help check input array sizes as well as make
other potential transformations based on the input domain.
2016-12-19 17:03:15 -07:00
Robert Maynard
75288e2dd6 Correct location of VTKM_EXEC on Vorticity worklets 2016-12-19 16:08:47 -05:00
Robert Maynard
d5c80802c4 Merge topic 'add_vorticity_and_qcriterion'
f71f3ed0 Allow the gradient filter to compute Vorticity and QCriterion.
efb119ea Sort the worklet headers, as they should be in alphabetical order.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !638
2016-12-19 15:31:33 -05:00
Kenneth Moreland
078a2135e0 Merge topic 'msvc-20150-warning'
c9e146a2 Make literals for bits unsigned

Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !641
2016-12-16 16:14:28 -05:00
Kenneth Moreland
c9e146a2a1 Make literals for bits unsigned
Literals that are used to represent the bits of certain floating point
numbers (e.g. VTKM_NAN_BITS_64) are placed into unsigned integers before
converted to floating points. We ran into an example where the compiler
complained that a literal (specifically VTKM_NEG_INF_BITS_64) was
declared signed and was negative but then placed in an unsigned (64-bit)
integer. This should fix the problem by making the literal itself
unsigned.
2016-12-16 08:47:18 -07:00
Kenneth Moreland
1c3f1694ea Remove ambiguous CellSetExplicit constructor
CellSetExplicit had a constructor that took a single argument that is
the number of points in the data and another constructor that had two
arguments of the number of points and the name. The problem was that the
latter constructor had a default argument for the second argument. Thus,
if you tried to construct a CellSetExplicit with just the number of
points, it would fail to compile because the compiler would not know
which constructor to use.

Fix the issue by removing the single argument constructor.
2016-12-16 08:41:13 -07:00
Kenneth Moreland
4dd16c5bcb Merge topic 'check-cuda-errors'
98c8cb86 Do not attempt to execute CUDA kernels with no blocks
fda3ec71 Don't call std functions in math nonfinte functions for CUDA
55c159d6 Check error codes from CUDA functions

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !632
2016-12-16 10:27:06 -05:00
Kenneth Moreland
ce7d2190e4 Fix winding of hexahedrons
While writing a test I noticed that some of the MakeTestDataSet
hexahedrons had improper point ordering. It was close but backwards so
that all the faces pointed in instead of out.
2016-12-16 07:22:01 -07:00
Robert Maynard
f71f3ed011 Allow the gradient filter to compute Vorticity and QCriterion. 2016-12-16 08:42:16 -05:00
Kenneth Moreland
22b3a4a72a Add a small test data set
This new explicit data set example is interesting in that it contains
several different cell types (one of every 3D cell shape currently
defined).
2016-12-15 16:04:38 -07:00
Robert Maynard
efb119ead0 Sort the worklet headers, as they should be in alphabetical order. 2016-12-15 15:16:49 -05:00
Robert Maynard
649a07e05a Merge topic 'simplify_average_worklets'
f698a006 Simplify the implementation of the average worklets.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !637
2016-12-15 15:12:46 -05:00
Kenneth Moreland
98c8cb8657 Do not attempt to execute CUDA kernels with no blocks
I noticed that when I attempted to execute a CUDA kernel with 0 blocks,
it generated a CUDA error. The error did not really matter since nothing
was really supposed to run anyway. However, once we are careful about
checking CUDA errors, it will cause test failures and likely other
misdiagnoses.
2016-12-15 11:33:48 -07:00
Kenneth Moreland
fda3ec71c5 Don't call std functions in math nonfinte functions for CUDA
The math nonfinite check functions (like IsNan) were calling the std
equivalent function. This is fine for most architectures, but is not
available for devices under CUDA. Instead, call the CUDA version of
these functions when compiling with CUDA.

This fixes an issue that became apparent once we added CUDA error code
checking.
2016-12-15 10:40:17 -07:00
Robert Maynard
3c9b8f1793 Merge topic 'add_pointaverage_filter'
854e298b CellAverage filter now verifies the field is a point field.
b85cb2dd Add a PointAverage Filter.
daa75d74 Add a PointAverage worklet which is the twin to CellAverage.
839d8e83 CellAverage first control parameter is now the cellset.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !636
2016-12-15 12:18:57 -05:00
Robert Maynard
f698a006fc Simplify the implementation of the average worklets. 2016-12-15 09:10:53 -05:00
Robert Maynard
854e298be6 CellAverage filter now verifies the field is a point field. 2016-12-15 09:10:33 -05:00
Robert Maynard
b85cb2dd33 Add a PointAverage Filter. 2016-12-14 15:10:43 -05:00
Robert Maynard
daa75d744b Add a PointAverage worklet which is the twin to CellAverage. 2016-12-14 14:05:50 -05:00
Robert Maynard
839d8e8392 CellAverage first control parameter is now the cellset.
This was done so that it consistently matches other cell based worklets,
and the majority of examples inside the VTK-m Users Guide.
2016-12-14 14:04:57 -05:00
Robert Maynard
1c88307867 Merge topic 'add_gradient_filter'
eba19df3 Add a filter that handles all the gradient computations.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !635
2016-12-14 13:07:04 -05:00
Kenneth Moreland
55c159d6f0 Check error codes from CUDA functions
Most functions in the CUDA runtime API return an error code that must be
checked to determine whether the operation completed successfully. Most
operations in VTK-m just called the function and assumed it completed
correctly, which could lead to further errors. This change wraps most
CUDA calls in a VTKM_CUDA_CALL macro that checks the error code and
throws an exception if the call fails.
2016-12-14 10:43:44 -07:00
Robert Maynard
eba19df361 Add a filter that handles all the gradient computations. 2016-12-14 11:00:07 -05:00
Robert Maynard
ce651e479d Merge topic 'de_virtual'
8223eacc De-virtualize classes that have no need of a vtable.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !634
2016-12-14 08:34:47 -05:00
Robert Maynard
d1336c7f84 CellDerivativeFor2DCell now creates Space2D of the correct type.
Previously vtkm::Vec<> fields would construct Space2D types incorrectly
2016-12-12 13:26:16 -05:00
Robert Maynard
134f24496b Add a point gradient worklet. 2016-12-12 13:26:16 -05:00
Robert Maynard
06af2fbcbf Make it easier to construct ThreadIndices by hand.
In some cases it is necessary to construct ThreadIndices to manually
use vtkm::exec::Fetch. This now makes it possible.
2016-12-12 13:26:16 -05:00
Robert Maynard
60843cbab8 Allow people to get the portal from ExecutionWholeArray.
This is required when doing some optimizations to PointGradient.
2016-12-12 13:26:16 -05:00
Robert Maynard
e462d34c60 ExecutionWholeArray now has consistent ValueType defines. 2016-12-12 13:26:16 -05:00
Robert Maynard
9f2b680594 WholeCellSetIn now uses the proper fetch tag. 2016-12-12 13:26:16 -05:00
Robert Maynard
7d0a6d1975 Resolve errors building on windows. 2016-12-12 09:32:46 -05:00
Kenneth Moreland
50e0d05c3e Merge topic 'cell-face-edge'
eb7ea792 Add VTKM_EXEC_CONT to make_VecC
16970b57 Update ExternalFaces to use common face tables
91f98835 Add CellEdge functions
5ab43f8d Add CellFace functions

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !631
2016-12-10 10:12:01 -05:00
Ben Boeckel
e06a998e5b Merge topic 'render_1D'
8a93ecc4 code alignment tweaks.
6fa448b5 Remove the 1D camera. 1D plots will use a 2D camera.
52aa9b9a Fix some compile errors.
23d8d585 Add explicit 1D rendering. Also added some data model suport.
db522c4c Add GetCanvas calls to the mapper classes.
87b1cdca cleanup. Remove some compiler warnings.
d38e6270 Support for 1D rendering.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !616
2016-12-09 09:34:11 -05:00
Ben Boeckel
7d09befc9f Merge topic 'vector-gradients'
2e05c1dd Support derivatives of vectors
dd45b568 Vec of Vec fixes

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !630
2016-12-09 09:31:48 -05:00
Kenneth Moreland
eb7ea79241 Add VTKM_EXEC_CONT to make_VecC
I forgot to add the VTKM_EXEC_CONT modifier to the make_VecC methods,
and that causes them to fail on CUDA devices.

I wish the compiler would have said something. I was calling one of them
from a VTKM_EXEC method.
2016-12-08 17:24:07 -07:00
Robert Maynard
8223eacc34 De-virtualize classes that have no need of a vtable.
This is desired to help reduce the amount of weak vtables we generate,
for more information on why this is desired see:
https://gitlab.kitware.com/vtk/vtk-m/issues/103
2016-12-08 11:21:04 -05:00
Dave Pugmire
8a93ecc404 code alignment tweaks. 2016-12-06 10:36:28 -05:00
Kenneth Moreland
2e05c1dd03 Support derivatives of vectors
The cell derivative/gradient functions were all designed with scalars in
mind. Although the field type is templated and you could pass in a
vector type for the field, many of these classes would perform the
computation incorrectly. These changes specifically support derivatives
of vector types.
2016-12-05 23:04:35 -07:00
Kenneth Moreland
16970b571e Update ExternalFaces to use common face tables 2016-12-05 22:48:45 -07:00
Kenneth Moreland
91f9883599 Add CellEdge functions
These provide the general ability to get the edges for each cell type.
2016-12-05 22:48:44 -07:00
Kenneth Moreland
5ab43f8d9e Add CellFace functions
These provide the general ability to get the faces for each cell type.
2016-12-05 22:48:44 -07:00
Kenneth Moreland
b76280c849 Merge topic 'vec-c'
f53cd748 Add VecC and VecCConst structs

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !627
2016-12-06 00:45:25 -05:00
Kenneth Moreland
dd45b5684b Vec of Vec fixes
Fix a couple of places where having a Vec of a Vec (for example
vtkm::Vec<vtkm::Vec<vtkm::Float32, 3>, 3>) did not work as it should.

One major place was in the test_equal function used in the testing
framework. If given a Vec of Vec, it would try to convert the Vec to
Float64 and fail. Now the comparison decends as many levels as need be.

The second place was in TypeTraits::ZeroInitialization() for all Vec
types. Originally it initialized the Vec using the default constructor
of the component type. This works fine when the component type is a
standard type, but if the component type is itself a Vec, then the
default constructor does not actually set any of the sub components.
Solved the issue by using the result of ZeroInitialization for the
component type, which will work for basic types and Vecs and anything
else supported by TypeTraits.
2016-12-05 14:41:33 -07:00
Robert Maynard
c6088fa539 Merge topic 'cellset_explicit_CellToPoint_constant_shape_storage'
80df037f CellSetExplicit Reverse Connectivity is abit more efficient.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !623
2016-12-02 15:30:01 -05:00
Dave Pugmire
6fa448b5a5 Remove the 1D camera. 1D plots will use a 2D camera. 2016-12-02 10:26:36 -05:00
Kenneth Moreland
f53cd748f3 Add VecC and VecCConst structs
These structs behave much like Vec except that they work on a short C
array given to them rather than having the statically sized short array
defined within.

I expect to use this in the short term to help implement cell face
classes, but there are probably many other uses.
2016-12-01 15:04:22 -06:00
Kenneth Moreland
401dc28008 Merge topic 'adjust-test-equal'
ec5fd175 Modify test_equal for values close to zero

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !629
2016-12-01 11:45:10 -05:00
Dave Pugmire
8032fdf6b8 Merge branch 'VTKRect_reader' into 'master'
Add VTK reader for rectilinear grids.

Reader for VTK Rectilinear grids.

@kmorel 
@robertmaynard 

Ok if I merge this?

See merge request !624
2016-12-01 10:43:19 -05:00
Robert Maynard
c4874340e5 Merge topic 'policy-inherit-defaults'
eb26b88c Change DefaultPolicy to PolicyDefault
bb32e408 Allow all policies to inherit defaults

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !619
2016-12-01 08:21:03 -05:00
Robert Maynard
a74bab02f4 Merge topic 'allow_reduction_to_different_T_type'
b97b4cc7 Allow thrust::reduce to work when iterator and initial value types differ.
64bcc343 Refactor MinAndMax to use vtkm::Vec<T,2> instead of Pair.
8d60ed57 Refactor MinAndMax to be a shared binary operator.
18375b54 Update Bound computations to always use a single Reduce call
2cfc9743 Reduce can support reduce to a T type that isn't the arrayhandles T type.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !614
2016-12-01 07:56:30 -05:00
Robert Maynard
f3c2f67660 Merge topic 'static-assert-windows'
349799fa Fix static assert for visual studio

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !618
2016-12-01 07:55:38 -05:00
Kenneth Moreland
ec5fd17536 Modify test_equal for values close to zero
I noticed the UnitTestTransform3D test failed using the random seed
1480544620. On closer inspection, I found that the issue was with the
comparison of two numbers close to 0. The numbers were just above the
threshold, but their difference was not quite enough to make the ratio
below the threshold.

After reviewing some other floating point comparisons, they seem to be
more forgiving of numbers close to 0. Thus, I changed this comparison to
pass if the difference between the numbers was below the threshold.

Because this makes the comparison a lot more forgiving for small
numbers, I lowered the default threshold by an order of magnitude. So
far it looks like the tests are passing, but we should look out for
occasional failures.
2016-11-30 21:57:15 -06:00
Robert Maynard
2b5b2ab1f8 Make sure FunctorsGeneral doest produce warnings when parsed by nvcc. 2016-11-30 17:13:12 -05:00
Robert Maynard
213188b2c3 Properly use CUDA signbit functions. 2016-11-30 15:36:51 -05:00
Robert Maynard
295de14deb Merge topic 'consistently_guard_around_windows_h'
6b1094c7 Consistently include windows.h by making a wrapper header.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !620
2016-11-30 13:56:49 -05:00
Dave Pugmire
cef40f853e Fix compiler warnings. 2016-11-30 12:52:40 -05:00
Dave Pugmire
3046d45900 Fix some compiler warnings.
Add another rectilinear test.
2016-11-30 12:41:59 -05:00
Dave Pugmire
8383f21a81 Add VTK reader for rectilinear grids. 2016-11-30 10:39:32 -05:00
Robert Maynard
80df037f73 CellSetExplicit Reverse Connectivity is abit more efficient.
Both computing the reverse connectivity and also the total footprint are now
smaller.
2016-11-29 14:17:02 -05:00
Dave Pugmire
52aa9b9ad0 Fix some compile errors. 2016-11-29 09:33:46 -05:00
Dave Pugmire
23d8d585a0 Add explicit 1D rendering. Also added some data model suport. 2016-11-28 16:07:40 -05:00
Robert Maynard
6b1094c767 Consistently include windows.h by making a wrapper header.
We previously included windows.h in numerous locations using different
techniques to guard against bringing in parts of the file that are bad
(min/max macros, etc). This solves the problem by consistently using
vtkm/internal/Windows.h to setup everything.
2016-11-28 09:54:37 -05:00
Dave Pugmire
db522c4cd1 Add GetCanvas calls to the mapper classes. 2016-11-28 09:41:01 -05:00
Robert Maynard
b97b4cc7ef Allow thrust::reduce to work when iterator and initial value types differ.
natively thrust::reduce is unable to handle the use case where the
iterator type and the initial value/return value are two different
types. We use array handle cast to work around this problem when
we detect this usecase.
2016-11-25 13:11:19 -05:00
Robert Maynard
64bcc34389 Refactor MinAndMax to use vtkm::Vec<T,2> instead of Pair.
The types are the same which makes Vec a more suitable container.
2016-11-25 13:11:19 -05:00
Robert Maynard
8d60ed57ad Refactor MinAndMax to be a shared binary operator. 2016-11-25 11:40:46 -05:00
Robert Maynard
18375b5424 Update Bound computations to always use a single Reduce call 2016-11-25 11:40:46 -05:00
Robert Maynard
2cfc9743e3 Reduce can support reduce to a T type that isn't the arrayhandles T type.
This has been done so that operations such as computing the Min/Max of
an array can be done in a single reduce step.
2016-11-25 11:40:46 -05:00
Robert Maynard
b470af4cc3 Merge topic 'render-no-opengl'
767fc9c6 Do not declare OpenGLHeaders.h when there is no OpenGL
10d9dd44 Remove GLEW_LIBRARIES from Rendering module libraries
0772a157 Revert "Don't build vtkm_rendering if we can't find opengl"

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !617
2016-11-25 10:58:20 -05:00
Robert Maynard
53f4e6016d Merge topic 'tbb_parallel_reduce'
c8da8ae3 TBB now uses tbb::parallel_reduce for reductions.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !615
2016-11-25 10:58:03 -05:00
Kenneth Moreland
292500becf Merge topic 're-add-test-builds'
5a444af6 Make ArrayPortalStreaming methods CONT
e1a9264d Re-enable test builds

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !609
2016-11-23 17:54:13 -05:00
Kenneth Moreland
eb26b88cec Change DefaultPolicy to PolicyDefault
This is more in line with the VTK-m coding standards.
2016-11-23 14:05:16 -07:00
Kenneth Moreland
bb32e40804 Allow all policies to inherit defaults
Previously, all declared policies had to implement every tag required by
the policy, even if it was the same as the default. In addition to being
annoying, this makes us less forward compatible because if we add a new
item to the policy any unchanged policy would become incorrect.

This change moves the default policy declarations from the default
policy to PolicyBase. The default policy inherits all of them without
any change. Other policies need only override those that are different
than the default.
2016-11-23 14:00:49 -07:00
Kenneth Moreland
767fc9c659 Do not declare OpenGLHeaders.h when there is no OpenGL 2016-11-23 13:17:33 -07:00
Kenneth Moreland
349799fa81 Fix static assert for visual studio
For some reason on my Visual Studio 2013 the definition of
VTKM_STATIC_ASSERT (without the message) did not report where the actual
error message happened. This change seems to get Visual Studio to report
the location of the failed assert with a reasonable message.
2016-11-23 13:10:56 -07:00
Robert Maynard
c8da8ae354 TBB now uses tbb::parallel_reduce for reductions.
This results in a reductions under tbb have a 2x to 4x performance increase.
2016-11-23 14:32:18 -05:00
Kenneth Moreland
0772a157fd Revert "Don't build vtkm_rendering if we can't find opengl"
There are many rendering classes that do not rely on OpenGL. We really
want to be able to use this functionality on systems that do not have
OpenGL. That is a big part of the point.

This reverts commit c75feb74bb6add43e1be9a42a9bf4bf205b97c39.
2016-11-23 12:14:44 -07:00
Kenneth Moreland
4c0f909a2f Merge topic 'cast-error'
02e37f4b Fix an issue with casting a float to an int too soon

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !613
2016-11-23 13:57:04 -05:00
Dave Pugmire
87b1cdcacf cleanup. Remove some compiler warnings. 2016-11-23 13:45:03 -05:00
Dave Pugmire
d38e627057 Support for 1D rendering. 2016-11-23 10:48:22 -05:00
Kenneth Moreland
e43acbac28 Fix issue with private class in CUDA
CUDA has some strange rules about using private classes and anonymous
namespaces. For whatever reason, recent changes have introduced such an
issue. When compiling on CUDA, expose the problematic class. It is
testing code, so it does not matter much.
2016-11-22 17:31:50 -07:00
Kenneth Moreland
b142a8c032 Fix change in new Gradient worklet
Didn't catch the change in the last rebase.
2016-11-22 17:24:10 -07:00
Kenneth Moreland
c6cd9d02ba Implement CleanGrid filter 2016-11-22 17:16:49 -07:00
Kenneth Moreland
ce338d1484 Add a worklet for copying cell sets 2016-11-22 17:15:10 -07:00
Kenneth Moreland
3f9a1edb7b Change CellShapeTag*:Id type to vtkm::UInt8
The shape array in CellSetExplicit was changed a while ago to be of type
vtkm::UInt8. However, the shape types remained at vtkm::IdComponent. I
can think of no reason why they should not be the same type.
2016-11-22 17:12:54 -07:00
Kenneth Moreland
b175468082 Add RemoveUnusedPoints class
RemoveUnusedPoints contains a couple of worklets and some helper methods
to compact the points in a CellSetExplicit. This is helpful when you
have an operation that creates new cells but might not use all the
original points of the inputs.
2016-11-22 17:11:52 -07:00
Kenneth Moreland
63c748f049 Implement ArrayHandleGroupVecVariable
This is a fancy array handle that can group entries in another array by
arbitrary amounts. This allows us to implement input and output arrays
with a different sized Vec for each instance. This is necessary for
generating new topologies with cells of different types.
2016-11-22 17:10:09 -07:00
Kenneth Moreland
b3d0e1f99b Move VecFromPortal classes to vtkm package
These Vec-like objects can be generally usable in both the control and
execution environments.
2016-11-22 17:04:55 -07:00
Kenneth Moreland
02e37f4bc5 Fix an issue with casting a float to an int too soon
There was a case of bad casting where a Float32 that should be in the
range between 0 and 1 was cast to an Id and then multiplied by the size
of an array. The intention is to get a proportional index into the
array, but because the float was cast to an int first, you get either
the first or last index.

Instead, first cast the size of the array to a Float32, multiply it by
the fraction, and then cast back to an Id. That should give the desired
effect.
2016-11-22 15:34:56 -07:00
Robert Maynard
719a8bd35d Merge topic 'nvcc_version_check'
4de37559 fix a pragma location bug
9048e0ba detect cuda versions and decide if to put a diagnostic inside or outside of a class.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !611
2016-11-16 19:21:31 -05:00
Samuel Li
4de37559fd fix a pragma location bug 2016-11-16 09:55:22 -08:00
Kenneth Moreland
5a444af67b Make ArrayPortalStreaming methods CONT
Changing the macros of the methods of ArrayPortalStreaming to be only
for CONT (the control environment) rather than both CONT and EXEC (both
the control and export environments). ArrayPortalStreaming is really
only used in the control environment and passed to the default transport
where the data is copied to the execution environment.

My hope is that this change will eliminate some rather odd and non-
descriptive warnings on the dashboard.
2016-11-16 09:55:15 -07:00
Samuel Li
9048e0bac1 detect cuda versions and decide if to put a diagnostic inside or outside of a class. 2016-11-15 22:43:40 -08:00
Kenneth Moreland
fdaccc22db Remove exports for header-only functions/methods
Change the VTKM_CONT_EXPORT to VTKM_CONT. (Likewise for EXEC and
EXEC_CONT.) Remove the inline from these macros so that they can be
applied to everything, including implementations in a library.

Because inline is not declared in these modifies, you have to add the
keyword to functions and methods where the implementation is not inlined
in the class.
2016-11-15 22:22:13 -07:00
Robert Maynard
8861beda4b Merge topic 'add_vector_cell_gradient'
8dadf560 Add in support for vector fields to Gradient worklet.
d53f43fb CellDerivaties now support computing the derivatives of vtkm::Vec fields.
b4378c85 Allow vtkm::Matrix to support T values which are vtkm::Vec.
9caabf97 vtkm::Vec now supports +=, -=, *=, and /=.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !608
2016-11-15 23:39:10 -05:00
Robert Maynard
8dadf560cd Add in support for vector fields to Gradient worklet. 2016-11-15 18:54:53 -05:00
Robert Maynard
d53f43fb48 CellDerivaties now support computing the derivatives of vtkm::Vec fields. 2016-11-15 18:54:53 -05:00
Robert Maynard
b4378c8546 Allow vtkm::Matrix to support T values which are vtkm::Vec. 2016-11-15 18:54:53 -05:00