Strongly enforced Dirichlet constraints for cell-centered (internal, core+multidomain) not correct
Bug report
-
For box multidomain:If Dirichlet is set for a dof that also has a coupling derivative the entire matrix line has to be set to zero. Currently this is only done for the diagonal block. This bug might be actually in use for the boundary coupling code where this kind of incorporation is wanted, but also this is not a Dirichlet constraint (equation is not replaced by the Dirichlet constraint but by the coupling condition).Edit: I was mistakes and this is already implemented. -
For cell-centered (internal Dirichlet): The Dirichlet conditions are currently enforced in the local assembler. However due to the assembly procedure the matrix rows are overwritten again later in the assembly of other elements. In order to fix this the constraints need to be either implemented after the whole matrix has been assembled (local caches cannot be reused), or (more complicated to read but maybe more efficient) they have to be incorporated during the assembly (don't write anything in rows of Dirichlet dofs)
What happened / Problem description: Jacobian is corrupted.
What you expected to happen: Dirichlet constraints are strongly enforced in the matrix.
How to reproduce it (as minimally and precisely as possible): The internal Dirichlet test for cell-centered.
Anything else we need to know?: We should think about a better solution how and when to incorporate Dirichlet constraints.
Environment:
- DuMux version: master (the cell-centered part was only instroduced recently !1664 (merged))