<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Fri, Sep 26, 2014 at 7:29 AM, anton <span dir="ltr"><<a href="mailto:popov@uni-mainz.de" target="_blank">popov@uni-mainz.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Create preconditioner:<br>
<br>
PCCreate(PETSC_COMM_WORLD, &pc);<br>
PCSetOptionsPrefix(pc, "bf_");<br>
PCSetFromOptions(pc);<br>
<br>
Define fieldsplit options:<br>
<br>
-bf_pc_type fieldsplit<br>
-bf_pc_fieldsplit_type SCHUR<br>
-bf_pc_fieldsplit_schur_<u></u>factorization_type UPPER<br>
<br>
Works OK.<br>
<br>
Set options for the first field solver:<br>
<br>
-bf_fieldsplit_0_ksp_type preonly<br>
-bf_fieldsplit_0_pc_type lu<br>
<br>
Doesn't work (ignored), because "bf_" prefix isn't pass to inner solver ksp (checked in the debugger).<br>
<br>
Indeed, the following works:<br>
<br>
-fieldsplit_0_ksp_type preonly<br>
-fieldsplit_0_pc_type lu<br>
<br>
Observed with 3.5 but not with 3.4<br></blockquote><div><br></div><div>I just tried this with master on SNES ex19, and got the correct result:</div><div><br></div><div><div>knepley/feature-parallel-partition *$:/PETSc3/petsc/petsc-dev/src/snes/examples/tutorials$ ./ex19 -bf_pc_type fieldsplit -bf_snes_view</div><div>./ex19 -bf_pc_type fieldsplit -bf_snes_view</div><div>lid velocity = 0.0625, prandtl # = 1, grashof # = 1</div><div>SNES Object:(bf_) 1 MPI processes</div><div>  type: newtonls</div><div>  maximum iterations=50, maximum function evaluations=10000</div><div>  tolerances: relative=1e-08, absolute=1e-50, solution=1e-08</div><div>  total number of linear solver iterations=13</div><div>  total number of function evaluations=3</div><div>  SNESLineSearch Object:  (bf_)   1 MPI processes</div><div>    type: bt</div><div>      interpolation: cubic</div><div>      alpha=1.000000e-04</div><div>    maxstep=1.000000e+08, minlambda=1.000000e-12</div><div>    tolerances: relative=1.000000e-08, absolute=1.000000e-15, lambda=1.000000e-08</div><div>    maximum iterations=40</div><div>  KSP Object:  (bf_)   1 MPI processes</div><div>    type: gmres</div><div>      GMRES: restart=30, using Classical (unmodified) Gram-Schmidt Orthogonalization with no iterative refinement</div><div>      GMRES: happy breakdown tolerance 1e-30</div><div>    maximum iterations=10000, initial guess is zero</div><div>    tolerances:  relative=1e-05, absolute=1e-50, divergence=10000</div><div>    left preconditioning</div><div>    using PRECONDITIONED norm type for convergence test</div><div>  PC Object:  (bf_)   1 MPI processes</div><div>    type: fieldsplit</div><div>      FieldSplit with MULTIPLICATIVE composition: total splits = 4</div><div>      Solver info for each split is in the following KSP objects:</div><div>      Split number 0 Defined by IS</div><div>      KSP Object:      (bf_fieldsplit_x_velocity_)       1 MPI processes</div><div>        type: preonly</div><div>        maximum iterations=10000, initial guess is zero</div><div>        tolerances:  relative=1e-05, absolute=1e-50, divergence=10000</div><div>        left preconditioning</div><div>        using NONE norm type for convergence test</div><div>      PC Object:      (bf_fieldsplit_x_velocity_)       1 MPI processes</div><div>        type: ilu</div><div>          ILU: out-of-place factorization</div><div>          0 levels of fill</div><div>          tolerance for zero pivot 2.22045e-14</div><div>          using diagonal shift on blocks to prevent zero pivot [INBLOCKS]</div><div>          matrix ordering: natural</div><div>          factor fill ratio given 1, needed 1</div><div>            Factored matrix follows:</div><div>              Mat Object:               1 MPI processes</div><div>                type: seqaij</div><div>                rows=16, cols=16</div><div>                package used to perform factorization: petsc</div><div>                total: nonzeros=64, allocated nonzeros=64</div><div>                total number of mallocs used during MatSetValues calls =0</div><div>                  not using I-node routines</div><div>        linear system matrix = precond matrix:</div><div>        Mat Object:        (bf_fieldsplit_x_velocity_)         1 MPI processes</div><div>          type: seqaij</div><div>          rows=16, cols=16</div><div>          total: nonzeros=64, allocated nonzeros=64</div><div>          total number of mallocs used during MatSetValues calls =0</div><div>            not using I-node routines</div><div>      Split number 1 Defined by IS</div><div>      KSP Object:      (bf_fieldsplit_y_velocity_)       1 MPI processes</div><div>        type: preonly</div><div>        maximum iterations=10000, initial guess is zero</div><div>        tolerances:  relative=1e-05, absolute=1e-50, divergence=10000</div><div>        left preconditioning</div><div>        using NONE norm type for convergence test</div><div>      PC Object:      (bf_fieldsplit_y_velocity_)       1 MPI processes</div><div>        type: ilu</div><div>          ILU: out-of-place factorization</div><div>          0 levels of fill</div><div>          tolerance for zero pivot 2.22045e-14</div><div>          using diagonal shift on blocks to prevent zero pivot [INBLOCKS]</div><div>          matrix ordering: natural</div><div>          factor fill ratio given 1, needed 1</div><div>            Factored matrix follows:</div><div>              Mat Object:               1 MPI processes</div><div>                type: seqaij</div><div>                rows=16, cols=16</div><div>                package used to perform factorization: petsc</div><div>                total: nonzeros=64, allocated nonzeros=64</div><div>                total number of mallocs used during MatSetValues calls =0</div><div>                  not using I-node routines</div><div>        linear system matrix = precond matrix:</div><div>        Mat Object:        (bf_fieldsplit_y_velocity_)         1 MPI processes</div><div>          type: seqaij</div><div>          rows=16, cols=16</div><div>          total: nonzeros=64, allocated nonzeros=64</div><div>          total number of mallocs used during MatSetValues calls =0</div><div>            not using I-node routines</div><div>      Split number 2 Defined by IS</div><div>      KSP Object:      (bf_fieldsplit_Omega_)       1 MPI processes</div><div>        type: preonly</div><div>        maximum iterations=10000, initial guess is zero</div><div>        tolerances:  relative=1e-05, absolute=1e-50, divergence=10000</div><div>        left preconditioning</div><div>        using NONE norm type for convergence test</div><div>      PC Object:      (bf_fieldsplit_Omega_)       1 MPI processes</div><div>        type: ilu</div><div>          ILU: out-of-place factorization</div><div>          0 levels of fill</div><div>          tolerance for zero pivot 2.22045e-14</div><div>          using diagonal shift on blocks to prevent zero pivot [INBLOCKS]</div><div>          matrix ordering: natural</div><div>          factor fill ratio given 1, needed 1</div><div>            Factored matrix follows:</div><div>              Mat Object:               1 MPI processes</div><div>                type: seqaij</div><div>                rows=16, cols=16</div><div>                package used to perform factorization: petsc</div><div>                total: nonzeros=64, allocated nonzeros=64</div><div>                total number of mallocs used during MatSetValues calls =0</div><div>                  not using I-node routines</div><div>        linear system matrix = precond matrix:</div><div>        Mat Object:        (bf_fieldsplit_Omega_)         1 MPI processes</div><div>          type: seqaij</div><div>          rows=16, cols=16</div><div>          total: nonzeros=64, allocated nonzeros=64</div><div>          total number of mallocs used during MatSetValues calls =0</div><div>            not using I-node routines</div><div>      Split number 3 Defined by IS</div><div>      KSP Object:      (bf_fieldsplit_temperature_)       1 MPI processes</div><div>        type: preonly</div><div>        maximum iterations=10000, initial guess is zero</div><div>        tolerances:  relative=1e-05, absolute=1e-50, divergence=10000</div><div>        left preconditioning</div><div>        using NONE norm type for convergence test</div><div>      PC Object:      (bf_fieldsplit_temperature_)       1 MPI processes</div><div>        type: ilu</div><div>          ILU: out-of-place factorization</div><div>          0 levels of fill</div><div>          tolerance for zero pivot 2.22045e-14</div><div>          using diagonal shift on blocks to prevent zero pivot [INBLOCKS]</div><div>          matrix ordering: natural</div><div>          factor fill ratio given 1, needed 1</div><div>            Factored matrix follows:</div><div>              Mat Object:               1 MPI processes</div><div>                type: seqaij</div><div>                rows=16, cols=16</div><div>                package used to perform factorization: petsc</div><div>                total: nonzeros=64, allocated nonzeros=64</div><div>                total number of mallocs used during MatSetValues calls =0</div><div>                  not using I-node routines</div><div>        linear system matrix = precond matrix:</div><div>        Mat Object:        (bf_fieldsplit_temperature_)         1 MPI processes</div><div>          type: seqaij</div><div>          rows=16, cols=16</div><div>          total: nonzeros=64, allocated nonzeros=64</div><div>          total number of mallocs used during MatSetValues calls =0</div><div>            not using I-node routines</div><div>    linear system matrix = precond matrix:</div><div>    Mat Object:     1 MPI processes</div><div>      type: seqaij</div><div>      rows=64, cols=64, bs=4</div><div>      total: nonzeros=1024, allocated nonzeros=1024</div><div>      total number of mallocs used during MatSetValues calls =0</div><div>        using I-node routines: found 16 nodes, limit used is 5</div><div>Number of SNES iterations = 2</div></div><div><br></div><div>I will try with 3.5.2.</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-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
Thanks.<span class=""><font color="#888888"><br>
Anton<br>
</font></span></blockquote></div><br><br clear="all"><div><br></div>-- <br>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener
</div></div>