Bug #2839

Update documentation to indicate that eigenvector only works with symmetric tensors.

Added by Mark Miller 5 months ago. Updated about 1 month ago.

Status:Resolved Start:05/31/2017
Priority:Normal Due date:
Assigned to:Mark Miller % Done:

0%

Category:-
Target version:2.13.0
Likelihood:3 - Occasional OS:All
Severity:4 - Crash / Wrong Results Support Group:Any
Found in Version:2.12.1

Description

I've attached a session file to be used with globe.silo.

It defines the following cell_constant tensor

 1      2     1
 6    -1     0
-1    -2   -1

Which has the following eigenvalues and eigenvectors

  0:  1  6 -13
-4: -1  2  1
  3:  2  3 -2

If I plot this as a tensor and then do a zone-pick, I get this information back in the pick window...

globe.silo
mesh1 
Point: <-5.634, 5.634, 4.11034>
Zone:  687
Incident Nodes:  438  439  430  429  492  493  484  483  
tensor:  <zonal> = 
    (1, 2, 1)
    (6, -1, 0)
    (-1, -2, -1)
    Major Eigenvalue: 7

The tensor value looks correct. It is row-by-row equivalent to what I created. But, what is this Major Eigenvalue? It shows a 7 and none of the eignevalues are 7.I suspect this number being displayed in the pick window is actually the sum of the absolute values of the eigenvalues.

Next, try as I might using eigenvector and eigenvalue expression functions, I am unable to create an expression that yields the known eigenvectors or eigivenvalues even within a constant scale factor.

fun_with_tensors2.session (711.4 KB) Mark Miller, 05/31/2017 03:12 pm

History

Updated by Eric Brugger 5 months ago

  • Status changed from New to Pending
  • Assigned to set to Eric Brugger
  • Target version set to 2.12.3
  • Severity changed from 2 - Minor Irritation to 4 - Crash / Wrong Results

Updated by Mark Miller 5 months ago

Randy says he believes VisIt is computing values correctly. I just cannot convince myself using this test data.

Updated by Eric Brugger 4 months ago

  • Status changed from Pending to New

I also didn't get the correct answer for the matrix that mark supplied. I looked at the vtk code that calculates the eigenvalue and I noticed that the code said it calculates it for a real symmetric tensor. So perhaps the code only works for symmetric tensors. I then tried:

3, 2, 4
2, 0, 2
4, 2, 3

which has the eigenvectors

-1/2 -1 1
1 0 1/2
0 1 1

and eigenvalues

-1 -1 8

VisIt returns normalized eigenvectors.

Visit matched the eigenvalues and the first and third columns. The second column didn't match in terms of normalization or multiplication by -1, but it appears to be an eigenvector (obviously my math here isn't up to snuff)

So, the bottom line is that I believe it works for symmetric tensors and that is what our customers have.

I'm putting this back in the new state so we can discuss again.

Updated by Mark Miller 4 months ago

So, the bottom line is that I believe it works for symmetric tensors and that is what our customers have.

Unless there is some substantial difference in performance in computing eigenvectors/values for symmetric vs. non-symmetric tensors, I would opt that we adjust our code to support the more general, non-symmetric case.

Updated by Eric Brugger 4 months ago

  • Subject changed from Issues with Eigenvector/Eigvenvalues of 3x3 matrix (tensors) to Update documentation to indicate that eigenvector only works with symmetric tensors.
  • Status changed from New to Pending
  • Assigned to changed from Eric Brugger to Mark Miller

We decided that we would just update the documentation to document the restriction.

Updated by Eric Brugger 4 months ago

  • Target version changed from 2.12.3 to 2.13.0

Updated by Mark Miller about 1 month ago

  • Status changed from Pending to Resolved

Also available in: Atom PDF