Skip to content

Commit 56f219e

Browse files
committed
Fix for updated separate refine
1 parent 9e535da commit 56f219e

File tree

12 files changed

+72
-45
lines changed

12 files changed

+72
-45
lines changed

test/bench.jl

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,12 @@ const IS_JULIA_1_12_OR_NEWER = VERSION >= v"1.12"
5151
[chord, -span/2, 0.0], # Right tip TE
5252
INVISCID)
5353

54+
refine!(wing)
5455
body_aero = BodyAerodynamics([wing])
56+
refine!(unchanged_wing)
5557
unchanged_body_aero = BodyAerodynamics([unchanged_wing])
5658
reinit!(unchanged_body_aero)
57-
59+
5860
@testset "Re-initialization" begin
5961
result = @benchmark reinit!($unchanged_body_aero; init_aero=false) samples=1 evals=1
6062
@info "Re-initializing Allocations: $(result.allocs) \t Memory: $(result.memory)"
@@ -136,7 +138,9 @@ const IS_JULIA_1_12_OR_NEWER = VERSION >= v"1.12"
136138
[chord, -span/2, 0.0], # Right tip TE
137139
aero_model,
138140
aero_data)
139-
body_aero = BodyAerodynamics([wing])
141+
refine!(wing)
142+
refine!(wing)
143+
body_aero = BodyAerodynamics([wing])
140144

141145
solver = Solver(body_aero;
142146
aerodynamic_model_type=model

test/bench_solve.jl

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,9 @@ add_section!(wing,
3030
INVISCID)
3131

3232
# Step 3: Initialize aerodynamics
33-
wa = BodyAerodynamics([wing])
33+
wa = refine!(wing)
34+
refine!(wing)
35+
body_aero = BodyAerodynamics([wing])
3436

3537
# Set inflow conditions
3638
vel_app = [cos(alpha), 0.0, sin(alpha)] .* v_a

test/body_aerodynamics/test_body_aerodynamics.jl

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ include("../utils.jl")
3737
)
3838
end
3939

40+
refine!(wing)
41+
refine!(wing)
4042
body_aero = BodyAerodynamics([wing])
4143
set_va!(body_aero, v_a)
4244

@@ -120,7 +122,8 @@ end
120122
add_section!(wing, [0.0, 0.0, 0.0], [1.0, 0.0, 0.0], INVISCID)
121123
add_section!(wing, [0.0, 1.0, 0.0], [1.0, 1.0, 0.0], INVISCID)
122124
add_section!(wing, [0.0, 2.0, 0.0], [1.0, 2.0, 0.0], INVISCID)
123-
125+
refine!(wing)
126+
124127
# Test non-zero origin translation
125128
origin = MVec3(1.0, 2.0, 3.0)
126129
body_aero = BodyAerodynamics([wing]; kite_body_origin=origin)
@@ -174,7 +177,9 @@ end
174177
INVISCID
175178
)
176179
end
177-
body_aero = BodyAerodynamics([wing])
180+
refine!(wing)
181+
refine!(wing)
182+
body_aero = BodyAerodynamics([wing])
178183
set_va!(body_aero, v_a)
179184

180185
return body_aero, coord, v_a, model
@@ -304,6 +309,8 @@ end
304309
)
305310
end
306311

312+
refine!(wing)
313+
refine!(wing)
307314
body_aero = BodyAerodynamics([wing])
308315
set_va!(body_aero, v_a)
309316

@@ -416,7 +423,9 @@ end
416423
try
417424
settings = VSMSettings(settings_file)
418425
wing = Wing(settings)
419-
body_aero = BodyAerodynamics([wing])
426+
body_aero = refine!(wing)
427+
refine!(wing)
428+
body_aero = BodyAerodynamics([wing])
420429

421430
set_va!(body_aero, settings)
422431

test/plotting/test_plotting.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ function create_body_aero()
5656
INVISCID)
5757

5858
# Step 3: Initialize aerodynamics
59+
refine!(wing)
5960
body_aero = BodyAerodynamics([wing])
6061
# Set inflow conditions
6162
vel_app = [cos(alpha), 0.0, sin(alpha)] .* v_a
@@ -124,6 +125,7 @@ end
124125
safe_rm(joinpath(save_dir, "Rectangular_Wing_Polars.png"))
125126

126127
# Step 9: Test polar data plotting
128+
# ram_wing is an ObjWing - no refine! needed
127129
body_aero = BodyAerodynamics([ram_wing])
128130
fig = plot_polar_data(body_aero; is_show=false)
129131
@test fig isa Figure

test/ram_geometry/test_kite_geometry.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ using Serialization
169169
wing = ObjWing(test_obj_path, test_dat_path; remove_nan=true)
170170

171171
@test wing.n_panels == 56 # Default value
172-
@test wing.spanwise_distribution == NONE
172+
@test wing.spanwise_distribution == UNCHANGED
173173
@test wing.spanwise_direction [0.0, 1.0, 0.0]
174174
@test length(wing.unrefined_sections) > 0 # Should have sections now
175175
@test wing.mass 1.0
@@ -186,7 +186,7 @@ using Serialization
186186
end
187187

188188
@testset "Wing Deformation" begin
189-
# Create an ObjWing for testing
189+
# Create an ObjWing for testing (no refine! needed - fully complete)
190190
wing = ObjWing(test_obj_path, test_dat_path; remove_nan=true)
191191
body_aero = BodyAerodynamics([wing])
192192

test/runtests.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ end::Bool
3737
end
3838
should_run_test("body_aerodynamics/test_body_aerodynamics.jl") && include("body_aerodynamics/test_body_aerodynamics.jl")
3939
should_run_test("body_aerodynamics/test_results.jl") && include("body_aerodynamics/test_results.jl")
40+
should_run_test("test_refinement_validation.jl") && include("test_refinement_validation.jl")
4041
should_run_test("filament/test_bound_filament.jl") && include("filament/test_bound_filament.jl")
4142
should_run_test("filament/test_semi_infinite_filament.jl") && include("filament/test_semi_infinite_filament.jl")
4243
should_run_test("panel/test_panel.jl") && include("panel/test_panel.jl")

test/solver/test_solver.jl

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,9 @@ using Test
1111
# Test Solver constructor with VSMSettings
1212
settings = VSMSettings(settings_file)
1313
wing = Wing(settings)
14-
body_aero = BodyAerodynamics([wing])
14+
refine!(wing)
15+
refine!(wing)
16+
body_aero = BodyAerodynamics([wing])
1517
solver = Solver(body_aero, settings)
1618

1719
# Verify solver properties match settings

test/solver/test_unrefined_dist.jl

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,9 @@ using Test
1919

2020
# Create wing and solver
2121
wing = Wing(settings)
22-
body_aero = BodyAerodynamics([wing])
22+
refine!(wing)
23+
refine!(wing)
24+
body_aero = BodyAerodynamics([wing])
2325
solver = Solver(body_aero, settings)
2426

2527
# Set conditions and solve
@@ -96,7 +98,9 @@ using Test
9698
settings.solver_settings.n_panels = n_panels
9799

98100
wing = Wing(settings)
99-
body_aero = BodyAerodynamics([wing])
101+
refine!(wing)
102+
refine!(wing)
103+
body_aero = BodyAerodynamics([wing])
100104
solver = Solver(body_aero, settings)
101105

102106
va = [10.0, 0.0, 0.0]

test/wake/test_wake.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ using VortexStepMethod
2020

2121
try
2222
# Create wing and body aerodynamics with known good geometry
23+
# ObjWing is fully complete - no refine! needed
2324
wing = ObjWing(body_path, foil_path; n_panels=56) # Use default panels
2425
body_aero = BodyAerodynamics([wing])
2526

test/wing_geometry/test_wing_geometry.jl

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
using Test
22
using LinearAlgebra
33
using VortexStepMethod
4-
using VortexStepMethod: Wing, Section, add_section!, refine_mesh_by_splitting_provided_sections!, refine_aerodynamic_mesh!
4+
using VortexStepMethod: Wing, Section, add_section!, refine_mesh_by_splitting_provided_sections!, refine!
55
import Base: ==
66

77
"""
@@ -98,23 +98,23 @@ end
9898
add_section!(example_wing, [0.0, 1.0, 0.0], [0.0, 1.0, 0.0], INVISCID)
9999
add_section!(example_wing, [0.0, -1.0, 0.0], [0.0, -1.0, 0.0], INVISCID)
100100
add_section!(example_wing, [0.0, -1.5, 0.0], [0.0, -1.5, 0.0], INVISCID)
101-
refine_aerodynamic_mesh!(example_wing)
101+
refine!(example_wing)
102102
sections = example_wing.refined_sections
103103

104104
# Test right to left order
105105
example_wing_1 = Wing(10)
106106
add_section!(example_wing_1, [0.0, -1.5, 0.0], [0.0, -1.5, 0.0], INVISCID)
107107
add_section!(example_wing_1, [0.0, -1.0, 0.0], [0.0, -1.0, 0.0], INVISCID)
108108
add_section!(example_wing_1, [0.0, 1.0, 0.0], [0.0, 1.0, 0.0], INVISCID)
109-
refine_aerodynamic_mesh!(example_wing_1)
109+
refine!(example_wing_1)
110110
sections_1 = example_wing_1.refined_sections
111111

112112
# Test random order
113113
example_wing_2 = Wing(10)
114114
add_section!(example_wing_2, [0.0, 1.0, 0.0], [0.0, 1.0, 0.0], INVISCID)
115115
add_section!(example_wing_2, [0.0, -1.5, 0.0], [0.0, -1.5, 0.0], INVISCID)
116116
add_section!(example_wing_2, [0.0, -1.0, 0.0], [0.0, -1.0, 0.0], INVISCID)
117-
refine_aerodynamic_mesh!(example_wing_2)
117+
refine!(example_wing_2)
118118
sections_2 = example_wing_2.refined_sections
119119

120120
for i in eachindex(sections)
@@ -133,7 +133,7 @@ end
133133
wing = Wing(n_panels; spanwise_distribution=LINEAR)
134134
add_section!(wing, [0.0, span/2, 0.0], [-1.0, span/2, 0.0], INVISCID)
135135
add_section!(wing, [0.0, -span/2, 0.0], [-1.0, -span/2, 0.0], INVISCID)
136-
refine_aerodynamic_mesh!(wing)
136+
refine!(wing)
137137
sections = wing.refined_sections
138138

139139
@test length(sections) == wing.n_panels + 1
@@ -149,7 +149,7 @@ end
149149
wing = Wing(n_panels; spanwise_distribution=COSINE)
150150
add_section!(wing, [0.0, span/2, 0.0], [-1.0, span/2, 0.0], INVISCID)
151151
add_section!(wing, [0.0, -span/2, 0.0], [-1.0, -span/2, 0.0], INVISCID)
152-
refine_aerodynamic_mesh!(wing)
152+
refine!(wing)
153153
sections = wing.refined_sections
154154

155155
@test length(sections) == wing.n_panels + 1
@@ -173,7 +173,7 @@ end
173173
add_section!(wing, [0.0, span/2, 0.0], [-1.0, span/2, 0.0], INVISCID)
174174
add_section!(wing, [0.0, -span/2, 0.0], [-1.0, -span/2, 0.0], INVISCID)
175175

176-
refine_aerodynamic_mesh!(wing)
176+
refine!(wing)
177177
sections = wing.unrefined_sections
178178
@test length(sections) == wing.n_panels + 1
179179
@test sections[1].LE_point [0.0, span/2, 0.0]
@@ -188,7 +188,7 @@ end
188188
add_section!(wing, [0.0, span/2, 0.0], [-1.0, span/2, 0.0], INVISCID)
189189
add_section!(wing, [0.0, -span/2, 0.0], [-1.0, -span/2, 0.0], INVISCID)
190190

191-
refine_aerodynamic_mesh!(wing)
191+
refine!(wing)
192192
sections = wing.refined_sections
193193
@test length(sections) == wing.n_panels + 1
194194
@test sections[1].LE_point [0.0, span/2, 0.0]
@@ -206,7 +206,7 @@ end
206206
add_section!(wing, [0.0, y, 0.0], [-1.0, y, 0.0], INVISCID)
207207
end
208208

209-
refine_aerodynamic_mesh!(wing)
209+
refine!(wing)
210210
sections = wing.refined_sections
211211
@test length(sections) == wing.n_panels + 1
212212

@@ -226,7 +226,7 @@ end
226226
add_section!(wing, [0.0, 5.0, 0.0], [-1.0, 5.0, 0.0], INVISCID)
227227
add_section!(wing, [0.0, -5.0, 0.0], [-1.0, -5.0, 0.0], INVISCID)
228228

229-
refine_aerodynamic_mesh!(wing)
229+
refine!(wing)
230230
sections = wing.refined_sections
231231

232232
# Calculate expected quarter-chord points
@@ -284,7 +284,7 @@ end
284284
add_section!(wing, [0.0, 0.0, 0.0], [-1.0, 0.0, 0.0], LEI_AIRFOIL_BREUKELS, (2.0, 0.5))
285285
add_section!(wing, [0.0, -span/2, 0.0], [-1.0, -span/2, 0.0], LEI_AIRFOIL_BREUKELS, (4.0, 1.0))
286286

287-
refine_aerodynamic_mesh!(wing)
287+
refine!(wing)
288288
sections = wing.refined_sections
289289
@test length(sections) == wing.n_panels + 1
290290

@@ -316,7 +316,7 @@ end
316316
add_section!(wing, [0.0, -1.0, 0.0], [1.0, -1.0, 0.0], INVISCID)
317317
add_section!(wing, [0.0, -2.0, 0.0], [1.0, -2.0, 0.0], INVISCID)
318318

319-
refine_aerodynamic_mesh!(wing)
319+
refine!(wing)
320320
new_sections = wing.refined_sections
321321

322322
@test length(new_sections) - 1 == 6
@@ -346,7 +346,7 @@ end
346346
add_section!(wing, [0.0, 0.0, 0.0], [1.0, 0.0, 0.0], INVISCID)
347347
add_section!(wing, [0.0, -span/2, 0.0], [1.0, -span/2, 0.0], INVISCID)
348348

349-
refine_aerodynamic_mesh!(wing)
349+
refine!(wing)
350350

351351
@test length(wing.refined_panel_mapping) == n_panels
352352

@@ -391,7 +391,7 @@ end
391391
add_section!(wing, [0.0, -span/6, 0.0], [1.0, -span/6, 0.0], INVISCID)
392392
add_section!(wing, [0.0, -span/2, 0.0], [1.0, -span/2, 0.0], INVISCID)
393393

394-
refine_aerodynamic_mesh!(wing)
394+
refine!(wing)
395395

396396
@test length(wing.refined_panel_mapping) == n_panels
397397

@@ -435,7 +435,7 @@ end
435435
add_section!(wing, [0.0, -2.0, 0.0], [1.0, -2.0, 0.0], INVISCID)
436436
add_section!(wing, [0.0, -6.0, 0.0], [1.0, -6.0, 0.0], INVISCID)
437437

438-
refine_aerodynamic_mesh!(wing)
438+
refine!(wing)
439439

440440
@test length(wing.refined_panel_mapping) == n_panels
441441

0 commit comments

Comments
 (0)