diff --git a/README.md b/README.md index 3cfe145a..4180e26b 100644 --- a/README.md +++ b/README.md @@ -88,7 +88,7 @@ The components that achieve this can be assembled to either run a single top-dow A second example is in progress to reoptimize the layout of two offshore wind farms, one fixed bottom (OFB) and one floating (OFL). Both wind farms are made of the [22 MW reference wind turbine](https://github.com/IEAWindSystems/IEA-22-280-RWT). -In this example, BOS costs are estimated using the tool [Orbit](https://github.com/WISDEM/ORBIT). +In this example, BOS costs are estimated using the tool [ORBIT](https://github.com/WISDEM/ORBIT). ## Roadmap to future capabilities diff --git a/ard/cost/wisdem_wrap.py b/ard/cost/wisdem_wrap.py index d5d1b7e9..f2ee11b7 100644 --- a/ard/cost/wisdem_wrap.py +++ b/ard/cost/wisdem_wrap.py @@ -47,14 +47,14 @@ def compute(self, inputs, outputs, discrete_inputs=None, discrete_outputs=None): return super().compute(inputs, outputs, discrete_inputs, discrete_outputs) -class Orbit(Orbit_orig): +class ORBIT(Orbit_orig): """ - Wrapper for WISDEM's Orbit offshore BOS calculators. + Wrapper for WISDEM's ORBIT offshore BOS calculators. A thin wrapper of `wisdem.orbit.api.wisdem` that traps warning messages that are recognized not to be issues. - See: https://github.com/WISDEM/Orbit + See: https://github.com/WISDEM/ORBIT """ def setup(self): @@ -304,12 +304,12 @@ def LandBOSSE_setup_latents(prob, modeling_options): def ORBIT_setup_latents(prob, modeling_options): """ - A function to set up the Orbit latent variables using modeling options. + A function to set up the ORBIT latent variables using modeling options. Parameters ---------- prob : openmdao.api.Problem - an OpenMDAO problem for which we want to setup the Orbit latent + an OpenMDAO problem for which we want to setup the ORBIT latent variables modeling_options : dict a modeling options dictionary @@ -321,7 +321,7 @@ def ORBIT_setup_latents(prob, modeling_options): for v in prob.model.list_vars(val=False, out_stream=None) } - # set latent/non-design inputs to Orbit using values in modeling_options + # set latent/non-design inputs to ORBIT using values in modeling_options prob.set_val( comp2promotion_map["orbit.orbit.turbine_rating"], modeling_options["turbine"]["nameplate"]["power_rated"], diff --git a/ard/glue/prototype.py b/ard/glue/prototype.py index 9d12dd6c..4a63bfdf 100644 --- a/ard/glue/prototype.py +++ b/ard/glue/prototype.py @@ -143,9 +143,9 @@ def create_setup_OM_problem( ], ) if modeling_options["offshore"]: - model.add_subsystem( # Orbit component + model.add_subsystem( # ORBIT component "orbit", - cost_wisdem.Orbit(), + cost_wisdem.ORBIT(), ) model.connect( # effective primary spacing for BOS "spacing_effective_primary", "orbit.plant_turbine_spacing" diff --git a/examples/LCOE_stack/LCOE_OFL_demo.py b/examples/LCOE_stack/LCOE_OFL_demo.py index cabcf0d1..153f4304 100644 --- a/examples/LCOE_stack/LCOE_OFL_demo.py +++ b/examples/LCOE_stack/LCOE_OFL_demo.py @@ -48,7 +48,7 @@ if False: # set true to run one-shot analysis - # setup the latent variables for Orbit and FinanceSE + # setup the latent variables for ORBIT and FinanceSE cost_wisdem.ORBIT_setup_latents(prob, modeling_options) cost_wisdem.FinanceSE_setup_latents(prob, modeling_options) @@ -107,7 +107,7 @@ # setup the problem prob.setup() - # setup the latent variables for Orbit and FinanceSE + # setup the latent variables for ORBIT and FinanceSE cost_wisdem.ORBIT_setup_latents(prob, modeling_options) cost_wisdem.FinanceSE_setup_latents(prob, modeling_options) diff --git a/examples/data/turbine_spec_IEA-22-284-RWT.yaml b/examples/data/turbine_spec_IEA-22-284-RWT.yaml index 6bc92ea3..e3a05075 100644 --- a/examples/data/turbine_spec_IEA-22-284-RWT.yaml +++ b/examples/data/turbine_spec_IEA-22-284-RWT.yaml @@ -12,6 +12,7 @@ geometry: nameplate: power_rated: 22.0 # MW power_rated_aero: 22.86 # MW + windspeed_rated: 11.0 # m/s turbine_class: I # future-proofing turbulence_class: B # future-proofing drivetrain: direct-drive # future-proofing @@ -58,7 +59,7 @@ costs: construction_plan_cost: 250000.0 # $ installation_plan_cost: 1000000.0 # $ boem_review_cost: 0.0 # $ - + transition_piece_mass: 100. # (ton) transition_piece_cost: 0. # (USD) @@ -67,7 +68,7 @@ costs: monopile_cost: 4744119.28172591 # (USD) tcc_per_kW: 1397.17046735 # (USD/kW) opex_per_kW: 110. # (USD/kWh) - + # Floating configuration num_mooring_lines: 3 # (-) mooring_line_mass: 843225.1875 # (kg) diff --git a/examples/data/turbine_spec_IEA-3p4-130-RWT.yaml b/examples/data/turbine_spec_IEA-3p4-130-RWT.yaml index a60ea836..6608cdee 100644 --- a/examples/data/turbine_spec_IEA-3p4-130-RWT.yaml +++ b/examples/data/turbine_spec_IEA-3p4-130-RWT.yaml @@ -9,6 +9,7 @@ geometry: nameplate: power_rated: 3.37 # MW power_rated_aero: 3.62 # MW + windspeed_rated: 9.8 # m/s turbine_class: III # future-proofing turbulence_class: A # future-proofing drivetrain: geared # future-proofing diff --git a/examples/offshore/optimization_demo.py b/examples/offshore/optimization_demo.py index 476e65b9..3674ad2b 100644 --- a/examples/offshore/optimization_demo.py +++ b/examples/offshore/optimization_demo.py @@ -197,7 +197,7 @@ if modeling_options["offshore"]: model.add_subsystem( # Orbit component "orbit", - ard.cost.wisdem_wrap.Orbit(floating=True), + ard.cost.wisdem_wrap.ORBIT(floating=True), ) model.connect( # effective primary spacing for BOS "spacing_effective_primary", "orbit.plant_turbine_spacing" diff --git a/test/system/ard/LCOE_stack/test_LCOE_OFB_stack.py b/test/system/ard/LCOE_stack/test_LCOE_OFB_stack.py index 9156dac8..f4cee567 100644 --- a/test/system/ard/LCOE_stack/test_LCOE_OFB_stack.py +++ b/test/system/ard/LCOE_stack/test_LCOE_OFB_stack.py @@ -54,7 +54,7 @@ def setup_method(self): def test_model(self): - # setup the latent variables for Orbit and FinanceSE + # setup the latent variables for ORBIT and FinanceSE cost_wisdem.ORBIT_setup_latents(self.prob, self.modeling_options) cost_wisdem.FinanceSE_setup_latents(self.prob, self.modeling_options) diff --git a/test/system/ard/LCOE_stack/test_LCOE_OFL_stack.py b/test/system/ard/LCOE_stack/test_LCOE_OFL_stack.py index 3c1ab6dc..afc161a5 100644 --- a/test/system/ard/LCOE_stack/test_LCOE_OFL_stack.py +++ b/test/system/ard/LCOE_stack/test_LCOE_OFL_stack.py @@ -54,7 +54,7 @@ def setup_method(self): def test_model(self): - # setup the latent variables for Orbit and FinanceSE + # setup the latent variables for ORBIT and FinanceSE cost_wisdem.ORBIT_setup_latents(self.prob, self.modeling_options) cost_wisdem.FinanceSE_setup_latents(self.prob, self.modeling_options) diff --git a/test/unit/ard/cost/test_wisdem_wrap.py b/test/unit/ard/cost/test_wisdem_wrap.py index c91a32f9..bfefe956 100644 --- a/test/unit/ard/cost/test_wisdem_wrap.py +++ b/test/unit/ard/cost/test_wisdem_wrap.py @@ -83,7 +83,7 @@ def test_baseline_farm(self): ) -class TestOrbit: +class TestORBIT: def setup_method(self): @@ -118,7 +118,7 @@ def setup_method(self): ) self.orbit = self.model.add_subsystem( "orbit", - wcost.Orbit(), + wcost.ORBIT(), ) self.model.connect( # effective primary spacing for BOS "spacing_effective_primary", "orbit.plant_turbine_spacing" @@ -130,7 +130,7 @@ def setup_method(self): self.prob = om.Problem(self.model) self.prob.setup() - # setup the latent variables for Orbit and FinanceSE + # setup the latent variables for ORBIT and FinanceSE wcost.ORBIT_setup_latents(self.prob, self.modeling_options) # wcost.FinanceSE_setup_latents(self.prob, self.modeling_options)