Commit Graph

666 Commits

Author SHA1 Message Date
Mingzhe Li
a77e5b3c63 Compute volume and select top volume branches 2024-05-17 14:16:50 -07:00
Gunther H. Weber
27002d0209 Fix distributed contour tree for marching cubes without using full boundary 2024-05-16 11:51:38 -07:00
Gunther H. Weber
124c58eb48 Minor fixes for distributed contour tree example 2024-05-10 15:09:03 -07:00
Kenneth Moreland
28683930e3 Updated constructors for mesh info classes to conform with other filters
The `CellMeasures` and `MeshQuality` filters had constructors that took the
metric that the filter should generate. However, this is different than the
iterface of the rest of the filters. To make the interface more consistent,
these filters now have a default (no argument) constructor, and the metric
to compute is selected via a method. This makes it more clear what is being
done.

In addition, the documentation for these two classes is updated.
2024-03-07 20:47:09 -05:00
Kenneth Moreland
8ec6fc2562 Fix deprecation warning in example
One of the examples still had a deprecation warning from !3195.
2024-02-21 17:15:32 -05:00
Kenneth Moreland
a17ebdf52a Deprecated vtkm::filter::FilterField
The original design of the filter base class required several specialized
base classes to control what information was pulled from the input
`DataSet` and provided to the derived class. Since the filter base class was
redesigned, the derived classes all get a `DataSet` and pull their own
information from it. Thus, most specialized filter base classes became
unnecessary and removed.

The one substantial exception was the `FilterField`. This filter base class
managed input and output arrays. This was kept separate from the base
`Filter` because not all filters need the ability to select this
information.

That said, this separation has not been particularly helpful. There are
several other features of `Filter` that does not apply to all subclasses.
Furthermore, there are several derived filters that are using `FilterField`
merely to pick a single part, like selecting a coordinate system, and
ignoring the rest of the abilities.

Thus, it makes more sense to deprecate `FilterField` and have these classes
inherit directly from `Filter`.
2024-02-12 08:13:19 +09:00
Vicente Adolfo Bolea Sanchez
5612d26892 cmake: Add makefile against install test 2023-09-11 14:27:36 -04:00
Mingzhe Li
d3db3d1dd9 Implement computing branch decomposition info and added unit test 2023-08-25 19:22:59 -04:00
Kenneth Moreland
898115a410 Add copyright notice to scipts and configuration files
There are numerous scripts and configuration files defined in the CI setup
and elsewhere that were missing the copyright statement. Add more types
of files to check in the CopyrightStatement test, and update the files
with the appropriate statement.
2023-07-25 11:05:40 -06:00
Li-Ta Lo
04b6d96aab enable copying for Actor and ConnectivityProxy 2023-06-02 10:32:44 -06:00
Li-Ta Lo
b2880566d5 move Actor 2023-06-01 12:36:23 -06:00
Li-Ta Lo
6b0d2e369c use unique_ptr for PIMPL Actor 2023-06-01 11:28:49 -06:00
Gunther H. Weber
e598fd6351 Refer to field by name instead of index to fix crash in contour tree exmaple. 2023-04-07 19:05:07 -07:00
Kenneth Moreland
94d8698d16 Merge topic 'data-license'
f545feba8 Add changelog for documenting data license
a24358a1a Document source of WarpX files
60559ce9b Document the source of venn250.vtk
796ec9638 Document data that comes from VisIt tutorial
06391c4e6 Clarify license for ECL data

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Vicente Bolea <vicente.bolea@kitware.com>
Merge-request: !3016
2023-03-20 09:42:41 -04:00
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
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
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
oruebel
44c2761740 Remove bad import and fix warning in ContourTreeAppDataIO.h 2023-01-16 18:26:32 -08:00
oruebel
113e6be327 Remove bad import in ContourTreeApp distributed 2023-01-16 18:25:48 -08:00
oruebel
27d3d403f6 Remove bade import in streamline_mpi example 2023-01-16 18:25:17 -08:00
oruebel
0e5aeb10fe Update contour_tree_distributed/CMakeLists.txt 2023-01-16 18:08:58 -08:00
oruebel
565772854a Merge branch 'master' into add_hdf5_reader 2023-01-16 17:56:36 -08: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
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
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
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
ad1e7b5bdb Add module mechanism
This mechanism sets up CMake variables that allow a user to select which
modules/libraries to create. Dependencies will be tracked down to ensure
that all of a module's dependencies are also enabled.

The modules are also arranged into groups.
Groups allow you to set the enable flag for a group of modules at once.
Thus, if you have several modules that are likely to be used together,
you can create a group for them.

This can be handy in converting user-friendly CMake options (such as
`VTKm_ENABLE_RENDERING`) to the modules that enable that by pointing to
the appropriate group.
2022-10-26 12:51:05 -06:00
Kenneth Moreland
6f84d938aa AddHelp option to Initialize should add --help argument
When you used the `AddHelp` option to `Initialize`, it added a
`--vtkm-help` option and `-h`, but not `--help`, which was weird. It
also avoided adding `--vtkm-help` when `AddHelp` was not used, but did
print out a usage statement under other circumstances.

This changes the behavior to add `--vtkm-help`, `--help`, and `-h` when
`AddHelp` is on and only `--vtkm-help` when it is off.
2022-10-24 14:38:37 -06:00
Vicente Adolfo Bolea Sanchez
db770e7598 CI: Limit usage of hipcc and use -O0 2022-09-30 17:04:25 -04:00
Kenneth Moreland
de2f2b59ba Deprecate old filter base classes and supporting classes 2022-09-27 06:52:44 -06:00
Gunther H. Weber
49dd19408f Do not overthink ComputeNumberOfBlocksPerAxis 2022-09-23 18:00:03 -07:00
Gunther H. Weber
e2968ca244 Revised ComputeNumberOfBlocksPerAxis inspired by Ken Moreland's suggestion 2022-09-23 15:08:46 -07:00
Gunther H. Weber
ede6bb0016 Replace the way data is split in contour tree augmented example 2022-09-23 15:08:41 -07:00
Dave Pugmire
ee31217da5 Convert LagrangianStructures filter to NewFilter 2022-09-20 13:40:50 -06:00
oruebel
fbc313186f Fix error in ContourTreeAppDataIO 2022-09-20 01:42:15 -07:00
Oliver Ruebel
63ec3f3bcb Updated contour tree distributed IO to use CellSetStructured 2022-09-20 01:22:16 -07:00
Oliver Ruebel
b0952365f6 Merge remote-tracking branch 'origin/master' into add_hdf5_reader 2022-09-20 00:07:40 -07:00
Mathieu Westphal
70ba476bd5 Fix doxygen groups 2022-09-09 10:37:31 +08:00
oruebel
eda4b1be11 Run branchDecomposition without requiring save and add timer 2022-09-07 05:11:39 -07:00
Li-Ta Lo
f1a11832c0 restore device compiler for HistogramMPI 2022-08-09 14:09:25 -06:00
Li-Ta Lo
ce6cf2498a remove unused headers, restore device compiler for worklet example 2022-08-09 11:07:23 -06:00
Li-Ta Lo
0ecfdcb2fa Merge branch 'master' into remove_examples_device_compiler 2022-08-09 09:52:24 -06:00
Gunther Weber
9551175dd4 Merge topic 'contour-tree-spatial-decomposition-refactor'
cd3fe3d47 Eliminate need for SpatialDecomposition in contour tree filters.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2825
2022-08-03 13:11:58 -04:00
Gunther H. Weber
cd3fe3d47d Eliminate need for SpatialDecomposition in contour tree filters.
This commit address issue #713 and removes the need to pass information
about the spatial decomposition (block origins, block sizes, block index
and blocks per dimension) to the contour tree filter. Block origin
information is added to CellSetStructured (as GlobalPointSize) and the
distributed contour tree filter will get this information from
CellSetStructured instead of expecting it as parameters to the
constructor. Information about blocks per dimension and block indices
are computed from the information in CellSetStructure albeit requiring
global communication across all ranks. To avoid this communication cost,
the caller of the filter may explicitly specify this information via the
SetBlockIndices() method.
2022-08-02 20:01:41 -07:00
Li-Ta Lo
9e2148dbf0 remove device compiler 2022-08-01 16:28:18 -06:00
Dave Pugmire
e1fbfea305 Remove device compiler dependencies. 2022-08-01 08:00:46 -04:00
Dave Pugmire
6a200c62d9 Cuda fixes: device in headers.. 2022-07-29 13:39:38 -04:00