The checks in the code are lines like 

      if (value == 0.0 && ignorezeroentries && (is == ADD_VALUES)) continue;

hence changing the source code  to ignore small values is not difficult.  But I 
think this is a terribly cheesy hack and would hope people would not do this.

    Barry



On Dec 1, 2011, at 8:42 PM, Mohamad M. Nasr-Azadani wrote:

> 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
> 
> 

Reply via email to