Symmetry-Preserving DirichletBCs
I have gotten into a problem where it's important for the symmetry of my operator to be preserved during the application of boundary conditions. I was able to quickly write up an implementation of them that, when applied, made the following changes to A and b to create A_bc and b_bc (I still have to think about exactly what to do with the nonlinear x) where x_boundary is given as boundary conditions. the subscripts _boundary and _interior refer to the part of the vector or operator restricted to the boundary (both in rows and columns).
b_bc = (b - A(x_boundary + zero_interior)
A_bc = A_interior + I_boundary
Is there any particular reason that DOLFIN does it just by setting certain rows to the identity? I'm trying to use solvers and preconditioners that only work on symmetric problems, so the present way of doing things won't work. I asked around about this with respect to matrix properties and apparently the way I described above (or variants) is the only way you can really prove anything about. This includes weak application.
My implementation works, but given that there is no reliable column access on the matrix classes it is potentially broken in parallel. Is there any reason why there are no facilities for column get/set in the matrix interface?
Question information
- Language:
- English Edit question
- Status:
- Answered
- For:
- DOLFIN Edit question
- Assignee:
- No assignee Edit question
- Last query:
- Last reply:
Can you help with this problem?
Provide an answer of your own, or ask Peter Brune for more information if necessary.