> > The manual page 87 states that "there are several variants > > of the Schur complement preconditioner obtained by dropping some > > of the terms, these can be obtained with > > -pc_fieldsplit_schur_factorization_type <diag,lower,upper,full>" > > > > 1) What is (will be) the name of the corresponding function? > > > > It looks like PCFieldSplitSetSchurFactorizationType() is missing.
Would be nice to have. > > > > > > 3) I'm confused about the minus sign in the <diag> form and its > > motivation. It doesn't come from the factorization. Is the rhs > > multiplied with a minus sign as well? Why not follow the sign > > convention of Elman's taxonomy (eq 3 and 4, JCP 227, 2008)? > > > > Elman's convention is rather specific to finite element discretization of > incompressible flow. He arbitrarily slaps a negative on one of the matrices > in the system because it represents a certain kind of stabilization. That > minus sign would be pretty silly if the matrix was actually positive (mixed > elasticity, finite-time step stiff waves, etc). > > The negative sign in the DIAG form appears because the minimal polynomial > with that preconditioner has degree 3 (for a nonsingular problem) if you > have a minus sign there. Read Murphy's note: > http://eprints.maths.ox.ac.uk/1291/1/NA-99-07.pdf > > If you skip that minus sign, that property goes away. Also, if you are > solving Stokes flow or constrained problems in elasticity, that sign > convention causes the DIAG form to be positive definite which means that > you could use it with MINRES which was is the main motivation for using > DIAG in the first place. Jed, thanks for pointing me to Murphy's note, I didn't realize we were allowed to choose the sign in this case. It's rather counter-intuitive to have a preconditioner which is not an approximate inverse. dr. ir. Christiaan Klaij CFD Researcher Research & Development E mailto:C.Klaij at marin.nl T +31 317 49 33 44 MARIN 2, Haagsteeg, P.O. Box 28, 6700 AA Wageningen, The Netherlands T +31 317 49 39 11, F +31 317 49 32 45, I www.marin.nl
