How to get information about the off-diagonal submatrix
    Satish Balay 
    balay at mcs.anl.gov
       
    Mon Aug 10 10:29:05 CDT 2009
    
    
  
You'll have to look at the code that does MatSetValues(). Perhaps you
can run the code in debugger - and set a break point in
MatSetValues_MPIAIJ - and see when MatSetValues_SeqAIJ_B_Private() is
getting called..
Its also possible that some values are set on other procs and
commuincated..
Note: I should have mentioned earlier: mpiaij->B is an internal
datastructure - so the column indices don't directly correspond to the
original matrix. [there is a cmap in there that stores this map]
Satish
On Mon, 10 Aug 2009, Thomas Witkowski wrote:
> Thanks, that works fine! In my test case (yes, just for debugging!) I've
> expected to have an empty off-diagonal matrix. But the matrix is not empty.
> But how is it possible, when all entries, which are inserted to the matrix via
> MatSetValues, have indices for row and col within the ownership range of the
> processors matrix?
> 
> Thomas
> 
> Satish Balay wrote:
> > alternatively - just access the private datastructe and print..
> > 
> > #include "../src/mat/impls/aij/mpi/mpiaij.h"
> > Mat_MPIAIJ     *mpiaij = (Mat_MPIAIJ*)mat->data;
> > MatView(mpiaij->B,...);
> > 
> > 
> > Satish
> > 
> > 
> > On Mon, 10 Aug 2009, Matthew Knepley wrote:
> > 
> >   
> > > If this is just for debugging, the easiest way I think is to call
> > > MatGetSubmatrix() with
> > > a column IS that omits the local columns.
> > > 
> > >   Matt
> > > 
> > > On Mon, Aug 10, 2009 at 8:28 AM, Thomas Witkowski <
> > > thomas.witkowski at tu-dresden.de> wrote:
> > > 
> > >     
> > > > Hi,
> > > > 
> > > > how is it possible to print just the off-diagonal submatrix of one
> > > > process
> > > > of a parallel mpiaij matrix?
> > > > 
> > > > Thomas
> > > > 
> > > >       
> > > 
> > > 
> > >     
> > 
> > 
> > 
> >   
> 
> 
    
    
More information about the petsc-users
mailing list