Commit Graph

8042 Commits

Author SHA1 Message Date
Kenneth Moreland
4a4466e7c8 Disable Thrust patch that is no longer needed in modern Thrust
There is a Thrust patch that works around an issue in Thrust 1.9.4
(https://github.com/NVIDIA/thrust/issues/972). The underlying issue
should be fixed in recent versions. In recent versions of CUDA, the patch
breaks (https://gitlab.kitware.com/vtk/vtk-m/-/issues/818).

This change fixes the problem by disabling the patch where it is not
needed.
2024-06-04 11:01:43 -04:00
Kenneth Moreland
a87adb479f Merge topic 'safe-cuda-runtime-config' into release-2.1
f42f59d68 Fix crash when CUDA device is disabled

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Gunther Weber <ghweber@lbl.gov>
Merge-request: !3216
2024-05-17 08:20:38 -04:00
Kenneth Moreland
af3ab951c4 Merge topic 'fix-old-cuda-atomics' into release-2.1
78e06d5dc Fix old cuda atomics

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3209
2024-05-15 15:42:51 -04:00
Kenneth Moreland
f42f59d685 Fix crash when CUDA device is disabled
There was an issue where if VTK-m was compiled with CUDA support but then
run on a computer where no CUDA device was available, an inappropriate
exception was thrown (instead of just disabling the device). The
initialization code should now properly check for the existance of a CUDA
device.
2024-05-03 17:03:20 -04:00
Kenneth Moreland
49518e5054 Fix bug with ExtractGeometry filter
The `ExtractGeometry` filter was outputing datasets containing
`CellSetPermutation` as the representation for the cells. Although this is
technically correct and a very fast implementation, it is essentially
useless. The problem is that any downstream processing will have to know
that the data has a `CellSetPermutation`. None do (because the permutation
can be on any other cell set type, which creates an explosion of possible
cell types).

Like was done with `Threshold` a while ago, this problem is fixed by deep
copying the result into a `CellSetExplicit`. This behavior is consistent
with VTK.
2024-05-03 09:22:56 -04:00
Kenneth Moreland
78e06d5dcd Fix old cuda atomics
There are some overloads for atomic adds of floating point numbers for
older versions of cuda that do not include them directly. These were
misnamed and thus not properly overloading the generic implementation.
This caused compile errors with older versions of cuda.
2024-04-02 13:45:15 -04:00
Kenneth Moreland
3c9249871a Merge topic 'contour-int-isovalue' into release-2.1
8fc341e71 Allow floating-point isovalues for contours of integer fields

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3169
2024-01-02 11:28:56 -05:00
Kenneth Moreland
23fbedf54d Order the VTK scalar types to favor used types
Reorder the `VTKScalarTypes` to put the repeated types at the bottom.
This will avoid using types like `long` that are essentially the same as
other types (e.g. `long long`) but will still be considered different.
This causes problems when checking against some VTK types (such as
`vtkIdType`).
2023-12-17 22:56:09 -07:00
Kenneth Moreland
053237e900 Favor base types used by VTK-m when making new basic array
When calling `NewInstanceBasic` on an `UnknownArrayHandle`, all C base
types will be tried. In some cases, multiple type will match the same
array. When this happens, favor types used by VTK-m (e.g. `long long`
over `long`).
2023-12-17 22:49:54 -07:00
Kenneth Moreland
8fc341e716 Allow floating-point isovalues for contours of integer fields
The flying edges version of the contouring filter converted the isovalues
provided into the same type as the field. This is fine for a floating point
field, but for an integer field the isovalue was truncated to the nearest
integer.

This is problematic because it is common to provide a fractional isovalue
(usually N + 0.5) for integer fields to avoid degenerate cases of the
contour intersecting vertices. It also means the behavior changes between
an integer type that is directly supported (like a `signed char`) or an
integer type that is not directly supported and converted to a floating
point field (like potentially a `char`).

This change updates the worklets to allow the isovalue to have a different
type than the field and to always use a floating point type for the
isovalue.
2023-12-15 16:26:17 -07:00
Ben Boeckel
14a276401b loguru: do not declare an install interface
The headers are not installed, so there's nothing to refer to.
2023-12-04 11:34:19 -05:00
Vicente Bolea
763293a97e Merge topic 'fix-rocthrust-dep' into release-2.1
c9ec6ae6a kokkos: let link vtkm_cont to roc::rocthrust

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3160
2023-11-30 22:08:36 -05:00
Vicente Adolfo Bolea Sanchez
c9ec6ae6a6 kokkos: let link vtkm_cont to roc::rocthrust
Also reorder the declarion of the option VTKm_ENABLE_KOKKOS_THRUST
to be set before calling VTKmDeviceAdapters.
2023-11-30 18:18:03 -05: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
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
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
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
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
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
Abhishek Yenpure
6d1d4f90ae Fixing linking issues for flow Analysis class 2023-08-16 18:23:22 -07:00
Abhishek Yenpure
adcb42455f Removing unnecessary file 2023-08-16 18:23:22 -07:00
Abhishek Yenpure
78ca3f3017 Fixing linking issues for flow Analysis class 2023-08-16 18:23:22 -07:00
Abhishek Yenpure
0e1ade83a0 Fixing linking issues for flow Analysis class 2023-08-16 18:23:22 -07:00
Abhishek Yenpure
12a3bc94e6 Adding test dependency of filter_flow on tests 2023-08-16 18:23:22 -07:00
Abhishek Yenpure
c69023cba3 Separating Analysis into header and source 2023-08-16 18:23:22 -07:00
Abhishek Yenpure
2a7149481e Moving base class flow filters into CXX 2023-08-16 18:23:22 -07:00
Abhishek Yenpure
6f57f33318 Fixing streamline output for no step 2023-08-16 18:23:22 -07:00
Abhishek Yenpure
1026b6dbaf Removing particle property num punctures 2023-08-16 18:23:22 -07:00
Abhishek Yenpure
9c83bd983b Removing XGC Filter 2023-08-16 18:23:22 -07:00
Abhishek Yenpure
9d840a88bd Fixing WarpXStreamlines compile problems 2023-08-16 18:23:22 -07:00
Abhishek Yenpure
e6545f0ca4 Fixing issues after rebasing 2023-08-16 18:23:22 -07:00
Abhishek Yenpure
0b76f44c8d Removing cout from device code 2023-08-16 18:23:22 -07:00
Abhishek Yenpure
6f85dee2f6 Changing solver type for WarpX to Euler 2023-08-16 18:23:22 -07:00
Abhishek Yenpure
e6291a9b91 Adding specialization for Particle/Field for XGC
Adding XGC Field
Adding updates to XGCField
Adding Updates for generalization
Adding WarpXStreamlines and Streamsurface
Adding changes to support XGC Poincare
Finalizing XGC analysis
2023-08-16 18:23:22 -07:00
Kenneth Moreland
34f07c37cf Merge topic 'ghost-cell-remove-interface'
a62eb7eb8 Update the interface and documentation of GhostCellRemove

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3110
2023-08-15 10:16:56 -04:00
Kenneth Moreland
a62eb7eb88 Update the interface and documentation of GhostCellRemove
The `GhostCellRemove` filter had some methods inconsistent with the naming
convention elsewhere in VTK-m. The class itself was also in need of some
updated documentation. Both of these issues have been fixed.

Additionally, there were some conditions that could lead to unexpected
behavior. For example, if the filter was asked to remove only ghost cells
and a cell was both a ghost cell and blank, it would not be removed. This
has been updated to be more consistent with expectations.
2023-08-08 21:43:38 -04:00
Kenneth Moreland
8ae76c27f1 Save statistics of each partition
The original intent of calling the `Statistics` filter on a
`PartitionedDataSet` was that the resulting `PartitionedDataSet` would
have partitions matching the input giving the statics of each partition
(as well as the overall statistics in global fields). There is a comment
in the code that says as much.

However, the partitioned version of `Execute` deleted the statistics.
This corrects the behavior by leaving in the partitions' statistics.
This is also now being tested.
2023-08-08 21:41:04 -04:00
Vicente Bolea
5c6716f8e8 Merge topic 'fix-macos-build'
d800a33c2 remove unused variables
bba3f1fa5 macos: use Xcode 14.2

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <morelandkd@ornl.gov>
Merge-request: !3117
2023-08-07 20:20:55 -04:00
Vicente Adolfo Bolea Sanchez
d800a33c2e remove unused variables 2023-08-07 14:51:06 -04:00
abessiari
75b4998de7 added fix using read portal after sort and unit test using on the fly dataset 2023-07-31 23:45:32 -04:00
Kenneth Moreland
728ca6366f Compile CompositeVectors filter with regular compiler
The CompositeVectors filter does not run any worklet of its
own. It uses precompiled array manipulation and copies for
its implementation.

It shouldn't matter if a device compiler is used. (It should
be a quick compile.) But for some reason the nvcc compiler
was choking on an `auto`. Rather than figure out why nvcc is
barfing, I just stopped using it for this file.
2023-07-09 20:17:53 -04:00
Sujin Philip
90f09e8bcc Merge topic 'advanced-compute-range'
01bacbcde Advanced Compute Range

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <morelandkd@ornl.gov>
Merge-request: !3082
2023-07-05 14:48:12 -04:00
Sujin Philip
01bacbcde0 Advanced Compute Range
Add support for masks, vector magnitude range (L2 norm), and finite values only
range computations.
2023-07-04 11:54:56 -04:00