diff --git a/api/api_autogen/library/defaults/Cashloan_WindPowerCommercial.json b/api/api_autogen/library/defaults/Cashloan_WindPowerCommercial.json index b6310b9ce..f3a72520f 100644 --- a/api/api_autogen/library/defaults/Cashloan_WindPowerCommercial.json +++ b/api/api_autogen/library/defaults/Cashloan_WindPowerCommercial.json @@ -175,7 +175,7 @@ "gen": [0] }, "Lifetime": { - "system_use_lifetime_output": 0 + "system_use_lifetime_output": 1 }, "LCOS": { "batt_salvage_percentage": 0 diff --git a/api/api_autogen/library/defaults/Cashloan_WindPowerResidential.json b/api/api_autogen/library/defaults/Cashloan_WindPowerResidential.json index de17d0acf..eec6e9e5b 100644 --- a/api/api_autogen/library/defaults/Cashloan_WindPowerResidential.json +++ b/api/api_autogen/library/defaults/Cashloan_WindPowerResidential.json @@ -171,7 +171,7 @@ "gen": [0] }, "Lifetime": { - "system_use_lifetime_output": 0 + "system_use_lifetime_output": 1 }, "LCOS": { "batt_salvage_percentage": 0 diff --git a/api/api_autogen/library/defaults/Equpartflip_WindPowerAllEquityPartnershipFlip.json b/api/api_autogen/library/defaults/Equpartflip_WindPowerAllEquityPartnershipFlip.json index 4e241215f..bcb2df725 100644 --- a/api/api_autogen/library/defaults/Equpartflip_WindPowerAllEquityPartnershipFlip.json +++ b/api/api_autogen/library/defaults/Equpartflip_WindPowerAllEquityPartnershipFlip.json @@ -237,7 +237,7 @@ "Recapitalization": { }, "TimeOfDelivery": { - "system_use_lifetime_output": 0 + "system_use_lifetime_output": 1 }, "UtilityBill": { }, diff --git a/api/api_autogen/library/defaults/Grid_WindPowerAllEquityPartnershipFlip.json b/api/api_autogen/library/defaults/Grid_WindPowerAllEquityPartnershipFlip.json index 68472cc21..903c8fbc7 100644 --- a/api/api_autogen/library/defaults/Grid_WindPowerAllEquityPartnershipFlip.json +++ b/api/api_autogen/library/defaults/Grid_WindPowerAllEquityPartnershipFlip.json @@ -2,7 +2,7 @@ "defaults": { "Lifetime": { "analysis_period": 25, - "system_use_lifetime_output": 0 + "system_use_lifetime_output": 1 }, "SystemOutput": { }, diff --git a/api/api_autogen/library/defaults/Grid_WindPowerCommercial.json b/api/api_autogen/library/defaults/Grid_WindPowerCommercial.json index 610ff0ee1..f21e44438 100644 --- a/api/api_autogen/library/defaults/Grid_WindPowerCommercial.json +++ b/api/api_autogen/library/defaults/Grid_WindPowerCommercial.json @@ -2,7 +2,7 @@ "defaults": { "Lifetime": { "analysis_period": 25, - "system_use_lifetime_output": 0 + "system_use_lifetime_output": 1 }, "SystemOutput": { }, diff --git a/api/api_autogen/library/defaults/Grid_WindPowerLeveragedPartnershipFlip.json b/api/api_autogen/library/defaults/Grid_WindPowerLeveragedPartnershipFlip.json index 68472cc21..903c8fbc7 100644 --- a/api/api_autogen/library/defaults/Grid_WindPowerLeveragedPartnershipFlip.json +++ b/api/api_autogen/library/defaults/Grid_WindPowerLeveragedPartnershipFlip.json @@ -2,7 +2,7 @@ "defaults": { "Lifetime": { "analysis_period": 25, - "system_use_lifetime_output": 0 + "system_use_lifetime_output": 1 }, "SystemOutput": { }, diff --git a/api/api_autogen/library/defaults/Grid_WindPowerMerchantPlant.json b/api/api_autogen/library/defaults/Grid_WindPowerMerchantPlant.json index 68472cc21..903c8fbc7 100644 --- a/api/api_autogen/library/defaults/Grid_WindPowerMerchantPlant.json +++ b/api/api_autogen/library/defaults/Grid_WindPowerMerchantPlant.json @@ -2,7 +2,7 @@ "defaults": { "Lifetime": { "analysis_period": 25, - "system_use_lifetime_output": 0 + "system_use_lifetime_output": 1 }, "SystemOutput": { }, diff --git a/api/api_autogen/library/defaults/Grid_WindPowerResidential.json b/api/api_autogen/library/defaults/Grid_WindPowerResidential.json index 6f8b747f3..a9c634337 100644 --- a/api/api_autogen/library/defaults/Grid_WindPowerResidential.json +++ b/api/api_autogen/library/defaults/Grid_WindPowerResidential.json @@ -2,7 +2,7 @@ "defaults": { "Lifetime": { "analysis_period": 25, - "system_use_lifetime_output": 0 + "system_use_lifetime_output": 1 }, "SystemOutput": { }, diff --git a/api/api_autogen/library/defaults/Grid_WindPowerSaleLeaseback.json b/api/api_autogen/library/defaults/Grid_WindPowerSaleLeaseback.json index 68472cc21..903c8fbc7 100644 --- a/api/api_autogen/library/defaults/Grid_WindPowerSaleLeaseback.json +++ b/api/api_autogen/library/defaults/Grid_WindPowerSaleLeaseback.json @@ -2,7 +2,7 @@ "defaults": { "Lifetime": { "analysis_period": 25, - "system_use_lifetime_output": 0 + "system_use_lifetime_output": 1 }, "SystemOutput": { }, diff --git a/api/api_autogen/library/defaults/Grid_WindPowerSingleOwner.json b/api/api_autogen/library/defaults/Grid_WindPowerSingleOwner.json index 68472cc21..903c8fbc7 100644 --- a/api/api_autogen/library/defaults/Grid_WindPowerSingleOwner.json +++ b/api/api_autogen/library/defaults/Grid_WindPowerSingleOwner.json @@ -2,7 +2,7 @@ "defaults": { "Lifetime": { "analysis_period": 25, - "system_use_lifetime_output": 0 + "system_use_lifetime_output": 1 }, "SystemOutput": { }, diff --git a/api/api_autogen/library/defaults/Levpartflip_WindPowerLeveragedPartnershipFlip.json b/api/api_autogen/library/defaults/Levpartflip_WindPowerLeveragedPartnershipFlip.json index 62d2c7498..f6404e2a7 100644 --- a/api/api_autogen/library/defaults/Levpartflip_WindPowerLeveragedPartnershipFlip.json +++ b/api/api_autogen/library/defaults/Levpartflip_WindPowerLeveragedPartnershipFlip.json @@ -260,7 +260,7 @@ "Recapitalization": { }, "TimeOfDelivery": { - "system_use_lifetime_output": 0 + "system_use_lifetime_output": 1 }, "UtilityBill": { }, diff --git a/api/api_autogen/library/defaults/Merchantplant_WindPowerMerchantPlant.json b/api/api_autogen/library/defaults/Merchantplant_WindPowerMerchantPlant.json index 810d78c64..8129a3cec 100644 --- a/api/api_autogen/library/defaults/Merchantplant_WindPowerMerchantPlant.json +++ b/api/api_autogen/library/defaults/Merchantplant_WindPowerMerchantPlant.json @@ -219268,7 +219268,7 @@ "UtilityBill": { }, "Lifetime": { - "system_use_lifetime_output": 0 + "system_use_lifetime_output": 1 }, "FuelCell": { }, diff --git a/api/api_autogen/library/defaults/Saleleaseback_WindPowerSaleLeaseback.json b/api/api_autogen/library/defaults/Saleleaseback_WindPowerSaleLeaseback.json index 008c3e254..c4307ae4f 100644 --- a/api/api_autogen/library/defaults/Saleleaseback_WindPowerSaleLeaseback.json +++ b/api/api_autogen/library/defaults/Saleleaseback_WindPowerSaleLeaseback.json @@ -241,7 +241,7 @@ "salvage_percentage": 0, "sponsor_operating_margin": 20, "sponsor_operating_margin_escalation": 2, - "system_use_lifetime_output": 0, + "system_use_lifetime_output": 1, "tax_investor_required_lease_reserve": 6, "total_installed_cost": 3.1748e+08 }, diff --git a/api/api_autogen/library/defaults/Singleowner_WindPowerSingleOwner.json b/api/api_autogen/library/defaults/Singleowner_WindPowerSingleOwner.json index 2080bab9f..53420d03d 100644 --- a/api/api_autogen/library/defaults/Singleowner_WindPowerSingleOwner.json +++ b/api/api_autogen/library/defaults/Singleowner_WindPowerSingleOwner.json @@ -373,7 +373,7 @@ }, "Lifetime": { "inflation_rate": 2.5, - "system_use_lifetime_output": 0 + "system_use_lifetime_output": 1 }, "FuelCell": { }, diff --git a/api/api_autogen/library/defaults/Utilityrate5_WindPowerAllEquityPartnershipFlip.json b/api/api_autogen/library/defaults/Utilityrate5_WindPowerAllEquityPartnershipFlip.json index 5707055e0..3dd734119 100644 --- a/api/api_autogen/library/defaults/Utilityrate5_WindPowerAllEquityPartnershipFlip.json +++ b/api/api_autogen/library/defaults/Utilityrate5_WindPowerAllEquityPartnershipFlip.json @@ -3,7 +3,7 @@ "Lifetime": { "analysis_period": 25, "inflation_rate": 2.5, - "system_use_lifetime_output": 0 + "system_use_lifetime_output": 1 }, "ElectricityRates": { "en_electricity_rates": 0, diff --git a/api/api_autogen/library/defaults/Utilityrate5_WindPowerCommercial.json b/api/api_autogen/library/defaults/Utilityrate5_WindPowerCommercial.json index d5e88a68c..d50bae13e 100644 --- a/api/api_autogen/library/defaults/Utilityrate5_WindPowerCommercial.json +++ b/api/api_autogen/library/defaults/Utilityrate5_WindPowerCommercial.json @@ -3,7 +3,7 @@ "Lifetime": { "analysis_period": 25, "inflation_rate": 2.5, - "system_use_lifetime_output": 0 + "system_use_lifetime_output": 1 }, "ElectricityRates": { "rate_escalation": [0.000000], diff --git a/api/api_autogen/library/defaults/Utilityrate5_WindPowerLeveragedPartnershipFlip.json b/api/api_autogen/library/defaults/Utilityrate5_WindPowerLeveragedPartnershipFlip.json index 5707055e0..3dd734119 100644 --- a/api/api_autogen/library/defaults/Utilityrate5_WindPowerLeveragedPartnershipFlip.json +++ b/api/api_autogen/library/defaults/Utilityrate5_WindPowerLeveragedPartnershipFlip.json @@ -3,7 +3,7 @@ "Lifetime": { "analysis_period": 25, "inflation_rate": 2.5, - "system_use_lifetime_output": 0 + "system_use_lifetime_output": 1 }, "ElectricityRates": { "en_electricity_rates": 0, diff --git a/api/api_autogen/library/defaults/Utilityrate5_WindPowerMerchantPlant.json b/api/api_autogen/library/defaults/Utilityrate5_WindPowerMerchantPlant.json index 1bace8f5c..8f483d62a 100644 --- a/api/api_autogen/library/defaults/Utilityrate5_WindPowerMerchantPlant.json +++ b/api/api_autogen/library/defaults/Utilityrate5_WindPowerMerchantPlant.json @@ -3,7 +3,7 @@ "Lifetime": { "analysis_period": 25, "inflation_rate": 2.5, - "system_use_lifetime_output": 0 + "system_use_lifetime_output": 1 }, "ElectricityRates": { "en_electricity_rates": 0, diff --git a/api/api_autogen/library/defaults/Utilityrate5_WindPowerResidential.json b/api/api_autogen/library/defaults/Utilityrate5_WindPowerResidential.json index 721fc5192..df1725e72 100644 --- a/api/api_autogen/library/defaults/Utilityrate5_WindPowerResidential.json +++ b/api/api_autogen/library/defaults/Utilityrate5_WindPowerResidential.json @@ -3,7 +3,7 @@ "Lifetime": { "analysis_period": 25, "inflation_rate": 2.5, - "system_use_lifetime_output": 0 + "system_use_lifetime_output": 1 }, "ElectricityRates": { "rate_escalation": [0.000000], diff --git a/api/api_autogen/library/defaults/Utilityrate5_WindPowerSaleLeaseback.json b/api/api_autogen/library/defaults/Utilityrate5_WindPowerSaleLeaseback.json index 5707055e0..3dd734119 100644 --- a/api/api_autogen/library/defaults/Utilityrate5_WindPowerSaleLeaseback.json +++ b/api/api_autogen/library/defaults/Utilityrate5_WindPowerSaleLeaseback.json @@ -3,7 +3,7 @@ "Lifetime": { "analysis_period": 25, "inflation_rate": 2.5, - "system_use_lifetime_output": 0 + "system_use_lifetime_output": 1 }, "ElectricityRates": { "en_electricity_rates": 0, diff --git a/api/api_autogen/library/defaults/Utilityrate5_WindPowerSingleOwner.json b/api/api_autogen/library/defaults/Utilityrate5_WindPowerSingleOwner.json index 1bace8f5c..8f483d62a 100644 --- a/api/api_autogen/library/defaults/Utilityrate5_WindPowerSingleOwner.json +++ b/api/api_autogen/library/defaults/Utilityrate5_WindPowerSingleOwner.json @@ -3,7 +3,7 @@ "Lifetime": { "analysis_period": 25, "inflation_rate": 2.5, - "system_use_lifetime_output": 0 + "system_use_lifetime_output": 1 }, "ElectricityRates": { "en_electricity_rates": 0, diff --git a/api/api_autogen/library/defaults/Windpower_CustomGenerationPVWattsWindFuelCellBatteryHybridHostDeveloper.json b/api/api_autogen/library/defaults/Windpower_CustomGenerationPVWattsWindFuelCellBatteryHybridHostDeveloper.json index 728ea8f8b..4a17e3791 100644 --- a/api/api_autogen/library/defaults/Windpower_CustomGenerationPVWattsWindFuelCellBatteryHybridHostDeveloper.json +++ b/api/api_autogen/library/defaults/Windpower_CustomGenerationPVWattsWindFuelCellBatteryHybridHostDeveloper.json @@ -46,6 +46,10 @@ "wake_future_loss": 0, "wake_int_loss": 0 }, + "Lifetime": { + "analysis_period": 25, + "system_use_lifetime_output": 0 + }, "AdjustmentFactors": { "adjust_constant": 0, "adjust_en_periods": 0, diff --git a/api/api_autogen/library/defaults/Windpower_CustomGenerationPVWattsWindFuelCellBatteryHybridSingleOwner.json b/api/api_autogen/library/defaults/Windpower_CustomGenerationPVWattsWindFuelCellBatteryHybridSingleOwner.json index f330f86fb..233cd5873 100644 --- a/api/api_autogen/library/defaults/Windpower_CustomGenerationPVWattsWindFuelCellBatteryHybridSingleOwner.json +++ b/api/api_autogen/library/defaults/Windpower_CustomGenerationPVWattsWindFuelCellBatteryHybridSingleOwner.json @@ -46,6 +46,10 @@ "wake_future_loss": 0, "wake_int_loss": 0 }, + "Lifetime": { + "analysis_period": 25, + "system_use_lifetime_output": 0 + }, "AdjustmentFactors": { "adjust_constant": 0, "adjust_en_periods": 0, diff --git a/api/api_autogen/library/defaults/Windpower_PVWattsWindBatteryHybridHostDeveloper.json b/api/api_autogen/library/defaults/Windpower_PVWattsWindBatteryHybridHostDeveloper.json index 728ea8f8b..4a17e3791 100644 --- a/api/api_autogen/library/defaults/Windpower_PVWattsWindBatteryHybridHostDeveloper.json +++ b/api/api_autogen/library/defaults/Windpower_PVWattsWindBatteryHybridHostDeveloper.json @@ -46,6 +46,10 @@ "wake_future_loss": 0, "wake_int_loss": 0 }, + "Lifetime": { + "analysis_period": 25, + "system_use_lifetime_output": 0 + }, "AdjustmentFactors": { "adjust_constant": 0, "adjust_en_periods": 0, diff --git a/api/api_autogen/library/defaults/Windpower_PVWattsWindBatteryHybridSingleOwner.json b/api/api_autogen/library/defaults/Windpower_PVWattsWindBatteryHybridSingleOwner.json index f330f86fb..233cd5873 100644 --- a/api/api_autogen/library/defaults/Windpower_PVWattsWindBatteryHybridSingleOwner.json +++ b/api/api_autogen/library/defaults/Windpower_PVWattsWindBatteryHybridSingleOwner.json @@ -46,6 +46,10 @@ "wake_future_loss": 0, "wake_int_loss": 0 }, + "Lifetime": { + "analysis_period": 25, + "system_use_lifetime_output": 0 + }, "AdjustmentFactors": { "adjust_constant": 0, "adjust_en_periods": 0, diff --git a/api/api_autogen/library/defaults/Windpower_PVWattsWindFuelCellBatteryHybridHostDeveloper.json b/api/api_autogen/library/defaults/Windpower_PVWattsWindFuelCellBatteryHybridHostDeveloper.json index 728ea8f8b..4a17e3791 100644 --- a/api/api_autogen/library/defaults/Windpower_PVWattsWindFuelCellBatteryHybridHostDeveloper.json +++ b/api/api_autogen/library/defaults/Windpower_PVWattsWindFuelCellBatteryHybridHostDeveloper.json @@ -46,6 +46,10 @@ "wake_future_loss": 0, "wake_int_loss": 0 }, + "Lifetime": { + "analysis_period": 25, + "system_use_lifetime_output": 0 + }, "AdjustmentFactors": { "adjust_constant": 0, "adjust_en_periods": 0, diff --git a/api/api_autogen/library/defaults/Windpower_PVWattsWindFuelCellBatteryHybridSingleOwner.json b/api/api_autogen/library/defaults/Windpower_PVWattsWindFuelCellBatteryHybridSingleOwner.json index f330f86fb..233cd5873 100644 --- a/api/api_autogen/library/defaults/Windpower_PVWattsWindFuelCellBatteryHybridSingleOwner.json +++ b/api/api_autogen/library/defaults/Windpower_PVWattsWindFuelCellBatteryHybridSingleOwner.json @@ -46,6 +46,10 @@ "wake_future_loss": 0, "wake_int_loss": 0 }, + "Lifetime": { + "analysis_period": 25, + "system_use_lifetime_output": 0 + }, "AdjustmentFactors": { "adjust_constant": 0, "adjust_en_periods": 0, diff --git a/api/api_autogen/library/defaults/Windpower_PhotovoltaicWindBatteryHybridHostDeveloper.json b/api/api_autogen/library/defaults/Windpower_PhotovoltaicWindBatteryHybridHostDeveloper.json index 9a820aa5d..0ebedc3b8 100644 --- a/api/api_autogen/library/defaults/Windpower_PhotovoltaicWindBatteryHybridHostDeveloper.json +++ b/api/api_autogen/library/defaults/Windpower_PhotovoltaicWindBatteryHybridHostDeveloper.json @@ -46,6 +46,10 @@ "wake_future_loss": 0, "wake_int_loss": 0 }, + "Lifetime": { + "analysis_period": 25, + "system_use_lifetime_output": 0 + }, "AdjustmentFactors": { "adjust_constant": 0, "adjust_en_periods": 0, diff --git a/api/api_autogen/library/defaults/Windpower_PhotovoltaicWindBatteryHybridSingleOwner.json b/api/api_autogen/library/defaults/Windpower_PhotovoltaicWindBatteryHybridSingleOwner.json index f330f86fb..233cd5873 100644 --- a/api/api_autogen/library/defaults/Windpower_PhotovoltaicWindBatteryHybridSingleOwner.json +++ b/api/api_autogen/library/defaults/Windpower_PhotovoltaicWindBatteryHybridSingleOwner.json @@ -46,6 +46,10 @@ "wake_future_loss": 0, "wake_int_loss": 0 }, + "Lifetime": { + "analysis_period": 25, + "system_use_lifetime_output": 0 + }, "AdjustmentFactors": { "adjust_constant": 0, "adjust_en_periods": 0, diff --git a/api/api_autogen/library/defaults/Windpower_WindPowerAllEquityPartnershipFlip.json b/api/api_autogen/library/defaults/Windpower_WindPowerAllEquityPartnershipFlip.json index b66f2a409..422640fb8 100644 --- a/api/api_autogen/library/defaults/Windpower_WindPowerAllEquityPartnershipFlip.json +++ b/api/api_autogen/library/defaults/Windpower_WindPowerAllEquityPartnershipFlip.json @@ -61,6 +61,11 @@ "wake_future_loss": 0, "wake_int_loss": 0 }, + "Lifetime": { + "analysis_period": 25, + "generic_degradation": [0.000000], + "system_use_lifetime_output": 1 + }, "AdjustmentFactors": { "adjust_constant": 0, "adjust_en_periods": 0, diff --git a/api/api_autogen/library/defaults/Windpower_WindPowerCommercial.json b/api/api_autogen/library/defaults/Windpower_WindPowerCommercial.json index 9650a28bc..fa2d9820b 100644 --- a/api/api_autogen/library/defaults/Windpower_WindPowerCommercial.json +++ b/api/api_autogen/library/defaults/Windpower_WindPowerCommercial.json @@ -61,6 +61,11 @@ "wake_future_loss": 0, "wake_int_loss": 0 }, + "Lifetime": { + "analysis_period": 25, + "generic_degradation": [0.000000], + "system_use_lifetime_output": 1 + }, "AdjustmentFactors": { "adjust_constant": 0, "adjust_en_periods": 0, diff --git a/api/api_autogen/library/defaults/Windpower_WindPowerLCOECalculator.json b/api/api_autogen/library/defaults/Windpower_WindPowerLCOECalculator.json index b66f2a409..e9ce035ea 100644 --- a/api/api_autogen/library/defaults/Windpower_WindPowerLCOECalculator.json +++ b/api/api_autogen/library/defaults/Windpower_WindPowerLCOECalculator.json @@ -61,6 +61,8 @@ "wake_future_loss": 0, "wake_int_loss": 0 }, + "Lifetime": { + }, "AdjustmentFactors": { "adjust_constant": 0, "adjust_en_periods": 0, diff --git a/api/api_autogen/library/defaults/Windpower_WindPowerLeveragedPartnershipFlip.json b/api/api_autogen/library/defaults/Windpower_WindPowerLeveragedPartnershipFlip.json index b66f2a409..422640fb8 100644 --- a/api/api_autogen/library/defaults/Windpower_WindPowerLeveragedPartnershipFlip.json +++ b/api/api_autogen/library/defaults/Windpower_WindPowerLeveragedPartnershipFlip.json @@ -61,6 +61,11 @@ "wake_future_loss": 0, "wake_int_loss": 0 }, + "Lifetime": { + "analysis_period": 25, + "generic_degradation": [0.000000], + "system_use_lifetime_output": 1 + }, "AdjustmentFactors": { "adjust_constant": 0, "adjust_en_periods": 0, diff --git a/api/api_autogen/library/defaults/Windpower_WindPowerMerchantPlant.json b/api/api_autogen/library/defaults/Windpower_WindPowerMerchantPlant.json index 85f85bb3e..46278b82a 100644 --- a/api/api_autogen/library/defaults/Windpower_WindPowerMerchantPlant.json +++ b/api/api_autogen/library/defaults/Windpower_WindPowerMerchantPlant.json @@ -61,6 +61,11 @@ "wake_future_loss": 0, "wake_int_loss": 0 }, + "Lifetime": { + "analysis_period": 25, + "generic_degradation": [0.000000], + "system_use_lifetime_output": 1 + }, "AdjustmentFactors": { "adjust_constant": 0, "adjust_en_periods": 0, diff --git a/api/api_autogen/library/defaults/Windpower_WindPowerNone.json b/api/api_autogen/library/defaults/Windpower_WindPowerNone.json index b6f81e2a1..a3409c466 100644 --- a/api/api_autogen/library/defaults/Windpower_WindPowerNone.json +++ b/api/api_autogen/library/defaults/Windpower_WindPowerNone.json @@ -61,6 +61,8 @@ "wake_future_loss": 0, "wake_int_loss": 0 }, + "Lifetime": { + }, "AdjustmentFactors": { "adjust_constant": 0, "adjust_en_periods": 0, diff --git a/api/api_autogen/library/defaults/Windpower_WindPowerResidential.json b/api/api_autogen/library/defaults/Windpower_WindPowerResidential.json index 8ca66a73f..83480ef30 100644 --- a/api/api_autogen/library/defaults/Windpower_WindPowerResidential.json +++ b/api/api_autogen/library/defaults/Windpower_WindPowerResidential.json @@ -61,6 +61,11 @@ "wake_future_loss": 0, "wake_int_loss": 0 }, + "Lifetime": { + "analysis_period": 25, + "generic_degradation": [0.000000], + "system_use_lifetime_output": 1 + }, "AdjustmentFactors": { "adjust_constant": 0, "adjust_en_periods": 0, diff --git a/api/api_autogen/library/defaults/Windpower_WindPowerSaleLeaseback.json b/api/api_autogen/library/defaults/Windpower_WindPowerSaleLeaseback.json index b66f2a409..422640fb8 100644 --- a/api/api_autogen/library/defaults/Windpower_WindPowerSaleLeaseback.json +++ b/api/api_autogen/library/defaults/Windpower_WindPowerSaleLeaseback.json @@ -61,6 +61,11 @@ "wake_future_loss": 0, "wake_int_loss": 0 }, + "Lifetime": { + "analysis_period": 25, + "generic_degradation": [0.000000], + "system_use_lifetime_output": 1 + }, "AdjustmentFactors": { "adjust_constant": 0, "adjust_en_periods": 0, diff --git a/api/api_autogen/library/defaults/Windpower_WindPowerSingleOwner.json b/api/api_autogen/library/defaults/Windpower_WindPowerSingleOwner.json index b66f2a409..422640fb8 100644 --- a/api/api_autogen/library/defaults/Windpower_WindPowerSingleOwner.json +++ b/api/api_autogen/library/defaults/Windpower_WindPowerSingleOwner.json @@ -61,6 +61,11 @@ "wake_future_loss": 0, "wake_int_loss": 0 }, + "Lifetime": { + "analysis_period": 25, + "generic_degradation": [0.000000], + "system_use_lifetime_output": 1 + }, "AdjustmentFactors": { "adjust_constant": 0, "adjust_en_periods": 0, diff --git a/api/include/SAM_Windpower.h b/api/include/SAM_Windpower.h index ec093f400..099700478 100644 --- a/api/include/SAM_Windpower.h +++ b/api/include/SAM_Windpower.h @@ -431,6 +431,35 @@ extern "C" SAM_EXPORT void SAM_Windpower_Losses_wake_int_loss_nset(SAM_table ptr, double number, SAM_error *err); + // + // Lifetime parameters + // + + /** + * Set analysis_period: Analysis period [years] + * options: None + * constraints: None + * required if: system_use_lifetime_output=1 + */ + SAM_EXPORT void SAM_Windpower_Lifetime_analysis_period_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set generic_degradation: Annual AC degradation for lifetime simulations [%/year] + * options: None + * constraints: None + * required if: system_use_lifetime_output=1 + */ + SAM_EXPORT void SAM_Windpower_Lifetime_generic_degradation_aset(SAM_table ptr, double* arr, int length, SAM_error *err); + + /** + * Set system_use_lifetime_output: Run lifetime simulation [0/1] + * options: None + * constraints: None + * required if: ?=0 + */ + SAM_EXPORT void SAM_Windpower_Lifetime_system_use_lifetime_output_nset(SAM_table ptr, double number, SAM_error *err); + + // // AdjustmentFactors parameters // @@ -698,6 +727,17 @@ extern "C" SAM_EXPORT double SAM_Windpower_Losses_wake_int_loss_nget(SAM_table ptr, SAM_error *err); + /** + * Lifetime Getters + */ + + SAM_EXPORT double SAM_Windpower_Lifetime_analysis_period_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double* SAM_Windpower_Lifetime_generic_degradation_aget(SAM_table ptr, int* length, SAM_error *err); + + SAM_EXPORT double SAM_Windpower_Lifetime_system_use_lifetime_output_nget(SAM_table ptr, SAM_error *err); + + /** * AdjustmentFactors Getters */ diff --git a/api/modules/SAM_Windpower.cpp b/api/modules/SAM_Windpower.cpp index 13c3c17a7..6b54b0130 100644 --- a/api/modules/SAM_Windpower.cpp +++ b/api/modules/SAM_Windpower.cpp @@ -302,6 +302,24 @@ SAM_EXPORT void SAM_Windpower_Losses_wake_int_loss_nset(SAM_table ptr, double nu }); } +SAM_EXPORT void SAM_Windpower_Lifetime_analysis_period_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "analysis_period", number); + }); +} + +SAM_EXPORT void SAM_Windpower_Lifetime_generic_degradation_aset(SAM_table ptr, double* arr, int length, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_array(ptr, "generic_degradation", arr, length); + }); +} + +SAM_EXPORT void SAM_Windpower_Lifetime_system_use_lifetime_output_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "system_use_lifetime_output", number); + }); +} + SAM_EXPORT void SAM_Windpower_AdjustmentFactors_adjust_constant_nset(SAM_table ptr, double number, SAM_error *err){ translateExceptions(err, [&]{ ssc_data_set_number(ptr, "adjust_constant", number); @@ -844,6 +862,34 @@ SAM_EXPORT double SAM_Windpower_Losses_wake_int_loss_nget(SAM_table ptr, SAM_err return result; } +SAM_EXPORT double SAM_Windpower_Lifetime_analysis_period_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "analysis_period", &result)) + make_access_error("SAM_Windpower", "analysis_period"); + }); + return result; +} + +SAM_EXPORT double* SAM_Windpower_Lifetime_generic_degradation_aget(SAM_table ptr, int* length, SAM_error *err){ + double* result = nullptr; + translateExceptions(err, [&]{ + result = ssc_data_get_array(ptr, "generic_degradation", length); + if (!result) + make_access_error("SAM_Windpower", "generic_degradation"); + }); + return result; +} + +SAM_EXPORT double SAM_Windpower_Lifetime_system_use_lifetime_output_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "system_use_lifetime_output", &result)) + make_access_error("SAM_Windpower", "system_use_lifetime_output"); + }); + return result; +} + SAM_EXPORT double SAM_Windpower_AdjustmentFactors_adjust_constant_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ diff --git a/deploy/runtime/defaults/Wind Power_All Equity Partnership Flip.json b/deploy/runtime/defaults/Wind Power_All Equity Partnership Flip.json index 19bfe0246..9cbb2157d 100644 --- a/deploy/runtime/defaults/Wind Power_All Equity Partnership Flip.json +++ b/deploy/runtime/defaults/Wind Power_All Equity Partnership Flip.json @@ -11212,6 +11212,9 @@ ], "flip_target_percent": 11.0, "flip_target_year": 20.0, + "generic_degradation": [ + 0.0 + ], "grid_curtailment": [ 1e38, 1e38, @@ -20814,7 +20817,7 @@ ], "step": 0.0, "system_capacity": 200000.0, - "system_use_lifetime_output": 0.0, + "system_use_lifetime_output": 1.0, "tax_investor_equity_percent": 60.0, "tax_investor_postflip_cash_percent": 10.0, "tax_investor_postflip_tax_percent": 10.0, diff --git a/deploy/runtime/defaults/Wind Power_Commercial.json b/deploy/runtime/defaults/Wind Power_Commercial.json index 88b1ff731..9079a3d1f 100644 --- a/deploy/runtime/defaults/Wind Power_Commercial.json +++ b/deploy/runtime/defaults/Wind Power_Commercial.json @@ -1748,6 +1748,9 @@ "federal_tax_rate": [ 21.0 ], + "generic_degradation": [ + 0.0 + ], "grid_curtailment": [ 1e38, 1e38, @@ -28253,7 +28256,7 @@ ], "step": 0.0, "system_capacity": 100.0, - "system_use_lifetime_output": 0.0, + "system_use_lifetime_output": 1.0, "total_10yr_uncert": 12.0852, "total_20yr_uncert": 12.0852, "total_installed_cost": 605500.0, diff --git a/deploy/runtime/defaults/Wind Power_Leveraged Partnership Flip.json b/deploy/runtime/defaults/Wind Power_Leveraged Partnership Flip.json index f5373eaa8..67bca6354 100644 --- a/deploy/runtime/defaults/Wind Power_Leveraged Partnership Flip.json +++ b/deploy/runtime/defaults/Wind Power_Leveraged Partnership Flip.json @@ -11220,6 +11220,9 @@ ], "flip_target_percent": 11.0, "flip_target_year": 20.0, + "generic_degradation": [ + 0.0 + ], "grid_curtailment": [ 1e38, 1e38, @@ -20823,7 +20826,7 @@ ], "step": 0.0, "system_capacity": 200000.0, - "system_use_lifetime_output": 0.0, + "system_use_lifetime_output": 1.0, "tax_investor_equity_percent": 98.0, "tax_investor_postflip_cash_percent": 10.0, "tax_investor_postflip_tax_percent": 10.0, diff --git a/deploy/runtime/defaults/Wind Power_Merchant Plant.json b/deploy/runtime/defaults/Wind Power_Merchant Plant.json index d1b824300..e7d00e2cf 100644 --- a/deploy/runtime/defaults/Wind Power_Merchant Plant.json +++ b/deploy/runtime/defaults/Wind Power_Merchant Plant.json @@ -1826,6 +1826,9 @@ 21.0 ], "forecast_price_signal_model": 1.0, + "generic_degradation": [ + 0.0 + ], "grid_curtailment": [ 1e38, 1e38, @@ -667909,7 +667912,7 @@ ], "step": 0.0, "system_capacity": 200000.0, - "system_use_lifetime_output": 0.0, + "system_use_lifetime_output": 1.0, "term_int_rate": 7.0, "term_tenor": 18.0, "total_10yr_uncert": 12.0852, diff --git a/deploy/runtime/defaults/Wind Power_Residential.json b/deploy/runtime/defaults/Wind Power_Residential.json index a312049ec..58f7f8c7a 100644 --- a/deploy/runtime/defaults/Wind Power_Residential.json +++ b/deploy/runtime/defaults/Wind Power_Residential.json @@ -1738,6 +1738,9 @@ "federal_tax_rate": [ 15.0 ], + "generic_degradation": [ + 0.0 + ], "grid_curtailment": [ 1e38, 1e38, @@ -28246,7 +28249,7 @@ ], "step": 0.0, "system_capacity": 20.0, - "system_use_lifetime_output": 0.0, + "system_use_lifetime_output": 1.0, "total_10yr_uncert": 12.0852, "total_20yr_uncert": 12.0852, "total_installed_cost": 161260.0, diff --git a/deploy/runtime/defaults/Wind Power_Sale Leaseback.json b/deploy/runtime/defaults/Wind Power_Sale Leaseback.json index f6657f9d7..0eeecbb07 100644 --- a/deploy/runtime/defaults/Wind Power_Sale Leaseback.json +++ b/deploy/runtime/defaults/Wind Power_Sale Leaseback.json @@ -11207,6 +11207,9 @@ ], "flip_target_percent": 11.0, "flip_target_year": 20.0, + "generic_degradation": [ + 0.0 + ], "grid_curtailment": [ 1e38, 1e38, @@ -20811,7 +20814,7 @@ ], "step": 0.0, "system_capacity": 200000.0, - "system_use_lifetime_output": 0.0, + "system_use_lifetime_output": 1.0, "tax_investor_required_lease_reserve": 6.0, "tod_library": "Uniform Dispatch", "total_10yr_uncert": 12.0852, diff --git a/deploy/runtime/defaults/Wind Power_Single Owner.json b/deploy/runtime/defaults/Wind Power_Single Owner.json index f2cbdaabb..a37a79496 100644 --- a/deploy/runtime/defaults/Wind Power_Single Owner.json +++ b/deploy/runtime/defaults/Wind Power_Single Owner.json @@ -11221,6 +11221,9 @@ ], "flip_target_percent": 11.0, "flip_target_year": 20.0, + "generic_degradation": [ + 0.0 + ], "grid_curtailment": [ 1e38, 1e38, @@ -20831,7 +20834,7 @@ ], "step": 0.0, "system_capacity": 200000.0, - "system_use_lifetime_output": 0.0, + "system_use_lifetime_output": 1.0, "term_int_rate": 7.0, "term_tenor": 18.0, "tod_library": "Uniform Dispatch", diff --git a/deploy/runtime/macros/Solar Resource File Converter.lk b/deploy/runtime/macros/Solar Resource File Converter.lk index f51eafd0d..dcbdd0899 100644 --- a/deploy/runtime/macros/Solar Resource File Converter.lk +++ b/deploy/runtime/macros/Solar Resource File Converter.lk @@ -465,16 +465,16 @@ function solaranywhere_to_sam_csv( wf ) } else { - if ( strpos(lower(to_string(arr[i])),'global') > -1 ) { i_ghi = i; } - if ( strpos(lower(to_string(arr[i])),'direct') > -1 ) { i_dni = i; } - if ( strpos(lower(to_string(arr[i])),'diffuse') > -1 ) { i_dhi = i; } - if ( strpos(lower(to_string(arr[i])),'deg c') > -1 ) { i_tdry = i; } // avoid 'ambient' because AmbientTemperatureObservationType - if ( strpos(lower(to_string(arr[i])),'m/s') > -1 ) { i_wspd = i; } // avoid 'wind' because WindSpeedObservationType - if ( strpos(lower(to_string(arr[i])),'humid') > -1 ) { i_rh = i; } - if ( strpos(lower(to_string(arr[i])),'snow') > -1 ) { i_snow = i; } // snow depth in meters + if ( strpos(lower(to_string(arr[i])),'global horizontal irradiance') > -1 ) { i_ghi = i; } // avoid 'ghi' because clearsky + if ( strpos(lower(to_string(arr[i])),'direct normal irradiance') > -1 ) { i_dni = i; } + if ( strpos(lower(to_string(arr[i])),'diffuse horizontal irradiance') > -1 ) { i_dhi = i; } + if ( strpos(lower(to_string(arr[i])),'ambienttemperature (deg c)') > -1 ) { i_tdry = i; } // avoid 'ambient' because AmbientTemperatureObservationType + if ( strpos(lower(to_string(arr[i])),'windspeed (m/s)') > -1 ) { i_wspd = i; } // avoid 'wind' because WindSpeedObservationType, note wind-speed 100m + if ( strpos(lower(to_string(arr[i])),'relative humidity') > -1 ) { i_rh = i; } + if ( strpos(lower(to_string(arr[i])),'snow depth') > -1 ) { i_snow = i; } // snow depth in meters if ( strpos(lower(to_string(arr[i])),'albedo') > -1 ) { i_albedo = i; } - if ( strpos(lower(to_string(arr[i])),'10') > -1 ) { i_pm10 = i; } // Particulate Matter 10 (g/m3), PM not used by SAM but requested by CPR https://github.com/NatLabRockies/SAM/issues/554 - if ( strpos(lower(to_string(arr[i])),'2.5') > -1 ) { i_pm25 = i; } // Particulate Matter 2.5 (g/m3) + if ( strpos(lower(to_string(arr[i])),'matter 10') > -1 ) { i_pm10 = i; } // Particulate Matter 10 (g/m3), PM not used by SAM but requested by CPR https://github.com/NatLabRockies/SAM/issues/554 + if ( strpos(lower(to_string(arr[i])),'matter 2.5') > -1 ) { i_pm25 = i; } // Particulate Matter 2.5 (g/m3) } } // SAM CSV headers can be in any order: Year,Month,Day,Hour,Minute,GHI,DNI,DHI,Tdry,Tdew,RH,Pres,Wspd,Wdir,Albedo,Snow diff --git a/deploy/runtime/startup.lk b/deploy/runtime/startup.lk index 87845c94d..eec153204 100644 --- a/deploy/runtime/startup.lk +++ b/deploy/runtime/startup.lk @@ -1321,7 +1321,7 @@ setup_thirdparty_pages( LOAD_BELPE); //includes building load calculator by defa setconfig( 'Wind Power', 'Residential' ); setmodules( ['windpower', 'grid', 'utilityrate5', 'cashloan']); setup_windpower_pages(); -setup_lifetime_page(DEGRADATION_AC_SINGLE_YEAR); +setup_lifetime_page(DEGRADATION_AC_LIFETIME); addpage( [['Wind Farm Costs']], { 'sidebar'='Installation Costs', 'help'='installation-costs/cc_wind' } ); addpage( [[ 'Operating Costs' ]], {'sidebar' = 'Operating Costs', 'help'='operating-costs/oc_operating'} ); @@ -1331,7 +1331,7 @@ setup_residential_pages( LOAD_SIMPLE ); //does not include building load calcula setconfig( 'Wind Power', 'Commercial' ); setmodules( ['windpower', 'grid', 'utilityrate5', 'cashloan']); setup_windpower_pages(); -setup_lifetime_page(DEGRADATION_AC_SINGLE_YEAR); +setup_lifetime_page(DEGRADATION_AC_LIFETIME); addpage( [['Wind Farm Costs']], { 'sidebar'='Installation Costs', 'help'='installation-costs/cc_wind' } ); addpage( [[ 'Operating Costs' ]], {'sidebar' = 'Operating Costs', 'help'='operating-costs/oc_operating'} ); @@ -1342,7 +1342,7 @@ setup_commercial_pages( LOAD_SIMPLE ); //does not include building load calculat setconfig( 'Wind Power', 'Leveraged Partnership Flip' ); setmodules( ['windpower', 'grid', 'utilityrate5', 'levpartflip']); setup_windpower_pages(); -setup_lifetime_page(DEGRADATION_AC_SINGLE_YEAR); +setup_lifetime_page(DEGRADATION_AC_LIFETIME); addpage( [['Wind Farm Costs']], { 'sidebar'='Installation Costs', 'help'='installation-costs/cc_wind' } ); addpage( [[ 'Operating Costs' ]], {'sidebar' = 'Operating Costs', 'help'='operating-costs/oc_operating'} ); @@ -1353,7 +1353,7 @@ setup_electricity_purchases(); setconfig( 'Wind Power', 'All Equity Partnership Flip' ); setmodules( ['windpower', 'grid', 'utilityrate5', 'equpartflip']); setup_windpower_pages(); -setup_lifetime_page(DEGRADATION_AC_SINGLE_YEAR); +setup_lifetime_page(DEGRADATION_AC_LIFETIME); addpage( [['Wind Farm Costs']], { 'sidebar'='Installation Costs', 'help'='installation-costs/cc_wind' } ); addpage( [[ 'Operating Costs' ]], {'sidebar' = 'Operating Costs', 'help'='operating-costs/oc_operating'} ); @@ -1364,7 +1364,7 @@ setup_electricity_purchases(); setconfig( 'Wind Power', 'Sale Leaseback' ); setmodules( ['windpower', 'grid', 'utilityrate5', 'saleleaseback']); setup_windpower_pages(); -setup_lifetime_page(DEGRADATION_AC_SINGLE_YEAR); +setup_lifetime_page(DEGRADATION_AC_LIFETIME); addpage( [['Wind Farm Costs']], { 'sidebar'='Installation Costs', 'help'='installation-costs/cc_wind' } ); addpage( [[ 'Operating Costs' ]], {'sidebar' = 'Operating Costs', 'help'='operating-costs/oc_operating'} ); @@ -1375,7 +1375,7 @@ setup_electricity_purchases(); setconfig( 'Wind Power', 'Single Owner' ); setmodules( ['windpower', 'grid', 'utilityrate5', 'singleowner']); setup_windpower_pages(); -setup_lifetime_page(DEGRADATION_AC_SINGLE_YEAR); +setup_lifetime_page(DEGRADATION_AC_LIFETIME); addpage( [['Wind Farm Costs']], { 'sidebar'='Installation Costs', 'help'='installation-costs/cc_wind' } ); addpage( [[ 'Operating Costs' ]], {'sidebar' = 'Operating Costs', 'help'='operating-costs/oc_operating'} ); @@ -1385,7 +1385,7 @@ setup_electricity_purchases(); setconfig( 'Wind Power', 'Merchant Plant' ); setmodules( ['windpower', 'grid', 'utilityrate5', 'merchantplant']); setup_windpower_pages(); -setup_lifetime_page(DEGRADATION_AC_SINGLE_YEAR); +setup_lifetime_page(DEGRADATION_AC_LIFETIME); addpage( [['Wind Farm Costs']], { 'sidebar'='Installation Costs', 'help'='installation-costs/cc_wind' } ); addpage( [[ 'Operating Costs' ]], {'sidebar' = 'Operating Costs', 'help'='operating-costs/oc_operating'} ); diff --git a/deploy/runtime/ui/Wind Farm Specifications.json b/deploy/runtime/ui/Wind Farm Specifications.json index 5131e7a87..0cacc75aa 100644 --- a/deploy/runtime/ui/Wind Farm Specifications.json +++ b/deploy/runtime/ui/Wind Farm Specifications.json @@ -2343,7 +2343,9 @@ "\t", "\tconstant_loss = (${wind_farm_wake_model} != 3);", "\tenable( \"wind_resource_turbulence_coeff\", constant_loss);", - "\tenable( \"wake_loss\", !constant_loss);", + "\tenable( \"wake_loss\", !constant_loss);\r", + "\t\r", + "\tloss_adjustment_set();", "};", "", "on_change{\"windfarm.layout.file_or_controls\"} = define()", @@ -2400,6 +2402,21 @@ "\tconstant_loss = (${wind_farm_wake_model} != 3);", "\tenable( \"wind_resource_turbulence_coeff\", constant_loss);", "\tenable( \"wake_loss\", !constant_loss);", - "};" + "};\r", + "\r", + "function loss_adjustment_set() \r", + "{\r", + "\tif (financing() != \"LCOE Calculator\" && financing() != \"None\") {\r", + "\t\tif (value('system_use_lifetime_output') == 1) {\r", + "\t\t\tproperty('adjust', 'AnalysisPeriod', value('analysis_period'));\r", + "\t\t}\r", + "\t\telse {\r", + "\t\t\tproperty('adjust', 'AnalysisPeriod', 1);\r", + "\t\t}\r", + "\t}\r", + "\telse {\r", + "\t\tproperty('adjust', 'AnalysisPeriod', 1);\r", + "\t}\r", + "}" ] } \ No newline at end of file diff --git a/deploy/runtime/versions.lk b/deploy/runtime/versions.lk index e627dda0b..eae180fda 100644 --- a/deploy/runtime/versions.lk +++ b/deploy/runtime/versions.lk @@ -201,6 +201,9 @@ version_upgrade{'2026.2.19'} = define() { if (cfg.tech == 'Wind Power' || strpos(cfg.tech, "Hybrid") > -1) { message('Wind balance of system cost estimators have been removed. Total capital costs remain the same in this version. Please uses SAM 2025.4.16 or older if you need access to the balance of system cost estimators within SAM.', 'warning'); + + wind_degradation = oldvalue('degradation'); + value('generic_degradation', wind_degradation, 'Wind has been updated to run in lifetime mode, the name of the degradation input has changed to "generic_degrdation"'); } if (cfg.tech == 'Custom Generation Profile' || cfg.tech == 'CustomGeneration PVWatts Wind FuelCell Battery Hybrid') {