EXTERNAL: Re: MatGetArray() not supporting Mat type mpiaij.

Dave May dave.mayhem23 at gmail.com
Wed Jun 4 07:42:44 CDT 2008


You could use MatGetOwnershipRanges()
http://www-unix.mcs.anl.gov/petsc/petsc-as/snapshots/petsc-current/docs/manualpages/Mat/MatGetOwnershipRanges.html
and then traverse the list "ranges[]" to determine which rank owns the
global row number of interest.

Cheers,
    Dave

On Wed, Jun 4, 2008 at 9:33 PM, Stephen R Ball <Stephen.R.Ball at awe.co.uk>
wrote:

> Ok, I am looking into using MatGetRow(). However this requires the
> global row number for input. I was looking to use MatGetOwnershipRange()
> to obtain the range of global row numbers owned by each processor but
> the documentation states that this routine assumes that the matrix is
> laid out with the first n1 rows on the first processor, the next n2 rows
> on the second, etc and that for certain parallel layouts this range may
> not be well defined.
>
> This is the case for me. Do you have a routine where I can specify a
> global row number and it will tell me the rank of the processor that
> owns it? This is to ensure that MatGetRow() only gets called by the
> owner processor for each global row number.
>
> Regards
>
> Stephen
>
>
> -----Original Message-----
> From: owner-petsc-users at mcs.anl.gov
> [mailto:owner-petsc-users at mcs.anl.gov] On Behalf Of Matthew Knepley
> Sent: 03 June 2008 15:29
> To: petsc-users at mcs.anl.gov
> Subject: EXTERNAL: Re: MatGetArray() not supporting Mat type mpiaij.
>
> On Tue, Jun 3, 2008 at 8:11 AM, Stephen R Ball
> <Stephen.R.Ball at awe.co.uk> wrote:
> > Hi
> >
> > I have been trying to extract an array containing the local matrix
> > values using MatGetArray() via the Fortran interface but get the error
> > message that Mat type mpiaij is not supported with this routine. All I
> > want to do is to extract the local matrix values so that I can output
> > them to file in the format I want rather than via use of the MatView()
> > routine. Can you suggest a way of how I can go about extracting the
> > local matrix values?
>
> This is no "local matrix". The Mat interface is supposed to be data
> structure
> neutral so we can optimize for different architectures. If you want the
> values
> directly, I would use MatGetRow() for each row.
>
>  Matt
>
> > Thanks
> >
> > Stephen
> >
> >
>
>
>
> --
> What most experimenters take for granted before they begin their
> experiments is infinitely more interesting than any results to which
> their experiments lead.
> -- Norbert Wiener
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20080604/236fb5ce/attachment.htm>


More information about the petsc-users mailing list