Sandia National Laboratories recently changed management from the
Sandia Corporation to the National Technology & Engineering Solutions
of Sandia, LLC (NTESS). The copyright statements need to be updated
accordingly.
VTK expects that the tensor fields generated by the gradient of a vector field
to have FORTRAN ordering instead of C ordering.
Discovering this actually uncovered bugs in the Vorticity and QCriterion
implementation where they presumed FORTRAN ordering, and would generate
incorrect results.
Basically we can run the gradient worklet and compute the Divergence, Vorticity,
and QCriterion without ever having to store the gradient tensor in global memory
The gradient worklet is now templated on the input value type. This simplifies
the logic of the gradient. Secondly we have added a Run method for the
first step of making gradient a 'fatter' worklet that can handle generation
of vorticity, Divergence, and QCriterion.
For some reason when VTK-m was being compiled as an accelerator in VTK,
Visual Studio 2013 gave a bunch of warnings about not being able to generate
assignment operators for many classes. This happened for classes with a
const ivar that could not be automatically set. (Automatic copy constructors
are fine on this count.) I'm not sure why these warnings did not happen
when just compiling VTK-m, nor am I sure why they were generated at all as
no code actually used the copy constructors.
This commit fixes the problems by adding a private declaration for assignment
operators that cannot be automatically created. No implementation is
provided, nor should any be needed.