Commit Graph

1608 Commits

Author SHA1 Message Date
Abhishek Yenpure
f454912813 Merge branch 'master' of gitlab.kitware.com:vtk/vtk-m into grid_eval_curvilinear_grids 2019-09-04 14:34:32 -06:00
Abhishek Yenpure
1697ca48c5 Adding testing paths for Curvilinear case 2019-09-04 14:33:20 -06:00
Robert Maynard
3b89bc0db2 CellSet classes don't require a name 2019-09-02 10:39:58 -04:00
Robert Maynard
5cd47a7065 DataSetBuilders don't require a cellset name 2019-09-02 09:05:56 -04:00
Robert Maynard
89fa2c0293 Remove multiple vtkm::cont::CellSet from vtkm::cont::DataSet
By removing the ability to have multiple CellSets in a DataSet
we can simplify the following things:

  - Cell Fields now don't require a CellSet name when being constructed
  - Filters don't need to manage what the active cellset is
2019-09-02 09:04:51 -04: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
Dan Lipsa
b9c7396184 Merge topic 'circular-dependency'
001617b2a Fix comment and install.
60711eb19 Remove circular dependency between GridEvaluators and Integrators

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !1813
2019-08-27 09:02:04 -04:00
Dan Lipsa
001617b2ad Fix comment and install. 2019-08-27 08:41:50 -04:00
Dan Lipsa
60711eb193 Remove circular dependency between GridEvaluators and Integrators 2019-08-26 23:26:37 -04:00
Kenneth Moreland
0e0fae5769 Merge topic 'point-transform-transforms-points'
1f8030a6e Add non-const version of DataSet::Get methods
69226803c Make PointTransform actually transform the points

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !1803
2019-08-26 18:46:24 -04:00
Allison Vacanti
93c5c50b9c Ensure that the serial device is enabled during part of OrientNormals test.
Once #377 is implemented we won't need this, but for now we have to
use the serial connectivity tables while validating the OrientNormals
output. Ensure that the serial device can be used during the validation
stage.
2019-08-26 16:44:24 -04:00
Abhishek Dilip Yenpure (-EXP)
507336f148 More cases for Grid Evaluator
Adding case to treat structured cells with weird coordinates as explicit.
2019-08-26 14:17:29 -06:00
Kenneth Moreland
69226803c2 Make PointTransform actually transform the points
The primary (likely only) use of PointTransform is to perform affine
transform on the position of the mesh. However, PointTransform did not
actually move the mesh. Rather, it just created a new field with the
transformed points.

Now, the output has its coordinate system replaced with the transformed
one generated (in addition to be added as a field). This can be turned
off (but defaults to on).

Also changed the constructor to turn on UseCoordinateSystemAsField so
that by default the filter operates on the existing coordinate system
and replaces it with the new coordinate system.

Also removed the template parameter on the filter. That added an
unnecessary complication to using it.
2019-08-26 12:29:24 -06:00
Allison Vacanti
9560c4f633 Limit testing dispatch of atomic array to only atomic types. 2019-08-23 15:40:37 -04:00
Allison Vacanti
1a73641f9d Merge topic '391_reduce_device_transfers'
3eb91af96 Use ArrayGetValue where possible in worklets.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !1799
2019-08-23 10:14:43 -04:00
Allison Vacanti
3eb91af961 Use ArrayGetValue where possible in worklets.
Replace code such as `myArray.GetPortalControl().Get(0)` with
`vtkm::cont::ArrayGetValue(0, myArray)`, which will just retrieve
the single value without transferring the entire contents of
`myArray` to the host. This should prevent memory thrashing.

Also did some general style clean-ups and fixed loops that called
`GetPortalControl` in the loop body.
2019-08-22 16:42:17 -04:00
Dave Pugmire
8594936015 Merge topic 'tubeFilter'
0c25daf90 compile warnings.
43ddcab81 Add support for field mapping.
cbc972f10 Add Tube Filter

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !1781
2019-08-22 15:09:49 -04:00
Kenneth Moreland
5e2ee3627b Merge topic 'fix-contour-test'
709b12c5b Add checks for size of contour worklet outputs
a3131d4e1 Fix bad normals in contour test

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Li-Ta Lo <ollie@lanl.gov>
Merge-request: !1794
2019-08-22 11:19:15 -04:00
Kenneth Moreland
709b12c5bb Add checks for size of contour worklet outputs 2019-08-22 08:28:53 -06:00
Allison Vacanti
5e253d9f6b Merge topic 'fixup_shadowed_typedef'
64533c5c8 Rename shadowing typedef in TriangleWinding test.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !1793
2019-08-22 09:56:13 -04:00
Robert Maynard
f1c09529d1 Merge topic 'correct_improper_cellset_indexing'
fa9ffac7c Correct improper cellset indexing
b0c6e18ea DataSet queries for cellset and coordinate index won't trow

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !1777
2019-08-22 08:39:36 -04:00
Dave Pugmire
43ddcab81e Add support for field mapping. 2019-08-22 08:14:52 -04:00
Kenneth Moreland
a3131d4e18 Fix bad normals in contour test
The contour worklet test was experiencing normals that were set to NaN
due to problems with computing the gradient of the original field. It
was determined that the problem was caused by the clip filter creating
degenerate cells because the clip plane exactly intersected the points
of the mesh. Although a problem, we found that this behavior also exists
in existing tools like ParaView and VisIt. Thus, it sounds like a
problem to be pushed off to a later day. Instead, just move the plane a
little bit to get it into general position.
2019-08-21 14:39:51 -06:00
Robert Maynard
fa9ffac7c9 Correct improper cellset indexing 2019-08-21 15:16:26 -04:00
Allison Vacanti
64533c5c82 Rename shadowing typedef in TriangleWinding test. 2019-08-21 15:04:07 -04:00
Kenneth Moreland
42e8a9125d Copy Threshold output to a CellSetExplicit
Perhaps a better title for this change would be "Make the Threshold
filter not totally useless."

A long standing issue with the Threshold filter is that its output
CellSet was stored in a CellSetPermutation. This made Threshold hyper-
efficient because it required hardly any data movement to implement.
However, the problem was that any other unit that had to use the CellSet
failed. To have VTK-m handle that output correctly in other filters and
writers, they all would have to check for the existance of
CellSetPermutation. And CellSetPermutation is templated on the CellSet
type it is permuting, so all units would have to compile special cases
for all these combinations. This is not likely to be feasible in any
static solution.

The simple solution, implemented here, is to deep copy the cells to a
CellSetExplicit, which is a known type that is already used everywhere
in VTK-m. The solution is a bit disappointing since it requires more
memory and time to build. But it is on par with solutions in other
libraries (like VTK). And it really does not matter how efficient the
old solution was if it was useless.
2019-08-20 16:04:26 -06:00
Kenneth Moreland
1473c12e66 Merge topic 'more-gradient-testing'
c19b312e5 Fix gradient issue at apex of pyramid cells

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Li-Ta Lo <ollie@lanl.gov>
Merge-request: !1785
2019-08-20 17:03:28 -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
Li-Ta Lo
9b0a79f19a let's see if I fixe the one last bug 2019-08-19 14:41:49 -06:00
Li-Ta Lo
e66af369ba removed isosurface example, add clipped tangle to Contour unit test 2019-08-19 13:36:28 -06:00
Li-Ta Lo
0a020c77a8 fixed error in TetrahedralizedExplicit, rename MarchineCubes to Contour 2019-08-19 11:45:58 -06:00
Li-Ta Lo
e9e35159ab change MarchingCubes to Contour that was missed before merge 2019-08-19 08:56:11 -06:00
Dave Pugmire
cbc972f101 Add Tube Filter 2019-08-19 09:08:42 -04:00
Li-Ta Lo
c2e29f5c41 Merge branch 'master' into contour_hackathon 2019-08-18 14:49:08 -06:00
Li-Ta Lo
6a54d5f75f supress warning about converting vtkm::Id to vtkm::IdComponent 2019-08-18 14:26:58 -06:00
Li-Ta Lo
414effa8e8 remove unused contour unit test 2019-08-17 19:26:32 -06:00
Li-Ta Lo
d1fe1c3f38 rename MarchingCubes to Contour 2019-08-17 19:10:57 -06:00
Li-Ta Lo
fea2ccac2b removed old lookup table, rename new tables into CoontourTables 2019-08-17 18:46:59 -06:00
Li-Ta Lo
52d1ec8467 add Wedge and Pyramid support, visually verified with clipped Tangle field 2019-08-17 18:12:11 -06:00
Li-Ta Lo
1efdffb1b3 minor bug fix in edge table, visually verify that both Hex and Tetra works 2019-08-17 14:08:28 -06:00
Li-Ta Lo
fda22df5b7 commit before merge with master 2019-08-17 13:29:43 -06:00
Li-Ta Lo
989d3f32b9 fully generic, table driven triangle generation 2019-08-17 12:28:54 -06:00
Li-Ta Lo
7ded276fa6 table driven triangle generation 2019-08-17 11:37:14 -06:00
Li-Ta Lo
4e8e250705 new uniform table driven cell classifier 2019-08-15 22:37:52 -06:00
Li-Ta Lo
d82d380979 marching tetrahedra generates triangles 2019-08-15 18:03:53 -06:00
Robert Maynard
8d8b3a77d9 Merge topic 'exposing-intersected-mc-edges'
719614560 Exposed the edges intersected by Marching Cubes.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1739
2019-08-15 12:57:13 -04:00
Robert Maynard
031407443d Provide simplified way to construct point and cell fields 2019-08-15 11:03:41 -04:00
Sujin Philip
06f450615d Fix moments filter 2019-08-14 07:30:23 -04:00
Li-Ta Lo
298f68a5c3 update copyright notice 2019-08-14 07:30:23 -04:00
Li-Ta Lo
2718cede97 Add ComputeMoments worklet and filter 2019-08-14 07:30:22 -04:00