Skip to content

Commit f2d8c44

Browse files
committed
Clean the reservoir module
1 parent a823875 commit f2d8c44

File tree

7 files changed

+36
-323
lines changed

7 files changed

+36
-323
lines changed
Lines changed: 33 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
1-
from pownet.core import ModelBuilder
2-
from .manager import ReservoirManager
1+
"""coupler.py: PowerWaterCoupler class to couple the power and water systems."""
32

4-
import gurobipy as gp
3+
from .core import ModelBuilder
4+
from .reservoir.manager import ReservoirManager
55

6-
from ..data_utils import get_unit_hour_from_varname
6+
import logging
7+
8+
logger = logging.getLogger(__name__)
79

810

911
class PowerWaterCoupler:
@@ -15,7 +17,21 @@ def __init__(
1517
mip_gap: float = 0.0001,
1618
timelimit: float = 600,
1719
log_to_console: bool = False,
18-
):
20+
) -> None:
21+
"""
22+
Coupler class to couple the power and water systems.
23+
24+
Args:
25+
model_builder (ModelBuilder): ModelBuilder object to build the power system model.
26+
reservoir_manager (ReservoirManager): ReservoirManager object to manage the water system.
27+
solver (str): Solver to use for optimization. Default is "gurobi".
28+
mip_gap (float): MIP gap for optimization. Default is 0.0001.
29+
timelimit (float): Time limit for optimization in seconds. Default is 600.
30+
log_to_console (bool): Whether to log to console. Default is False.
31+
32+
Returns:
33+
None
34+
"""
1935
self.model_builder = model_builder
2036
self.reservoir_manager = reservoir_manager
2137

@@ -38,7 +54,16 @@ def get_reop_iter(self):
3854
def reoperate(
3955
self,
4056
step_k: int,
41-
):
57+
) -> None:
58+
"""Reoperate the reservoirs based on the daily dispatch of the power system model.
59+
Note that we don't reoperate on the first day of the simulation period.
60+
61+
Args:
62+
step_k (int): Current step in the simulation.
63+
64+
Returns:
65+
None
66+
"""
4267

4368
# Assume optimization is rolling horizon of 24 hours
4469
days_in_step = range(step_k, step_k + self.num_days_in_step)
@@ -47,8 +72,6 @@ def reoperate(
4772
reop_k = 0
4873

4974
while not reop_converge:
50-
print(f"\nReservoirs reoperation iteration {reop_k}")
51-
5275
# --- PowNet returns the hydropower dispatch in hourly resolution across the simulation horizon
5376
hydropower_dispatch = {
5477
(unit, day): 0
@@ -94,11 +117,11 @@ def reoperate(
94117
for day in days_in_step
95118
):
96119
reop_converge = True
97-
print(
120+
logger.info(
98121
f"PowNet: Day {step_k+1} - Reservoirs converged at iteration {reop_k}"
99122
)
100123

101-
print("Max deviation:", max_deviation)
124+
logger.info("Max deviation:", max_deviation)
102125

103126
if reop_k > 50:
104127
raise ValueError(

src/pownet/reservoir/__init__.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
"""This is the reservoir module."""
22

33
from .reservoir import Reservoir
4-
from .basin import Basin
5-
from .reservoir_operator import ReservoirOperator
64
from .solve_release import (
75
solve_release_from_target_storage,
86
solve_release_from_dispatch,

src/pownet/reservoir/basin.py

Lines changed: 0 additions & 134 deletions
This file was deleted.

src/pownet/reservoir/manager.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import os
1+
"""manager.py: ReservoirManager class for managing reservoir operations and simulations."""
22

3-
import networkx as nx
3+
import os
44
import pandas as pd
55

66
from .reservoir import Reservoir

src/pownet/reservoir/reservoir_operator.py

Lines changed: 0 additions & 166 deletions
This file was deleted.

0 commit comments

Comments
 (0)