|
6 | 6 | from geophires_x import EconomicsSam |
7 | 7 | from geophires_x.EconomicsSam import calculate_sam_economics, SamEconomicsCalculations |
8 | 8 | from geophires_x.EconomicsUtils import BuildPricingModel, wacc_output_parameter, nominal_discount_rate_parameter, \ |
9 | | - real_discount_rate_parameter, after_tax_irr_parameter, moic_parameter, project_vir_parameter |
| 9 | + real_discount_rate_parameter, after_tax_irr_parameter, moic_parameter, project_vir_parameter, \ |
| 10 | + project_payback_period_parameter |
10 | 11 | from geophires_x.OptionList import Configuration, WellDrillingCostCorrelation, EconomicModel, EndUseOptions, PlantType, \ |
11 | 12 | _WellDrillingCostCorrelationCitation |
12 | 13 | from geophires_x.Parameter import intParameter, floatParameter, OutputParameter, ReadParameter, boolParameter, \ |
@@ -1841,12 +1842,8 @@ def __init__(self, model: Model): |
1841 | 1842 | ) |
1842 | 1843 | self.ProjectVIR = self.OutputParameterDict[self.ProjectVIR.Name] = project_vir_parameter() |
1843 | 1844 | self.ProjectMOIC = self.OutputParameterDict[self.ProjectMOIC.Name] = moic_parameter() |
1844 | | - self.ProjectPaybackPeriod = self.OutputParameterDict[self.ProjectPaybackPeriod.Name] = OutputParameter( |
1845 | | - "Project Payback Period", |
1846 | | - UnitType=Units.TIME, |
1847 | | - PreferredUnits=TimeUnit.YEAR, |
1848 | | - CurrentUnits=TimeUnit.YEAR |
1849 | | - ) |
| 1845 | + self.ProjectPaybackPeriod = self.OutputParameterDict[self.ProjectPaybackPeriod.Name] = ( |
| 1846 | + project_payback_period_parameter()) |
1850 | 1847 | self.RITCValue = self.OutputParameterDict[self.RITCValue.Name] = OutputParameter( |
1851 | 1848 | Name="Investment Tax Credit Value", |
1852 | 1849 | display_name='Investment Tax Credit', |
@@ -2794,12 +2791,10 @@ def Calculate(self, model: Model) -> None: |
2794 | 2791 |
|
2795 | 2792 | self.ProjectMOIC.value = self.sam_economics_calculations.moic.value |
2796 | 2793 | self.ProjectVIR.value = self.sam_economics_calculations.project_vir.value |
| 2794 | + self.ProjectPaybackPeriod.value = self.sam_economics_calculations.project_payback_period.value |
2797 | 2795 |
|
2798 | 2796 | # Calculate the project payback period |
2799 | | - if self.econmodel.value == EconomicModel.SAM_SINGLE_OWNER_PPA: |
2800 | | - # TODO TODO SAM economic models Payback period https://github.com/NREL/GEOPHIRES-X/issues/390 |
2801 | | - self.ProjectPaybackPeriod.value = non_calculated_output_placeholder_val |
2802 | | - else: |
| 2797 | + if self.econmodel.value != EconomicModel.SAM_SINGLE_OWNER_PPA: |
2803 | 2798 | self.ProjectPaybackPeriod.value = 0.0 # start by assuming the project never pays back |
2804 | 2799 | for i in range(0, len(self.TotalCummRevenue.value), 1): |
2805 | 2800 | # find out when the cumm cashflow goes from negative to positive |
|
0 commit comments