I have a composite system with several overlapping FE spaces which I construct in blocks using independent variational forms for each space and then assembling them all into a large block matrix. I would like to enforce exact Dirichlet conditions without penalization (e.g. by using tgv = -1). However, the best way I can think of doing this is after the matrix assembly by “zeroing out” all of the rows associated with boundary DOF’s where Dirichlet conditions are enforced and then setting the diagonal terms to 1.
I would really prefer to use the “on()” function to do this without having to do all the bookkeeping for the boundary DOF’s. Is there a way to use “on()” to enforce zero rows in rectangular matrices? Or is there another preferred way to construct block matrices with Dirichlet BC’s?