I’d like to implement inexact Newton solves using NonlinearSolve.jl. The output from this code snippet (shown below) suggests that, by default, each Newton equation is solved to a fixed accuracy.
nlcache = init(
    prob,
    reltol=1e-3, abstol=1e-3,
    show_trace = Val(true),
    NewtonRaphson(linsolve = KrylovJL_MINRES(verbose=10, itmax=100)),
    )
for i in 1:10
    step!(nlcache)
end
Is it possible to modify nlcache within the loop to adaptively specify the accuracy of each linear solve?
Here’s the output:
┌ Warning: minres! doesn't support right preconditioning.
└ @ LinearSolve ~/.julia/packages/LinearSolve/B82H3/src/iterative_wrappers.jl:275
MINRES: system of size 202
    k      ‖r‖    ‖Aᴴr‖        β       cos       sin      ‖A‖     κ(A)    test1    test2  timer
    0  2.0e+00  0.0e+00  2.0e+00  -1.0e+00   0.0e+00  0.0e+00  0.0e+00  ✗ ✗ ✗ ✗  ✗ ✗ ✗ ✗  0.00s
   10  3.0e-02  3.3e-02  8.2e-01   6.0e-01   8.0e-01  1.7e+01  6.3e+00  1.9e-03  5.2e-02  0.00s
   20  1.9e-03  8.7e-03  4.4e+00   5.8e-01   8.2e-01  2.0e+01  8.5e+00  9.7e-05  1.8e-01  0.00s
   30  2.3e-04  2.0e-04  8.2e-01  -5.3e-01   8.5e-01  2.4e+01  9.2e+00  9.7e-06  3.2e-02  0.00s
   40  2.0e-05  2.2e-05  8.0e-01  -6.6e-01   7.5e-01  2.7e+01  9.2e+00  7.4e-07  3.0e-02  0.00s
   50  1.9e-06  1.8e-06  5.8e-01   6.9e-01   7.2e-01  3.0e+01  9.2e+00  6.7e-08  2.3e-02  0.00s
   60  1.5e-07  1.5e-07  8.6e-01   5.6e-01   8.3e-01  3.2e+01  9.2e+00  4.7e-09  2.6e-02  0.00s
1        2.97303732e-02       9.81027009e-01      
┌ Warning: minres! doesn't support right preconditioning.
└ @ LinearSolve ~/.julia/packages/LinearSolve/B82H3/src/iterative_wrappers.jl:275
MINRES: system of size 202
    k      ‖r‖    ‖Aᴴr‖        β       cos       sin      ‖A‖     κ(A)    test1    test2  timer
    0  4.0e-01  0.0e+00  4.0e-01  -1.0e+00   0.0e+00  0.0e+00  0.0e+00  ✗ ✗ ✗ ✗  ✗ ✗ ✗ ✗  0.00s
   10  5.7e-04  8.9e-04  9.3e-01   7.0e-01   7.1e-01  3.0e+01  2.4e+01  1.0e-03  3.7e-02  0.00s
   20  4.6e-05  4.4e-05  6.2e-01   6.8e-01   7.4e-01  4.0e+01  3.5e+01  5.6e-05  1.7e-02  0.00s
   30  7.6e-06  7.6e-06  9.9e-01  -4.9e-01   8.7e-01  5.0e+01  3.5e+01  7.3e-06  1.8e-02  0.00s
   40  6.9e-07  1.2e-06  2.0e+00  -4.7e-01   8.8e-01  5.7e+01  3.7e+01  5.8e-07  2.8e-02  0.00s
   50  7.5e-08  9.5e-08  9.6e-01   6.7e-01   7.4e-01  6.4e+01  3.7e+01  5.7e-08  1.5e-02  0.00s
2        3.51646316e-03       2.07810848e-02      
┌ Warning: minres! doesn't support right preconditioning.
└ @ LinearSolve ~/.julia/packages/LinearSolve/B82H3/src/iterative_wrappers.jl:275
MINRES: system of size 202
    k      ‖r‖    ‖Aᴴr‖        β       cos       sin      ‖A‖     κ(A)    test1    test2  timer
    0  4.7e-02  0.0e+00  4.7e-02  -1.0e+00   0.0e+00  0.0e+00  0.0e+00  ✗ ✗ ✗ ✗  ✗ ✗ ✗ ✗  0.00s
   10  5.8e-05  5.6e-05  8.2e-01   5.9e-01   8.0e-01  2.5e+01  2.0e+01  8.5e-04  3.1e-02  0.00s
   20  4.4e-06  4.3e-06  6.7e-01   6.6e-01   7.5e-01  3.3e+01  2.6e+01  4.7e-05  2.2e-02  0.00s
   30  6.7e-07  6.4e-07  8.1e-01  -5.7e-01   8.2e-01  4.0e+01  2.6e+01  5.8e-06  2.0e-02  0.00s
   40  6.7e-08  1.2e-07  2.2e+00  -4.4e-01   9.0e-01  4.2e+01  2.9e+01  5.6e-07  3.8e-02  0.00s
3        6.82363870e-05       2.88556208e-03