From: Roy Stogner <roystgnr@ic...> - 2006-10-30 20:25:58
On Mon, 30 Oct 2006, Shun Wang wrote:
> I checked the code of DofMap. It seems that with the
> enforce_constraints_exactly(), making the system matrix non-symmetric in
> constraint_element_matrix_and_vector() is unnecessary. This only makes a
> possible symmetric system non-symmetric and thus eliminates the choice of
> solvers like CG and Conjugate Residual. Do you agree with that?
I'd agree; in fact the whole reason I wrote
enforce_constraints_exactly is that I didn't trust every linear solver
to get them exact even with that asymmetric hack in the matrix.
Would you like an optional argument added to
constrain_element_matrix_and_vector to allow you to turn that
symmetry-breaking behavior off? We'll want to leave the default
behavior unchanged for backwards compatibility, of course, but unless
Ben or John objects I don't see why it should be mandatory.
Keep in mind that the library (with the exception of the experimental
NewtonSolver class) never calls enforce_constraints_exactly() itself.
You'll have to do that in your code after each solve if you want it