Thanks, I will definitely take a look. Kan
On Wed, Jan 21, 2015 at 4:44 PM, Barry Smith <[email protected]> wrote: > > Since you have various "physics" in the same matrix you can use the > PCFIELDSPLIT preconditioner to tack each of the physics separately and then > combine them together within the same overall preconditioner. For example > the pressure subproblem inside the large matrix should likely be solved > with PCGAMG while the other parts not. Take a look at the manual page. > Loosely speaking PCFIELDSPLIT is kind of like using an operator splitting > only within the preconditioner. > > Barry > > > On Jan 21, 2015, at 4:21 PM, Chung-Kan Huang <[email protected]> wrote: > > > > > > On Wed, Jan 21, 2015 at 4:03 PM, Matthew Knepley <[email protected]> > wrote: > > On Wed, Jan 21, 2015 at 3:16 PM, Chung-Kan Huang <[email protected]> > wrote: > > > > On Wed, Jan 21, 2015 at 2:36 PM, Matthew Knepley <[email protected]> > wrote: > > On Wed, Jan 21, 2015 at 2:29 PM, Chung-Kan Huang <[email protected]> > wrote: > > > > On Wed, Jan 21, 2015 at 2:15 PM, Matthew Knepley <[email protected]> > wrote: > > 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? > > > > I am using it for flow simulation for reservoir problems. > > > > Have you considered trying algebraic multigrid? > > > > I am solving PDE fully implicitly and as far as I know algebraic > multigrid only good for pressure equations > > I will need 2 stages PC while AMG is for pressure stage but I will still > need something like ILU for second stage. > > > > So you are using a mixed-formulation of Darcy? What equations do you > have? > > After some steps of reduction, the system equation solved in linear > solver is basically the convervations of masses and energy. > > Together I am solving the equations with natrual variables (pressure, > temperature, saturations and molar fractions) . > > > > It might have variable block size depend on local state and physics that > considered. For instant, I can skip mass transfer if it is impermeable to > fluid locally but I still need to solve for conduction in energy balance > equations. I might also have some zones do not have some components so I > can skip them as well. Ideally I should have used variable size of block > but I used the same size anyway in my previous BAIJ configuration as you > pointed out some optimization can be done with the same size blocked matrix. > > > > I switched to AIJ for reason related to ILU that I explained already. I > didn't see the same problem in AIJ. > > > > I am looking for room to improve linear solver performance in all > aspects including CPU time to assemble the matrix and also good PC that are > provided by PETSc. > > Currently I am using AIJ + ILU(1) + overlay(1) +BCGS. I am not so happy > about scalbility but that is not in the scope of the problem I brought > initially. But I am interested if you have any good suggestions that I > should test. > > > > Thanks, > > > > Kan > > > > Thanks, > > > > MAtt > > > > > > Some issues we found is that > > 1) for a * x = 0 it doesn't return x = 0 > > > > This is impossible. There must be a bug in the code. > > > > Thanks, > > > > Matt > > > > 2) After compared ILU(1) with BAIJ against with ILU(1) with AIJ I found > latter one is better. I could not find anything wrong with my BAIJ version > though. However, experiences suggested that BAIJ's ILU(1) should be better. > > > > > > Thanks, > > > > Kan > > > > 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 > > > > > > > > -- > > 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 > > > > -- *Cheers*
