Good point, Jed - I feel silly for missing this. Can I use -snes_type test -snes_test_display with the Jacobian generated from a DMComposite? When I try, it looks like the finite difference Jacobian is missing all the elements in the row corresponding to the redundant variable, except the diagonal, which is wrong.
I'm not sure my code for setting the submatrices is correct. I'm especially uncertain about the submatrix J_bh, where b is the redundant variable and h is the displacements. This submatrix has only one row, and all of its columns are non-zero. Can its values be set with MatSetValuesLocal, on all processors? Is there an example of manually coding a Jacobian with a DMRedundant?
