@@ -449,7 +449,8 @@ function calculate_results(
449449 va_norm_array,
450450 va_unit_array,
451451 panels:: Vector{Panel} ,
452- is_only_f_and_gamma_output:: Bool ,
452+ is_only_f_and_gamma_output:: Bool ;
453+ correct_aoa:: Bool = false ,
453454)
454455
455456 # Initialize arrays
@@ -473,7 +474,7 @@ function calculate_results(
473474 moment = reshape ((cm_array .* 0.5 .* density .* v_a_array.^ 2 .* chord_array), :, 1 )
474475
475476 # Calculate alpha corrections based on model type
476- if aerodynamic_model_type == VSM
477+ if correct_aoa
477478 update_effective_angle_of_attack! (
478479 alpha_corrected,
479480 body_aero,
@@ -485,7 +486,7 @@ function calculate_results(
485486 va_norm_array,
486487 va_unit_array
487488 )
488- elseif aerodynamic_model_type == LLT
489+ else
489490 alpha_corrected .= alpha_array
490491 end
491492
@@ -661,8 +662,7 @@ Set velocity array and update wake filaments.
661662- `va::VelVector`: Velocity vector of the apparent wind speed [m/s]
662663- `omega::VelVector`: Turn rate vector around x y and z axis [rad/s]
663664"""
664- function set_va! (body_aero:: BodyAerodynamics , va:: VelVector , omega= zeros (MVec3))
665-
665+ function set_va! (body_aero:: BodyAerodynamics , va:: AbstractVector , omega= zeros (MVec3))
666666 # Calculate va_distribution based on input type
667667 va_distribution = if all (omega .== 0.0 )
668668 repeat (reshape (va, 1 , 3 ), length (body_aero. panels))
@@ -693,16 +693,17 @@ function set_va!(body_aero::BodyAerodynamics, va::VelVector, omega=zeros(MVec3))
693693 return nothing
694694end
695695
696- function set_va! (body_aero:: BodyAerodynamics , va_distribution:: Vector{VelVector} , omega= zeros (MVec3))
697- length (va) != length (body_aero. panels) && throw (ArgumentError (" Length of va distribution should be equal to number of panels." ))
698-
696+ function set_va! (body_aero:: BodyAerodynamics , va_distribution:: AbstractMatrix , omega= zeros (MVec3))
697+ size (va_distribution, 1 ) != length (body_aero. panels) &&
698+ throw (ArgumentError (" Number of rows in va distribution should be equal to number of panels." ))
699+
699700 for (i, panel) in enumerate (body_aero. panels)
700- panel. va = va_distribution[i]
701+ panel. va . = va_distribution[i, : ]
701702 end
702-
703+
703704 # Update wake elements
704705 frozen_wake! (body_aero, va_distribution)
705- body_aero. _va = va
706+ body_aero. _va . = [ mean (va_distribution[:,i]) for i in 1 : 3 ]
706707 return nothing
707708end
708709
0 commit comments