On Wed, Jan 21, 2015 at 2:01 PM, Matthew Knepley <[email protected]> wrote:
> On Wed, 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. >> > > If the blocks truly are dense, then ILU(0) is identical on both. > Unfortunately the life is not that easy. The blocks are spares and we found ILU(1) works better for our case. And besides that is not the only reason I want to have AIJ & BAIJ interfaces, we have some code management issue and I am looking for short cut to unite them. So go back to the original question the short answer is no way? Thanks, Kan > > Matt > > >> 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* >> > > > > -- > 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*
