[Paraview] Stream Tracer in eigenvector field
Burlen Loring
bloring at lbl.gov
Sat Aug 24 19:58:31 EDT 2013
Paul,
Sorry to have given such an off target answer! Your idea about checking
the dot product as you progress makes sense. That's how VTK's a hyper
stream tracer handles the issue. I wonder if you can make use of it?
Bringing VTK classes into PV isn't too hard but parallelizing them can
be challenging.
Burlen
On 08/24/2013 12:27 PM, Burlen Loring wrote:
> in the case of the glyphing algorithm it's the surface normals of the
> transformed glyph that have the relation to the sign determinant of
> the transform matrix. this transformation matrix is constructed from
> the eigenvectors directly. at any rate, good luck.
>
> On 08/23/2013 06:35 PM, pwhiteho wrote:
>> Burlen, you had me hoping, but alas ... there is no direct
>> correlation between the determinant ( a.k.a. the 3rd tensor invariant
>> ) and the orientation of the computed eigenvectors. You did get me
>> thinking there may be other possibilities. I'm sure I can use the dot
>> product in a marching cube scheme to enforce a consistent orientation
>> progression and generate a "vector" field ParaView will handle well.
>> It'll just have to be robust enough to handle a true change near some
>> sharp topological feature.
>>
>> Thanks,
>> Paul
>>
>> ------------------------------------------------------------------------
>> *From:* Burlen Loring [bloring at lbl.gov]
>> *Sent:* Friday, August 23, 2013 4:31 PM
>> *To:* Andy Bauer; pwhiteho
>> *Cc:* paraview at paraview.org
>> *Subject:* Re: [Paraview] Stream Tracer in eigenvector field
>>
>> Eigenvectors are unique up to a constantso if you took any
>> eigenvector and multiplied it by -1 it's still an eigenvector. You
>> could see it in the definition,
>>
>> M x=\lambda x
>>
>> eigenvector x appears in both sides of the eqn.
>>
>> I had a similar problem with tensor glyphs in ParaView. In that case
>> I was able to solve by looking at the sign of the determinant of the
>> transformation matrix (see bug report, patch and mail list posts
>> below). I wonder if you could adapt/build on this solution there to
>> solve your issue here?
>>
>> http://vtk.org/Bug/view.php?id=12179
>> http://vtk.1045678.n5.nabble.com/tensor-glyph-inward-pointing-surface-normals-td4388361.html
>>
>> Burlen
>>
>>
>> On 08/23/2013 01:10 PM, Andy Bauer wrote:
>>> 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 <mailto: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 <http://www.kitware.com>
>>>
>>> Visit other Kitware open-source projects at
>>> http://www.kitware.com/opensource/opensource.html
>>> <http://www.kitware.com/opensource/opensource.html>
>>>
>>> Please keep messages on-topic and check the ParaView Wiki at:
>>> http://paraview.org/Wiki/ParaView
>>> <http://paraview.org/Wiki/ParaView>
>>>
>>> Follow this link to subscribe/unsubscribe:
>>> http://www.paraview.org/mailman/listinfo/paraview
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> Powered bywww.kitware.com
>>>
>>> Visit other Kitware open-source projects athttp://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/20130824/76678f25/attachment-0001.htm>
More information about the ParaView
mailing list