dolfin team mailing list archive
-
dolfin team
-
Mailing list archive
-
Message #22447
Re: Diagonal operations on GenericMatrix
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.
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
Follow ups
References