<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>Also, note that PCMG can not create coarse grid spaces for an (MPI)AIJ matrix. &nbsp;If you use regular grids (DA?) then PETSc can construct geometric multigrid coarse grid spaces, although I don't know if PCMG will construct these for you (I don't think it will and I can see from your output that PCMG just used one grid). &nbsp;'ml', hypre' and 'gamg' (a native AMG solver) will do real AMG solvers for you. &nbsp;All three can work on a similar class of problems.</div><div><br></div><div>Also, you mention that you have a condition number of 1.e20. &nbsp;That is astronomical for such a small problem. &nbsp;How did you compute that number? &nbsp;Do you know where the ill-conditioning comes from? Is this an elliptic operator?</div><div><br></div><div>Mark</div><div><br></div><br><div><div>On May 1, 2012, at 6:31 PM, Matthew Knepley wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div class="gmail_extra">On Tue, May 1, 2012 at 6:27 PM, Karthik Duraisamy <span dir="ltr">&lt;<a href="mailto:dkarthik@stanford.edu" target="_blank">dkarthik@stanford.edu</a>&gt;</span> wrote:<br><div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">The following was output for the very first iteration whereas what I had attached earlier was output every iteration. I am still a bit perplexed because PCMG drops the residual like a rock (after the first few iterations whereas with no PCMG, it is very slow)<br>
</blockquote><div><br></div><div>Because the smoother IS the solver you were using before. Just like I said last time, what you are doing is</div><div>wrapping up the same solver you used before, sticking it in another GMRES loop, and only looking at the</div>
<div>outer loop. This has nothing to do with MG.</div><div><br></div><div>&nbsp; &nbsp;Matt</div><div>&nbsp;</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
KSP Object: 8 MPI processes<br>
 &nbsp;type: gmres<br>
 &nbsp; &nbsp;GMRES: restart=100, using Classical (unmodified) Gram-Schmidt Orthogonalization with no iterative refinement<br>
 &nbsp; &nbsp;GMRES: happy breakdown tolerance 1e-30<br>
 &nbsp;maximum iterations=1, initial guess is zero<br>
 &nbsp;using preconditioner applied to right hand side for initial guess<br>
 &nbsp;tolerances: &nbsp;relative=0.01, absolute=1e-08, divergence=1e+10<br>
 &nbsp;left preconditioning<br>
 &nbsp;using DEFAULT norm type for convergence test<br>
PC Object: 8 MPI processes<br>
 &nbsp;type: mg<br>
 &nbsp; &nbsp;MG: type is MULTIPLICATIVE, levels=1 cycles=v<br>
 &nbsp; &nbsp; &nbsp;Cycles per PCApply=1<br>
 &nbsp; &nbsp; &nbsp;Not using Galerkin computed coarse grid matrices<br>
 &nbsp;Coarse grid solver -- level -------------------------------<br>
 &nbsp; &nbsp;KSP Object: &nbsp; &nbsp;(mg_levels_0_) &nbsp; &nbsp; 8 MPI processes<br>
 &nbsp; &nbsp; &nbsp;type not yet set<br>
 &nbsp; &nbsp; &nbsp;maximum iterations=1, initial guess is zero<br>
 &nbsp; &nbsp; &nbsp;tolerances: &nbsp;relative=1e-05, absolute=1e-50, divergence=10000<br>
 &nbsp; &nbsp; &nbsp;left preconditioning<br>
 &nbsp; &nbsp; &nbsp;using DEFAULT norm type for convergence test<br>
 &nbsp; &nbsp;PC Object: &nbsp; &nbsp;(mg_levels_0_) &nbsp; &nbsp; 8 MPI processes<br>
 &nbsp; &nbsp; &nbsp;type not yet set<br>
 &nbsp;linear system matrix = precond matrix:<br>
 &nbsp;Matrix Object: &nbsp; 8 MPI processes<br>
 &nbsp; &nbsp;type: mpiaij<br>
 &nbsp; &nbsp;rows=75000, cols=75000<br>
 &nbsp; &nbsp;total: nonzeros=4427800, allocated nonzeros=4427800<br>
 &nbsp; &nbsp;total number of mallocs used during MatSetValues calls =0<br>
 &nbsp; &nbsp; &nbsp;using I-node (on process 0) routines: found 3476 nodes, limit used is 5<br>
<br>
<br>
----- Original Message -----<br>
From: "Matthew Knepley" &lt;<a href="mailto:knepley@gmail.com">knepley@gmail.com</a>&gt;<br>
To: "PETSc users list" &lt;<a href="mailto:petsc-users@mcs.anl.gov">petsc-users@mcs.anl.gov</a>&gt;<br>
Sent: Tuesday, May 1, 2012 3:22:56 PM<br>
Subject: Re: [petsc-users] Multigrid<br>
<br>
<br>
On Tue, May 1, 2012 at 6:18 PM, Karthik Duraisamy &lt; <a href="mailto:dkarthik@stanford.edu">dkarthik@stanford.edu</a> &gt; wrote:<br>
<br>
<br>
<br>
Hello,<br>
<br>
Sorry (and thanks for the reply). I've attached the no multigrid case. I didn't include it because (at least to the untrained eye, everything looks the same).<br>
<br>
<br>
<br>
Did you send all the output from the MG case? There must be a PC around it. By default its GMRES, so there would be<br>
an extra GMRES loop compared to the case without MG.<br>
<br>
<br>
Matt<br>
<br>
<br>
Regards,<br>
Karthik<br>
<br>
KSP Object: 8 MPI processes<br>
type: gmres<br>
GMRES: restart=100, using Classical (unmodified) Gram-Schmidt Orthogonalization with no iterative refinement<br>
GMRES: happy breakdown tolerance 1e-30<br>
maximum iterations=1<br>
using preconditioner applied to right hand side for initial guess<br>
tolerances: relative=1e-05, absolute=1e-50, divergence=1e+10<br>
left preconditioning<br>
using nonzero initial guess<br>
using PRECONDITIONED norm type for convergence test<br>
PC Object: 8 MPI processes<br>
type: bjacobi<br>
block Jacobi: number of blocks = 8<br>
Local solve is same for all blocks, in the following KSP and PC objects:<br>
KSP Object: (sub_) 1 MPI processes<br>
type: preonly<br>
maximum iterations=10000, initial guess is zero<br>
tolerances: relative=1e-05, absolute=1e-50, divergence=10000<br>
left preconditioning<br>
using NONE norm type for convergence test<br>
PC Object: (sub_) 1 MPI processes<br>
type: ilu<br>
ILU: out-of-place factorization<br>
0 levels of fill<br>
tolerance for zero pivot 1e-12<br>
using diagonal shift to prevent zero pivot<br>
matrix ordering: natural<br>
factor fill ratio given 1, needed 1<br>
Factored matrix follows:<br>
Matrix Object: 1 MPI processes<br>
type: seqaij<br>
rows=9015, cols=9015<br>
package used to perform factorization: petsc<br>
total: nonzeros=517777, allocated nonzeros=517777<br>
total number of mallocs used during MatSetValues calls =0<br>
using I-node routines: found 3476 nodes, limit used is 5<br>
linear system matrix = precond matrix:<br>
Matrix Object: 1 MPI processes<br>
type: seqaij<br>
rows=9015, cols=9015<br>
total: nonzeros=517777, allocated nonzeros=517777<br>
total number of mallocs used during MatSetValues calls =0<br>
using I-node routines: found 3476 nodes, limit used is 5<br>
linear system matrix = precond matrix:<br>
Matrix Object: 8 MPI processes<br>
type: mpiaij<br>
rows=75000, cols=75000<br>
total: nonzeros=4427800, allocated nonzeros=4427800<br>
total number of mallocs used during MatSetValues calls =0<br>
using I-node (on process 0) routines: found 3476 nodes, limit used is 5<br>
<br>
<br>
----- Original Message -----<br>
From: "Matthew Knepley" &lt; <a href="mailto:knepley@gmail.com">knepley@gmail.com</a> &gt;<br>
To: "PETSc users list" &lt; <a href="mailto:petsc-users@mcs.anl.gov">petsc-users@mcs.anl.gov</a> &gt;<br>
Sent: Tuesday, May 1, 2012 3:15:14 PM<br>
Subject: Re: [petsc-users] Multigrid<br>
<br>
<br>
On Tue, May 1, 2012 at 6:12 PM, Karthik Duraisamy &lt; <a href="mailto:dkarthik@stanford.edu">dkarthik@stanford.edu</a> &gt; wrote:<br>
<br>
<br>
<br>
Hello Barry,<br>
<br>
Thank you for your super quick response. I have attached the output of ksp_view and it is practically the same as that when I don't use PCMG. The part I don't understand is how PCMG able to function at the zero grid level and still produce a much better convergence than when using the default PC. Is there any additional smoothing or interpolation going on?<br>

<br>
<br>
<br>
You only included one output, so I have no way of knowing what you used before. However, this is running GMRES/ILU.<br>
<br>
<br>
Also, for Algebraic Multigrid, would you recommend BoomerAMG or ML ?<br>
<br>
<br>
<br>
They are different algorithms. Its not possible to say generally that one is better. Try them both.<br>
<br>
<br>
Matt<br>
<br>
<br>
Best regards,<br>
Karthik.<br>
<br>
type: mg<br>
MG: type is MULTIPLICATIVE, levels=1 cycles=v<br>
Cycles per PCApply=1<br>
Not using Galerkin computed coarse grid matrices<br>
Coarse grid solver -- level -------------------------------<br>
KSP Object: (mg_levels_0_) 8 MPI processes<br>
type: gmres<br>
GMRES: restart=30, using Classical (unmodified) Gram-Schmidt Orthogonalization with no iterative refinement<br>
GMRES: happy breakdown tolerance 1e-30<br>
maximum iterations=1, initial guess is zero<br>
tolerances: relative=1e-05, absolute=1e-50, divergence=10000<br>
left preconditioning<br>
using PRECONDITIONED norm type for convergence test<br>
PC Object: (mg_levels_0_) 8 MPI processes<br>
type: bjacobi<br>
block Jacobi: number of blocks = 8<br>
Local solve is same for all blocks, in the following KSP and PC objects:<br>
KSP Object: (mg_levels_0_sub_) 1 MPI processes<br>
type: preonly<br>
maximum iterations=10000, initial guess is zero<br>
tolerances: relative=1e-05, absolute=1e-50, divergence=10000<br>
left preconditioning<br>
using NONE norm type for convergence test<br>
PC Object: (mg_levels_0_sub_) 1 MPI processes<br>
type: ilu<br>
ILU: out-of-place factorization<br>
0 levels of fill<br>
tolerance for zero pivot 1e-12<br>
using diagonal shift to prevent zero pivot<br>
matrix ordering: natural<br>
factor fill ratio given 1, needed 1<br>
Factored matrix follows:<br>
Matrix Object: 1 MPI processes<br>
type: seqaij<br>
rows=9015, cols=9015<br>
package used to perform factorization: petsc<br>
total: nonzeros=517777, allocated nonzeros=517777<br>
total number of mallocs used during MatSetValues calls =0<br>
using I-node routines: found 3476 nodes, limit used is 5<br>
linear system matrix = precond matrix:<br>
Matrix Object: 1 MPI processes<br>
type: seqaij<br>
rows=9015, cols=9015<br>
total: nonzeros=517777, allocated nonzeros=517777<br>
total number of mallocs used during MatSetValues calls =0<br>
using I-node routines: found 3476 nodes, limit used is 5<br>
linear system matrix = precond matrix:<br>
Matrix Object: 8 MPI processes<br>
type: mpiaij<br>
rows=75000, cols=75000<br>
total: nonzeros=4427800, allocated nonzeros=4427800<br>
total number of mallocs used during MatSetValues calls =0<br>
using I-node (on process 0) routines: found 3476 nodes, limit used is 5<br>
linear system matrix = precond matrix:<br>
Matrix Object: 8 MPI processes<br>
type: mpiaij<br>
rows=75000, cols=75000<br>
total: nonzeros=4427800, allocated nonzeros=4427800<br>
total number of mallocs used during MatSetValues calls =0<br>
using I-node (on process 0) routines: found 3476 nodes, limit used is 5<br>
<br>
<br>
<br>
----- Original Message -----<br>
From: "Barry Smith" &lt; <a href="mailto:bsmith@mcs.anl.gov">bsmith@mcs.anl.gov</a> &gt;<br>
To: "PETSc users list" &lt; <a href="mailto:petsc-users@mcs.anl.gov">petsc-users@mcs.anl.gov</a> &gt;<br>
Sent: Tuesday, May 1, 2012 1:39:26 PM<br>
Subject: Re: [petsc-users] Multigrid<br>
<br>
<br>
On May 1, 2012, at 3:37 PM, Karthik Duraisamy wrote:<br>
<br>
&gt; Hello,<br>
&gt;<br>
&gt; I have been using PETSc for a couple of years with good success, but lately as my linear problems have become stiffer (condition numbers of the order of 1.e20), I am looking to use better preconditioners. I tried using PCMG with all the default options (i.e., I just specified my preconditioner as PCMG and did not add any options to it) and I am immediately seeing better convergence.<br>

&gt;<br>
&gt; What I am not sure of is why? I would like to know more about the default parameters (the manual is not very explicit) and more importantly, want to know why it is working even when I haven't specified any grid levels and coarse grid operators. Any<br>

&gt; help in this regard will be appreciated.<br>
<br>
First run with -ksp_view to see what solver it is actually using.<br>
<br>
Barry<br>
<br>
&gt;<br>
&gt; Also, ultimately I want to use algebraic multigrid so is PCML a better option than BoomerAMG? I tried BoomerAMG with mixed results.<br>
&gt;<br>
&gt; Thanks,<br>
&gt; Karthik<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; --<br>
&gt;<br>
&gt; =======================================<br>
&gt; Karthik Duraisamy<br>
&gt; Assistant Professor (Consulting)<br>
&gt; Durand Building Rm 357<br>
&gt; Dept of Aeronautics and Astronautics<br>
&gt; Stanford University<br>
&gt; Stanford CA 94305<br>
&gt;<br>
&gt; Phone: <a href="tel:650-721-2835" value="+16507212835">650-721-2835</a><br>
&gt; Web: <a href="http://www.stanford.edu/~dkarthik" target="_blank">www.stanford.edu/~dkarthik</a><br>
&gt; =======================================<br>
<span class="HOEnZb"><font color="#888888"><br>
<br>
<br>
<br>
<br>
--<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<br>
<br>
<br>
<br>
<br>
--<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<br>
</font></span></blockquote></div><br><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<br>
</div>
</blockquote></div><br></body></html>