|
24 | 24 |
|
25 | 25 | @eval @everywhere using VortexStepMethod, Xfoil, Statistics, SharedArrays |
26 | 26 |
|
27 | | - alphas = -deg2rad(5):deg2rad(1.0):deg2rad(20) |
28 | | - d_trailing_edge_angles = -deg2rad(5):deg2rad(1.0):deg2rad(20) |
| 27 | + # alpha_range = deg2rad.(-5:1:20) |
| 28 | + # delta_range = deg2rad.(-5:1:20) |
29 | 29 |
|
30 | | - cl_matrix = SharedArray{Float64}((length(alphas), length(d_trailing_edge_angles))) |
31 | | - cd_matrix = SharedArray{Float64}((length(alphas), length(d_trailing_edge_angles))) |
32 | | - cm_matrix = SharedArray{Float64}((length(alphas), length(d_trailing_edge_angles))) |
| 30 | + cl_matrix = SharedArray{Float64}((length(alpha_range), length(delta_range))) |
| 31 | + cd_matrix = SharedArray{Float64}((length(alpha_range), length(delta_range))) |
| 32 | + cm_matrix = SharedArray{Float64}((length(alpha_range), length(delta_range))) |
33 | 33 |
|
34 | 34 | @everywhere begin |
35 | 35 | function turn_trailing_edge!(angle, x, y, lower_turn, upper_turn, x_turn) |
|
69 | 69 | nothing |
70 | 70 | end |
71 | 71 |
|
72 | | - function solve_alpha!(cls, cds, cms, alphas, alpha_idxs, d_trailing_edge_angle, re, x_, y_, lower, upper, kite_speed, speed_of_sound, x_turn) |
| 72 | + function solve_alpha!(cls, cds, cms, alpha_range, alpha_idxs, delta, re, x_, y_, lower, upper, kite_speed, speed_of_sound, x_turn) |
73 | 73 | x = deepcopy(x_) |
74 | 74 | y = deepcopy(y_) |
75 | | - turn_trailing_edge!(d_trailing_edge_angle, x, y, lower, upper, x_turn) |
| 75 | + turn_trailing_edge!(delta, x, y, lower, upper, x_turn) |
76 | 76 | Xfoil.set_coordinates(x, y) |
77 | 77 | x, y = Xfoil.pane(npan=140) |
78 | 78 | reinit = true |
79 | | - for (alpha, alpha_idx) in zip(alphas, alpha_idxs) |
| 79 | + for (alpha, alpha_idx) in zip(alpha_range, alpha_idxs) |
80 | 80 | converged = false |
81 | 81 | cl = 0.0 |
82 | 82 | cd = 0.0 |
|
92 | 92 | return nothing |
93 | 93 | end |
94 | 94 |
|
95 | | - function run_solve_alpha(alphas, d_trailing_edge_angle, re, x_, y_, lower, upper, kite_speed, speed_of_sound, x_turn) |
96 | | - @info "solving alpha with trailing edge angle: $(rad2deg(d_trailing_edge_angle)) degrees" |
97 | | - cls = Float64[NaN for _ in alphas] |
98 | | - cds = Float64[NaN for _ in alphas] |
99 | | - cms = Float64[NaN for _ in alphas] |
100 | | - neg_idxs = sort(findall(alphas .< 0.0), rev=true) |
101 | | - neg_alphas = alphas[neg_idxs] |
102 | | - pos_idxs = sort(findall(alphas .>= 0.0)) |
103 | | - pos_alphas = alphas[pos_idxs] |
104 | | - solve_alpha!(cls, cds, cms, neg_alphas, neg_idxs, d_trailing_edge_angle, |
| 95 | + function run_solve_alpha(alpha_range, delta, re, x_, y_, lower, upper, kite_speed, speed_of_sound, x_turn) |
| 96 | + @info "solving alpha with trailing edge angle: $(rad2deg(delta)) degrees" |
| 97 | + cls = Float64[NaN for _ in alpha_range] |
| 98 | + cds = Float64[NaN for _ in alpha_range] |
| 99 | + cms = Float64[NaN for _ in alpha_range] |
| 100 | + neg_idxs = sort(findall(alpha_range .< 0.0), rev=true) |
| 101 | + neg_alpha_range = alpha_range[neg_idxs] |
| 102 | + pos_idxs = sort(findall(alpha_range .>= 0.0)) |
| 103 | + pos_alpha_range = alpha_range[pos_idxs] |
| 104 | + solve_alpha!(cls, cds, cms, neg_alpha_range, neg_idxs, delta, |
105 | 105 | re, x_, y_, lower, upper, kite_speed, speed_of_sound, x_turn) |
106 | | - solve_alpha!(cls, cds, cms, pos_alphas, pos_idxs, d_trailing_edge_angle, |
| 106 | + solve_alpha!(cls, cds, cms, pos_alpha_range, pos_idxs, delta, |
107 | 107 | re, x_, y_, lower, upper, kite_speed, speed_of_sound, x_turn) |
108 | 108 | return cls, cds, cms |
109 | 109 | end |
|
163 | 163 | reynolds_number = $reynolds_number |
164 | 164 | end |
165 | 165 |
|
166 | | - @sync @distributed for j in eachindex(d_trailing_edge_angles) |
167 | | - cl_matrix[:, j], cd_matrix[:, j], cm_matrix[:, j] = run_solve_alpha(alphas, d_trailing_edge_angles[j], |
| 166 | + @sync @distributed for j in eachindex(delta_range) |
| 167 | + cl_matrix[:, j], cd_matrix[:, j], cm_matrix[:, j] = run_solve_alpha(alpha_range, delta_range[j], |
168 | 168 | reynolds_number, x, y, lower, upper, kite_speed, SPEED_OF_SOUND, x_turn) |
169 | 169 | end |
170 | 170 | cl_matrix = Matrix{Float64}(cl_matrix) |
|
181 | 181 | @info "Relative trailing_edge height: $(upper - lower)" |
182 | 182 | @info "Reynolds number for flying speed of $kite_speed is $reynolds_number" |
183 | 183 |
|
184 | | - serialize(polar_path, (alphas, d_trailing_edge_angles, cl_matrix, cd_matrix, cm_matrix)) |
| 184 | + serialize(polar_path, (alpha_range, delta_range, cl_matrix, cd_matrix, cm_matrix)) |
185 | 185 |
|
186 | 186 | catch e |
187 | 187 | @info "Removing processes" |
|
0 commit comments