<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Wed, Feb 26, 2014 at 6:25 AM, Jed Brown <span dir="ltr"><<a href="mailto:jed@jedbrown.org" target="_blank">jed@jedbrown.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="">Adriano Côrtes <<a href="mailto:adrimacortes@gmail.com">adrimacortes@gmail.com</a>> writes:<br>
<br>
> Dear all,<br>
><br>
> I'm solving a saddle-point problem coming from a 2d stokes problem<br>
> discretized by an inf-sup stable mixed element.<br>
> By now I'm playing in serial, because I want to understand the<br>
> behavior of the solver. I have the whole matrix assembled in memory.<br>
> After playing with GMRES and ILU with different fill-ins,<br>
<br>
</div>ILU is typically terrible for saddle point problems.<br>
<div class=""><br>
> I started playing with ASM to see if I can get better results. By<br>
> using -pc_asm_blocks and -pc_asm_overlap I tried some variations none<br>
> giving better results.<br>
><br>
> My questions are<br>
><br>
> 1. how the blocks are built by PETSc, since my problem is a saddle-point one?<br>
<br>
</div>It starts with the set of owned variables and adds overlap by taking all<br>
neighbors represented in the graph. You generally need a minimum<br>
overlap of 1 for saddle point problems.<br>
<div class=""><br>
> 2. From the theoretical point-of-view, block-factorizations, that is<br>
> using PCFieldsplit, are in general the best we can have in terms of<br>
> performance (number of iterations and scalability)?<br>
<br>
</div>There is no consensus on this and I'm actually fond of "monolithic"<br>
multigrid methods, but it is harder to reuse components and harder to<br>
debug convergence. PCFieldSplit is a good methodology. Some of my<br>
talks have a comparison slide. Here is a high-level one from last week.<br>
<br>
<a href="http://59a2.org/files/20140221-ExploitsInImplicitness.pdf" target="_blank">http://59a2.org/files/20140221-ExploitsInImplicitness.pdf</a><br>
</blockquote></div><br>More specifically, you can use -pc_fieldsplit_detect_saddle_point on your</div><div class="gmail_extra">matrix, and then construct any of the block methods from options. I list most</div><div class="gmail_extra">
of the interesting ones in the Paris Tutorial on our website.</div><div class="gmail_extra"><br></div><div class="gmail_extra"> Matt<br clear="all"><div><br></div>-- <br>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>