# [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
follows:

// 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
storage.

I hope this helps.

Mike

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

```