I’m getting in-symmetric matrix after assemble and bc.apply. And I found the following comment from earlier documentation. I do not get the idea how can assemble() and bc.apply() does not preserve the symmetry of assembled matrix and still can solve the problem. As I understand, apply boundary condition is by set the boundary dof diag value to 1 and other values in the column and row to 0. However I found it not always true for assemble() and bc.apply(). Could anyone give more insight to this three functions? assemble(), assemble_system(), bc.apply().
Assemble form(s) and apply any given boundary conditions in a symmetric fashion and return tensor(s).
The standard application of boundary conditions does not necessarily preserve the symmetry of the assembled matrix. In order to perserve symmetry in a system of equations with boundary conditions, one may use the alternative assemble_system instead of multiple calls to