[petsc-dev] MATSCATTER Transpose

Dmitry Karpeev karpeev at mcs.anl.gov
Mon Mar 29 14:42:46 CDT 2010

Good point.  Actually, should this be pushed all the way to the level
of VecScatter?
That would necessitate an introduction of something like VecScatterTranspose
(by analogy with the induced linear operator) or VecScatterInvert.
The implementation of VecScatterTranspose is trivially carried out at
the interface level
with a flag, which would cause an appropriate change in the
ScatterMode submitted to
ops->scatterbegin, ops->scatterend.

Then, MatTranspose for MATSCATTER could be implemented by transposing
the underlying
VecScatter (incurring extra storage) or transposing the underlying
scatter on MatScatterGetVecScatter
(this is much less clean, though).

Any thoughts?


On Mon, Mar 29, 2010 at 1:14 PM, Jed Brown <jed at 59a2.org> wrote:
> On Mon, 29 Mar 2010 12:57:53 -0600, Dmitry Karpeev <karpeev at mcs.anl.gov> wrote:
>> Is there any reason why MATSCATTER doesn't implement MatTranspose?
>> It seems to me that it would be easy to accomplish by reversing
>> MatMultXXX and MatMultTransposeXXX
>> in MATSCATTER's ops vtable.
> Makes sense to me, just be careful with MatScatterGetVecScatter().
> Jed

More information about the petsc-dev mailing list