MatSetValuesBlocked works fine for AIJ matrices. Just set the block size
> On Jan 21, 2015, at 1:55 PM, Chung-Kan Huang <[email protected]> wrote: > > > On Wed, Jan 21, 2015 at 1:44 PM, Matthew Knepley <[email protected]> wrote: > On Wed, Jan 21, 2015 at 1:40 PM, Chung-Kan Huang <[email protected]> wrote: > Then A & AB are not longer the same matrix. They become complete two > individuals aren't they? > If I do whatever to AB after AB is created the A is still the same old A and > not going to be affected by the operations I do to AB. > > Yes. > > > What I am really looking for is a way to create two interfaces (one as AIJ > and one as BAIJ) but they both refer to the same matrix. > > Why would you ever want this? Why not just using BAIJ? > As I mentioned in the beginning. There are parts of the code gets benifit > when AIJ is used and the other part gets benifit if BAIJ is used. > > For instance, > > I'd like to use MatSetValuesBlocked but I also want to use ilu constructed by > AIJ instead of BAIJ (our experience found ilu from BAIJ behaves funny > sometimes. > > Thanks, > > Kan > > Thanks, > > Matt > > Thanks, > > Kan > On Wed, Jan 21, 2015 at 1:20 PM, Matthew Knepley <[email protected]> wrote: > On Wed, Jan 21, 2015 at 12:56 PM, Chung-Kan Huang <[email protected]> wrote: > Hi, > > So if I do > > 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? > > Yes > > 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 is twice the memory. Its another matrix. > > Did you catch when Jed said you could jsut create the BAIJ up front? > > Thanks, > > Matt > > > 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 > > > > > -- > What most experimenters take for granted before they begin their experiments > is infinitely more interesting than any results to which their experiments > lead. > -- Norbert Wiener > > > > -- > Cheers > > > > > -- > What most experimenters take for granted before they begin their experiments > is infinitely more interesting than any results to which their experiments > lead. > -- Norbert Wiener > > > > -- > Cheers >
