[petsc-dev] MetSetBlockSize issue

Dmitry Karpeev karpeev at mcs.anl.gov
Wed Apr 25 18:10:50 CDT 2012


On Wed, Apr 25, 2012 at 5:58 PM, Mark F. Adams <mark.adams at columbia.edu>wrote:

>
> On Apr 25, 2012, at 6:10 PM, Barry Smith wrote:
>
> >
> > On Apr 25, 2012, at 4:58 PM, Jed Brown wrote:
> >
> >> On Wed, Apr 25, 2012 at 16:41, Barry Smith <bsmith at mcs.anl.gov> wrote:
> >> I admit MatSetVirtualColumnBlockSize() is clunky and would be happy to
> hear alternatives.
> >>
> >> What about having a separate row and column block size? The BAIJ and
> MAIJ formats can continue to store data using bs=gcd(rowbs,colbs), but
> those row and column block sizes indicate that redundancy exists in the
> data structure, so it can be utilized by appropriate operations.
> >
> >  Mark told me in a earlier email that the "column block size" isn't
> really the column block size (except in some cases), since it is not really
> a column block size I don't want the matrix to list it as the column block
> size (hence my virtual column block size thing).
>
> The blocks are not always dense, so by what appears to be your definition
> of block size it is not (always) a 'column block size'.   But I think that
> it is  semantically a blocked matrix and hence it has a column block size.
>
Yes, but with this one would always set mat values in blocks, and
preallocation would have to be done in multiples of cbs.  You could set
some values to 0, of course.  It looks like in building P (at least in AGG)
you do just that -- set the values in column blocks of cbs.

Dmitry.

>
> >
> >  If it is truly a column block size then great, P is given the column
> block size with MatSetColumnBlockSize() or MatSetBlockSizes(mat,col,row)
> and PtAP automatically uses that column block size for the resulting matrix
> block size.
> >
>
> I think this solution is the best (eg, no 'virtual').  Column block size
> is a fundamental property of a blocked matrix.  PETSc's current
> implementations do not exploit or accommodate this but since it is a
> fundamental property I do not mind cluttering up Mat with yet another
> parameter.  You deal with rectangular matrices, and blocked matrices, why
> not rectangular blocks?  You also have row block size on AIJ matrices that
> do not have dense blocks so why not column block size?
>
> Mark
>
> >   So Mark I ask you again, in GAMG is it truly a column block size?
> >
> >   Barry
> >
> >
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20120425/2b4aa9b7/attachment.html>


More information about the petsc-dev mailing list