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:
32143214 self .CarbonEscalationStart .value , self .CarbonEscalationRate .value ,
32153215 self .PTCCarbonPrice )
32163216
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+
32173239 def calculate_cashflow (self , model : Model ) -> None :
32183240 """
32193241 Calculate cashflow and cumulative cash flow
Original file line number Diff line number Diff line change @@ -481,24 +481,7 @@ def _ppa_pricing_model(
481481
482482
483483def _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 )
502485
503486
504487def _get_max_total_generation_kW (model : Model ) -> float :
You can’t perform that action at this time.
0 commit comments