<div dir="ltr"><div dir="ltr">On Fri, Jun 5, 2020 at 10:17 AM Y. Shidi <<a href="mailto:ys453@cam.ac.uk">ys453@cam.ac.uk</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Thank you for your reply.<br>
I set the relative tolerance of 1e-10, below is the output with<br>
ksp_monitor_true_residual,<br>
<br>
step 1 (converged):<br>
<br>
   0 KSP unpreconditioned resid norm 5.853072011788e-01 true resid norm <br>
5.853072011788e-01 ||r(i)||/||b|| 1.000000000000e+00<br>
   1 KSP unpreconditioned resid norm 1.263467051263e-02 true resid norm <br>
1.263467051263e-02 ||r(i)||/||b|| 2.158639170539e-02<br>
   2 KSP unpreconditioned resid norm 1.341051880494e-03 true resid norm <br>
1.341051880494e-03 ||r(i)||/||b|| 2.291193202122e-03<br>
   3 KSP unpreconditioned resid norm 5.281711107599e-04 true resid norm <br>
5.281711107599e-04 ||r(i)||/||b|| 9.023827311473e-04<br>
   4 KSP unpreconditioned resid norm 2.265161267248e-04 true resid norm <br>
2.265161267248e-04 ||r(i)||/||b|| 3.870038268256e-04<br>
   5 KSP unpreconditioned resid norm 6.083108409953e-05 true resid norm <br>
6.083108409954e-05 ||r(i)||/||b|| 1.039301822650e-04<br>
   6 KSP unpreconditioned resid norm 2.049038801905e-05 true resid norm <br>
2.049038801906e-05 ||r(i)||/||b|| 3.500792058903e-05<br>
   7 KSP unpreconditioned resid norm 4.908575378578e-06 true resid norm <br>
4.908575378575e-06 ||r(i)||/||b|| 8.386323231099e-06<br>
   8 KSP unpreconditioned resid norm 1.160371295964e-06 true resid norm <br>
1.160371295960e-06 ||r(i)||/||b|| 1.982499606399e-06<br>
   9 KSP unpreconditioned resid norm 2.993349323170e-07 true resid norm <br>
2.993349323154e-07 ||r(i)||/||b|| 5.114150854671e-07<br>
  10 KSP unpreconditioned resid norm 6.423860393220e-08 true resid norm <br>
6.423860392241e-08 ||r(i)||/||b|| 1.097519452913e-07<br>
  11 KSP unpreconditioned resid norm 1.486343352971e-08 true resid norm <br>
1.486343352542e-08 ||r(i)||/||b|| 2.539424339131e-08<br>
  12 KSP unpreconditioned resid norm 3.388518888745e-09 true resid norm <br>
3.388518889406e-09 ||r(i)||/||b|| 5.789299845588e-09<br>
  13 KSP unpreconditioned resid norm 8.414456498118e-10 true resid norm <br>
8.414456551004e-10 ||r(i)||/||b|| 1.437613706795e-09<br>
  14 KSP unpreconditioned resid norm 2.052670281766e-10 true resid norm <br>
2.052670332352e-10 ||r(i)||/||b|| 3.506996545092e-10<br>
  15 KSP unpreconditioned resid norm 4.739342260680e-11 true resid norm <br>
4.739342219912e-11 ||r(i)||/||b|| 8.097187614243e-11<br>
Linear solve converged due to CONVERGED_RTOL iterations 15<br>
KSP Object: 1 MPI processes<br>
   type: fgmres<br>
     restart=30, using Classical (unmodified) Gram-Schmidt <br>
Orthogonalization with no iterative refinement<br>
     happy breakdown tolerance 1e-30<br>
   maximum iterations=10000, nonzero initial guess<br>
   tolerances:  relative=1e-10, absolute=1e-50, divergence=10000.<br>
   right preconditioning<br>
   using UNPRECONDITIONED norm type for convergence test<br>
PC Object: 1 MPI processes<br>
   type: fieldsplit<br>
     FieldSplit with Schur preconditioner, factorization FULL<br>
     Preconditioner for the Schur complement formed from Sp, an assembled <br>
approximation to S, which uses A00's diagonal's inverse<br>
     Split info:<br>
     Split number 0 Defined by IS<br>
     Split number 1 Defined by IS<br>
     KSP solver for A00 block<br>
       KSP Object: (fieldsplit_0_) 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: (fieldsplit_0_) 1 MPI processes<br>
         type: hypre<br>
           HYPRE BoomerAMG preconditioning<br>
             Cycle type V<br>
             Maximum number of levels 25<br>
             Maximum number of iterations PER hypre call 1<br>
             Convergence tolerance PER hypre call 0.<br>
             Threshold for strong coupling 0.25<br>
             Interpolation truncation factor 0.<br>
             Interpolation: max elements per row 0<br>
             Number of levels of aggressive coarsening 0<br>
             Number of paths for aggressive coarsening 1<br>
             Maximum row sums 0.9<br>
             Sweeps down         1<br>
             Sweeps up           1<br>
             Sweeps on coarse    1<br>
             Relax down          symmetric-SOR/Jacobi<br>
             Relax up            symmetric-SOR/Jacobi<br>
             Relax on coarse     Gaussian-elimination<br>
             Relax weight  (all)      1.<br>
             Outer relax weight (all) 1.<br>
             Using CF-relaxation<br>
             Not using more complex smoothers.<br>
             Measure type        local<br>
             Coarsen type        Falgout<br>
             Interpolation type  classical<br>
         linear system matrix = precond matrix:<br>
         Mat Object: (fieldsplit_0_) 1 MPI processes<br>
           type: seqaij<br>
           rows=28578, cols=28578<br>
           total: nonzeros=653916, allocated nonzeros=653916<br>
           total number of mallocs used during MatSetValues calls =0<br>
             not using I-node routines<br>
     KSP solver for S = A11 - A10 inv(A00) A01<br>
       KSP Object: (fieldsplit_1_) 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: (fieldsplit_1_) 1 MPI processes<br>
         type: hypre<br>
           HYPRE BoomerAMG preconditioning<br>
             Cycle type V<br>
             Maximum number of levels 25<br>
             Maximum number of iterations PER hypre call 1<br>
             Convergence tolerance PER hypre call 0.<br>
             Threshold for strong coupling 0.25<br>
             Interpolation truncation factor 0.<br>
             Interpolation: max elements per row 0<br>
             Number of levels of aggressive coarsening 0<br>
             Number of paths for aggressive coarsening 1<br>
             Maximum row sums 0.9<br>
             Sweeps down         1<br>
             Sweeps up           1<br>
             Sweeps on coarse    1<br>
             Relax down          symmetric-SOR/Jacobi<br>
             Relax up            symmetric-SOR/Jacobi<br>
             Relax on coarse     Gaussian-elimination<br>
             Relax weight  (all)      1.<br>
             Outer relax weight (all) 1.<br>
             Using CF-relaxation<br>
             Not using more complex smoothers.<br>
             Measure type        local<br>
             Coarsen type        Falgout<br>
             Interpolation type  classical<br>
         linear system matrix followed by preconditioner matrix:<br>
         Mat Object: (fieldsplit_1_) 1 MPI processes<br>
           type: schurcomplement<br>
           rows=3874, cols=3874<br>
             Schur complement A11 - A10 inv(A00) A01<br>
             A11<br>
               Mat Object: (fieldsplit_1_) 1 MPI processes<br>
                 type: seqaij<br>
                 rows=3874, cols=3874<br>
                 total: nonzeros=0, allocated nonzeros=0<br>
                 total number of mallocs used during MatSetValues calls <br>
=0<br>
                   using I-node routines: found 775 nodes, limit used is <br>
5<br>
             A10<br>
               Mat Object: 1 MPI processes<br>
                 type: seqaij<br>
                 rows=3874, cols=28578<br>
                 total: nonzeros=138180, allocated nonzeros=138180<br>
                 total number of mallocs used during MatSetValues calls <br>
=0<br>
                   not using I-node routines<br>
             KSP of A00<br>
               KSP Object: (fieldsplit_0_) 1 MPI processes<br>
                 type: preonly<br>
                 maximum iterations=10000, initial guess is zero<br>
                 tolerances:  relative=1e-05, absolute=1e-50, <br>
divergence=10000.<br>
                 left preconditioning<br>
                 using NONE norm type for convergence test<br>
               PC Object: (fieldsplit_0_) 1 MPI processes<br>
                 type: hypre<br>
                   HYPRE BoomerAMG preconditioning<br>
                     Cycle type V<br>
                     Maximum number of levels 25<br>
                     Maximum number of iterations PER hypre call 1<br>
                     Convergence tolerance PER hypre call 0.<br>
                     Threshold for strong coupling 0.25<br>
                     Interpolation truncation factor 0.<br>
                     Interpolation: max elements per row 0<br>
                     Number of levels of aggressive coarsening 0<br>
                     Number of paths for aggressive coarsening 1<br>
                     Maximum row sums 0.9<br>
                     Sweeps down         1<br>
                     Sweeps up           1<br>
                     Sweeps on coarse    1<br>
                     Relax down          symmetric-SOR/Jacobi<br>
                     Relax up            symmetric-SOR/Jacobi<br>
                     Relax on coarse     Gaussian-elimination<br>
                     Relax weight  (all)      1.<br>
                     Outer relax weight (all) 1.<br>
                     Using CF-relaxation<br>
                     Not using more complex smoothers.<br>
                     Measure type        local<br>
                     Coarsen type        Falgout<br>
                     Interpolation type  classical<br>
                 linear system matrix = precond matrix:<br>
                 Mat Object: (fieldsplit_0_) 1 MPI processes<br>
                   type: seqaij<br>
                   rows=28578, cols=28578<br>
                   total: nonzeros=653916, allocated nonzeros=653916<br>
                   total number of mallocs used during MatSetValues calls <br>
=0<br>
                     not using I-node routines<br>
             A01<br>
               Mat Object: 1 MPI processes<br>
                 type: seqaij<br>
                 rows=28578, cols=3874<br>
                 total: nonzeros=138180, allocated nonzeros=138180<br>
                 total number of mallocs used during MatSetValues calls <br>
=0<br>
                   not using I-node routines<br>
         Mat Object: 1 MPI processes<br>
           type: seqaij<br>
           rows=3874, cols=3874<br>
           total: nonzeros=77704, allocated nonzeros=77704<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: nest<br>
     rows=32452, cols=32452<br>
       Matrix object:<br>
         type=nest, rows=2, cols=2<br>
         MatNest structure:<br>
         (0,0) : prefix="fieldsplit_0_", type=seqaij, rows=28578, <br>
cols=28578<br>
         (0,1) : type=seqaij, rows=28578, cols=3874<br>
         (1,0) : type=seqaij, rows=3874, cols=28578<br>
         (1,1) : prefix="fieldsplit_1_", type=seqaij, rows=3874, <br>
cols=3874<br>
<br>
step 2 (NOT converged):<br>
<br>
Linear solve did not converge due to DIVERGED_NANORINF iterations 0<br></blockquote><div><br></div><div>It looks like your matrix is invalid.</div><div><br></div><div>  Thanks,</div><div><br></div><div>     Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
KSP Object: 1 MPI processes<br>
   type: fgmres<br>
     restart=30, using Classical (unmodified) Gram-Schmidt <br>
Orthogonalization with no iterative refinement<br>
     happy breakdown tolerance 1e-30<br>
   maximum iterations=10000, nonzero initial guess<br>
   tolerances:  relative=1e-10, absolute=1e-50, divergence=10000.<br>
   right preconditioning<br>
   using UNPRECONDITIONED norm type for convergence test<br>
PC Object: 1 MPI processes<br>
   type: fieldsplit<br>
     FieldSplit with Schur preconditioner, factorization FULL<br>
     Preconditioner for the Schur complement formed from Sp, an assembled <br>
approximation to S, which uses A00's diagonal's inverse<br>
     Split info:<br>
     Split number 0 Defined by IS<br>
     Split number 1 Defined by IS<br>
     KSP solver for A00 block<br>
       KSP Object: (fieldsplit_0_) 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 DEFAULT norm type for convergence test<br>
       PC Object: (fieldsplit_0_) 1 MPI processes<br>
         type: hypre<br>
         PC has not been set up so information may be incomplete<br>
           HYPRE BoomerAMG preconditioning<br>
             Cycle type V<br>
             Maximum number of levels 25<br>
             Maximum number of iterations PER hypre call 1<br>
             Convergence tolerance PER hypre call 0.<br>
             Threshold for strong coupling 0.25<br>
             Interpolation truncation factor 0.<br>
             Interpolation: max elements per row 0<br>
             Number of levels of aggressive coarsening 0<br>
             Number of paths for aggressive coarsening 1<br>
             Maximum row sums 0.9<br>
             Sweeps down         1<br>
             Sweeps up           1<br>
             Sweeps on coarse    1<br>
             Relax down          symmetric-SOR/Jacobi<br>
             Relax up            symmetric-SOR/Jacobi<br>
             Relax on coarse     Gaussian-elimination<br>
             Relax weight  (all)      1.<br>
             Outer relax weight (all) 1.<br>
             Using CF-relaxation<br>
             Not using more complex smoothers.<br>
             Measure type        local<br>
             Coarsen type        Falgout<br>
             Interpolation type  classical<br>
         linear system matrix = precond matrix:<br>
         Mat Object: (fieldsplit_0_) 1 MPI processes<br>
           type: seqaij<br>
           rows=28578, cols=28578<br>
           total: nonzeros=653916, allocated nonzeros=653916<br>
           total number of mallocs used during MatSetValues calls =0<br>
             not using I-node routines<br>
     KSP solver for S = A11 - A10 inv(A00) A01<br>
       KSP Object: (fieldsplit_1_) 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 DEFAULT norm type for convergence test<br>
       PC Object: (fieldsplit_1_) 1 MPI processes<br>
         type: hypre<br>
         PC has not been set up so information may be incomplete<br>
           HYPRE BoomerAMG preconditioning<br>
             Cycle type V<br>
             Maximum number of levels 25<br>
             Maximum number of iterations PER hypre call 1<br>
             Convergence tolerance PER hypre call 0.<br>
             Threshold for strong coupling 0.25<br>
             Interpolation truncation factor 0.<br>
             Interpolation: max elements per row 0<br>
             Number of levels of aggressive coarsening 0<br>
             Number of paths for aggressive coarsening 1<br>
             Maximum row sums 0.9<br>
             Sweeps down         1<br>
             Sweeps up           1<br>
             Sweeps on coarse    1<br>
             Relax down          symmetric-SOR/Jacobi<br>
             Relax up            symmetric-SOR/Jacobi<br>
             Relax on coarse     Gaussian-elimination<br>
             Relax weight  (all)      1.<br>
             Outer relax weight (all) 1.<br>
             Using CF-relaxation<br>
             Not using more complex smoothers.<br>
             Measure type        local<br>
             Coarsen type        Falgout<br>
             Interpolation type  classical<br>
         linear system matrix followed by preconditioner matrix:<br>
         Mat Object: (fieldsplit_1_) 1 MPI processes<br>
           type: schurcomplement<br>
           rows=3874, cols=3874<br>
             Schur complement A11 - A10 inv(A00) A01<br>
             A11<br>
               Mat Object: (fieldsplit_1_) 1 MPI processes<br>
                 type: seqaij<br>
                 rows=3874, cols=3874<br>
                 total: nonzeros=0, allocated nonzeros=0<br>
                 total number of mallocs used during MatSetValues calls <br>
=0<br>
                   using I-node routines: found 775 nodes, limit used is <br>
5<br>
             A10<br>
               Mat Object: 1 MPI processes<br>
                 type: seqaij<br>
                 rows=3874, cols=28578<br>
                 total: nonzeros=138180, allocated nonzeros=138180<br>
                 total number of mallocs used during MatSetValues calls <br>
=0<br>
                   not using I-node routines<br>
             KSP of A00<br>
               KSP Object: (fieldsplit_0_) 1 MPI processes<br>
                 type: preonly<br>
                 maximum iterations=10000, initial guess is zero<br>
                 tolerances:  relative=1e-05, absolute=1e-50, <br>
divergence=10000.<br>
                 left preconditioning<br>
                 using DEFAULT norm type for convergence test<br>
               PC Object: (fieldsplit_0_) 1 MPI processes<br>
                 type: hypre<br>
                 PC has not been set up so information may be incomplete<br>
                   HYPRE BoomerAMG preconditioning<br>
                     Cycle type V<br>
                     Maximum number of levels 25<br>
                     Maximum number of iterations PER hypre call 1<br>
                     Convergence tolerance PER hypre call 0.<br>
                     Threshold for strong coupling 0.25<br>
                     Interpolation truncation factor 0.<br>
                     Interpolation: max elements per row 0<br>
                     Number of levels of aggressive coarsening 0<br>
                     Number of paths for aggressive coarsening 1<br>
                     Maximum row sums 0.9<br>
                     Sweeps down         1<br>
                     Sweeps up           1<br>
                     Sweeps on coarse    1<br>
                     Relax down          symmetric-SOR/Jacobi<br>
                     Relax up            symmetric-SOR/Jacobi<br>
                     Relax on coarse     Gaussian-elimination<br>
                     Relax weight  (all)      1.<br>
                     Outer relax weight (all) 1.<br>
                     Using CF-relaxation<br>
                     Not using more complex smoothers.<br>
                     Measure type        local<br>
                     Coarsen type        Falgout<br>
                     Interpolation type  classical<br>
                 linear system matrix = precond matrix:<br>
                 Mat Object: (fieldsplit_0_) 1 MPI processes<br>
                   type: seqaij<br>
                   rows=28578, cols=28578<br>
                   total: nonzeros=653916, allocated nonzeros=653916<br>
                   total number of mallocs used during MatSetValues calls <br>
=0<br>
                     not using I-node routines<br>
             A01<br>
               Mat Object: 1 MPI processes<br>
                 type: seqaij<br>
                 rows=28578, cols=3874<br>
                 total: nonzeros=138180, allocated nonzeros=138180<br>
                 total number of mallocs used during MatSetValues calls <br>
=0<br>
                   not using I-node routines<br>
         Mat Object: 1 MPI processes<br>
           type: seqaij<br>
           rows=3874, cols=3874<br>
           total: nonzeros=77704, allocated nonzeros=77704<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: nest<br>
     rows=32452, cols=32452<br>
       Matrix object:<br>
         type=nest, rows=2, cols=2<br>
         MatNest structure:<br>
         (0,0) : prefix="fieldsplit_0_", type=seqaij, rows=28578, <br>
cols=28578<br>
         (0,1) : type=seqaij, rows=28578, cols=3874<br>
         (1,0) : type=seqaij, rows=3874, cols=28578<br>
         (1,1) : prefix="fieldsplit_1_", type=seqaij, rows=3874, <br>
cols=3874<br>
<br>
HOWEVER, if I do not use -ksp_monitor_true_residual, both two<br>
steps converge.<br>
<br>
step 1:<br>
Linear solve converged due to CONVERGED_RTOL iterations 15<br>
KSP Object: 1 MPI processes<br>
   type: fgmres<br>
     restart=30, using Classical (unmodified) Gram-Schmidt <br>
Orthogonalization with no iterative refinement<br>
     happy breakdown tolerance 1e-30<br>
   maximum iterations=10000, nonzero initial guess<br>
   tolerances:  relative=1e-10, absolute=1e-50, divergence=10000.<br>
   right preconditioning<br>
   using UNPRECONDITIONED norm type for convergence test<br>
PC Object: 1 MPI processes<br>
   type: fieldsplit<br>
     FieldSplit with Schur preconditioner, factorization FULL<br>
     Preconditioner for the Schur complement formed from Sp, an assembled <br>
approximation to S, which uses A00's diagonal's inverse<br>
     Split info:<br>
     Split number 0 Defined by IS<br>
     Split number 1 Defined by IS<br>
     KSP solver for A00 block<br>
       KSP Object: (fieldsplit_0_) 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: (fieldsplit_0_) 1 MPI processes<br>
         type: hypre<br>
           HYPRE BoomerAMG preconditioning<br>
             Cycle type V<br>
             Maximum number of levels 25<br>
             Maximum number of iterations PER hypre call 1<br>
             Convergence tolerance PER hypre call 0.<br>
             Threshold for strong coupling 0.25<br>
             Interpolation truncation factor 0.<br>
             Interpolation: max elements per row 0<br>
             Number of levels of aggressive coarsening 0<br>
             Number of paths for aggressive coarsening 1<br>
             Maximum row sums 0.9<br>
             Sweeps down         1<br>
             Sweeps up           1<br>
             Sweeps on coarse    1<br>
             Relax down          symmetric-SOR/Jacobi<br>
             Relax up            symmetric-SOR/Jacobi<br>
             Relax on coarse     Gaussian-elimination<br>
             Relax weight  (all)      1.<br>
             Outer relax weight (all) 1.<br>
             Using CF-relaxation<br>
             Not using more complex smoothers.<br>
             Measure type        local<br>
             Coarsen type        Falgout<br>
             Interpolation type  classical<br>
         linear system matrix = precond matrix:<br>
         Mat Object: (fieldsplit_0_) 1 MPI processes<br>
           type: seqaij<br>
           rows=28578, cols=28578<br>
           total: nonzeros=653916, allocated nonzeros=653916<br>
           total number of mallocs used during MatSetValues calls =0<br>
             not using I-node routines<br>
     KSP solver for S = A11 - A10 inv(A00) A01<br>
       KSP Object: (fieldsplit_1_) 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: (fieldsplit_1_) 1 MPI processes<br>
         type: hypre<br>
           HYPRE BoomerAMG preconditioning<br>
             Cycle type V<br>
             Maximum number of levels 25<br>
             Maximum number of iterations PER hypre call 1<br>
             Convergence tolerance PER hypre call 0.<br>
             Threshold for strong coupling 0.25<br>
             Interpolation truncation factor 0.<br>
             Interpolation: max elements per row 0<br>
             Number of levels of aggressive coarsening 0<br>
             Number of paths for aggressive coarsening 1<br>
             Maximum row sums 0.9<br>
             Sweeps down         1<br>
             Sweeps up           1<br>
             Sweeps on coarse    1<br>
             Relax down          symmetric-SOR/Jacobi<br>
             Relax up            symmetric-SOR/Jacobi<br>
             Relax on coarse     Gaussian-elimination<br>
             Relax weight  (all)      1.<br>
             Outer relax weight (all) 1.<br>
             Using CF-relaxation<br>
             Not using more complex smoothers.<br>
             Measure type        local<br>
             Coarsen type        Falgout<br>
             Interpolation type  classical<br>
         linear system matrix followed by preconditioner matrix:<br>
         Mat Object: (fieldsplit_1_) 1 MPI processes<br>
           type: schurcomplement<br>
           rows=3874, cols=3874<br>
             Schur complement A11 - A10 inv(A00) A01<br>
             A11<br>
               Mat Object: (fieldsplit_1_) 1 MPI processes<br>
                 type: seqaij<br>
                 rows=3874, cols=3874<br>
                 total: nonzeros=0, allocated nonzeros=0<br>
                 total number of mallocs used during MatSetValues calls <br>
=0<br>
                   using I-node routines: found 775 nodes, limit used is <br>
5<br>
             A10<br>
               Mat Object: 1 MPI processes<br>
                 type: seqaij<br>
                 rows=3874, cols=28578<br>
                 total: nonzeros=138180, allocated nonzeros=138180<br>
                 total number of mallocs used during MatSetValues calls <br>
=0<br>
                   not using I-node routines<br>
             KSP of A00<br>
               KSP Object: (fieldsplit_0_) 1 MPI processes<br>
                 type: preonly<br>
                 maximum iterations=10000, initial guess is zero<br>
                 tolerances:  relative=1e-05, absolute=1e-50, <br>
divergence=10000.<br>
                 left preconditioning<br>
                 using NONE norm type for convergence test<br>
               PC Object: (fieldsplit_0_) 1 MPI processes<br>
                 type: hypre<br>
                   HYPRE BoomerAMG preconditioning<br>
                     Cycle type V<br>
                     Maximum number of levels 25<br>
                     Maximum number of iterations PER hypre call 1<br>
                     Convergence tolerance PER hypre call 0.<br>
                     Threshold for strong coupling 0.25<br>
                     Interpolation truncation factor 0.<br>
                     Interpolation: max elements per row 0<br>
                     Number of levels of aggressive coarsening 0<br>
                     Number of paths for aggressive coarsening 1<br>
                     Maximum row sums 0.9<br>
                     Sweeps down         1<br>
                     Sweeps up           1<br>
                     Sweeps on coarse    1<br>
                     Relax down          symmetric-SOR/Jacobi<br>
                     Relax up            symmetric-SOR/Jacobi<br>
                     Relax on coarse     Gaussian-elimination<br>
                     Relax weight  (all)      1.<br>
                     Outer relax weight (all) 1.<br>
                     Using CF-relaxation<br>
                     Not using more complex smoothers.<br>
                     Measure type        local<br>
                     Coarsen type        Falgout<br>
                     Interpolation type  classical<br>
                 linear system matrix = precond matrix:<br>
                 Mat Object: (fieldsplit_0_) 1 MPI processes<br>
                   type: seqaij<br>
                   rows=28578, cols=28578<br>
                   total: nonzeros=653916, allocated nonzeros=653916<br>
                   total number of mallocs used during MatSetValues calls <br>
=0<br>
                     not using I-node routines<br>
             A01<br>
               Mat Object: 1 MPI processes<br>
                 type: seqaij<br>
                 rows=28578, cols=3874<br>
                 total: nonzeros=138180, allocated nonzeros=138180<br>
                 total number of mallocs used during MatSetValues calls <br>
=0<br>
                   not using I-node routines<br>
         Mat Object: 1 MPI processes<br>
           type: seqaij<br>
           rows=3874, cols=3874<br>
           total: nonzeros=77704, allocated nonzeros=77704<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: nest<br>
     rows=32452, cols=32452<br>
       Matrix object:<br>
         type=nest, rows=2, cols=2<br>
         MatNest structure:<br>
         (0,0) : prefix="fieldsplit_0_", type=seqaij, rows=28578, <br>
cols=28578<br>
         (0,1) : type=seqaij, rows=28578, cols=3874<br>
         (1,0) : type=seqaij, rows=3874, cols=28578<br>
         (1,1) : prefix="fieldsplit_1_", type=seqaij, rows=3874, <br>
cols=3874<br>
<br>
step 2:<br>
<br>
Linear solve converged due to CONVERGED_RTOL iterations 1<br>
KSP Object: 1 MPI processes<br>
   type: fgmres<br>
     restart=30, using Classical (unmodified) Gram-Schmidt <br>
Orthogonalization with no iterative refinement<br>
     happy breakdown tolerance 1e-30<br>
   maximum iterations=10000, nonzero initial guess<br>
   tolerances:  relative=1e-10, absolute=1e-50, divergence=10000.<br>
   right preconditioning<br>
   using UNPRECONDITIONED norm type for convergence test<br>
PC Object: 1 MPI processes<br>
   type: fieldsplit<br>
     FieldSplit with Schur preconditioner, factorization FULL<br>
     Preconditioner for the Schur complement formed from Sp, an assembled <br>
approximation to S, which uses A00's diagonal's inverse<br>
     Split info:<br>
     Split number 0 Defined by IS<br>
     Split number 1 Defined by IS<br>
     KSP solver for A00 block<br>
       KSP Object: (fieldsplit_0_) 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: (fieldsplit_0_) 1 MPI processes<br>
         type: hypre<br>
           HYPRE BoomerAMG preconditioning<br>
             Cycle type V<br>
             Maximum number of levels 25<br>
             Maximum number of iterations PER hypre call 1<br>
             Convergence tolerance PER hypre call 0.<br>
             Threshold for strong coupling 0.25<br>
             Interpolation truncation factor 0.<br>
             Interpolation: max elements per row 0<br>
             Number of levels of aggressive coarsening 0<br>
             Number of paths for aggressive coarsening 1<br>
             Maximum row sums 0.9<br>
             Sweeps down         1<br>
             Sweeps up           1<br>
             Sweeps on coarse    1<br>
             Relax down          symmetric-SOR/Jacobi<br>
             Relax up            symmetric-SOR/Jacobi<br>
             Relax on coarse     Gaussian-elimination<br>
             Relax weight  (all)      1.<br>
             Outer relax weight (all) 1.<br>
             Using CF-relaxation<br>
             Not using more complex smoothers.<br>
             Measure type        local<br>
             Coarsen type        Falgout<br>
             Interpolation type  classical<br>
         linear system matrix = precond matrix:<br>
         Mat Object: (fieldsplit_0_) 1 MPI processes<br>
           type: seqaij<br>
           rows=28578, cols=28578<br>
           total: nonzeros=653916, allocated nonzeros=653916<br>
           total number of mallocs used during MatSetValues calls =0<br>
             not using I-node routines<br>
     KSP solver for S = A11 - A10 inv(A00) A01<br>
       KSP Object: (fieldsplit_1_) 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: (fieldsplit_1_) 1 MPI processes<br>
         type: hypre<br>
           HYPRE BoomerAMG preconditioning<br>
             Cycle type V<br>
             Maximum number of levels 25<br>
             Maximum number of iterations PER hypre call 1<br>
             Convergence tolerance PER hypre call 0.<br>
             Threshold for strong coupling 0.25<br>
             Interpolation truncation factor 0.<br>
             Interpolation: max elements per row 0<br>
             Number of levels of aggressive coarsening 0<br>
             Number of paths for aggressive coarsening 1<br>
             Maximum row sums 0.9<br>
             Sweeps down         1<br>
             Sweeps up           1<br>
             Sweeps on coarse    1<br>
             Relax down          symmetric-SOR/Jacobi<br>
             Relax up            symmetric-SOR/Jacobi<br>
             Relax on coarse     Gaussian-elimination<br>
             Relax weight  (all)      1.<br>
             Outer relax weight (all) 1.<br>
             Using CF-relaxation<br>
             Not using more complex smoothers.<br>
             Measure type        local<br>
             Coarsen type        Falgout<br>
             Interpolation type  classical<br>
         linear system matrix followed by preconditioner matrix:<br>
         Mat Object: (fieldsplit_1_) 1 MPI processes<br>
           type: schurcomplement<br>
           rows=3874, cols=3874<br>
             Schur complement A11 - A10 inv(A00) A01<br>
             A11<br>
               Mat Object: (fieldsplit_1_) 1 MPI processes<br>
                 type: seqaij<br>
                 rows=3874, cols=3874<br>
                 total: nonzeros=0, allocated nonzeros=0<br>
                 total number of mallocs used during MatSetValues calls <br>
=0<br>
                   using I-node routines: found 775 nodes, limit used is <br>
5<br>
             A10<br>
               Mat Object: 1 MPI processes<br>
                 type: seqaij<br>
                 rows=3874, cols=28578<br>
                 total: nonzeros=138180, allocated nonzeros=138180<br>
                 total number of mallocs used during MatSetValues calls <br>
=0<br>
                   not using I-node routines<br>
             KSP of A00<br>
               KSP Object: (fieldsplit_0_) 1 MPI processes<br>
                 type: preonly<br>
                 maximum iterations=10000, initial guess is zero<br>
                 tolerances:  relative=1e-05, absolute=1e-50, <br>
divergence=10000.<br>
                 left preconditioning<br>
                 using NONE norm type for convergence test<br>
               PC Object: (fieldsplit_0_) 1 MPI processes<br>
                 type: hypre<br>
                   HYPRE BoomerAMG preconditioning<br>
                     Cycle type V<br>
                     Maximum number of levels 25<br>
                     Maximum number of iterations PER hypre call 1<br>
                     Convergence tolerance PER hypre call 0.<br>
                     Threshold for strong coupling 0.25<br>
                     Interpolation truncation factor 0.<br>
                     Interpolation: max elements per row 0<br>
                     Number of levels of aggressive coarsening 0<br>
                     Number of paths for aggressive coarsening 1<br>
                     Maximum row sums 0.9<br>
                     Sweeps down         1<br>
                     Sweeps up           1<br>
                     Sweeps on coarse    1<br>
                     Relax down          symmetric-SOR/Jacobi<br>
                     Relax up            symmetric-SOR/Jacobi<br>
                     Relax on coarse     Gaussian-elimination<br>
                     Relax weight  (all)      1.<br>
                     Outer relax weight (all) 1.<br>
                     Using CF-relaxation<br>
                     Not using more complex smoothers.<br>
                     Measure type        local<br>
                     Coarsen type        Falgout<br>
                     Interpolation type  classical<br>
                 linear system matrix = precond matrix:<br>
                 Mat Object: (fieldsplit_0_) 1 MPI processes<br>
                   type: seqaij<br>
                   rows=28578, cols=28578<br>
                   total: nonzeros=653916, allocated nonzeros=653916<br>
                   total number of mallocs used during MatSetValues calls <br>
=0<br>
                     not using I-node routines<br>
             A01<br>
               Mat Object: 1 MPI processes<br>
                 type: seqaij<br>
                 rows=28578, cols=3874<br>
                 total: nonzeros=138180, allocated nonzeros=138180<br>
                 total number of mallocs used during MatSetValues calls <br>
=0<br>
                   not using I-node routines<br>
         Mat Object: 1 MPI processes<br>
           type: seqaij<br>
           rows=3874, cols=3874<br>
           total: nonzeros=77704, allocated nonzeros=77704<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: nest<br>
     rows=32452, cols=32452<br>
       Matrix object:<br>
         type=nest, rows=2, cols=2<br>
         MatNest structure:<br>
         (0,0) : prefix="fieldsplit_0_", type=seqaij, rows=28578, <br>
cols=28578<br>
         (0,1) : type=seqaij, rows=28578, cols=3874<br>
         (1,0) : type=seqaij, rows=3874, cols=28578<br>
         (1,1) : prefix="fieldsplit_1_", type=seqaij, rows=3874, <br>
cols=3874<br>
<br>
Thank you for your help and time.<br>
<br>
Kind regards,<br>
Shidi<br>
<br>
On 2020-06-05 13:40, Matthew Knepley wrote:<br>
> On Fri, Jun 5, 2020 at 7:42 AM Y. Shidi <<a href="mailto:ys453@cam.ac.uk" target="_blank">ys453@cam.ac.uk</a>> wrote:<br>
> <br>
>>> This algebraic tolerance is strange. Why put it below unit<br>
>> roundoff?<br>
>> <br>
>> We are testing a static bubble problem, if the tolerance is 1e-10 it<br>
>> won't approach static solution.<br>
> <br>
> I do not understand. Every computation in your problem makes errors of<br>
> order 1e-15,<br>
> since that is the roundoff. Moreover, you cannot expect a solution to<br>
> be more accurate<br>
> than (condition number * roundoff). I would be surprised if the<br>
> condition number is near 1,<br>
> since you would not need a solver. So what is going on?<br>
> <br>
>   Thanks,<br>
> <br>
>      Matt<br>
> <br>
>> Thanks,<br>
>> Shidi<br>
>> <br>
>> On 2020-06-05 11:48, Matthew Knepley wrote:<br>
>>> On Fri, Jun 5, 2020 at 6:12 AM Y. Shidi <<a href="mailto:ys453@cam.ac.uk" target="_blank">ys453@cam.ac.uk</a>> wrote:<br>
>>> <br>
>>>> Dear developers,<br>
>>>> <br>
>>>> We are using filed splitting method solve saddle point problem.<br>
>>>> Below is our ksp configuration:<br>
>>>> <br>
>>>> PetscOptionsSetValue(NULL,"-ksp_type","gmres");<br>
>>>> PetscOptionsSetValue(NULL,"-ksp_initial_guess_nonzero","");<br>
>>>> PetscOptionsSetValue(NULL,"-ksp_rtol","1e-20");<br>
>>> <br>
>>> This algebraic tolerance is strange. Why put it below unit<br>
>> roundoff?<br>
>>> <br>
>>>> PetscOptionsSetValue(NULL,"-ksp_converged_reason", "");<br>
>>>> PetscOptionsSetValue(NULL,"-pc_type", "fieldsplit");<br>
>>>> PetscOptionsSetValue(NULL,"-pc_fieldsplit_type", "schur");<br>
>>>> PetscOptionsSetValue(NULL,"-pc_fieldsplit_schur_fact_type",<br>
>>>> "lower");<br>
>>>> PetscOptionsSetValue(NULL,"-pc_fieldsplit_schur_precondition",<br>
>>>> "selfp");<br>
>>>> PetscOptionsSetValue(NULL,"-fieldsplit_0_ksp_type", "preonly");<br>
>>>> PetscOptionsSetValue(NULL,"-fieldsplit_0_pc_type", "hypre");<br>
>>>> PetscOptionsSetValue(NULL,"-fieldsplit_1_ksp_type", "preonly");<br>
>>>> PetscOptionsSetValue(NULL,"-fieldsplit_1_pc_type", "hypre");<br>
>>>> <br>
>>>> It can be converged. However, when we turn on the ksp monitor:<br>
>>>> <br>
>>>> PetscOptionsSetValue(NULL,"-ksp_monitor_true_residual", "");<br>
>>>> <br>
>>>> It won't converge. It seems very odd, I am wondering why it<br>
>> happens.<br>
>>> <br>
>>> Can you try it with a relative tolerance of 1e-10, and send the<br>
>> output<br>
>>> (with -ksp_view as well).<br>
>>> <br>
>>> Thanks,<br>
>>> <br>
>>> Matt<br>
>>> <br>
>>>> Thank you for your time and help.<br>
>>>> <br>
>>>> Kind regards,<br>
>>>> Shidi<br>
>>> <br>
>>> --<br>
>>> <br>
>>> What most experimenters take for granted before they begin their<br>
>>> experiments is infinitely more interesting than any results to<br>
>> which<br>
>>> their experiments lead.<br>
>>> -- Norbert Wiener<br>
>>> <br>
>>> <a href="https://www.cse.buffalo.edu/~knepley/" rel="noreferrer" target="_blank">https://www.cse.buffalo.edu/~knepley/</a> [1]<br>
>>> <br>
>>> <br>
>>> Links:<br>
>>> ------<br>
>>> [1] <a href="http://www.cse.buffalo.edu/~knepley/" rel="noreferrer" target="_blank">http://www.cse.buffalo.edu/~knepley/</a><br>
> <br>
> --<br>
> <br>
> What most experimenters take for granted before they begin their<br>
> experiments is infinitely more interesting than any results to which<br>
> their experiments lead.<br>
> -- Norbert Wiener<br>
> <br>
> <a href="https://www.cse.buffalo.edu/~knepley/" rel="noreferrer" target="_blank">https://www.cse.buffalo.edu/~knepley/</a> [1]<br>
> <br>
> <br>
> Links:<br>
> ------<br>
> [1] <a href="http://www.cse.buffalo.edu/~knepley/" rel="noreferrer" target="_blank">http://www.cse.buffalo.edu/~knepley/</a><br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><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><br></div><div><a href="http://www.cse.buffalo.edu/~knepley/" target="_blank">https://www.cse.buffalo.edu/~knepley/</a><br></div></div></div></div></div></div></div></div>