[Paraview] Stream Tracer in eigenvector field
Andy Bauer
andy.bauer at kitware.com
Fri Aug 23 16:10:26 EDT 2013
Hi Paul,
Apologies as my math is a bit rusty but isn't the sign of the eigenvector
related to the sign of its corresponding eigenvalue? In that case if you
make sure that all of the eigenvalues are positive then all of their
corresponding eigenvectors should be aligned properly. If that's the case
and you have access to the eigenvalues of the eigenvectors you could use
the calculator or python calculator to properly orient the eigenvectors.
In any case, if you can come up with an algorithm that properly orients the
eigenvectors you should be able to do that in the python calculator or
calculator filters. If not, then things could get a bit hairy as far as
computationally figuring out which is the "proper" direction your
eigenvalues should have.
Regards,
Andy
On Fri, Aug 23, 2013 at 3:38 PM, pwhiteho <pwhiteho at masonlive.gmu.edu>wrote:
> The term "eigenvector", used to describe the principal directions of a
> tensor, is a bit of a misnomer since it's not a "vector" as interpreted by
> the Stream Tracer filter - it's more accurately bi-directional like
> tension/compression and could be termed "eigenaxis/eigenaxes". When
> interpreted as a vector, there is an inherent sign ambiguity in each
> eigenvector - the sign is indeterminate and one is free to choose + or -,
> and that is exactly what Mathematica does ( likely true for other routines
> also ).
>
> I've been using Mathematica to prototype computations for the
> investigation of tensor topology which I then visualize in ParaView.
> Eigen-decomposition of a tensor field at each grid point returns an
> orthonormal set of eigenvectors, uncorrelated with any neighbors. Taken
> separately, each eigenvector field exhibits large regions of smoothly
> varying orientation, but there are systematic and random reversals of
> orientation that confound the Stream Tracer filter, sending streamlines
> wandering around the field. What is needed is a true tangent curve ( tensor
> line ) integrator that would avoid "doubling back" as the "streamline"
> propagates, similar to the scheme of Weinstein, et. al., ( IEEE VIS'99 )
> which computes the dot product of the incoming propagation vector with the
> eigenvector; and if near -1, negate the outgoing propagation vector. This
> can also be fancied-up to accommodate noisy initial tensor data as in
> Weinstein.
>
> I think I would be taking on too much at this point in learning to write
> my own filter so have been exploring ways to pre-process the eigenvector
> fields before visualizing in Paraview, but I ask:
> 1. Have I missed something in existing filters that would handle this?
> 2. Can the existing Stream Tracer be modified?
> 3. Does the eigenvector routine in ParaView yield the same sign ambiguity
> among uncorrelated computations?
>
> Thanks,
> Paul W
>
>
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Please keep messages on-topic and check the ParaView Wiki at:
> http://paraview.org/Wiki/ParaView
>
> Follow this link to subscribe/unsubscribe:
> http://www.paraview.org/mailman/listinfo/paraview
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.paraview.org/pipermail/paraview/attachments/20130823/409e40d2/attachment.htm>
More information about the ParaView
mailing list