Scaling of condition number in 1D, 2D, and 3D

It would likely benefit you to use assemble_system which preserves symmetry of the underlying operator when applying boundary conditions. Particularly for the efficient computation of eigenvalue approximations.

This ambiguity (unless you read the documentation in detail) is a “feature” of legacy DOLFIN, and one of many reasons I highly recommend using DOLFINx instead of legacy DOLFIN.

See, e.g.,