@@ -402,7 +402,7 @@ function solve_base!(solver::Solver, body_aero::BodyAerodynamics, gamma_distribu
402402 # Run main iteration loop
403403 gamma_loop! (solver, body_aero, panels, relaxation_factor; log)
404404 # Try again with reduced relaxation factor if not converged
405- if ! solver. lr. converged && relaxation_factor > 1e-3
405+ if solver . solver_type == LOOP && ! solver. lr. converged && relaxation_factor > 1e-3
406406 log && @warn " Running again with half the relaxation_factor = $(relaxation_factor/ 2 ) "
407407 solver. lr. gamma_new .= gamma_initial
408408 gamma_loop! (solver, body_aero, panels, relaxation_factor/ 2 ; log)
@@ -453,9 +453,7 @@ function gamma_loop!(
453453 velocity_view_y = @view induced_velocity_all[:, 2 ]
454454 velocity_view_z = @view induced_velocity_all[:, 3 ]
455455
456- function calc_gamma_new! (gamma_new, gamma)
457- gamma .= gamma_new
458-
456+ function calc_gamma_new! (gamma_new, gamma)
459457 # Calculate induced velocities
460458 mul! (velocity_view_x, AIC_x, gamma)
461459 mul! (velocity_view_y, AIC_y, gamma)
@@ -493,15 +491,16 @@ function gamma_loop!(
493491 d_gamma .= solver. lr. gamma_new .- gamma
494492 nothing
495493 end
496- d_gamma = abs_gamma_new
497- prob = NonlinearProblem (f_nonlin!, d_gamma, solver. lr. gamma_new, p)
498- sol = solve (prob, NewtonRaphson ())
494+ prob = NonlinearProblem (f_nonlin!, solver. lr. gamma_new, nothing )
495+ sol = NonlinearSolve. solve (prob, NewtonRaphson (autodiff= AutoFiniteDiff ()))
499496 gamma .= sol. u
500497 solver. lr. gamma_new .= sol. u
498+ solver. lr. converged = succesful_retcode (sol)
501499 end
502500
503501 if solver. solver_type == LOOP
504502 function f_loop! (gamma_new, gamma, damp)
503+ gamma .= gamma_new
505504 calc_gamma_new! (gamma_new, gamma)
506505 # Update gamma with relaxation and damping
507506 @. gamma_new = (1 - relaxation_factor) * gamma +
0 commit comments