Skip to content

Commit 64e1109

Browse files
apply discount vector to ITC when calculating LCOE/H/C
1 parent 3f73b52 commit 64e1109

File tree

3 files changed

+14
-9
lines changed

3 files changed

+14
-9
lines changed

src/geophires_x/Economics.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -479,7 +479,10 @@ def CalculateLCOELCOHLCOC(self, model: Model) -> tuple:
479479
NPVcap = np.sum((1 + self.inflrateconstruction.value) * self.CCap.value * CRF * discountvector)
480480
NPVfc = np.sum((1 + self.inflrateconstruction.value) * self.CCap.value * self.PTR.value * inflationvector * discountvector)
481481
NPVit = np.sum(self.CTR.value / (1 - self.CTR.value) * ((1 + self.inflrateconstruction.value) * self.CCap.value * CRF - self.CCap.value / model.surfaceplant.plant_lifetime.value) * discountvector)
482-
NPVitc = (1 + self.inflrateconstruction.value) * self.CCap.value * self.RITC.value / (1 - self.CTR.value)
482+
483+
npv_itc_discount_factor = discountvector[model.surfaceplant.construction_years.value]
484+
NPVitc = ((1 + self.inflrateconstruction.value) * self.CCap.value * self.RITC.value / (1 - self.CTR.value)
485+
* npv_itc_discount_factor)
483486

484487
if model.surfaceplant.enduse_option.value == EndUseOptions.ELECTRICITY:
485488
NPVoandm = np.sum(self.Coam.value * inflationvector * discountvector)
@@ -502,7 +505,8 @@ def CalculateLCOELCOHLCOC(self, model: Model) -> tuple:
502505
NPVcap_elec = np.sum((1 + self.inflrateconstruction.value) * CCap_elec * CRF * discountvector)
503506
NPVfc_elec = np.sum((1 + self.inflrateconstruction.value) * CCap_elec * self.PTR.value * inflationvector * discountvector)
504507
NPVit_elec = np.sum(self.CTR.value / (1 - self.CTR.value) * ((1 + self.inflrateconstruction.value) * CCap_elec * CRF - CCap_elec / model.surfaceplant.plant_lifetime.value) * discountvector)
505-
NPVitc_elec = (1 + self.inflrateconstruction.value) * CCap_elec * self.RITC.value / (1 - self.CTR.value)
508+
NPVitc_elec = ((1 + self.inflrateconstruction.value) * CCap_elec * self.RITC.value / (1 - self.CTR.value)
509+
* npv_itc_discount_factor)
506510
NPVoandm_elec = np.sum(Coam_elec * inflationvector * discountvector)
507511
NPVgrt_elec = self.GTR.value / (1 - self.GTR.value) * (NPVcap_elec + NPVoandm_elec + NPVfc_elec + NPVit_elec - NPVitc_elec)
508512

@@ -512,7 +516,8 @@ def CalculateLCOELCOHLCOC(self, model: Model) -> tuple:
512516
NPVcap_heat = np.sum((1 + self.inflrateconstruction.value) * CCap_heat * CRF * discountvector)
513517
NPVfc_heat = np.sum((1 + self.inflrateconstruction.value) * (self.CCap.value * (1.0 - self.CAPEX_heat_electricity_plant_ratio.value)) * self.PTR.value * inflationvector * discountvector)
514518
NPVit_heat = np.sum(self.CTR.value / (1 - self.CTR.value) * ((1 + self.inflrateconstruction.value) * CCap_heat * CRF - CCap_heat / model.surfaceplant.plant_lifetime.value) * discountvector)
515-
NPVitc_heat = (1 + self.inflrateconstruction.value) * CCap_heat * self.RITC.value / (1 - self.CTR.value)
519+
NPVitc_heat = ((1 + self.inflrateconstruction.value) * CCap_heat * self.RITC.value / (1 - self.CTR.value)
520+
* npv_itc_discount_factor)
516521
NPVoandm_heat = np.sum((self.Coam.value * (1.0 - self.CAPEX_heat_electricity_plant_ratio.value)) * inflationvector * discountvector)
517522
NPVgrt_heat = self.GTR.value / (1 - self.GTR.value) * (NPVcap_heat + NPVoandm_heat + NPVfc_heat + NPVit_heat - NPVitc_heat)
518523

tests/examples/Fervo_Project_Cape-3.out

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,14 @@ Simulation Metadata
66
----------------------
77
GEOPHIRES Version: 3.8.9
88
Simulation Date: 2025-04-02
9-
Simulation Time: 12:28
10-
Calculation Time: 0.853 sec
9+
Simulation Time: 12:41
10+
Calculation Time: 0.860 sec
1111

1212
***SUMMARY OF RESULTS***
1313

1414
End-Use Option: Electricity
1515
Average Net Electricity Production: 404.31 MW
16-
Electricity breakeven price: 3.59 cents/kWh
16+
Electricity breakeven price: 3.76 cents/kWh
1717
Number of production wells: 39
1818
Number of injection wells: 39
1919
Flowrate per production well: 120.0 kg/sec

tests/examples/example_ITC.out

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,14 @@ Simulation Metadata
66
----------------------
77
GEOPHIRES Version: 3.8.9
88
Simulation Date: 2025-04-02
9-
Simulation Time: 12:28
10-
Calculation Time: 0.783 sec
9+
Simulation Time: 12:41
10+
Calculation Time: 0.777 sec
1111

1212
***SUMMARY OF RESULTS***
1313

1414
End-Use Option: Electricity
1515
Average Net Electricity Production: 18.84 MW
16-
Electricity breakeven price: 4.44 cents/kWh
16+
Electricity breakeven price: 4.89 cents/kWh
1717
Number of production wells: 2
1818
Number of injection wells: 2
1919
Flowrate per production well: 55.0 kg/sec

0 commit comments

Comments
 (0)