Skip to content

Commit c92a70b

Browse files
committed
Calc n_panesl and n_groups of Solver automatically
1 parent 9bdc27a commit c92a70b

File tree

2 files changed

+16
-15
lines changed

2 files changed

+16
-15
lines changed

data/vsm_settings_dual.yaml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,6 @@ wings:
2525
spanwise_direction: [0.0, 1.1, 0.0]
2626
remove_nan: false
2727
solver_settings:
28-
n_panels: 40
29-
n_groups: 40
3028
aerodynamic_model_type: VSM
3129
density: 1.225 # air density [kg/m³]
3230
max_iterations: 1500

src/settings.jl

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,24 @@ end
3333
function vs(filename)
3434
res = VSMSettings()
3535
data = YAML.load_file(joinpath("data", filename))
36+
n_panels = 0
37+
n_groups = 0
38+
# add and update wing settings
39+
for (i, wing) in pairs(data["wings"])
40+
push!(res.wings, WingSettings())
41+
res.wings[i].name = wing["name"]
42+
res.wings[i].n_panels = wing["n_panels"]
43+
n_panels += res.wings[i].n_panels
44+
res.wings[i].n_groups = wing["n_groups"]
45+
n_groups += res.wings[i].n_groups
46+
res.wings[i].spanwise_panel_distribution = eval(Symbol(wing["spanwise_panel_distribution"]))
47+
res.wings[i].spanwise_direction = MVec3(wing["spanwise_direction"])
48+
res.wings[i].remove_nan = wing["remove_nan"]
49+
end
3650
# update solver settings
3751
solver = data["solver_settings"]
38-
res.solver_settings.n_panels = solver["n_panels"]
39-
res.solver_settings.n_groups = solver["n_groups"]
52+
res.solver_settings.n_panels = n_panels
53+
res.solver_settings.n_groups = n_groups
4054
res.solver_settings.aerodynamic_model_type = eval(Symbol(solver["aerodynamic_model_type"]))
4155
res.solver_settings.density = solver["density"]
4256
res.solver_settings.max_iterations = solver["max_iterations"]
@@ -50,17 +64,6 @@ function vs(filename)
5064
res.solver_settings.core_radius_fraction = solver["core_radius_fraction"]
5165
res.solver_settings.mu = solver["mu"]
5266
res.solver_settings.calc_only_f_and_gamma = solver["calc_only_f_and_gamma"]
53-
54-
# add and update wing settings
55-
for (i, wing) in pairs(data["wings"])
56-
push!(res.wings, WingSettings())
57-
res.wings[i].name = wing["name"]
58-
res.wings[i].n_panels = wing["n_panels"]
59-
res.wings[i].n_groups = wing["n_groups"]
60-
res.wings[i].spanwise_panel_distribution = eval(Symbol(wing["spanwise_panel_distribution"]))
61-
res.wings[i].spanwise_direction = MVec3(wing["spanwise_direction"])
62-
res.wings[i].remove_nan = wing["remove_nan"]
63-
end
6467
res
6568
end
6669

0 commit comments

Comments
 (0)