@@ -49,6 +49,9 @@ def calculate_sam_economics(model: Model) -> dict[str, dict[str, Any]]:
49
49
if k != 'number_inputs' :
50
50
module .value (k , v )
51
51
52
+ for k , v in _get_utility_rate_parameters (model ).items ():
53
+ single_owner .value (k , v )
54
+
52
55
for k , v in _get_single_owner_parameters (model ).items ():
53
56
single_owner .value (k , v )
54
57
@@ -84,6 +87,16 @@ def calculate_sam_economics(model: Model) -> dict[str, dict[str, Any]]:
84
87
return ret
85
88
86
89
90
+ def _get_utility_rate_parameters (model : Model ) -> dict [str , Any ]:
91
+ econ = model .economics
92
+
93
+ ret : dict [str , Any ] = {}
94
+
95
+ ret ['inflation_rate' ] = econ .RINFL .quantity ().to (convertible_unit ('%' )).magnitude
96
+
97
+ return ret
98
+
99
+
87
100
def _get_single_owner_parameters (model : Model ) -> dict [str , Any ]:
88
101
econ = model .economics
89
102
@@ -95,8 +108,10 @@ def _get_single_owner_parameters(model: Model) -> dict[str, Any]:
95
108
96
109
opex_musd = econ .Coam .value
97
110
ret ['om_fixed' ] = [opex_musd * 1e6 ]
111
+ # GEOPHIRES assumes O&M fixed costs are not affected by inflation
112
+ ret ['om_fixed_escal' ] = - 1.0 * econ .RINFL .quantity ().to (convertible_unit ('%' )).magnitude
98
113
99
- # FIXME provide entire generation profile
114
+ # FIXME TODO provide entire generation profile
100
115
average_net_generation_MW = _get_average_net_generation_MW (model )
101
116
ret ['system_capacity' ] = average_net_generation_MW * 1e3
102
117
@@ -123,8 +138,6 @@ def _get_single_owner_parameters(model: Model) -> dict[str, Any]:
123
138
# Debt/equity ratio ('Fraction of Investment in Bonds' parameter)
124
139
ret ['debt_percent' ] = econ .FIB .quantity ().to (convertible_unit ('%' )).magnitude
125
140
126
- # TODO inflation (econ.RINFL.value)
127
-
128
141
# TODO interest rate
129
142
130
143
return ret
0 commit comments