Commit Graph

7775 Commits

Author SHA1 Message Date
Kenneth Moreland
796ec9638e Document data that comes from VisIt tutorial
Some of the data sets that are included from VTK-m are derived from the
VisIt Tutorial Data (https://www.visitusers.org/index.php?title=Tutorial_Data).
These are covered by the VisIt license, as communicated by Eric Brugger.

Although the license for these data is compatible with VTK-m's license,
we should still attribute the source of the data and make clear the
copyrights. The data are moved into the third_party directory, and
readmes are added to document everything.

The noise.vtk and noise.bov files have been renamed example.vtk and
example_temp.bov to match the name of the file in the VisIt tutorial
data archive. The ucd3d.vtk file, which is similar to the curv3d.silo
data but altered, has been removed. It was not used for any tests. It
was referenced in a couple of example programs, but the reference is
easily changed.
2023-03-14 12:25:21 -06: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
Vicente Adolfo Bolea Sanchez
36912c16dc kokkos: disable volatile when kokkos >= 3.7 2023-02-17 20:29:38 -05:00
Vicente Adolfo Bolea Sanchez
6bfb0cedc5 kokkos: disable volatile when kokkos >= 3.7
(cherry picked from commit c32e67aa6d394c2267f95bb1306fe705b12bfc13)
2023-02-16 15:49:29 -05:00
Mark Bolstad
7d3ea2126d Changes for compiling with SYCL
- Remove volatile keyword from `join'
  - Remove various `printf' in device code
2023-02-15 14:38:59 -07:00
Kenneth Moreland
5fd7a3711f Merge topic 'pass-field-fixes' into release-2.0
5a141349a Fix the passing of fields in filters

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2985
2023-02-14 12:43:33 -05:00
Kenneth Moreland
5a141349a9 Fix the passing of fields in filters
While updating the user's guide, I noticed a couple of minor problems
with how filters map fields. First, if a filter was using
`CreateResultCoordinateSystem`, it did not respect the
`PassCoordinateSystems` flag. Second, if both an `initializer_list` and
a mode was given to `SetFieldsToPass`, the mode was captured
incorrectly. Both problems are corrected.
2023-02-13 14:06:43 -07:00
Sujin Philip
a51cc2e153 Fix unreferenced local variable warning 2023-02-13 13:29:26 -05:00
Sujin Philip
48059d0de3 Merge topic 'vtkm-abort' into release-2.0
42c6959be Add Abort execution feature

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2974
2023-02-13 12:41:06 -05:00
Sujin Philip
42c6959be3 Add Abort execution feature
Initial changes to add support for aborting execution.
2023-02-06 14:29:58 -05:00
Sujin Philip
4c45598d35 Fix compile issues when using cuda 12
CUDA 12 adds a `cub::Swap` function that creates ambiguity with `vtkm::Swap`.
This happens when a function from the `cub` namespace is called with an object
of a class defined in the `vtkm` namespace as an argument. If that function
has an unqualified call to `Swap`, it results in ADL being used, causing the
templated functions `cub::Swap` and `vtkm::Swap` to conflict.
2023-02-06 12:26:55 -05:00
Sujin Philip
ecb6f8d6d4 Merge topic 'refactor-runtimedevicetracker' into release-2.0
c7a2a7b30 Refactor RuntimeDeviceTracker

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2971
2023-01-31 10:44:50 -05:00
Sujin Philip
c7a2a7b30e Refactor RuntimeDeviceTracker
Simplifies the code by using modern C++ features
2023-01-30 09:41:19 -05:00
Vicente Bolea
ff340c268a Merge topic 'fix-testing-h' into release-2.0
a6f2a93c4 testing: remove vtkm/cont/testing relative path

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <morelandkd@ornl.gov>
Merge-request: !2965
2023-01-20 02:13:27 -05:00
Vicente Adolfo Bolea Sanchez
a6f2a93c40 testing: remove vtkm/cont/testing relative path 2023-01-19 17:11:20 +09:00
Kenneth Moreland
50a4935825 Merge topic 'document-field-index-order' into release-2.0
c0e0032e1 Clarify field index ordering in Doxygen

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2959
2023-01-13 11:14:36 -05:00
Kenneth Moreland
3568adf5b3 Merge topic 'sprintf-warning' into release-2.0
f275972e3 Resolve sprintf warning

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Vicente Bolea <vicente.bolea@kitware.com>
Merge-request: !2961
2023-01-13 10:53:47 -05:00
Kenneth Moreland
c0e0032e1d Clarify field index ordering in Doxygen
The fields in a `DataSet` are indexed from `0` to `GetNumberOfFields() - 1`.
It is natural to assume that the fields will be indexed in the order that
they are added, but they are not. Rather, the indexing is arbitrary and can
change any time a field is added to the dataset.

To make this more clear, Doxygen documentation is added to the `DataSet`
methods to inform users to not make any assumptions about the order of
field indexing.
2023-01-10 10:42:49 -07:00
Kenneth Moreland
f275972e3b Resolve sprintf warning
The latest verson of Xcode clang warns about using sprintf because of
its inherent vulnerability. Change it to snprintf.
2023-01-10 10:38:29 -07:00
Vicente Adolfo Bolea Sanchez
d5ce967890 CMAKE: fix vtkm devices namespaces 2022-12-26 13:40:12 -05:00
Kenneth Moreland
99829cf617 Hide Particle class members
The member variables of the `vtkm::Particle` classes are now hidden. This
means that external code will not be directly able to access member
variables like `Pos`, `Time`, and `ID`. Instead, these need to be retrieved
and changed through accessor methods.

This follows standard C++ principles. It also helps us future-proof the
classes. It means that we can provide subclasses or alternate forms of
`Particle` that operate differently. It also makes it possible to change
interfaces while maintaining a deprecated interface.
2022-12-13 13:19:21 -05:00
Vicente Adolfo Bolea Sanchez
049d0cca8c cmake: namespace vtkm export targets 2022-12-09 18:46:56 -05:00
Kenneth Moreland
3e7cde8ecb Change auto seed behavior in PerlinNoise source
The PerlinNoise source has a mode where if a seed is not set, it will
choose a new seed every time it is executed. It did this by using the
value 0 as an indicator to do this (and initializing the Seed to 0).
However, there was a problem with one of the benchmarks that was
specifically setting the seed to 0 and getting unexpected results.

Fix the problem by adding a separate, hidden member of the PerlinNoise
class that keeps track of whether to generate new seeds or not.
2022-12-06 12:21:04 -07:00
Kenneth Moreland
22e2e5ff32 Merge topic 'source-point-dims'
aa7b83bb2 Handle random seed generation better for PerlinNoise
84bc72312 Make source parameters more clear

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Li-Ta Lo <ollie@lanl.gov>
Merge-request: !2933
2022-12-04 09:27:21 -05:00
Kenneth Moreland
405643ddbb Rename NewFilter base classes to Filter
During the VTK-m 1.8 and 1.9 development, the filter infrastructure was
overhauled. Part of this created a completely new set of base classes. To
avoid confusion with the original filter base classes and ease transition,
the new filter base classes were named `NewFilter*`. Eventually after all
filters were transitioned, the old filter base classes were deprecated.

With the release of VTK-m 2.0, the old filter base classes are removed. The
"new" filter base classes are no longer new. Thus, they have been renamed
simply `Filter` (and `FilterField`).
2022-12-01 13:07:56 -07:00
Kenneth Moreland
aa7b83bb2c Handle random seed generation better for PerlinNoise
Before, the result of `time` was used for the RNG. This change uses
`std::random_device` for a better seed when possible.
2022-12-01 08:53:54 -07:00
Kenneth Moreland
84bc723121 Make source parameters more clear
Originally, most of the sources used constructor parameters to set the
various options of the source. Although convenient, it was difficult to
keep track of what each parameter meant. To make the code more clear,
source parameters are now set with accessor functions (e.g.
`SetPointDimensions`). Although this makes code more verbose, it helps
prevent mistakes and makes the changes more resilient to future changes.
2022-12-01 08:13:58 -07:00
Kenneth Moreland
19f752960f Remove Filter::CreateResult that takes a vector of CoordinateSystems
This method is principally obsolete and should have been removed when
coordinate systems were converted into fields. I noticed it was still
there when updating the documentation.

This removal required some changes to the CleanGrid filter, but this
actually simplified the code.
2022-11-30 14:02:49 -07:00
Christoph Gohlke
0575e036d9 Fix unresolved external symbol __popcnt on win-arm64 2022-11-27 19:51:17 -05:00
Christoph Gohlke
92a7bfc680 Fix unresolved external symbol __popcnt on win-arm64 2022-11-27 19:46:13 -05:00
Dave Pugmire
72a6e27b99 Update CMakeLists.txt 2022-11-22 10:48:29 -05:00
Dave Pugmire
7d2d7fe1cc Add a new unstructured cell locator 2022-11-22 09:51:40 -05:00
Kenneth Moreland
2ddaa36858 Merge topic 'tube-cell-fields'
2bcc9aa70 Fix handling of cell fields in Tube filter

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2911
2022-11-21 16:43:03 -05:00
Kenneth Moreland
3e1339f9a7 Remove deprecated features from VTK-m
With the major revision 2.0 of VTK-m, many items previously marked as
deprecated were removed. If updating to a new version of VTK-m, it is
recommended to first update to VTK-m 1.9, which will include the deprecated
features but provide warnings (with the right compiler) that will point to
the replacement code. Once the deprecations have been fixed, updating to
2.0 should be smoother.
2022-11-17 07:12:31 -06:00
Kenneth Moreland
4ca64f0f09 Back out of DataSet::CopyPartsFromExcept method
This method is too unwieldy. Instead go back to `CopyStructure` and
other direct copy methods.
2022-11-11 07:53:20 -07:00
Kenneth Moreland
2d30e6d45a Coordinate systems are stored as Fields
Previously, `DataSet` managed `CoordinateSystem`s separately from `Field`s.
However, a `CoordinateSystem` is really just a `Field` with some special
attributes. Thus, coordiante systems are now just listed along with the
rest of the fields, and the coordinate systems are simply strings that
point back to the appropriate field. (This was actually the original
concept for `DataSet`, but the coordinate systems were separated from
fields for some now obsolete reasons.)
2022-11-11 06:17:58 -07:00
Kenneth Moreland
dbc2364e35 Merge topic 'ghost-cell-api'
a58c2cdac Change how cell ghost levels are set

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2924
2022-11-11 08:00:29 -05:00
Kenneth Moreland
44a976f905 Merge topic 'zfp-output-fields'
478f765db Attach compressed ZFP data as WholeDatSet field

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2910
2022-11-10 12:41:55 -05:00
Kenneth Moreland
bd0a59a3fd Merge topic 'fix-log-scope'
74ed1c4cd Fix VTKM_LOG_SCOPE

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2923
2022-11-10 12:18:41 -05:00
Kenneth Moreland
478f765db2 Attach compressed ZFP data as WholeDatSet field
Previously, point fields compressed by ZFP were attached as point fields
on the output. However, using them as a point field would cause
problems. So, instead attache them as `WholeDataSet` fields.

Also fixed a problem where the 1D decompressor created an output of the
wrong size.
2022-11-10 08:18:11 -07:00
Kenneth Moreland
74ed1c4cd0 Fix VTKM_LOG_SCOPE
The `VTKM_LOG_SCOPE` macro was not working as intended. It was supposed
to print a log message immediately and then print a second log message
when leaving the scope along with the number of seconds that elapsed
between the two messages.

This was not what was happening. The second log message was being
printed immediately after the first. This is because the scope was taken
inside of the `LogScope` method. The macro has been rewritten to put the
tracking in the right scope.
2022-11-10 07:12:19 -07:00
Kenneth Moreland
a58c2cdacf Change how cell ghost levels are set
The name of the methods were changed from `AddGhostCellField` to
`SetGhostCellField` since only one field can be marked as the cell
ghost. Also automatically select a field that matches
`GetGlobalCellFieldName` if nothing else is set.
2022-11-09 08:40:37 -07:00
Tushar Athawale
09de1c8863 Unit test update for default and user-specified ghost field 2022-11-04 17:52:10 -04:00
Tushar Athawale
7414e02b62 added flag for SetGhostCellAsField function 2022-11-04 17:52:10 -04:00
Tushar Athawale
72f8bb9cce Check if default ghost cell field is requested for use 2022-11-04 17:52:10 -04:00
Tushar Athawale
63e7b2336a Set and Get methods for UseGhostCellsAsField 2022-11-04 17:52:10 -04:00
Tushar Athawale
fc44a61001 Added a flag UseGhostCellsAsField for default use 2022-11-04 17:52:10 -04:00
Kenneth Moreland
f3fa4f127a Allow FieldSelection to simultaneously include and exclude fields
The basic use of `FieldSelection` is to construct the class with a mode
(`None`, `Any`, `Select`, `Exclude`), and then specify particular fields
based off of this mode. This works fine for basic uses where the same code
that constructs a `FieldSelection` sets all the fields.

But what happens, for example, if you have code that takes an existing
`FieldSelection` and wants to exclude the field named `foo`? If the
`FieldSelection` mode happens to be anything other than `Exclude`, the code
would have to go through several hoops to construct a new `FieldSelection`
object with this modified selection.

To make this case easier, `FieldSelection` now has the ability to specify
the mode independently for each field. The `AddField` method now has an
optional mode argument the specifies whether the mode for that field should
be `Select` or `Exclude`.

In the example above, the code can simply add the `foo` field with the
`Exclude` mode. Regardless of whatever state the `FieldSelection` was in
before, it will now report the `foo` field as not selected.
2022-11-03 12:57:59 -06:00
Kenneth Moreland
6db2a8ea37 Merge topic 'cont-portal-token'
54f0ef2a8 Support providing a Token to ReadPortal and WritePortal

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Li-Ta Lo <ollie@lanl.gov>
Merge-request: !2916
2022-11-02 13:06:59 -04:00
Kenneth Moreland
e57d511823 Merge topic 'field-length-checking'
63702d5d1 Check to make sure that the fields in a DataSet are the proper length

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Li-Ta Lo <ollie@lanl.gov>
Merge-request: !2914
2022-11-02 08:54:04 -04:00