Commit Graph

3402 Commits

Author SHA1 Message Date
Robert Maynard
12b5aac015 Leverage try_executes perfect forwarding in ArrayRange 2018-02-14 09:25:02 -05:00
Thomas Otahal
d7a98057b1 Move kxsort.h inside VTKM_THIRDPARTY_PRE_INCLUDE 2018-02-13 15:27:59 -07:00
Thomas Otahal
f53d0789b0 Removed debug output statements. 2018-02-13 12:32:53 -07:00
Thomas Otahal
7c0b09deb4 Removed Gnu specific __attribute__ macro for unused variables
Replaced with (void)parameter
2018-02-13 11:36:47 -07:00
Thomas Otahal
773897655c Added missing files from Rob's patch. 2018-02-13 09:23:10 -07:00
Thomas Otahal
84de519250 Applied patch from Rob Maynard
This makes finding the implementation and explicit instantiations easier.
It also removes most macro usage from RadixSort.
2018-02-13 09:16:45 -07:00
luz.paz
9b4306187c Follow-up typo 2018-02-12 20:48:57 -05:00
luz.paz
366377ad64 fixed revision 2018-02-09 15:00:44 -05:00
luz.paz
1e69b1a053 Follow-up misc. typos
Found via `codespell -q 3`
2018-02-09 15:00:44 -05:00
Kenneth Moreland
6a908cc9da Merge topic 'fix-special-jacobian-cases'
43da67f7 Fix Jacobian cases for wedge and pyramid

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Sujin Philip <sujin.philip@kitware.com>
Merge-request: !1077
2018-02-08 11:56:23 -05:00
Sujin Philip
fd4a37a062 Merge topic 'update-probe'
f7f08d3d Update probe filter

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !1081
2018-02-08 09:58:48 -05:00
Thomas Otahal
9cf12c48ce Merge branch 'master' into cpu_parallel_radix_sort 2018-02-07 10:23:54 -07:00
Mark Kim
af7a4a7805 Stop GetStorage copy. 2018-02-06 16:13:41 -05:00
Sujin Philip
f7f08d3db2 Update probe filter
In the code path for probing on to uniform points, the code to compute the points
inside a cell has been made more accurate.
2018-02-06 14:21:01 -05:00
Sujin Philip
fdfd62d43a Improve WorldCoordinatesToParametricCoordinates
1. Add a 'FastVec' class that copies input vector types to an efficient
   Vec type on the stack. Specializations avoid copies of already efficient
   types.
2. Update 'WorldCoordinatesToParametricCoordinates' functions to utilize the
   'FastVec' class. This should improve performance when the passed in
    vectors are of slow types like 'vtkm::VecFromPortalPermute'.
3. Since most input Vec types will convert to the same 'FastVec' type this
   also reduces the code generations. Some code refactoring was required for
   this.
2018-02-05 15:52:16 -05:00
Robert Maynard
e70e6ebb82 Merge topic 'cuda_doesnt_use_thrust_pointer'
22ea5833 iVTK-m CUDA backend doesn't use thrust::cuda::pointer any more.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Allison Vacanti <allison.vacanti@kitware.com>
Merge-request: !1076
2018-02-02 15:28:22 -05:00
Robert Maynard
22ea58335a iVTK-m CUDA backend doesn't use thrust::cuda::pointer any more.
This was removed as CUDA 9.0 on MSVC has issues where CUB/Thrust
would fail to compile when given these types.
2018-02-02 08:33:17 -05:00
Robert Maynard
d1c25ea127 Merge topic 'correct_scalars_to_colors_range_no_updating'
67e6a5c3 Make sure ScalarsToColors actually updates the Range it stores

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1079
2018-02-02 08:32:06 -05:00
Robert Maynard
67e6a5c36a Make sure ScalarsToColors actually updates the Range it stores 2018-02-01 10:28:38 -05:00
Kenneth Moreland
43da67f747 Fix Jacobian cases for wedge and pyramid
When the implementation for the cell derivative functions was made, the
special cases for creating the Jacobian for wedge and pyramid cell
shapes was not working. Instead, it just used the hexahedra case for a
degenerate cell. This fixes the issues with the special cases.

There were multiple issues to be fixed. There were some complaints
by the compiler about types. There was a mistake in the pyramid table.
But the biggest issue was a problem with macro expansions. It was
the classic tale of forgetting that you have to encase parameters
in parenthesis to make sure that operator precedence comes out as
expected.
2018-01-31 15:45:12 -07:00
Thomas Otahal
5e72f96b99 CPU parallel radix sorting
Created split implementation. Parallel radix
sort calls moved to vtkm_cont library.

Added key value radix sorts. SortByKey will invoke
radix sort when the key is a fundamental C++ numeric
or character type.

Added fast path for vtkm::SortLess and vtkm::SortGreater
calls to Sort and SortByKey.
2018-01-31 14:08:14 -07:00
Matt Larsen
d476adf1f6 fixing issue with volume renderer where initial samples were outside the cell set 2018-01-30 14:46:34 -08:00
Sujin Philip
9e466f8cd2 Merge topic 'add-probe'
34bae569 Add Probe worklet and filter
4cd306ea Fix a bug in CellLocator
cf1957ca Add make_VecFromPortalPermute

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !1064
2018-01-30 15:08:49 -05:00
Robert Maynard
d70c31d449 Serial ScanInclusive now makes sure to always use WrappedBinaryOperator.
By using WrappedBinaryOperator we will not get warnings on vs2017 when
scanning <32bit arrays, and at the same time also properly support
fancy arrays.
2018-01-30 11:57:13 -05:00
Sujin Philip
34bae5690d Add Probe worklet and filter 2018-01-30 10:43:18 -05:00
Sujin Philip
5cd37de408 Merge topic 'remove-unused-file'
2afaaa04 Remove unused file vtkm/exec/ImplicitFunction.h

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !1069
2018-01-30 10:03:42 -05:00
Robert Maynard
82dfc0e690 correct shadow warning in ConnectivityTracer 2018-01-30 08:49:49 -05:00
Robert Maynard
0c5a087e41 Merge topic 'dont_allow_rvalue_tasks'
ef611239 Don't allow DeviceTaskTypes to construct tasks from rvalues.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1062
2018-01-30 08:37:29 -05:00
luz.paz
45239449a6 More typos
these need a little  more review.
2018-01-30 06:51:47 -05:00
luz.paz
80b11afa24 Misc. typos
Found via `codespell -q 3` via downstream VTK
2018-01-30 06:51:47 -05:00
Matt Larsen
cee6e243fb Merge topic 'annotations_enhancement'
c6565cde correcting compile error with CanvasGL
c57fad48 Depth no considered with annotations. Fix for volume renderer. Consistent color blending.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1068
2018-01-29 19:40:50 -05:00
Matt Larsen
c6565cdecb correcting compile error with CanvasGL 2018-01-29 13:41:06 -08:00
Sujin Philip
2afaaa04d9 Remove unused file vtkm/exec/ImplicitFunction.h 2018-01-29 15:23:49 -05:00
Matt Larsen
c57fad48ee Depth no considered with annotations. Fix for volume renderer. Consistent color blending. 2018-01-29 11:39:21 -08:00
Sujin Philip
b5f71644fe Add IsType to ArrayHandleVirtualCoordinates
Makes the interface compatible with DynamicArrayHandle.
2018-01-25 11:02:52 -05:00
Matt Larsen
dd3901094d Merge topic 'colorbar_enhancement'
b420a4b3 fixing typo
2bb64e65 fixing opacity for veritical bar
80081f2a adding finer grain control over color bar and scalar field label

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1063
2018-01-23 15:42:22 -05:00
Thomas Otahal
de687b619e Merge branch 'master' into cpu_parallel_radix_sort 2018-01-22 10:03:30 -07:00
Sujin Philip
4cd306ea2c Fix a bug in CellLocator
Cell dimension for structured data is computed by subtracting Point dimensions
by vtkm::Id3(1). This fix prevents a dimension component from being less than
1 for 2D and 1D cases.
2018-01-19 10:48:39 -05:00
Sujin Philip
cf1957ca4e Add make_VecFromPortalPermute 2018-01-19 10:48:39 -05:00
Matt Larsen
b420a4b3d2 fixing typo 2018-01-18 15:01:15 -08:00
Matt Larsen
2bb64e6598 fixing opacity for veritical bar 2018-01-18 14:57:40 -08:00
Matt Larsen
80081f2a1b adding finer grain control over color bar and scalar field label 2018-01-18 13:21:39 -08:00
Robert Maynard
ef611239f6 Don't allow DeviceTaskTypes to construct tasks from rvalues. 2018-01-18 13:55:37 -05:00
Li-Ta Lo
8622a2423c Merge topic 'connected_component'
bdb9c37e update based on issues pointed out by Robert
a713a0d8 Generalize and documentation for DeviceAdapterAlgorithm::Transform
29232c49 Revert un-intended change to examples
7ef956a9 Merge branch 'master' into connected_component
a9ed1ecf add CMakeLists.txt for header files
ba3cba64 update copyright statements
aa96874e Merge branch 'connected_component' of gitlab.kitware.com:ollielo/vtk-m into connected_component
2f07119e Merge branch 'master' into connected_component
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !1044
2018-01-17 15:31:10 -05:00
Li-Ta Lo
bdb9c37ec4 update based on issues pointed out by Robert 2018-01-17 11:12:32 -07:00
Li-Ta Lo
a713a0d889 Generalize and documentation for DeviceAdapterAlgorithm::Transform
Generalize DeviceAdapterAlgorithm::Transform to accept input array of different value and storage type.
Add doxygen documentation in DeviceAdapterAlgorithm.h
2018-01-16 14:43:31 -07:00
Robert Maynard
067dad41df Add ScalarsToColors worklet(s)
The ScalarsToColors is the first step in reproducing the color
capability that exists in VTK. The next step after this is to
provide a comparable lookup table.
2018-01-16 13:03:41 -05:00
Robert Maynard
5ecf2d1187 vtkm::rendering has more compilation units to help out 32bit compilers
Visual Studio default toolset uses 32bit executables for compiling which
means that if it uses more than 4GB of memory per instance it crashes.
By moving the ConnectivityTracer into a separate compilation unit we
can help out the compiler.

This also improved compilation times and library size:

Old:
build time (j8): 48.62 real
lib size: 6.2MB

New:
build time (j8): 41.31 real
lib size: 5.0MB
2018-01-16 10:20:15 -05:00
Robert Maynard
548e9467d3 Merge topic 'vs2017_warnings'
545db0c7 Correct std::tolower warnings under MSVC2017.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1057
2018-01-15 17:31:00 -05:00
Robert Maynard
545db0c7bc Correct std::tolower warnings under MSVC2017.
Using std::tolower with std::string actually can cause undefined behavior,
and only MSVC 2017 looks to complain about it. You can find more
information on the exact reason at: http://en.cppreference.com/w/cpp/string/byte/tolower
2018-01-15 16:08:15 -05:00
Robert Maynard
65d74d8512 Merge topic 'correct_bad_include_guards'
96ccf14c Correct bad formatting in some vtkm::cont headers

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Utkarsh Ayachit <utkarsh.ayachit@kitware.com>
Merge-request: !1056
2018-01-15 11:43:22 -05:00
Robert Maynard
96ccf14c73 Correct bad formatting in some vtkm::cont headers 2018-01-15 10:45:16 -05:00
Sujin Philip
8f78aa739d Add CellLocator
Add a general cell locator that has an optimized path for uniform grid
datasets and uses CellLocatorTwoLevelUniformGrid for all other
dataset types.
2018-01-12 10:16:26 -05:00
Li-Ta Lo
7ef956a934 Merge branch 'master' into connected_component 2018-01-11 09:10:37 -07:00
Sujin Philip
3de1717ba8 Merge topic 'virtual-coordinates'
70fcd1d1 Update CoordinateSystem to use the Virtual Array
950b12b1 Add ArrayHandleVirtualCoordinates
a4d0b57b Make ForEachValidDevice internal
59dc78fd Add ErrorBadDevice
4810cef7 Field::SetData should accept any ArrayHandle type

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !1021
2018-01-10 14:32:29 -05:00
Thomas Otahal
0d5deec473 Merge branch 'master' into cpu_parallel_radix_sort 2018-01-10 08:42:49 -07:00
Sujin Philip
70fcd1d1cc Update CoordinateSystem to use the Virtual Array 2018-01-10 10:19:19 -05:00
Thomas Otahal
250888f7af CPU parallel radix sorting
Parallel radix sorting will be invoked in DeviceAdapterAlgorthmTBB.h when
the input is ArrayHandle<T, vtkm::cont::StorageTagBasic> where T is one of
the following basic C++ types:

unsigned int
unsigned short int
unsigned long int
unsigned long long int
unsigned char
char16_t
char32_t
wchar_t
char
short
int
long long
signed char
float
double

If a comparison operator is provided, it must be type std::less<T> or std::greater<T>.

Radix sort implementation is Satish parallel radix sort as documented in the
following citation:

  Fast sort on CPUs and GPUs: a case for bandwidth oblivious SIMD sort.
    N. Satish, C. Kim, J. Chhugani, A. D. Nguyen, V. W. Lee, D. Kim, and P. Dubey.
    In Proc. SIGMOD, pages 351–362, 2010

Implementation is based on Takuya Akiba's GitHub source code with the following
changes:

   - Changed parallel threading from OpenMP to TBB tasks
   - Removed pair sorting
   - Added minimum threshold for parallel, will instead invoke serial radix sort (kxsort)
   - Added std::greater<T> and std::less<T> to interface for descending order sorts
   - Added can_use_parallel_radix_sort<T, F>() function to determine if parallel radix sorting
     is possible for type T and compare function F (fallback is std::sort() if not possible)
   - Added linear scaling of threads used by the algorithm for more stable performance
     on machines with lots of available threads (KNL and Haswell)

Added kxsort (serial MSD radix sort by Dinghua Li via GitHub) implementation without modification.
2018-01-10 07:28:21 -07:00
Robert Maynard
d07c696b3c vtkMath.h now opts out of clang-format to make updates through pyexpander easy 2018-01-10 08:38:14 -05:00
Sujin Philip
950b12b1f2 Add ArrayHandleVirtualCoordinates 2018-01-09 17:23:41 -05:00
Sujin Philip
a4d0b57ba2 Make ForEachValidDevice internal
* Add FindDeviceAdapterTagAndCall
* Add support for multiple arguments to be passed to the functor in
  'ForEachValidDevice' and 'FindDeviceAdapterTagAndCall'.
2018-01-09 17:23:26 -05:00
Sujin Philip
59dc78fd29 Add ErrorBadDevice 2018-01-09 14:25:47 -05:00
Sujin Philip
4810cef78f Field::SetData should accept any ArrayHandle type 2018-01-09 14:25:47 -05:00
Robert Maynard
cda854501d Merge topic 'better_FloatingPointReturnType'
a9e64c4b FloatPointReturnType is float if 'T' is < 32bytes instead of being double.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Acked-by: Thomas Otahal <tjotaha@sandia.gov>
Merge-request: !1048
2018-01-08 15:42:18 -05:00
Kenneth Moreland
fe9594c1d1 Add hint to read source code for help
In trying to give error diagnostics with template definitions of invalid
types, the user encounters some pretty confusing error messages at
first. There is no way to get the compiler to give exactly the
diagnostics we want in a nice readable error message, so we are putting
some verbose instructions as comments in the code. However, a user might
not know to look at the source code since the error happens deep in an
unfamiliar (and complicated) class. Thus, add (yet another) error at the
front that gives a (hopefully) clear indication to look at the source
code for help in understanding the errors.
2018-01-08 10:53:44 -07:00
Kenneth Moreland
c3889a1a67 Give better error reporting when an Invoke parameter is wrong
When one of the parameters to DispatcherBase::Invoke is incorrect, you
get an error in a strange place. It is deep in a call stack using some
heavily templated types rather than where the Invoke is actually called.

Formerly, the code was structured to give a very obfuscated error
message. Try to make this easier on users by first adding helpful hints
in the code around where the error is to explain why the error occured
and helpful advice on how to track down the problem. Second, reconfigure
the static_assert so that the compiler gives a readable error message.
Third, add some auxiliary error messages that provide additional
information about the types and classes involved in the error.
2018-01-08 10:53:43 -07:00
Matthew Letter
f1d351f249 Updated FunctionInterfaceDetailPre.h based on pyexpander output
Updated FunctionInterfaceDetailPre.h based on pyexpander output after reverting the changes that were made to math.h
2018-01-04 16:00:46 -07:00
Matthew Letter
e90dfd932f Merge branch 'increase-worklet-arguments' of https://gitlab.kitware.com/mletter1/vtk-m into increase-worklet-arguments 2018-01-04 15:37:07 -07:00
Matthew Letter
172a1ba028 Merge branch 'master' of https://gitlab.kitware.com/vtk/vtk-m into increase-worklet-arguments 2018-01-04 15:35:26 -07:00
Matthew Letter
104f5418e8 Revert "updated based on pyexpander output"
This reverts commit 6908952f597cba945245349734790bad81823022
2018-01-04 17:28:33 -05:00
Kenneth Moreland
2b5e74c7d1 Update Math.h.in to recent changes
There were some recent changes to supress some CUDA errors in (among
many other places) some Math.h functions. These changes were done to
Math.h, but they also need to be reflected in Math.h.in so we can
continue to mainting the automatically generated functions.
2018-01-04 15:14:40 -07:00
Matthew Letter
6908952f59 updated based on pyexpander output 2018-01-04 13:22:14 -07:00
Matthew Letter
c3737c728e Merge branch 'master' into increase-worklet-arguments 2018-01-04 12:07:38 -07:00
Matthew Letter
d9c51d650d increased the number of arguments to worklets
increase the number of arguments to worklets that we support to 10 from 20.
2018-01-04 12:06:16 -07:00
Robert Maynard
a9e64c4ba8 FloatPointReturnType is float if 'T' is < 32bytes instead of being double.
Previously FloatPointReturnType would always be double for types that
are not float, which caused Int8/Int16 types to promote to double instead
of float.
2018-01-04 13:22:31 -05:00
Utkarsh Ayachit
842019023a Merge branch 'diy-as-3rd-party' into 'master'
DIY as 3rd party import

See merge request vtk/vtk-m!1047
2018-01-04 10:58:51 -05:00
Robert Maynard
91178ffc3f Merge topic 'vtk-m-dot-integer-promotion'
a8415d8e VTK-m now widens result type for UInt8/Int8/UInt16/Int16 input.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1045
2018-01-04 10:25:35 -05:00
Li-Ta Lo
a9ed1ecfcf add CMakeLists.txt for header files 2018-01-03 14:52:07 -07:00
Robert Maynard
a8415d8e37 VTK-m now widens result type for UInt8/Int8/UInt16/Int16 input.
When using vtkm::dot on narrow types you easily rollover the values.
Instead the result type of vtkm::dot should be wide enough to store the results
(32bits) when this occurs.

Fixes #193
2018-01-03 16:32:41 -05:00
Li-Ta Lo
ba3cba64e6 update copyright statements 2018-01-03 14:29:06 -07:00
Utkarsh Ayachit
37969e9602 Use VTKM_DIY() to include diy headers.
This makes it easier to mangle diy and support using external diy.
2018-01-03 14:53:37 -05:00
Utkarsh Ayachit
92cf8bf6d4 cmake: update cmake rules to use vtkm/thirdparty/diy. 2018-01-03 14:37:23 -05:00
Utkarsh Ayachit
ce193592c5 diy: update cmake rules.
DIY Thirdparty module now builds and also generates a
`vtkm/thirdparty/diy/Configure.h` which can in future support external
DIY.
2018-01-03 14:35:00 -05:00
Utkarsh Ayachit
a610329bb2 Merge branch 'upstream-diy' into diy-as-3rd-party
* upstream-diy:
  diy 2018-01-02 (aa778e24)
2018-01-03 14:06:35 -05:00
Utkarsh Ayachit
4339b4e2d2 Add update script for diy. 2018-01-03 14:06:14 -05:00
Utkarsh Ayachit
2aab6ba47e Add 3rd-party harness.
Add docs and scripts for 3rd party modules in VTK-m.

This is an import of scripts from VTK.
2018-01-03 13:58:59 -05:00
Li-Ta Lo
aa96874e82 Merge branch 'connected_component' of gitlab.kitware.com:ollielo/vtk-m into connected_component 2018-01-03 11:30:28 -07:00
Li-Ta Lo
2f07119e56 Merge branch 'master' into connected_component 2018-01-03 11:29:17 -07:00
Li-Ta Lo
746c98e6c8 fix merge conflict with master branch, update to control signature 2018-01-03 11:27:13 -07:00
Utkarsh Ayachit
cac71555e2 Use diy::reduce in MultiBlock reductions.
MultiBlock now uses `diy::reduce` for reductions rather than using proxy
collectives. To support using `diy::reduce` operations on a
vtkm::cont::MultiBlock, added AssignerMultiBlock and
DecomposerMultiBlock classes. This are helper classes that provide DIY
concepts on top of a existing MultiBlock.
2018-01-03 10:23:26 -05:00
Utkarsh Ayachit
e349dd0d1c Use default copy constructor.
vtkm::Bounds and vtkm::Range now uses default copy-constructor and
assignment operator. That way `std::is_trivially_copyable` succeeds for
these basic types.
2018-01-03 10:23:26 -05:00
Li-Ta Lo
2a9439ab1e Merge branch 'master' into connected_component 2018-01-02 17:59:19 -07:00
Li-Ta Lo
cf070581f3 Update UnitTestInnerJoin.cxx 2018-01-02 19:24:10 -05:00
Li-Ta Lo
6b0d73e16c Update UnitTestCellSetDualGraph.cxx 2018-01-02 19:23:32 -05:00
Li-Ta Lo
b4db862cd1 Update UnitTestCellSetConnectivity.cpp 2018-01-02 19:22:54 -05:00
Li-Ta Lo
4c2ef4f89b factor out CellSetConnectivity worklet, cleanup 2018-01-02 16:44:35 -07:00
Robert Maynard
a81919999a Merge topic 'vtkm_host_device_warnings'
93bc0198 Suppress false positive warnings about calling host device functions.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Sujin Philip <sujin.philip@kitware.com>
Merge-request: !1042
2018-01-02 14:10:54 -05:00
Robert Maynard
93bc0198fe Suppress false positive warnings about calling host device functions. 2018-01-02 10:40:49 -05:00
Sujin Philip
39dd8feeac Merge topic 'fix-ExecutionWholeArray-usage'
6b190312 Cleanup includes of ExecutionWholeArray.h
3e10b504 Replace ExecutionWholeArray with WholeArray

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1039
2018-01-02 10:32:43 -05:00
Sujin Philip
6b19031200 Cleanup includes of ExecutionWholeArray.h 2018-01-02 10:30:16 -05:00
Sujin Philip
3e10b504e6 Replace ExecutionWholeArray with WholeArray 2018-01-02 10:30:16 -05:00
Robert Maynard
437ba96448 Merge topic 'cross_dot_product'
18ece6dc Better type signatures.
2537a1cf Worklets for cross and dot product.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1040
2017-12-29 09:04:41 -05:00
Dave Pugmire
18ece6dce9 Better type signatures. 2017-12-29 06:48:39 -05:00
Robert Maynard
053dccac24 Properly propagate down the VTKM_NO_ASSERT flag to configure file. 2017-12-28 16:44:48 -05:00
Dave Pugmire
2537a1cf56 Worklets for cross and dot product. 2017-12-22 15:20:20 -05:00
Li-Ta Lo
2e88f4220a Connected component for triangle mesh 2017-12-22 10:31:02 -07:00
Robert Maynard
de7162ab8f Merge topic 'compile_in_dataset'
3eb8294b Build vtkm::cont::DataSet into the vtkm_cont library.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Matt Larsen <mlarsen@cs.uoregon.edu>
Merge-request: !1032
2017-12-22 08:24:38 -05:00
Sujin Philip
96c22747d5 Merge topic 'fix-field-api'
334262db Fix Field constructors

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !1035
2017-12-21 14:51:52 -05:00
Sujin Philip
334262db16 Fix Field constructors
1. Add option to copy user supplied array in make_ArrayHandle.
2. Replace Field constructors that take user supplied arrays with make_Field.
3. Replace CoordinateSystem constructors that take user supplied arrays with
   make_CoordinateSystem.
2017-12-21 12:48:15 -05:00
Matt Larsen
83e51cf42e creating ray tracing benchmark 2017-12-20 14:22:52 -08:00
Matt Larsen
a410650655 trying to create a benchmark for ray tracing 2017-12-20 10:25:16 -08:00
Sujin Philip
fab26344c6 Merge topic 'fix-ManagedMemory-issue'
b530a5ce Fix issue with Managed Memory for 0 size arrays

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !1033
2017-12-20 09:39:04 -05:00
Robert Maynard
a6ec3ab093 Merge topic 'enable_all_point_gradient_tests'
a73fc3fd Enable all point gradient worklet tests

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1031
2017-12-20 08:25:23 -05:00
Robert Maynard
a32394b92b Merge topic 'correct_capitalization_in_datasetwriter'
1d816534 Local var for the array portal instead of inside the for loop.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1029
2017-12-20 08:25:10 -05:00
Sujin Philip
b530a5ce3f Fix issue with Managed Memory for 0 size arrays 2017-12-19 17:18:24 -05:00
Robert Maynard
a73fc3fd0a Enable all point gradient worklet tests 2017-12-19 16:31:47 -05:00
Robert Maynard
3eb8294b24 Build vtkm::cont::DataSet into the vtkm_cont library. 2017-12-19 15:14:30 -05:00
Dave Pugmire
1d8165344f Local var for the array portal instead of inside the for loop. 2017-12-19 11:48:38 -05:00
Dave Pugmire
c6a4e335d9 Normalize worklet (both in place, and copy). 2017-12-19 11:44:30 -05:00
Utkarsh Ayachit
186e686968 Add ability to run tests with mpiexec.
Extends `vtkm_unit_tests` to support running tests with `mpiexec`.
Updates `UnitTestMultiBlock` to use mpi, if available.
2017-12-18 14:45:25 -05:00
Utkarsh Ayachit
1bb7dde971 Update MultiBlock to use diy for block-based operations.
Updating MultiBlock to use `diy` for computing block summaries like
ranges, bounds etc. This makes it possible to MultiBlock to
work in distributed operations without explicit logic.
2017-12-15 15:15:23 -05:00
Utkarsh Ayachit
e9c7e5619c Add EnvironmentTracker to track MPI communicator.
When using MPI, we need a mechanism in VTK-m to set/get the MPI
controller. Added `EnvironmentTracker` to do that.
2017-12-15 15:15:23 -05:00
Utkarsh Ayachit
d52b275e59 Making vtkm-cont depend on diy. 2017-12-15 15:15:23 -05:00
Utkarsh Ayachit
e72ce1e141 Update MultiBlock to follow coding style.
Use `this` and rename `blocks` to `Blocks`.
2017-12-15 10:53:30 -05:00
Robert Maynard
0de08aae06 Merge topic 'teach_brigand_about_cray_compiler'
06c5f161 Teach brigand about more intel compiler limitations introduced in 18.X.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1020
2017-12-14 15:26:06 -05:00
Robert Maynard
06c5f1613f Teach brigand about more intel compiler limitations introduced in 18.X. 2017-12-14 13:40:03 -05:00
Robert Maynard
7420f72c24 Simplify the boilerplate functors in vtkm/cont/Algorithms. 2017-12-12 11:10:52 -05:00
Robert Maynard
a1a23f83d3 Merge topic 'intel_compiler_hangs_on_brigand_crossproduct'
f9f205e9 ListCrossProduct now uses a special version for MSVC2013
c02349a8 ListCrossProduct now uses a lazy evaluation implementation
7b1b9e44 Correctly forward rvalue functors when passed to CastAndCall

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1018
2017-12-12 09:29:50 -05:00
Matt Larsen
c7db823ea0 Merge topic 'algorithm_wrap'
bf6cb1bd removing state from functors and adding variadic templates
013113e3 Fixing streaming scan doc
eaebaea7 adding a wrapper for device adapter algorithm

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1011
2017-12-11 20:28:48 -05:00
Matt Larsen
bf6cb1bd62 removing state from functors and adding variadic templates 2017-12-11 14:15:12 -08:00
Robert Maynard
f9f205e9df ListCrossProduct now uses a special version for MSVC2013
The lazy version that was implemented to get the Intel compiler to work doesn't
work under MSVC2013. Since MSVC2013 is our least c++11 conforming compiler we
add a special MSVS2013 code path, since it will be the first compiler we drop.
2017-12-11 16:27:15 -05:00
Robert Maynard
c02349a8e7 ListCrossProduct now uses a lazy evaluation implementation
The intel compiler could not generate code in a timely manner ( 12+ hours ) when
asked to produce a cross product of very long lists. By moving to a lazy
evaluation scheme we now have all compilers product a cross product in a
reasonable amount of time ( 2-4 seconds ).

This resolves Issues:
- https://gitlab.kitware.com/vtk/vtk-m/issues/190
- https://gitlab.kitware.com/vtk/vtk/issues/17196
2017-12-11 13:31:56 -05:00
Robert Maynard
7b1b9e445a Correctly forward rvalue functors when passed to CastAndCall 2017-12-08 12:02:01 -05:00
Robert Maynard
5ca31f7072 Merge topic 'dispatcher_base_proper_type_for_sizeof'
d51ddda9 Since sizeof returns std::size_t we should iterate using unsigned integers

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1016
2017-12-07 08:12:28 -05:00
Robert Maynard
d51ddda9b6 Since sizeof returns std::size_t we should iterate using unsigned integers 2017-12-06 13:57:05 -05:00
Sujin Philip
91f26844a6 Merge topic 'remove-VTKM_EXEC_CONSTANT'
e28309f0 Remove VTKM_EXEC_CONSTANT

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !1015
2017-12-06 11:50:55 -05:00
Matt Larsen
39abcb99c3 fixing compile errors 2017-12-05 13:26:45 -08:00
Sujin Philip
e28309f09b Remove VTKM_EXEC_CONSTANT
If a global static array is declared with VTKM_EXEC_CONSTANT and the code
is compiled by nvcc (for multibackend code) then the array is only accesible
on the GPU. If for some reason a worklet fails on the cuda backend and it is
re-executed on any of the CPU backends, it will continue to fail.

We couldn't find a simple way to declare the array once and have it available
on both CPU and GPU. The approach we are using here is to declare the arrays
as static inside some "Get" function which is marked as VTKM_EXEC_CONT.
2017-12-05 13:49:55 -05:00
Matt Larsen
655412fca3 adding support for log plots with the wireframer 2017-12-05 10:00:27 -08:00
Matt Larsen
1d58eeaa9e Merge topic 'annotation_color'
6d616309 let there be foreground color

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1013
2017-12-05 00:13:07 -05:00
Matt Larsen
6d61630928 let there be foreground color 2017-12-04 20:46:38 -08:00
Matt Larsen
17f4e1b51a avoiding zero directions 2017-12-03 09:38:53 -08:00
Robert Maynard
59afc5cba6 Merge topic 'dispatcher_base_leverage_new_cast_and_call'
f6e18ac4 Remove IntegerSequence.h as we don't need it in vtk-m anymore
7f762204 Redesign the Dispatcher to not need FunctionInterface to convert dynamic types

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1010
2017-11-29 15:44:24 -05:00
Robert Maynard
f6e18ac452 Remove IntegerSequence.h as we don't need it in vtk-m anymore 2017-11-29 10:55:04 -05:00
Matt Larsen
013113e393 Fixing streaming scan doc 2017-11-29 07:47:06 -08:00
Matt Larsen
eaebaea7cb adding a wrapper for device adapter algorithm 2017-11-29 07:44:37 -08:00
Robert Maynard
7f76220427 Redesign the Dispatcher to not need FunctionInterface to convert dynamic types 2017-11-28 11:01:02 -05:00
Robert Maynard
8be1a71ada Merge topic 'per_thread_runtime_tracker'
9ae3098a Give each thread using vtk a separate runtime device tracker

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1008
2017-11-24 08:54:06 -05:00
Robert Maynard
9ae3098af8 Give each thread using vtk a separate runtime device tracker 2017-11-21 16:43:40 -05:00
Robert Maynard
2467411ecc Merge topic 'variadic_CastAndCall_and_TryExecute'
203205a1 TryExecute RuntimeDeviceTracker can't be a const ref anymore.
dfb9cc62 Allow users to pass multiple arguments to TryExecute
5384305d Update tests and a single worklet to verify new CastAndCall works
2ff14a81 Allow users to pass multiple arguments to CastAndCall

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1005
2017-11-13 17:56:20 -05:00