Commit Graph

8067 Commits

Author SHA1 Message Date
Roxana Bujack
9ce533f144 second round of fixes +1 2023-11-07 17:20:50 -07:00
Roxana Bujack
5d3c9604f2 second round of fixes 2023-11-07 17:20:05 -07:00
Roxana Bujack
fae4cc4c79 first round of fixes 2023-11-07 13:52:05 -07:00
Kenneth Moreland
7e09fb7033 ken's suggestion to remove const 2023-11-07 14:31:36 -05:00
Roxana Bujack
f8d1dff30c use float 64 instead of default 2023-11-07 12:23:44 -07:00
Roxana Bujack
bc0447ec00 only remove blanked cells if the number of cells matches the ghost array 2023-11-07 11:56:37 -07:00
Roxana Bujack
2955b834e7 use float default instead of 64 2023-11-07 10:46:38 -07:00
Roxana Bujack
48793964d0 use global ghost array name 2023-11-07 10:37:54 -07:00
Roxana Bujack
f8c9af4f11 add default empty ghost field for compatibility 2023-11-07 10:29:16 -07:00
Roxana Bujack
bc83184e70 remove ambiguity from default 2023-11-07 10:02:37 -07:00
Roxana Bujack
c720744fb9 enable partitioned rendering by ghost blanking and depth sorting 2023-11-06 17:42:43 -07:00
Jefferson Amstutz
c3489535af adjustments for upcoming ANARI-SDK changes 2023-11-01 20:39:48 -05:00
Sujin Philip
4eb5da26fa Merge topic 'fix-threshold-all-comps'
d825d2450 Add a regression test for issue #804
e0c5500a2 Simplify threshold worklet
6e1de4fa8 Fix threshold for any-point-all-components case

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <morelandkd@ornl.gov>
Merge-request: !3143
2023-10-30 12:32:59 -04:00
Sujin Philip
d825d2450e Add a regression test for issue #804 2023-10-26 10:09:03 -04:00
Sujin Philip
e0c5500a22 Simplify threshold worklet
Removes code that is no longer used.
2023-10-24 08:43:53 -04:00
Sujin Philip
6e1de4fa8f Fix threshold for any-point-all-components case
Threshold was producing wrong results with options `SetAllInRange(false)` and
`SetComponentToTestToAll` because the logic of running
`worklet::Threshold::RunIncremental` on individual components of the input
field and combining the results is incorrect for this case.

With this fix, component modes 'Any' and 'All' are handled by applying
the threshold criteria to each component of each value of the field,
combining the results, and running the threshold worklet on the result
array.
2023-10-23 11:23:30 -04:00
Kenneth Moreland
d356b78502 Merge topic 'users-guide'
b80b7e2e7 Add VTK-m User's Guide to source
feee5a2f9 Add cow dataset

Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: Vicente Bolea <vicente.bolea@kitware.com>
Merge-request: !3103
2023-10-19 12:55:46 -04:00
Jefferson Amstutz
47b6b5664a fix missing null handle check in volume mapper 2023-10-17 19:40:14 -05:00
Kenneth Moreland
b80b7e2e71 Add VTK-m User's Guide to source
This is a start of moving the VTK-m User's Guide into the VTK-m source.
This is only the start of the process. There are several goals of this
work.

1. Integrate the documentation into the source code better to better
   keep the code up to date.
2. Move the documentation over to Sphinx so that it can be posted online
   and be more easily linked.
3. Incoporate Doxygen into the guide to keep the documentation
   consistent.
4. Build the user guide examples as part of the VTK-m CI to catch
   compatibility changes quickly.
2023-10-17 11:31:27 -04:00
Jay
393db328a3 add multislice filter 2023-10-12 10:08:53 -04:00
Kenneth Moreland
cdff776a16 Merge topic 'arrayhandle-getcomponents'
9b992dcdd Add `GetNumberOfComponentsFlat` method to `ArrayHandle`

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Li-Ta Lo <ollie@lanl.gov>
Merge-request: !3137
2023-10-10 08:58:56 -04:00
Kenneth Moreland
3fe5b01855 Document glyph mapper classes
Also made some method names more consistent with the rest of VTK-m's
interface.
2023-10-03 14:13:37 -04:00
Kenneth Moreland
9b992dcdde Add GetNumberOfComponentsFlat method to ArrayHandle
Getting the number of components (or the number of flattened components)
from an `ArrayHandle` is usually trivial. However, if the `ArrayHandle` is
special in that the number of components is specified at runtime, then it
becomes much more difficult to determine.

Getting the number of components is most important when extracting
component arrays (or reconstructions using component arrays) with
`UnknownArrayHandle`. Previously, `UnknownArrayHandle` used a hack to get
the number of components, which mostly worked but broke down when wrapping
a runtime array inside another array such as `ArrayHandleView`.

To prevent this issue, the ability to get the number of components has been
added to `ArrayHandle` proper. All `Storage` objects for `ArrayHandle`s now
need a method named `GetNumberOfComponentsFlat`. The implementation of this
method is usually trivial. The `ArrayHandle` template now also provides a
`GetNumberOfComponentsFlat` method that gets this information from the
`Storage`. This provides an easy access point for the `UnknownArrayHandle`
to pull this information.
2023-10-03 10:31:38 -04:00
Kenneth Moreland
5b588a8a04 Merge topic 'update-warps'
1f07b0ecf Consolidate WarpScalar and WarpVector filter

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3115
2023-09-26 13:37:05 -04:00
Kenneth Moreland
65f6d2aa67 Fix issue with union placeholder on Intel compiler
We have run into an issue with some Intel compilers where if a `union`
contains a `struct` that has some padding for byte alignment, the value
copy might skip over that padding even when the `union` contains a different
type where those bytes are valid. This breaks the value copy of our
`Variant` class.

This is not a unique problem. We have seen the same thing in other
compilers and already have a workaround for when this happens. The
workaround creates a special struct that has no padding placed at the front
of the `union`. The Intel compiler adds a fun twist in that this
placeholder structure only works if the alignment is at least as high as
the struct that follows it.

To get around this problem, make the alignment of the placeholder `struct`
at large as possible for the size of the `union`.

It was taking too long to compile with a device. Redesign the
placeholder to be simpler and compile faster.
2023-09-26 07:25:25 -04:00
Kenneth Moreland
1f07b0ecf6 Consolidate WarpScalar and WarpVector filter
In reflection, the `WarpScalar` filter is surprisingly a superset of the
`WarpVector` features. `WarpScalar` has the ability to displace in the
directions of the mesh normals. In VTK, there is a distinction of normals
to vectors, but in VTK-m it is a matter of selecting the correct one. As
such, it makes little sense to have two separate implementations for the
same operation. The filters have been combined and the interface names have
been generalized for general warping (e.g., "normal" or "vector" becomes
"direction").

In addition to consolidating the implementation, the `Warp` filter
implementation has been updated to use the modern features of VTK-m's
filter base classes. In particular, when the `Warp` filters were originally
implemented, the filter base classes did not support more than one active
scalar field, so filters like `Warp` had to manage multiple fields
themselves. The `FilterField` base class now allows specifying multiple,
indexed active fields, and the updated implementation uses this to manage
the input vectors and scalars.

The `Warp` filters have also been updated to directly support constant
vectors and scalars, which is common for `WarpScalar` and `WarpVector`,
respectively. Previously, to implement a constant field, you had to add a
field containing an `ArrayHandleConstant`. This is still supported, but an
easier method of just selecting constant vectors or scalars makes this
easier.

Internally, the implementation now uses tricks with extracting array
components to support many different array types (including
`ArrayHandleConstant`. This allows it to simultaneously interact with
coordinates, directions, and scalars without creating too many template
instances.
2023-09-26 07:20:09 -04:00
Kenneth Moreland
c606e8106f Merge topic 'constant-amr-arrays'
7992e1b6b Store constant AMR arrays with less memory

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Roxana Bujack <bujack@lanl.gov>
Merge-request: !3131
2023-09-08 18:40:08 -04:00
Sujin Philip
757067a30f Merge topic 'fix-clip-centroid-points'
bda2d3d8e Clip: remap centroid interpolation points to used-only point

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Abhishek Yenpure <abhi.yenpure@kitware.com>
Merge-request: !3133
2023-09-07 10:15:41 -04:00
Kenneth Moreland
7992e1b6bf Store constant AMR arrays with less memory
The `AmrArrays` filter generates some cell fields that specify information
about the hierarchy, which are constant across all cells in a partition.
These were previously stored as an array with the same value throughout.
Now, the field is stored as an `ArrayHandleConstant`, which does not
require any real storage. Recent changes to VTK-m allow code to extract the
array as a component efficiently without knowing the storage type.

Fixes #794
2023-09-06 10:54:07 -06:00
Sujin Philip
bda2d3d8e1 Clip: remap centroid interpolation points to used-only point
Previously, Clip was updated to remove unused points from the input.
This requires a re-mapping of point ids after compaction. This
re-mapping was missed for the points used for interpolation of centorid
points.
2023-09-04 10:51:47 -04:00
Kenneth Moreland
5652c9ad3a Merge topic 'flying-edges-cell-fields' into release-2.1
8a9887023 Add regression test for flying edges interpolating cell fields
4f19ac608 Fix interpolation of cell fields with flying edges

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3129
2023-08-31 10:28:32 -04:00
Kenneth Moreland
e5723a4219 Merge topic 'flying-edges-cell-fields'
8a9887023 Add regression test for flying edges interpolating cell fields
4f19ac608 Fix interpolation of cell fields with flying edges

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3129
2023-08-31 10:28:32 -04:00
Kenneth Moreland
37334114a7 Merge topic 'fix-degenerates'
6e674ddea Fix degenerate polygon removal

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3126
2023-08-31 10:25:59 -04:00
Jefferson Amstutz
db4c5c3b98 initial implementation of ANARI rendering support 2023-08-30 15:52:48 -05:00
Kenneth Moreland
8a98870231 Add regression test for flying edges interpolating cell fields 2023-08-30 13:12:55 -05:00
Kenneth Moreland
4f19ac6082 Fix interpolation of cell fields with flying edges
The flying edges algorithm (used when contouring uniform structured cell
sets) was not interpolating cell fields correctly. There was an indexing
issue where a shortcut in the stepping was not incrementing the cell index.
2023-08-30 09:25:55 -05:00
Abdelilah Essiari
e0830a7af8 Merge topic 'ComputeBranchDecompositionInfo'
d3db3d1dd Implement computing branch decomposition info and added unit test

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3112
2023-08-29 11:23:39 -04:00
Kenneth Moreland
4446b5aa76 Merge topic 'arrayhandleconstant-extract-component'
14460dbb3 Support component extraction from ArrayHandleConstant better

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Li-Ta Lo <ollie@lanl.gov>
Merge-request: !3114
2023-08-29 10:23:22 -04:00
Kenneth Moreland
9c7b36ab61 Merge topic 'vecfromportal-operators'
508cc3acc Improve = operators in VecFromPortal

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Li-Ta Lo <ollie@lanl.gov>
Merge-request: !3113
2023-08-29 10:23:03 -04:00
Mingzhe Li
d3db3d1dd9 Implement computing branch decomposition info and added unit test 2023-08-25 19:22:59 -04:00
Kenneth Moreland
6e674ddea6 Fix degenerate polygon removal
There was a bug in `CleanGrid` when removing degenerate polygons where it
would not detect if the first and last point were the same. This has been
fixed.

There was also an error with function overloading that was causing 0D and
3D cells to enter the wrong computation for degenerate cells. This has also
been fixed.

Fixes #796
2023-08-24 16:46:12 -04:00
Zhe Wang
0c77fcddec Merge topic 'add_multiplane_for_clip'
21a58a294 add multi plane for clip

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3124
2023-08-23 16:06:39 -04:00
Sujin Philip
e734f14b88 LookupTable: Shift computed idx by 1
The below range value is at index 0 and the actual table begins fron
index 1.
2023-08-23 12:55:13 -04:00
Jay
21a58a294c add multi plane for clip 2023-08-23 02:32:17 +00:00
Kenneth Moreland
14460dbb31 Support component extraction from ArrayHandleConstant better
Previously, `ArrayHandleConstant` did not really support component
extraction. Instead, it let a fallback operation create a full array on
the CPU.

Component extraction is now quite efficient for `ArrayHandleConstant`. It
creates a basic `ArrayHandle` with one entry and sets a modulo on the
`ArrayHandleStride` to access that value for all indices.
2023-08-18 09:44:19 -04:00
Sujin Philip
3f3228de8e LookupTable: Shift computed idx by 1
The below range value is at index 0 and the actual table begins fron
index 1.
2023-08-18 08:29:50 -04:00
Abhishek Yenpure
969e55048b Merge topic 'flow_restrucutre'
67b7543a3 Adding documentation for flow filter restructure
dbc873efa Changes to address feedback from MR
67716402b Correct export in class declaration
6d1d4f90a Fixing linking issues for flow Analysis class
adcb42455 Removing unnecessary file
78ca3f301 Fixing linking issues for flow Analysis class
0e1ade83a Fixing linking issues for flow Analysis class
12a3bc94e Adding test dependency of filter_flow on tests
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3087
2023-08-17 22:17:42 -04:00
Abhishek Yenpure
dbc873efa9 Changes to address feedback from MR
--  Removing `.inl` files
  --  Removing large comment code blocks
2023-08-17 09:34:00 -07:00
Vicente Bolea
67716402bc Correct export in class declaration
- Update Analysis.h to have consistent export symbols
- Update Analysis.h -- try to fix MSVC linking errors
- Fixup exports
2023-08-17 09:33:29 -07:00
Kenneth Moreland
8bb664de85 Support any cell type in MIR filter
Previously, the MIR filter ran a check the dimensionality of the cells in
its input data set to make sure they conformed to the algorithm. The only
real reason this was necessary is because the `MeshQuality` filter can only
check the size of either area or volume, and it has to know which one to
check. However, the `CellMeasures` filter can compute the sizes of all
types of cells simultaneously (as well as more cell types). By using this
filter, the MIR filter can skip the cell type checks and support more mesh
types.
2023-08-17 10:11:25 -04:00