Commit Graph

494 Commits

Author SHA1 Message Date
Robert Maynard
f89672b71a UnitTestFetchArrayTopologyMapIn now compiles with VS2015
Fixes #445
2019-12-06 09:27:45 -05:00
Robert Maynard
daa6b0984b Another round of simplifications to FunctionInterface
Yet more ways that we can reduce the complexity of `FunctionInterface`.
This is another step in figuring out what set of features the replacement
for `FunctionInterface` needs to have.
2019-12-04 14:02:44 -05:00
Robert Maynard
65347bf948 Correct warnings found by GCC 9.2 2019-12-02 09:33:35 -05:00
Sujin Philip
b0592ce4c8 Switch from VTK-c to LCL 2019-10-07 15:38:36 -04:00
Robert Maynard
308552bd62 Merge topic 'improve_connectivity_worklet_perf'
973878b8b Improve the performance of the Image and Graph Connectivity algorithms

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Li-Ta Lo <ollie@lanl.gov>
Merge-request: !1873
2019-10-02 11:41:57 -04:00
Robert Maynard
973878b8ba Improve the performance of the Image and Graph Connectivity algorithms
The collection of connectivity algorithms had a couple of inefficiencies.
By moving to using WorkId we can remove a couple of arrays of the same size
as the input domain. In addition by moving to using atomics we can remove
an bool output array with a size equivalent to the input domain and
a call to reduce.
2019-10-02 08:25:10 -04:00
Allison Vacanti
3886b7dfb8 Refactor CellSetExplicit to remove NumIndices.
See #408 for details.
2019-09-30 12:27:13 -04:00
Brad King
9a906e4cbf Merge topic 'use-vtkc'
e08d862f9 Use Light-Weight Cell Library
e56b34fc9 Merge branch 'upstream-vtkc' into use-vtkc
e909edd61 vtkc 2019-09-24 (cdc72582)
2a6aadc69 Add update file for VTK-c

Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !1852
2019-09-25 09:21:00 -04:00
Sujin Philip
e08d862f94 Use Light-Weight Cell Library 2019-09-24 21:22:10 -04:00
Hank Childs
8af25aca48 move cellmetrics to worklet 2019-09-23 22:27:12 -07:00
Hank
0eb767dc5f Merge topic 'jacobian-cellmetric'
f9d02b374 remove file that should not have been checked in
d59917473 rename half variable to avoid shadowing CUDA global
954e25874 fix problem with filename
91f7e763b fix copyright, warnings, cmake for Jacobian-cellmetric branch
e040ea05e formatting suggestions from KMorel
f4edb6a8e remove trailing whitespace
ccedb5aac Jacobian working, unit test working
560aa1f67 add support for outputname
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1855
2019-09-18 12:08:39 -04:00
Hank Childs
d59917473d rename half variable to avoid shadowing CUDA global 2019-09-17 23:12:23 -07:00
Hank Childs
954e258745 fix problem with filename 2019-09-17 21:31:50 -07:00
Hank Childs
91f7e763bc fix copyright, warnings, cmake for Jacobian-cellmetric branch 2019-09-17 21:15:41 -07:00
Hank Childs
f4edb6a8ed remove trailing whitespace 2019-09-17 14:46:51 -07:00
Hank Childs
ccedb5aac1 Jacobian working, unit test working 2019-09-17 13:41:53 -07:00
Hank Childs
ed15f684ea overhaul workings of mesh quality filter. Unit test a little rocky right now, but heading in the right direction 2019-09-16 17:19:18 -07:00
Robert Maynard
5c56ff945f Label tests which exercise a given Device Adapter
This allows developers an easy way to run all OpenMP tests
2019-09-13 15:52:40 -04:00
Robert Maynard
bc78126876 CUDA 10.1 didn't fix stateless_resource_allocator warnings
The patch to fix this warning from thrust has not be approved
by upstream thrust. So keep suppressing it in CUDA 10.1 update 1
2019-09-12 17:36:12 -04:00
Robert Maynard
c4e1262e14 Correct symbol visibility issues found by ubsan testing 2019-09-11 08:30:49 -04:00
Kenneth Moreland
6c136b978e Remove vtkm::BaseComponent
This functionality has been superseded by VecTraits::BaseComponentType.
The new functionality also supports replacing the BaseComponentType.
2019-09-09 13:01:03 -06:00
Kenneth Moreland
74e0c58046 Fix some precision warnings 2019-08-30 11:33:17 -06:00
Kenneth Moreland
75a060a243 Fix cell derivatives for polygon cell shape
For polygon cell shapes (that are not triangles or quadrilaterals),
interpolations are done by finding the center point and creating a
triangle fan around that point. Previously, the gradient was computed in
the same way as interpolation: identifying the correct triangle and
computing the gradient for that triangle.

The problem with that approach is that makes the gradient discontinuous
at the boundaries of this implicit triangle fan. To make things worse,
this discontinuity happens right at each vertex where gradient
calculations happen frequently. This means that when you ask for the
gradient at the vertex, you might get wildly different answers based on
floating point imprecision.

Get around this problem by creating a small triangle around the point in
question, interpolating values to that triangle, and use that for the
gradient. This makes for a smoother gradient transition around these
internal boundaries.
2019-08-29 17:37:42 -06:00
Allison Vacanti
884616788a Simplify and extend AtomicArray implementation.
- Use AtomicInterface to implement device-specific atomic operations.
- Remove DeviceAdapterAtomicArrayImplementations.
- Extend supported atomic types to include unsigned 32/64-bit ints.
- Add a static_assert to check that AtomicArray type is supported.
- Add documentation for AtomicArrayExecutionObject, including a CAS
  example.
- Add a `T Get(idx)` method to AtomicArrayExecutionObject that does
  an atomic load, and update existing CAS usage to use this instead
  of `Add(idx, 0)`.
2019-08-23 15:40:37 -04:00
Kenneth Moreland
c19b312e58 Fix gradient issue at apex of pyramid cells
The gradient is malformed at the apex of a pyramid. To get around this,
steal a trick from the VTK source where in this case interpolate some
values a little bit into the interior of the cell.

Also expand the gradient worklet tests to include all cell types.
2019-08-19 16:40:58 -06:00
Allison Vacanti
0510c6f053 Patch thrust to be happy with aligned_r_cast<long> and friends. 2019-08-12 15:21:11 -04:00
Abhishek Yenpure
39e278cf0b Fixing unreachable statement nvcc warning 2019-08-08 09:41:44 -07:00
Abhishek Yenpure
2798c737a2 Fixing issues raised by Ken on Gitlab 2019-08-08 09:15:28 -07:00
Abhishek Yenpure
a6df117321 Removing unnecessary commented code 2019-08-07 14:35:15 -07:00
Abhishek Yenpure
aefc5faca6 Merge branch 'master' of https://gitlab.kitware.com/vtk/vtk-m into particle_status_merge 2019-08-07 13:06:34 -07:00
Abhishek Yenpure
5776945798 Adding binary search for Rectilinear locator 2019-08-07 12:33:52 -07:00
Abhishek Yenpure
06d05196b5 Adding fast path to Uniform Grid Locator 2019-08-07 12:32:37 -07:00
Abhishek Yenpure
5219d82aab Fixing unreachable code compiler warning 2019-08-07 08:43:11 -07:00
Abhishek Yenpure
4e7b59c65e Adding changes for 2D uniform cell locator 2019-08-06 10:52:10 -06:00
Allison Vacanti
5db762ee71 Refactor topology mappings to clarify meaning.
The `From` and `To` nomenclature for topology mapping has been confusing for
both users and developers, especially at lower levels where the intention of
mapping attributes from one element to another is easily conflated with the
concept of mapping indices (which maps in the exact opposite direction).

These identifiers have been renamed to `VisitTopology` and `IncidentTopology`
to clarify the direction of the mapping. The order in which these template
parameters are specified for `WorkletMapTopology` have also been reversed,
since eventually there may be more than one `IncidentTopology`, and having
`IncidentTopology` at the end will allow us to replace it with a variadic
template parameter pack in the future.

Other implementation details supporting these worklets, include `Fetch` tags,
`Connectivity` classes, and methods on the various `CellSet` classes (such as
`PrepareForInput` have also reversed their template arguments. These will need
to be cautiously updated.

The convenience implementations of `WorkletMapTopology` have been renamed for
clarity as follows:

```
WorkletMapPointToCell --> WorkletVisitCellsWithPoints
WorkletMapCellToPoint --> WorkletVisitPointsWithCells
```

The `ControlSignature` tags have been renamed as follows:

```
FieldInTo --> FieldInVisit
FieldInFrom --> FieldInMap
FromCount --> IncidentElementCount
FromIndices --> IncidentElementIndices
```
2019-08-06 11:27:26 -04:00
Abhishek Yenpure
f30a7ac94c Resolving compiler warnings 2019-08-02 09:40:54 -06:00
Robert Maynard
d8cc39eb8d Always export VTK-m functor symbols
This is done to avoid warnings when compiling VTK-m consumers
with different defaults for symbol visiblity. AKA avoid warnings
like:

```
warning: ‘vtkm::worklet::WorkletMapField’ declared with greater visibility than the type of its field ‘vtkm::worklet::WorkletMapField::<anonymous>’ [-Wattributes]
 class WorkletMapField : public vtkm::worklet::internal::WorkletBase
       ^~~~~~~~~~~~~~~
```
2019-08-01 12:53:54 -04:00
ayenpure
d636dea4e3 Resolving error introduced in merge 2019-07-31 16:02:30 -06:00
ayenpure
3c9413345d Resolving conflict marker 2019-07-31 15:10:32 -06:00
ayenpure
2f2230d1f4 Merge branch 'master' of https://gitlab.kitware.com/vtk/vtk-m into 2DLocators 2019-07-31 15:05:53 -06: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
ayenpure
1c9c70f74e Merge branch '2DLocators' of gitlab.kitware.com:ayenpure/vtk-m into 2DLocators 2019-07-30 09:21:33 -06:00
ayenpure
cb01e982c4 Merge branch 'master' of https://gitlab.kitware.com/vtk/vtk-m into 2DLocators 2019-07-30 09:20:42 -06:00
Abhishek Dilip Yenpure (-EXP)
65cff4a4a8 Removing constexpr from if conditions 2019-07-22 09:03:08 -06:00
Allison Vacanti
694d1e113d Add methods to BoundaryState to query specific offsets.
The existing functionality worked on radii, but it's helpful to
know if a specific sample location will be in bounds, too.
2019-07-19 15:09:57 -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
Abhishek Yenpure
c2fa0467c1 Adding support for evaluating 2D meshes.
- Adding support for evaluating 2D meshes using Rectilinear Grids
- Adding support for particle advection for 2D meshes
2019-07-11 10:45:30 -07:00
Li-Ta Lo
2c6061d37f Merge topic 'locate-points-on-boundary'
461f87dbc Fix issues with PointLocatorUniformGrid not finding all points
e473cb4bb Fix PointLocatorUniformGrid for points on boundary

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Li-Ta Lo <ollie@lanl.gov>
Merge-request: !1720
2019-07-11 10:48:49 -04:00
Kenneth Moreland
461f87dbc8 Fix issues with PointLocatorUniformGrid not finding all points
There was a known issue where PointLocatorUniformGrid would quickly quit
once it found a point. Instead, look at one more level of bins just in
case there is a closer one near the boundary. (Still not guaranteed, but
likely.)

Also, fix a typo that caused some bins in the y and z direction to not
be searched.
2019-07-10 09:52:49 -06:00
Brent Lessley
4d61066e9c Removed all modifications in the internal device adapter algorithm header files. 2019-07-03 11:12:19 -07:00