[petsc-users] Confusing Schur preconditioner behaviour

Cotter, Colin J colin.cotter at imperial.ac.uk
Mon Mar 18 16:33:35 CDT 2019


Hi Justin,

  1) Here is some UFL for my mixed system (u in BDM2, h in DG1)

a = (

    inner(ai*u,v) - dt*inner(f*perp(u),v) +

    dt*inner(g*h,div(v))

    +inner(ai*h,phi) - dt*inner(H*div(u),phi)

)*dx


Which then has the exact Schur complement (when using an H(div)-L2 element pair


aP = (inner(ai*u,v) + dt**2*inner(g*H*div(u)/ai,div(v))

      - dt*inner(f*perp(u),v))*dx


2) I put FGMRES on the outer iteration and appended the result to the bottom of this message.


all the best

--Colin


    Residual norms for firedrake_0_ solve.

    0 KSP unpreconditioned resid norm 1.086016610848e-03 true resid norm 1.086016610848e-03 ||r(i)||/||b|| 1.000000000000e+00

      Residual norms for firedrake_0_fieldsplit_1_ solve.

      0 KSP preconditioned resid norm 8.120721494511e+01 true resid norm 1.655197512879e+02 ||r(i)||/||b|| 1.000000000000e+00

      1 KSP preconditioned resid norm 9.439702024300e+00 true resid norm 3.075997034466e+01 ||r(i)||/||b|| 1.858386694356e-01

      2 KSP preconditioned resid norm 1.137279699060e+00 true resid norm 7.503013051026e+00 ||r(i)||/||b|| 4.533001646417e-02

      3 KSP preconditioned resid norm 1.496062340941e-01 true resid norm 1.484527899318e+00 ||r(i)||/||b|| 8.968886720568e-03

      4 KSP preconditioned resid norm 2.056482137526e-02 true resid norm 3.031663733277e-01 ||r(i)||/||b|| 1.831602397713e-03

      5 KSP preconditioned resid norm 1.745270896489e-03 true resid norm 3.767168288302e-02 ||r(i)||/||b|| 2.275962994742e-04

      6 KSP preconditioned resid norm 1.564628458491e-04 true resid norm 3.546145962849e-03 ||r(i)||/||b|| 2.142430698002e-05

    Linear firedrake_0_fieldsplit_1_ solve converged due to CONVERGED_RTOL iterations 6

    1 KSP unpreconditioned resid norm 1.085836886832e-03 true resid norm 1.085836886832e-03 ||r(i)||/||b|| 9.998345108044e-01

      Residual norms for firedrake_0_fieldsplit_1_ solve.

      0 KSP preconditioned resid norm 3.877459187203e-01 true resid norm 1.000000000000e+00 ||r(i)||/||b|| 1.000000000000e+00

      1 KSP preconditioned resid norm 4.065088730543e-02 true resid norm 1.756656283999e-01 ||r(i)||/||b|| 1.756656283999e-01

      2 KSP preconditioned resid norm 5.708009085053e-03 true resid norm 4.422956647739e-02 ||r(i)||/||b|| 4.422956647739e-02

      3 KSP preconditioned resid norm 7.309033373261e-04 true resid norm 8.666099848662e-03 ||r(i)||/||b|| 8.666099848662e-03

      4 KSP preconditioned resid norm 1.133694903547e-04 true resid norm 1.609496315342e-03 ||r(i)||/||b|| 1.609496315342e-03

      5 KSP preconditioned resid norm 1.227169910863e-05 true resid norm 2.710100172099e-04 ||r(i)||/||b|| 2.710100172099e-04

      6 KSP preconditioned resid norm 1.047216213052e-06 true resid norm 2.489323919135e-05 ||r(i)||/||b|| 2.489323919135e-05

    Linear firedrake_0_fieldsplit_1_ solve converged due to CONVERGED_RTOL iterations 6

    2 KSP unpreconditioned resid norm 1.075476649437e-03 true resid norm 1.075476649437e-03 ||r(i)||/||b|| 9.902948432781e-01

      Residual norms for firedrake_0_fieldsplit_1_ solve.

      0 KSP preconditioned resid norm 4.856780223694e-01 true resid norm 1.000000000000e+00 ||r(i)||/||b|| 1.000000000000e+00

      1 KSP preconditioned resid norm 4.745469162937e-02 true resid norm 3.302334019978e-01 ||r(i)||/||b|| 3.302334019978e-01

      2 KSP preconditioned resid norm 7.434637319370e-03 true resid norm 7.716456937097e-02 ||r(i)||/||b|| 7.716456937097e-02

      3 KSP preconditioned resid norm 9.477403463953e-04 true resid norm 1.245956505675e-02 ||r(i)||/||b|| 1.245956505675e-02

      4 KSP preconditioned resid norm 1.197149803247e-04 true resid norm 2.445415954040e-03 ||r(i)||/||b|| 2.445415954041e-03

      5 KSP preconditioned resid norm 8.629298003468e-06 true resid norm 2.172099238673e-04 ||r(i)||/||b|| 2.172099238673e-04

      6 KSP preconditioned resid norm 8.102365661753e-07 true resid norm 2.101591443240e-05 ||r(i)||/||b|| 2.101591443241e-05

    Linear firedrake_0_fieldsplit_1_ solve converged due to CONVERGED_RTOL iterations 6

    3 KSP unpreconditioned resid norm 8.228196318802e-04 true resid norm 8.228196318802e-04 ||r(i)||/||b|| 7.576492142582e-01

      Residual norms for firedrake_0_fieldsplit_1_ solve.

      0 KSP preconditioned resid norm 5.432442358474e-01 true resid norm 1.000000000000e+00 ||r(i)||/||b|| 1.000000000000e+00

      1 KSP preconditioned resid norm 5.878289354883e-02 true resid norm 3.137642427673e-01 ||r(i)||/||b|| 3.137642427673e-01

      2 KSP preconditioned resid norm 5.788229173110e-03 true resid norm 8.897854046325e-02 ||r(i)||/||b|| 8.897854046324e-02

      3 KSP preconditioned resid norm 8.498991030513e-04 true resid norm 1.495053243269e-02 ||r(i)||/||b|| 1.495053243269e-02

      4 KSP preconditioned resid norm 1.033515356385e-04 true resid norm 1.845694418294e-03 ||r(i)||/||b|| 1.845694418294e-03

      5 KSP preconditioned resid norm 7.847588222485e-06 true resid norm 2.466173373852e-04 ||r(i)||/||b|| 2.466173373852e-04

      6 KSP preconditioned resid norm 7.146079509981e-07 true resid norm 1.719476126742e-05 ||r(i)||/||b|| 1.719476126742e-05

    Linear firedrake_0_fieldsplit_1_ solve converged due to CONVERGED_RTOL iterations 6

    4 KSP unpreconditioned resid norm 1.657400277959e-04 true resid norm 1.657400277959e-04 ||r(i)||/||b|| 1.526127926041e-01

      Residual norms for firedrake_0_fieldsplit_1_ solve.

      0 KSP preconditioned resid norm 5.120302137337e-01 true resid norm 9.999999999998e-01 ||r(i)||/||b|| 1.000000000000e+00

      1 KSP preconditioned resid norm 6.454992757385e-02 true resid norm 2.912694339903e-01 ||r(i)||/||b|| 2.912694339903e-01

      2 KSP preconditioned resid norm 6.671724869182e-03 true resid norm 6.254491231334e-02 ||r(i)||/||b|| 6.254491231335e-02

      3 KSP preconditioned resid norm 8.212101901860e-04 true resid norm 1.773238703254e-02 ||r(i)||/||b|| 1.773238703254e-02

      4 KSP preconditioned resid norm 1.093679881645e-04 true resid norm 2.931666247026e-03 ||r(i)||/||b|| 2.931666247027e-03

      5 KSP preconditioned resid norm 1.186578053622e-05 true resid norm 3.303748399822e-04 ||r(i)||/||b|| 3.303748399822e-04

      6 KSP preconditioned resid norm 6.503381106855e-07 true resid norm 1.912788140490e-05 ||r(i)||/||b|| 1.912788140490e-05

    Linear firedrake_0_fieldsplit_1_ solve converged due to CONVERGED_RTOL iterations 6

    5 KSP unpreconditioned resid norm 2.448137330609e-05 true resid norm 2.448137330609e-05 ||r(i)||/||b|| 2.254235622324e-02

      Residual norms for firedrake_0_fieldsplit_1_ solve.

      0 KSP preconditioned resid norm 5.179583235178e-01 true resid norm 1.000000000000e+00 ||r(i)||/||b|| 1.000000000000e+00

      1 KSP preconditioned resid norm 5.254142246569e-02 true resid norm 2.516327547106e-01 ||r(i)||/||b|| 2.516327547105e-01

      2 KSP preconditioned resid norm 7.363444586475e-03 true resid norm 5.234766639265e-02 ||r(i)||/||b|| 5.234766639263e-02

      3 KSP preconditioned resid norm 9.704643808280e-04 true resid norm 1.267956066012e-02 ||r(i)||/||b|| 1.267956066011e-02

      4 KSP preconditioned resid norm 1.086598853731e-04 true resid norm 3.391601116038e-03 ||r(i)||/||b|| 3.391601116037e-03

      5 KSP preconditioned resid norm 7.629924161284e-06 true resid norm 3.006619653634e-04 ||r(i)||/||b|| 3.006619653632e-04

      6 KSP preconditioned resid norm 7.239392986410e-07 true resid norm 2.150547391218e-05 ||r(i)||/||b|| 2.150547391217e-05

    Linear firedrake_0_fieldsplit_1_ solve converged due to CONVERGED_RTOL iterations 6

    6 KSP unpreconditioned resid norm 2.402006637155e-06 true resid norm 2.402006637153e-06 ||r(i)||/||b|| 2.211758653745e-03

      Residual norms for firedrake_0_fieldsplit_1_ solve.

      0 KSP preconditioned resid norm 3.416765078712e-01 true resid norm 9.999999999993e-01 ||r(i)||/||b|| 1.000000000000e+00

      1 KSP preconditioned resid norm 3.841617294439e-02 true resid norm 1.983060322744e-01 ||r(i)||/||b|| 1.983060322745e-01

      2 KSP preconditioned resid norm 5.192499214944e-03 true resid norm 3.903498722784e-02 ||r(i)||/||b|| 3.903498722787e-02

      3 KSP preconditioned resid norm 7.152864973143e-04 true resid norm 7.896855714048e-03 ||r(i)||/||b|| 7.896855714054e-03

      4 KSP preconditioned resid norm 9.150050794784e-05 true resid norm 1.709682316519e-03 ||r(i)||/||b|| 1.709682316520e-03

      5 KSP preconditioned resid norm 1.369470900870e-05 true resid norm 4.755514972773e-04 ||r(i)||/||b|| 4.755514972776e-04

      6 KSP preconditioned resid norm 8.553609674167e-07 true resid norm 4.128479317005e-05 ||r(i)||/||b|| 4.128479317008e-05

    Linear firedrake_0_fieldsplit_1_ solve converged due to CONVERGED_RTOL iterations 6

    7 KSP unpreconditioned resid norm 1.986730253405e-07 true resid norm 1.986730253416e-07 ||r(i)||/||b|| 1.829373725568e-04

      Residual norms for firedrake_0_fieldsplit_1_ solve.

      0 KSP preconditioned resid norm 3.737152121707e-01 true resid norm 1.000000000001e+00 ||r(i)||/||b|| 1.000000000000e+00

      1 KSP preconditioned resid norm 2.327226787051e-02 true resid norm 1.728532258160e-01 ||r(i)||/||b|| 1.728532258158e-01

      2 KSP preconditioned resid norm 2.663283601003e-03 true resid norm 2.117224456449e-02 ||r(i)||/||b|| 2.117224456446e-02

      3 KSP preconditioned resid norm 4.000029435799e-04 true resid norm 4.527340194475e-03 ||r(i)||/||b|| 4.527340194470e-03

      4 KSP preconditioned resid norm 4.886053047259e-05 true resid norm 7.959488416139e-04 ||r(i)||/||b|| 7.959488416128e-04

      5 KSP preconditioned resid norm 7.135914581342e-06 true resid norm 1.973225005950e-04 ||r(i)||/||b|| 1.973225005947e-04

      6 KSP preconditioned resid norm 1.059888416230e-06 true resid norm 4.026894864745e-05 ||r(i)||/||b|| 4.026894864740e-05

    Linear firedrake_0_fieldsplit_1_ solve converged due to CONVERGED_RTOL iterations 6

    8 KSP unpreconditioned resid norm 1.847329119073e-08 true resid norm 1.847329119335e-08 ||r(i)||/||b|| 1.701013686976e-05

      Residual norms for firedrake_0_fieldsplit_1_ solve.

      0 KSP preconditioned resid norm 3.105703514818e-01 true resid norm 9.999999999993e-01 ||r(i)||/||b|| 1.000000000000e+00

      1 KSP preconditioned resid norm 2.274848341406e-02 true resid norm 1.655926612050e-01 ||r(i)||/||b|| 1.655926612051e-01

      2 KSP preconditioned resid norm 1.896323766042e-03 true resid norm 2.108620526506e-02 ||r(i)||/||b|| 2.108620526507e-02

      3 KSP preconditioned resid norm 2.098171871374e-04 true resid norm 2.562423770591e-03 ||r(i)||/||b|| 2.562423770592e-03

      4 KSP preconditioned resid norm 2.802038862500e-05 true resid norm 4.753351438216e-04 ||r(i)||/||b|| 4.753351438219e-04

      5 KSP preconditioned resid norm 2.875826461982e-06 true resid norm 8.618109518277e-05 ||r(i)||/||b|| 8.618109518283e-05

    Linear firedrake_0_fieldsplit_1_ solve converged due to CONVERGED_RTOL iterations 5

    9 KSP unpreconditioned resid norm 1.093052879829e-09 true resid norm 1.093052879480e-09 ||r(i)||/||b|| 1.006478969623e-06

      Residual norms for firedrake_0_fieldsplit_1_ solve.

      0 KSP preconditioned resid norm 2.400304155508e-01 true resid norm 9.999999999373e-01 ||r(i)||/||b|| 1.000000000000e+00

      1 KSP preconditioned resid norm 1.375935214529e-02 true resid norm 1.268731042794e-01 ||r(i)||/||b|| 1.268731042874e-01

      2 KSP preconditioned resid norm 1.359927799420e-03 true resid norm 1.743482323300e-02 ||r(i)||/||b|| 1.743482323409e-02

      3 KSP preconditioned resid norm 1.329143848901e-04 true resid norm 2.112118748978e-03 ||r(i)||/||b|| 2.112118749111e-03

      4 KSP preconditioned resid norm 2.299763657223e-05 true resid norm 3.661832963830e-04 ||r(i)||/||b|| 3.661832964060e-04

      5 KSP preconditioned resid norm 3.042002639898e-06 true resid norm 8.825775436656e-05 ||r(i)||/||b|| 8.825775437210e-05

      6 KSP preconditioned resid norm 2.755403722945e-07 true resid norm 1.154450754603e-05 ||r(i)||/||b|| 1.154450754675e-05

    Linear firedrake_0_fieldsplit_1_ solve converged due to CONVERGED_RTOL iterations 6

   10 KSP unpreconditioned resid norm 6.865249627765e-11 true resid norm 6.865249509492e-11 ||r(i)||/||b|| 6.321495860116e-08

KSP Object: (firedrake_0_) 1 MPI processes

  type: fgmres

    restart=30, using Classical (unmodified) Gram-Schmidt Orthogonalization with no iterative refinement

    happy breakdown tolerance 1e-30

  maximum iterations=10000, initial guess is zero

  tolerances:  relative=1e-07, absolute=1e-50, divergence=10000.

  right preconditioning

  using UNPRECONDITIONED norm type for convergence test

PC Object: (firedrake_0_) 1 MPI processes

  type: fieldsplit

    FieldSplit with Schur preconditioner, factorization FULL

    Preconditioner for the Schur complement formed from A11

    Split info:

    Split number 0 Defined by IS

    Split number 1 Defined by IS

    KSP solver for A00 block

      KSP Object: (firedrake_0_fieldsplit_0_) 1 MPI processes

        type: preonly

        maximum iterations=10000, initial guess is zero

        tolerances:  relative=1e-05, absolute=1e-50, divergence=10000.

        left preconditioning

        using NONE norm type for convergence test

      PC Object: (firedrake_0_fieldsplit_0_) 1 MPI processes

        type: lu

          out-of-place factorization

          tolerance for zero pivot 2.22045e-14

          matrix ordering: nd

          factor fill ratio given 5., needed 1.

            Factored matrix follows:

              Mat Object: 1 MPI processes

                type: seqaij

                rows=6144, cols=6144

                package used to perform factorization: petsc

                total: nonzeros=18432, allocated nonzeros=18432

                total number of mallocs used during MatSetValues calls =0

                  using I-node routines: found 2048 nodes, limit used is 5

        linear system matrix = precond matrix:

        Mat Object: (firedrake_0_fieldsplit_0_) 1 MPI processes

          type: seqaij

          rows=6144, cols=6144

          total: nonzeros=18432, allocated nonzeros=18432

          total number of mallocs used during MatSetValues calls =0

            using I-node routines: found 2048 nodes, limit used is 5

    KSP solver for S = A11 - A10 inv(A00) A01

      KSP Object: (firedrake_0_fieldsplit_1_) 1 MPI processes

        type: gmres

          restart=30, using Classical (unmodified) Gram-Schmidt Orthogonalization with no iterative refinement

          happy breakdown tolerance 1e-30

        maximum iterations=10000, initial guess is zero

        tolerances:  relative=1e-05, absolute=1e-50, divergence=10000.

        left preconditioning

        using PRECONDITIONED norm type for convergence test

      PC Object: (firedrake_0_fieldsplit_1_) 1 MPI processes

        type: lu

          out-of-place factorization

          tolerance for zero pivot 2.22045e-14

          matrix ordering: nd

          factor fill ratio given 5., needed 5.09173

            Factored matrix follows:

              Mat Object: 1 MPI processes

                type: seqaij

                rows=15360, cols=15360

                package used to perform factorization: petsc

                total: nonzeros=1360836, allocated nonzeros=1360836

                total number of mallocs used during MatSetValues calls =0

                  using I-node routines: found 5120 nodes, limit used is 5

        linear system matrix followed by preconditioner matrix:

        Mat Object: (firedrake_0_fieldsplit_1_) 1 MPI processes

          type: schurcomplement

          rows=15360, cols=15360

            Schur complement A11 - A10 inv(A00) A01

            A11

              Mat Object: (firedrake_0_fieldsplit_1_) 1 MPI processes

                type: seqaij

                rows=15360, cols=15360

                total: nonzeros=267264, allocated nonzeros=267264

                total number of mallocs used during MatSetValues calls =0

                  using I-node routines: found 5120 nodes, limit used is 5

            A10

              Mat Object: 1 MPI processes

                type: seqaij

                rows=15360, cols=6144

                total: nonzeros=73728, allocated nonzeros=73728

                total number of mallocs used during MatSetValues calls =0

                  using I-node routines: found 5120 nodes, limit used is 5

            KSP of A00

              KSP Object: (firedrake_0_fieldsplit_0_) 1 MPI processes

                type: preonly

                maximum iterations=10000, initial guess is zero

                tolerances:  relative=1e-05, absolute=1e-50, divergence=10000.

                left preconditioning

                using NONE norm type for convergence test

              PC Object: (firedrake_0_fieldsplit_0_) 1 MPI processes

                type: lu

                  out-of-place factorization

                  tolerance for zero pivot 2.22045e-14

                  matrix ordering: nd

                  factor fill ratio given 5., needed 1.

                    Factored matrix follows:

                      Mat Object: 1 MPI processes

                        type: seqaij

                        rows=6144, cols=6144

                        package used to perform factorization: petsc

                        total: nonzeros=18432, allocated nonzeros=18432

                        total number of mallocs used during MatSetValues calls =0

                          using I-node routines: found 2048 nodes, limit used is 5

                linear system matrix = precond matrix:

                Mat Object: (firedrake_0_fieldsplit_0_) 1 MPI processes

                  type: seqaij

                  rows=6144, cols=6144

                  total: nonzeros=18432, allocated nonzeros=18432

                  total number of mallocs used during MatSetValues calls =0

                    using I-node routines: found 2048 nodes, limit used is 5

            A01

              Mat Object: 1 MPI processes

                type: seqaij

                rows=6144, cols=15360

                total: nonzeros=73728, allocated nonzeros=73728

                total number of mallocs used during MatSetValues calls =0

                  using I-node routines: found 2048 nodes, limit used is 5

        Mat Object: (firedrake_0_fieldsplit_1_) 1 MPI processes

          type: seqaij

          rows=15360, cols=15360

          total: nonzeros=267264, allocated nonzeros=267264

          total number of mallocs used during MatSetValues calls =0

            using I-node routines: found 5120 nodes, limit used is 5

  linear system matrix followed by preconditioner matrix:

  Mat Object: (firedrake_0_) 1 MPI processes

    type: seqaij

    rows=21504, cols=21504

    total: nonzeros=433152, allocated nonzeros=433152

    total number of mallocs used during MatSetValues calls =0

      using I-node routines: found 7168 nodes, limit used is 5

  Mat Object: (firedrake_0_) 1 MPI processes

    type: seqaij

    rows=21504, cols=21504

    total: nonzeros=433152, allocated nonzeros=433152

    total number of mallocs used during MatSetValues calls =0

      using I-node routines: found 7168 nodes, limit used is 5

________________________________
From: Justin Chang <jychang48 at gmail.com>
Sent: 18 March 2019 21:01:17
To: Cotter, Colin J
Cc: petsc-users at mcs.anl.gov
Subject: Re: [petsc-users] Confusing Schur preconditioner behaviour

Colin,

1) What equations are you solving?

2) In your second case, you set the outer ksp to preonly, thus we are unable to see the ksp_monitor for the (firedrake_0_) solver. Set it to gmres and see if you have a similar output to your first case:

0 KSP preconditioned resid norm 4.985448866758e+00 true resid norm 1.086016610848e-03 ||r(i)||/||b|| 1.000000000000e+00
1 KSP preconditioned resid norm 1.245615753306e-13 true resid norm 2.082000915439e-14 ||r(i)||/||b|| 1.917098591903e-11

Because according to the first ksp_view output, after one lu sweep for the (firedrake_0_fieldsplit_1_) solver. That is, going from:

0 KSP preconditioned resid norm 8.819238435108e-02 true resid norm 1.797571993221e-01 ||r(i)||/||b|| 1.000000000000e+00

to

1 KSP preconditioned resid norm 1.025167319984e-02 true resid norm 3.340583874349e-02 ||r(i)||/||b|| 1.858386694356e-01

appeared to give you an exact schur complement.

Justin

On Mon, Mar 18, 2019 at 2:18 PM Cotter, Colin J via petsc-users <petsc-users at mcs.anl.gov<mailto:petsc-users at mcs.anl.gov>> wrote:

Sorry, just to clarify, in the second case I see several *inner* iterations, even though I'm using LU on a supposedly exact Schur complement as the preconditioner for the Schur system.

________________________________
From: petsc-users <petsc-users-bounces at mcs.anl.gov<mailto:petsc-users-bounces at mcs.anl.gov>> on behalf of Cotter, Colin J via petsc-users <petsc-users at mcs.anl.gov<mailto:petsc-users at mcs.anl.gov>>
Sent: 18 March 2019 20:14:48
To: petsc-users at mcs.anl.gov<mailto:petsc-users at mcs.anl.gov>
Subject: [petsc-users] Confusing Schur preconditioner behaviour


Dear petsc-users,

  I'm solving a 2x2 block system, for which I can construct the Schur complement analytically (through compatible FEM stuff),

which I can pass as the preconditioning matrix.


When using gmres on the outer iteration, and preonly+lu on the inner iterations with a Schur complement preconditioner,

I see convergence in 1 iteration as expected. However, when I set gmres+lu on the inner iteration for S, I see several iterations.


This seems strange to me, as the first result seems to confirm that I have an exact Schur complement, but the second result

implies not.

What could be going on here?


I've appended output to the bottom of this message, first the preonly+lu and then for gmres+lu.


all the best

--Colin


   Linear firedrake_0_fieldsplit_1_ solve converged due to CONVERGED_ITS iterations 1
    Residual norms for firedrake_0_ solve.
    0 KSP preconditioned resid norm 4.985448866758e+00 true resid norm 1.086016610848e-03 ||r(i)||/||b|| 1.000000000000e+00
    Linear firedrake_0_fieldsplit_1_ solve converged due to CONVERGED_ITS iterations 1
    1 KSP preconditioned resid norm 1.245615753306e-13 true resid norm 2.082000915439e-14 ||r(i)||/||b|| 1.917098591903e-11
KSP Object: (firedrake_0_) 1 MPI processes
  type: gmres
    restart=30, using Classical (unmodified) Gram-Schmidt Orthogonalization with no iterative refinement
    happy breakdown tolerance 1e-30
  maximum iterations=10000, initial guess is zero
  tolerances:  relative=1e-07, absolute=1e-50, divergence=10000.
  left preconditioning
  using PRECONDITIONED norm type for convergence test
PC Object: (firedrake_0_) 1 MPI processes
  type: fieldsplit
    FieldSplit with Schur preconditioner, factorization FULL
    Preconditioner for the Schur complement formed from A11
    Split info:
    Split number 0 Defined by IS
    Split number 1 Defined by IS
    KSP solver for A00 block
      KSP Object: (firedrake_0_fieldsplit_0_) 1 MPI processes
        type: preonly
        maximum iterations=10000, initial guess is zero
        tolerances:  relative=1e-05, absolute=1e-50, divergence=10000.
        left preconditioning
        using NONE norm type for convergence test
      PC Object: (firedrake_0_fieldsplit_0_) 1 MPI processes
        type: lu
          out-of-place factorization
          tolerance for zero pivot 2.22045e-14
          matrix ordering: nd
          factor fill ratio given 5., needed 1.
            Factored matrix follows:
              Mat Object: 1 MPI processes
                type: seqaij
                rows=6144, cols=6144
                package used to perform factorization: petsc
                total: nonzeros=18432, allocated nonzeros=18432
                total number of mallocs used during MatSetValues calls =0
                  using I-node routines: found 2048 nodes, limit used is 5
        linear system matrix = precond matrix:
        Mat Object: (firedrake_0_fieldsplit_0_) 1 MPI processes
          type: seqaij
          rows=6144, cols=6144
          total: nonzeros=18432, allocated nonzeros=18432
          total number of mallocs used during MatSetValues calls =0
            using I-node routines: found 2048 nodes, limit used is 5
    KSP solver for S = A11 - A10 inv(A00) A01
      KSP Object: (firedrake_0_fieldsplit_1_) 1 MPI processes
        type: preonly
        maximum iterations=10000, initial guess is zero
        tolerances:  relative=1e-05, absolute=1e-50, divergence=10000.
        left preconditioning
        using NONE norm type for convergence test
      PC Object: (firedrake_0_fieldsplit_1_) 1 MPI processes
        type: lu
          out-of-place factorization
          tolerance for zero pivot 2.22045e-14
          matrix ordering: nd
          factor fill ratio given 5., needed 5.09173
            Factored matrix follows:
              Mat Object: 1 MPI processes
                type: seqaij
                rows=15360, cols=15360
                package used to perform factorization: petsc
                total: nonzeros=1360836, allocated nonzeros=1360836
                total number of mallocs used during MatSetValues calls =0
                  using I-node routines: found 5120 nodes, limit used is 5
        linear system matrix followed by preconditioner matrix:
        Mat Object: (firedrake_0_fieldsplit_1_) 1 MPI processes
          type: schurcomplement
          rows=15360, cols=15360
            Schur complement A11 - A10 inv(A00) A01
            A11
              Mat Object: (firedrake_0_fieldsplit_1_) 1 MPI processes
                type: seqaij
                rows=15360, cols=15360
                total: nonzeros=267264, allocated nonzeros=267264
                total number of mallocs used during MatSetValues calls =0
                  using I-node routines: found 5120 nodes, limit used is 5
            A10
              Mat Object: 1 MPI processes
                type: seqaij
                rows=15360, cols=6144
                total: nonzeros=73728, allocated nonzeros=73728
                total number of mallocs used during MatSetValues calls =0
                  using I-node routines: found 5120 nodes, limit used is 5
            KSP of A00
              KSP Object: (firedrake_0_fieldsplit_0_) 1 MPI processes
                type: preonly
                maximum iterations=10000, initial guess is zero
                tolerances:  relative=1e-05, absolute=1e-50, divergence=10000.
                left preconditioning
                using NONE norm type for convergence test
              PC Object: (firedrake_0_fieldsplit_0_) 1 MPI processes
                type: lu
                  out-of-place factorization
                  tolerance for zero pivot 2.22045e-14
                  matrix ordering: nd
                  factor fill ratio given 5., needed 1.
                    Factored matrix follows:
                      Mat Object: 1 MPI processes
                        type: seqaij
                        rows=6144, cols=6144
                        package used to perform factorization: petsc
                        total: nonzeros=18432, allocated nonzeros=18432
                        total number of mallocs used during MatSetValues calls =0
                          using I-node routines: found 2048 nodes, limit used is 5
                linear system matrix = precond matrix:
                Mat Object: (firedrake_0_fieldsplit_0_) 1 MPI processes
                  type: seqaij
                  rows=6144, cols=6144
                  total: nonzeros=18432, allocated nonzeros=18432
                  total number of mallocs used during MatSetValues calls =0
                    using I-node routines: found 2048 nodes, limit used is 5
            A01
              Mat Object: 1 MPI processes
                type: seqaij
                rows=6144, cols=15360
                total: nonzeros=73728, allocated nonzeros=73728
                total number of mallocs used during MatSetValues calls =0
                  using I-node routines: found 2048 nodes, limit used is 5
        Mat Object: (firedrake_0_fieldsplit_1_) 1 MPI processes
          type: seqaij
          rows=15360, cols=15360
          total: nonzeros=267264, allocated nonzeros=267264
          total number of mallocs used during MatSetValues calls =0
            using I-node routines: found 5120 nodes, limit used is 5
  linear system matrix followed by preconditioner matrix:
  Mat Object: (firedrake_0_) 1 MPI processes
    type: nest
    rows=21504, cols=21504
      Matrix object:
        type=nest, rows=2, cols=2
        MatNest structure:
        (0,0) : type=seqaij, rows=15360, cols=15360
        (0,1) : type=seqaij, rows=15360, cols=6144
        (1,0) : type=seqaij, rows=6144, cols=15360
        (1,1) : type=seqaij, rows=6144, cols=6144
  Mat Object: (firedrake_0_) 1 MPI processes
    type: nest
    rows=21504, cols=21504
      Matrix object:
        type=nest, rows=2, cols=2
        MatNest structure:
        (0,0) : prefix="firedrake_0_fieldsplit_1_", type=seqaij, rows=15360, cols=15360
        (0,1) : type=seqaij, rows=15360, cols=6144
        (1,0) : type=seqaij, rows=6144, cols=15360
        (1,1) : prefix="firedrake_0_fieldsplit_0_", type=seqaij, rows=6144, cols=6144


=====


      Residual norms for firedrake_0_fieldsplit_1_ solve.
      0 KSP preconditioned resid norm 8.819238435108e-02 true resid norm 1.797571993221e-01 ||r(i)||/||b|| 1.000000000000e+00
      1 KSP preconditioned resid norm 1.025167319984e-02 true resid norm 3.340583874349e-02 ||r(i)||/||b|| 1.858386694356e-01
      2 KSP preconditioned resid norm 1.235104644359e-03 true resid norm 8.148396804822e-03 ||r(i)||/||b|| 4.533001646417e-02
      3 KSP preconditioned resid norm 1.624748553125e-04 true resid norm 1.612221957927e-03 ||r(i)||/||b|| 8.968886720573e-03
      4 KSP preconditioned resid norm 2.233373761266e-05 true resid norm 3.292437172839e-04 ||r(i)||/||b|| 1.831602397710e-03
      5 KSP preconditioned resid norm 1.895393184017e-06 true resid norm 4.091207337005e-05 ||r(i)||/||b|| 2.275962994770e-04
      6 KSP preconditioned resid norm 1.699212495729e-07 true resid norm 3.851173419652e-06 ||r(i)||/||b|| 2.142430697728e-05
    Linear firedrake_0_fieldsplit_1_ solve converged due to CONVERGED_RTOL iterations 6
KSP Object: (firedrake_0_) 1 MPI processes
  type: preonly
  maximum iterations=10000, initial guess is zero
  tolerances:  relative=1e-05, absolute=1e-50, divergence=10000.
  left preconditioning
  using NONE norm type for convergence test
PC Object: (firedrake_0_) 1 MPI processes
  type: fieldsplit
    FieldSplit with Schur preconditioner, factorization FULL
    Preconditioner for the Schur complement formed from A11
    Split info:
    Split number 0 Defined by IS
    Split number 1 Defined by IS
    KSP solver for A00 block
      KSP Object: (firedrake_0_fieldsplit_0_) 1 MPI processes
        type: preonly
        maximum iterations=10000, initial guess is zero
        tolerances:  relative=1e-05, absolute=1e-50, divergence=10000.
        left preconditioning
        using NONE norm type for convergence test
      PC Object: (firedrake_0_fieldsplit_0_) 1 MPI processes
        type: lu
          out-of-place factorization
          tolerance for zero pivot 2.22045e-14
          matrix ordering: nd
          factor fill ratio given 5., needed 1.
            Factored matrix follows:
              Mat Object: 1 MPI processes
                type: seqaij
                rows=6144, cols=6144
                package used to perform factorization: petsc
                total: nonzeros=18432, allocated nonzeros=18432
                total number of mallocs used during MatSetValues calls =0
                  using I-node routines: found 2048 nodes, limit used is 5
        linear system matrix = precond matrix:
        Mat Object: (firedrake_0_fieldsplit_0_) 1 MPI processes
          type: seqaij
          rows=6144, cols=6144
          total: nonzeros=18432, allocated nonzeros=18432
          total number of mallocs used during MatSetValues calls =0
            using I-node routines: found 2048 nodes, limit used is 5
    KSP solver for S = A11 - A10 inv(A00) A01
      KSP Object: (firedrake_0_fieldsplit_1_) 1 MPI processes
        type: gmres
          restart=30, using Classical (unmodified) Gram-Schmidt Orthogonalization with no iterative refinement
          happy breakdown tolerance 1e-30
        maximum iterations=10000, initial guess is zero
        tolerances:  relative=1e-05, absolute=1e-50, divergence=10000.
        left preconditioning
        using PRECONDITIONED norm type for convergence test
      PC Object: (firedrake_0_fieldsplit_1_) 1 MPI processes
        type: lu
          out-of-place factorization
          tolerance for zero pivot 2.22045e-14
          matrix ordering: nd
          factor fill ratio given 5., needed 5.09173
            Factored matrix follows:
              Mat Object: 1 MPI processes
                type: seqaij
                rows=15360, cols=15360
                package used to perform factorization: petsc
                total: nonzeros=1360836, allocated nonzeros=1360836
                total number of mallocs used during MatSetValues calls =0
                  using I-node routines: found 5120 nodes, limit used is 5
        linear system matrix followed by preconditioner matrix:
        Mat Object: (firedrake_0_fieldsplit_1_) 1 MPI processes
          type: schurcomplement
          rows=15360, cols=15360
            Schur complement A11 - A10 inv(A00) A01
            A11
              Mat Object: (firedrake_0_fieldsplit_1_) 1 MPI processes
                type: seqaij
                rows=15360, cols=15360
                total: nonzeros=267264, allocated nonzeros=267264
                total number of mallocs used during MatSetValues calls =0
                  using I-node routines: found 5120 nodes, limit used is 5
            A10
              Mat Object: 1 MPI processes
                type: seqaij
                rows=15360, cols=6144
                total: nonzeros=73728, allocated nonzeros=73728
                total number of mallocs used during MatSetValues calls =0
                  using I-node routines: found 5120 nodes, limit used is 5
            KSP of A00
              KSP Object: (firedrake_0_fieldsplit_0_) 1 MPI processes
                type: preonly
                maximum iterations=10000, initial guess is zero
                tolerances:  relative=1e-05, absolute=1e-50, divergence=10000.
                left preconditioning
                using NONE norm type for convergence test
              PC Object: (firedrake_0_fieldsplit_0_) 1 MPI processes
                type: lu
                  out-of-place factorization
                  tolerance for zero pivot 2.22045e-14
                  matrix ordering: nd
                  factor fill ratio given 5., needed 1.
                    Factored matrix follows:
                      Mat Object: 1 MPI processes
                        type: seqaij
                        rows=6144, cols=6144
                        package used to perform factorization: petsc
                        total: nonzeros=18432, allocated nonzeros=18432
                        total number of mallocs used during MatSetValues calls =0
                          using I-node routines: found 2048 nodes, limit used is 5
                linear system matrix = precond matrix:
                Mat Object: (firedrake_0_fieldsplit_0_) 1 MPI processes
                  type: seqaij
                  rows=6144, cols=6144
                  total: nonzeros=18432, allocated nonzeros=18432
                  total number of mallocs used during MatSetValues calls =0
                    using I-node routines: found 2048 nodes, limit used is 5
            A01
              Mat Object: 1 MPI processes
                type: seqaij
                rows=6144, cols=15360
                total: nonzeros=73728, allocated nonzeros=73728
                total number of mallocs used during MatSetValues calls =0
                  using I-node routines: found 2048 nodes, limit used is 5
        Mat Object: (firedrake_0_fieldsplit_1_) 1 MPI processes
          type: seqaij
          rows=15360, cols=15360
          total: nonzeros=267264, allocated nonzeros=267264
          total number of mallocs used during MatSetValues calls =0
            using I-node routines: found 5120 nodes, limit used is 5
  linear system matrix followed by preconditioner matrix:
  Mat Object: (firedrake_0_) 1 MPI processes
    type: nest
    rows=21504, cols=21504
      Matrix object:
        type=nest, rows=2, cols=2
        MatNest structure:
        (0,0) : type=seqaij, rows=15360, cols=15360
        (0,1) : type=seqaij, rows=15360, cols=6144
        (1,0) : type=seqaij, rows=6144, cols=15360
        (1,1) : type=seqaij, rows=6144, cols=6144
  Mat Object: (firedrake_0_) 1 MPI processes
    type: nest
    rows=21504, cols=21504
      Matrix object:
        type=nest, rows=2, cols=2
        MatNest structure:
        (0,0) : prefix="firedrake_0_fieldsplit_1_", type=seqaij, rows=15360, cols=15360
        (0,1) : type=seqaij, rows=15360, cols=6144
        (1,0) : type=seqaij, rows=6144, cols=15360
        (1,1) : prefix="firedrake_0_fieldsplit_0_", type=seqaij, rows=6144, cols=6144



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20190318/5f3104fa/attachment-0001.html>


More information about the petsc-users mailing list