Adaptive nonlinear solver in FEniCSX

Hi all! I would like to discuss if there is a way to solve the nonlinear PDE adaptively, since sometimes it is not easy to converge for those highly nonlinear problems.

Take Hyperelasticity — FEniCSx tutorial (jorgensd.github.io) as an example, we might encounter the runtime error as follows.

File "/usr/local/dolfinx-real/lib/python3.8/dist-packages/dolfinx/nls.py", line 34, in solve
    n, converged = super().solve(u.vector)
RuntimeError: Newton solver did not converge because the maximum number of iterations reached

My solution is to use the try-except syntax once the runtime error appears, and then we can reduce the relaxation parameter and/or force intervals. But I would like to know:
(1) Is the relaxation parameter similar to the line search parameter?
(2) Do we have a built-in line search function or an adaptive nonlinear solver in FEniCSX?

I would be grateful if anyone can reply to me. Thanks!