<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jan 21, 2015 at 4:03 PM, Matthew Knepley <span dir="ltr"><<a href="mailto:knepley@gmail.com" target="_blank">knepley@gmail.com</a>></span> wrote:<br><blockquote style="margin:0px 0px 0px 0.8ex;padding-left:1ex;border-left-color:rgb(204,204,204);border-left-width:1px;border-left-style:solid" class="gmail_quote"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div><div class="h5">On Wed, Jan 21, 2015 at 3:16 PM, Chung-Kan Huang <span dir="ltr"><<a href="mailto:ckhuangf@gmail.com" target="_blank">ckhuangf@gmail.com</a>></span> wrote:<br><blockquote style="margin:0px 0px 0px 0.8ex;padding-left:1ex;border-left-color:rgb(204,204,204);border-left-width:1px;border-left-style:solid" class="gmail_quote"><div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jan 21, 2015 at 2:36 PM, Matthew Knepley <span dir="ltr"><<a href="mailto:knepley@gmail.com" target="_blank">knepley@gmail.com</a>></span> wrote:<br><blockquote style="margin:0px 0px 0px 0.8ex;padding-left:1ex;border-left-color:rgb(204,204,204);border-left-width:1px;border-left-style:solid" class="gmail_quote"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><span>On Wed, Jan 21, 2015 at 2:29 PM, Chung-Kan Huang <span dir="ltr"><<a href="mailto:ckhuangf@gmail.com" target="_blank">ckhuangf@gmail.com</a>></span> wrote:<br><blockquote style="margin:0px 0px 0px 0.8ex;padding-left:1ex;border-left-color:rgb(204,204,204);border-left-width:1px;border-left-style:solid" class="gmail_quote"><div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jan 21, 2015 at 2:15 PM, Matthew Knepley <span dir="ltr"><<a href="mailto:knepley@gmail.com" target="_blank">knepley@gmail.com</a>></span> wrote:<br><blockquote style="margin:0px 0px 0px 0.8ex;padding-left:1ex;border-left-color:rgb(204,204,204);border-left-width:1px;border-left-style:solid" class="gmail_quote"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><span>On Wed, Jan 21, 2015 at 2:07 PM, Chung-Kan Huang <span dir="ltr"><<a href="mailto:ckhuangf@gmail.com" target="_blank">ckhuangf@gmail.com</a>></span> wrote:<br><blockquote style="margin:0px 0px 0px 0.8ex;padding-left:1ex;border-left-color:rgb(204,204,204);border-left-width:1px;border-left-style:solid" class="gmail_quote"><div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jan 21, 2015 at 2:01 PM, Matthew Knepley <span dir="ltr"><<a href="mailto:knepley@gmail.com" target="_blank">knepley@gmail.com</a>></span> wrote:<br><blockquote style="margin:0px 0px 0px 0.8ex;padding-left:1ex;border-left-color:rgb(204,204,204);border-left-width:1px;border-left-style:solid" class="gmail_quote"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><span>On Wed, Jan 21, 2015 at 1:55 PM, Chung-Kan Huang <span dir="ltr"><<a href="mailto:ckhuangf@gmail.com" target="_blank">ckhuangf@gmail.com</a>></span> wrote:<br><blockquote style="margin:0px 0px 0px 0.8ex;padding-left:1ex;border-left-color:rgb(204,204,204);border-left-width:1px;border-left-style:solid" class="gmail_quote"><div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jan 21, 2015 at 1:44 PM, Matthew Knepley <span dir="ltr"><<a href="mailto:knepley@gmail.com" target="_blank">knepley@gmail.com</a>></span> wrote:<br><blockquote style="margin:0px 0px 0px 0.8ex;padding-left:1ex;border-left-color:rgb(204,204,204);border-left-width:1px;border-left-style:solid" class="gmail_quote"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><span>On Wed, Jan 21, 2015 at 1:40 PM, Chung-Kan Huang <span dir="ltr"><<a href="mailto:ckhuangf@gmail.com" target="_blank">ckhuangf@gmail.com</a>></span> wrote:<br><blockquote style="margin:0px 0px 0px 0.8ex;padding-left:1ex;border-left-color:rgb(204,204,204);border-left-width:1px;border-left-style:solid" class="gmail_quote"><div dir="ltr"><div class="gmail_extra">Then A & AB are not longer the same matrix.  They become complete two individuals aren't they?</div><div class="gmail_extra">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.</div></div></blockquote><div><br></div></span><div>Yes.</div><span><div> </div><blockquote style="margin:0px 0px 0px 0.8ex;padding-left:1ex;border-left-color:rgb(204,204,204);border-left-width:1px;border-left-style:solid" class="gmail_quote"><div dir="ltr"><div class="gmail_extra"> </div><div class="gmail_extra">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.</div></div></blockquote><div><br></div></span><div>Why would you ever want this? Why not just using BAIJ?</div></div></div></div></blockquote><div>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.</div><div> </div><div>For instance,</div><div> </div><div>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.</div></div></div></div></blockquote><div><br></div></span><div>If the blocks truly are dense, then ILU(0) is identical on both.</div></div></div></div></blockquote><div> </div><div>Unfortunately the life is not that easy.  The blocks are spares and we found ILU(1) works better for our case.</div><div>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.</div><div> </div><div>So go back to the original question the short answer is no way? </div></div></div></div></blockquote><div><br></div></span><div>Yes, it would not make sense.</div><div><br></div><div>What problem are you using ILU(1) for?</div></div></div></div></blockquote><div> </div><div>I am using it for flow simulation for reservoir problems. </div></div></div></div></blockquote><div><br></div></span><div>Have you considered trying algebraic multigrid?</div></div></div></div></blockquote><div> </div><div>I am solving PDE fully implicitly and as far as I know algebraic multigrid only good for pressure equations </div><div>I will need 2 stages PC while AMG is for pressure stage but I will still need something like ILU for second stage.</div></div></div></div></blockquote><div><br></div></div></div><div>So you are using a mixed-formulation of Darcy? What equations do you have?</div></div></div></div></blockquote><div>After some steps of reduction, the system equation solved in linear solver is basically the convervations of masses and energy.</div><div>Together I am solving the equations with natrual variables (pressure, temperature, saturations and molar fractions) .</div><div> </div><div>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.</div><div> </div><div>I switched to AIJ for reason related to ILU that I explained already. I didn't see the same problem in AIJ.</div><div> </div><div>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.</div><div>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.</div><div> </div><div>Thanks,</div><div> </div><div>Kan</div><blockquote style="margin:0px 0px 0px 0.8ex;padding-left:1ex;border-left-color:rgb(204,204,204);border-left-width:1px;border-left-style:solid" class="gmail_quote"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div><br></div><div>  Thanks,</div><div><br></div><div>     MAtt</div><div><div class="h5"><div> </div><blockquote style="margin:0px 0px 0px 0.8ex;padding-left:1ex;border-left-color:rgb(204,204,204);border-left-width:1px;border-left-style:solid" class="gmail_quote"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote style="margin:0px 0px 0px 0.8ex;padding-left:1ex;border-left-color:rgb(204,204,204);border-left-width:1px;border-left-style:solid" class="gmail_quote"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><span><div> </div><blockquote style="margin:0px 0px 0px 0.8ex;padding-left:1ex;border-left-color:rgb(204,204,204);border-left-width:1px;border-left-style:solid" class="gmail_quote"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div>Some issues we found is that </div><div>1) for a * x = 0 it doesn't return x = 0</div></div></div></div></blockquote><div><br></div></span><div>This is impossible. There must be a bug in the code.</div><div><br></div><div>  Thanks,</div><div><br></div><div>     Matt</div><div><div><div> </div><blockquote style="margin:0px 0px 0px 0.8ex;padding-left:1ex;border-left-color:rgb(204,204,204);border-left-width:1px;border-left-style:solid" class="gmail_quote"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div> </div><div>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.</div><div> </div><div> </div><div>Thanks,</div><div> </div><div>Kan</div><blockquote style="margin:0px 0px 0px 0.8ex;padding-left:1ex;border-left-color:rgb(204,204,204);border-left-width:1px;border-left-style:solid" class="gmail_quote"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div><br></div><div>  Thanks,</div><div><br></div><div>     Matt</div><div><div><div> </div><blockquote style="margin:0px 0px 0px 0.8ex;padding-left:1ex;border-left-color:rgb(204,204,204);border-left-width:1px;border-left-style:solid" class="gmail_quote"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div>Thanks,</div><div> </div><div>Kan</div><blockquote style="margin:0px 0px 0px 0.8ex;padding-left:1ex;border-left-color:rgb(204,204,204);border-left-width:1px;border-left-style:solid" class="gmail_quote"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div><br></div><div>  Matt</div><div><div><div> </div><blockquote style="margin:0px 0px 0px 0.8ex;padding-left:1ex;border-left-color:rgb(204,204,204);border-left-width:1px;border-left-style:solid" class="gmail_quote"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div>Thanks,</div><div> </div><div>Kan</div><blockquote style="margin:0px 0px 0px 0.8ex;padding-left:1ex;border-left-color:rgb(204,204,204);border-left-width:1px;border-left-style:solid" class="gmail_quote"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div><div><div><br></div><div>  Thanks,</div><div><br></div><div>      Matt</div><div> </div><blockquote style="margin:0px 0px 0px 0.8ex;padding-left:1ex;border-left-color:rgb(204,204,204);border-left-width:1px;border-left-style:solid" class="gmail_quote"><div dir="ltr"><div class="gmail_extra">Thanks,</div><div class="gmail_extra"> </div><div class="gmail_extra">Kan<br></div><div class="gmail_quote">On Wed, Jan 21, 2015 at 1:20 PM, Matthew Knepley <span dir="ltr"><<a href="mailto:knepley@gmail.com" target="_blank">knepley@gmail.com</a>></span> wrote:<br><blockquote style="margin:0px 0px 0px 0.8ex;padding-left:1ex;border-left-color:rgb(204,204,204);border-left-width:1px;border-left-style:solid" class="gmail_quote"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><span>On Wed, Jan 21, 2015 at 12:56 PM, Chung-Kan Huang <span dir="ltr"><<a href="mailto:ckhuangf@gmail.com" target="_blank">ckhuangf@gmail.com</a>></span> wrote:<br></span><blockquote style="margin:0px 0px 0px 0.8ex;padding-left:1ex;border-left-color:rgb(204,204,204);border-left-width:1px;border-left-style:solid" class="gmail_quote"><div dir="ltr"><div class="gmail_extra">Hi, </div><div class="gmail_extra"> </div><span><div class="gmail_extra">So if I do </div><div class="gmail_extra"> </div><div class="gmail_extra">Mat A, AB;</div><div class="gmail_extra">MatCreateAIJ(comm,m,n,M,N,d_nz, d_nnz,o_nz, o_nnz, &A);</div><div class="gmail_extra">MatConvert(A, MATBAIJ, MAT_INITAL_MATRIX, &AB);</div><div class="gmail_extra">MatSetBlockSize(AB, bs)<br></div><div class="gmail_extra">I can create AB as a BAIJ with block size of bs from A which is a AIJ matrix.</div><div class="gmail_extra"> </div><div class="gmail_extra">So from this point I can use both A and AB and they will mean the same matrix. Am I right?</div></span></div></blockquote><div><br></div><div>Yes</div><span><div> </div><blockquote style="margin:0px 0px 0px 0.8ex;padding-left:1ex;border-left-color:rgb(204,204,204);border-left-width:1px;border-left-style:solid" class="gmail_quote"><div dir="ltr"><div class="gmail_extra">At the end of the program do I only destory one of them or both?</div></div></blockquote><div><br></div></span><div>Both</div><span><div> </div><blockquote style="margin:0px 0px 0px 0.8ex;padding-left:1ex;border-left-color:rgb(204,204,204);border-left-width:1px;border-left-style:solid" class="gmail_quote"><div dir="ltr"><div class="gmail_extra">Do I need to worry about anything in terms of memory penalty?</div></div></blockquote><div><br></div></span><div>It is twice the memory. Its another matrix.</div><div><br></div><div>Did you catch when Jed said you could jsut create the BAIJ up front?</div><div><br></div><div>  Thanks,</div><div><br></div><div>    Matt</div><span><div> </div><blockquote style="margin:0px 0px 0px 0.8ex;padding-left:1ex;border-left-color:rgb(204,204,204);border-left-width:1px;border-left-style:solid" class="gmail_quote"><div dir="ltr"><div class="gmail_extra"> </div><div class="gmail_extra">Thanks,</div><div class="gmail_extra"> </div><div class="gmail_extra">Kan</div><div class="gmail_extra"> </div><div class="gmail_extra"> </div><div class="gmail_quote">On Tue, Jan 20, 2015 at 4:39 PM, Barry Smith <span dir="ltr"><<a href="mailto:bsmith@mcs.anl.gov" target="_blank">bsmith@mcs.anl.gov</a>></span> wrote:<br><blockquote style="margin:0px 0px 0px 0.8ex;padding-left:1ex;border-left-color:rgb(204,204,204);border-left-width:1px;border-left-style:solid" class="gmail_quote"><br>
  You can do a MatConvert() (requires another copy of the matrix) for the parts that benefit from BAIJ.<br>
<span><font color="#888888"><br>
  Barry<br>
</font></span><div><div><br>
> On Jan 20, 2015, at 4:33 PM, Chung-Kan Huang <<a href="mailto:ckhuangf@gmail.com" target="_blank">ckhuangf@gmail.com</a>> wrote:<br>
><br>
> Hi,<br>
><br>
> Does PETSc provide means for conversion between AIJ & BAIJ.<br>
><br>
> 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.<br>
><br>
> So in my case the block size is fixed and identical for all blocks.<br>
><br>
><br>
> Thanks,<br>
><br>
><br>
> Kan<br>
<br><span><font color="#888888">
</font></span></div></div></blockquote></div><span><font color="#888888"><div class="gmail_extra"><br><br clear="all"><br>-- <br></div><div><p><strong>Cheers</strong></p></div><div class="gmail_extra">
</div></font></span></div>
</blockquote></span></div><span><font color="#888888"><br><br clear="all"><span><font color="#888888"><div><br></div>-- <br><div>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener</div>
</font></span></font></span></div></div><span><font color="#888888">
</font></span></blockquote></div><span><font color="#888888"><div class="gmail_extra"><br><br clear="all"><br>-- <br></div><div><p><strong>Cheers</strong></p></div><div class="gmail_extra">
</div></font></span></div>
</blockquote></div></div></div><div><div><br><br clear="all"><span><font color="#888888"><div><br></div>-- <br><div>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener</div>
</font></span></div></div></div></div><span><font color="#888888">
</font></span></blockquote></div><span><font color="#888888"><br><br clear="all"><br>-- <br><div><p><strong>Cheers</strong></p></div>
</font></span></div></div>
</blockquote></div></div></div><div><div><br><br clear="all"><span><font color="#888888"><div><br></div>-- <br><div>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener</div>
</font></span></div></div></div></div><span><font color="#888888">
</font></span></blockquote></div><span><font color="#888888"><br><br clear="all"><br>-- <br><div><p><strong>Cheers</strong></p></div>
</font></span></div></div>
</blockquote></div></div></div><div><div><br><br clear="all"><span><font color="#888888"><div><br></div>-- <br><div>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener</div>
</font></span></div></div></div></div><span><font color="#888888">
</font></span></blockquote></div><span><font color="#888888"><br><br clear="all"><br>-- <br><div><p><strong>Cheers</strong></p></div>
</font></span></div></div>
</blockquote></div></div></div><div><div><br><br clear="all"><span><font color="#888888"><div><br></div>-- <br><div>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener</div>
</font></span></div></div></div></div><span><font color="#888888">
</font></span></blockquote></div><span><font color="#888888"><br><br clear="all"><br>-- <br><div><p><strong>Cheers</strong></p></div>
</font></span></div></div>
</blockquote></div></div></div><div><div class="h5"><br><br clear="all"><div><br></div>-- <br><div>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener</div>
</div></div></div></div>
</blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature"><p><strong>Cheers</strong></p></div>
</div></div>