Skip to content

Commit 97203de

Browse files
Internally distinguish between SAM econ royalty cost time series and main econ average annual value
1 parent ef7ac09 commit 97203de

File tree

4 files changed

+19
-11
lines changed

4 files changed

+19
-11
lines changed

src/geophires_x/Economics.py

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
from geophires_x.EconomicsUtils import BuildPricingModel, wacc_output_parameter, nominal_discount_rate_parameter, \
1414
real_discount_rate_parameter, after_tax_irr_parameter, moic_parameter, project_vir_parameter, \
1515
project_payback_period_parameter, inflation_cost_during_construction_output_parameter, \
16-
total_capex_parameter_output_parameter, royalties_opex_parameter_output_parameter
16+
total_capex_parameter_output_parameter
1717
from geophires_x.GeoPHIRESUtils import quantity
1818
from geophires_x.OptionList import Configuration, WellDrillingCostCorrelation, EconomicModel, EndUseOptions, PlantType, \
1919
_WellDrillingCostCorrelationCitation
@@ -1906,7 +1906,15 @@ def __init__(self, model: Model):
19061906
PreferredUnits=CurrencyFrequencyUnit.MDOLLARSPERYEAR,
19071907
CurrentUnits=CurrencyFrequencyUnit.MDOLLARSPERYEAR
19081908
)
1909-
self.royalties_opex = self.OutputParameterDict[self.royalties_opex.Name] = royalties_opex_parameter_output_parameter()
1909+
self.royalties_average_annual_cost = self.OutputParameterDict[self.royalties_average_annual_cost.Name] = OutputParameter(
1910+
Name='Average Annual Royalty Cost',
1911+
UnitType=Units.CURRENCYFREQUENCY,
1912+
PreferredUnits=CurrencyFrequencyUnit.MDOLLARSPERYEAR,
1913+
CurrentUnits=CurrencyFrequencyUnit.MDOLLARSPERYEAR,
1914+
ToolTipText='The average annual cost paid to a royalty holder, calculated as a percentage of the '
1915+
'project\'s gross annual revenue. This is modeled as a variable operating expense.'
1916+
)
1917+
19101918

19111919
# district heating
19121920
self.peakingboilercost = self.OutputParameterDict[self.peakingboilercost.Name] = OutputParameter(
@@ -2511,8 +2519,8 @@ def Calculate(self, model: Model) -> None:
25112519
self.sam_economics_calculations.royalties_opex.value[1:] # ignore pre-revenue year(s) (Year 0)
25122520
)
25132521
if average_annual_royalties > 0:
2514-
self.royalties_opex.value = average_annual_royalties
2515-
self.Coam.value += self.royalties_opex.quantity().to(self.Coam.CurrentUnits.value).magnitude
2522+
self.royalties_average_annual_cost.value = average_annual_royalties
2523+
self.Coam.value += self.royalties_average_annual_cost.quantity().to(self.Coam.CurrentUnits.value).magnitude
25162524

25172525
self.wacc.value = self.sam_economics_calculations.wacc.value
25182526
self.nominal_discount_rate.value = self.sam_economics_calculations.nominal_discount_rate.value

src/geophires_x/EconomicsSam.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
project_payback_period_parameter,
4040
inflation_cost_during_construction_output_parameter,
4141
total_capex_parameter_output_parameter,
42-
royalties_opex_parameter_output_parameter,
42+
royalty_cost_output_parameter,
4343
)
4444
from geophires_x.GeoPHIRESUtils import is_float, is_int, sig_figs, quantity
4545
from geophires_x.OptionList import EconomicModel, EndUseOptions
@@ -60,7 +60,7 @@ class SamEconomicsCalculations:
6060

6161
capex: OutputParameter = field(default_factory=total_capex_parameter_output_parameter)
6262

63-
royalties_opex: OutputParameter = field(default_factory=royalties_opex_parameter_output_parameter)
63+
royalties_opex: OutputParameter = field(default_factory=royalty_cost_output_parameter)
6464

6565
project_npv: OutputParameter = field(
6666
default_factory=lambda: OutputParameter(

src/geophires_x/EconomicsUtils.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -146,12 +146,12 @@ def total_capex_parameter_output_parameter() -> OutputParameter:
146146
)
147147

148148

149-
def royalties_opex_parameter_output_parameter() -> OutputParameter:
149+
def royalty_cost_output_parameter() -> OutputParameter:
150150
return OutputParameter(
151-
Name='Average Annual Royalty Cost',
151+
Name='Royalty Cost',
152152
UnitType=Units.CURRENCYFREQUENCY,
153153
PreferredUnits=CurrencyFrequencyUnit.MDOLLARSPERYEAR,
154154
CurrentUnits=CurrencyFrequencyUnit.MDOLLARSPERYEAR,
155-
ToolTipText='The average annual cost paid to a royalty holder, calculated as a percentage of the '
155+
ToolTipText='The annual costs paid to a royalty holder, calculated as a percentage of the '
156156
'project\'s gross annual revenue. This is modeled as a variable operating expense.'
157157
)

src/geophires_x/Outputs.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -556,8 +556,8 @@ def PrintOutputs(self, model: Model):
556556
f.write(f' {aoc_label}{model.addeconomics.AddOnOPEXTotalPerYear.value:10.2f} {model.addeconomics.AddOnOPEXTotalPerYear.CurrentUnits.value}\n')
557557

558558
if econ.royalty_rate.value > 0.0:
559-
royalties_label = Outputs._field_label(econ.royalties_opex.display_name, 47)
560-
f.write(f' {royalties_label}{econ.royalties_opex.value:10.2f} {econ.royalties_opex.CurrentUnits.value}\n')
559+
royalties_label = Outputs._field_label(econ.royalties_average_annual_cost.display_name, 47)
560+
f.write(f' {royalties_label}{econ.royalties_average_annual_cost.value:10.2f} {econ.royalties_average_annual_cost.CurrentUnits.value}\n')
561561

562562
f.write(f' {econ.Coam.display_name}: {(econ.Coam.value + econ.averageannualpumpingcosts.value + econ.averageannualheatpumpelectricitycost.value):10.2f} {econ.Coam.CurrentUnits.value}\n')
563563
else:

0 commit comments

Comments
 (0)