Skip to content

Commit 9fef3b2

Browse files
authored
Merge pull request #31 from Albatross-Kite-Transport/fix/aggregate
fix zero fx fy fz
2 parents 8f200b1 + fc994d5 commit 9fef3b2

File tree

1 file changed

+5
-93
lines changed

1 file changed

+5
-93
lines changed

src/wing_aerodynamics.jl

Lines changed: 5 additions & 93 deletions
Original file line numberDiff line numberDiff line change
@@ -445,9 +445,6 @@ function calculate_results(wa::WingAerodynamics,
445445
lift_wing_3D_sum = 0.0
446446
drag_wing_3D_sum = 0.0
447447
side_wing_3D_sum = 0.0
448-
fx_global_3D_sum = 0.0
449-
fy_global_3D_sum = 0.0
450-
fz_global_3D_sum = 0.0
451448

452449
# Get wing properties
453450
spanwise_direction = wa.wings[1].spanwise_direction
@@ -495,11 +492,11 @@ function calculate_results(wa::WingAerodynamics,
495492
dot(drag_induced_va, spanwise_direction)
496493

497494
# Global forces
498-
f_global_3D[:,i] = [
495+
f_global_3D[:,i] .= [
499496
dot(ftotal_induced_va, [1.0, 0.0, 0.0]),
500497
dot(ftotal_induced_va, [0.0, 1.0, 0.0]),
501498
dot(ftotal_induced_va, [0.0, 0.0, 1.0])
502-
] * panel.width
499+
] .* panel.width
503500

504501
# Update sums
505502
lift_wing_3D_sum += lift_prescribed_va * panel.width
@@ -536,9 +533,9 @@ function calculate_results(wa::WingAerodynamics,
536533

537534
# Create results dictionary
538535
results = Dict{String,Any}(
539-
"Fx" => fx_global_3D_sum,
540-
"Fy" => fy_global_3D_sum,
541-
"Fz" => fz_global_3D_sum,
536+
"Fx" => sum(f_global_3D[1,:]),
537+
"Fy" => sum(f_global_3D[1,:]),
538+
"Fz" => sum(f_global_3D[1,:]),
542539
"lift" => lift_wing_3D_sum,
543540
"drag" => drag_wing_3D_sum,
544541
"side" => side_wing_3D_sum,
@@ -627,88 +624,3 @@ function set_va!(wa::WingAerodynamics, va)
627624
wa.panels = frozen_wake(va_distribution, wa.panels)
628625
wa.va = va_vec
629626
end
630-
631-
# Continue calculate_results function
632-
"""
633-
calculate_global_forces(wa::WingAerodynamics, results::Dict)
634-
635-
Calculate global forces and coefficients.
636-
"""
637-
function calculate_global_forces(wa::WingAerodynamics,
638-
panels::Vector{Panel},
639-
density::Float64,
640-
va::Vector{Float64},
641-
lift::Matrix{Float64},
642-
drag::Matrix{Float64},
643-
moment::Matrix{Float64})
644-
645-
# Get wing properties
646-
spanwise_direction = wa.wings[1].spanwise_direction
647-
va_mag = norm(va)
648-
va_unit = va / va_mag
649-
q_inf = 0.5 * density * va_mag^2
650-
651-
# Initialize result arrays
652-
n_panels = length(panels)
653-
cl_prescribed_va = zeros(n_panels)
654-
cd_prescribed_va = zeros(n_panels)
655-
cs_prescribed_va = zeros(n_panels)
656-
f_global_3D = zeros(Float64, 3, n_panels) # Add explicit type
657-
658-
# Force summation variables
659-
total_area = 0.0
660-
lift_sum = 0.0
661-
drag_sum = 0.0
662-
side_sum = 0.0
663-
f_global_sum = zeros(3)
664-
665-
for (i, panel) in enumerate(panels)
666-
# Get panel geometry
667-
z_airf_span = panel.z_airf
668-
y_airf_chord = panel.y_airf
669-
x_airf_normal = panel.x_airf
670-
panel_area = panel.chord * panel.width
671-
total_area += panel_area
672-
673-
# Calculate force directions
674-
dir_lift = cross(va_unit, spanwise_direction)
675-
dir_lift = dir_lift / norm(dir_lift)
676-
677-
# Calculate forces
678-
lift_force = lift[i] .* dir_lift # Use broadcasting
679-
drag_force = drag[i] .* va_unit
680-
f_total = lift_force + drag_force
681-
f_global_3D[:,i] .= panel.width .* f_total # Use in-place assignment
682-
683-
# Total force in panel frame
684-
f_total = lift_force + drag_force
685-
686-
# Store components
687-
cl_prescribed_va[i] = dot(lift_force, dir_lift) / (q_inf * panel.chord)
688-
cd_prescribed_va[i] = dot(drag_force, va_unit) / (q_inf * panel.chord)
689-
cs_prescribed_va[i] = dot(f_total, spanwise_direction) / (q_inf * panel.chord)
690-
691-
# Global forces
692-
f_global = f_global_3D[:,i]
693-
694-
# Update sums
695-
lift_sum += dot(f_global, dir_lift)
696-
drag_sum += dot(f_global, va_unit)
697-
side_sum += dot(f_global, spanwise_direction)
698-
f_global_sum += f_global
699-
end
700-
701-
return Dict(
702-
"cl_distribution" => cl_prescribed_va,
703-
"cd_distribution" => cd_prescribed_va,
704-
"cs_distribution" => cs_prescribed_va,
705-
"F_distribution" => f_global_3D,
706-
"lift" => lift_sum,
707-
"drag" => drag_sum,
708-
"side" => side_sum,
709-
"Fx" => f_global_sum[1],
710-
"Fy" => f_global_sum[2],
711-
"Fz" => f_global_sum[3],
712-
"area" => total_area
713-
)
714-
end

0 commit comments

Comments
 (0)