Anders,

I'm solving a 2 by 2 block system on the form
[A  -B' ; B A] * [y ; u] = [c ; d]
where the matrix B is a stiffness matrix from a Laplace operator,
−∆y=u,
when I set Dirichlet BC on y (or u, or both) the corresponding rows in B
are set to zero, even the diagonal element.

Correct. The algorithm just looks at the overall matrix (with row and column space defined by the DoFHandler). That you subdivide the matrix somehow or other is not of concern to the algorithm.


So, my question is if this is expected? Since this makes B singular
which should not be the case for a stiffness matrix? The reason this is
an issue is that the block B is used in a solver when preconditioning.

Well, B is not the stiffness matrix. It is the matrix that results from the operator
  (nabla phi_i, nabla psi_j)
where phi_i and psi_j are the trial and test functions of the two variables. It would be easier to see that it can't be *exactly* the stiffness matrix if you imagined using different function spaces for y and u (think, using Q2 elements for y, and Q1 elements for u). In your case, it is also the matrix that is formed by considering *all* shape functions, including those at the boundary, as test functions, but we will have to eliminate these.


My guess is that this keeps the diagonal of A and sets the rest of the
corresponding row to zero, including B. Is there some other way to set
the BC to avoid making B singular?

No. Because then the linear system that results would not solve the problem you want to solve. The matrix really needs to look like it looks, with B singular.

But what you could consider is not using B as the preconditioner, but some "related" \tilde B. This matrix could, for example, have ones on the diagonal. You wouldn't use it for forming the product with your overall matrix in GMRES or whatever other method you use, but you'd use it when preconditioning.

Best
 W.

--
------------------------------------------------------------------------
Wolfgang Bangerth          email:                 bange...@colostate.edu
                           www: http://www.math.colostate.edu/~bangerth/

--
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see 
https://groups.google.com/d/forum/dealii?hl=en
--- You received this message because you are subscribed to the Google Groups "deal.II User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to dealii+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to