<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Mon, Jan 18, 2016 at 8:29 AM, Hoang Giang Bui <span dir="ltr"><<a href="mailto:hgbk2008@gmail.com" target="_blank">hgbk2008@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div><br></div><div class="gmail_extra">
<br><div class="gmail_quote">On Thu, Jan 14, 2016 at 8:08 PM, Barry Smith <span dir="ltr"><<a href="mailto:bsmith@mcs.anl.gov" target="_blank">bsmith@mcs.anl.gov</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div><div><br>
> On Jan 14, 2016, at 12:57 PM, Jed Brown <<a href="mailto:jed@jedbrown.org" target="_blank">jed@jedbrown.org</a>> wrote:<br>
><br>
> Hoang Giang Bui <<a href="mailto:hgbk2008@gmail.com" target="_blank">hgbk2008@gmail.com</a>> writes:<br>
>> One more question I like to ask, which is more on the performance of the<br>
>> solver. That if I have a coupled problem, says the point block is [u_x u_y<br>
>> u_z p] in which entries of p block in stiffness matrix is in a much smaller<br>
>> scale than u (p~1e-6, u~1e+8), then AMG with hypre in PETSc still scale?<br>
><br>
> You should scale the model (as Barry says). But the names of your<br>
> variables suggest that the system is a saddle point problem, in which<br>
> case there's a good chance AMG won't work at all. For example,<br>
> BoomerAMG produces a singular preconditioner in similar contexts, such<br>
> that the preconditioned residual drops smoothly while the true residual<br>
> stagnates (the equations are not solved at all). So be vary careful if<br>
> you think it's "working".<br>
<br></div></div></blockquote><div><br></div><div><br></div><div>Using block size 4 with the scaling, the hypre AMG does not converge. So it's somehow right.</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div><div>
</div></div> The PCFIEDSPLIT preconditioner is designed for helping to solve saddle point problems.<br>
<span><font color="#888888"><br> <br></font></span></blockquote><div><br></div><div>Does PCFIELDSPLIT support variable block size? For example using P2/P1 discretization, the number of nodes carrying [u_x u_y u_z] is different with number of nodes carrying p. PCFieldSplitSetBlockSize would not be correct in this case.</div></div></div></div></blockquote><div><br></div><div>You misunderstand the blocking. You would put ALL velocities (P2) in one block and ALL pressure (P1) in another.</div><div>The PCFieldSplitSetBlockSize() call is for co-located discretizations, which P2/P2 is not.</div><div><br></div><div> Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><span class=""><font color="#888888"><div class="gmail_extra">Giang<br></div><div class="gmail_extra"><br></div></font></span></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">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>