← Back to team overview

dolfin team mailing list archive

Re: Applying Dirichlet conditions by removing degrees of freedom (was [Fwd: Re: [HG DOLFIN] merge])

 

On Sun 2008-08-17 20:21, kent-and@xxxxxxxxx wrote:
> I have never had any trouble with the additional diagonal matrix due to
> Dirichlet conditions,  but I have mostly used multigrid. In K.-A. Mardal,
> and R. Winther. Uniform Preconditioners for the Time Dependent Stokes
> Problem, Numerische Mathematik 98(2):305--327, 2004.
> we tested multigrid methods for Stokes type problems with Taylor-Hood,
> P2-P0, Mini
> and Crouzeix-Raviart elements (the CR experiments did not end up in the
> final paper
> but the number can be found in my thesis.) The condition number was below
> 20 for all
> methods independent of mesh size. I have done similar experiments with AMG.

Interesting paper, thanks for the reference.

I think we might be addressing a somewhat different problem since a
significant part of A (at least half in the parameter range considered)
comes from the mass matrix so zeroing rows will cause a much smaller
perturbation to the condition number.  What is your experience as the
time step goes to infinity?  In that case your preconditioner becomes a
special case of the standard P_d = diag(A, -S) where S is replaced by
the identity (or mass matrix) which is spectrally equivalent.  In my
experience, this gives a very weak preconditioner, although it is cheap
to apply.  With the full P_d above, the condition number of P_d^{-1} A
has three distinct eigenvalues, 1, 1+sqrt(5), 1-sqrt(5).  However, if
the Schur complement is only approximated, these become clusters and I
have found convergence to be erratic.  I have had much better luck with
preconditioners arising from the block LDU decomposition

  [ A   B_1'] = [     I        0] [A  0] [I  (A^-1 B_1')]
  [B_2    0 ]   [(B_2 A^{-1})  I] [0  S] [0       I     ]

or from block triangular preconditioners also involving the Schur
complement (although these seem less robust than the LDU version for the
nonlinear problem and more sensitive to incomplete solves with S).  The
condition numbers I was quoting are for the Schur complement, not for
the preconditioned Jacobian (I normally make the preconditioner strong
enough to fully converge in less than 10 iterations).  Note that the
numbers I gave were influenced by the fact that the divergence matrix
B=B_2=B_1 was actually of spectral order (49 in that case, applied by
FFT) although the preconditioner for A was based on Q1 finite elements.
While these are spectrally equivalent, it makes a difference in terms of
constants.  Also, note that the mixed space was Q_p - Q_{p-2}, on which
the inf-sup constant it grows like sqrt(p), so this influences the
conditioning of the matrix.

I am very interested in other experiences with this problem.  I'm fairly
new to the field and implemented something which seemed reasonably
general.  The following is a picture of the scaling for my Stokes
solver, using the LDU form above as a preconditioner for FGMRES on the
outer problem, versus a Poisson problem.  The preconditioner for the
uniformly positive definite operators was ML with PETSc default
parameters.  The discretization was Chebyshev collocation in 3D using
the mixed space Q_p - Q_{p-2}, applied matrix-free via FFT, with
preconditioning matrices (A and M) assembled using Q1 elements.  All
experiments were run using one core of my laptop.

  http://59A2.org/files/cheb-scaling.png

Note that the slope is almost exactly 1 for the Stokes case, better than
for the Poisson problem.  I believe this is due to S being better
approximated by M as the grid is refined, but it is also influenced by p
and p-2 both being good sizes for the DCT.

The people I have talked to who tried these preconditioners in a code
which enforces boundary conditions by zeroing rows of the matrix have
not been happy with the convergence.  This may be an anomaly, but I have
attributed it to the condition number of the Schur complement being
higher.

Jed

Attachment: pgp4h2HSo4NSc.pgp
Description: PGP signature


Follow ups

References