On Fri, 31 May 2013, Jed Brown wrote:

> 丁老师 <ztdepya...@163.com> writes:
> 
> > I write a simple c procedure to test the MatSetValues.  the main body of 
> > procedure is like this
> >         
> >      int row=1;
> >      int col=10;
> >      double v=1.0;
> >    
> >      MatSetValues(A,1,&row,1,&col,&v,INSERT_VALUES);
> >       MatSetValues(A,1,&row,1,&row,&v,ADD_VALUES);
> >       MatSetValues(A,1,&col,1,&col,&v,ADD_VALUES);
> 
> You can't mix INSERT_VALUES and ADD_VALUES.  Please use debugging PETSc
> for development.  It warns about this.

i.e use:

      MatSetValues(A,1,&row,1,&col,&v,INSERT_VALUES);
      
   MatAssemblyBegin(A,MAT_FLUSH_ASSEMBLY);
   MatAssemblyEnd(A,MAT_FLUSH_ASSEMBLY);

      MatSetValues(A,1,&row,1,&row,&v,ADD_VALUES);
      MatSetValues(A,1,&col,1,&col,&v,ADD_VALUES);

   MatAssemblyBegin(A,MAT_FINAL_ASSEMBLY);
   MatAssemblyEnd(A,MAT_FINAL_ASSEMBLY);

Satish

Reply via email to