← Back to team overview

dolfin team mailing list archive

Re: matrix action

 

Kent Andre wrote:
On ma., 2009-04-06 at 17:13 +0200, Anders Logg wrote:
On Mon, Apr 06, 2009 at 10:01:24AM -0500, Robert Kirby wrote:
I see two reasons why to do symmetric BC if you can.
1.) If CG is applicable, it will almost always work better than GMRES, both in
terms of convergence rate and memory usage (no Hessenberg matrix).  A simple
way to check this without any substantial code development is to do Nitsche BC
for Poisson and compare CG and GMRES
Symmetric applications of BCs is already in place:

  A, b = assemble_system(a, L, bc)

The dofs are kept (not eliminated) but the BC is applied to ensure
that A remains symmetric (if symmetric).

2.) In 2d, say for Poisson, it's not a big
deal -- a simple argument shows the diagonal terms are all O(1), so you don't
introduce any weird scaling by setting the diagonal to 1, zeroing the row, etc.
 In either 1d or 3d, however, the diagonal terms are not O(1).  This can affect
the spectrum of the matrix and hence the convergence properties of the method.
We could always scale what we insert on the diagonal (in both LHS and
RHS) by looking at something like the average of the diagonal entries.

I'm not opposed to eliminating dofs. It's just what we have now works
and if we should spend time implementing something else it must be
worth the effort.

--
Anders


The reason that I have not bothered to scale the diagonal is that any
preconditioner will figure out the scaling.
And, as Anders, I don't see the great benefit of eliminating the bc, but
if anyone wants to implement it, it is fine.
In the matrix action operator, the bc could be enforced after the
action.

My experience is similar to the others. Usually dofs elimination benefits convergence, but the difference is not impressive. Good solver and preconditioner are more important.

If someone would like to implement Dirichlet BC dof elimination, don't forget that Periodic BC is similar.

BArtosz



Kent

_______________________________________________
DOLFIN-dev mailing list
DOLFIN-dev@xxxxxxxxxx
http://www.fenics.org/mailman/listinfo/dolfin-dev



References