Commit Graph

1561 Commits

Author SHA1 Message Date
Kenneth Moreland
c802adcbeb Add support for CastAndCallVariableVecField in FilterField
The `FilterField` class provides convenience functions for subclasses to
determine the `ArrayHandle` type for scalar and vector fields. However, you
needed to know the specific size of vectors. For filters that support an
input field of any type, a new form, `CastAndCallVariableVecField` has been
added. This calls the underlying functor with an `ArrayHandleRecombineVec`
of the appropriate component type.

The `CastAndaCallVariableVecField` method also reduces the number of
instances created by having a float fallback for any component type that
does not satisfy the field types.
2023-05-22 10:14:59 -06:00
Kenneth Moreland
2cc2205218 Merge topic 'composite-vectors-any-size'
b59580bb8 Allow CompositeVectors filter to build any size vector
a8b4e5a62 Add GetNumberOfActiveFields method to FilterField

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3063
2023-05-18 16:28:39 -04:00
Gunther Weber
149a6c3a29 Merge topic 'release-deadlock'
58fc4d826 Fix potential deadlock in distributed contour tree

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3024
2023-05-16 17:02:28 -04:00
Kenneth Moreland
b59580bb82 Allow CompositeVectors filter to build any size vector
Using the new `ArrayHandleRuntimeVec` feature, we can construct an array
with any vec sized value.
2023-05-16 12:39:40 -06:00
Kenneth Moreland
a8b4e5a629 Add GetNumberOfActiveFields method to FilterField 2023-05-16 12:39:40 -06:00
Kenneth Moreland
44650c2e48 Fix unused variable in contour test 2023-05-12 12:00:17 -06:00
Louis Gombert
1538fc02fb Implement Flying Edges for all structured CellSets
In addition to  using uniform coordinates, the ContourFlyingEdges filter can now process any type of coordinate system, making the  filter use Flying Edges in more cases
2023-05-10 15:20:53 +02:00
Louis Gombert
dcdda3065a Split flying edges and marching cells into separate filters
In order to compile the contour filter more efficiently, we split the contour filter into two separate translation units, corresponding to the new filters ContourFlyingEdges and ContourMarchingCells. The API for Contour filter is left totally unchanged, and tries to use flying edges if the dataset is structured and uniform.
All three contour filters inherit from the `AbstractContour` class, providing utility methods used in the implementations.
2023-05-04 15:20:20 +02:00
Dave Pugmire
b437634295 Kick the dashboards..... 2023-05-01 14:41:32 -04:00
Dave Pugmire
1ce2922d15 Remove warning. Add BoundsMap methods.
Fix compiler warnings......

Kick the dashboards..........

Kick the dashboards.....

use lambda instead of functor, remove unused code

ArrayHandle::StorageType should be public

StorageType is public in vtkm::cont::ArrayHandle, but some subclasses  
re-declare it as private. Having it public provides a convenient way to  
get the storage type of an ArrayHandle, otherwise it is quite verbose.

Addresses: #314

Tetrahedralize and Triangulate filters check if input is already triangulated

Previously, tetrahedralize/triangulate would blindly convert all the cells to tetrahedra/triangles, even when they were already. Now, the dataset is directly returned if the CellSet is a CellSetSingleType of tetras/triangles, and no further processing is done in the worklets for CellSetExplicit when all shapes are tetras or triangles.

ci,crusher: changed fs to orion

ci,osx,macos: fix value of GIT_CLONE_PATH
2023-05-01 13:05:11 -04:00
Dave Pugmire
c8702f132b Punch the dashboard in the neck. 2023-04-14 22:29:07 -04:00
Dave Pugmire
d257108236 cleanup and better check for valid seeds. 2023-04-14 14:19:50 -04:00
Dave Pugmire
fe35202de8 Merge branch 'master' of https://gitlab.kitware.com/vtk/vtk-m into sl_block_duplication 2023-04-14 12:54:00 -04:00
Louis Gombert
627b757733 Merge topic 'continuous-scatterplot'
4ba15a993 Add new ContinuousScatterPlot filter

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3028
2023-04-14 12:01:15 -04:00
Dave Pugmire
eb3c91494e Fixes to block duplication code. 2023-04-14 10:50:30 -04:00
Louis Gombert
4ba15a993d Add new ContinuousScatterPlot filter
This new filtered designed for bi-variate analysis builds the continuous scatterplot of a 3D tetrahedralized mesh for two given scalar point fields. The continuous scatterplot is an extension of the discrete scatterplot for continuous bi-variate analysis.
2023-04-14 10:00:33 +02:00
Dave Pugmire
d1e68ace91 Kick the dashboards.... 2023-04-12 12:08:30 -04:00
Sujin Philip
1261e459d3 Clip: Remove unused points
The clip filter used to copy the input points and point fields as is,
regardless of if they were actually part of the output. With this change,
we track which input points are actually part of the output and copy
only those values.

Address: #112
2023-04-11 14:35:25 -04:00
Dave Pugmire
778e2783a3 Kick the dashboards..... 2023-04-11 13:53:04 -04:00
Sujin Philip
758fedc661 Clip: Release resources early 2023-04-10 16:19:47 -04:00
Sujin Philip
863c8e3dc6 Clip: Use vtkm::cont::Invoker
Replace use of vtkm::worklet::Dispatcher* with vtkm::cont::Invoker.
2023-04-10 16:18:24 -04:00
Dave Pugmire
186f06a822 Remove debug statements. 2023-04-10 12:05:44 -04:00
Dave Pugmire
812b8f3930 Fix serial compile error. 2023-04-08 14:19:58 -04:00
Dave Pugmire
6de278d8a4 Allow block duplication 2023-04-07 09:50:29 -04:00
Dave Pugmire
684652db9d Fix compile error in serial mode. 2023-03-30 22:13:20 -04:00
Dave Pugmire
a5ad12a4f4 Merge branch 'master' of https://gitlab.kitware.com/vtk/vtk-m into sync_streamlines 2023-03-30 13:35:35 -04:00
Dave Pugmire
dc547de809 Remove debugging information. 2023-03-30 13:34:03 -04:00
Kenneth Moreland
90706d53f8 Merge topic 'safer-divide-by-volume'
014c429eb Make divide by volume in particle density estimate a little safer

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Li-Ta Lo <ollie@lanl.gov>
Merge-request: !3022
2023-03-27 08:48:05 -04:00
Zhe Wang
1fc84b85f9 Merge topic 'distributed_statistics'
d8f3e68d1 add distributed statistics

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <morelandkd@ornl.gov>
Merge-request: !3017
2023-03-24 14:51:42 -04:00
Jay
d8f3e68d1d add distributed statistics 2023-03-24 15:19:23 +00:00
Dave Pugmire
42f183e81f More code cleanup................ 2023-03-23 15:21:43 -04:00
Dave Pugmire
1dea2b2eec Code cleanup........ 2023-03-23 15:11:33 -04:00
Dave Pugmire
322012a596 Only log message in debug. 2023-03-23 15:09:47 -04:00
Dave Pugmire
9d3c24ab91 Undo an inadvertent change. 2023-03-23 14:52:28 -04:00
Dave Pugmire
ad49b1e25b propagate the sync/async comm flag down. 2023-03-23 14:46:35 -04:00
Dave Pugmire
f6ac8d2857 Add useAsyncComm flags. 2023-03-23 13:41:57 -04:00
Dave Pugmire
b74e9efc06 Fix compiler error.... 2023-03-23 12:44:10 -04:00
Dave Pugmire
f9e9ea9c73 Revert "Add fields to particles."
This reverts commit d6aff6bdb92a60a8406b590ff7237775911818d2.
2023-03-23 12:38:09 -04:00
Kenneth Moreland
58fc4d8267 Fix potential deadlock in distributed contour tree
The `HierarchicalAugmenter` used in the distributed contour tree filter
attempts to save memory by releasing buffers used to send and receive
data after the DIY enqueues and dequeues are posted. This works as long
as the DIY serialization process copies the data in the arrays. However,
changes are coming where the data is sent directly from the buffers.
These changes cause a deadlock because the enqueue places a read lock
until the data is sent while the release tried to get a write lock.

The solution is simply to "forget" the array rather than explicitly
delete it. In this case, the array will automatically be deleted once
everyone is done with it.
2023-03-23 07:07:44 -06:00
Kenneth Moreland
014c429eb0 Make divide by volume in particle density estimate a little safer
While going through the VTK-m code to identify where a cast-and-call was
happening against VTKM_DEFAULT_TYPE_LIST, I ran into a subtle case in
`ParticleDensityBase` that was calling a worklet with an
`UnknownArrayHandle`. This works OK, but was probably compiling for
unnecessary types (for example, vectors). Changed the field resolution
to be more intentional.
2023-03-21 14:01:42 -06:00
Kenneth Moreland
3ab9e2ba75 Update clip with implicit function filter's field map
MR !2969 was meant to update the clip filters such that their field
mapping works on any field type and preserves the value type. Although
this was done for `ClipWithField`, it was not fully implemented for
`ClipWithImplicitFunction`. These changes update
`ClipWithImplicitFunction` to match its sibling.
2023-03-21 13:33:30 -06:00
Kenneth Moreland
7ddf3d85c5 Merge topic 'remove-unlicensed-data'
5aba6e1be Remove unlicensed data

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Vicente Bolea <vicente.bolea@kitware.com>
Merge-request: !3012
2023-03-14 11:42:03 -04:00
Kenneth Moreland
5aba6e1bea Remove unlicensed data
Some of the test data sets are derived from data sets that are commonly
distributed to test visualization algorithms and are featured in
numerous papers. However, I am unable to track down the original source
let alone identify what license, if any, they were released under. To
avoid any complications with data ownership, remove these data sets and
replace them with in house data sets that we explicitly own.
2023-03-13 13:54:44 -06:00
Louis Gombert
ea13c27613 Minor Shrink filter fixes 2023-03-09 16:46:58 +01:00
Louis Gombert
b970a6f4c7 Merge topic 'shrink-filter'
67d6780fb Add Shrink filter

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <morelandkd@ornl.gov>
Merge-request: !3007
2023-03-09 09:14:01 -05:00
Louis Gombert
67d6780fba Add Shrink filter
This filter shrinks the cells of a DataSet towards their centroid, computed as the average position of the cell points
2023-03-09 09:48:46 +01:00
Kenneth Moreland
58fc99c2f8 Fix fast paths for ArrayRangeCompute
The precompiled `ArrayRangeCompute` function was not following proper fast
paths for special arrays. For example, when computing the range of an
`ArrayHandleUniformPointCoordinates`, the ranges should be taken from the
origin and spacing of the special array. However, the precompiled version
was calling the generic range computation, which was doing an unnecessary
reduction over the entire array. These fast paths have been fixed.

These mistakes in the code were caused by quirks in how templated method
overloading works. To prevent this mistake from happening again in the
precompiled `ArrayRangeCompute` function and elsewhere, all templated forms
of `ArrayRangeCompute` have been deprecated. Most will call
`ArrayRangeCompute` with no issues. For those that need the templated
version, `ArrayRangeComputeTemplate` replaces the old templated
`ArrayRangeCompute`. There is exactly one templated declaration of
`ArrayRangeComputeTemplate` that uses a class, `ArrayRangeComputeImpl`,
with partial specialization to ensure the correct form is used.
2023-03-08 12:36:53 -07:00
Kenneth Moreland
2af555f6c9 Simplify serialization of DataSet objects
`vtkm::cont::DataSet` is a dynamic object that can hold cell sets and
fields of many different types, none of which are known until runtime. This
causes a problem with serialization, which has to know what type to compile
the serialization for, particularly when unserializing the type at the
receiving end. The original implementation "solved" the problem by creating
a secondary wrapper object that was templated on types of field arrays and
cell sets that might be serialized. This is not a great solution as it
punts the problem to algorithm developers.

This problem has been completely solved for fields, as it is possible to
serialize most types of arrays without knowing their type now. You still
need to iterate over every possible `CellSet` type, but there are not that
many `CellSet`s that are practically encountered. Thus, there is now a
direct implementation of `Serialization` for `DataSet` that covers all the
data types you are likely to encounter.

The old `SerializableDataSet` has been deprecated. In the unlikely event an
algorithm needs to transfer a non-standard type of `CellSet` (such as a
permuted cell set), it can use the replacement `DataSetWithCellSetTypes`,
which just specifies the cell set types.
2023-03-03 09:17:44 -07:00
Dave Pugmire
f53d90d6b6 Merge branch 'sync_streamlines' of https://gitlab.kitware.com/dpugmire/vtk-m into sync_streamlines 2023-02-20 10:08:43 -05:00
Dave Pugmire
9fefdf6e61 Add fields to particles. 2023-02-20 10:03:49 -05:00