dolfin team mailing list archive
-
dolfin team
-
Mailing list archive
-
Message #22444
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