dolfin team mailing list archive
-
dolfin team
-
Mailing list archive
-
Message #22449
Re: Diagonal operations on GenericMatrix
On Mon, Apr 04, 2011 at 08:10:22PM +0100, Garth N. Wells wrote:
>
>
> On 04/04/11 20:00, Johan Hake wrote:
> > On Monday April 4 2011 11:55:05 Garth N. Wells wrote:
> >> On 04/04/11 19:51, 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?
> >>
> >> Fine with me, but could GenericMatrix::scale have a better name? It's
> >> not clear to me what it would do. Scale the diagonal, or scale the rows
> >> or the columns?
> >
> > It basically doing:
> >
> > A*=D
> >
> > where D is a diagonal matrix given by the a vector. And I guess this would
> > then correspond to a column scale.
> >
>
> OK. It might get complicated, but we could have a
>
> (Generic)DiagonalMatrix
>
> class?
>
> Otherwise, GenericMatrix::right_scale is probably an OK name.
I think scale_columns is more informative, if that is what it actually
does.
(Is it implied by A *= D that it corresponds to A = A * D or can it be
A = D * A?)
--
Anders
> Garth
>
> > Johan
> >
> >> Garth
> >>
> >>> 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
> >>
> >> _______________________________________________
> >> Mailing list: https://launchpad.net/~dolfin
> >> Post to : dolfin@xxxxxxxxxxxxxxxxxxx
> >> Unsubscribe : https://launchpad.net/~dolfin
> >> More help : https://help.launchpad.net/ListHelp
>
> _______________________________________________
> 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