Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
downtime, wakes, etc.
- Adds the UWise comparison code and the updated configuration library `IEA_49/` to support the
analysis.
- Fixes a bug where floating offshore substation design and installation results cause the
the code to error out when extracting substation results in ORBIT.

## v0.7 - 12 January 2026

Expand Down
17 changes: 11 additions & 6 deletions waves/project.py
Original file line number Diff line number Diff line change
Expand Up @@ -508,10 +508,12 @@ def check_consistent_config(self) -> None:
num_substations = {}

if bool(self.orbit_config_dict):
orbit_num_substation = None
num_turbines["orbit"] = self.orbit_config_dict["plant"]["num_turbines"]
orbit_num_substation = self.orbit_config_dict.get("oss_design", {}).get(
"num_substations"
)
if (oss_design := self.orbit_config_dict.get("oss_design")) is not None:
orbit_num_substation = oss_design.get("num_substations")
elif (oss_design := self.orbit_config_dict.get("substation_design")) is not None:
orbit_num_substation = oss_design.get("num_substations")
if orbit_num_substation is not None:
num_substations["orbit"] = orbit_num_substation

Expand Down Expand Up @@ -1127,13 +1129,16 @@ def n_substations(self) -> int:
int
The number of substations in the project.
"""
if self.orbit_config is not None and "OffshoreSubstationDesign" not in self.orbit._phases:
return self.orbit_config_dict["oss_design"]["num_substations"]
if self.orbit_config is not None:
if "OffshoreSubstationDesign" in self.orbit._phases:
return self.orbit_config_dict["oss_design"]["num_substations"]
if "FloatingSubstationDesign" in self.orbit._phases:
return self.orbit_config_dict["substation_design"]["num_substations"]
elif self.landbosse_config is not None:
return 1
if self.wombat_config is not None:
return len(self.wombat.windfarm.substation_id)
raise RuntimeError("No models were provided, cannot calculate value.")
raise RuntimeError("No models with substations were provided, cannot calculate value.")

@validate_common_inputs(which=["units"])
def capacity(self, units: str = "mw") -> float:
Expand Down
Loading