A NonlinearVariationalProblem can be solved using the default internal DOLFIN solver, or it can be solved using the "snes" solver from PETSc. The result is more or less the same. What are the pros and cons of the internal solver compared with the PETSc solver? Under what conditions would you recommend favouring one over the other?