[petsc-users] forming a matrix from a set of vectors

Nicolas Pozin nicolas.pozin at inria.fr
Wed Aug 26 16:55:38 CDT 2015

```I'm working on a finite element system of the type (A+B)X=Y where A is a classic sparse symetric matrix and B is this transpose(d)*A*d. All the degrees of freedom are coupled (B dense), this is a physical property of the problem I deal with...

To solve it I use a conjugate gradient with jacobi preconditionner (which proves to be satisying here) . So I need the diagonal of B... and for now this is clearly the most time-consuming part of my code.

----- Mail original -----
> De: "Jed Brown" <jed at jedbrown.org>
> À: "Nicolas Pozin" <nicolas.pozin at inria.fr>, "Barry Smith" <bsmith at mcs.anl.gov>
> Cc: petsc-users at mcs.anl.gov
> Envoyé: Mercredi 26 Août 2015 23:45:05
> Objet: Re: [petsc-users] forming a matrix from a set of vectors
>
> Nicolas Pozin <nicolas.pozin at inria.fr> writes:
>
> > Actually I want to get the diagonal of the matrix : transpose(d)*A*d where
> > -d is a sparse matrix of size (n1,m1)
> > -A is a dense symetric matrix of size size (n1,n1)
> > with m1 very big compared to n1 (1 million against a few dozens).
>
> The result will be m1 × m1, but at most rank n1.  Why would you want
> that monster as a matrix?
>
```