Commit Graph

444 Commits

Author SHA1 Message Date
Kenneth Moreland
9fc9796cda Change HelloWorklet filter to use simplified field specification 2019-08-07 09:30:25 -06:00
Kenneth Moreland
045094e1bb Fix warning about unused variable in catch 2019-08-07 09:24:54 -06:00
Kenneth Moreland
721b25a127 Get rid of unified_memory directory in examples
This was not actually referenced by the CMake build anywhere. According
to Ollie, this "did not serve its purpose."
2019-08-07 09:14:02 -06:00
Kenneth Moreland
dc59d7ebe0 Get rid of tau_timing directory in examples
This was not actually referenced by the CMake build anywhere. According
to Dave, this is a "dead turd."
2019-08-07 09:14:01 -06:00
Kenneth Moreland
eb50948181 Update tetrahedra examples
The examples were way more complicated than necessary.
2019-08-07 09:14:00 -06:00
Kenneth Moreland
7194592603 Remove streamline example
This is a very old example. Just about everything it does is using an
old style that is either not well supported or discouraged. The whole
example should be rewritten to be more modern.
2019-08-07 09:14:00 -06:00
Kenneth Moreland
b42b839a11 Remove rendering example
This is an old example that uses the OpenGL rendering units that are
largely deprecated. Other more modern rendering examples exist, such as
in demo.
2019-08-07 09:13:59 -06:00
Kenneth Moreland
f2ce7a44ca Remove isosurface example
The demo example already creates an isosurface. Between this and the
marching cubes test, this is covered.
2019-08-07 09:13:58 -06:00
Kenneth Moreland
bd94573020 Remove hello_world example
This example was way too complicated to be considered "hello_world" and
it's graphics are too much of a pain to maintain. The demo example
covers the high points.
2019-08-07 09:13:57 -06:00
Kenneth Moreland
738ab0e9ad Simplify demo example 2019-08-07 09:13:56 -06:00
Kenneth Moreland
fb3c9e8186 Modernize clipping example
That example was written way before the filter classes ever existed. Now
by using the clip filter, everything becomes very simple.
2019-08-07 09:13:56 -06:00
Kenneth Moreland
7a0a35b29f Add hello worklet example
This is a simple "hello world" example in VTK-m of implementing some
algorithm that runs in parallel.
2019-08-07 09:13:55 -06:00
Kenneth Moreland
cc4d927955 Fix type conversion warnings in PolyLineArchimedeanHelix example 2019-08-07 09:13:54 -06:00
Robert Maynard
d7b2ff04c9 Provide a simpler way to restrict value types for filters 2019-08-06 17:04:07 -04:00
Abhishek Yenpure
5bd6046b95 Adding LCS example 2019-08-05 13:15:10 -07:00
NAThompson
88f2d63b4e Only build polyline example when rendering is enabled. 2019-08-01 14:21:37 -04:00
Kenneth Moreland
0be50c119d Update VTK-m code to use new Vec aliases
Should make the code easier to read.
2019-07-31 12:55:40 -06:00
Allison Vacanti
094cf21599 Rename a file to match CMakeLists.txt in an example.
Fixes #385.
2019-07-19 12:02:51 -04:00
Kenneth Moreland
79909ecf12 Merge topic 'add_mesh_quality'
b622c7962 Fixed index out of bounds error for the cell counts array
4d61066e9 Removed all modifications in the internal device adapter algorithm header files.
06ac9f721 Revised version of the original mesh quality merge request
e54001367 Added few lines of code missing from cuda device adapter header
3dd34d251 Added custom CopyIf function
417dbcea7 Removed all modifications in the internal device adapter algorithm header files.
50cb805ce Fixed cuda device adapter alg
8c070caa0 Added few lines of code missing from cuda device adapter header
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !1714
2019-07-17 15:42:22 -04:00
Robert Maynard
28484fc6aa Update examples and benchmarks to use new VTK-m CMake helper function 2019-07-09 13:32:23 -04:00
Robert Maynard
a2e6660fdd Remove unused vtkm_compile_as_cuda CMake function 2019-07-09 13:04:07 -04:00
Brent Lessley
4d61066e9c Removed all modifications in the internal device adapter algorithm header files. 2019-07-03 11:12:19 -07:00
Brent Lessley
06ac9f7219 Revised version of the original mesh quality merge request 2019-07-02 22:35:54 -07:00
NAThompson
d8faed8480 Polyline examples: More intelligible comments. 2019-06-27 16:31:20 -04:00
NAThompson
cbd2dd60a7 Tubes: Add example. 2019-06-27 16:25:27 -04:00
Robert Maynard
74d713c774 Install compilation tests are enabled when examples are disabled
Previously VTK-m only activated the install/compilation tests when
examples had been enabled. This decreased the amount of coverage
on dashboards.
2019-06-24 14:48:01 -04:00
Robert Maynard
4020f51988 RuntimeDeviceTracker can't be copied and is only accessible via reference.
As the RuntimeDeviceTracker is a per thread construct we now make
it explicit that you can only get a reference to the per-thread
version and can't copy it.
2019-05-20 11:43:05 -04:00
Robert Maynard
2c026508b3 Merge topic 'correct_openmp_timeouts'
9c2920072 UnitTestBoundingIntervalHierarchy handles systems under load better
671c1df5c Timer logs the proper device name when called with an invalid device
d3d66a331 GameOfLife example always uses the proper device adapter

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1645
2019-04-18 08:05:12 -04:00
Robert Maynard
d3d66a3312 GameOfLife example always uses the proper device adapter
Previously the example would only time using the serial device
adapter, which wouldn't work when the user explicitly specified
a device on the command line.
2019-04-17 14:58:32 -04:00
nadavi
6d9c2af795 remove warning in file due to non-reference exception catch 2019-04-17 10:57:13 -06:00
nadavi
fbcea82e78 conslidate the license statement 2019-04-17 10:57:13 -06:00
Robert Maynard
ff30684c8e Removes the default device macros from VTK-m
Fixes #116
2019-04-15 08:15:36 -04:00
Robert Maynard
7ea2accbc1 Correct issues when using a cuda enabled install of vtk-m. 2019-04-03 18:08:56 -04:00
Robert Maynard
001d1b0f47 VTK-m can now build and test against temporary installed vtkm.
We now have a couple of the examples also being built against
the installed version of VTK-m as a test. This allow us to verify
that VTK-m installs and can be found properly.
2019-04-03 18:08:56 -04:00
Robert Maynard
0ce7e82d43 VTK-m now enables all new CMake policies in 3.14
This means that we opt-in to policy changes introduced in 3.14
2019-03-26 11:50:06 -04:00
Robert Maynard
256e0c3c11 Merge topic 'rename_to_GetRuntimeDeviceTracker'
ae11e115a RuntimeDeviceTracker: Remove `Global` from names

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !1592
2019-03-24 08:17:02 -04:00
Robert Maynard
ae11e115a0 RuntimeDeviceTracker: Remove Global from names 2019-03-22 08:53:26 -07:00
Kenneth Moreland
fd794edb36 Fix particle advection example
The grid evaluator class structure changed.
2019-03-21 13:58:42 -06:00
Sujin Philip
d4e1c18254 Update existing code to use the new functions 2019-03-15 13:28:55 -04:00
Haocheng LIU
6e6968d97f Fix diy include and Timer construction errors in examples 2019-02-06 15:28:09 -05:00
Haocheng LIU
415252c662 Introduce asynchronous and device independent timer
The timer class now is asynchronous and device independent. it's using an
similiar API as vtkOpenGLRenderTimer with Start(), Stop(), Reset(), Ready(),
and GetElapsedTime() function. For convenience and backward compability, Each
Start() function call will call Reset() internally and each GetElapsedTime()
function call will call Stop() function if it hasn't been called yet for keeping
backward compatibility purpose.

Bascially it can be used in two modes:

* Create a Timer without any device info. vtkm::cont::Timer time;

  * It would enable timers for all enabled devices on the machine. Users can get a
specific elapsed time by passing a device id into the GetElapsedtime function.
If no device is provided, it would pick the maximum of all timer results - the
logic behind this decision is that if cuda is disabled, openmp, serial and tbb
roughly give the same results; if cuda is enabled it's safe to return the
maximum elapsed time since users are more interested in the device execution
time rather than the kernal launch time. The Ready function can be handy here
to query the status of the timer.

* Create a Timer with a device id. vtkm::cont::Timer time((vtkm::cont::DeviceAdapterTagCuda()));

  * It works as the old timer that times for a specific device id.
2019-02-05 12:01:56 -05:00
Kenneth Moreland
887f79c6f4 Make a vtkm_worklet library
This is a library that contains parts of worklets that can be
precompiled into a library.

Currently, this library contains the implementation of ScatterCounting.
2019-01-23 17:09:15 -07:00
Kenneth Moreland
2e426ad547 Run the update-control-signature-tags.sh script 2019-01-11 12:23:10 -07:00
Robert Maynard
f1e1a524e9 Require CMake 3.8 to build VTK-m. 2019-01-09 16:01:22 -05:00
Robert Maynard
8ca24baecd Update the UnifiedMemory example to properly disable managed memory 2018-12-28 11:30:29 -05:00
Robert Maynard
0a40c620ac Rename ArrayHandleVariant to VariantArrayHandle. 2018-12-27 14:35:56 -05:00
Robert Maynard
b138798604 Update examples to work with ArrayHandleVariant/Virtual 2018-12-27 14:35:56 -05:00
Robert Maynard
6e22bb5dc6 Cosmotools exmaples builds again with the change of vtkm::cont::Initialize 2018-12-27 11:58:16 -05:00
Robert Maynard
ab3d89d4e3 Simplify the example/demo CMakeLists.txt 2018-12-27 11:57:48 -05:00
Robert Maynard
028e954b41 Game Of Life example now supports -d/--device command line argument 2018-12-27 11:55:26 -05:00
Robert Maynard
e2c61e0100 Update the HelloWorld example to use VTK-m runtime device adapter logic 2018-12-27 11:50:28 -05:00
Robert Maynard
34165c8e75 Correct crashes in the GameOfLife example 2018-12-27 11:47:34 -05:00
Robert Maynard
cdbee58c1b Remove the dynamic_dispatcher example as is a compiler benchmark
This example doesn't need to exist as it was used to see how
long compile times are with DynamicArrayHandle
2018-12-27 11:45:41 -05:00
Allison Vacanti
cdb1f5680a Add vtkm::cont::Initialize.
Also
- Renamed vtkm::cont::make_DeviceAdapterIdFromName to just overload
  make_DeviceAdapterId.
- Refactored CMake logic for unit tests
  - Since we're now querying the device tracker for the names, they
    cannot be all caps.
- Updated usages of InitLogging to use Initialize instead.
- Added changelog.
2018-12-13 10:15:44 -05:00
Kenneth Moreland
01a9e85416 Change WorkletPointNeighborhood to specify neighborhood at runtime
Previously, WorkletPointNeighborhood had a template argument to select
the size of the neighborhood. This change removes that template
argument. Instead, the vtkm::exec::arg::BoundaryState methods now take
in a size parameter when determining when it overlaps the boundary.

If in the future we want to add the ability to select the neighborhood
size at compile-time (for performance reasons), I suggest adding this
template argument to the OnBoundary tag for ExecutionSignature.
2018-12-03 12:45:23 -07:00
Kenneth Moreland
e9d0d7de47 Fix the CosmoTools examples
The CosmoTools examples were still directly using device adapters.
Change the code to compile single executables that chooses a device at
runtime.
2018-11-27 10:56:00 -07:00
Kenneth Moreland
bddad9b386 Remove TryExecute from filters
Now that the dispatcher does its own TryExecute, filters do not need to
do that. This change requires all worklets called by filters to be able
to execute without knowing the device a priori.
2018-10-16 15:59:53 -06:00
Kenneth Moreland
723792a482 Use new integrators and evaluators for advection 2018-10-16 09:53:18 -06:00
Kenneth Moreland
a2602183a4 Make integrators have a virtual superclass
This will make it easier to support integrators as an ExecObject.

One side effect is that the integrators and partical advection
are not templated by the type of the field.
Regardless of the type of the field, there is probably little reason to
compute particle advection with less than 64 bit floats to account for
accumulated errors. This will make it easier to use these classes.
2018-10-16 09:53:18 -06:00
Robert Maynard
9d5efbd95d Merge topic 'misc-typos'
d5beb69ec Misc. typos

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1426
2018-10-08 08:37:19 -04:00
Kenneth Moreland
cd8b41f478 Fix type conversion warnings
Make the types consistent in an std::accumulate call. Previously it was
taking vtkm::Id values, multiplying them as std::size_t, and then
storing them in an int. Now, the std::accumulate does everything as a
vtkm::Id and at the end converts the result to an std::size_t.
2018-10-05 09:08:19 -06:00
luz.paz
d5beb69ec1 Misc. typos
Found via `codespell`
2018-10-04 10:30:33 -04:00
Robert Maynard
91fd7f4f74 Merge topic 'ppp2'
c05b04c9d Fix windows warnings of duplicate symbols
12b90c434 Rename PPP2 to Augmented.
6f5c383e1 Move PPP2 over to constexpr instead of defines
f828ebfd4 Update PPP2 to dispatcher that don't require a device adapter template
98fd16d9a Correct PPP2 warnings found from 32bit builders
b460f5611 Make sure ContourTreeApp obeys the desired device
432ee3422 Optimize the PPP2 ActiveGraphs to reduce size of device transfers
2370a6cc5 Refactor the PPP2 work based on Code Review and add UnitTests.
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1376
2018-09-29 09:40:17 -04:00
Robert Maynard
12b90c434b Rename PPP2 to Augmented. 2018-09-26 10:48:37 -07:00
Sujin Philip
d34eca5f4e Update RedistributePoints to use the new serialization methods 2018-09-25 13:58:39 -04:00
Sujin Philip
fd89dfc89b Add ArrayHandle Serialization 2018-09-25 13:58:39 -04:00
Robert Maynard
98fd16d9ad Correct PPP2 warnings found from 32bit builders 2018-09-18 08:54:22 -04:00
Robert Maynard
b460f56113 Make sure ContourTreeApp obeys the desired device 2018-09-18 08:54:22 -04:00
Oliver Ruebel
2370a6cc5d Refactor the PPP2 work based on Code Review and add UnitTests. 2018-09-18 08:54:22 -04:00
Gunther H. Weber
ab0ccd4cad vtk-m implementation of improved parallel peak pruning with hyperstructure (PPP2.0) 2018-09-18 08:54:22 -04:00
Kenneth Moreland
d879188de0 Make DispatcherBase invoke using a TryExecute
Rather than force all dispatchers to be templated on a device adapter,
instead use a TryExecute internally within the invoke to select a device
adapter.

Because this removes the need to declare a device when invoking a
worklet, this commit also removes the need to declare a device in
several other areas of the code.
2018-08-29 19:18:54 -07:00
Robert Maynard
9f5d57f8ab Remove the posthocinterpolation example as it didn't showcase vtkm 2018-08-24 08:28:56 -04:00
Robert Maynard
7231f7e557 Use vtkm::Math functions in ABCField. 2018-08-24 08:28:12 -04:00
Robert Maynard
2a75916dd3 Merge topic 'remove_duplicate_data_in_multi_backend'
6990b605b The multi backend example now doesn't share data between blocks

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Sujin Philip <sujin.philip@kitware.com>
Merge-request: !1344
2018-08-15 15:09:14 -04:00
Sudhanshu Sane
3364d1c4e0 Lagrangian filter, example
The added files provide support for Lagrangian analysis of velocity fields of time-varying data. Examples show how to use the filter to generate data and a second example demonstrates consuming generated information to calculate new particle trajectories.
2018-08-13 14:53:41 -07:00
Robert Maynard
6990b605b0 The multi backend example now doesn't share data between blocks
This should allow for multiple different devices.
2018-07-31 15:02:41 -04:00
Kenneth Moreland
49ae7d5e7d Add header file for std::isstype
This function might get defined through other headers, but it was not
being defined with visual studio.
2018-07-26 16:33:16 -06:00
Sebastien Jourdain
4192b9a1d8 Add a point-oscillator filter + example
The oscillator is a simple analytical source of time-varying data.
It provides a function value at each point that is computed as a
sum of Gaussian kernels -- each with a specified position, amplitude,
frequency, and phase.
2018-07-18 09:33:06 -04:00
Sujin Philip
01a45d8e5e Workaround compiling error in multi-backend example with some gcc versions 2018-06-21 12:07:12 -04:00
Robert Maynard
9861cdecb1 Use CMake to automatically set policies to NEW.
CMake 3.12 introduces a ...<max> syntax in the version given to
cmake_minimum_required to automatically set policies to NEW up
to that version. Use it to avoid listing policies explicitly.
2018-06-19 16:12:48 -04:00
luz.paz
940c891886 Misc. typos
Found via `codespell` and `grep`
more typos

includes source typo change and a typo that needs further review
follow-up typos


Follow-up typos


Revert a commit
2018-06-14 16:49:11 -04:00
Robert Maynard
5a2c2b9460 temporaladvection example follows the same naming pattern as all examples 2018-06-01 10:31:14 -04:00
Allison Vacanti
93506d25e2 Change function signatures to use 'using' aliases.
Also cleaned up some lingering type typedefs.
2018-05-25 17:18:41 -04:00
Haocheng LIU
5c797169ec Use the strong typed enums for vtkm::cont::Field
Since Field association is used either when creating or working
with 'vtkm::cont::Field', it's put in the class itself.
2018-05-22 11:44:51 -04:00
Haocheng LIU
fae8409c9c Add float version operations for vtkm::Math Pi()
This commit also removes the old static_cast<vtkm::float32>vtkm::Pi() usages and
fix serveral conversion warnings.
2018-05-21 10:58:15 -04:00
David Thompson
7cbbb016d4 Fix multi_backend when using double precision. 2018-05-18 14:05:11 -04:00
ayenpure
eb2ed4f275 Merge branch 'master' of https://gitlab.kitware.com/vtk/vtk-m into temporalparticleadvection 2018-05-15 11:46:26 -07:00
Robert Maynard
ad545dad5b multi_backend shows how a filter can use multiple device adapter 2018-05-15 10:35:18 -04:00
Sujin Philip
0c1634bbc3 Fix a few more warnings
These warnings were detected on my local machine.
2018-05-09 17:49:45 -04:00
Utkarsh Ayachit
20e7cd4189 Demo.cxx: fix type conversion warning 2018-05-08 14:52:23 -04:00
ayenpure
78118a840f Merge branch 'master' of https://gitlab.kitware.com/vtk/vtk-m into temporalparticleadvection 2018-05-07 11:00:52 -07:00
Sujin Philip
3be5ee8a7c Fix usage of vtkm_compile_as_cuda in examples
Incorrect usage in histogram and redistribute_points examples.
Only source files (.cxx) should be specified.
2018-05-04 15:26:13 -04:00
ayenpure
7d5e99c0b6 Adding updated CMakeLists for temporal particle advection 2018-04-19 10:07:54 -07:00
ayenpure
c53d6ec216 Merge branch 'master' of https://gitlab.kitware.com/vtk/vtk-m into pathsurfaces 2018-04-18 22:18:34 -07:00
ayenpure
d38358e40d Adding files missed in previous commit 2018-04-18 22:09:25 -07:00
ayenpure
4cf9942d44 Updating temporal advection example
- renaming long directory name to something concise
- Adding Dave's Unit test for particle advection
- Fixing really trivial issues
2018-04-18 22:06:40 -07:00
Utkarsh Ayachit
07ba6c254c example: redistribute points using DIY
Adding an example that demonstrates how to write a distributed filter
that customizes the execution for all blocks in a MultiBlock. This is a
reinterpretation of the `reduce/all_to_all` example provided by DIY.
2018-04-16 17:13:36 -04:00
Utkarsh Ayachit
d37c1fee79 adding mpi-only filter example.
Adding a Histogram filter example that uses MPI (instead of DIY)
for distributed processing.
2018-04-12 16:40:19 -04:00
Robert Maynard
a37a3f3968 Examples that use glu functions now properly link to OpenGL::GLU 2018-04-09 15:29:01 -04:00
Robert Maynard
a44ad273b3 Make sure Rendering example doesn't conflict with rendering testing name 2018-04-09 15:20:00 -04:00