<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, Sep 1, 2015 at 4:12 AM, Filippo Leonardi <span dir="ltr"><<a href="mailto:filippo.leonardi@sam.math.ethz.ch" target="_blank">filippo.leonardi@sam.math.ethz.ch</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><u></u>
<div style="font-family:'Oxygen Mono';font-size:9pt;font-weight:400;font-style:normal">
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">Thanks Matt,</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"> </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">I use the "natural scaling"  of the Laplacian Lapl * x  = b. The grid is *still* uniform.</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"> </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">I give you a couple of results:</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"> </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">1 ) This is e.g. gmres + gamg + 4 levels. As you can see it converges after 2 iterations which is totally strange. The solution is incorrect.</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"> </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">2 ) This is mg + galerkin matrices + levels. Result is incorrect</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"> </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">3 ) Default: works fine</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"> </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">4) LU: works fine</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"> </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">I remove the constant nullspace as usual.</p></div></blockquote><div><br></div><div>If you have a constant null space, how does 4) work? It should fail with a zero pivot since</div><div>the matrix is singular.</div><div><br></div><div>   Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="font-family:'Oxygen Mono';font-size:9pt;font-weight:400;font-style:normal">
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">I use the usual setcomputeoperator business and compute rhs.</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"> </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">Instead, if I scale to Lapl * dx * dy * x = b * dx * dy (things work fine also with MG). This is fine with uniform grid but  I do not know how to do that properly on nonuniform.</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"> </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">Let me know if you need code pieces or other details.</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"> </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">1)</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"> </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="font-family:'monospace';color:#000000;background-color:#ffffff"> 0 KSP Residual norm 1.793027353791e-05  </span><span style="font-family:'monospace'"><br> 0 KSP preconditioned resid norm 1.793027353791e-05 true resid norm 7.912994695029e-03 ||r(i)||/||b|| 1.000000000000e+00 <br> 1 KSP Residual norm 2.662212708666e-20  <br> 1 KSP preconditioned resid norm 2.662212708666e-20 true resid norm 3.120963188535e-02 ||r(i)||/||b|| 3.944098674167e+00 <br>Linear solve converged due to CONVERGED_RTOL iterations 1 <br>KSP Object: 1 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=10000, 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: 1 MPI processes <br> type: gamg <br>   MG: type is MULTIPLICATIVE, levels=4 cycles=v <br>     Cycles per PCApply=1 <br>     Using Galerkin computed coarse grid matrices <br>     GAMG specific options <br>       Threshold for dropping small values from graph 0 <br>       AGG specific options <br>         Symmetric graph false <br> Coarse grid solver -- level ------------------------------- <br>   KSP Object:    (mg_coarse_)     1 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 NONE norm type for convergence test <br>   PC Object:    (mg_coarse_)     1 MPI processes <br>     type: bjacobi <br>       block Jacobi: number of blocks = 1 <br>       Local solve is same for all blocks, in the following KSP and PC objects: <br>       KSP Object:        (mg_coarse_sub_)         1 MPI processes <br>         type: preonly <br>         maximum iterations=1, 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_coarse_sub_)         1 MPI processes <br>         type: lu <br>           LU: out-of-place factorization <br>           tolerance for zero pivot 2.22045e-14 <br>           using diagonal shift on blocks to prevent zero pivot [INBLOCKS] <br>           matrix ordering: nd <br>           factor fill ratio given 5, needed 1.10953 <br>             Factored matrix follows: <br>               Mat Object:                 1 MPI processes <br>                 type: seqaij <br>                 rows=33, cols=33 <br>                 package used to perform factorization: petsc <br>                 total: nonzeros=1013, allocated nonzeros=1013 <br>                 total number of mallocs used during MatSetValues calls =0 <br>                   using I-node routines: found 21 nodes, limit used is 5 <br>         linear system matrix = precond matrix: <br>         Mat Object:           1 MPI processes <br>           type: seqaij <br>           rows=33, cols=33 <br>           total: nonzeros=913, allocated nonzeros=913 <br>           total number of mallocs used during MatSetValues calls =0 <br>             not using I-node routines <br>     linear system matrix = precond matrix: <br>     Mat Object:       1 MPI processes <br>       type: seqaij <br>       rows=33, cols=33 <br>       total: nonzeros=913, allocated nonzeros=913 <br>       total number of mallocs used during MatSetValues calls =0 <br>         not using I-node routines <br> Down solver (pre-smoother) on level 1 ------------------------------- <br>   KSP Object:    (mg_levels_1_)     1 MPI processes <br>     type: chebyshev <br>       Chebyshev: eigenvalue estimates:  min = -1.79769e+307, max = -inf <br>       Chebyshev: eigenvalues estimated using gmres with translations  [0 0.1; 0 1.1] <br>       KSP Object:        (mg_levels_1_esteig_)         1 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=10, 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>     maximum iterations=2 <br>     tolerances:  relative=1e-05, absolute=1e-50, divergence=10000 <br>     left preconditioning <br>     using nonzero initial guess <br>     using NONE norm type for convergence test <br>   PC Object:    (mg_levels_1_)     1 MPI processes <br>     type: sor <br>       SOR: type = local_symmetric, iterations = 1, local iterations = 1, omega = 1 <br>     linear system matrix = precond matrix: <br>     Mat Object:       1 MPI processes <br>       type: seqaij <br>       rows=401, cols=401 <br>       total: nonzeros=9777, allocated nonzeros=9777 <br>       total number of mallocs used during MatSetValues calls =0 <br>         not using I-node routines <br> Up solver (post-smoother) same as down solver (pre-smoother) <br> Down solver (pre-smoother) on level 2 ------------------------------- <br>   KSP Object:    (mg_levels_2_)     1 MPI processes <br>     type: chebyshev <br>       Chebyshev: eigenvalue estimates:  min = -1.79769e+307, max = -inf <br>       Chebyshev: eigenvalues estimated using gmres with translations  [0 0.1; 0 1.1] <br>       KSP Object:        (mg_levels_2_esteig_)         1 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=10, 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>     maximum iterations=2 <br>     tolerances:  relative=1e-05, absolute=1e-50, divergence=10000 <br>     left preconditioning <br>     using nonzero initial guess <br>     using NONE norm type for convergence test <br>   PC Object:    (mg_levels_2_)     1 MPI processes <br>     type: sor <br>       SOR: type = local_symmetric, iterations = 1, local iterations = 1, omega = 1 <br>     linear system matrix = precond matrix: <br>     Mat Object:       1 MPI processes <br>       type: seqaij <br>       rows=2296, cols=2296 <br>       total: nonzeros=25038, allocated nonzeros=25038 <br>       total number of mallocs used during MatSetValues calls =0 <br>         not using I-node routines <br> Up solver (post-smoother) same as down solver (pre-smoother) <br> Down solver (pre-smoother) on level 3 ------------------------------- <br>   KSP Object:    (mg_levels_3_)     1 MPI processes <br>     type: chebyshev <br>       Chebyshev: eigenvalue estimates:  min = -1.79769e+307, max = -inf <br>       Chebyshev: eigenvalues estimated using gmres with translations  [0 0.1; 0 1.1] <br>       KSP Object:        (mg_levels_3_esteig_)         1 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=10, 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>     maximum iterations=2 <br>     tolerances:  relative=1e-05, absolute=1e-50, divergence=10000 <br>     left preconditioning <br>     using nonzero initial guess <br>     using NONE norm type for convergence test <br>   PC Object:    (mg_levels_3_)     1 MPI processes <br>     type: sor <br>       SOR: type = local_symmetric, iterations = 1, local iterations = 1, omega = 1 <br>     linear system matrix = precond matrix: <br>     Mat Object:       1 MPI processes <br>       type: seqaij <br>       rows=16384, cols=16384 <br>       total: nonzeros=81920, allocated nonzeros=81920 <br>       total number of mallocs used during MatSetValues calls =0 <br>         has attached null space <br>         not using I-node routines <br> Up solver (post-smoother) same as down solver (pre-smoother) <br> linear system matrix = precond matrix: <br> Mat Object:   1 MPI processes <br>   type: seqaij <br>   rows=16384, cols=16384 <br>   total: nonzeros=81920, allocated nonzeros=81920 <br>   total number of mallocs used during MatSetValues calls =0 <br>     has attached null space <br>     not using I-node routines<br></span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"> </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="font-family:'monospace'">2)</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"> </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="font-family:'monospace';color:#000000;background-color:#ffffff"> 0 KSP Residual norm 1.010294060491e-05  </span><span style="font-family:'monospace'"><br> 0 KSP preconditioned resid norm 1.010294060491e-05 true resid norm 1.086379257868e-03 ||r(i)||/||b|| 1.000000000000e+00 <br> 1 KSP Residual norm 8.803303876758e-20  <br> 1 KSP preconditioned resid norm 8.803303876758e-20 true resid norm 2.101751936637e-03 ||r(i)||/||b|| 1.934639235254e+00 <br>Linear solve converged due to CONVERGED_RTOL iterations 1 <br>KSP Object: 1 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=10000, 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: 1 MPI processes <br> type: mg <br>   MG: type is MULTIPLICATIVE, levels=4 cycles=v <br>     Cycles per PCApply=1 <br>     Using Galerkin computed coarse grid matrices <br> Coarse grid solver -- level ------------------------------- <br>   KSP Object:    (mg_coarse_)     1 MPI processes <br>     type: preonly <br>     maximum iterations=1, 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_coarse_)     1 MPI processes <br>     type: lu <br>       LU: out-of-place factorization <br>       tolerance for zero pivot 2.22045e-14 <br>       using diagonal shift on blocks to prevent zero pivot [INBLOCKS] <br>       matrix ordering: nd <br>       factor fill ratio given 5, needed 4.83507 <br>         Factored matrix follows: <br>           Mat Object:             1 MPI processes <br>             type: seqaij <br>             rows=256, cols=256 <br>             package used to perform factorization: petsc <br>             total: nonzeros=11140, allocated nonzeros=11140 <br>             total number of mallocs used during MatSetValues calls =0 <br>               not using I-node routines <br>     linear system matrix = precond matrix: <br>     Mat Object:       1 MPI processes <br>       type: seqaij <br>       rows=256, cols=256 <br>       total: nonzeros=2304, allocated nonzeros=2304 <br>       total number of mallocs used during MatSetValues calls =0 <br>         not using I-node routines <br> Down solver (pre-smoother) on level 1 ------------------------------- <br>   KSP Object:    (mg_levels_1_)     1 MPI processes <br>     type: chebyshev <br>       Chebyshev: eigenvalue estimates:  min = -1.79769e+307, max = -inf <br>       Chebyshev: eigenvalues estimated using gmres with translations  [0 0.1; 0 1.1] <br>       KSP Object:        (mg_levels_1_esteig_)         1 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=10, 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>     maximum iterations=2 <br>     tolerances:  relative=1e-05, absolute=1e-50, divergence=10000 <br>     left preconditioning <br>     using nonzero initial guess <br>     using NONE norm type for convergence test <br>   PC Object:    (mg_levels_1_)     1 MPI processes <br>     type: sor <br>       SOR: type = local_symmetric, iterations = 1, local iterations = 1, omega = 1 <br>     linear system matrix = precond matrix: <br>     Mat Object:       1 MPI processes <br>       type: seqaij <br>       rows=1024, cols=1024 <br>       total: nonzeros=9216, allocated nonzeros=9216 <br>       total number of mallocs used during MatSetValues calls =0 <br>         not using I-node routines <br> Up solver (post-smoother) same as down solver (pre-smoother) <br> Down solver (pre-smoother) on level 2 ------------------------------- <br>   KSP Object:    (mg_levels_2_)     1 MPI processes <br>     type: chebyshev <br>       Chebyshev: eigenvalue estimates:  min = -1.79769e+307, max = -inf <br>       Chebyshev: eigenvalues estimated using gmres with translations  [0 0.1; 0 1.1] <br>       KSP Object:        (mg_levels_2_esteig_)         1 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=10, 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>     maximum iterations=2 <br>     tolerances:  relative=1e-05, absolute=1e-50, divergence=10000 <br>     left preconditioning <br>     using nonzero initial guess <br>     using NONE norm type for convergence test <br>   PC Object:    (mg_levels_2_)     1 MPI processes <br>     type: sor <br>       SOR: type = local_symmetric, iterations = 1, local iterations = 1, omega = 1 <br>     linear system matrix = precond matrix: <br>     Mat Object:       1 MPI processes <br>       type: seqaij <br>       rows=4096, cols=4096 <br>       total: nonzeros=36864, allocated nonzeros=36864 <br>       total number of mallocs used during MatSetValues calls =0 <br>         not using I-node routines <br> Up solver (post-smoother) same as down solver (pre-smoother) <br> Down solver (pre-smoother) on level 3 ------------------------------- <br>   KSP Object:    (mg_levels_3_)     1 MPI processes <br>     type: chebyshev <br>       Chebyshev: eigenvalue estimates:  min = -1.79769e+307, max = -inf <br>       Chebyshev: eigenvalues estimated using gmres with translations  [0 0.1; 0 1.1] <br>       KSP Object:        (mg_levels_3_esteig_)         1 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=10, 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>     maximum iterations=2 <br>     tolerances:  relative=1e-05, absolute=1e-50, divergence=10000 <br>     left preconditioning <br>     using nonzero initial guess <br>     using NONE norm type for convergence test <br>   PC Object:    (mg_levels_3_)     1 MPI processes <br>     type: sor <br>       SOR: type = local_symmetric, iterations = 1, local iterations = 1, omega = 1 <br>     linear system matrix = precond matrix: <br>     Mat Object:       1 MPI processes <br>       type: seqaij <br>       rows=16384, cols=16384 <br>       total: nonzeros=81920, allocated nonzeros=81920 <br>       total number of mallocs used during MatSetValues calls =0 <br>         has attached null space <br>         not using I-node routines <br> Up solver (post-smoother) same as down solver (pre-smoother) <br> linear system matrix = precond matrix: <br> Mat Object:   1 MPI processes <br>   type: seqaij <br>   rows=16384, cols=16384 <br>   total: nonzeros=81920, allocated nonzeros=81920 <br>   total number of mallocs used during MatSetValues calls =0 <br>     has attached null space <br>     not using I-node routines<br><br>3)</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"> </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="font-family:'monospace';color:#000000;background-color:#ffffff">0 KSP Residual norm 2.990548680394e-08  </span><span style="font-family:'monospace'"><br> 0 KSP preconditioned resid norm 2.990548680394e-08 true resid norm 2.966915112865e-04 ||r(i)||/||b|| 1.000000000000e+00 <br> 1 KSP Residual norm 2.368703753809e-08  <br> 1 KSP preconditioned resid norm 2.368703753809e-08 true resid norm 3.109667150576e-04 ||r(i)||/||b|| 1.048114634993e+00 <br> 2 KSP Residual norm 2.236515515253e-08  <br> 2 KSP preconditioned resid norm 2.236515515253e-08 true resid norm 2.655771471955e-04 ||r(i)||/||b|| 8.951289035670e-01 <br> 3 KSP Residual norm 1.957630940223e-08  <br> 3 KSP preconditioned resid norm 1.957630940223e-08 true resid norm 2.158250768646e-04 ||r(i)||/||b|| 7.274393390250e-01 <br> 4 KSP Residual norm 1.771416739221e-08  <br> 4 KSP preconditioned resid norm 1.771416739221e-08 true resid norm 2.075204223802e-04 ||r(i)||/||b|| 6.994484657830e-01 <br> 5 KSP Residual norm 1.617056152936e-08  <br> 5 KSP preconditioned resid norm 1.617056152936e-08 true resid norm 1.908090487285e-04 ||r(i)||/||b|| 6.431227098516e-01 <br> 6 KSP Residual norm 1.467170521607e-08  <br> 6 KSP preconditioned resid norm 1.467170521607e-08 true resid norm 1.683698119419e-04 ||r(i)||/||b|| 5.674911668750e-01 <br> 7 KSP Residual norm 1.321526248809e-08  <br> 7 KSP preconditioned resid norm 1.321526248809e-08 true resid norm 1.473617884651e-04 ||r(i)||/||b|| 4.966835344432e-01 <br> 8 KSP Residual norm 1.174828665876e-08  <br> 8 KSP preconditioned resid norm 1.174828665876e-08 true resid norm 1.458902362707e-04 ||r(i)||/||b|| 4.917236615167e-01 <br> 9 KSP Residual norm 1.012151625603e-08  <br> 9 KSP preconditioned resid norm 1.012151625603e-08 true resid norm 1.303866699420e-04 ||r(i)||/||b|| 4.394688253015e-01 <br>10 KSP Residual norm 7.876439970777e-09  <br>10 KSP preconditioned resid norm 7.876439970777e-09 true resid norm 1.162414266035e-04 ||r(i)||/||b|| 3.917922224990e-01 <br>11 KSP Residual norm 4.981821461221e-09  <br>11 KSP preconditioned resid norm 4.981821461221e-09 true resid norm 9.075981784793e-05 ||r(i)||/||b|| 3.059063518683e-01 <br>12 KSP Residual norm 2.426217812448e-09  <br>12 KSP preconditioned resid norm 2.426217812448e-09 true resid norm 5.145334699067e-05 ||r(i)||/||b|| 1.734237247556e-01 <br>13 KSP Residual norm 1.049060114422e-09  <br>13 KSP preconditioned resid norm 1.049060114422e-09 true resid norm 2.107527819651e-05 ||r(i)||/||b|| 7.103431475044e-02 <br>14 KSP Residual norm 5.887222551677e-10  <br>14 KSP preconditioned resid norm 5.887222551677e-10 true resid norm 9.047187295472e-06 ||r(i)||/||b|| 3.049358323817e-02 <br>15 KSP Residual norm 4.536407095834e-10  <br>15 KSP preconditioned resid norm 4.536407095834e-10 true resid norm 6.032647097712e-06 ||r(i)||/||b|| 2.033306268708e-02 <br>16 KSP Residual norm 3.564018350025e-10  <br>16 KSP preconditioned resid norm 3.564018350025e-10 true resid norm 5.116056274149e-06 ||r(i)||/||b|| 1.724368941991e-02 <br>17 KSP Residual norm 2.744968239957e-10  <br>17 KSP preconditioned resid norm 2.744968239957e-10 true resid norm 3.648248676660e-06 ||r(i)||/||b|| 1.229643767306e-02 <br>18 KSP Residual norm 2.281847233955e-10  <br>18 KSP preconditioned resid norm 2.281847233955e-10 true resid norm 2.900148270786e-06 ||r(i)||/||b|| 9.774962074955e-03 <br>19 KSP Residual norm 1.881670741813e-10  <br>19 KSP preconditioned resid norm 1.881670741813e-10 true resid norm 2.473850917169e-06 ||r(i)||/||b|| 8.338125032436e-03 <br>20 KSP Residual norm 1.581922522755e-10  <br>20 KSP preconditioned resid norm 1.581922522755e-10 true resid norm 1.965254213304e-06 ||r(i)||/||b|| 6.623897680059e-03 <br>21 KSP Residual norm 1.349952347592e-10  <br>21 KSP preconditioned resid norm 1.349952347592e-10 true resid norm 1.709953736235e-06 ||r(i)||/||b|| 5.763406336838e-03 <br>22 KSP Residual norm 1.148754892680e-10  <br>22 KSP preconditioned resid norm 1.148754892680e-10 true resid norm 1.452723184020e-06 ||r(i)||/||b|| 4.896409667135e-03 <br>23 KSP Residual norm 9.889008860663e-11  <br>23 KSP preconditioned resid norm 9.889008860663e-11 true resid norm 1.259317356950e-06 ||r(i)||/||b|| 4.244534504846e-03 <br>24 KSP Residual norm 8.468070834423e-11  <br>24 KSP preconditioned resid norm 8.468070834423e-11 true resid norm 1.097968496396e-06 ||r(i)||/||b|| 3.700707484468e-03 <br>25 KSP Residual norm 7.340678871498e-11  <br>25 KSP preconditioned resid norm 7.340678871498e-11 true resid norm 9.388293102378e-07 ||r(i)||/||b|| 3.164328181036e-03 <br>26 KSP Residual norm 6.452497596580e-11  <br>26 KSP preconditioned resid norm 6.452497596580e-11 true resid norm 7.907509627807e-07 ||r(i)||/||b|| 2.665229481464e-03 <br>27 KSP Residual norm 5.817349095331e-11  <br>27 KSP preconditioned resid norm 5.817349095331e-11 true resid norm 6.712549222809e-07 ||r(i)||/||b|| 2.262467568992e-03 <br>28 KSP Residual norm 5.382715584394e-11  <br>28 KSP preconditioned resid norm 5.382715584394e-11 true resid norm 5.883671521302e-07 ||r(i)||/||b|| 1.983093987351e-03 <br>29 KSP Residual norm 5.072666199584e-11  <br>29 KSP preconditioned resid norm 5.072666199584e-11 true resid norm 5.417512216577e-07 ||r(i)||/||b|| 1.825974795533e-03 <br>30 KSP Residual norm 4.806650672230e-11  <br>30 KSP preconditioned resid norm 4.806650672230e-11 true resid norm 5.151866485899e-07 ||r(i)||/||b|| 1.736438789084e-03 <br>31 KSP Residual norm 4.675001898732e-11  <br>31 KSP preconditioned resid norm 4.675001898732e-11 true resid norm 4.825947510614e-07 ||r(i)||/||b|| 1.626587659919e-03 <br>32 KSP Residual norm 4.530536181592e-11  <br>32 KSP preconditioned resid norm 4.530536181592e-11 true resid norm 4.648650267512e-07 ||r(i)||/||b|| 1.566829548764e-03 <br>33 KSP Residual norm 4.357157235509e-11  <br>33 KSP preconditioned resid norm 4.357157235509e-11 true resid norm 4.567209908707e-07 ||r(i)||/||b|| 1.539380041209e-03 <br>34 KSP Residual norm 4.135715715343e-11  <br>34 KSP preconditioned resid norm 4.135715715343e-11 true resid norm 4.469703503011e-07 ||r(i)||/||b|| 1.506515465721e-03 <br>35 KSP Residual norm 3.851871986267e-11  <br>35 KSP preconditioned resid norm 3.851871986267e-11 true resid norm 4.364097171314e-07 ||r(i)||/||b|| 1.470920806730e-03 <br>36 KSP Residual norm 3.526035391634e-11  <br>36 KSP preconditioned resid norm 3.526035391634e-11 true resid norm 4.065382561286e-07 ||r(i)||/||b|| 1.370238920439e-03 <br>37 KSP Residual norm 3.144895012756e-11  <br>37 KSP preconditioned resid norm 3.144895012756e-11 true resid norm 3.810168560499e-07 ||r(i)||/||b|| 1.284218932985e-03 <br>38 KSP Residual norm 2.735239124106e-11  <br>38 KSP preconditioned resid norm 2.735239124106e-11 true resid norm 3.407338934429e-07 ||r(i)||/||b|| 1.148445036278e-03 <br>39 KSP Residual norm 2.306734554159e-11  <br>39 KSP preconditioned resid norm 2.306734554159e-11 true resid norm 2.940484127641e-07 ||r(i)||/||b|| 9.910914251948e-04 <br>40 KSP Residual norm 1.924842110922e-11  <br>40 KSP preconditioned resid norm 1.924842110922e-11 true resid norm 2.443693779909e-07 ||r(i)||/||b|| 8.236480273107e-04 <br>41 KSP Residual norm 1.618672399310e-11  <br>41 KSP preconditioned resid norm 1.618672399310e-11 true resid norm 2.034502467604e-07 ||r(i)||/||b|| 6.857299215548e-04 <br>42 KSP Residual norm 1.378885267147e-11  <br>42 KSP preconditioned resid norm 1.378885267147e-11 true resid norm 1.689714775892e-07 ||r(i)||/||b|| 5.695190834970e-04 <br>43 KSP Residual norm 1.179601185051e-11  <br>43 KSP preconditioned resid norm 1.179601185051e-11 true resid norm 1.483783124701e-07 ||r(i)||/||b|| 5.001097329234e-04 <br>44 KSP Residual norm 9.928908801463e-12  <br>44 KSP preconditioned resid norm 9.928908801463e-12 true resid norm 1.276885725440e-07 ||r(i)||/||b|| 4.303748765523e-04 <br>45 KSP Residual norm 8.512555069524e-12  <br>45 KSP preconditioned resid norm 8.512555069524e-12 true resid norm 1.020939171370e-07 ||r(i)||/||b|| 3.441079817022e-04 <br>46 KSP Residual norm 7.600214409478e-12  <br>46 KSP preconditioned resid norm 7.600214409478e-12 true resid norm 8.873369034852e-08 ||r(i)||/||b|| 2.990772805186e-04 <br>47 KSP Residual norm 6.577382322417e-12  <br>47 KSP preconditioned resid norm 6.577382322417e-12 true resid norm 8.285748008098e-08 ||r(i)||/||b|| 2.792714888326e-04 <br>48 KSP Residual norm 5.701374824383e-12  <br>48 KSP preconditioned resid norm 5.701374824383e-12 true resid norm 6.754179947516e-08 ||r(i)||/||b|| 2.276499222452e-04 <br>49 KSP Residual norm 5.201909133133e-12  <br>49 KSP preconditioned resid norm 5.201909133133e-12 true resid norm 5.807496359589e-08 ||r(i)||/||b|| 1.957419116714e-04 <br>50 KSP Residual norm 4.803415857522e-12  <br>50 KSP preconditioned resid norm 4.803415857522e-12 true resid norm 5.648916764539e-08 ||r(i)||/||b|| 1.903969796791e-04 <br>51 KSP Residual norm 4.213404847970e-12  <br>51 KSP preconditioned resid norm 4.213404847970e-12 true resid norm 5.312367187239e-08 ||r(i)||/||b|| 1.790535618699e-04 <br>52 KSP Residual norm 3.583723287544e-12  <br>52 KSP preconditioned resid norm 3.583723287544e-12 true resid norm 4.482581392980e-08 ||r(i)||/||b|| 1.510855964009e-04 <br>53 KSP Residual norm 3.055433343791e-12  <br>53 KSP preconditioned resid norm 3.055433343791e-12 true resid norm 3.733365588478e-08 ||r(i)||/||b|| 1.258332458617e-04 <br>54 KSP Residual norm 2.632415195178e-12  <br>54 KSP preconditioned resid norm 2.632415195178e-12 true resid norm 3.259461418510e-08 ||r(i)||/||b|| 1.098602856676e-04 <br>55 KSP Residual norm 2.358953414259e-12  <br>55 KSP preconditioned resid norm 2.358953414259e-12 true resid norm 2.755891784400e-08 ||r(i)||/||b|| 9.288744974367e-05 <br>56 KSP Residual norm 2.131084837625e-12  <br>56 KSP preconditioned resid norm 2.131084837625e-12 true resid norm 2.435335186857e-08 ||r(i)||/||b|| 8.208307599694e-05 <br>57 KSP Residual norm 1.906113965754e-12  <br>57 KSP preconditioned resid norm 1.906113965754e-12 true resid norm 2.234444331024e-08 ||r(i)||/||b|| 7.531204116139e-05 <br>58 KSP Residual norm 1.666029207693e-12  <br>58 KSP preconditioned resid norm 1.666029207693e-12 true resid norm 2.187608862971e-08 ||r(i)||/||b|| 7.373344971974e-05 <br>59 KSP Residual norm 1.397594452516e-12  <br>59 KSP preconditioned resid norm 1.397594452516e-12 true resid norm 1.884281030995e-08 ||r(i)||/||b|| 6.350977224879e-05 <br>60 KSP Residual norm 1.000720808126e-12  <br>60 KSP preconditioned resid norm 1.000720808126e-12 true resid norm 1.495264965711e-08 ||r(i)||/||b|| 5.039796923166e-05 <br>61 KSP Residual norm 8.368281175845e-13  <br>61 KSP preconditioned resid norm 8.368281175845e-13 true resid norm 1.198110007063e-08 ||r(i)||/||b|| 4.038234871863e-05 <br>62 KSP Residual norm 6.975866756145e-13  <br>62 KSP preconditioned resid norm 6.975866756145e-13 true resid norm 8.713139114636e-09 ||r(i)||/||b|| 2.936767242465e-05 <br>63 KSP Residual norm 6.055685829863e-13  <br>63 KSP preconditioned resid norm 6.055685829863e-13 true resid norm 7.208696201852e-09 ||r(i)||/||b|| 2.429694119186e-05 <br>64 KSP Residual norm 5.321880026091e-13  <br>64 KSP preconditioned resid norm 5.321880026091e-13 true resid norm 6.450668328122e-09 ||r(i)||/||b|| 2.174200502115e-05 <br>65 KSP Residual norm 4.652520314729e-13  <br>65 KSP preconditioned resid norm 4.652520314729e-13 true resid norm 5.767198491137e-09 ||r(i)||/||b|| 1.943836703022e-05 <br>66 KSP Residual norm 4.095554125778e-13  <br>66 KSP preconditioned resid norm 4.095554125778e-13 true resid norm 5.117612129931e-09 ||r(i)||/||b|| 1.724893343844e-05 <br>67 KSP Residual norm 3.575261581129e-13  <br>67 KSP preconditioned resid norm 3.575261581129e-13 true resid norm 4.479181564454e-09 ||r(i)||/||b|| 1.509710050359e-05 <br>68 KSP Residual norm 3.109053579360e-13  <br>68 KSP preconditioned resid norm 3.109053579360e-13 true resid norm 3.779777902208e-09 ||r(i)||/||b|| 1.273975748689e-05 <br>69 KSP Residual norm 2.721884401030e-13  <br>69 KSP preconditioned resid norm 2.721884401030e-13 true resid norm 3.393605957929e-09 ||r(i)||/||b|| 1.143816330711e-05 <br>Linear solve converged due to CONVERGED_RTOL iterations 69 <br>KSP Object: 1 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=10000, 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: 1 MPI processes <br> type: ilu <br>   ILU: out-of-place factorization <br>   0 levels of fill <br>   tolerance for zero pivot 2.22045e-14 <br>   matrix ordering: natural <br>   factor fill ratio given 1, needed 1 <br>     Factored matrix follows: <br>       Mat Object:         1 MPI processes <br>         type: seqaij <br>         rows=16384, cols=16384 <br>         package used to perform factorization: petsc <br>         total: nonzeros=81920, allocated nonzeros=81920 <br>         total number of mallocs used during MatSetValues calls =0 <br>           not using I-node routines <br> linear system matrix = precond matrix: <br> Mat Object:   1 MPI processes <br>   type: seqaij <br>   rows=16384, cols=16384 <br>   total: nonzeros=81920, allocated nonzeros=81920 <br>   total number of mallocs used during MatSetValues calls =0 <br>     has attached null space <br>     not using I-node routines<br><br>4)</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"> </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="font-family:'monospace';color:#000000;background-color:#ffffff">Linear solve converged due to CONVERGED_ITS iterations 1 </span><span style="font-family:'monospace'"><br>KSP Object: 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: 1 MPI processes <br> type: lu <br>   LU: out-of-place factorization <br>   tolerance for zero pivot 2.22045e-14 <br>   matrix ordering: nd <br>   factor fill ratio given 5, needed 9.6582 <br>     Factored matrix follows: <br>       Mat Object:         1 MPI processes <br>         type: seqaij <br>         rows=16384, cols=16384 <br>         package used to perform factorization: petsc <br>         total: nonzeros=791200, allocated nonzeros=791200 <br>         total number of mallocs used during MatSetValues calls =0 <br>           not using I-node routines <br> linear system matrix = precond matrix: <br> Mat Object:   1 MPI processes <br>   type: seqaij <br>   rows=16384, cols=16384 <br>   total: nonzeros=81920, allocated nonzeros=81920 <br>   total number of mallocs used during MatSetValues calls =0 <br>     has attached null space <br>     not using I-node routines<br><br></span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"> </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">On Tuesday 01 September 2015 03:40:14 Matthew Knepley wrote:</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">> On Tue, Sep 1, 2015 at 2:22 AM, Filippo Leonardi <</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">> </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">> <a href="mailto:filippo.leonardi@sam.math.ethz.ch" target="_blank">filippo.leonardi@sam.math.ethz.ch</a>> wrote:</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">> > Dear PETSc Users,</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">> > </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">> > </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">> > </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">> > I want to use multigrid to solve uniform (just Laplace) poisson in 2D/3D</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">> > on cartesian, non-uniform meshes with a standard 5 (7)-points stencil FD.</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">> > </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">> > </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">> > </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">> > I always scaled my Poisson matrix like in the doc examples, i.e.</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">> > multiplying by dx*dy (so that in ComputeRHS I need to scale b, in A*x = b,</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">> > as well). This always worked properly with both MG/GAMG and with galerkin</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">> > matrices.</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">> > </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">> > </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">> > </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">> > Now I'd like to use non-uniform meshes, therefore the scaling is</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">> > non-uniform. However I cannot get my matrices to scale properly with any</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">> > sort of multigrid.</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">> > </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">> > </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">> > </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">> > One would think that without scaling, i.e. solving the original system, at</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">> > least MG+galerkin or GAMG should work anyways provided the matrix A and b</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">> > are consistent.</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">> > </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">> > </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">> > </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">> > I tried without boundaries (i.e. torus), so this is not the problem.</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">> </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">> The point of that scaling is to make the boundary values the same size as</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">> the residuals. If you have</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">> no boundary values, the problem is scale invariant since its linear. It</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">> would be nice to scale it so everything</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">> is about size 1.</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">> </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">> When asking about convergence always run with -ksp_view</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">> -ksp_monitor_true_residual -ksp_converged_reason</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">> </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">>   Thanks,</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">> </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">>      Matt</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">> </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">> > Anyone did/knows how to do this properly?</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">> > </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">> > </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">> > </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">> > Thanks,</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">> > </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">> > F</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"> </p></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>