Skip to content

Commit 084e7bb

Browse files
committed
Don't use corrected alpha
1 parent a1df712 commit 084e7bb

File tree

4 files changed

+24
-14
lines changed

4 files changed

+24
-14
lines changed

src/VortexStepMethod.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -294,4 +294,4 @@ include("solver.jl")
294294
include("precompile.jl")
295295

296296

297-
end # module
297+
end # module

src/body_aerodynamics.jl

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -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
694694
end
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
707708
end
708709

src/settings.jl

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ end
3535
core_radius_fraction::Float64 = 1e-20
3636
mu::Float64 = 1.81e-5 # dynamic viscosity [N·s/m²]
3737
calc_only_f_and_gamma::Bool=false # whether to only output f and gamma
38+
correct_aoa::Bool=false # perform aoa correction
3839
end
3940

4041
@Base.kwdef mutable struct VSMSettings
@@ -107,7 +108,12 @@ function VSMSettings(filename; data_prefix=true)
107108
# Handle enum conversions manually
108109
vsm_settings.solver_settings.aerodynamic_model_type = eval(Symbol(solver_data["aerodynamic_model_type"]))
109110
vsm_settings.solver_settings.type_initial_gamma_distribution = eval(Symbol(solver_data["type_initial_gamma_distribution"]))
110-
111+
112+
# Set correct_aoa default based on model type if not explicitly provided
113+
if !haskey(solver_data, "correct_aoa")
114+
vsm_settings.solver_settings.correct_aoa = (vsm_settings.solver_settings.aerodynamic_model_type == VSM)
115+
end
116+
111117
# Override with calculated totals
112118
vsm_settings.solver_settings.n_panels = n_panels
113119
vsm_settings.solver_settings.n_groups = n_groups

src/solver.jl

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,7 @@ sol::VSMSolution = VSMSolution(): The result of calling [solve!](@ref)
123123
core_radius_fraction::Float64 = 1e-20
124124
mu::Float64 = 1.81e-5
125125
is_only_f_and_gamma_output::Bool = false
126+
correct_aoa::Bool = false
126127

127128
# Intermediate results
128129
lr::LoopResult{P} = LoopResult{P}()
@@ -149,6 +150,7 @@ function Solver(body_aero, settings::VSMSettings)
149150
rtol=settings.solver_settings.rtol,
150151
relaxation_factor=settings.solver_settings.relaxation_factor,
151152
core_radius_fraction=settings.solver_settings.core_radius_fraction,
153+
correct_aoa=settings.solver_settings.correct_aoa,
152154
)
153155
end
154156

@@ -485,7 +487,8 @@ function solve(solver::Solver, body_aero::BodyAerodynamics, gamma_distribution=n
485487
solver.br.va_norm_array,
486488
solver.br.va_unit_array,
487489
body_aero.panels,
488-
solver.is_only_f_and_gamma_output
490+
solver.is_only_f_and_gamma_output;
491+
correct_aoa=solver.correct_aoa
489492
)
490493
return results
491494
end

0 commit comments

Comments
 (0)