From 269f0facd837c1b48affa7807617f7c02e2a3da7 Mon Sep 17 00:00:00 2001 From: ptrbortolotti Date: Wed, 25 Feb 2026 09:27:56 -0700 Subject: [PATCH] update to windIO 2.1.1, cut in and cut out in assembly block of geometry yaml --- examples/02_reference_turbines/IEA-10-198-RWT.yaml | 2 ++ examples/02_reference_turbines/IEA-15-240-RWT.yaml | 2 ++ examples/02_reference_turbines/IEA-22-280-RWT.yaml | 2 ++ examples/02_reference_turbines/IEA-3p4-130-RWT.yaml | 2 ++ examples/02_reference_turbines/nrel5mw.yaml | 2 ++ examples/03_blade/BAR_URC.yaml | 2 ++ examples/03_blade/BAR_USC.yaml | 2 ++ examples/05_tower_monopile/nrel5mw_monopile.yaml | 2 ++ examples/05_tower_monopile/nrel5mw_tower.yaml | 3 ++- examples/09_floating/IEA-15-240-RWT_VolturnUS-S.yaml | 2 ++ examples/09_floating/IEA-22-280-RWT_Floater.yaml | 2 ++ examples/09_floating/nrel5mw-semi_oc4.yaml | 2 ++ examples/09_floating/nrel5mw-spar_oc3.yaml | 2 ++ .../IEA-15-240-RWT_VolturnUS-S_user_elastic.yaml | 2 ++ examples/11_user_custom/nrel5mw-spar_oc3_user_mass.yaml | 2 ++ examples/17_jacket/nrel5mw_jacket.yaml | 2 ++ examples/18_rotor_tower_monopile/IEA15MW_scaled.yaml | 2 ++ wisdem/glue_code/gc_WT_InitModel.py | 9 +++++---- 18 files changed, 39 insertions(+), 5 deletions(-) diff --git a/examples/02_reference_turbines/IEA-10-198-RWT.yaml b/examples/02_reference_turbines/IEA-10-198-RWT.yaml index c18b96cc3..87cdc7360 100644 --- a/examples/02_reference_turbines/IEA-10-198-RWT.yaml +++ b/examples/02_reference_turbines/IEA-10-198-RWT.yaml @@ -9,6 +9,8 @@ assembly: hub_height: 119.0 rated_power: 10000000.0 rotor_diameter: 197.82692681 + cut_in_wind_speed: 3.0 + cut_out_wind_speed: 25.0 components: blade: reference_axis: diff --git a/examples/02_reference_turbines/IEA-15-240-RWT.yaml b/examples/02_reference_turbines/IEA-15-240-RWT.yaml index 7d1fe4700..772a8b8d6 100644 --- a/examples/02_reference_turbines/IEA-15-240-RWT.yaml +++ b/examples/02_reference_turbines/IEA-15-240-RWT.yaml @@ -10,6 +10,8 @@ assembly: rotor_diameter: 241.35064632 rated_power: 15000000.0 lifetime: 25.0 + cut_in_wind_speed: 3.0 + cut_out_wind_speed: 25.0 components: blade: reference_axis: diff --git a/examples/02_reference_turbines/IEA-22-280-RWT.yaml b/examples/02_reference_turbines/IEA-22-280-RWT.yaml index 417362fa3..489b6a050 100644 --- a/examples/02_reference_turbines/IEA-22-280-RWT.yaml +++ b/examples/02_reference_turbines/IEA-22-280-RWT.yaml @@ -10,6 +10,8 @@ assembly: rotor_diameter: 284.0 rated_power: 22000000.0 lifetime: 25.0 + cut_in_wind_speed: 3.0 + cut_out_wind_speed: 25.0 components: blade: reference_axis: diff --git a/examples/02_reference_turbines/IEA-3p4-130-RWT.yaml b/examples/02_reference_turbines/IEA-3p4-130-RWT.yaml index 9a85129bf..5ab403f8d 100644 --- a/examples/02_reference_turbines/IEA-3p4-130-RWT.yaml +++ b/examples/02_reference_turbines/IEA-3p4-130-RWT.yaml @@ -9,6 +9,8 @@ assembly: hub_height: 110.0 rotor_diameter: 129.82183952 rated_power: 3370000.0 + cut_in_wind_speed: 3.0 + cut_out_wind_speed: 25.0 components: blade: reference_axis: diff --git a/examples/02_reference_turbines/nrel5mw.yaml b/examples/02_reference_turbines/nrel5mw.yaml index 703420f9e..b262a824f 100644 --- a/examples/02_reference_turbines/nrel5mw.yaml +++ b/examples/02_reference_turbines/nrel5mw.yaml @@ -10,6 +10,8 @@ assembly: hub_height: 90.0 rotor_diameter: 125.88009368 rated_power: 5000000.0 + cut_in_wind_speed: 3.0 + cut_out_wind_speed: 25.0 components: blade: reference_axis: diff --git a/examples/03_blade/BAR_URC.yaml b/examples/03_blade/BAR_URC.yaml index 4410bc1a3..0f4e527ad 100644 --- a/examples/03_blade/BAR_URC.yaml +++ b/examples/03_blade/BAR_URC.yaml @@ -10,6 +10,8 @@ assembly: hub_height: 140.0 rated_power: 5000000.0 lifetime: 25.0 + cut_in_wind_speed: 4.0 + cut_out_wind_speed: 25.0 components: blade: reference_axis: diff --git a/examples/03_blade/BAR_USC.yaml b/examples/03_blade/BAR_USC.yaml index 1eb788168..e9275aefe 100644 --- a/examples/03_blade/BAR_USC.yaml +++ b/examples/03_blade/BAR_USC.yaml @@ -10,6 +10,8 @@ assembly: hub_height: 140.0 rated_power: 5000000.0 lifetime: 25.0 + cut_in_wind_speed: 4.0 + cut_out_wind_speed: 25.0 components: blade: reference_axis: diff --git a/examples/05_tower_monopile/nrel5mw_monopile.yaml b/examples/05_tower_monopile/nrel5mw_monopile.yaml index b322268ab..d4fef47f0 100644 --- a/examples/05_tower_monopile/nrel5mw_monopile.yaml +++ b/examples/05_tower_monopile/nrel5mw_monopile.yaml @@ -9,6 +9,8 @@ assembly: hub_height: 90.0 rotor_diameter: 126.0 rated_power: 5000000.0 + cut_in_wind_speed: 3.0 + cut_out_wind_speed: 25.0 components: tower: outer_shape: diff --git a/examples/05_tower_monopile/nrel5mw_tower.yaml b/examples/05_tower_monopile/nrel5mw_tower.yaml index b702451d6..f1bef9a4d 100644 --- a/examples/05_tower_monopile/nrel5mw_tower.yaml +++ b/examples/05_tower_monopile/nrel5mw_tower.yaml @@ -10,7 +10,8 @@ assembly: hub_height: 90. rotor_diameter: 126. rated_power: 5.e+6 - + cut_in_wind_speed: 3.0 + cut_out_wind_speed: 25.0 components: tower: outer_shape: diff --git a/examples/09_floating/IEA-15-240-RWT_VolturnUS-S.yaml b/examples/09_floating/IEA-15-240-RWT_VolturnUS-S.yaml index 8553075ba..42e3a2335 100644 --- a/examples/09_floating/IEA-15-240-RWT_VolturnUS-S.yaml +++ b/examples/09_floating/IEA-15-240-RWT_VolturnUS-S.yaml @@ -10,6 +10,8 @@ assembly: rotor_diameter: 241.35064632 rated_power: 15000000.0 lifetime: 25.0 + cut_in_wind_speed: 3.0 + cut_out_wind_speed: 25.0 components: blade: reference_axis: diff --git a/examples/09_floating/IEA-22-280-RWT_Floater.yaml b/examples/09_floating/IEA-22-280-RWT_Floater.yaml index f2aa62c20..4be41ad26 100644 --- a/examples/09_floating/IEA-22-280-RWT_Floater.yaml +++ b/examples/09_floating/IEA-22-280-RWT_Floater.yaml @@ -10,6 +10,8 @@ assembly: rotor_diameter: 284.0 rated_power: 22000000.0 lifetime: 25.0 + cut_in_wind_speed: 3.0 + cut_out_wind_speed: 25.0 components: blade: reference_axis: diff --git a/examples/09_floating/nrel5mw-semi_oc4.yaml b/examples/09_floating/nrel5mw-semi_oc4.yaml index 03520d450..69201fdff 100644 --- a/examples/09_floating/nrel5mw-semi_oc4.yaml +++ b/examples/09_floating/nrel5mw-semi_oc4.yaml @@ -10,6 +10,8 @@ assembly: hub_height: 90.0 rotor_diameter: 126.0 rated_power: 5000000.0 + cut_in_wind_speed: 3.0 + cut_out_wind_speed: 25.0 components: blade: reference_axis: diff --git a/examples/09_floating/nrel5mw-spar_oc3.yaml b/examples/09_floating/nrel5mw-spar_oc3.yaml index 7c0ce3937..c9617e907 100644 --- a/examples/09_floating/nrel5mw-spar_oc3.yaml +++ b/examples/09_floating/nrel5mw-spar_oc3.yaml @@ -10,6 +10,8 @@ assembly: hub_height: 90.0 rotor_diameter: 126.0 rated_power: 5000000.0 + cut_in_wind_speed: 3.0 + cut_out_wind_speed: 25.0 components: blade: reference_axis: diff --git a/examples/11_user_custom/IEA-15-240-RWT_VolturnUS-S_user_elastic.yaml b/examples/11_user_custom/IEA-15-240-RWT_VolturnUS-S_user_elastic.yaml index c97206383..7ac8b5e3e 100644 --- a/examples/11_user_custom/IEA-15-240-RWT_VolturnUS-S_user_elastic.yaml +++ b/examples/11_user_custom/IEA-15-240-RWT_VolturnUS-S_user_elastic.yaml @@ -10,6 +10,8 @@ assembly: rotor_diameter: 241.35064632 rated_power: 15000000.0 lifetime: 25.0 + cut_in_wind_speed: 3.0 + cut_out_wind_speed: 25.0 components: blade: reference_axis: diff --git a/examples/11_user_custom/nrel5mw-spar_oc3_user_mass.yaml b/examples/11_user_custom/nrel5mw-spar_oc3_user_mass.yaml index 84bf5a9b6..cf7307c82 100644 --- a/examples/11_user_custom/nrel5mw-spar_oc3_user_mass.yaml +++ b/examples/11_user_custom/nrel5mw-spar_oc3_user_mass.yaml @@ -10,6 +10,8 @@ assembly: hub_height: 90.0 rotor_diameter: 126.0 rated_power: 5000000.0 + cut_in_wind_speed: 3.0 + cut_out_wind_speed: 25.0 components: blade: reference_axis: diff --git a/examples/17_jacket/nrel5mw_jacket.yaml b/examples/17_jacket/nrel5mw_jacket.yaml index 72539bc1f..17474f47a 100644 --- a/examples/17_jacket/nrel5mw_jacket.yaml +++ b/examples/17_jacket/nrel5mw_jacket.yaml @@ -9,6 +9,8 @@ assembly: hub_height: 90.0 rotor_diameter: 126.0 rated_power: 5000000.0 + cut_in_wind_speed: 3.0 + cut_out_wind_speed: 25.0 components: tower: outer_shape: diff --git a/examples/18_rotor_tower_monopile/IEA15MW_scaled.yaml b/examples/18_rotor_tower_monopile/IEA15MW_scaled.yaml index b74d68177..065bec71c 100644 --- a/examples/18_rotor_tower_monopile/IEA15MW_scaled.yaml +++ b/examples/18_rotor_tower_monopile/IEA15MW_scaled.yaml @@ -10,6 +10,8 @@ assembly: rotor_diameter: 279.71 rated_power: 20000000.0 lifetime: 25.0 + cut_in_wind_speed: 3.0 + cut_out_wind_speed: 25.0 components: blade: reference_axis: diff --git a/wisdem/glue_code/gc_WT_InitModel.py b/wisdem/glue_code/gc_WT_InitModel.py index 6add8d086..c0ccf2ccc 100644 --- a/wisdem/glue_code/gc_WT_InitModel.py +++ b/wisdem/glue_code/gc_WT_InitModel.py @@ -47,7 +47,8 @@ def yaml2openmdao(wt_opt, modeling_options, wt_init, opt_options): if modeling_options["flags"]["control"]: control = wt_init["control"] - wt_opt = assign_control_values(wt_opt, modeling_options, control) + assembly = wt_init["assembly"] + wt_opt = assign_control_values(wt_opt, modeling_options, control, assembly) else: control = {} @@ -1427,10 +1428,10 @@ def assign_mooring_values(wt_opt, modeling_options, mooring): return wt_opt -def assign_control_values(wt_opt, modeling_options, control): +def assign_control_values(wt_opt, modeling_options, control, assembly): # Controller parameters - wt_opt["control.V_in"] = min(control["min_pitch_table"]["wind_speed"]) - wt_opt["control.V_out"] = max(control["min_pitch_table"]["wind_speed"]) + wt_opt["control.V_in"] = assembly["cut_in_wind_speed"] + wt_opt["control.V_out"] = assembly["cut_out_wind_speed"] wt_opt["control.minOmega"] = control["min_rotor_speed"] wt_opt["control.maxOmega"] = control["max_rotor_speed"] wt_opt["control.rated_TSR"] = control["optimal_tsr"]