@@ -834,29 +834,22 @@ function gamma_loop!(
834834 relstep = sqrt (eps (Float64))
835835 abstep = sqrt (eps (Float64))
836836
837+ update_gamma_candidate! (
838+ residual, gamma_iter, solver, panels, n_panels,
839+ AIC_x, AIC_y, AIC_z,
840+ velocity_view_x, velocity_view_y, velocity_view_z,
841+ va_array, induced_velocity_all, relative_velocity_array,
842+ y_airf_array, relative_velocity_crossz, v_acrossz_array,
843+ z_airf_array, x_airf_array,
844+ v_normal_array, v_tangential_array,
845+ va_magw_array, cl_dist, chord_array,
846+ )
847+ @inbounds for i in 1 : n_panels
848+ residual[i] -= gamma_iter[i]
849+ end
850+
837851 solver. lr. converged = false
838852 for iter in 1 : solver. max_iterations
839- update_gamma_candidate! (
840- residual, gamma_iter, solver, panels, n_panels,
841- AIC_x, AIC_y, AIC_z,
842- velocity_view_x, velocity_view_y, velocity_view_z,
843- va_array, induced_velocity_all, relative_velocity_array,
844- y_airf_array, relative_velocity_crossz, v_acrossz_array,
845- z_airf_array, x_airf_array,
846- v_normal_array, v_tangential_array,
847- va_magw_array, cl_dist, chord_array,
848- )
849- max_residual = 0.0
850- @inbounds for i in 1 : n_panels
851- residual[i] -= gamma_iter[i]
852- a = abs (residual[i])
853- a > max_residual && (max_residual = a)
854- end
855- if max_residual < solver. atol
856- solver. lr. converged = true
857- break
858- end
859-
860853 @inbounds for j in 1 : n_panels
861854 for i in 1 : n_panels
862855 gamma_perturbed[i] = gamma_iter[i]
@@ -885,21 +878,28 @@ function gamma_loop!(
885878 @inbounds for i in 1 : n_panels
886879 gamma_iter[i] -= residual[i]
887880 end
888- end
889881
890- # Refresh side-effect state (alpha_dist, v_a_dist, cl_dist, ...) at the
891- # converged iterate; the inner FD loop left them set at the last
892- # perturbed gamma.
893- update_gamma_candidate! (
894- residual, gamma_iter, solver, panels, n_panels,
895- AIC_x, AIC_y, AIC_z,
896- velocity_view_x, velocity_view_y, velocity_view_z,
897- va_array, induced_velocity_all, relative_velocity_array,
898- y_airf_array, relative_velocity_crossz, v_acrossz_array,
899- z_airf_array, x_airf_array,
900- v_normal_array, v_tangential_array,
901- va_magw_array, cl_dist, chord_array,
902- )
882+ update_gamma_candidate! (
883+ residual, gamma_iter, solver, panels, n_panels,
884+ AIC_x, AIC_y, AIC_z,
885+ velocity_view_x, velocity_view_y, velocity_view_z,
886+ va_array, induced_velocity_all, relative_velocity_array,
887+ y_airf_array, relative_velocity_crossz, v_acrossz_array,
888+ z_airf_array, x_airf_array,
889+ v_normal_array, v_tangential_array,
890+ va_magw_array, cl_dist, chord_array,
891+ )
892+ max_residual = 0.0
893+ @inbounds for i in 1 : n_panels
894+ residual[i] -= gamma_iter[i]
895+ a = abs (residual[i])
896+ a > max_residual && (max_residual = a)
897+ end
898+ if max_residual < solver. atol
899+ solver. lr. converged = true
900+ break
901+ end
902+ end
903903
904904 gamma .= gamma_iter
905905 return nothing
0 commit comments