File tree Expand file tree Collapse file tree 2 files changed +23
-18
lines changed Expand file tree Collapse file tree 2 files changed +23
-18
lines changed Original file line number Diff line number Diff line change @@ -3214,6 +3214,28 @@ def build_price_models(self, model: Model) -> None:
3214
3214
self .CarbonEscalationStart .value , self .CarbonEscalationRate .value ,
3215
3215
self .PTCCarbonPrice )
3216
3216
3217
+ def get_royalty_rate_schedule (self , model : Model ) -> list [float ]:
3218
+ """
3219
+ Builds a year-by-year schedule of royalty rates based on escalation and cap.
3220
+
3221
+ :type model: :class:`~geophires_x.Model.Model`
3222
+ :return: schedule: A list of rates as fractions (e.g., 0.05 for 5%).
3223
+ """
3224
+
3225
+ plant_lifetime = model .surfaceplant .plant_lifetime .value
3226
+
3227
+ escalation_rate = self .royalty_escalation_rate .value
3228
+ max_rate = self .maximum_royalty_rate .value
3229
+
3230
+ schedule = []
3231
+ current_rate = self .royalty_rate .value
3232
+ for _ in range (plant_lifetime ):
3233
+ schedule .append (min (current_rate , max_rate ))
3234
+ current_rate += escalation_rate
3235
+
3236
+ return schedule
3237
+
3238
+
3217
3239
def calculate_cashflow (self , model : Model ) -> None :
3218
3240
"""
3219
3241
Calculate cashflow and cumulative cash flow
Original file line number Diff line number Diff line change @@ -481,24 +481,7 @@ def _ppa_pricing_model(
481
481
482
482
483
483
def _get_royalty_rate_schedule (model : Model ) -> list [float ]:
484
- """
485
- Builds a year-by-year schedule of royalty rates based on escalation and cap.
486
- Returns a list of rates as fractions (e.g., 0.05 for 5%).
487
- """
488
-
489
- econ = model .economics
490
- plant_lifetime = model .surfaceplant .plant_lifetime .value
491
-
492
- escalation_rate = econ .royalty_escalation_rate .value
493
- max_rate = econ .maximum_royalty_rate .value
494
-
495
- schedule = []
496
- current_rate = econ .royalty_rate .value
497
- for _ in range (plant_lifetime ):
498
- schedule .append (min (current_rate , max_rate ))
499
- current_rate += escalation_rate
500
-
501
- return schedule
484
+ return model .economics .get_royalty_rate_schedule (model )
502
485
503
486
504
487
def _get_max_total_generation_kW (model : Model ) -> float :
You can’t perform that action at this time.
0 commit comments