Transforming Vectors and Tensors; and SVD

David Gobbi dgobbi at irus.rri.on.ca
Mon May 8 19:14:30 EDT 2000


Hi Nigel,

I've managed to work around the SVD issue because, for
orthogonalization of 3x3 matrices at least, there is a
way to do it accurately using eigenvalue diagonalization
instead of SVD.

It would be very nice if most (or all) of CLAPACK was
available to VTK using vtkFloatArray and vtkDoubleArray
as the array data types.  I'm uncertain whether converting
CLAPACK to a C++ interface instead of a C interface would
have anything to offer here, though.  VTK would probably
use the C interface, since vtkDataArray doesn't use the STL
but instead stores the data in a simple C array.

 - David

On Tue, 9 May 2000, Nigel Nunn wrote:

> 
> Hi David,
> 
> Sounds like you would like to see some comprehensive 
> linear algebra added to Vtk... me too!  Question is 
> how "comprehensive"?  As with the SVD question you
> raised a couple of weeks ago, do we aim to tack on
> some minimal but sufficient solution for each matter
> as it arises, or implement a full object-oriented
> visualization-centric linear algebra package?
> 
> Version 3 of LAPACK (and the soon-to-be-made-public
> CLAPACK v3.0.x) should remain stable and state of the
> art for the next decade.  I have some motivation to
> convert the important parts of CLAPACK to C++.
> 
> How might such a project interface with Vtk?
> 
> Fishing for perspective, 
> Nigel
> 
> Nigel Nunn
> nnunn at ausport.gov.au
> 
> 
> ----- David Gobbi [dgobbi at irus.rri.on.ca] wrote: ----- 
> 
> > Is there out there who either uses vtkTransformPolyData() 
> > on vectors, or who simply uses vtkVectors for one thing 
> > or another?
> > 
> > The reason I am asking is that, currently, support for 
> > Vectors (and for Tensors) in VTK is incomplete and using 
> > vtkVectors to represent the wrong 'type' of vector can 
> > lead to problems with respect to the vtkTransform classes.
> > 
> > There are two distinctly different types of vectors that 
> > must be treated in different ways, unless you are applying 
> > strictly rigid-body or rigid-body plus a single scale factor 
> > transformations.  These are
> > 
> > - Contravariant Vectors e.g. tangents to surfaces 
> >   or streamlines etc.
> > 
> > - Covariant Vectors e.g. normals to surfaces or 
> >   gradients etc.
> > 
> > Likewise, there are four different kinds of 3x3 tensors 
> > which must all be transformed using different semantics.  
> > I don't have any strong desire to add support to vtkTransform 
> > for these.
> > 
> > Currently, the vtkTransform classes assume that all 
> > vtkVectors are contravariant vectors, and treats them 
> > as such.  My intention is to add a flag, e.g. 
> > vtkVectors::SetVectorTypeToCovariant(), to allow the 
> > vtkTransform classes to recognize what type of vector 
> > they are dealing with and behave accordingly.
> > 
> > Is there anyone out there who uses VTK to model vector 
> > fields who would like to share an opinion?  I don't have 
> > any experience in vector fields whatsoever, except for my 
> > undergrad courses (which did cover some tensor algebra).
> > 
> >  - David

--------------------------------------------------------------------
This is the private VTK discussion list. Please keep messages on-topic.
Check the FAQ at: <http://public.kitware.com/cgi-bin/vtkfaq>
To UNSUBSCRIBE, send message body containing "unsubscribe vtkusers" to
<majordomo at public.kitware.com>. For help, send message body containing
"info vtkusers" to the same address.
--------------------------------------------------------------------



More information about the vtkusers mailing list