> On Jan 21, 2015, at 12:56 PM, Chung-Kan Huang <[email protected]> wrote:
> 
> Hi,
>  
> So if I do
>  
  You need to set the block size on the original matrix before you convert.

> Mat A, AB;
> MatCreateAIJ(comm,m,n,M,N,d_nz, d_nnz,o_nz, o_nnz, &A);
> MatConvert(A, MATBAIJ, MAT_INITAL_MATRIX, &AB);
> MatSetBlockSize(AB, bs)
> I can create AB as a BAIJ with block size of bs from A which is a AIJ matrix.
>  
> So from this point I can use both A and AB and they will mean the same 
> matrix. Am I right?

   They will have the same values but be different matrices and use different 
memory.
>  
> At the end of the program do I only destory one of them or both?

  Both
>  
> Do I need to worry about anything in terms of memory penalty?

   It uses roughly twice as much memory.
>  
>  
> Thanks,
>  
> Kan
>  
>  
> On Tue, Jan 20, 2015 at 4:39 PM, Barry Smith <[email protected]> wrote:
> 
>   You can do a MatConvert() (requires another copy of the matrix) for the 
> parts that benefit from BAIJ.
> 
>   Barry
> 
> > On Jan 20, 2015, at 4:33 PM, Chung-Kan Huang <[email protected]> wrote:
> >
> > Hi,
> >
> > Does PETSc provide means for conversion between AIJ & BAIJ.
> >
> > My matrix is created as AIJ because it makes life easy for most part of the 
> > applications but some part of applications actually get some benefits with 
> > BAIJ.  So I wonder if a matrix can exist as two idenfities and I can use 
> > either format depend on which one is more convenient at run time.
> >
> > So in my case the block size is fixed and identical for all blocks.
> >
> >
> > Thanks,
> >
> >
> > Kan
> 
> 
> 
> 
> -- 
> Cheers
> 

Reply via email to