← Back to team overview

dolfin team mailing list archive

Re: Diagonal operations on GenericMatrix

 

On Mon, Apr 04, 2011 at 11:51:12AM -0700, Johan Hake wrote:
> Hello!
>
> I would very much like to have something like:
>
>   // Set the diagonal of a matrix
>   GenericMatrix::set_diagonal(const GenericVector& vec);
>
>   // Scale Matrix with a diagonal matrix (represented as a Vector)
>   GenericMatrix::scale(const GenericVector& vec);
>   (maybe use operator*=)
>
> added to the GenericMatrix interface.
>
> The corresponding backend specific methods would be:
>
>   // PETSc
>   MatDiagonalSet
>   MatDiagonalScale
>
>   // Epetra
>   ReplaceDiagonalValues
>   RightScale
>
>   // MTL4/uBLAS find out later...
>
> which should ensure the methods works in parallel too.
>
> Any objections or advices in respect to implement these?

Not from me. There was recently a question about this on the mailing
list (on creating an identity matrix).

A related question is whether its possible to speedup ident_zeros.
It's quite slow at the moment. Is there a version of MatDiagonalSet
which takes an index set?

--
Anders



> Best regards,
>
> Johan
>
> _______________________________________________
> Mailing list: https://launchpad.net/~dolfin
> Post to     : dolfin@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~dolfin
> More help   : https://help.launchpad.net/ListHelp



Follow ups

References