User matrix preconditioner added and tested