<div>I have the following problem with the prefix choice for the MatSchurComplement KSP introduced in this changeset (<a href="http://petsc.cs.iit.edu/petsc/petsc-dev/rev/0d4ccb990bb8">http://petsc.cs.iit.edu/petsc/petsc-dev/rev/0d4ccb990bb8</a>).</div>
<div>I'm talking about the "inner" KSP for A00, effecting inv(A00) in the definition S = A11 - A10 inv(A00) A01. </div><div>We also have the "outer" inv(A00) KSP, which gets prefix "0". I recently set the "inner" inv(A00) KSP </div>
<div>prefix to "0", simply by inheriting it from the "outer" solver. Now, it is completely reasonable</div><div>to expect the inner and outer A00 KSPs to have different prefixes so that they can be configured differently.</div>
<div>In fact, there was a recent petsc-users request related to this (<a href="http://lists.mcs.anl.gov/pipermail/petsc-users/2012-June/014005.html">http://lists.mcs.anl.gov/pipermail/petsc-users/2012-June/014005.html</a>). </div>
<div>However, currently the inner A00 KSP inherits the prefix from the A11 KSP corresponding to the "1" field. With this prefix choice </div><div>I end up configuring inv(A00) and inv(S) identically, which isn't what I want at all. </div>
<div>I'm not sure what the right approach is, but the current one doesn't work for me. </div><div><br></div><div>Note also that if A00 is treated with a recursive split, there may be numerous options for the A00 KSP.</div>
<div>Do we want to repeat them for the inner and outer KSPs, if we want to configure them identically?</div><div>It's automatic, if the two A00 KSPs share a prefix. Again, this takes away some flexibility, so maybe it's not the best solution,</div>
<div>but I think retaining a simple option for using identical configurations is also highly desirable.</div><div><br></div><div>Any ideas on how to handle this?</div><div>Dmitry.</div><div><br><div class="gmail_quote">
On Tue, Jun 26, 2012 at 6:13 AM, Matthew Knepley <span dir="ltr"><<a href="mailto:knepley@gmail.com" target="_blank">knepley@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
It turns out that 'hg rollback' during an 'hg rebase' does not do what I thought it did. I think<div>everything is cleaned up with this push, but if you made FS changes in the past month, please</div><div>
check that it is doing what you want with prefixes, etc.</div>
<div><br></div><div>Now, nested fieldsplits from the command line work, ala</div><div><br></div><div>-ksp_type fgmres</div><div>-pc_type fieldsplit -pc_fieldsplit_type additive</div><div> -pc_fieldsplit_0_fields 0,1</div>
<div> -fieldsplit_0_pc_type fieldsplit</div><div> -fieldsplit_0_pc_fieldsplit_type schur -fieldsplit_0_pc_fieldsplitschur_factorization_type full</div><div> -fieldsplit_0_fieldsplit_velocity_ksp_type preonly</div>
<div> -fieldsplit_0_fieldsplit_velocity_pc_type lu</div><div> -fieldsplit_0_fieldsplit_pressure_ksp_rtol 1e-10</div><div> -fieldsplit_0_fieldsplit_pressure_pc_type jacobi</div><div></div><div> -pc_fieldsplit_1_fields 2</div>
<div> -fieldsplit_temperature_ksp_type preonly</div> -fieldsplit_temperature_pc_type lu<br clear="all"><div><br></div><div>A split with only one field gets the field name, and otherwise a split number.</div><div><br>
</div><div> Matt</div><span><font color="#888888"><div><br></div><div>-- <br>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>
-- Norbert Wiener<br>
</div>
</font></span></blockquote></div><br></div>