<div class="gmail_quote">On Wed, Mar 16, 2011 at 07:37, Thomas Witkowski <span dir="ltr"><<a href="mailto:thomas.witkowski@tu-dresden.de">thomas.witkowski@tu-dresden.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">Thanks for explanations! It works fine in my code. But I have two questions about it, maybe you can help me with them:<br>
- To the first, is the LU factorization on block A_00 done only once?<br></div></blockquote><div><br></div><div>Yes, one way to confirm this is to run with -log_summary and check MatLUFactor{Sym,Num}.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">
- I have run the code with -fieldsplit_1_ksp_monitor to get some more information about the internal solves. I expected to get information about one iterative solver (for solving the Schur complement system), but I got three, all of them need around 20 iterations for my example. Could you explain to me what is actually solved there?</div>
</blockquote><div><br></div><div>I'm going to guess that you still have an outer KSP that (in the global norm, rather than the partitioned norm used inside of splits) has a tighter tolerance, therefore it takes a few outer iterations. If you use loose inner tolerances then the preconditioner becomes nonlinear and you'll need to use FGMRES for the outer. When in doubt, run with -ksp_view and show us the results if you don't understand. Additionally, monitoring inner solves separately can be useful, e.g. -fieldsplit_0_ksp_converged_reason -fieldsplit_1_ksp_monitor -ksp_monitor_true_residual.</div>
</div>