VTK-m merge requestshttps://gitlab.kitware.com/vtk/vtk-m/-/merge_requests2019-01-22T08:12:05-05:00https://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/1383WIP: Cuda Separable Compilation2019-01-22T08:12:05-05:00Sujin PhilipWIP: Cuda Separable CompilationSujin PhilipSujin Philiphttps://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/1566Correct UnitTestTimer failures when OpenMP is enabled and TBB isnt2019-03-04T15:51:47-05:00Robert MaynardCorrect UnitTestTimer failures when OpenMP is enabled and TBB isnthttps://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/1526Add support for BitFields.2019-03-08T09:25:44-05:00Allison Vacantialliepiper16@gmail.comAdd support for BitFields.See discussion in #341.
BitFields are:
- Stored in memory using a contiguous buffer of bits.
- Accessible via portals, a la ArrayHandle.
- Portals operate on individual bits or words.
- Operations may be atomic for safe use from c...See discussion in #341.
BitFields are:
- Stored in memory using a contiguous buffer of bits.
- Accessible via portals, a la ArrayHandle.
- Portals operate on individual bits or words.
- Operations may be atomic for safe use from concurrent kernels.
The new BitFieldToUnorderedSet device algorithm produces an
ArrayHandle containing the indices of all set bits, in no particular
order.
The new AtomicInterface classes provide an abstraction into bitwise
atomic operations across control and execution environments and are
used to implement the BitPortals.https://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/1595Allow Initialize to parse only some arguments2019-03-25T18:21:06-04:00Kenneth MorelandAllow Initialize to parse only some argumentsWhen a library requires reading some command line arguments through a
function like Initialize, it is typical that it will parse through
arguments it supports and then remove those arguments from argc and argv
so that the remaining argum...When a library requires reading some command line arguments through a
function like Initialize, it is typical that it will parse through
arguments it supports and then remove those arguments from argc and argv
so that the remaining arguments can be parsed by the calling program.
VTK-m's initialize did not do that, so add that functionality.https://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/1581Connected component2019-03-28T09:01:51-04:00Li-Ta LoConnected componentThis is an update on the Connected Component support in VTKm. It contains the following changes
1. Corrected a concurrent algorithm error on the UnionFind for the ImageConnectivity which gave erroneous connected component identificat...This is an update on the Connected Component support in VTKm. It contains the following changes
1. Corrected a concurrent algorithm error on the UnionFind for the ImageConnectivity which gave erroneous connected component identifications for density fields for MFIX particle data.
2. Added filters for both CellSetsConnectivity and ImageConnectivity.
3. Added unit tests for aforementioned filters.
CI looks good to me except on seemly spurious error on the Timer that most likely due to heavy workload on the test machine. Robert MaynardRobert Maynardhttps://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/1619Refactor the design of CellLocator::PrepareForExecutionImpl2019-04-02T11:11:58-04:00Robert MaynardRefactor the design of CellLocator::PrepareForExecutionImplIt now passes back by const& and has other minor improvementsIt now passes back by const& and has other minor improvementshttps://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/1570Add support for BitFields.2019-04-11T12:38:01-04:00Allison Vacantialliepiper16@gmail.comAdd support for BitFields.See discussion in #341. This MR continues !1526.
BitFields are:
- Stored in memory using a contiguous buffer of bits.
- Accessible via portals, a la ArrayHandle.
- Portals operate on individual bits or words.
- Operations may be atomic ...See discussion in #341. This MR continues !1526.
BitFields are:
- Stored in memory using a contiguous buffer of bits.
- Accessible via portals, a la ArrayHandle.
- Portals operate on individual bits or words.
- Operations may be atomic for safe use from concurrent kernels.
The new BitFieldToUnorderedSet device algorithm produces an
ArrayHandle containing the indices of all set bits, in no particular
order.
The new AtomicInterface classes provide an abstraction into bitwise
atomic operations across control and execution environments and are
used to implement the BitPortals.Robert MaynardRobert Maynardhttps://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/1658WIP: Cast VariantArrayHandle to ArrayHandle without knowing type2019-05-22T10:48:06-04:00Kenneth MorelandWIP: Cast VariantArrayHandle to ArrayHandle without knowing typeAdds ArrayHandleVariant, which allows you to cast a
VariantArrayHandle without knowing either its value
type or storage type.Adds ArrayHandleVariant, which allows you to cast a
VariantArrayHandle without knowing either its value
type or storage type.https://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/1702Add support to write .pngs.2019-06-18T16:41:30-04:00Nick ThompsonAdd support to write .pngs.![demo_input](/uploads/23dd203167817af7a45bb32a07ece78c/demo_input.png)![demo_input](/uploads/23dd203167817af7a45bb32a07ece78c/demo_input.png)https://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/1698Add Mesh Quality and Cell Metrics2019-06-27T04:56:48-04:00Brent LessleyAdd Mesh Quality and Cell MetricsThis branch contributes a working and tested prototype of a mesh quality filter that computes metrics over different 2D and 3D cells in an unstructured grid mesh. A different metric is user-specified for each cell type (e.g., tet, hex, t...This branch contributes a working and tested prototype of a mesh quality filter that computes metrics over different 2D and 3D cells in an unstructured grid mesh. A different metric is user-specified for each cell type (e.g., tet, hex, triangle) in the mesh, and the underlying filter and worklet invoke metric functions over each cell. The filter outputs summary statistics for each metric/cell-type pair, consisting of frequency, mean, standard deviation, min, and max. Each set of summary statistics is written into the output data set (currently a VTK file) as a new field. Additionally, the computed metric values of all cells are output as a new field. If a cell type is not assigned a metric, then it is assigned an empty metric by default and its mesh quality will not be computed or included as a field in the output data set.
In this basic implementation, there are 4 tested cell metrics, each verified for correctness with a filter unit test. We have several (~15) other metrics either already implemented or in-progress. These will be merged upon successful passing of their unit tests. We would appreciate any feedback regarding the functionality/design as we proceed further.
Relevant files are as follows:
* `vtkm/filter/MeshQuality.h`, `vtkm/filter/MeshQuality.hxx` (filter)
* `vtkm/filter/testing/UnitTestMeshQualityFilter.cxx` (filter unit test)
* `vtkm/worklet/MeshQuality.h` (worklet)
* `examples/cell_metrics/CellMetrics.cxx` (example file to use MeshQuality filter, given an input VTK data set)
* `vtkm/exec/cellmetrics` (directory with cell metric implementations; note `vtkm/exec/CellMeasure.h` is also included as a supported metric under the metric name `VOLUME`)
The design of the mesh quality filter largely follows that of the VTK implementation:
* [https://gitlab.kitware.com/vtk/vtk/tree/master/ThirdParty/verdict](url)
* [https://vtk.org/Wiki/VTK/mesh_quality](url)
The ground-truth metric values hard-coded in the unit test file are obtained from the VisIt library and its set of equivalent mesh quality operators. While VisIt includes many of the metrics from the Verdict manual, there are still a few metrics left unsupported (at least via the GUI interface). We will obtain the ground-truth values of these unsupported metrics from the VTK implementations.
The mathematics and definitions of each cell metric are adapted as closely as possible from the Verdict Manual of mesh quality cell metrics:
* [https://vtk.org/Wiki/images/6/6b/VerdictManual-revA.pdf](url)
This work is part of a milestone for the ECP project under the advisement of @hankchilds. Code development is completed by @blessley, @dloyd2, and Steven Walton.
CC: @kmorel @robertmaynard @ayenpurehttps://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/1723Find threads nvcc workaround2019-07-16T16:27:40-04:00Robert MaynardFind threads nvcc workaroundhttps://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/1721WIP: Simplify the implementation of ListTags2019-07-28T21:04:08-04:00Kenneth MorelandWIP: Simplify the implementation of ListTagsNow that we use C++11 and we internally include the brigand utilities,
clean up the implementation of the ListTag classes.Now that we use C++11 and we internally include the brigand utilities,
clean up the implementation of the ListTag classes.https://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/1697Create a marching cubes example which corresponds to the documentation stub.2019-07-31T10:04:54-04:00Nick ThompsonCreate a marching cubes example which corresponds to the documentation stub.I do hope this is a desired and useful addition to the project which may mitigate the inevitable work involved in getting me up to speed on this codebase.
Note that there is a problem of currently unknown impact:
```cpp
➜ build_v...I do hope this is a desired and useful addition to the project which may mitigate the inevitable work involved in getting me up to speed on this codebase.
Note that there is a problem of currently unknown impact:
```cpp
➜ build_vtkm ./examples/marching_cubes/MarchingCubes
vtk-m/vtkm/exec/serial/internal/TaskTiling.h:291:5: runtime error: call to function void vtkm::exec::serial::internal::TaskTilingSetErrorBuffer<vtkm::worklet::marchingcubes::ClassifyCell<float> const>(void*, vtkm::exec::internal::ErrorMessageBuffer const&) through pointer to incorrect function type 'void (*)(void *, const vtkm::exec::internal::ErrorMessageBuffer &)'
TaskTiling.h:31: note: void vtkm::exec::serial::internal::TaskTilingSetErrorBuffer<vtkm::worklet::marchingcubes::ClassifyCell<float> const>(void*, vtkm::exec::internal::ErrorMessageBuffer const&) defined here
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior vtk-m/vtkm/exec/serial/internal/TaskTiling.h:291:5 in
vtk-m/vtkm/exec/serial/internal/TaskTiling.h:201:5: runtime error: call to function void vtkm::exec::serial::internal::TaskTilingSetErrorBuffer<(anonymous namespace)::ReverseInputToOutputMapWorklet const>(void*, vtkm::exec::internal::ErrorMessageBuffer const&) through pointer to incorrect function type 'void (*)(void *, const vtkm::exec::internal::ErrorMessageBuffer &)'
TaskTiling.h:31: note: void vtkm::exec::serial::internal::TaskTilingSetErrorBuffer<(anonymous namespace)::ReverseInputToOutputMapWorklet const>(void*, vtkm::exec::internal::ErrorMessageBuffer const&) defined here
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior vtk-m/vtkm/exec/serial/internal/TaskTiling.h:201:5 in
```
I have seen this error in every example I've run, so it is not unique to this PR. But this does not mitigate it either.https://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/1678Update diy2019-07-31T10:34:48-04:00Robert MaynardUpdate diyhttps://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/918WIP: Slic reduction2019-08-15T11:45:45-04:00Sebastien JourdainWIP: Slic reductionTrying to work out the compilation issue... ;-)Trying to work out the compilation issue... ;-)David ThompsonDavid Thompsonhttps://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/1385WIP: Pointlocator32019-08-15T11:45:49-04:00Li-Ta LoWIP: Pointlocator3A test to reproduce infinite loop while compiling execution side of PointLocator.A test to reproduce infinite loop while compiling execution side of PointLocator.https://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/1289WIP: Pointlocator22019-08-15T11:45:57-04:00Li-Ta LoWIP: Pointlocator2This revision of PointLocatorUniforGrid cause ptas to run into infinite loop. This MR is an attempt for the CI to try compile for all the supported platform.This revision of PointLocatorUniforGrid cause ptas to run into infinite loop. This MR is an attempt for the CI to try compile for all the supported platform.https://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/968Support copying subsets of permutation arrays to devices2019-08-15T11:46:02-04:00Kenneth MorelandSupport copying subsets of permutation arrays to devicesPreviously, ArrayHandlePermutation moved data to devices (for the
execution environment) by copying the entire source arrays and using a
special array portal in the execution environment to extract from the
appropriate location on the fl...Previously, ArrayHandlePermutation moved data to devices (for the
execution environment) by copying the entire source arrays and using a
special array portal in the execution environment to extract from the
appropriate location on the fly.
That is still the default behavior, but now there is an alternate mode
where instead of preparing the source array for the execution
environment, it uses the ArrayManagerExecution to copy the subset of
data exposed in the permutation to the execution environment. It
implements this by disabling the specialized ArrayTransfer and using the
default one.https://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/1438WIP: Update color table presets2019-08-15T11:46:07-04:00Kenneth MorelandWIP: Update color table presetsAllows the importing and exporting of color tables through
JSON files. Also converts the presets to use this
infrastructure and updates the presets.Allows the importing and exporting of color tables through
JSON files. Also converts the presets to use this
infrastructure and updates the presets.https://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/1534WIP Add build time check for ninja builds.2019-08-15T11:46:21-04:00Allison Vacantialliepiper16@gmail.comWIP Add build time check for ninja builds.