[petsc-users] Question on non-zero pattern

Satish Balay balay at mcs.anl.gov
Thu Mar 14 14:59:35 CDT 2013


Only if you did MatSetValues(val=0) for those extra locations - the
subsequent assembly will be efficient.

You can alway verify with -info

Satish

On Thu, 14 Mar 2013, Sanjay Govindjee wrote:

> When I pre-allocated, I preallocated sufficient on and off and off processor
> memory for
> all possible non-zero patterns.  So I assume that there will not be any
> mallocs necessary.
> Or am I mis-understanding how the preallocation works?
> 
> -sanjay
> 
> 
> 
> On 3/14/13 12:52 PM, Satish Balay wrote:
> > But you might have mallocs with the new nonzero structure. Its proably
> > more efficient to destroy/create a new mat with the new structure.
> > 
> > Satish
> > 
> > On Thu, 14 Mar 2013, Sanjay Govindjee wrote:
> > 
> > > Found my answer, use
> > > 
> > >            call
> > > MatSetOption(Kmat,MAT_NEW_NONZERO_LOCATIONS,PETSC_TRUE,ierr)
> > > 
> > > after the MatAssemblyEnd( ).
> > > 
> > > 
> > > On 3/14/13 11:28 AM, Sanjay Govindjee wrote:
> > > > Is there a mechanism for resetting a matrix's non-zero pattern?
> > > > 
> > > > In particular,  I have a preallocated a matrix, set the values, and
> > > > assembled it.
> > > > And used it to solve a problem.
> > > > 
> > > > Now I would like to zero it, and reassemble it with a different non-zero
> > > > pattern.
> > > > Note the matrix has been preallocated so that it can accommodate both
> > > > non-zero
> > > > patterns.
> > > > 
> > > > -sanjay
> > > 
> 
> 



More information about the petsc-users mailing list