[petsc-users] zeros in sparse aij

Mohamad M. Nasr-Azadani mmnasr at gmail.com
Thu Dec 1 20:42:08 CST 2011


I was always wondering how difficult it would be to define a constant say,
ZERO_DROP_TOLERANCE so that when the matrix is setup,
MatAssemblyBegin()/End(), it automatically ignores the values below this
threshold?
I understand the for the matrices that might change in successive
iterations, that might not be a good idea since the memory reallocation
could be very slow, but for a lot of cases which a constant matrix, that
could be simply helpful.

Best,
Mohamad





On Thu, Dec 1, 2011 at 5:00 PM, Barry Smith <bsmith at mcs.anl.gov> wrote:

>
> On Dec 1, 2011, at 6:44 PM, Xiangdong Liang wrote:
>
> > Hello everyone,
> >
> > I have a question about whether zeros will change the sparse pattern.
> > Suppose I am generating two sparse matrices A and B. A is generated
> > with exactly number of nonzeros, say 10 nnz per row. When I generate
> > matrix B, I specify 12 nonzeros, but two of them are given zero values
> > by MatSetValue. Will A and B have same sparsity patterns and
> > performance ? In other words, will PETSc simply ignore these zeros
> > entries?  I output these A and B in matlab, and it seems that these
> > zeros entries are ignored. I just want to double check on this.
> >
> > Is the option MAT_IGNORE_ZERO_ENTRIES on by default?
>
>    No, by default PETSc will insert the zero values thus increasing the
> nonzero pattern. If you set that option to the matrix then inserting values
> it will not introduce an increase in the pattern.
>
>
>    BTW: if you then load the matrix via a binary file to MATLAB it may be
> that MATLAB silently removes those locations so you don't see them.
>   Barry
>
> > Thanks.
> >
> > Best,
> > Xiangdong
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20111201/6f1236f9/attachment-0001.htm>


More information about the petsc-users mailing list