[Trilinos-Users] Is the Epetra support symmetrical matrix?

Heroux, Michael A maherou at sandia.gov
Mon Apr 11 05:55:03 MDT 2011

There is no explicit support for symmetric storage.  However, it is possible
to realize the storage savings by storing the main diagonal as an
Epetra_Vector object and the strictly upper or lower triangle as an
Epetra_CrsMatrix object.  Then computing y = Ax would be approximatly as
  // upperA and diagA were previously constructed
  Epetra_Vector Atx(y.Map());
  upperA.Multiply(false, x, y);
  upperA.Multiply(true, x, Atx);
  diagA.Multiply(1.0, diagA, x, y, 1.0);
  y.Update(1.0, Atx, 1.0);
  Note that if your x and y are Epetra_MultiVectors, the same sequence works
if you make Atx a MultiVector.
There are other combinations of functions that will work also.  This
approach does not get the computational performance that a true symmetric
matvec would get, but does save storage.   We have discussed a symmetric
multiply function in the past, but have not followed through on its
implementation.  When considered in the larger context of preconditioned
iterative methods, full support for symmetric storage is a large effort and
its payoff is hard to realize for our typical problem base that is primarily
a broad set that is mostly nonsymmetric.
We will continue to evaluate the value of native support for symmetric
  I hope this helps.

On 4/11/11 2:05 AM, "Shibin Tang" <rockydut at gmail.com> wrote:

> Dear Colleagues:
>          I want to know if the Epetra can support symmetrical matrix storage?
>          For example, the matrix is:
>          1  2  3
>          2  4  6
>          3  6  7
> Is the storage of matrix in Epetra can only store the upper or lower matrix,
> which can reduce the memory require?
> If it is right, how to do it?
> Best regards!
> Yours sincerely
> Rocky
> _______________________________________________
> Trilinos-Users mailing list
> Trilinos-Users at software.sandia.gov
> http://software.sandia.gov/mailman/listinfo/trilinos-users

More information about the Trilinos-Users mailing list