On Fri, Jun 1, 2012 at 3:36 AM, Klaij, Christiaan <C.Klaij at marin.nl> wrote:
> To solve the incompressible Navier-Stokes equations, I'm using > cell-centered finite volumes and Picard linearization. At each > non-linear iteration, I'm using one linear (Krylov) iteration with a > SIMPLE-type block preconditioner (for example Elman e.a, JCP 227, > 2008). The matrix and preconditioner are shells. Below, I'm showing > the results for the first few non-linear iterations using > > (1) KSPRICHARDSON to check that the shells are ok > (2) GMRES with right preconditioning > (3) GMRES with left preconditioning > > To my surprise (2) fails while (1) and (3) succeed. The reason I'm > interested in right preconditioning is that SIMPLE is a variable > preconditioner so in theory I should be using FGMRES as soon as I > increase the number of linear (Krylov) iterations. > One inner iteration is already nonlinear. What is the inner iteration here? SIMPLE uses a diagonal approximation of the (velocity,velocity) block in an explicit approximation of the Schur complement (which you could form using the matrix product). Is there a reason you aren't using PCFIELDSPLIT for this? > What could be the > reason that GMRES fails with right pc? > Both might be failing, you'll have to show that a tight tolerance can eventually be reached. What does FGMRES do? Note that the preconditioned norm (see Richardson and left-GMRES) becomes huge. A preconditioned residual that is 10^6 larger than unpreconditioned usually means the preconditioner is incorrect. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20120601/bf925592/attachment.html>
