NonlinearSolveAlg takes a NonlinearSolve.jl algorithm, but those algs can have a linsolve choice as well. It turns out that right now if you set linsolve, i.e. FBDF(linsolve = KLUFactorization(), nonlinsolve = NonlinearSolveAlg(NewtonRhapson()), this ignores the linsolve. But also, there's a second linsolve alg in the NewtonRhapson that could be set too. We should just internally prefer the linsolve at the alg level (since that's the common way to do it here) and then automatically update the other linsolve. This only hits NonlienarSolveAlg so most users won't see this bug, it's not very common to use this code path nor do I think it's actually documented yet (it's not ready), but it's worth noting that this is something required for it to get more mainstreamed.
NonlinearSolveAlgtakes a NonlinearSolve.jl algorithm, but those algs can have alinsolvechoice as well. It turns out that right now if you setlinsolve, i.e.FBDF(linsolve = KLUFactorization(), nonlinsolve = NonlinearSolveAlg(NewtonRhapson()), this ignores the linsolve. But also, there's a second linsolve alg in the NewtonRhapson that could be set too. We should just internally prefer thelinsolveat the alg level (since that's the common way to do it here) and then automatically update the other linsolve. This only hits NonlienarSolveAlg so most users won't see this bug, it's not very common to use this code path nor do I think it's actually documented yet (it's not ready), but it's worth noting that this is something required for it to get more mainstreamed.