On Wed, Jan 21, 2015 at 2:07 PM, Chung-Kan Huang <[email protected]> wrote:
> > 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? > Yes, it would not make sense. What problem are you using ILU(1) for? Thanks, Matt > 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* > -- 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
