VTK-m merge requestshttps://gitlab.kitware.com/vtk/vtk-m/-/merge_requests2020-08-27T16:54:16-04:00https://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/2191Fix race condition in UnitTestGraphConnectivity2020-08-27T16:54:16-04:00Kenneth MorelandFix race condition in UnitTestGraphConnectivityThe UnitTestGraphConnectivity would sometimes fail on parallel devices
(even though the tested graph is remarkably small). The issue was likely
a race condition in the pointer jumping worklets where the worklet would
check graph edges in...The UnitTestGraphConnectivity would sometimes fail on parallel devices
(even though the tested graph is remarkably small). The issue was likely
a race condition in the pointer jumping worklets where the worklet would
check graph edges in an array and then update the connections in the
same array.
These race conditions are removed by reading input connections from one
array and writing the results to a separate array. The algorithm now
seems more stable although it now requires more memory.https://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/2227Toss MemStream2020-08-25T14:55:38-04:00Dave PugmireToss MemStreamreplace MemStream with the diy MemoryBuffer for serialization and communication.replace MemStream with the diy MemoryBuffer for serialization and communication.https://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/2179streamline filter with MPI2020-08-24T14:26:46-04:00Dave Pugmirestreamline filter with MPIMoving code over from VTK-h.
This was done in: !2210Moving code over from VTK-h.
This was done in: !2210https://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/2225Improve the performance of RK4.2020-08-20T11:45:05-04:00Nick ThompsonImprove the performance of RK4.https://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/1958WIP: Change DeviceAdapterAlgorithm::Schedule accept and pass arguments2020-08-19T13:14:19-04:00Kenneth MorelandWIP: Change DeviceAdapterAlgorithm::Schedule accept and pass argumentsPreviously, if you wanted to schedule a functor to pass arguments, the
only way to do it was to put the arguments into the state of the
functor, which could be a pain. Now, in addition to the functor itself
and a scheduling range, Schedu...Previously, if you wanted to schedule a functor to pass arguments, the
only way to do it was to put the arguments into the state of the
functor, which could be a pain. Now, in addition to the functor itself
and a scheduling range, Schedule also accepts an arbitrary number of
objects. These objects are passed to the functor when each instance is
executed.
Previously, there was also a special form of creating "Task" objects
that held the state of a worklet and the Invocation it needed to
execute. Now that Schedule can pass parameters, the Invocation can
easily be passed using command line arguments, so none of that special
code is necessary and has been ripped out.https://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/2144WIP: Use ArrayHandleMultiplexer in VariantArrayHandle::CastAndCall2020-08-19T13:14:00-04:00Kenneth MorelandWIP: Use ArrayHandleMultiplexer in VariantArrayHandle::CastAndCallThe previous behavior of `VariantArrayHandle::CastAndCall` was to
identify all possible `ArrayHandle`s to try and call the provided
functor with each one. This change creates an `ArrayHandleMultiplexer`
for each value type so that the fu...The previous behavior of `VariantArrayHandle::CastAndCall` was to
identify all possible `ArrayHandle`s to try and call the provided
functor with each one. This change creates an `ArrayHandleMultiplexer`
for each value type so that the functor need only be called once for
each value type rather than once for every value-storage type pair.
This results in more complex array types, but should result in fewer
total code paths.https://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/1862Use ArrayHandleMultiplexer to resolve active field2020-08-19T13:13:56-04:00Kenneth MorelandUse ArrayHandleMultiplexer to resolve active fieldPreviously, `FilterField` and `FilterDataSetWithField` used the `VariantArrayHandle::CastAndCall` method to apply a policy on the active field and call the subclass `DoExecute` with a particular `ArrayHandle`. This relied in part on virt...Previously, `FilterField` and `FilterDataSetWithField` used the `VariantArrayHandle::CastAndCall` method to apply a policy on the active field and call the subclass `DoExecute` with a particular `ArrayHandle`. This relied in part on virtual array handles to keep down the code paths. Change this to use `ArrayHandleMultiplexer` for fewer code paths without virtual methods.https://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/2131Normal of zero vectors2020-08-19T13:13:50-04:00Kenneth MorelandNormal of zero vectorsThe normal of a vector is the vector divided by the vector's magnitude.
However, if the vector is the 0 vector, you get 0/0, which results in
non-finite numbers.
There might be legitimate situations where you (unintentionally) try to
no...The normal of a vector is the vector divided by the vector's magnitude.
However, if the vector is the 0 vector, you get 0/0, which results in
non-finite numbers.
There might be legitimate situations where you (unintentionally) try to
normalize a 0 vector. For example, you might be using the derivative of
a field to compute the normal to a contour of the field. If the field is
in a static region or critical point, then the gradient goes to 0.
In these cases, we want the `Normal` and `Normalize` functions to return
something reasonable. These functions now return the 0 vector back. This
is no more "correct" than producing NaN values, but it is less likely to
cause problems later.https://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/2108use ImageWriter to write canvas data2020-08-19T13:13:44-04:00Nickolas Davisuse ImageWriter to write canvas dataUse the ImageWriter to save canvas data.
Resolves https://gitlab.kitware.com/vtk/vtk-m/-/issues/510Use the ImageWriter to save canvas data.
Resolves https://gitlab.kitware.com/vtk/vtk-m/-/issues/510https://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/2155Attempt to debug tempermental VTK read bug2020-08-19T13:13:09-04:00Dave PugmireAttempt to debug tempermental VTK read bughttps://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/2203WIP: fomatting: updates vtkm formatting to match clang-format 92020-08-19T13:11:54-04:00Vicente Boleavicente.bolea@kitware.comWIP: fomatting: updates vtkm formatting to match clang-format 9related: !1948
This MR implements the changes intended to be added in the MR !1948related: !1948
This MR implements the changes intended to be added in the MR !1948https://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/2221Do not run tests on gcc 4.8 build.2020-08-19T10:01:33-04:00Nick ThompsonDo not run tests on gcc 4.8 build.(Warning: Flamewar commit)
It appears that support for gcc 4.8 has be effectively given up, since the tests have been unstable for many months now.
This MR does not remove full support for gcc48; it still verifies it compiles, but watc...(Warning: Flamewar commit)
It appears that support for gcc 4.8 has be effectively given up, since the tests have been unstable for many months now.
This MR does not remove full support for gcc48; it still verifies it compiles, but watching these tests fail over and over is not informative.https://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/2217Ode performance2020-08-19T10:01:32-04:00Nick ThompsonOde performanceIncrease performance of particle advection via solving the issue discovered in 2215.
Note that if `GetCellInfo` can be called from a multithreaded context then this fix is incorrect.Increase performance of particle advection via solving the issue discovered in 2215.
Note that if `GetCellInfo` can be called from a multithreaded context then this fix is incorrect.https://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/2101WIP: Addition of Rectilinear and Uniform grid writer.2020-08-19T10:01:31-04:00Nick ThompsonWIP: Addition of Rectilinear and Uniform grid writer.Don't examine this yet; it's still garbage. Looking through the `.vtk` [file spec](https://lorensen.github.io/VTKExamples/site/VTKFileFormats/) shows that this is somewhat more complicated than I'd hoped, and therefore I'm putting this h...Don't examine this yet; it's still garbage. Looking through the `.vtk` [file spec](https://lorensen.github.io/VTKExamples/site/VTKFileFormats/) shows that this is somewhat more complicated than I'd hoped, and therefore I'm putting this half-baked code out in public to shame myself into finishing it!
Will fix #507 and partially fix #512.
The `VTKDataSetWriter` class is now removed, as it had only one static method `Write`. Normally when examining a class that takes a filename as a constructor and allows multiple calls to a `Write`, I would expect append behavior, but instead the class performs truncation. In addition, the constructor is trivial, so as @nadavi points out, there's really no need to break this into two calls.
The new implementation is just a pure function, which accepts a `vtkm::cont::DataSet`, a `std::string const & filename` (sadly, not yet a `std::filesystem::path`), and a `std::string const & description`. The description is put into [Part 2](https://lorensen.github.io/VTKExamples/site/VTKFileFormats/) of the file, and is mandatory.
Previously, in a discussion I can't find, @robertmaynard had indicated that throwing exceptions from a write routine was frowned upon, which I agree with. Therefore, I've performed logging and returned error codes and begun to remove all throws.Vicente Boleavicente.bolea@kitware.comVicente Boleavicente.bolea@kitware.comhttps://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/2215WIP: Benchmark ode integrators2020-08-18T15:47:04-04:00Nick ThompsonWIP: Benchmark ode integratorsIn order to establish a baseline for improvement via Dormand-Prince, we need some benchmarks for our current particle advection workflows.
Forked off of [2213](https://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/2213).In order to establish a baseline for improvement via Dormand-Prince, we need some benchmarks for our current particle advection workflows.
Forked off of [2213](https://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/2213).https://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/2209Draft: Experiment of using kokkos+cuda on ubuntu2020-08-13T16:04:16-04:00Robert MaynardDraft: Experiment of using kokkos+cuda on ubuntuhttps://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/1948Update VTK-m to use clang format 9 for formatting2020-08-07T17:36:24-04:00Robert MaynardUpdate VTK-m to use clang format 9 for formattingUpgrade from clang 3.8 for our formattingUpgrade from clang 3.8 for our formattinghttps://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/2066WIP: splits instantiations of several classes accross multiple files2020-07-22T18:13:49-04:00Vicente Boleavicente.bolea@kitware.comWIP: splits instantiations of several classes accross multiple filesfixes: #474
fixes: #503
Similarly as many of you, I suffer long CUDA compilation times, here I try to implement the suggestion exposed in the issue #474.
This MR is more of an experiment of what could be done to decrease the com...fixes: #474
fixes: #503
Similarly as many of you, I suffer long CUDA compilation times, here I try to implement the suggestion exposed in the issue #474.
This MR is more of an experiment of what could be done to decrease the compilation times by spiting instantiation of templates across multiple files. This does it in its maximum extreme which is one instantiation per file. It might not be feasible to have this since it obscure the project structure.
Signed-off-by: Vicente Adolfo Bolea Sanchez <vicente.bolea@kitware.com>https://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/2019Generalize flow field representation2020-07-22T14:30:35-04:00Abhishek Yenpureabhi.yenpure@kitware.comGeneralize flow field representationAbhishek Yenpureabhi.yenpure@kitware.comAbhishek Yenpureabhi.yenpure@kitware.comhttps://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/2189WIP: dummy MR to see what's going on2020-07-22T14:29:07-04:00Dave PugmireWIP: dummy MR to see what's going ontesttest