I am using it as below:
U = Function(W) # the most recently computed solution
R = action(F, U) # residual at U
DR = derivative(R, U) # Gateaux derivative in dir. of U at U
problem = NonlinearVariationalProblem(R, U, bcs, DR)
solver = NonlinearVariationalSolver(problem)
I understand NonlinearVariationalSolver does a Newton-Raphson under the hood. Does it also do a line search to calculate the next iterate for the solution ?