Commit Graph

254 Commits

Author SHA1 Message Date
Abhishek Yenpure
a11d9ad108 removing print statements 2021-09-23 10:22:33 -07:00
Abhishek Yenpure
e28476df51 Assigning default associativity for velocity field 2021-09-23 10:12:47 -07:00
Abhishek Yenpure
53167f076a Fix Field constructors 2021-09-23 09:21:31 -07:00
Abhishek Yenpure
e6fa5fd4b9 Fixing Field class 2021-09-23 09:19:44 -07:00
Abhishek Yenpure
cf012b61e4 Changes for supporting cell centered velocity fields
- Changing the Field class for handling field associativity
- Changing Streamline filter to handle cell fields
2021-09-23 08:32:47 -07:00
Kenneth Moreland
b1343474c1 Consolidate count-to-offset algorithms
For no particularly good reason, there were two functions that converted
and array of counts to an array of offsets: `ConvertNumComponentsToOffsets`
and `ConvertNumIndicesToOffsets`. These functions were identical, except
one was defined in `ArrayHandleGroupVecVariable.h` and the other was
defined in `CellSetExplicit.h`.

These two functions have been consolidated into one (which is now called
`ConvertNumComponentsToOffsets`). The consolidated function has also been
put in its own header file: `ConvertNumComponentsToOffsets.h`.

Normally, backward compatibility would be established using deprecated
features. However, one of the things being worked on is the removal of
device-specific code (e.g. `vtkm::cont::Algorithm`) from core classes like
`CellSetExplicit` so that less code needs to use the device compiler
(especially downstream code).

Part of this change removed unnecessary includes of `Algorithm.h` in
`ArrayHandleGroupVecVariable.h` and `CellSetExplicit.h`. This header had to
be added to some classes that were not including it themselves.
2021-09-16 14:24:41 -06:00
Abhishek Yenpure
f0d267e813 Adding WarpX particle advection streamlines 2021-09-01 17:22:51 -07:00
Dave Pugmire
bde0672a4c Merge topic 'fix_smallstep_advection'
39054e644 Add corner case unit test.
0a3fd2629 Add test file for corner case.
4b0896bd8 Fix for corner case in particle advection.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Abhishek Yenpure <abhishek@uoregon.edu>
Merge-request: !2545
2021-08-04 07:10:35 -04:00
Dave Pugmire
4b0896bd8c Fix for corner case in particle advection. 2021-08-02 13:39:32 -04:00
Kenneth Moreland
869535b23f Remove uses of ScopedCudaStackSize
Since we have (hopefully) gotten rid of all unbounded recursion and
calls to function pointers or virtual methods, the CUDA compiler should
be able to statically determine the size of the stack needed. Thus, we
shouldn't need `ScopedCudaStackSize` at all.

However, there is one odd case where using it seems to be necessary. It
is unclear why, but that is an issue for another day.
2021-08-02 09:53:02 -06:00
Kenneth Moreland
1fb1141723 Update code to use ArrayCopyShallowIfPossible
There were several places in the code that had to check the type of an
`UnknownArrayHandle` and conditionally get or copy that array. This code
is simplified by using `ArrayCopyShallowIfPossible`.
2021-07-15 08:53:52 -06:00
Kenneth Moreland
cb3bb43ff9 Completely deprecate virtual methods
Deprecate `VirtualObjectHandle` and all other classes that are used to
implement objects with virtual methods in the execution environment.

Additionally, the code is updated so that if the
`VTKm_NO_DEPRECATED_VIRTUAL` flag is set none of the code is compiled at
all. This opens us up to opportunities that do not work with virtual
methods such as backends that do not support virtual methods and dynamic
libraries for CUDA.
2021-04-28 07:28:32 -06:00
Abhishek Yenpure
b316cf58fc Fix compiler warnings 2021-03-24 15:51:26 -07:00
Abhishek Yenpure
5f7287bc1b Removing virtuals from particle advection
-- Removing virtuals from CellInterpolationHelpers
2021-03-23 22:27:28 -07:00
Abhishek Yenpure
2897b7a118 Fix missing include 2021-03-22 23:53:05 -07:00
Abhishek Yenpure
4c781374c2 Removing virtuals v1
-- Remove virtuals from Integrators, Fields, Particles
-- Remaining virtuals are in the CellInterpolationHelpers
2021-03-22 23:00:36 -07:00
Kenneth Moreland
23c823d4b4 Fix compile errors and warnings related to new CellLocator structure 2021-02-15 12:39:11 -07:00
Kenneth Moreland
0a5f5d55c9 Remove virtual methods from cell locators
Deprecated the `CellLocator` class and made all methods of the
other `CellLocator` classes non-virtual. General locators can
still use the `CellLocatorGeneral` class, but this class now
only works with a predefined set of locators. (The functionality
to provide a function to select a locator has been removed.)
2021-02-15 12:39:11 -07:00
Kenneth Moreland
4d8f05baef Update CellSetExtrude to not specify exec types by device
Somewhere during this edit I removed a header file that didn't strictly
need to be there. This caused me to have to add

```cpp
```

in several places in the code.
2021-02-08 16:57:16 -07:00
Kenneth Moreland
c55d15f397 Deprecate ArrayHandle::ExecutionTypes
The newer version of `ArrayHandle` no longer supports different types of
portals for different devices. Thus, the `ReadPortalType` and
`WritePortalType` are sufficient for all types of portals across all
devices.

This significantly simplifies supporting execution objects on devices,
and thus this change also includes many changes to various execution
objects to remove their dependence on the device adapter tag.
2021-02-08 12:17:37 -07:00
dpugmire
aa713b565f Support for dist-memory pathlines. 2021-02-05 09:40:50 -05:00
Kenneth Moreland
8b133288ce Fix deprecation warnings
There was an error that caused deprecation warnings in VTK-m to be
suppressed, which meant that many uses of deprecated features went
unnoticed. This fixes those deprecation warnings.

The majority of the warnings were caused by the use of the deprecated
`Cast`, `CopyTo`, and `ResetTypes` methods of `UnknownArrayHandle` (or
`VariantArrayHandle`). Both `Cast` and `CopyTo` have been subsumed by
`AsArrayHandle` (to make the functionality more clear). `ResetTypes` now
requires a second template argument to define the storage types to try.

Also fixed some issues with `SerializableField` being deprecated.
This class is no longer necessary because `Field` can now be directly
serialized.
2021-01-26 07:56:39 -07:00
Dave Pugmire
3c50a7ea46 Fix assert for pathlines. Add example from manual that was failing. 2020-11-25 12:43:00 -05:00
Dave Pugmire
967fb9fadf Remove unneeded cast in worklet, clarify the code in threaded algo. 2020-11-24 15:06:36 -05:00
Dave Pugmire
722479ea10 Add different dataset types to MPI test. 2020-10-27 22:12:45 -04:00
Dave Pugmire
047bd93d5a Fix compile error 2020-10-27 14:27:34 -04:00
Dave Pugmire
eb76dff8d2 Support for ghost cells in P.A. filter 2020-10-26 12:39:31 -04:00
Dave Pugmire
0dccfdc61e Code cleanup and more tests for ghostcells 2020-10-23 14:37:28 -04:00
Dave Pugmire
a9232904d9 code cleanup and remove compile warning. 2020-10-22 09:57:57 -04:00
Dave Pugmire
6e4d4932d7 debug kokkos compile errors. 2020-10-21 17:14:56 -04:00
Dave Pugmire
64601619c3 Trying to find kokkos compile error 2020-10-21 17:08:10 -04:00
Dave Pugmire
0f0797f0e1 Fix compiler warnings. 2020-10-21 16:00:54 -04:00
Dave Pugmire
381886c947 Fix compiler warnings... 2020-10-20 09:53:05 -04:00
Dave Pugmire
ee24cdd4d4 fix compile error... 2020-10-19 22:21:24 -04:00
Dave Pugmire
35627b287e Add support for ghost cells in particle advection. 2020-10-19 16:46:48 -04:00
Kenneth Moreland
b012c42beb Rename CellLocatorUniformBins to CellLocatorTwoLevel
The new name is more descriptive and prevents confusion with
CellLocatorUniformGrid.
2020-09-21 15:42:47 -06:00
Kitware Robot
cf0cdcf7d1 clang-format: reformat the repository with clang-format-9 2020-08-24 14:01:08 -04:00
dpugmire
d13a08b6ae Merge branch 'master' of https://gitlab.kitware.com/vtk/vtk-m into mpiStreamlines2 2020-08-18 16:06:41 -04:00
Nick
8124fe81fd Add missing #include. 2020-08-18 15:32:39 -04:00
Nick
024ab1cff8 Put each ODE integrator in it's own file. 2020-08-18 15:32:39 -04:00
dpugmire
9bf49101ca Merge branch 'master' of https://gitlab.kitware.com/vtk/vtk-m into mpiStreamlines2 2020-08-17 16:35:40 -04:00
dpugmire
c806403e2a distributed memory support for streamline and particleadvect filters. 2020-08-13 09:53:57 -04:00
Sujin Philip
452f61e290 Add Kokkos backend 2020-08-12 13:55:24 -04:00
dpugmire
31c97bed89 Generalize fields for particle advection 2020-07-20 21:15:46 -04:00
Abhishek Yenpure
23126bbec5 Integrator status fix for consistant behavior
- Return OK and spatial bits set when particle is out of bounds
- Changes done after discussion w/ Dave
2020-05-23 21:37:25 -07:00
Abhishek Yenpure
3e18f105e9 Fixing Integrator Status Behavior
-- Setting the Spatial and OK bit both to 1 for Euler integrator
   similar to RK4

-- After discussion w/ Dave, the Spatial/Temporal bit will be the
   status of the particle and not the OK bit.
2020-05-20 16:27:57 -07:00
Abhishek Yenpure
ff112e4244 Integrator status behavior check 2020-05-12 17:00:52 -07:00
Abhishek Yenpure
343f2d5773 Merge branch 'master' of gitlab.kitware.com:vtk/vtk-m into euler_integrator_fix 2020-05-12 11:35:53 -07:00
dpugmire
d2e9b3d306 Fix for small euler step for particle advection. 2020-04-23 16:14:28 -04:00
Abhishek Yenpure
6274b16570 Updating Euler Integrator to work 2020-04-01 17:11:15 -07:00