Attempt at writing a block diagonal root solver.