@@ -15,6 +15,13 @@ Struct for storing the solution of the [solve!](@ref) function. Must contain all
1515- solver_status::SolverStatus: enum, see [SolverStatus](@ref)
1616"""
1717@with_kw mutable struct VSMSolution{P}
18+ # ## private vectors of solve_base
19+ x_airf_array:: Matrix{Float64} = zeros (P, 3 )
20+ y_airf_array:: Matrix{Float64} = zeros (P, 3 )
21+ z_airf_array:: Matrix{Float64} = zeros (P, 3 )
22+ va_array:: Matrix{Float64} = zeros (P, 3 )
23+ chord_array:: Vector{Float64} = zeros (P)
24+ # ##
1825 panel_width_array:: Vector{Float64} = zeros (P)
1926 cl_array:: Vector{Float64} = zeros (P)
2027 cd_array:: Vector{Float64} = zeros (P)
@@ -115,7 +122,7 @@ function solve!(solver::Solver, body_aero::BodyAerodynamics, gamma_distribution=
115122
116123 # calculate intermediate result
117124 (converged, body_aero, gamma_new, reference_point, density, aerodynamic_model_type, core_radius_fraction,
118- mu, alpha_array, v_a_array, chord_array, x_airf_array, y_airf_array, z_airf_array,
125+ mu, alpha_array, v_a_array, chord_array, solver . sol . x_airf_array, solver . sol . y_airf_array, solver . sol . z_airf_array,
119126 va_array, va_norm_array, va_unit_array, panels,
120127 is_only_f_and_gamma_output) = solve_base (solver, body_aero, gamma_distribution; log, reference_point)
121128 if ! isnothing (solver. sol. gamma_distribution)
@@ -159,8 +166,8 @@ function solve!(solver::Solver, body_aero::BodyAerodynamics, gamma_distribution=
159166 body_aero,
160167 gamma_new,
161168 core_radius_fraction,
162- z_airf_array,
163- x_airf_array,
169+ solver . sol . z_airf_array,
170+ solver . sol . x_airf_array,
164171 va_array,
165172 va_norm_array,
166173 va_unit_array
@@ -317,17 +324,17 @@ function solve_base(solver::Solver, body_aero::BodyAerodynamics, gamma_distribut
317324 relaxation_factor = solver. relaxation_factor
318325
319326 # Preallocate arrays
320- x_airf_array = zeros (n_panels, 3 )
321- y_airf_array = zeros (n_panels, 3 )
322- z_airf_array = zeros (n_panels, 3 )
327+ solver . sol . x_airf_array . = 0
328+ solver . sol . y_airf_array . = 0
329+ solver . sol . z_airf_array . = 0
323330 va_array = zeros (n_panels, 3 )
324331 chord_array = zeros (n_panels)
325332
326333 # Fill arrays from panels
327334 for (i, panel) in enumerate (panels)
328- x_airf_array[i, :] .= panel. x_airf
329- y_airf_array[i, :] .= panel. y_airf
330- z_airf_array[i, :] .= panel. z_airf
335+ solver . sol . x_airf_array[i, :] .= panel. x_airf
336+ solver . sol . y_airf_array[i, :] .= panel. y_airf
337+ solver . sol . z_airf_array[i, :] .= panel. z_airf
331338 va_array[i, :] .= panel. va
332339 chord_array[i] = panel. chord
333340 end
@@ -366,9 +373,9 @@ function solve_base(solver::Solver, body_aero::BodyAerodynamics, gamma_distribut
366373 gamma_initial,
367374 va_array,
368375 chord_array,
369- x_airf_array,
370- y_airf_array,
371- z_airf_array,
376+ solver . sol . x_airf_array,
377+ solver . sol . y_airf_array,
378+ solver . sol . z_airf_array,
372379 panels,
373380 relaxation_factor;
374381 log
@@ -382,9 +389,9 @@ function solve_base(solver::Solver, body_aero::BodyAerodynamics, gamma_distribut
382389 gamma_initial,
383390 va_array,
384391 chord_array,
385- x_airf_array,
386- y_airf_array,
387- z_airf_array,
392+ solver . sol . x_airf_array,
393+ solver . sol . y_airf_array,
394+ solver . sol . z_airf_array,
388395 panels,
389396 relaxation_factor/ 2 ;
390397 log
@@ -404,9 +411,9 @@ function solve_base(solver::Solver, body_aero::BodyAerodynamics, gamma_distribut
404411 alpha_array,
405412 v_a_array,
406413 chord_array,
407- x_airf_array,
408- y_airf_array,
409- z_airf_array,
414+ solver . sol . x_airf_array,
415+ solver . sol . y_airf_array,
416+ solver . sol . z_airf_array,
410417 va_array,
411418 va_norm_array,
412419 va_unit_array,
0 commit comments